]> git.ipfire.org Git - thirdparty/bootstrap.git/commitdiff
dist
authorMark Otto <markdotto@gmail.com>
Tue, 2 Jan 2018 04:29:19 +0000 (20:29 -0800)
committerMark Otto <markdotto@gmail.com>
Tue, 2 Jan 2018 04:29:19 +0000 (20:29 -0800)
assets/css/docs.min.css
assets/css/docs.min.css.map
dist/js/bootstrap.bundle.js
dist/js/bootstrap.bundle.js.map
dist/js/bootstrap.js
dist/js/bootstrap.js.map
js/dist/collapse.js
js/dist/collapse.js.map

index ffdcd59bfbb05b33eff15c5740c4fe70e723e556..5d81899841a0f863713e47091b4ddf5583ac0442 100644 (file)
@@ -4,5 +4,5 @@
  * Copyright 2011-2017 Twitter, Inc.
  * Licensed under the Creative Commons Attribution 3.0 Unported License. For
  * details, see https://creativecommons.org/licenses/by/3.0/.
- */.bd-navbar{min-height:4rem;background-color:#563d7c;box-shadow:0 .5rem 1rem rgba(0,0,0,.05),inset 0 -1px 0 rgba(0,0,0,.1)}@media (max-width:991.99px){.bd-navbar{padding-right:.5rem;padding-left:.5rem}.bd-navbar .navbar-nav-scroll{max-width:100%;height:2.5rem;margin-top:.25rem;overflow:hidden;font-size:.875rem}.bd-navbar .navbar-nav-scroll .navbar-nav{padding-bottom:2rem;overflow-x:auto;white-space:nowrap;-webkit-overflow-scrolling:touch}}@media (min-width:768px){@supports ((position:-webkit-sticky) or (position:sticky)){.bd-navbar{position:-webkit-sticky;position:sticky;top:0;z-index:1071}}}.bd-navbar .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem;color:#cbbde2}.bd-navbar .navbar-nav .nav-link.active,.bd-navbar .navbar-nav .nav-link:hover{color:#fff;background-color:transparent}.bd-navbar .navbar-nav .nav-link.active{font-weight:500}.bd-navbar .navbar-nav-svg{display:inline-block;width:1rem;height:1rem;vertical-align:text-top}.bd-navbar .dropdown-menu{font-size:.875rem}.bd-navbar .dropdown-item.active{font-weight:500;color:#212529;background-color:transparent;background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23292b2c' 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:.4rem .6rem;background-size:.75rem .75rem}.bd-masthead{position:relative;padding:3rem 15px}.bd-masthead h1{line-height:1}.bd-masthead .btn{width:100%;padding:.8rem 2rem;font-size:1.25rem;font-weight:500}.bd-masthead .carbonad{margin-top:0!important;margin-bottom:-3rem!important}@media (min-width:576px){.bd-masthead{padding-top:5rem;padding-bottom:5rem}.bd-masthead .carbonad{margin-bottom:0!important}}@media (min-width:768px){.bd-masthead h1{font-size:4rem}.bd-masthead .carbonad{margin-top:3rem!important}}.half-rule{width:6rem;margin:2.5rem 0}.masthead-followup .bd-clipboard{display:none}.masthead-followup .highlight{padding:.5rem 0;background-color:transparent}#carbonads{position:static;display:block;max-width:400px;padding:15px 15px 15px 160px;margin:2rem 0;overflow:hidden;font-size:13px;line-height:1.4;text-align:left;background-color:rgba(0,0,0,.05)}#carbonads a{color:#333;text-decoration:none}@media (min-width:576px){#carbonads{max-width:330px;border-radius:4px}}.carbon-img{float:left;margin-left:-145px}.carbon-poweredby{display:block;color:#777!important}.bd-content{-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}.bd-content>h2[id],.bd-content>h3[id],.bd-content>h4[id]{pointer-events:none}.bd-content>h2[id]>a,.bd-content>h2[id]>div,.bd-content>h3[id]>a,.bd-content>h3[id]>div,.bd-content>h4[id]>a,.bd-content>h4[id]>div{pointer-events:auto}.bd-content>h2[id]::before,.bd-content>h3[id]::before,.bd-content>h4[id]::before{display:block;height:6rem;margin-top:-6rem;visibility:hidden;content:""}.bd-content>table{width:100%;max-width:100%;margin-bottom:1rem}@media (max-width:991.99px){.bd-content>table{display:block;overflow-x:auto;-ms-overflow-style:-ms-autohiding-scrollbar}.bd-content>table.table-bordered{border:0}}.bd-content>table>tbody>tr>td,.bd-content>table>tbody>tr>th,.bd-content>table>tfoot>tr>td,.bd-content>table>tfoot>tr>th,.bd-content>table>thead>tr>td,.bd-content>table>thead>tr>th{padding:.75rem;vertical-align:top;border:1px solid #dee2e6}.bd-content>table>tbody>tr>td>p:last-child,.bd-content>table>tbody>tr>th>p:last-child,.bd-content>table>tfoot>tr>td>p:last-child,.bd-content>table>tfoot>tr>th>p:last-child,.bd-content>table>thead>tr>td>p:last-child,.bd-content>table>thead>tr>th>p:last-child{margin-bottom:0}.bd-content>table td:first-child>code{white-space:nowrap}.bd-content>h2:not(:first-child){margin-top:3rem}.bd-content>h3{margin-top:1.5rem}.bd-content>ol li,.bd-content>ul li{margin-bottom:.25rem}@media (min-width:992px){.bd-content>ol,.bd-content>p,.bd-content>ul{max-width:80%}}.bd-title{margin-top:1rem;margin-bottom:.5rem;font-weight:300}@media (min-width:576px){.bd-title{font-size:3rem}}.bd-lead{font-size:1.125rem;font-weight:300}@media (min-width:576px){.bd-lead{max-width:80%;margin-bottom:1rem;font-size:1.5rem}}.bd-text-purple{color:#563d7c}.bd-text-purple-bright{color:#7952b3}#skippy{display:block;padding:1em;color:#fff;background-color:#563d7c;outline:0}#skippy .skiplink-text{padding:.5em;outline:1px dotted}.bd-toc{-webkit-box-ordinal-group:3;-ms-flex-order:2;order:2;padding-top:1.5rem;padding-bottom:1.5rem;font-size:.875rem}@supports ((position:-webkit-sticky) or (position:sticky)){.bd-toc{position:-webkit-sticky;position:sticky;top:4rem;height:calc(100vh - 4rem);overflow-y:auto}}.section-nav{padding-left:0;border-left:1px solid #eee}.section-nav ul{padding-left:1rem}.section-nav ul ul{display:none}.toc-entry{display:block}.toc-entry a{display:block;padding:.125rem 1.5rem;color:#99979c}.toc-entry a:hover{color:#007bff;text-decoration:none}.bd-sidebar{-webkit-box-ordinal-group:1;-ms-flex-order:0;order:0;border-bottom:1px solid rgba(0,0,0,.1)}@media (min-width:768px){.bd-sidebar{border-right:1px solid rgba(0,0,0,.1)}@supports ((position:-webkit-sticky) or (position:sticky)){.bd-sidebar{position:-webkit-sticky;position:sticky;top:4rem;z-index:1000;height:calc(100vh - 4rem)}}}@media (min-width:1200px){.bd-sidebar{max-width:320px}}.bd-links{padding-top:1rem;padding-bottom:1rem;margin-right:-15px;margin-left:-15px}@media (min-width:768px){@supports ((position:-webkit-sticky) or (position:sticky)){.bd-links{max-height:calc(100vh - 9rem);overflow-y:auto}}}@media (min-width:768px){.bd-links{display:block!important}}.bd-search{position:relative;padding:1rem 15px;margin-right:-15px;margin-left:-15px;border-bottom:1px solid rgba(0,0,0,.05)}.bd-search .form-control:focus{border-color:#7952b3;box-shadow:0 0 0 3px rgba(121,82,179,.25)}.bd-search-docs-toggle{line-height:1;color:#212529}.bd-sidenav{display:none}.bd-toc-link{display:block;padding:.25rem 1.5rem;font-weight:500;color:rgba(0,0,0,.65)}.bd-toc-link:hover{color:rgba(0,0,0,.85);text-decoration:none}.bd-toc-item.active{margin-bottom:1rem}.bd-toc-item.active:not(:first-child){margin-top:1rem}.bd-toc-item.active>.bd-toc-link{color:rgba(0,0,0,.85)}.bd-toc-item.active>.bd-toc-link:hover{background-color:transparent}.bd-toc-item.active>.bd-sidenav{display:block}.bd-sidebar .nav>li>a{display:block;padding:.25rem 1.5rem;font-size:90%;color:rgba(0,0,0,.65)}.bd-sidebar .nav>li>a:hover{color:rgba(0,0,0,.85);text-decoration:none;background-color:transparent}.bd-sidebar .nav>.active:hover>a,.bd-sidebar .nav>.active>a{font-weight:500;color:rgba(0,0,0,.85);background-color:transparent}.bd-footer{font-size:85%;text-align:center;background-color:#f7f7f7}.bd-footer a{font-weight:500;color:#495057}.bd-footer a:focus,.bd-footer a:hover{color:#007bff}.bd-footer p{margin-bottom:0}@media (min-width:576px){.bd-footer{text-align:left}}.bd-footer-links{padding-left:0;margin-bottom:1rem}.bd-footer-links li{display:inline-block}.bd-footer-links li+li{margin-left:1rem}.bd-example-row .row>.col,.bd-example-row .row>[class^=col-]{padding-top:.75rem;padding-bottom:.75rem;background-color:rgba(86,61,124,.15);border:1px solid rgba(86,61,124,.2)}.bd-example-row .row+.row{margin-top:1rem}.bd-example-row .flex-items-bottom,.bd-example-row .flex-items-middle,.bd-example-row .flex-items-top{min-height:6rem;background-color:rgba(255,0,0,.1)}.bd-example-row-flex-cols .row{min-height:10rem;background-color:rgba(255,0,0,.1)}.bd-highlight{background-color:rgba(86,61,124,.15);border:1px solid rgba(86,61,124,.15)}.example-container{width:800px;width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}.example-row{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}.example-content-main{position:relative;width:100%;min-height:1px;padding-right:15px;padding-left:15px}@media (min-width:576px){.example-content-main{-webkit-box-flex:0;-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}}@media (min-width:992px){.example-content-main{-webkit-box-flex:0;-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}}.example-content-secondary{position:relative;width:100%;min-height:1px;padding-right:15px;padding-left:15px}@media (min-width:576px){.example-content-secondary{-webkit-box-flex:0;-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}}@media (min-width:992px){.example-content-secondary{-webkit-box-flex:0;-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}}.bd-example-container{min-width:16rem;max-width:25rem;margin-right:auto;margin-left:auto}.bd-example-container-header{height:3rem;margin-bottom:.5rem;background-color:#fff;border-radius:.25rem}.bd-example-container-sidebar{float:right;width:4rem;height:8rem;background-color:#80bdff;border-radius:.25rem}.bd-example-container-body{height:8rem;margin-right:4.5rem;background-color:#957bbe;border-radius:.25rem}.bd-example-container-fluid{max-width:none}.bd-example{position:relative;padding:1rem;margin:1rem -15px 0;border:solid #f7f7f9;border-width:.2rem 0 0}.bd-example::after{display:block;clear:both;content:""}@media (min-width:576px){.bd-example{padding:1.5rem;margin-right:0;margin-left:0;border-width:.2rem}}.bd-example+.clipboard+.highlight,.bd-example+.highlight{margin-top:0}.bd-example+p{margin-top:2rem}.bd-example .pos-f-t{position:relative;margin:-1rem}@media (min-width:576px){.bd-example .pos-f-t{margin:-1.5rem}}.bd-example>.form-control+.form-control{margin-top:.5rem}.bd-example>.alert+.alert,.bd-example>.nav+.nav,.bd-example>.navbar+.navbar,.bd-example>.progress+.btn,.bd-example>.progress+.progress{margin-top:1rem}.bd-example>.dropdown-menu:first-child{position:static;display:block}.bd-example>.form-group:last-child{margin-bottom:0}.bd-example>.close{float:none}.bd-example-type .table .type-info{color:#999;vertical-align:middle}.bd-example-type .table td{padding:1rem 0;border-color:#eee}.bd-example-type .table tr:first-child td{border-top:0}.bd-example-type h1,.bd-example-type h2,.bd-example-type h3,.bd-example-type h4,.bd-example-type h5,.bd-example-type h6{margin-top:0;margin-bottom:0}.bd-example-bg-classes p{padding:1rem}.bd-example>img+img{margin-left:.5rem}.bd-example>.btn-group{margin-top:.25rem;margin-bottom:.25rem}.bd-example>.btn-toolbar+.btn-toolbar{margin-top:.5rem}.bd-example-control-sizing input[type=text]+input[type=text],.bd-example-control-sizing select{margin-top:.5rem}.bd-example-form .input-group{margin-bottom:.5rem}.bd-example>textarea.form-control{resize:vertical}.bd-example>.list-group{max-width:400px}.bd-example .fixed-top,.bd-example .sticky-top{position:static;margin:-1rem -1rem 1rem}.bd-example .fixed-bottom{position:static;margin:1rem -1rem -1rem}@media (min-width:576px){.bd-example .fixed-top,.bd-example .sticky-top{margin:-1.5rem -1.5rem 1rem}.bd-example .fixed-bottom{margin:1rem -1.5rem -1.5rem}}.bd-example .pagination{margin-top:.5rem;margin-bottom:.5rem}.modal{z-index:1072}.modal .popover,.modal .tooltip{z-index:1073}.modal-backdrop{z-index:1071}.bd-example-modal{background-color:#fafafa}.bd-example-modal .modal{position:relative;top:auto;right:auto;bottom:auto;left:auto;z-index:1;display:block}.bd-example-modal .modal-dialog{left:auto;margin-right:auto;margin-left:auto}.bd-example-tabs .nav-tabs{margin-bottom:1rem}.bd-example-popover-static{padding-bottom:1.5rem;background-color:#f9f9f9}.bd-example-popover-static .popover{position:relative;display:block;float:left;width:260px;margin:1.25rem}.tooltip-demo a{white-space:nowrap}.bd-example-tooltip-static .tooltip{position:relative;display:inline-block;margin:10px 20px;opacity:1}.scrollspy-example{position:relative;height:200px;margin-top:.5rem;overflow:auto}.scrollspy-example-2{position:relative;height:350px;overflow:auto}.bd-example-border-utils [class^=border]{display:inline-block;width:5rem;height:5rem;margin:.25rem;background-color:#f5f5f5;border:1px solid}.highlight{padding:1rem;margin-top:1rem;margin-bottom:1rem;background-color:#f7f7f9;-ms-overflow-style:-ms-autohiding-scrollbar}@media (min-width:576px){.highlight{padding:1.5rem}}.bd-content .highlight{margin-right:-15px;margin-left:-15px}@media (min-width:576px){.bd-content .highlight{margin-right:0;margin-left:0}}.highlight pre{padding:0;margin-top:0;margin-bottom:0;background-color:transparent;border:0}.highlight pre code{font-size:inherit;color:#212529}.btn-bd-primary{font-weight:500;color:#7952b3;border-color:#7952b3}.btn-bd-primary:active,.btn-bd-primary:hover{color:#fff;background-color:#7952b3;border-color:#7952b3}.btn-bd-download{font-weight:500;color:#ffe484;border-color:#ffe484}.btn-bd-download:active,.btn-bd-download:hover{color:#2a2730;background-color:#ffe484;border-color:#ffe484}.bd-callout{padding:1.25rem;margin-top:1.25rem;margin-bottom:1.25rem;border:1px solid #eee;border-left-width:.25rem;border-radius:.25rem}.bd-callout h4{margin-top:0;margin-bottom:.25rem}.bd-callout p:last-child{margin-bottom:0}.bd-callout code{border-radius:.25rem}.bd-callout+.bd-callout{margin-top:-.25rem}.bd-callout-info{border-left-color:#5bc0de}.bd-callout-info h4{color:#5bc0de}.bd-callout-warning{border-left-color:#f0ad4e}.bd-callout-warning h4{color:#f0ad4e}.bd-callout-danger{border-left-color:#d9534f}.bd-callout-danger h4{color:#d9534f}.bd-examples .img-thumbnail{margin-bottom:.75rem}.bd-examples h4{margin-bottom:.25rem}.bd-examples p{margin-bottom:1.25rem}@media (max-width:480px){.bd-examples{margin-right:-.75rem;margin-left:-.75rem}.bd-examples>[class^=col-]{padding-right:.75rem;padding-left:.75rem}}.bd-browser-bugs td p{margin-bottom:0}.bd-browser-bugs th:first-child{width:18%}.bd-brand-logos{display:table;width:100%;margin-bottom:1rem;overflow:hidden;color:#563d7c;background-color:#f9f9f9;border-radius:.25rem}.bd-brand-item{padding:4rem 0;text-align:center}.bd-brand-item+.bd-brand-item{border-top:1px solid #fff}.bd-brand-logos .inverse{color:#fff;background-color:#563d7c}.bd-brand-item h1,.bd-brand-item h3{margin-top:0;margin-bottom:0}.bd-brand-item .bd-booticon{margin-right:auto;margin-left:auto}@media (min-width:768px){.bd-brand-item{display:table-cell;width:1%}.bd-brand-item+.bd-brand-item{border-top:0;border-left:1px solid #fff}.bd-brand-item h1{font-size:4rem}}.color-swatches{margin:0 -5px;overflow:hidden}.color-swatch{float:left;width:4rem;height:4rem;margin-right:.25rem;margin-left:.25rem;border-radius:.25rem}@media (min-width:768px){.color-swatch{width:6rem;height:6rem}}.color-swatches .bd-purple{background-color:#563d7c}.color-swatches .bd-purple-light{background-color:#cbbde2}.color-swatches .bd-purple-lighter{background-color:#e5e1ea}.color-swatches .bd-gray{background-color:#f9f9f9}.swatch-blue{color:#fff;background-color:#007bff}.swatch-indigo{color:#fff;background-color:#6610f2}.swatch-purple{color:#fff;background-color:#6f42c1}.swatch-pink{color:#fff;background-color:#e83e8c}.swatch-red{color:#fff;background-color:#dc3545}.swatch-orange{color:#212529;background-color:#fd7e14}.swatch-yellow{color:#212529;background-color:#ffc107}.swatch-green{color:#fff;background-color:#28a745}.swatch-teal{color:#fff;background-color:#20c997}.swatch-cyan{color:#fff;background-color:#17a2b8}.swatch-white{color:#212529;background-color:#fff}.swatch-gray{color:#fff;background-color:#6c757d}.swatch-gray-dark{color:#fff;background-color:#343a40}.swatch-primary{color:#fff;background-color:#007bff}.swatch-secondary{color:#fff;background-color:#6c757d}.swatch-success{color:#fff;background-color:#28a745}.swatch-info{color:#fff;background-color:#17a2b8}.swatch-warning{color:#212529;background-color:#ffc107}.swatch-danger{color:#fff;background-color:#dc3545}.swatch-light{color:#212529;background-color:#f8f9fa}.swatch-dark{color:#fff;background-color:#343a40}.swatch-100{color:#212529;background-color:#f8f9fa}.swatch-200{color:#212529;background-color:#e9ecef}.swatch-300{color:#212529;background-color:#dee2e6}.swatch-400{color:#212529;background-color:#ced4da}.swatch-500{color:#212529;background-color:#adb5bd}.swatch-600{color:#fff;background-color:#6c757d}.swatch-700{color:#fff;background-color:#495057}.swatch-800{color:#fff;background-color:#343a40}.swatch-900{color:#fff;background-color:#212529}.bd-clipboard{position:relative;display:none;float:right}.bd-clipboard+.highlight{margin-top:0}.btn-clipboard{position:absolute;top:.5rem;right:.5rem;z-index:10;display:block;padding:.25rem .5rem;font-size:75%;color:#818a91;cursor:pointer;background-color:transparent;border:0;border-radius:.25rem}.btn-clipboard:hover{color:#fff;background-color:#027de7}@media (min-width:768px){.bd-clipboard{display:block}}.hll{background-color:#ffc}.c{color:#999}.k{color:#069}.o{color:#555}.cm{color:#999}.cp{color:#099}.c1{color:#999}.cs{color:#999}.gd{background-color:#fcc;border:1px solid #c00}.ge{font-style:italic}.gr{color:red}.gh{color:#030}.gi{background-color:#cfc;border:1px solid #0c0}.go{color:#aaa}.gp{color:#009}.gu{color:#030}.gt{color:#9c6}.kc{color:#069}.kd{color:#069}.kn{color:#069}.kp{color:#069}.kr{color:#069}.kt{color:#078}.m{color:#f60}.s{color:#d44950}.na{color:#4f9fcf}.nb{color:#366}.nc{color:#0a8}.no{color:#360}.nd{color:#99f}.ni{color:#999}.ne{color:#c00}.nf{color:#c0f}.nl{color:#99f}.nn{color:#0cf}.nt{color:#2f6f9f}.nv{color:#033}.ow{color:#000}.w{color:#bbb}.mf{color:#f60}.mh{color:#f60}.mi{color:#f60}.mo{color:#f60}.sb{color:#c30}.sc{color:#c30}.sd{font-style:italic;color:#c30}.s2{color:#c30}.se{color:#c30}.sh{color:#c30}.si{color:#a00}.sx{color:#c30}.sr{color:#3aa}.s1{color:#c30}.ss{color:#fc3}.bp{color:#366}.vc{color:#033}.vg{color:#033}.vi{color:#033}.il{color:#f60}.css .nt+.nt,.css .o,.css .o+.nt{color:#999}.language-bash::before,.language-sh::before{color:#009;content:"$ ";-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.language-powershell::before{color:#009;content:"PM> ";-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.anchorjs-link{font-weight:400;color:rgba(0,123,255,.5);transition:color .16s linear}.anchorjs-link:hover{color:#007bff;text-decoration:none}.algolia-autocomplete{display:block!important;-webkit-box-flex:1;-ms-flex:1;flex:1}.algolia-autocomplete .ds-dropdown-menu{width:100%;min-width:0!important;max-width:none!important;padding:.75rem 0!important;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.1);box-shadow:0 .5rem 1rem rgba(0,0,0,.175)}@media (min-width:768px){.algolia-autocomplete .ds-dropdown-menu{width:175%}}.algolia-autocomplete .ds-dropdown-menu::before{display:none!important}.algolia-autocomplete .ds-dropdown-menu [class^=ds-dataset-]{padding:0!important;overflow:visible!important;background-color:transparent!important;border:0!important}.algolia-autocomplete .ds-dropdown-menu .ds-suggestions{margin-top:0!important}.algolia-autocomplete .algolia-docsearch-suggestion{padding:0!important;overflow:visible!important}.algolia-autocomplete .algolia-docsearch-suggestion--category-header{padding:.125rem 1rem!important;margin-top:0!important;font-size:.875rem!important;font-weight:500!important;color:#7952b3!important;border-bottom:0!important}.algolia-autocomplete .algolia-docsearch-suggestion--wrapper{float:none!important;padding-top:0!important}.algolia-autocomplete .algolia-docsearch-suggestion--subcategory-column{float:none!important;width:auto!important;padding:0!important;text-align:left!important}.algolia-autocomplete .algolia-docsearch-suggestion--content{float:none!important;width:auto!important;padding:0!important}.algolia-autocomplete .algolia-docsearch-suggestion--content::before{display:none!important}.algolia-autocomplete .ds-suggestion:not(:first-child) .algolia-docsearch-suggestion--category-header{padding-top:.75rem!important;margin-top:.75rem!important;border-top:1px solid rgba(0,0,0,.1)}.algolia-autocomplete .ds-suggestion .algolia-docsearch-suggestion--subcategory-column{display:none!important}.algolia-autocomplete .algolia-docsearch-suggestion--title{display:block;padding:.25rem 1rem!important;margin-bottom:0!important;font-size:.875rem!important;font-weight:400!important}.algolia-autocomplete .algolia-docsearch-suggestion--text{padding:0 1rem .5rem!important;margin-top:-.25rem;font-size:.875rem!important;font-weight:400;line-height:1.25!important}.algolia-autocomplete .algolia-docsearch-footer{float:none!important;width:auto!important;height:auto!important;padding:.75rem 1rem 0;font-size:.75rem!important;line-height:1!important;color:#767676!important;border-top:1px solid rgba(0,0,0,.1)}.algolia-autocomplete .algolia-docsearch-footer--logo{display:inline!important;overflow:visible!important;color:inherit!important;text-indent:0!important;background:0 0!important}.algolia-autocomplete .algolia-docsearch-suggestion--highlight{color:#5f2dab;background-color:rgba(154,132,187,.12)}.algolia-autocomplete .algolia-docsearch-suggestion--text .algolia-docsearch-suggestion--highlight{box-shadow:inset 0 -2px 0 0 rgba(95,45,171,.5)!important}.algolia-autocomplete .ds-suggestion.ds-cursor .algolia-docsearch-suggestion--content{background-color:rgba(208,189,236,.15)!important}
+ */.bd-navbar{min-height:4rem;background-color:#563d7c;box-shadow:0 .5rem 1rem rgba(0,0,0,.05),inset 0 -1px 0 rgba(0,0,0,.1)}@media (max-width:991.99px){.bd-navbar{padding-right:.5rem;padding-left:.5rem}.bd-navbar .navbar-nav-scroll{max-width:100%;height:2.5rem;margin-top:.25rem;overflow:hidden;font-size:.875rem}.bd-navbar .navbar-nav-scroll .navbar-nav{padding-bottom:2rem;overflow-x:auto;white-space:nowrap;-webkit-overflow-scrolling:touch}}@media (min-width:768px){@supports ((position:-webkit-sticky) or (position:sticky)){.bd-navbar{position:-webkit-sticky;position:sticky;top:0;z-index:1071}}}.bd-navbar .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem;color:#cbbde2}.bd-navbar .navbar-nav .nav-link.active,.bd-navbar .navbar-nav .nav-link:hover{color:#fff;background-color:transparent}.bd-navbar .navbar-nav .nav-link.active{font-weight:500}.bd-navbar .navbar-nav-svg{display:inline-block;width:1rem;height:1rem;vertical-align:text-top}.bd-navbar .dropdown-menu{font-size:.875rem}.bd-navbar .dropdown-item.active{font-weight:500;color:#212529;background-color:transparent;background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23292b2c' 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:.4rem .6rem;background-size:.75rem .75rem}.bd-masthead{position:relative;padding:3rem 15px}.bd-masthead h1{line-height:1}.bd-masthead .btn{width:100%;padding:.8rem 2rem;font-size:1.25rem;font-weight:500}.bd-masthead .carbonad{margin-top:0!important;margin-bottom:-3rem!important}@media (min-width:576px){.bd-masthead{padding-top:5rem;padding-bottom:5rem}.bd-masthead .carbonad{margin-bottom:0!important}}@media (min-width:768px){.bd-masthead h1{font-size:4rem}.bd-masthead .carbonad{margin-top:3rem!important}}.half-rule{width:6rem;margin:2.5rem 0}.masthead-followup .bd-clipboard{display:none}.masthead-followup .highlight{padding:.5rem 0;background-color:transparent}#carbonads{position:static;display:block;max-width:400px;padding:15px 15px 15px 160px;margin:2rem 0;overflow:hidden;font-size:13px;line-height:1.4;text-align:left;background-color:rgba(0,0,0,.05)}#carbonads a{color:#333;text-decoration:none}@media (min-width:576px){#carbonads{max-width:330px;border-radius:4px}}.carbon-img{float:left;margin-left:-145px}.carbon-poweredby{display:block;color:#777!important}.bd-content{-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}.bd-content>h2[id],.bd-content>h3[id],.bd-content>h4[id]{pointer-events:none}.bd-content>h2[id]>a,.bd-content>h2[id]>div,.bd-content>h3[id]>a,.bd-content>h3[id]>div,.bd-content>h4[id]>a,.bd-content>h4[id]>div{pointer-events:auto}.bd-content>h2[id]::before,.bd-content>h3[id]::before,.bd-content>h4[id]::before{display:block;height:6rem;margin-top:-6rem;visibility:hidden;content:""}.bd-content>table{width:100%;max-width:100%;margin-bottom:1rem}@media (max-width:991.99px){.bd-content>table{display:block;overflow-x:auto;-ms-overflow-style:-ms-autohiding-scrollbar}.bd-content>table.table-bordered{border:0}}.bd-content>table>tbody>tr>td,.bd-content>table>tbody>tr>th,.bd-content>table>tfoot>tr>td,.bd-content>table>tfoot>tr>th,.bd-content>table>thead>tr>td,.bd-content>table>thead>tr>th{padding:.75rem;vertical-align:top;border:1px solid #dee2e6}.bd-content>table>tbody>tr>td>p:last-child,.bd-content>table>tbody>tr>th>p:last-child,.bd-content>table>tfoot>tr>td>p:last-child,.bd-content>table>tfoot>tr>th>p:last-child,.bd-content>table>thead>tr>td>p:last-child,.bd-content>table>thead>tr>th>p:last-child{margin-bottom:0}.bd-content>table td:first-child>code{white-space:nowrap}.bd-content>h2:not(:first-child){margin-top:3rem}.bd-content>h3{margin-top:1.5rem}.bd-content>ol li,.bd-content>ul li{margin-bottom:.25rem}@media (min-width:992px){.bd-content>ol,.bd-content>p,.bd-content>ul{max-width:80%}}.bd-title{margin-top:1rem;margin-bottom:.5rem;font-weight:300}@media (min-width:576px){.bd-title{font-size:3rem}}.bd-lead{font-size:1.125rem;font-weight:300}@media (min-width:576px){.bd-lead{max-width:80%;margin-bottom:1rem;font-size:1.5rem}}.bd-text-purple{color:#563d7c}.bd-text-purple-bright{color:#7952b3}#skippy{display:block;padding:1em;color:#fff;background-color:#563d7c;outline:0}#skippy .skiplink-text{padding:.5em;outline:1px dotted}.bd-toc{-webkit-box-ordinal-group:3;-ms-flex-order:2;order:2;padding-top:1.5rem;padding-bottom:1.5rem;font-size:.875rem}@supports ((position:-webkit-sticky) or (position:sticky)){.bd-toc{position:-webkit-sticky;position:sticky;top:4rem;height:calc(100vh - 4rem);overflow-y:auto}}.section-nav{padding-left:0;border-left:1px solid #eee}.section-nav ul{padding-left:1rem}.section-nav ul ul{display:none}.toc-entry{display:block}.toc-entry a{display:block;padding:.125rem 1.5rem;color:#99979c}.toc-entry a:hover{color:#007bff;text-decoration:none}.bd-sidebar{-webkit-box-ordinal-group:1;-ms-flex-order:0;order:0;border-bottom:1px solid rgba(0,0,0,.1)}@media (min-width:768px){.bd-sidebar{border-right:1px solid rgba(0,0,0,.1)}@supports ((position:-webkit-sticky) or (position:sticky)){.bd-sidebar{position:-webkit-sticky;position:sticky;top:4rem;z-index:1000;height:calc(100vh - 4rem)}}}@media (min-width:1200px){.bd-sidebar{-webkit-box-flex:0;-ms-flex:0 1 320px;flex:0 1 320px}}.bd-links{padding-top:1rem;padding-bottom:1rem;margin-right:-15px;margin-left:-15px}@media (min-width:768px){@supports ((position:-webkit-sticky) or (position:sticky)){.bd-links{max-height:calc(100vh - 9rem);overflow-y:auto}}}@media (min-width:768px){.bd-links{display:block!important}}.bd-search{position:relative;padding:1rem 15px;margin-right:-15px;margin-left:-15px;border-bottom:1px solid rgba(0,0,0,.05)}.bd-search .form-control:focus{border-color:#7952b3;box-shadow:0 0 0 3px rgba(121,82,179,.25)}.bd-search-docs-toggle{line-height:1;color:#212529}.bd-sidenav{display:none}.bd-toc-link{display:block;padding:.25rem 1.5rem;font-weight:500;color:rgba(0,0,0,.65)}.bd-toc-link:hover{color:rgba(0,0,0,.85);text-decoration:none}.bd-toc-item.active{margin-bottom:1rem}.bd-toc-item.active:not(:first-child){margin-top:1rem}.bd-toc-item.active>.bd-toc-link{color:rgba(0,0,0,.85)}.bd-toc-item.active>.bd-toc-link:hover{background-color:transparent}.bd-toc-item.active>.bd-sidenav{display:block}.bd-sidebar .nav>li>a{display:block;padding:.25rem 1.5rem;font-size:90%;color:rgba(0,0,0,.65)}.bd-sidebar .nav>li>a:hover{color:rgba(0,0,0,.85);text-decoration:none;background-color:transparent}.bd-sidebar .nav>.active:hover>a,.bd-sidebar .nav>.active>a{font-weight:500;color:rgba(0,0,0,.85);background-color:transparent}.bd-footer{font-size:85%;text-align:center;background-color:#f7f7f7}.bd-footer a{font-weight:500;color:#495057}.bd-footer a:focus,.bd-footer a:hover{color:#007bff}.bd-footer p{margin-bottom:0}@media (min-width:576px){.bd-footer{text-align:left}}.bd-footer-links{padding-left:0;margin-bottom:1rem}.bd-footer-links li{display:inline-block}.bd-footer-links li+li{margin-left:1rem}.bd-example-row .row>.col,.bd-example-row .row>[class^=col-]{padding-top:.75rem;padding-bottom:.75rem;background-color:rgba(86,61,124,.15);border:1px solid rgba(86,61,124,.2)}.bd-example-row .row+.row{margin-top:1rem}.bd-example-row .flex-items-bottom,.bd-example-row .flex-items-middle,.bd-example-row .flex-items-top{min-height:6rem;background-color:rgba(255,0,0,.1)}.bd-example-row-flex-cols .row{min-height:10rem;background-color:rgba(255,0,0,.1)}.bd-highlight{background-color:rgba(86,61,124,.15);border:1px solid rgba(86,61,124,.15)}.example-container{width:800px;width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}.example-row{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}.example-content-main{position:relative;width:100%;min-height:1px;padding-right:15px;padding-left:15px}@media (min-width:576px){.example-content-main{-webkit-box-flex:0;-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}}@media (min-width:992px){.example-content-main{-webkit-box-flex:0;-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}}.example-content-secondary{position:relative;width:100%;min-height:1px;padding-right:15px;padding-left:15px}@media (min-width:576px){.example-content-secondary{-webkit-box-flex:0;-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}}@media (min-width:992px){.example-content-secondary{-webkit-box-flex:0;-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}}.bd-example-container{min-width:16rem;max-width:25rem;margin-right:auto;margin-left:auto}.bd-example-container-header{height:3rem;margin-bottom:.5rem;background-color:#fff;border-radius:.25rem}.bd-example-container-sidebar{float:right;width:4rem;height:8rem;background-color:#80bdff;border-radius:.25rem}.bd-example-container-body{height:8rem;margin-right:4.5rem;background-color:#957bbe;border-radius:.25rem}.bd-example-container-fluid{max-width:none}.bd-example{position:relative;padding:1rem;margin:1rem -15px 0;border:solid #f7f7f9;border-width:.2rem 0 0}.bd-example::after{display:block;clear:both;content:""}@media (min-width:576px){.bd-example{padding:1.5rem;margin-right:0;margin-left:0;border-width:.2rem}}.bd-example+.clipboard+.highlight,.bd-example+.highlight{margin-top:0}.bd-example+p{margin-top:2rem}.bd-example .pos-f-t{position:relative;margin:-1rem}@media (min-width:576px){.bd-example .pos-f-t{margin:-1.5rem}}.bd-example>.form-control+.form-control{margin-top:.5rem}.bd-example>.alert+.alert,.bd-example>.nav+.nav,.bd-example>.navbar+.navbar,.bd-example>.progress+.btn,.bd-example>.progress+.progress{margin-top:1rem}.bd-example>.dropdown-menu:first-child{position:static;display:block}.bd-example>.form-group:last-child{margin-bottom:0}.bd-example>.close{float:none}.bd-example-type .table .type-info{color:#999;vertical-align:middle}.bd-example-type .table td{padding:1rem 0;border-color:#eee}.bd-example-type .table tr:first-child td{border-top:0}.bd-example-type h1,.bd-example-type h2,.bd-example-type h3,.bd-example-type h4,.bd-example-type h5,.bd-example-type h6{margin-top:0;margin-bottom:0}.bd-example-bg-classes p{padding:1rem}.bd-example>img+img{margin-left:.5rem}.bd-example>.btn-group{margin-top:.25rem;margin-bottom:.25rem}.bd-example>.btn-toolbar+.btn-toolbar{margin-top:.5rem}.bd-example-control-sizing input[type=text]+input[type=text],.bd-example-control-sizing select{margin-top:.5rem}.bd-example-form .input-group{margin-bottom:.5rem}.bd-example>textarea.form-control{resize:vertical}.bd-example>.list-group{max-width:400px}.bd-example .fixed-top,.bd-example .sticky-top{position:static;margin:-1rem -1rem 1rem}.bd-example .fixed-bottom{position:static;margin:1rem -1rem -1rem}@media (min-width:576px){.bd-example .fixed-top,.bd-example .sticky-top{margin:-1.5rem -1.5rem 1rem}.bd-example .fixed-bottom{margin:1rem -1.5rem -1.5rem}}.bd-example .pagination{margin-top:.5rem;margin-bottom:.5rem}.modal{z-index:1072}.modal .popover,.modal .tooltip{z-index:1073}.modal-backdrop{z-index:1071}.bd-example-modal{background-color:#fafafa}.bd-example-modal .modal{position:relative;top:auto;right:auto;bottom:auto;left:auto;z-index:1;display:block}.bd-example-modal .modal-dialog{left:auto;margin-right:auto;margin-left:auto}.bd-example-tabs .nav-tabs{margin-bottom:1rem}.bd-example-popover-static{padding-bottom:1.5rem;background-color:#f9f9f9}.bd-example-popover-static .popover{position:relative;display:block;float:left;width:260px;margin:1.25rem}.tooltip-demo a{white-space:nowrap}.bd-example-tooltip-static .tooltip{position:relative;display:inline-block;margin:10px 20px;opacity:1}.scrollspy-example{position:relative;height:200px;margin-top:.5rem;overflow:auto}.scrollspy-example-2{position:relative;height:350px;overflow:auto}.bd-example-border-utils [class^=border]{display:inline-block;width:5rem;height:5rem;margin:.25rem;background-color:#f5f5f5;border:1px solid}.highlight{padding:1rem;margin-top:1rem;margin-bottom:1rem;background-color:#f7f7f9;-ms-overflow-style:-ms-autohiding-scrollbar}@media (min-width:576px){.highlight{padding:1.5rem}}.bd-content .highlight{margin-right:-15px;margin-left:-15px}@media (min-width:576px){.bd-content .highlight{margin-right:0;margin-left:0}}.highlight pre{padding:0;margin-top:0;margin-bottom:0;background-color:transparent;border:0}.highlight pre code{font-size:inherit;color:#212529}.btn-bd-primary{font-weight:500;color:#7952b3;border-color:#7952b3}.btn-bd-primary:active,.btn-bd-primary:hover{color:#fff;background-color:#7952b3;border-color:#7952b3}.btn-bd-download{font-weight:500;color:#ffe484;border-color:#ffe484}.btn-bd-download:active,.btn-bd-download:hover{color:#2a2730;background-color:#ffe484;border-color:#ffe484}.bd-callout{padding:1.25rem;margin-top:1.25rem;margin-bottom:1.25rem;border:1px solid #eee;border-left-width:.25rem;border-radius:.25rem}.bd-callout h4{margin-top:0;margin-bottom:.25rem}.bd-callout p:last-child{margin-bottom:0}.bd-callout code{border-radius:.25rem}.bd-callout+.bd-callout{margin-top:-.25rem}.bd-callout-info{border-left-color:#5bc0de}.bd-callout-info h4{color:#5bc0de}.bd-callout-warning{border-left-color:#f0ad4e}.bd-callout-warning h4{color:#f0ad4e}.bd-callout-danger{border-left-color:#d9534f}.bd-callout-danger h4{color:#d9534f}.bd-examples .img-thumbnail{margin-bottom:.75rem}.bd-examples h4{margin-bottom:.25rem}.bd-examples p{margin-bottom:1.25rem}@media (max-width:480px){.bd-examples{margin-right:-.75rem;margin-left:-.75rem}.bd-examples>[class^=col-]{padding-right:.75rem;padding-left:.75rem}}.bd-browser-bugs td p{margin-bottom:0}.bd-browser-bugs th:first-child{width:18%}.bd-brand-logos{display:table;width:100%;margin-bottom:1rem;overflow:hidden;color:#563d7c;background-color:#f9f9f9;border-radius:.25rem}.bd-brand-item{padding:4rem 0;text-align:center}.bd-brand-item+.bd-brand-item{border-top:1px solid #fff}.bd-brand-logos .inverse{color:#fff;background-color:#563d7c}.bd-brand-item h1,.bd-brand-item h3{margin-top:0;margin-bottom:0}.bd-brand-item .bd-booticon{margin-right:auto;margin-left:auto}@media (min-width:768px){.bd-brand-item{display:table-cell;width:1%}.bd-brand-item+.bd-brand-item{border-top:0;border-left:1px solid #fff}.bd-brand-item h1{font-size:4rem}}.color-swatches{margin:0 -5px;overflow:hidden}.color-swatch{float:left;width:4rem;height:4rem;margin-right:.25rem;margin-left:.25rem;border-radius:.25rem}@media (min-width:768px){.color-swatch{width:6rem;height:6rem}}.color-swatches .bd-purple{background-color:#563d7c}.color-swatches .bd-purple-light{background-color:#cbbde2}.color-swatches .bd-purple-lighter{background-color:#e5e1ea}.color-swatches .bd-gray{background-color:#f9f9f9}.swatch-blue{color:#fff;background-color:#007bff}.swatch-indigo{color:#fff;background-color:#6610f2}.swatch-purple{color:#fff;background-color:#6f42c1}.swatch-pink{color:#fff;background-color:#e83e8c}.swatch-red{color:#fff;background-color:#dc3545}.swatch-orange{color:#212529;background-color:#fd7e14}.swatch-yellow{color:#212529;background-color:#ffc107}.swatch-green{color:#fff;background-color:#28a745}.swatch-teal{color:#fff;background-color:#20c997}.swatch-cyan{color:#fff;background-color:#17a2b8}.swatch-white{color:#212529;background-color:#fff}.swatch-gray{color:#fff;background-color:#6c757d}.swatch-gray-dark{color:#fff;background-color:#343a40}.swatch-primary{color:#fff;background-color:#007bff}.swatch-secondary{color:#fff;background-color:#6c757d}.swatch-success{color:#fff;background-color:#28a745}.swatch-info{color:#fff;background-color:#17a2b8}.swatch-warning{color:#212529;background-color:#ffc107}.swatch-danger{color:#fff;background-color:#dc3545}.swatch-light{color:#212529;background-color:#f8f9fa}.swatch-dark{color:#fff;background-color:#343a40}.swatch-100{color:#212529;background-color:#f8f9fa}.swatch-200{color:#212529;background-color:#e9ecef}.swatch-300{color:#212529;background-color:#dee2e6}.swatch-400{color:#212529;background-color:#ced4da}.swatch-500{color:#212529;background-color:#adb5bd}.swatch-600{color:#fff;background-color:#6c757d}.swatch-700{color:#fff;background-color:#495057}.swatch-800{color:#fff;background-color:#343a40}.swatch-900{color:#fff;background-color:#212529}.bd-clipboard{position:relative;display:none;float:right}.bd-clipboard+.highlight{margin-top:0}.btn-clipboard{position:absolute;top:.5rem;right:.5rem;z-index:10;display:block;padding:.25rem .5rem;font-size:75%;color:#818a91;cursor:pointer;background-color:transparent;border:0;border-radius:.25rem}.btn-clipboard:hover{color:#fff;background-color:#027de7}@media (min-width:768px){.bd-clipboard{display:block}}.hll{background-color:#ffc}.c{color:#999}.k{color:#069}.o{color:#555}.cm{color:#999}.cp{color:#099}.c1{color:#999}.cs{color:#999}.gd{background-color:#fcc;border:1px solid #c00}.ge{font-style:italic}.gr{color:red}.gh{color:#030}.gi{background-color:#cfc;border:1px solid #0c0}.go{color:#aaa}.gp{color:#009}.gu{color:#030}.gt{color:#9c6}.kc{color:#069}.kd{color:#069}.kn{color:#069}.kp{color:#069}.kr{color:#069}.kt{color:#078}.m{color:#f60}.s{color:#d44950}.na{color:#4f9fcf}.nb{color:#366}.nc{color:#0a8}.no{color:#360}.nd{color:#99f}.ni{color:#999}.ne{color:#c00}.nf{color:#c0f}.nl{color:#99f}.nn{color:#0cf}.nt{color:#2f6f9f}.nv{color:#033}.ow{color:#000}.w{color:#bbb}.mf{color:#f60}.mh{color:#f60}.mi{color:#f60}.mo{color:#f60}.sb{color:#c30}.sc{color:#c30}.sd{font-style:italic;color:#c30}.s2{color:#c30}.se{color:#c30}.sh{color:#c30}.si{color:#a00}.sx{color:#c30}.sr{color:#3aa}.s1{color:#c30}.ss{color:#fc3}.bp{color:#366}.vc{color:#033}.vg{color:#033}.vi{color:#033}.il{color:#f60}.css .nt+.nt,.css .o,.css .o+.nt{color:#999}.language-bash::before,.language-sh::before{color:#009;content:"$ ";-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.language-powershell::before{color:#009;content:"PM> ";-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.anchorjs-link{font-weight:400;color:rgba(0,123,255,.5);transition:color .16s linear}.anchorjs-link:hover{color:#007bff;text-decoration:none}.algolia-autocomplete{display:block!important;-webkit-box-flex:1;-ms-flex:1;flex:1}.algolia-autocomplete .ds-dropdown-menu{width:100%;min-width:0!important;max-width:none!important;padding:.75rem 0!important;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.1);box-shadow:0 .5rem 1rem rgba(0,0,0,.175)}@media (min-width:768px){.algolia-autocomplete .ds-dropdown-menu{width:175%}}.algolia-autocomplete .ds-dropdown-menu::before{display:none!important}.algolia-autocomplete .ds-dropdown-menu [class^=ds-dataset-]{padding:0!important;overflow:visible!important;background-color:transparent!important;border:0!important}.algolia-autocomplete .ds-dropdown-menu .ds-suggestions{margin-top:0!important}.algolia-autocomplete .algolia-docsearch-suggestion{padding:0!important;overflow:visible!important}.algolia-autocomplete .algolia-docsearch-suggestion--category-header{padding:.125rem 1rem!important;margin-top:0!important;font-size:.875rem!important;font-weight:500!important;color:#7952b3!important;border-bottom:0!important}.algolia-autocomplete .algolia-docsearch-suggestion--wrapper{float:none!important;padding-top:0!important}.algolia-autocomplete .algolia-docsearch-suggestion--subcategory-column{float:none!important;width:auto!important;padding:0!important;text-align:left!important}.algolia-autocomplete .algolia-docsearch-suggestion--content{float:none!important;width:auto!important;padding:0!important}.algolia-autocomplete .algolia-docsearch-suggestion--content::before{display:none!important}.algolia-autocomplete .ds-suggestion:not(:first-child) .algolia-docsearch-suggestion--category-header{padding-top:.75rem!important;margin-top:.75rem!important;border-top:1px solid rgba(0,0,0,.1)}.algolia-autocomplete .ds-suggestion .algolia-docsearch-suggestion--subcategory-column{display:none!important}.algolia-autocomplete .algolia-docsearch-suggestion--title{display:block;padding:.25rem 1rem!important;margin-bottom:0!important;font-size:.875rem!important;font-weight:400!important}.algolia-autocomplete .algolia-docsearch-suggestion--text{padding:0 1rem .5rem!important;margin-top:-.25rem;font-size:.875rem!important;font-weight:400;line-height:1.25!important}.algolia-autocomplete .algolia-docsearch-footer{float:none!important;width:auto!important;height:auto!important;padding:.75rem 1rem 0;font-size:.75rem!important;line-height:1!important;color:#767676!important;border-top:1px solid rgba(0,0,0,.1)}.algolia-autocomplete .algolia-docsearch-footer--logo{display:inline!important;overflow:visible!important;color:inherit!important;text-indent:0!important;background:0 0!important}.algolia-autocomplete .algolia-docsearch-suggestion--highlight{color:#5f2dab;background-color:rgba(154,132,187,.12)}.algolia-autocomplete .algolia-docsearch-suggestion--text .algolia-docsearch-suggestion--highlight{box-shadow:inset 0 -2px 0 0 rgba(95,45,171,.5)!important}.algolia-autocomplete .ds-suggestion.ds-cursor .algolia-docsearch-suggestion--content{background-color:rgba(208,189,236,.15)!important}
 /*# sourceMappingURL=docs.min.css.map */
\ No newline at end of file
index 9494acce55b73b5083392312e3d84f715c8ad1e1..95c6305f53a333ccbe36bfe8b4f00cd2edaa6068 100644 (file)
@@ -1 +1 @@
-{"version":3,"sources":["../scss/docs.scss","../scss/_nav.scss","../../scss/mixins/_breakpoints.scss","../scss/_masthead.scss","../scss/_ads.scss","../scss/_content.scss","assets/css/docs.min.css","../scss/_skiplink.scss","../scss/_sidebar.scss","../scss/_footer.scss","../scss/_component-examples.scss","../../scss/mixins/_grid.scss","../../scss/mixins/_clearfix.scss","../scss/_buttons.scss","../scss/_callouts.scss","../scss/_examples.scss","../scss/_browser-bugs.scss","../scss/_brand.scss","../scss/_colors.scss","../scss/_clipboard-js.scss","../scss/_syntax.scss","../scss/_anchor.scss","../scss/_algolia.scss"],"names":[],"mappings":"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","sourcesContent":["/*!\n * Bootstrap Docs (https://getbootstrap.com)\n * Copyright 2011-2017 The Bootstrap Authors\n * Copyright 2011-2017 Twitter, Inc.\n * Licensed under the Creative Commons Attribution 3.0 Unported License. For\n * details, see https://creativecommons.org/licenses/by/3.0/.\n */\n\n// Dev notes\n//\n// Background information on nomenclature and architecture decisions here.\n//\n// - Bootstrap functions, variables, and mixins are included for easy reuse.\n//   Doing so gives us access to the same core utilities provided by Bootstrap.\n//   For example, consistent media queries through those mixins.\n//\n// - Bootstrap's **docs variables** are prefixed with `$bd-`.\n//   These custom colors avoid collision with the components Bootstrap provides.\n//\n// - Classes are prefixed with `.bd-`.\n//   These classes indicate custom-built or modified components for the design\n//   and layout of the Bootstrap docs. They are not included in our builds.\n//\n// Happy Bootstrapping!\n\n// Load Bootstrap variables and mixins\n@import \"../../scss/functions\";\n@import \"../../scss/variables\";\n@import \"../../scss/mixins\";\n\n// Load docs components\n@import \"variables\";\n@import \"nav\";\n@import \"masthead\";\n@import \"ads\";\n@import \"content\";\n@import \"skiplink\";\n@import \"sidebar\";\n@import \"footer\";\n@import \"component-examples\";\n@import \"buttons\";\n@import \"callouts\";\n@import \"examples\";\n@import \"browser-bugs\";\n@import \"brand\";\n@import \"colors\";\n@import \"clipboard-js\";\n\n// Load docs dependencies\n@import \"syntax\";\n@import \"anchor\";\n@import \"algolia\";\n","//\n// Main navbar\n//\n\n.bd-navbar {\n  min-height: 4rem;\n  background-color: $bd-purple;\n  box-shadow: 0 .5rem 1rem rgba(0, 0, 0, .05), inset 0 -1px 0 rgba(0, 0, 0, .1);\n\n  @include media-breakpoint-down(md) {\n    padding-right: .5rem;\n    padding-left: .5rem;\n\n    .navbar-nav-scroll {\n      max-width: 100%;\n      height: 2.5rem;\n      margin-top: .25rem;\n      overflow: hidden;\n      font-size: .875rem;\n\n      .navbar-nav {\n        padding-bottom: 2rem;\n        overflow-x: auto;\n        white-space: nowrap;\n        -webkit-overflow-scrolling: touch;\n      }\n    }\n  }\n\n  @include media-breakpoint-up(md) {\n    @supports (position: sticky) {\n      position: sticky;\n      top: 0;\n      z-index: 1071; // over everything in bootstrap\n    }\n  }\n\n  .navbar-nav {\n    .nav-link {\n      padding-right: .5rem;\n      padding-left: .5rem;\n      color: $bd-purple-light;\n\n      &.active,\n      &:hover {\n        color: #fff;\n        background-color: transparent;\n      }\n\n      &.active {\n        font-weight: 500;\n      }\n    }\n  }\n\n  .navbar-nav-svg {\n    display: inline-block;\n    width: 1rem;\n    height: 1rem;\n    vertical-align: text-top;\n  }\n\n  .dropdown-menu {\n    font-size: .875rem;\n  }\n\n  .dropdown-item.active {\n    font-weight: 500;\n    color: $gray-900;\n    background-color: transparent;\n    background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23292b2c' 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: .4rem .6rem;\n    background-size: .75rem .75rem;\n  }\n}\n","// Breakpoint viewport sizes and media queries.\n//\n// Breakpoints are defined as a map of (name: minimum width), order from small to large:\n//\n//    (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px)\n//\n// The map defined in the `$grid-breakpoints` global variable is used as the `$breakpoints` argument by default.\n\n// Name of the next breakpoint, or null for the last breakpoint.\n//\n//    >> breakpoint-next(sm)\n//    md\n//    >> breakpoint-next(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n//    md\n//    >> breakpoint-next(sm, $breakpoint-names: (xs sm md lg xl))\n//    md\n@function breakpoint-next($name, $breakpoints: $grid-breakpoints, $breakpoint-names: map-keys($breakpoints)) {\n  $n: index($breakpoint-names, $name);\n  @return if($n < length($breakpoint-names), nth($breakpoint-names, $n + 1), null);\n}\n\n// Minimum breakpoint width. Null for the smallest (first) breakpoint.\n//\n//    >> breakpoint-min(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n//    576px\n@function breakpoint-min($name, $breakpoints: $grid-breakpoints) {\n  $min: map-get($breakpoints, $name);\n  @return if($min != 0, $min, null);\n}\n\n// Maximum breakpoint width. Null for the largest (last) breakpoint.\n// The maximum value is calculated as the minimum of the next one less 0.01px\n// to work around the limitations of `min-` and `max-` prefixes and viewports with fractional widths.\n// See https://www.w3.org/TR/mediaqueries-4/#mq-min-max\n//\n//    >> breakpoint-max(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n//    767px\n@function breakpoint-max($name, $breakpoints: $grid-breakpoints) {\n  $next: breakpoint-next($name, $breakpoints);\n  @return if($next, breakpoint-min($next, $breakpoints) - .01px, null);\n}\n\n// Returns a blank string if smallest breakpoint, otherwise returns the name with a dash infront.\n// Useful for making responsive utilities.\n//\n//    >> breakpoint-infix(xs, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n//    \"\"  (Returns a blank string)\n//    >> breakpoint-infix(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n//    \"-sm\"\n@function breakpoint-infix($name, $breakpoints: $grid-breakpoints) {\n  @return if(breakpoint-min($name, $breakpoints) == null, \"\", \"-#{$name}\");\n}\n\n// Media of at least the minimum breakpoint width. No query for the smallest breakpoint.\n// Makes the @content apply to the given breakpoint and wider.\n@mixin media-breakpoint-up($name, $breakpoints: $grid-breakpoints) {\n  $min: breakpoint-min($name, $breakpoints);\n  @if $min {\n    @media (min-width: $min) {\n      @content;\n    }\n  } @else {\n    @content;\n  }\n}\n\n// Media of at most the maximum breakpoint width. No query for the largest breakpoint.\n// Makes the @content apply to the given breakpoint and narrower.\n@mixin media-breakpoint-down($name, $breakpoints: $grid-breakpoints) {\n  $max: breakpoint-max($name, $breakpoints);\n  @if $max {\n    @media (max-width: $max) {\n      @content;\n    }\n  } @else {\n    @content;\n  }\n}\n\n// Media that spans multiple breakpoint widths.\n// Makes the @content apply between the min and max breakpoints\n@mixin media-breakpoint-between($lower, $upper, $breakpoints: $grid-breakpoints) {\n  $min: breakpoint-min($lower, $breakpoints);\n  $max: breakpoint-max($upper, $breakpoints);\n\n  @if $min != null and $max != null {\n    @media (min-width: $min) and (max-width: $max) {\n      @content;\n    }\n  } @else if $max == null {\n    @include media-breakpoint-up($lower) {\n      @content;\n    }\n  } @else if $min == null {\n    @include media-breakpoint-down($upper) {\n      @content;\n    }\n  }\n}\n\n// Media between the breakpoint's minimum and maximum widths.\n// No minimum for the smallest breakpoint, and no maximum for the largest one.\n// Makes the @content apply only to the given breakpoint, not viewports any wider or narrower.\n@mixin media-breakpoint-only($name, $breakpoints: $grid-breakpoints) {\n  $min: breakpoint-min($name, $breakpoints);\n  $max: breakpoint-max($name, $breakpoints);\n\n  @if $min != null and $max != null {\n    @media (min-width: $min) and (max-width: $max) {\n      @content;\n    }\n  } @else if $max == null {\n    @include media-breakpoint-up($name) {\n      @content;\n    }\n  } @else if $min == null {\n    @include media-breakpoint-down($name) {\n      @content;\n    }\n  }\n}\n","// stylelint-disable declaration-no-important\n\n.bd-masthead {\n  position: relative;\n  padding: 3rem ($grid-gutter-width / 2);\n  // background-image: linear-gradient(45deg, #fafafa, #f5f5f5);\n\n  h1 {\n    line-height: 1;\n  }\n\n  .btn {\n    width: 100%;\n    padding: .8rem 2rem;\n    font-size: 1.25rem;\n    font-weight: 500;\n  }\n\n  .carbonad {\n    margin-top: 0 !important;\n    margin-bottom: -3rem !important;\n  }\n\n  @include media-breakpoint-up(sm) {\n    padding-top: 5rem;\n    padding-bottom: 5rem;\n\n    .carbonad {\n      margin-bottom: 0 !important;\n    }\n  }\n\n  @include media-breakpoint-up(md) {\n    h1 {\n      font-size: 4rem;\n    }\n\n    .carbonad {\n      margin-top: 3rem !important;\n    }\n  }\n}\n\n.half-rule {\n  width: 6rem;\n  margin: 2.5rem 0;\n}\n\n.masthead-followup {\n  .bd-clipboard { display: none; }\n\n  .highlight {\n    padding: .5rem 0;\n    background-color: transparent;\n  }\n}\n","// stylelint-disable declaration-no-important, selector-max-id\n\n//\n// Carbon ads\n//\n\n#carbonads {\n  position: static;\n  display: block;\n  max-width: 400px;\n  padding: 15px 15px 15px 160px;\n  margin: 2rem 0;\n  overflow: hidden;\n  font-size: 13px;\n  line-height: 1.4;\n  text-align: left;\n  background-color: rgba(0, 0, 0, .05);\n\n  a {\n    color: #333;\n    text-decoration: none;\n  }\n\n  @include media-breakpoint-up(sm) {\n    max-width: 330px;\n    border-radius: 4px;\n  }\n}\n\n.carbon-img {\n  float: left;\n  margin-left: -145px;\n}\n\n.carbon-poweredby {\n  display: block;\n  color: #777 !important;\n}\n","// stylelint-disable no-duplicate-selectors, selector-max-combinators, selector-max-compound-selectors, selector-max-type, selector-no-qualifying-type\n\n//\n// Automatically style Markdown-based tables like a Bootstrap `.table`.\n//\n\n.bd-content {\n  order: 1;\n\n  // Hack the sticky header\n  > h2[id],\n  > h3[id],\n  > h4[id] {\n    pointer-events: none;\n\n    > div,\n    > a {\n      pointer-events: auto;\n    }\n\n    &::before {\n      display: block;\n      height: 6rem;\n      margin-top: -6rem;\n      visibility: hidden;\n      content: \"\";\n    }\n  }\n\n  > table {\n    width: 100%;\n    max-width: 100%;\n    margin-bottom: 1rem;\n\n    @include media-breakpoint-down(md) {\n      display: block;\n      overflow-x: auto;\n      -ms-overflow-style: -ms-autohiding-scrollbar; // See https://github.com/twbs/bootstrap/pull/10057\n\n      &.table-bordered {\n        border: 0;\n      }\n    }\n\n    // Cells\n    > thead,\n    > tbody,\n    > tfoot {\n      > tr {\n        > th,\n        > td {\n          padding: $table-cell-padding;\n          vertical-align: top;\n          border: 1px solid $table-border-color;\n\n          > p:last-child {\n            margin-bottom: 0;\n          }\n        }\n      }\n    }\n\n    // Prevent breaking of code (e.g., Grunt tasks list)\n    td:first-child > code {\n      white-space: nowrap;\n    }\n  }\n}\n\n//\n// Docs sections\n//\n\n.bd-content {\n  > h2:not(:first-child) {\n    margin-top: 3rem;\n  }\n\n  > h3 {\n    margin-top: 1.5rem;\n  }\n\n  > ul li,\n  > ol li {\n    margin-bottom: .25rem;\n  }\n\n  @include media-breakpoint-up(lg) {\n    > ul,\n    > ol,\n    > p {\n      max-width: 80%;\n    }\n  }\n}\n\n.bd-title {\n  margin-top: 1rem;\n  margin-bottom: .5rem;\n  font-weight: 300;\n\n  @include media-breakpoint-up(sm) {\n    font-size: 3rem;\n  }\n}\n\n.bd-lead {\n  font-size: 1.125rem;\n  font-weight: 300;\n\n  @include media-breakpoint-up(sm) {\n    max-width: 80%;\n    margin-bottom: 1rem;\n    font-size: 1.5rem;\n  }\n}\n\n.bd-text-purple { color: $bd-purple; }\n.bd-text-purple-bright { color: $bd-purple-bright; }\n","/*!\n * Bootstrap Docs (https://getbootstrap.com)\n * Copyright 2011-2017 The Bootstrap Authors\n * Copyright 2011-2017 Twitter, Inc.\n * Licensed under the Creative Commons Attribution 3.0 Unported License. For\n * details, see https://creativecommons.org/licenses/by/3.0/.\n */\n.bd-navbar {\n  min-height: 4rem;\n  background-color: #563d7c;\n  box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.05), inset 0 -1px 0 rgba(0, 0, 0, 0.1);\n}\n\n@media (max-width: 991.99px) {\n  .bd-navbar {\n    padding-right: .5rem;\n    padding-left: .5rem;\n  }\n  .bd-navbar .navbar-nav-scroll {\n    max-width: 100%;\n    height: 2.5rem;\n    margin-top: .25rem;\n    overflow: hidden;\n    font-size: .875rem;\n  }\n  .bd-navbar .navbar-nav-scroll .navbar-nav {\n    padding-bottom: 2rem;\n    overflow-x: auto;\n    white-space: nowrap;\n    -webkit-overflow-scrolling: touch;\n  }\n}\n\n@media (min-width: 768px) {\n  @supports ((position: -webkit-sticky) or (position: sticky)) {\n    .bd-navbar {\n      position: -webkit-sticky;\n      position: sticky;\n      top: 0;\n      z-index: 1071;\n    }\n  }\n}\n\n.bd-navbar .navbar-nav .nav-link {\n  padding-right: .5rem;\n  padding-left: .5rem;\n  color: #cbbde2;\n}\n\n.bd-navbar .navbar-nav .nav-link.active, .bd-navbar .navbar-nav .nav-link:hover {\n  color: #fff;\n  background-color: transparent;\n}\n\n.bd-navbar .navbar-nav .nav-link.active {\n  font-weight: 500;\n}\n\n.bd-navbar .navbar-nav-svg {\n  display: inline-block;\n  width: 1rem;\n  height: 1rem;\n  vertical-align: text-top;\n}\n\n.bd-navbar .dropdown-menu {\n  font-size: .875rem;\n}\n\n.bd-navbar .dropdown-item.active {\n  font-weight: 500;\n  color: #212529;\n  background-color: transparent;\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23292b2c' 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: .4rem .6rem;\n  background-size: .75rem .75rem;\n}\n\n.bd-masthead {\n  position: relative;\n  padding: 3rem 15px;\n}\n\n.bd-masthead h1 {\n  line-height: 1;\n}\n\n.bd-masthead .btn {\n  width: 100%;\n  padding: .8rem 2rem;\n  font-size: 1.25rem;\n  font-weight: 500;\n}\n\n.bd-masthead .carbonad {\n  margin-top: 0 !important;\n  margin-bottom: -3rem !important;\n}\n\n@media (min-width: 576px) {\n  .bd-masthead {\n    padding-top: 5rem;\n    padding-bottom: 5rem;\n  }\n  .bd-masthead .carbonad {\n    margin-bottom: 0 !important;\n  }\n}\n\n@media (min-width: 768px) {\n  .bd-masthead h1 {\n    font-size: 4rem;\n  }\n  .bd-masthead .carbonad {\n    margin-top: 3rem !important;\n  }\n}\n\n.half-rule {\n  width: 6rem;\n  margin: 2.5rem 0;\n}\n\n.masthead-followup .bd-clipboard {\n  display: none;\n}\n\n.masthead-followup .highlight {\n  padding: .5rem 0;\n  background-color: transparent;\n}\n\n#carbonads {\n  position: static;\n  display: block;\n  max-width: 400px;\n  padding: 15px 15px 15px 160px;\n  margin: 2rem 0;\n  overflow: hidden;\n  font-size: 13px;\n  line-height: 1.4;\n  text-align: left;\n  background-color: rgba(0, 0, 0, 0.05);\n}\n\n#carbonads a {\n  color: #333;\n  text-decoration: none;\n}\n\n@media (min-width: 576px) {\n  #carbonads {\n    max-width: 330px;\n    border-radius: 4px;\n  }\n}\n\n.carbon-img {\n  float: left;\n  margin-left: -145px;\n}\n\n.carbon-poweredby {\n  display: block;\n  color: #777 !important;\n}\n\n.bd-content {\n  -webkit-box-ordinal-group: 2;\n  -ms-flex-order: 1;\n  order: 1;\n}\n\n.bd-content > h2[id],\n.bd-content > h3[id],\n.bd-content > h4[id] {\n  pointer-events: none;\n}\n\n.bd-content > h2[id] > div,\n.bd-content > h2[id] > a,\n.bd-content > h3[id] > div,\n.bd-content > h3[id] > a,\n.bd-content > h4[id] > div,\n.bd-content > h4[id] > a {\n  pointer-events: auto;\n}\n\n.bd-content > h2[id]::before,\n.bd-content > h3[id]::before,\n.bd-content > h4[id]::before {\n  display: block;\n  height: 6rem;\n  margin-top: -6rem;\n  visibility: hidden;\n  content: \"\";\n}\n\n.bd-content > table {\n  width: 100%;\n  max-width: 100%;\n  margin-bottom: 1rem;\n}\n\n@media (max-width: 991.99px) {\n  .bd-content > table {\n    display: block;\n    overflow-x: auto;\n    -ms-overflow-style: -ms-autohiding-scrollbar;\n  }\n  .bd-content > table.table-bordered {\n    border: 0;\n  }\n}\n\n.bd-content > table > thead > tr > th,\n.bd-content > table > thead > tr > td,\n.bd-content > table > tbody > tr > th,\n.bd-content > table > tbody > tr > td,\n.bd-content > table > tfoot > tr > th,\n.bd-content > table > tfoot > tr > td {\n  padding: 0.75rem;\n  vertical-align: top;\n  border: 1px solid #dee2e6;\n}\n\n.bd-content > table > thead > tr > th > p:last-child,\n.bd-content > table > thead > tr > td > p:last-child,\n.bd-content > table > tbody > tr > th > p:last-child,\n.bd-content > table > tbody > tr > td > p:last-child,\n.bd-content > table > tfoot > tr > th > p:last-child,\n.bd-content > table > tfoot > tr > td > p:last-child {\n  margin-bottom: 0;\n}\n\n.bd-content > table td:first-child > code {\n  white-space: nowrap;\n}\n\n.bd-content > h2:not(:first-child) {\n  margin-top: 3rem;\n}\n\n.bd-content > h3 {\n  margin-top: 1.5rem;\n}\n\n.bd-content > ul li,\n.bd-content > ol li {\n  margin-bottom: .25rem;\n}\n\n@media (min-width: 992px) {\n  .bd-content > ul,\n  .bd-content > ol,\n  .bd-content > p {\n    max-width: 80%;\n  }\n}\n\n.bd-title {\n  margin-top: 1rem;\n  margin-bottom: .5rem;\n  font-weight: 300;\n}\n\n@media (min-width: 576px) {\n  .bd-title {\n    font-size: 3rem;\n  }\n}\n\n.bd-lead {\n  font-size: 1.125rem;\n  font-weight: 300;\n}\n\n@media (min-width: 576px) {\n  .bd-lead {\n    max-width: 80%;\n    margin-bottom: 1rem;\n    font-size: 1.5rem;\n  }\n}\n\n.bd-text-purple {\n  color: #563d7c;\n}\n\n.bd-text-purple-bright {\n  color: #7952b3;\n}\n\n#skippy {\n  display: block;\n  padding: 1em;\n  color: #fff;\n  background-color: #563d7c;\n  outline: 0;\n}\n\n#skippy .skiplink-text {\n  padding: .5em;\n  outline: 1px dotted;\n}\n\n.bd-toc {\n  -webkit-box-ordinal-group: 3;\n  -ms-flex-order: 2;\n  order: 2;\n  padding-top: 1.5rem;\n  padding-bottom: 1.5rem;\n  font-size: .875rem;\n}\n\n@supports ((position: -webkit-sticky) or (position: sticky)) {\n  .bd-toc {\n    position: -webkit-sticky;\n    position: sticky;\n    top: 4rem;\n    height: calc(100vh - 4rem);\n    overflow-y: auto;\n  }\n}\n\n.section-nav {\n  padding-left: 0;\n  border-left: 1px solid #eee;\n}\n\n.section-nav ul {\n  padding-left: 1rem;\n}\n\n.section-nav ul ul {\n  display: none;\n}\n\n.toc-entry {\n  display: block;\n}\n\n.toc-entry a {\n  display: block;\n  padding: .125rem 1.5rem;\n  color: #99979c;\n}\n\n.toc-entry a:hover {\n  color: #007bff;\n  text-decoration: none;\n}\n\n.bd-sidebar {\n  -webkit-box-ordinal-group: 1;\n  -ms-flex-order: 0;\n  order: 0;\n  border-bottom: 1px solid rgba(0, 0, 0, 0.1);\n}\n\n@media (min-width: 768px) {\n  .bd-sidebar {\n    border-right: 1px solid rgba(0, 0, 0, 0.1);\n  }\n  @supports ((position: -webkit-sticky) or (position: sticky)) {\n    .bd-sidebar {\n      position: -webkit-sticky;\n      position: sticky;\n      top: 4rem;\n      z-index: 1000;\n      height: calc(100vh - 4rem);\n    }\n  }\n}\n\n@media (min-width: 1200px) {\n  .bd-sidebar {\n    max-width: 320px;\n  }\n}\n\n.bd-links {\n  padding-top: 1rem;\n  padding-bottom: 1rem;\n  margin-right: -15px;\n  margin-left: -15px;\n}\n\n@media (min-width: 768px) {\n  @supports ((position: -webkit-sticky) or (position: sticky)) {\n    .bd-links {\n      max-height: calc(100vh - 9rem);\n      overflow-y: auto;\n    }\n  }\n}\n\n@media (min-width: 768px) {\n  .bd-links {\n    display: block !important;\n  }\n}\n\n.bd-search {\n  position: relative;\n  padding: 1rem 15px;\n  margin-right: -15px;\n  margin-left: -15px;\n  border-bottom: 1px solid rgba(0, 0, 0, 0.05);\n}\n\n.bd-search .form-control:focus {\n  border-color: #7952b3;\n  box-shadow: 0 0 0 3px rgba(121, 82, 179, 0.25);\n}\n\n.bd-search-docs-toggle {\n  line-height: 1;\n  color: #212529;\n}\n\n.bd-sidenav {\n  display: none;\n}\n\n.bd-toc-link {\n  display: block;\n  padding: .25rem 1.5rem;\n  font-weight: 500;\n  color: rgba(0, 0, 0, 0.65);\n}\n\n.bd-toc-link:hover {\n  color: rgba(0, 0, 0, 0.85);\n  text-decoration: none;\n}\n\n.bd-toc-item.active {\n  margin-bottom: 1rem;\n}\n\n.bd-toc-item.active:not(:first-child) {\n  margin-top: 1rem;\n}\n\n.bd-toc-item.active > .bd-toc-link {\n  color: rgba(0, 0, 0, 0.85);\n}\n\n.bd-toc-item.active > .bd-toc-link:hover {\n  background-color: transparent;\n}\n\n.bd-toc-item.active > .bd-sidenav {\n  display: block;\n}\n\n.bd-sidebar .nav > li > a {\n  display: block;\n  padding: .25rem 1.5rem;\n  font-size: 90%;\n  color: rgba(0, 0, 0, 0.65);\n}\n\n.bd-sidebar .nav > li > a:hover {\n  color: rgba(0, 0, 0, 0.85);\n  text-decoration: none;\n  background-color: transparent;\n}\n\n.bd-sidebar .nav > .active > a,\n.bd-sidebar .nav > .active:hover > a {\n  font-weight: 500;\n  color: rgba(0, 0, 0, 0.85);\n  background-color: transparent;\n}\n\n.bd-footer {\n  font-size: 85%;\n  text-align: center;\n  background-color: #f7f7f7;\n}\n\n.bd-footer a {\n  font-weight: 500;\n  color: #495057;\n}\n\n.bd-footer a:hover, .bd-footer a:focus {\n  color: #007bff;\n}\n\n.bd-footer p {\n  margin-bottom: 0;\n}\n\n@media (min-width: 576px) {\n  .bd-footer {\n    text-align: left;\n  }\n}\n\n.bd-footer-links {\n  padding-left: 0;\n  margin-bottom: 1rem;\n}\n\n.bd-footer-links li {\n  display: inline-block;\n}\n\n.bd-footer-links li + li {\n  margin-left: 1rem;\n}\n\n.bd-example-row .row > .col,\n.bd-example-row .row > [class^=\"col-\"] {\n  padding-top: .75rem;\n  padding-bottom: .75rem;\n  background-color: rgba(86, 61, 124, 0.15);\n  border: 1px solid rgba(86, 61, 124, 0.2);\n}\n\n.bd-example-row .row + .row {\n  margin-top: 1rem;\n}\n\n.bd-example-row .flex-items-top,\n.bd-example-row .flex-items-middle,\n.bd-example-row .flex-items-bottom {\n  min-height: 6rem;\n  background-color: rgba(255, 0, 0, 0.1);\n}\n\n.bd-example-row-flex-cols .row {\n  min-height: 10rem;\n  background-color: rgba(255, 0, 0, 0.1);\n}\n\n.bd-highlight {\n  background-color: rgba(86, 61, 124, 0.15);\n  border: 1px solid rgba(86, 61, 124, 0.15);\n}\n\n.example-container {\n  width: 800px;\n  width: 100%;\n  padding-right: 15px;\n  padding-left: 15px;\n  margin-right: auto;\n  margin-left: auto;\n}\n\n.example-row {\n  display: -webkit-box;\n  display: -ms-flexbox;\n  display: flex;\n  -ms-flex-wrap: wrap;\n  flex-wrap: wrap;\n  margin-right: -15px;\n  margin-left: -15px;\n}\n\n.example-content-main {\n  position: relative;\n  width: 100%;\n  min-height: 1px;\n  padding-right: 15px;\n  padding-left: 15px;\n}\n\n@media (min-width: 576px) {\n  .example-content-main {\n    -webkit-box-flex: 0;\n    -ms-flex: 0 0 50%;\n    flex: 0 0 50%;\n    max-width: 50%;\n  }\n}\n\n@media (min-width: 992px) {\n  .example-content-main {\n    -webkit-box-flex: 0;\n    -ms-flex: 0 0 66.666667%;\n    flex: 0 0 66.666667%;\n    max-width: 66.666667%;\n  }\n}\n\n.example-content-secondary {\n  position: relative;\n  width: 100%;\n  min-height: 1px;\n  padding-right: 15px;\n  padding-left: 15px;\n}\n\n@media (min-width: 576px) {\n  .example-content-secondary {\n    -webkit-box-flex: 0;\n    -ms-flex: 0 0 50%;\n    flex: 0 0 50%;\n    max-width: 50%;\n  }\n}\n\n@media (min-width: 992px) {\n  .example-content-secondary {\n    -webkit-box-flex: 0;\n    -ms-flex: 0 0 33.333333%;\n    flex: 0 0 33.333333%;\n    max-width: 33.333333%;\n  }\n}\n\n.bd-example-container {\n  min-width: 16rem;\n  max-width: 25rem;\n  margin-right: auto;\n  margin-left: auto;\n}\n\n.bd-example-container-header {\n  height: 3rem;\n  margin-bottom: .5rem;\n  background-color: white;\n  border-radius: .25rem;\n}\n\n.bd-example-container-sidebar {\n  float: right;\n  width: 4rem;\n  height: 8rem;\n  background-color: #80bdff;\n  border-radius: .25rem;\n}\n\n.bd-example-container-body {\n  height: 8rem;\n  margin-right: 4.5rem;\n  background-color: #957bbe;\n  border-radius: .25rem;\n}\n\n.bd-example-container-fluid {\n  max-width: none;\n}\n\n.bd-example {\n  position: relative;\n  padding: 1rem;\n  margin: 1rem -15px 0;\n  border: solid #f7f7f9;\n  border-width: .2rem 0 0;\n}\n\n.bd-example::after {\n  display: block;\n  clear: both;\n  content: \"\";\n}\n\n@media (min-width: 576px) {\n  .bd-example {\n    padding: 1.5rem;\n    margin-right: 0;\n    margin-left: 0;\n    border-width: .2rem;\n  }\n}\n\n.bd-example + .highlight,\n.bd-example + .clipboard + .highlight {\n  margin-top: 0;\n}\n\n.bd-example + p {\n  margin-top: 2rem;\n}\n\n.bd-example .pos-f-t {\n  position: relative;\n  margin: -1rem;\n}\n\n@media (min-width: 576px) {\n  .bd-example .pos-f-t {\n    margin: -1.5rem;\n  }\n}\n\n.bd-example > .form-control + .form-control {\n  margin-top: .5rem;\n}\n\n.bd-example > .nav + .nav,\n.bd-example > .alert + .alert,\n.bd-example > .navbar + .navbar,\n.bd-example > .progress + .progress,\n.bd-example > .progress + .btn {\n  margin-top: 1rem;\n}\n\n.bd-example > .dropdown-menu:first-child {\n  position: static;\n  display: block;\n}\n\n.bd-example > .form-group:last-child {\n  margin-bottom: 0;\n}\n\n.bd-example > .close {\n  float: none;\n}\n\n.bd-example-type .table .type-info {\n  color: #999;\n  vertical-align: middle;\n}\n\n.bd-example-type .table td {\n  padding: 1rem 0;\n  border-color: #eee;\n}\n\n.bd-example-type .table tr:first-child td {\n  border-top: 0;\n}\n\n.bd-example-type h1,\n.bd-example-type h2,\n.bd-example-type h3,\n.bd-example-type h4,\n.bd-example-type h5,\n.bd-example-type h6 {\n  margin-top: 0;\n  margin-bottom: 0;\n}\n\n.bd-example-bg-classes p {\n  padding: 1rem;\n}\n\n.bd-example > img + img {\n  margin-left: .5rem;\n}\n\n.bd-example > .btn-group {\n  margin-top: .25rem;\n  margin-bottom: .25rem;\n}\n\n.bd-example > .btn-toolbar + .btn-toolbar {\n  margin-top: .5rem;\n}\n\n.bd-example-control-sizing select,\n.bd-example-control-sizing input[type=\"text\"] + input[type=\"text\"] {\n  margin-top: .5rem;\n}\n\n.bd-example-form .input-group {\n  margin-bottom: .5rem;\n}\n\n.bd-example > textarea.form-control {\n  resize: vertical;\n}\n\n.bd-example > .list-group {\n  max-width: 400px;\n}\n\n.bd-example .fixed-top,\n.bd-example .sticky-top {\n  position: static;\n  margin: -1rem -1rem 1rem;\n}\n\n.bd-example .fixed-bottom {\n  position: static;\n  margin: 1rem -1rem -1rem;\n}\n\n@media (min-width: 576px) {\n  .bd-example .fixed-top,\n  .bd-example .sticky-top {\n    margin: -1.5rem -1.5rem 1rem;\n  }\n  .bd-example .fixed-bottom {\n    margin: 1rem -1.5rem -1.5rem;\n  }\n}\n\n.bd-example .pagination {\n  margin-top: .5rem;\n  margin-bottom: .5rem;\n}\n\n.modal {\n  z-index: 1072;\n}\n\n.modal .tooltip,\n.modal .popover {\n  z-index: 1073;\n}\n\n.modal-backdrop {\n  z-index: 1071;\n}\n\n.bd-example-modal {\n  background-color: #fafafa;\n}\n\n.bd-example-modal .modal {\n  position: relative;\n  top: auto;\n  right: auto;\n  bottom: auto;\n  left: auto;\n  z-index: 1;\n  display: block;\n}\n\n.bd-example-modal .modal-dialog {\n  left: auto;\n  margin-right: auto;\n  margin-left: auto;\n}\n\n.bd-example-tabs .nav-tabs {\n  margin-bottom: 1rem;\n}\n\n.bd-example-popover-static {\n  padding-bottom: 1.5rem;\n  background-color: #f9f9f9;\n}\n\n.bd-example-popover-static .popover {\n  position: relative;\n  display: block;\n  float: left;\n  width: 260px;\n  margin: 1.25rem;\n}\n\n.tooltip-demo a {\n  white-space: nowrap;\n}\n\n.bd-example-tooltip-static .tooltip {\n  position: relative;\n  display: inline-block;\n  margin: 10px 20px;\n  opacity: 1;\n}\n\n.scrollspy-example {\n  position: relative;\n  height: 200px;\n  margin-top: .5rem;\n  overflow: auto;\n}\n\n.scrollspy-example-2 {\n  position: relative;\n  height: 350px;\n  overflow: auto;\n}\n\n.bd-example-border-utils [class^=\"border\"] {\n  display: inline-block;\n  width: 5rem;\n  height: 5rem;\n  margin: .25rem;\n  background-color: #f5f5f5;\n  border: 1px solid;\n}\n\n.highlight {\n  padding: 1rem;\n  margin-top: 1rem;\n  margin-bottom: 1rem;\n  background-color: #f7f7f9;\n  -ms-overflow-style: -ms-autohiding-scrollbar;\n}\n\n@media (min-width: 576px) {\n  .highlight {\n    padding: 1.5rem;\n  }\n}\n\n.bd-content .highlight {\n  margin-right: -15px;\n  margin-left: -15px;\n}\n\n@media (min-width: 576px) {\n  .bd-content .highlight {\n    margin-right: 0;\n    margin-left: 0;\n  }\n}\n\n.highlight pre {\n  padding: 0;\n  margin-top: 0;\n  margin-bottom: 0;\n  background-color: transparent;\n  border: 0;\n}\n\n.highlight pre code {\n  font-size: inherit;\n  color: #212529;\n}\n\n.btn-bd-primary {\n  font-weight: 500;\n  color: #7952b3;\n  border-color: #7952b3;\n}\n\n.btn-bd-primary:hover, .btn-bd-primary:active {\n  color: #fff;\n  background-color: #7952b3;\n  border-color: #7952b3;\n}\n\n.btn-bd-download {\n  font-weight: 500;\n  color: #ffe484;\n  border-color: #ffe484;\n}\n\n.btn-bd-download:hover, .btn-bd-download:active {\n  color: #2a2730;\n  background-color: #ffe484;\n  border-color: #ffe484;\n}\n\n.bd-callout {\n  padding: 1.25rem;\n  margin-top: 1.25rem;\n  margin-bottom: 1.25rem;\n  border: 1px solid #eee;\n  border-left-width: .25rem;\n  border-radius: .25rem;\n}\n\n.bd-callout h4 {\n  margin-top: 0;\n  margin-bottom: .25rem;\n}\n\n.bd-callout p:last-child {\n  margin-bottom: 0;\n}\n\n.bd-callout code {\n  border-radius: .25rem;\n}\n\n.bd-callout + .bd-callout {\n  margin-top: -.25rem;\n}\n\n.bd-callout-info {\n  border-left-color: #5bc0de;\n}\n\n.bd-callout-info h4 {\n  color: #5bc0de;\n}\n\n.bd-callout-warning {\n  border-left-color: #f0ad4e;\n}\n\n.bd-callout-warning h4 {\n  color: #f0ad4e;\n}\n\n.bd-callout-danger {\n  border-left-color: #d9534f;\n}\n\n.bd-callout-danger h4 {\n  color: #d9534f;\n}\n\n.bd-examples .img-thumbnail {\n  margin-bottom: .75rem;\n}\n\n.bd-examples h4 {\n  margin-bottom: .25rem;\n}\n\n.bd-examples p {\n  margin-bottom: 1.25rem;\n}\n\n@media (max-width: 480px) {\n  .bd-examples {\n    margin-right: -.75rem;\n    margin-left: -.75rem;\n  }\n  .bd-examples > [class^=\"col-\"] {\n    padding-right: .75rem;\n    padding-left: .75rem;\n  }\n}\n\n.bd-browser-bugs td p {\n  margin-bottom: 0;\n}\n\n.bd-browser-bugs th:first-child {\n  width: 18%;\n}\n\n.bd-brand-logos {\n  display: table;\n  width: 100%;\n  margin-bottom: 1rem;\n  overflow: hidden;\n  color: #563d7c;\n  background-color: #f9f9f9;\n  border-radius: .25rem;\n}\n\n.bd-brand-item {\n  padding: 4rem 0;\n  text-align: center;\n}\n\n.bd-brand-item + .bd-brand-item {\n  border-top: 1px solid #fff;\n}\n\n.bd-brand-logos .inverse {\n  color: #fff;\n  background-color: #563d7c;\n}\n\n.bd-brand-item h1,\n.bd-brand-item h3 {\n  margin-top: 0;\n  margin-bottom: 0;\n}\n\n.bd-brand-item .bd-booticon {\n  margin-right: auto;\n  margin-left: auto;\n}\n\n@media (min-width: 768px) {\n  .bd-brand-item {\n    display: table-cell;\n    width: 1%;\n  }\n  .bd-brand-item + .bd-brand-item {\n    border-top: 0;\n    border-left: 1px solid #fff;\n  }\n  .bd-brand-item h1 {\n    font-size: 4rem;\n  }\n}\n\n.color-swatches {\n  margin: 0 -5px;\n  overflow: hidden;\n}\n\n.color-swatch {\n  float: left;\n  width: 4rem;\n  height: 4rem;\n  margin-right: .25rem;\n  margin-left: .25rem;\n  border-radius: .25rem;\n}\n\n@media (min-width: 768px) {\n  .color-swatch {\n    width: 6rem;\n    height: 6rem;\n  }\n}\n\n.color-swatches .bd-purple {\n  background-color: #563d7c;\n}\n\n.color-swatches .bd-purple-light {\n  background-color: #cbbde2;\n}\n\n.color-swatches .bd-purple-lighter {\n  background-color: #e5e1ea;\n}\n\n.color-swatches .bd-gray {\n  background-color: #f9f9f9;\n}\n\n.swatch-blue {\n  color: #fff;\n  background-color: #007bff;\n}\n\n.swatch-indigo {\n  color: #fff;\n  background-color: #6610f2;\n}\n\n.swatch-purple {\n  color: #fff;\n  background-color: #6f42c1;\n}\n\n.swatch-pink {\n  color: #fff;\n  background-color: #e83e8c;\n}\n\n.swatch-red {\n  color: #fff;\n  background-color: #dc3545;\n}\n\n.swatch-orange {\n  color: #212529;\n  background-color: #fd7e14;\n}\n\n.swatch-yellow {\n  color: #212529;\n  background-color: #ffc107;\n}\n\n.swatch-green {\n  color: #fff;\n  background-color: #28a745;\n}\n\n.swatch-teal {\n  color: #fff;\n  background-color: #20c997;\n}\n\n.swatch-cyan {\n  color: #fff;\n  background-color: #17a2b8;\n}\n\n.swatch-white {\n  color: #212529;\n  background-color: #fff;\n}\n\n.swatch-gray {\n  color: #fff;\n  background-color: #6c757d;\n}\n\n.swatch-gray-dark {\n  color: #fff;\n  background-color: #343a40;\n}\n\n.swatch-primary {\n  color: #fff;\n  background-color: #007bff;\n}\n\n.swatch-secondary {\n  color: #fff;\n  background-color: #6c757d;\n}\n\n.swatch-success {\n  color: #fff;\n  background-color: #28a745;\n}\n\n.swatch-info {\n  color: #fff;\n  background-color: #17a2b8;\n}\n\n.swatch-warning {\n  color: #212529;\n  background-color: #ffc107;\n}\n\n.swatch-danger {\n  color: #fff;\n  background-color: #dc3545;\n}\n\n.swatch-light {\n  color: #212529;\n  background-color: #f8f9fa;\n}\n\n.swatch-dark {\n  color: #fff;\n  background-color: #343a40;\n}\n\n.swatch-100 {\n  color: #212529;\n  background-color: #f8f9fa;\n}\n\n.swatch-200 {\n  color: #212529;\n  background-color: #e9ecef;\n}\n\n.swatch-300 {\n  color: #212529;\n  background-color: #dee2e6;\n}\n\n.swatch-400 {\n  color: #212529;\n  background-color: #ced4da;\n}\n\n.swatch-500 {\n  color: #212529;\n  background-color: #adb5bd;\n}\n\n.swatch-600 {\n  color: #fff;\n  background-color: #6c757d;\n}\n\n.swatch-700 {\n  color: #fff;\n  background-color: #495057;\n}\n\n.swatch-800 {\n  color: #fff;\n  background-color: #343a40;\n}\n\n.swatch-900 {\n  color: #fff;\n  background-color: #212529;\n}\n\n.bd-clipboard {\n  position: relative;\n  display: none;\n  float: right;\n}\n\n.bd-clipboard + .highlight {\n  margin-top: 0;\n}\n\n.btn-clipboard {\n  position: absolute;\n  top: .5rem;\n  right: .5rem;\n  z-index: 10;\n  display: block;\n  padding: .25rem .5rem;\n  font-size: 75%;\n  color: #818a91;\n  cursor: pointer;\n  background-color: transparent;\n  border: 0;\n  border-radius: .25rem;\n}\n\n.btn-clipboard:hover {\n  color: #fff;\n  background-color: #027de7;\n}\n\n@media (min-width: 768px) {\n  .bd-clipboard {\n    display: block;\n  }\n}\n\n.hll {\n  background-color: #ffc;\n}\n\n.c {\n  color: #999;\n}\n\n.k {\n  color: #069;\n}\n\n.o {\n  color: #555;\n}\n\n.cm {\n  color: #999;\n}\n\n.cp {\n  color: #099;\n}\n\n.c1 {\n  color: #999;\n}\n\n.cs {\n  color: #999;\n}\n\n.gd {\n  background-color: #fcc;\n  border: 1px solid #c00;\n}\n\n.ge {\n  font-style: italic;\n}\n\n.gr {\n  color: #f00;\n}\n\n.gh {\n  color: #030;\n}\n\n.gi {\n  background-color: #cfc;\n  border: 1px solid #0c0;\n}\n\n.go {\n  color: #aaa;\n}\n\n.gp {\n  color: #009;\n}\n\n.gu {\n  color: #030;\n}\n\n.gt {\n  color: #9c6;\n}\n\n.kc {\n  color: #069;\n}\n\n.kd {\n  color: #069;\n}\n\n.kn {\n  color: #069;\n}\n\n.kp {\n  color: #069;\n}\n\n.kr {\n  color: #069;\n}\n\n.kt {\n  color: #078;\n}\n\n.m {\n  color: #f60;\n}\n\n.s {\n  color: #d44950;\n}\n\n.na {\n  color: #4f9fcf;\n}\n\n.nb {\n  color: #366;\n}\n\n.nc {\n  color: #0a8;\n}\n\n.no {\n  color: #360;\n}\n\n.nd {\n  color: #99f;\n}\n\n.ni {\n  color: #999;\n}\n\n.ne {\n  color: #c00;\n}\n\n.nf {\n  color: #c0f;\n}\n\n.nl {\n  color: #99f;\n}\n\n.nn {\n  color: #0cf;\n}\n\n.nt {\n  color: #2f6f9f;\n}\n\n.nv {\n  color: #033;\n}\n\n.ow {\n  color: #000;\n}\n\n.w {\n  color: #bbb;\n}\n\n.mf {\n  color: #f60;\n}\n\n.mh {\n  color: #f60;\n}\n\n.mi {\n  color: #f60;\n}\n\n.mo {\n  color: #f60;\n}\n\n.sb {\n  color: #c30;\n}\n\n.sc {\n  color: #c30;\n}\n\n.sd {\n  font-style: italic;\n  color: #c30;\n}\n\n.s2 {\n  color: #c30;\n}\n\n.se {\n  color: #c30;\n}\n\n.sh {\n  color: #c30;\n}\n\n.si {\n  color: #a00;\n}\n\n.sx {\n  color: #c30;\n}\n\n.sr {\n  color: #3aa;\n}\n\n.s1 {\n  color: #c30;\n}\n\n.ss {\n  color: #fc3;\n}\n\n.bp {\n  color: #366;\n}\n\n.vc {\n  color: #033;\n}\n\n.vg {\n  color: #033;\n}\n\n.vi {\n  color: #033;\n}\n\n.il {\n  color: #f60;\n}\n\n.css .o,\n.css .o + .nt,\n.css .nt + .nt {\n  color: #999;\n}\n\n.language-bash::before,\n.language-sh::before {\n  color: #009;\n  content: \"$ \";\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  -ms-user-select: none;\n  user-select: none;\n}\n\n.language-powershell::before {\n  color: #009;\n  content: \"PM> \";\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  -ms-user-select: none;\n  user-select: none;\n}\n\n.anchorjs-link {\n  font-weight: 400;\n  color: rgba(0, 123, 255, 0.5);\n  transition: color .16s linear;\n}\n\n.anchorjs-link:hover {\n  color: #007bff;\n  text-decoration: none;\n}\n\n.algolia-autocomplete {\n  display: block !important;\n  -webkit-box-flex: 1;\n  -ms-flex: 1;\n  flex: 1;\n}\n\n.algolia-autocomplete .ds-dropdown-menu {\n  width: 100%;\n  min-width: 0 !important;\n  max-width: none !important;\n  padding: .75rem 0 !important;\n  background-color: #fff;\n  background-clip: padding-box;\n  border: 1px solid rgba(0, 0, 0, 0.1);\n  box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.175);\n}\n\n@media (min-width: 768px) {\n  .algolia-autocomplete .ds-dropdown-menu {\n    width: 175%;\n  }\n}\n\n.algolia-autocomplete .ds-dropdown-menu::before {\n  display: none !important;\n}\n\n.algolia-autocomplete .ds-dropdown-menu [class^=\"ds-dataset-\"] {\n  padding: 0 !important;\n  overflow: visible !important;\n  background-color: transparent !important;\n  border: 0 !important;\n}\n\n.algolia-autocomplete .ds-dropdown-menu .ds-suggestions {\n  margin-top: 0 !important;\n}\n\n.algolia-autocomplete .algolia-docsearch-suggestion {\n  padding: 0 !important;\n  overflow: visible !important;\n}\n\n.algolia-autocomplete .algolia-docsearch-suggestion--category-header {\n  padding: .125rem 1rem !important;\n  margin-top: 0 !important;\n  font-size: .875rem !important;\n  font-weight: 500 !important;\n  color: #7952b3 !important;\n  border-bottom: 0 !important;\n}\n\n.algolia-autocomplete .algolia-docsearch-suggestion--wrapper {\n  float: none !important;\n  padding-top: 0 !important;\n}\n\n.algolia-autocomplete .algolia-docsearch-suggestion--subcategory-column {\n  float: none !important;\n  width: auto !important;\n  padding: 0 !important;\n  text-align: left !important;\n}\n\n.algolia-autocomplete .algolia-docsearch-suggestion--content {\n  float: none !important;\n  width: auto !important;\n  padding: 0 !important;\n}\n\n.algolia-autocomplete .algolia-docsearch-suggestion--content::before {\n  display: none !important;\n}\n\n.algolia-autocomplete .ds-suggestion:not(:first-child) .algolia-docsearch-suggestion--category-header {\n  padding-top: .75rem !important;\n  margin-top: .75rem !important;\n  border-top: 1px solid rgba(0, 0, 0, 0.1);\n}\n\n.algolia-autocomplete .ds-suggestion .algolia-docsearch-suggestion--subcategory-column {\n  display: none !important;\n}\n\n.algolia-autocomplete .algolia-docsearch-suggestion--title {\n  display: block;\n  padding: .25rem 1rem !important;\n  margin-bottom: 0 !important;\n  font-size: .875rem !important;\n  font-weight: 400 !important;\n}\n\n.algolia-autocomplete .algolia-docsearch-suggestion--text {\n  padding: 0 1rem .5rem !important;\n  margin-top: -.25rem;\n  font-size: .875rem !important;\n  font-weight: 400;\n  line-height: 1.25 !important;\n}\n\n.algolia-autocomplete .algolia-docsearch-footer {\n  float: none !important;\n  width: auto !important;\n  height: auto !important;\n  padding: .75rem 1rem 0;\n  font-size: .75rem !important;\n  line-height: 1 !important;\n  color: #767676 !important;\n  border-top: 1px solid rgba(0, 0, 0, 0.1);\n}\n\n.algolia-autocomplete .algolia-docsearch-footer--logo {\n  display: inline !important;\n  overflow: visible !important;\n  color: inherit !important;\n  text-indent: 0 !important;\n  background: none !important;\n}\n\n.algolia-autocomplete .algolia-docsearch-suggestion--highlight {\n  color: #5f2dab;\n  background-color: rgba(154, 132, 187, 0.12);\n}\n\n.algolia-autocomplete .algolia-docsearch-suggestion--text .algolia-docsearch-suggestion--highlight {\n  box-shadow: inset 0 -2px 0 0 rgba(95, 45, 171, 0.5) !important;\n}\n\n.algolia-autocomplete .ds-suggestion.ds-cursor .algolia-docsearch-suggestion--content {\n  background-color: rgba(208, 189, 236, 0.15) !important;\n}\n/*# sourceMappingURL=docs.min.css.map */","// stylelint-disable selector-max-id\n\n#skippy {\n  display: block;\n  padding: 1em;\n  color: #fff;\n  background-color: $bd-purple;\n  outline: 0;\n\n  .skiplink-text {\n    padding: .5em;\n    outline: 1px dotted;\n  }\n}\n","// stylelint-disable declaration-no-important\n\n//\n// Right side table of contents\n//\n\n.bd-toc {\n  @supports (position: sticky) {\n    position: sticky;\n    top: 4rem;\n    height: calc(100vh - 4rem);\n    overflow-y: auto;\n  }\n  order: 2;\n  padding-top: 1.5rem;\n  padding-bottom: 1.5rem;\n  font-size: .875rem;\n}\n\n.section-nav {\n  padding-left: 0;\n  border-left: 1px solid #eee;\n\n  ul {\n    padding-left: 1rem;\n\n    ul {\n      display: none;\n    }\n  }\n}\n\n.toc-entry {\n  display: block;\n\n  a {\n    display: block;\n    padding: .125rem 1.5rem;\n    color: #99979c;\n\n    &:hover {\n      color: $blue;\n      text-decoration: none;\n    }\n  }\n}\n\n//\n// Left side navigation\n//\n\n.bd-sidebar {\n  order: 0;\n  // background-color: #f5f2f9;\n  border-bottom: 1px solid rgba(0, 0, 0, .1);\n\n  @include media-breakpoint-up(md) {\n    @supports (position: sticky) {\n      position: sticky;\n      top: 4rem;\n      z-index: 1000;\n      height: calc(100vh - 4rem);\n    }\n    border-right: 1px solid rgba(0, 0, 0, .1);\n  }\n\n  @include media-breakpoint-up(xl) {\n    max-width: 320px;\n  }\n}\n\n.bd-links {\n  padding-top: 1rem;\n  padding-bottom: 1rem;\n  margin-right: -15px;\n  margin-left: -15px;\n\n  @include media-breakpoint-up(md) {\n    @supports (position: sticky) {\n      max-height: calc(100vh - 9rem);\n      overflow-y: auto;\n    }\n  }\n\n  // Override collapse behaviors\n  @include media-breakpoint-up(md) {\n    display: block !important;\n  }\n}\n\n.bd-search {\n  position: relative; // To contain the Algolia search\n  padding: 1rem 15px;\n  margin-right: -15px;\n  margin-left: -15px;\n  border-bottom: 1px solid rgba(0, 0, 0, .05);\n\n  .form-control:focus {\n    border-color: $bd-purple-bright;\n    box-shadow: 0 0 0 3px rgba($bd-purple-bright, .25);\n  }\n}\n\n.bd-search-docs-toggle {\n  line-height: 1;\n  color: $gray-900;\n}\n\n.bd-sidenav {\n  display: none;\n}\n\n.bd-toc-link {\n  display: block;\n  padding: .25rem 1.5rem;\n  font-weight: 500;\n  color: rgba(0, 0, 0, .65);\n\n  &:hover {\n    color: rgba(0, 0, 0, .85);\n    text-decoration: none;\n  }\n}\n\n.bd-toc-item {\n  &.active {\n    margin-bottom: 1rem;\n\n    &:not(:first-child) {\n      margin-top: 1rem;\n    }\n\n    > .bd-toc-link {\n      color: rgba(0, 0, 0, .85);\n\n      &:hover {\n        background-color: transparent;\n      }\n    }\n\n    > .bd-sidenav {\n      display: block;\n    }\n  }\n}\n\n// All levels of nav\n.bd-sidebar .nav > li > a {\n  display: block;\n  padding: .25rem 1.5rem;\n  font-size: 90%;\n  color: rgba(0, 0, 0, .65);\n}\n\n.bd-sidebar .nav > li > a:hover {\n  color: rgba(0, 0, 0, .85);\n  text-decoration: none;\n  background-color: transparent;\n}\n\n.bd-sidebar .nav > .active > a,\n.bd-sidebar .nav > .active:hover > a {\n  font-weight: 500;\n  color: rgba(0, 0, 0, .85);\n  background-color: transparent;\n}\n","//\n// Footer\n//\n\n.bd-footer {\n  font-size: 85%;\n  text-align: center;\n  background-color: #f7f7f7;\n\n  a {\n    font-weight: 500;\n    color: $gray-700;\n\n    &:hover,\n    &:focus {\n      color: $link-color;\n    }\n  }\n\n  p {\n    margin-bottom: 0;\n  }\n\n  @include media-breakpoint-up(sm) {\n    text-align: left;\n  }\n}\n\n.bd-footer-links {\n  padding-left: 0;\n  margin-bottom: 1rem;\n\n  li {\n    display: inline-block;\n\n    + li {\n      margin-left: 1rem;\n    }\n  }\n}\n","// stylelint-disable no-duplicate-selectors, selector-no-qualifying-type\n\n//\n// Grid examples\n//\n\n.bd-example-row {\n  .row {\n    > .col,\n    > [class^=\"col-\"] {\n      padding-top: .75rem;\n      padding-bottom: .75rem;\n      background-color: rgba(86, 61, 124, .15);\n      border: 1px solid rgba(86, 61, 124, .2);\n    }\n  }\n\n  .row + .row {\n    margin-top: 1rem;\n  }\n\n  .flex-items-top,\n  .flex-items-middle,\n  .flex-items-bottom {\n    min-height: 6rem;\n    background-color: rgba(255, 0, 0, .1);\n  }\n}\n\n.bd-example-row-flex-cols .row {\n  min-height: 10rem;\n  background-color: rgba(255, 0, 0, .1);\n}\n\n.bd-highlight {\n  background-color: rgba($bd-purple, .15);\n  border: 1px solid rgba($bd-purple, .15);\n}\n\n// Grid mixins\n.example-container {\n  width: 800px;\n  @include make-container();\n}\n\n.example-row {\n  @include make-row();\n}\n\n.example-content-main {\n  @include make-col-ready();\n\n  @include media-breakpoint-up(sm) {\n    @include make-col(6);\n  }\n\n  @include media-breakpoint-up(lg) {\n    @include make-col(8);\n  }\n}\n\n.example-content-secondary {\n  @include make-col-ready();\n\n  @include media-breakpoint-up(sm) {\n    @include make-col(6);\n  }\n\n  @include media-breakpoint-up(lg) {\n    @include make-col(4);\n  }\n}\n\n\n//\n// Container illustrations\n//\n\n.bd-example-container {\n  min-width: 16rem;\n  max-width: 25rem;\n  margin-right: auto;\n  margin-left: auto;\n}\n\n.bd-example-container-header {\n  height: 3rem;\n  margin-bottom: .5rem;\n  background-color: lighten($blue, 50%);\n  border-radius: .25rem;\n}\n\n.bd-example-container-sidebar {\n  float: right;\n  width: 4rem;\n  height: 8rem;\n  background-color: lighten($blue, 25%);\n  border-radius: .25rem;\n}\n\n.bd-example-container-body {\n  height: 8rem;\n  margin-right: 4.5rem;\n  background-color: lighten($bd-purple, 25%);\n  border-radius: .25rem;\n}\n\n.bd-example-container-fluid {\n  max-width: none;\n}\n\n\n//\n// Docs examples\n//\n\n.bd-example {\n  position: relative;\n  padding: 1rem;\n  margin: 1rem (-$grid-gutter-width / 2) 0;\n  border: solid #f7f7f9;\n  border-width: .2rem 0 0;\n  @include clearfix();\n\n  @include media-breakpoint-up(sm) {\n    padding: 1.5rem;\n    margin-right: 0;\n    margin-left: 0;\n    border-width: .2rem;\n  }\n\n  + .highlight,\n  + .clipboard + .highlight {\n    margin-top: 0;\n  }\n\n  + p {\n    margin-top: 2rem;\n  }\n\n  .pos-f-t {\n    position: relative;\n    margin: -1rem;\n\n    @include media-breakpoint-up(sm) {\n      margin: -1.5rem;\n    }\n  }\n\n  > .form-control {\n    + .form-control {\n      margin-top: .5rem;\n    }\n  }\n\n  > .nav + .nav,\n  > .alert + .alert,\n  > .navbar + .navbar,\n  > .progress + .progress,\n  > .progress + .btn {\n    margin-top: 1rem;\n  }\n\n  > .dropdown-menu:first-child {\n    position: static;\n    display: block;\n  }\n\n  > .form-group:last-child {\n    margin-bottom: 0;\n  }\n\n  > .close {\n    float: none;\n  }\n}\n\n// Typography\n.bd-example-type {\n  .table {\n    .type-info {\n      color: #999;\n      vertical-align: middle;\n    }\n    td {\n      padding: 1rem 0;\n      border-color: #eee;\n    }\n    tr:first-child td {\n      border-top: 0;\n    }\n  }\n\n  h1,\n  h2,\n  h3,\n  h4,\n  h5,\n  h6 {\n    margin-top: 0;\n    margin-bottom: 0;\n  }\n}\n\n// Contextual background colors\n.bd-example-bg-classes p {\n  padding: 1rem;\n}\n\n// Images\n.bd-example > img {\n  + img {\n    margin-left: .5rem;\n  }\n}\n\n// Buttons\n.bd-example {\n  > .btn-group {\n    margin-top: .25rem;\n    margin-bottom: .25rem;\n  }\n  > .btn-toolbar + .btn-toolbar {\n    margin-top: .5rem;\n  }\n}\n\n// Forms\n.bd-example-control-sizing select,\n.bd-example-control-sizing input[type=\"text\"] + input[type=\"text\"] {\n  margin-top: .5rem;\n}\n.bd-example-form .input-group {\n  margin-bottom: .5rem;\n}\n.bd-example > textarea.form-control {\n  resize: vertical;\n}\n\n// List groups\n.bd-example > .list-group {\n  max-width: 400px;\n}\n\n// Navbars\n.bd-example {\n  .fixed-top,\n  .sticky-top {\n    position: static;\n    margin: -1rem -1rem 1rem;\n  }\n  .fixed-bottom {\n    position: static;\n    margin: 1rem -1rem -1rem;\n  }\n\n  @include media-breakpoint-up(sm) {\n    .fixed-top,\n    .sticky-top {\n      margin: -1.5rem -1.5rem 1rem;\n    }\n    .fixed-bottom {\n      margin: 1rem -1.5rem -1.5rem;\n    }\n  }\n}\n\n// Pagination\n.bd-example .pagination {\n  margin-top: .5rem;\n  margin-bottom: .5rem;\n}\n\n// Example modals\n.modal {\n  z-index: 1072;\n\n  .tooltip,\n  .popover {\n    z-index: 1073;\n  }\n}\n\n.modal-backdrop {\n  z-index: 1071;\n}\n\n.bd-example-modal {\n  background-color: #fafafa;\n\n  .modal {\n    position: relative;\n    top: auto;\n    right: auto;\n    bottom: auto;\n    left: auto;\n    z-index: 1;\n    display: block;\n  }\n\n  .modal-dialog {\n    left: auto;\n    margin-right: auto;\n    margin-left: auto;\n  }\n}\n\n// Example tabbable tabs\n.bd-example-tabs .nav-tabs {\n  margin-bottom: 1rem;\n}\n\n// Popovers\n.bd-example-popover-static {\n  padding-bottom: 1.5rem;\n  background-color: #f9f9f9;\n\n  .popover {\n    position: relative;\n    display: block;\n    float: left;\n    width: 260px;\n    margin: 1.25rem;\n  }\n}\n\n// Tooltips\n.tooltip-demo a {\n  white-space: nowrap;\n}\n\n.bd-example-tooltip-static .tooltip {\n  position: relative;\n  display: inline-block;\n  margin: 10px 20px;\n  opacity: 1;\n}\n\n// Scrollspy demo on fixed height div\n.scrollspy-example {\n  position: relative;\n  height: 200px;\n  margin-top: .5rem;\n  overflow: auto;\n}\n\n.scrollspy-example-2 {\n  position: relative;\n  height: 350px;\n  overflow: auto;\n}\n\n.bd-example-border-utils {\n  [class^=\"border\"] {\n    display: inline-block;\n    width: 5rem;\n    height: 5rem;\n    margin: .25rem;\n    background-color: #f5f5f5;\n    border: 1px solid;\n  }\n}\n\n//\n// Code snippets\n//\n\n.highlight {\n  padding: 1rem;\n  margin-top: 1rem;\n  margin-bottom: 1rem;\n  background-color: #f7f7f9;\n  -ms-overflow-style: -ms-autohiding-scrollbar;\n\n  @include media-breakpoint-up(sm) {\n    padding: 1.5rem;\n  }\n}\n\n.bd-content .highlight {\n  margin-right: (-$grid-gutter-width / 2);\n  margin-left: (-$grid-gutter-width / 2);\n\n  @include media-breakpoint-up(sm) {\n    margin-right: 0;\n    margin-left: 0;\n  }\n}\n\n.highlight {\n  pre {\n    padding: 0;\n    margin-top: 0;\n    margin-bottom: 0;\n    background-color: transparent;\n    border: 0;\n  }\n  pre code {\n    font-size: inherit;\n    color: $gray-900; // Effectively the base text color\n  }\n}\n","/// Grid system\n//\n// Generate semantic grid columns with these mixins.\n\n@mixin make-container() {\n  width: 100%;\n  padding-right: ($grid-gutter-width / 2);\n  padding-left: ($grid-gutter-width / 2);\n  margin-right: auto;\n  margin-left: auto;\n}\n\n\n// For each breakpoint, define the maximum width of the container in a media query\n@mixin make-container-max-widths($max-widths: $container-max-widths, $breakpoints: $grid-breakpoints) {\n  @each $breakpoint, $container-max-width in $max-widths {\n    @include media-breakpoint-up($breakpoint, $breakpoints) {\n      max-width: $container-max-width;\n    }\n  }\n}\n\n@mixin make-row() {\n  display: flex;\n  flex-wrap: wrap;\n  margin-right: ($grid-gutter-width / -2);\n  margin-left: ($grid-gutter-width / -2);\n}\n\n@mixin make-col-ready() {\n  position: relative;\n  // Prevent columns from becoming too narrow when at smaller grid tiers by\n  // always setting `width: 100%;`. This works because we use `flex` values\n  // later on to override this initial width.\n  width: 100%;\n  min-height: 1px; // Prevent collapsing\n  padding-right: ($grid-gutter-width / 2);\n  padding-left: ($grid-gutter-width / 2);\n}\n\n@mixin make-col($size, $columns: $grid-columns) {\n  flex: 0 0 percentage($size / $columns);\n  // Add a `max-width` to ensure content within each column does not blow out\n  // the width of the column. Applies to IE10+ and Firefox. Chrome and Safari\n  // do not appear to require this.\n  max-width: percentage($size / $columns);\n}\n\n@mixin make-col-offset($size, $columns: $grid-columns) {\n  $num: $size / $columns;\n  margin-left: if($num == 0, 0, percentage($num));\n}\n","@mixin clearfix() {\n  &::after {\n    display: block;\n    clear: both;\n    content: \"\";\n  }\n}\n","// Buttons\n//\n// Custom buttons for the docs.\n\n.btn-bd-primary {\n  font-weight: 500;\n  color: $bd-purple-bright;\n  border-color: $bd-purple-bright;\n\n  &:hover,\n  &:active {\n    color: #fff;\n    background-color: $bd-purple-bright;\n    border-color: $bd-purple-bright;\n  }\n}\n\n.btn-bd-download {\n  font-weight: 500;\n  color: $bd-download;\n  border-color: $bd-download;\n\n  &:hover,\n  &:active {\n    color: $bd-dark;\n    background-color: $bd-download;\n    border-color: $bd-download;\n  }\n}\n","//\n// Callouts\n//\n\n.bd-callout {\n  padding: 1.25rem;\n  margin-top: 1.25rem;\n  margin-bottom: 1.25rem;\n  border: 1px solid #eee;\n  border-left-width: .25rem;\n  border-radius: .25rem;\n}\n\n.bd-callout h4 {\n  margin-top: 0;\n  margin-bottom: .25rem;\n}\n\n.bd-callout p:last-child {\n  margin-bottom: 0;\n}\n\n.bd-callout code {\n  border-radius: .25rem;\n}\n\n.bd-callout + .bd-callout {\n  margin-top: -.25rem;\n}\n\n// Variations\n@mixin bs-callout-variant($color) {\n  border-left-color: $color;\n\n  h4 { color: $color; }\n}\n\n.bd-callout-info { @include bs-callout-variant($bd-info); }\n.bd-callout-warning { @include bs-callout-variant($bd-warning); }\n.bd-callout-danger { @include bs-callout-variant($bd-danger); }\n","//\n// Examples\n//\n\n.bd-examples .img-thumbnail {\n  margin-bottom: .75rem;\n}\n.bd-examples h4 {\n  margin-bottom: .25rem;\n}\n.bd-examples p {\n  margin-bottom: 1.25rem;\n}\n\n@media (max-width: 480px) {\n  .bd-examples {\n    margin-right: -.75rem;\n    margin-left: -.75rem;\n  }\n  .bd-examples > [class^=\"col-\"] {\n    padding-right: .75rem;\n    padding-left: .75rem;\n  }\n}\n","// Wall of Browser Bugs\n//\n// Better display for the responsive table on the Wall of Browser Bugs.\n\n.bd-browser-bugs {\n  td p {\n    margin-bottom: 0;\n  }\n  th:first-child {\n    width: 18%;\n  }\n}\n","// stylelint-disable no-duplicate-selectors\n\n//\n// Brand guidelines\n//\n\n// Logo series wrapper\n.bd-brand-logos {\n  display: table;\n  width: 100%;\n  margin-bottom: 1rem;\n  overflow: hidden;\n  color: #563d7c;\n  background-color: #f9f9f9;\n  border-radius: .25rem;\n}\n\n// Individual items\n.bd-brand-item {\n  padding: 4rem 0;\n  text-align: center;\n}\n.bd-brand-item + .bd-brand-item {\n  border-top: 1px solid #fff;\n}\n.bd-brand-logos .inverse {\n  color: #fff;\n  background-color: #563d7c;\n}\n\n// Heading content within\n.bd-brand-item h1,\n.bd-brand-item h3 {\n  margin-top: 0;\n  margin-bottom: 0;\n}\n.bd-brand-item .bd-booticon {\n  margin-right: auto;\n  margin-left: auto;\n}\n\n// Make the icons stand out on what is/isn't okay\n// .bd-brand-item .glyphicon {\n//   width: 30px;\n//   height: 30px;\n//   margin: 10px auto -10px;\n//   line-height: 30px;\n//   color: #fff;\n//   border-radius: 50%;\n// }\n// .bd-brand-item .glyphicon-ok {\n//   background-color: #5cb85c;\n// }\n// .bd-brand-item .glyphicon-remove {\n//   background-color: #d9534f;\n// }\n\n@media (min-width: 768px) {\n  .bd-brand-item {\n    display: table-cell;\n    width: 1%;\n  }\n  .bd-brand-item + .bd-brand-item {\n    border-top: 0;\n    border-left: 1px solid #fff;\n  }\n  .bd-brand-item h1 {\n    font-size: 4rem;\n  }\n}\n\n\n//\n// Color swatches\n//\n\n.color-swatches {\n  margin: 0 -5px;\n  overflow: hidden; // clearfix\n}\n\n.color-swatch {\n  float: left;\n  width: 4rem;\n  height: 4rem;\n  margin-right: .25rem;\n  margin-left: .25rem;\n  border-radius: .25rem;\n\n  @media (min-width: 768px) {\n    width: 6rem;\n    height: 6rem;\n  }\n}\n\n// Docs colors\n.color-swatches {\n  .bd-purple {\n    background-color: $bd-purple;\n  }\n  .bd-purple-light {\n    background-color: $bd-purple-light;\n  }\n  .bd-purple-lighter {\n    background-color: #e5e1ea;\n  }\n  .bd-gray {\n    background-color: #f9f9f9;\n  }\n}\n","//\n// Docs color palette classes\n//\n\n@each $color, $value in $colors {\n  .swatch-#{$color} {\n    color: color-yiq($value);\n    background-color: #{$value};\n  }\n}\n\n@each $color, $value in $theme-colors {\n  .swatch-#{$color} {\n    color: color-yiq($value);\n    background-color: #{$value};\n  }\n}\n\n@each $color, $value in $grays {\n  .swatch-#{$color} {\n    color: color-yiq($value);\n    background-color: #{$value};\n  }\n}\n","// clipboard.js\n//\n// JS-based `Copy` buttons for code snippets.\n\n.bd-clipboard {\n  position: relative;\n  display: none;\n  float: right;\n\n  + .highlight {\n    margin-top: 0;\n  }\n}\n\n.btn-clipboard {\n  position: absolute;\n  top: .5rem;\n  right: .5rem;\n  z-index: 10;\n  display: block;\n  padding: .25rem .5rem;\n  font-size: 75%;\n  color: #818a91;\n  cursor: pointer;\n  background-color: transparent;\n  border: 0;\n  border-radius: .25rem;\n\n  &:hover {\n    color: #fff;\n    background-color: #027de7;\n  }\n}\n\n@media (min-width: 768px) {\n  .bd-clipboard {\n    display: block;\n  }\n}\n","// stylelint-disable declaration-block-single-line-max-declarations\n\n.hll { background-color: #ffc; }\n.c { color: #999; }\n.k { color: #069; }\n.o { color: #555; }\n.cm { color: #999; }\n.cp { color: #099; }\n.c1 { color: #999; }\n.cs { color: #999; }\n.gd { background-color: #fcc; border: 1px solid #c00; }\n.ge { font-style: italic; }\n.gr { color: #f00; }\n.gh { color: #030; }\n.gi { background-color: #cfc; border: 1px solid #0c0; }\n.go { color: #aaa; }\n.gp { color: #009; }\n.gu { color: #030; }\n.gt { color: #9c6; }\n.kc { color: #069; }\n.kd { color: #069; }\n.kn { color: #069; }\n.kp { color: #069; }\n.kr { color: #069; }\n.kt { color: #078; }\n.m { color: #f60; }\n.s { color: #d44950; }\n.na { color: #4f9fcf; }\n.nb { color: #366; }\n.nc { color: #0a8; }\n.no { color: #360; }\n.nd { color: #99f; }\n.ni { color: #999; }\n.ne { color: #c00; }\n.nf { color: #c0f; }\n.nl { color: #99f; }\n.nn { color: #0cf; }\n.nt { color: #2f6f9f; }\n.nv { color: #033; }\n.ow { color: #000; }\n.w { color: #bbb; }\n.mf { color: #f60; }\n.mh { color: #f60; }\n.mi { color: #f60; }\n.mo { color: #f60; }\n.sb { color: #c30; }\n.sc { color: #c30; }\n.sd { font-style: italic; color: #c30; }\n.s2 { color: #c30; }\n.se { color: #c30; }\n.sh { color: #c30; }\n.si { color: #a00; }\n.sx { color: #c30; }\n.sr { color: #3aa; }\n.s1 { color: #c30; }\n.ss { color: #fc3; }\n.bp { color: #366; }\n.vc { color: #033; }\n.vg { color: #033; }\n.vi { color: #033; }\n.il { color: #f60; }\n\n.css .o,\n.css .o + .nt,\n.css .nt + .nt { color: #999; }\n\n.language-bash::before,\n.language-sh::before {\n  color: #009;\n  content: \"$ \";\n  user-select: none;\n}\n\n.language-powershell::before {\n  color: #009;\n  content: \"PM> \";\n  user-select: none;\n}\n",".anchorjs-link {\n  font-weight: 400;\n  color: rgba($link-color, .5);\n  transition: color .16s linear;\n\n  &:hover {\n    color: $link-color;\n    text-decoration: none;\n  }\n}\n","// stylelint-disable declaration-no-important\n\n// Docsearch overrides\n//\n// `!important` indicates overridden properties.\n.algolia-autocomplete {\n  display: block !important;\n  flex: 1;\n\n  // Menu container\n  .ds-dropdown-menu {\n    width: 100%;\n    min-width: 0 !important;\n    max-width: none !important;\n    padding: .75rem 0 !important;\n    background-color: #fff;\n    background-clip: padding-box;\n    border: 1px solid rgba(0, 0, 0, .1);\n    box-shadow: 0 .5rem 1rem rgba(0, 0, 0, .175);\n\n    @include media-breakpoint-up(md) {\n      width: 175%;\n    }\n\n    // Caret\n    &::before {\n      display: none !important;\n    }\n\n    [class^=\"ds-dataset-\"] {\n      padding: 0 !important;\n      overflow: visible !important;\n      background-color: transparent !important;\n      border: 0 !important;\n    }\n\n    .ds-suggestions {\n      margin-top: 0 !important;\n    }\n  }\n\n  .algolia-docsearch-suggestion {\n    padding: 0 !important;\n    overflow: visible !important;\n  }\n\n  .algolia-docsearch-suggestion--category-header {\n    padding: .125rem 1rem !important;\n    margin-top: 0 !important;\n    font-size: .875rem !important;\n    font-weight: 500 !important;\n    color: $bd-purple-bright !important;\n    border-bottom: 0 !important;\n  }\n\n  .algolia-docsearch-suggestion--wrapper {\n    float: none !important;\n    padding-top: 0 !important;\n  }\n\n  // Section header\n  .algolia-docsearch-suggestion--subcategory-column {\n    float: none !important;\n    width: auto !important;\n    padding: 0 !important;\n    text-align: left !important;\n  }\n\n  .algolia-docsearch-suggestion--content {\n    float: none !important;\n    width: auto !important;\n    padding: 0 !important;\n\n    // Vertical divider between column header and content\n    &::before {\n      display: none !important;\n    }\n  }\n\n  .ds-suggestion {\n    &:not(:first-child) {\n      .algolia-docsearch-suggestion--category-header {\n        padding-top: .75rem !important;\n        margin-top: .75rem !important;\n        border-top: 1px solid rgba(0, 0, 0, .1);\n      }\n    }\n\n    .algolia-docsearch-suggestion--subcategory-column {\n      display: none !important;\n    }\n  }\n\n  .algolia-docsearch-suggestion--title {\n    display: block;\n    padding: .25rem 1rem !important;\n    margin-bottom: 0 !important;\n    font-size: .875rem !important;\n    font-weight: 400 !important;\n  }\n\n  .algolia-docsearch-suggestion--text {\n    padding: 0 1rem .5rem !important;\n    margin-top: -.25rem;\n    font-size: .875rem !important;\n    font-weight: 400;\n    line-height: 1.25 !important;\n  }\n\n  .algolia-docsearch-footer {\n    float: none !important;\n    width: auto !important;\n    height: auto !important;\n    padding: .75rem 1rem 0;\n    font-size: .75rem !important;\n    line-height: 1 !important;\n    color: #767676 !important;\n    border-top: 1px solid rgba(0, 0, 0, .1);\n  }\n\n  .algolia-docsearch-footer--logo {\n    display: inline !important;\n    overflow: visible !important;\n    color: inherit !important;\n    text-indent: 0 !important;\n    background: none !important;\n  }\n\n  .algolia-docsearch-suggestion--highlight {\n    color: #5f2dab;\n    background-color: rgba(154, 132, 187, .12);\n  }\n\n  .algolia-docsearch-suggestion--text .algolia-docsearch-suggestion--highlight {\n    box-shadow: inset 0 -2px 0 0 rgba(95, 45, 171, .5) !important;\n  }\n\n  .ds-suggestion.ds-cursor .algolia-docsearch-suggestion--content {\n    background-color: rgba(208, 189, 236, .15) !important;\n  }\n}\n"]}
\ No newline at end of file
+{"version":3,"sources":["../scss/docs.scss","../scss/_nav.scss","../../scss/mixins/_breakpoints.scss","../scss/_masthead.scss","../scss/_ads.scss","../scss/_content.scss","assets/css/docs.min.css","../scss/_skiplink.scss","../scss/_sidebar.scss","../scss/_footer.scss","../scss/_component-examples.scss","../../scss/mixins/_grid.scss","../../scss/mixins/_clearfix.scss","../scss/_buttons.scss","../scss/_callouts.scss","../scss/_examples.scss","../scss/_browser-bugs.scss","../scss/_brand.scss","../scss/_colors.scss","../scss/_clipboard-js.scss","../scss/_syntax.scss","../scss/_anchor.scss","../scss/_algolia.scss"],"names":[],"mappings":"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","sourcesContent":["/*!\n * Bootstrap Docs (https://getbootstrap.com)\n * Copyright 2011-2017 The Bootstrap Authors\n * Copyright 2011-2017 Twitter, Inc.\n * Licensed under the Creative Commons Attribution 3.0 Unported License. For\n * details, see https://creativecommons.org/licenses/by/3.0/.\n */\n\n// Dev notes\n//\n// Background information on nomenclature and architecture decisions here.\n//\n// - Bootstrap functions, variables, and mixins are included for easy reuse.\n//   Doing so gives us access to the same core utilities provided by Bootstrap.\n//   For example, consistent media queries through those mixins.\n//\n// - Bootstrap's **docs variables** are prefixed with `$bd-`.\n//   These custom colors avoid collision with the components Bootstrap provides.\n//\n// - Classes are prefixed with `.bd-`.\n//   These classes indicate custom-built or modified components for the design\n//   and layout of the Bootstrap docs. They are not included in our builds.\n//\n// Happy Bootstrapping!\n\n// Load Bootstrap variables and mixins\n@import \"../../scss/functions\";\n@import \"../../scss/variables\";\n@import \"../../scss/mixins\";\n\n// Load docs components\n@import \"variables\";\n@import \"nav\";\n@import \"masthead\";\n@import \"ads\";\n@import \"content\";\n@import \"skiplink\";\n@import \"sidebar\";\n@import \"footer\";\n@import \"component-examples\";\n@import \"buttons\";\n@import \"callouts\";\n@import \"examples\";\n@import \"browser-bugs\";\n@import \"brand\";\n@import \"colors\";\n@import \"clipboard-js\";\n\n// Load docs dependencies\n@import \"syntax\";\n@import \"anchor\";\n@import \"algolia\";\n","//\n// Main navbar\n//\n\n.bd-navbar {\n  min-height: 4rem;\n  background-color: $bd-purple;\n  box-shadow: 0 .5rem 1rem rgba(0, 0, 0, .05), inset 0 -1px 0 rgba(0, 0, 0, .1);\n\n  @include media-breakpoint-down(md) {\n    padding-right: .5rem;\n    padding-left: .5rem;\n\n    .navbar-nav-scroll {\n      max-width: 100%;\n      height: 2.5rem;\n      margin-top: .25rem;\n      overflow: hidden;\n      font-size: .875rem;\n\n      .navbar-nav {\n        padding-bottom: 2rem;\n        overflow-x: auto;\n        white-space: nowrap;\n        -webkit-overflow-scrolling: touch;\n      }\n    }\n  }\n\n  @include media-breakpoint-up(md) {\n    @supports (position: sticky) {\n      position: sticky;\n      top: 0;\n      z-index: 1071; // over everything in bootstrap\n    }\n  }\n\n  .navbar-nav {\n    .nav-link {\n      padding-right: .5rem;\n      padding-left: .5rem;\n      color: $bd-purple-light;\n\n      &.active,\n      &:hover {\n        color: #fff;\n        background-color: transparent;\n      }\n\n      &.active {\n        font-weight: 500;\n      }\n    }\n  }\n\n  .navbar-nav-svg {\n    display: inline-block;\n    width: 1rem;\n    height: 1rem;\n    vertical-align: text-top;\n  }\n\n  .dropdown-menu {\n    font-size: .875rem;\n  }\n\n  .dropdown-item.active {\n    font-weight: 500;\n    color: $gray-900;\n    background-color: transparent;\n    background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23292b2c' 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: .4rem .6rem;\n    background-size: .75rem .75rem;\n  }\n}\n","// Breakpoint viewport sizes and media queries.\n//\n// Breakpoints are defined as a map of (name: minimum width), order from small to large:\n//\n//    (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px)\n//\n// The map defined in the `$grid-breakpoints` global variable is used as the `$breakpoints` argument by default.\n\n// Name of the next breakpoint, or null for the last breakpoint.\n//\n//    >> breakpoint-next(sm)\n//    md\n//    >> breakpoint-next(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n//    md\n//    >> breakpoint-next(sm, $breakpoint-names: (xs sm md lg xl))\n//    md\n@function breakpoint-next($name, $breakpoints: $grid-breakpoints, $breakpoint-names: map-keys($breakpoints)) {\n  $n: index($breakpoint-names, $name);\n  @return if($n < length($breakpoint-names), nth($breakpoint-names, $n + 1), null);\n}\n\n// Minimum breakpoint width. Null for the smallest (first) breakpoint.\n//\n//    >> breakpoint-min(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n//    576px\n@function breakpoint-min($name, $breakpoints: $grid-breakpoints) {\n  $min: map-get($breakpoints, $name);\n  @return if($min != 0, $min, null);\n}\n\n// Maximum breakpoint width. Null for the largest (last) breakpoint.\n// The maximum value is calculated as the minimum of the next one less 0.01px\n// to work around the limitations of `min-` and `max-` prefixes and viewports with fractional widths.\n// See https://www.w3.org/TR/mediaqueries-4/#mq-min-max\n//\n//    >> breakpoint-max(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n//    767px\n@function breakpoint-max($name, $breakpoints: $grid-breakpoints) {\n  $next: breakpoint-next($name, $breakpoints);\n  @return if($next, breakpoint-min($next, $breakpoints) - .01px, null);\n}\n\n// Returns a blank string if smallest breakpoint, otherwise returns the name with a dash infront.\n// Useful for making responsive utilities.\n//\n//    >> breakpoint-infix(xs, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n//    \"\"  (Returns a blank string)\n//    >> breakpoint-infix(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n//    \"-sm\"\n@function breakpoint-infix($name, $breakpoints: $grid-breakpoints) {\n  @return if(breakpoint-min($name, $breakpoints) == null, \"\", \"-#{$name}\");\n}\n\n// Media of at least the minimum breakpoint width. No query for the smallest breakpoint.\n// Makes the @content apply to the given breakpoint and wider.\n@mixin media-breakpoint-up($name, $breakpoints: $grid-breakpoints) {\n  $min: breakpoint-min($name, $breakpoints);\n  @if $min {\n    @media (min-width: $min) {\n      @content;\n    }\n  } @else {\n    @content;\n  }\n}\n\n// Media of at most the maximum breakpoint width. No query for the largest breakpoint.\n// Makes the @content apply to the given breakpoint and narrower.\n@mixin media-breakpoint-down($name, $breakpoints: $grid-breakpoints) {\n  $max: breakpoint-max($name, $breakpoints);\n  @if $max {\n    @media (max-width: $max) {\n      @content;\n    }\n  } @else {\n    @content;\n  }\n}\n\n// Media that spans multiple breakpoint widths.\n// Makes the @content apply between the min and max breakpoints\n@mixin media-breakpoint-between($lower, $upper, $breakpoints: $grid-breakpoints) {\n  $min: breakpoint-min($lower, $breakpoints);\n  $max: breakpoint-max($upper, $breakpoints);\n\n  @if $min != null and $max != null {\n    @media (min-width: $min) and (max-width: $max) {\n      @content;\n    }\n  } @else if $max == null {\n    @include media-breakpoint-up($lower) {\n      @content;\n    }\n  } @else if $min == null {\n    @include media-breakpoint-down($upper) {\n      @content;\n    }\n  }\n}\n\n// Media between the breakpoint's minimum and maximum widths.\n// No minimum for the smallest breakpoint, and no maximum for the largest one.\n// Makes the @content apply only to the given breakpoint, not viewports any wider or narrower.\n@mixin media-breakpoint-only($name, $breakpoints: $grid-breakpoints) {\n  $min: breakpoint-min($name, $breakpoints);\n  $max: breakpoint-max($name, $breakpoints);\n\n  @if $min != null and $max != null {\n    @media (min-width: $min) and (max-width: $max) {\n      @content;\n    }\n  } @else if $max == null {\n    @include media-breakpoint-up($name) {\n      @content;\n    }\n  } @else if $min == null {\n    @include media-breakpoint-down($name) {\n      @content;\n    }\n  }\n}\n","// stylelint-disable declaration-no-important\n\n.bd-masthead {\n  position: relative;\n  padding: 3rem ($grid-gutter-width / 2);\n  // background-image: linear-gradient(45deg, #fafafa, #f5f5f5);\n\n  h1 {\n    line-height: 1;\n  }\n\n  .btn {\n    width: 100%;\n    padding: .8rem 2rem;\n    font-size: 1.25rem;\n    font-weight: 500;\n  }\n\n  .carbonad {\n    margin-top: 0 !important;\n    margin-bottom: -3rem !important;\n  }\n\n  @include media-breakpoint-up(sm) {\n    padding-top: 5rem;\n    padding-bottom: 5rem;\n\n    .carbonad {\n      margin-bottom: 0 !important;\n    }\n  }\n\n  @include media-breakpoint-up(md) {\n    h1 {\n      font-size: 4rem;\n    }\n\n    .carbonad {\n      margin-top: 3rem !important;\n    }\n  }\n}\n\n.half-rule {\n  width: 6rem;\n  margin: 2.5rem 0;\n}\n\n.masthead-followup {\n  .bd-clipboard { display: none; }\n\n  .highlight {\n    padding: .5rem 0;\n    background-color: transparent;\n  }\n}\n","// stylelint-disable declaration-no-important, selector-max-id\n\n//\n// Carbon ads\n//\n\n#carbonads {\n  position: static;\n  display: block;\n  max-width: 400px;\n  padding: 15px 15px 15px 160px;\n  margin: 2rem 0;\n  overflow: hidden;\n  font-size: 13px;\n  line-height: 1.4;\n  text-align: left;\n  background-color: rgba(0, 0, 0, .05);\n\n  a {\n    color: #333;\n    text-decoration: none;\n  }\n\n  @include media-breakpoint-up(sm) {\n    max-width: 330px;\n    border-radius: 4px;\n  }\n}\n\n.carbon-img {\n  float: left;\n  margin-left: -145px;\n}\n\n.carbon-poweredby {\n  display: block;\n  color: #777 !important;\n}\n","// stylelint-disable no-duplicate-selectors, selector-max-combinators, selector-max-compound-selectors, selector-max-type, selector-no-qualifying-type\n\n//\n// Automatically style Markdown-based tables like a Bootstrap `.table`.\n//\n\n.bd-content {\n  order: 1;\n\n  // Hack the sticky header\n  > h2[id],\n  > h3[id],\n  > h4[id] {\n    pointer-events: none;\n\n    > div,\n    > a {\n      pointer-events: auto;\n    }\n\n    &::before {\n      display: block;\n      height: 6rem;\n      margin-top: -6rem;\n      visibility: hidden;\n      content: \"\";\n    }\n  }\n\n  > table {\n    width: 100%;\n    max-width: 100%;\n    margin-bottom: 1rem;\n\n    @include media-breakpoint-down(md) {\n      display: block;\n      overflow-x: auto;\n      -ms-overflow-style: -ms-autohiding-scrollbar; // See https://github.com/twbs/bootstrap/pull/10057\n\n      &.table-bordered {\n        border: 0;\n      }\n    }\n\n    // Cells\n    > thead,\n    > tbody,\n    > tfoot {\n      > tr {\n        > th,\n        > td {\n          padding: $table-cell-padding;\n          vertical-align: top;\n          border: 1px solid $table-border-color;\n\n          > p:last-child {\n            margin-bottom: 0;\n          }\n        }\n      }\n    }\n\n    // Prevent breaking of code (e.g., Grunt tasks list)\n    td:first-child > code {\n      white-space: nowrap;\n    }\n  }\n}\n\n//\n// Docs sections\n//\n\n.bd-content {\n  > h2:not(:first-child) {\n    margin-top: 3rem;\n  }\n\n  > h3 {\n    margin-top: 1.5rem;\n  }\n\n  > ul li,\n  > ol li {\n    margin-bottom: .25rem;\n  }\n\n  @include media-breakpoint-up(lg) {\n    > ul,\n    > ol,\n    > p {\n      max-width: 80%;\n    }\n  }\n}\n\n.bd-title {\n  margin-top: 1rem;\n  margin-bottom: .5rem;\n  font-weight: 300;\n\n  @include media-breakpoint-up(sm) {\n    font-size: 3rem;\n  }\n}\n\n.bd-lead {\n  font-size: 1.125rem;\n  font-weight: 300;\n\n  @include media-breakpoint-up(sm) {\n    max-width: 80%;\n    margin-bottom: 1rem;\n    font-size: 1.5rem;\n  }\n}\n\n.bd-text-purple { color: $bd-purple; }\n.bd-text-purple-bright { color: $bd-purple-bright; }\n","/*!\n * Bootstrap Docs (https://getbootstrap.com)\n * Copyright 2011-2017 The Bootstrap Authors\n * Copyright 2011-2017 Twitter, Inc.\n * Licensed under the Creative Commons Attribution 3.0 Unported License. For\n * details, see https://creativecommons.org/licenses/by/3.0/.\n */\n.bd-navbar {\n  min-height: 4rem;\n  background-color: #563d7c;\n  box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.05), inset 0 -1px 0 rgba(0, 0, 0, 0.1);\n}\n\n@media (max-width: 991.99px) {\n  .bd-navbar {\n    padding-right: .5rem;\n    padding-left: .5rem;\n  }\n  .bd-navbar .navbar-nav-scroll {\n    max-width: 100%;\n    height: 2.5rem;\n    margin-top: .25rem;\n    overflow: hidden;\n    font-size: .875rem;\n  }\n  .bd-navbar .navbar-nav-scroll .navbar-nav {\n    padding-bottom: 2rem;\n    overflow-x: auto;\n    white-space: nowrap;\n    -webkit-overflow-scrolling: touch;\n  }\n}\n\n@media (min-width: 768px) {\n  @supports ((position: -webkit-sticky) or (position: sticky)) {\n    .bd-navbar {\n      position: -webkit-sticky;\n      position: sticky;\n      top: 0;\n      z-index: 1071;\n    }\n  }\n}\n\n.bd-navbar .navbar-nav .nav-link {\n  padding-right: .5rem;\n  padding-left: .5rem;\n  color: #cbbde2;\n}\n\n.bd-navbar .navbar-nav .nav-link.active, .bd-navbar .navbar-nav .nav-link:hover {\n  color: #fff;\n  background-color: transparent;\n}\n\n.bd-navbar .navbar-nav .nav-link.active {\n  font-weight: 500;\n}\n\n.bd-navbar .navbar-nav-svg {\n  display: inline-block;\n  width: 1rem;\n  height: 1rem;\n  vertical-align: text-top;\n}\n\n.bd-navbar .dropdown-menu {\n  font-size: .875rem;\n}\n\n.bd-navbar .dropdown-item.active {\n  font-weight: 500;\n  color: #212529;\n  background-color: transparent;\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23292b2c' 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: .4rem .6rem;\n  background-size: .75rem .75rem;\n}\n\n.bd-masthead {\n  position: relative;\n  padding: 3rem 15px;\n}\n\n.bd-masthead h1 {\n  line-height: 1;\n}\n\n.bd-masthead .btn {\n  width: 100%;\n  padding: .8rem 2rem;\n  font-size: 1.25rem;\n  font-weight: 500;\n}\n\n.bd-masthead .carbonad {\n  margin-top: 0 !important;\n  margin-bottom: -3rem !important;\n}\n\n@media (min-width: 576px) {\n  .bd-masthead {\n    padding-top: 5rem;\n    padding-bottom: 5rem;\n  }\n  .bd-masthead .carbonad {\n    margin-bottom: 0 !important;\n  }\n}\n\n@media (min-width: 768px) {\n  .bd-masthead h1 {\n    font-size: 4rem;\n  }\n  .bd-masthead .carbonad {\n    margin-top: 3rem !important;\n  }\n}\n\n.half-rule {\n  width: 6rem;\n  margin: 2.5rem 0;\n}\n\n.masthead-followup .bd-clipboard {\n  display: none;\n}\n\n.masthead-followup .highlight {\n  padding: .5rem 0;\n  background-color: transparent;\n}\n\n#carbonads {\n  position: static;\n  display: block;\n  max-width: 400px;\n  padding: 15px 15px 15px 160px;\n  margin: 2rem 0;\n  overflow: hidden;\n  font-size: 13px;\n  line-height: 1.4;\n  text-align: left;\n  background-color: rgba(0, 0, 0, 0.05);\n}\n\n#carbonads a {\n  color: #333;\n  text-decoration: none;\n}\n\n@media (min-width: 576px) {\n  #carbonads {\n    max-width: 330px;\n    border-radius: 4px;\n  }\n}\n\n.carbon-img {\n  float: left;\n  margin-left: -145px;\n}\n\n.carbon-poweredby {\n  display: block;\n  color: #777 !important;\n}\n\n.bd-content {\n  -webkit-box-ordinal-group: 2;\n  -ms-flex-order: 1;\n  order: 1;\n}\n\n.bd-content > h2[id],\n.bd-content > h3[id],\n.bd-content > h4[id] {\n  pointer-events: none;\n}\n\n.bd-content > h2[id] > div,\n.bd-content > h2[id] > a,\n.bd-content > h3[id] > div,\n.bd-content > h3[id] > a,\n.bd-content > h4[id] > div,\n.bd-content > h4[id] > a {\n  pointer-events: auto;\n}\n\n.bd-content > h2[id]::before,\n.bd-content > h3[id]::before,\n.bd-content > h4[id]::before {\n  display: block;\n  height: 6rem;\n  margin-top: -6rem;\n  visibility: hidden;\n  content: \"\";\n}\n\n.bd-content > table {\n  width: 100%;\n  max-width: 100%;\n  margin-bottom: 1rem;\n}\n\n@media (max-width: 991.99px) {\n  .bd-content > table {\n    display: block;\n    overflow-x: auto;\n    -ms-overflow-style: -ms-autohiding-scrollbar;\n  }\n  .bd-content > table.table-bordered {\n    border: 0;\n  }\n}\n\n.bd-content > table > thead > tr > th,\n.bd-content > table > thead > tr > td,\n.bd-content > table > tbody > tr > th,\n.bd-content > table > tbody > tr > td,\n.bd-content > table > tfoot > tr > th,\n.bd-content > table > tfoot > tr > td {\n  padding: 0.75rem;\n  vertical-align: top;\n  border: 1px solid #dee2e6;\n}\n\n.bd-content > table > thead > tr > th > p:last-child,\n.bd-content > table > thead > tr > td > p:last-child,\n.bd-content > table > tbody > tr > th > p:last-child,\n.bd-content > table > tbody > tr > td > p:last-child,\n.bd-content > table > tfoot > tr > th > p:last-child,\n.bd-content > table > tfoot > tr > td > p:last-child {\n  margin-bottom: 0;\n}\n\n.bd-content > table td:first-child > code {\n  white-space: nowrap;\n}\n\n.bd-content > h2:not(:first-child) {\n  margin-top: 3rem;\n}\n\n.bd-content > h3 {\n  margin-top: 1.5rem;\n}\n\n.bd-content > ul li,\n.bd-content > ol li {\n  margin-bottom: .25rem;\n}\n\n@media (min-width: 992px) {\n  .bd-content > ul,\n  .bd-content > ol,\n  .bd-content > p {\n    max-width: 80%;\n  }\n}\n\n.bd-title {\n  margin-top: 1rem;\n  margin-bottom: .5rem;\n  font-weight: 300;\n}\n\n@media (min-width: 576px) {\n  .bd-title {\n    font-size: 3rem;\n  }\n}\n\n.bd-lead {\n  font-size: 1.125rem;\n  font-weight: 300;\n}\n\n@media (min-width: 576px) {\n  .bd-lead {\n    max-width: 80%;\n    margin-bottom: 1rem;\n    font-size: 1.5rem;\n  }\n}\n\n.bd-text-purple {\n  color: #563d7c;\n}\n\n.bd-text-purple-bright {\n  color: #7952b3;\n}\n\n#skippy {\n  display: block;\n  padding: 1em;\n  color: #fff;\n  background-color: #563d7c;\n  outline: 0;\n}\n\n#skippy .skiplink-text {\n  padding: .5em;\n  outline: 1px dotted;\n}\n\n.bd-toc {\n  -webkit-box-ordinal-group: 3;\n  -ms-flex-order: 2;\n  order: 2;\n  padding-top: 1.5rem;\n  padding-bottom: 1.5rem;\n  font-size: .875rem;\n}\n\n@supports ((position: -webkit-sticky) or (position: sticky)) {\n  .bd-toc {\n    position: -webkit-sticky;\n    position: sticky;\n    top: 4rem;\n    height: calc(100vh - 4rem);\n    overflow-y: auto;\n  }\n}\n\n.section-nav {\n  padding-left: 0;\n  border-left: 1px solid #eee;\n}\n\n.section-nav ul {\n  padding-left: 1rem;\n}\n\n.section-nav ul ul {\n  display: none;\n}\n\n.toc-entry {\n  display: block;\n}\n\n.toc-entry a {\n  display: block;\n  padding: .125rem 1.5rem;\n  color: #99979c;\n}\n\n.toc-entry a:hover {\n  color: #007bff;\n  text-decoration: none;\n}\n\n.bd-sidebar {\n  -webkit-box-ordinal-group: 1;\n  -ms-flex-order: 0;\n  order: 0;\n  border-bottom: 1px solid rgba(0, 0, 0, 0.1);\n}\n\n@media (min-width: 768px) {\n  .bd-sidebar {\n    border-right: 1px solid rgba(0, 0, 0, 0.1);\n  }\n  @supports ((position: -webkit-sticky) or (position: sticky)) {\n    .bd-sidebar {\n      position: -webkit-sticky;\n      position: sticky;\n      top: 4rem;\n      z-index: 1000;\n      height: calc(100vh - 4rem);\n    }\n  }\n}\n\n@media (min-width: 1200px) {\n  .bd-sidebar {\n    -webkit-box-flex: 0;\n    -ms-flex: 0 1 320px;\n    flex: 0 1 320px;\n  }\n}\n\n.bd-links {\n  padding-top: 1rem;\n  padding-bottom: 1rem;\n  margin-right: -15px;\n  margin-left: -15px;\n}\n\n@media (min-width: 768px) {\n  @supports ((position: -webkit-sticky) or (position: sticky)) {\n    .bd-links {\n      max-height: calc(100vh - 9rem);\n      overflow-y: auto;\n    }\n  }\n}\n\n@media (min-width: 768px) {\n  .bd-links {\n    display: block !important;\n  }\n}\n\n.bd-search {\n  position: relative;\n  padding: 1rem 15px;\n  margin-right: -15px;\n  margin-left: -15px;\n  border-bottom: 1px solid rgba(0, 0, 0, 0.05);\n}\n\n.bd-search .form-control:focus {\n  border-color: #7952b3;\n  box-shadow: 0 0 0 3px rgba(121, 82, 179, 0.25);\n}\n\n.bd-search-docs-toggle {\n  line-height: 1;\n  color: #212529;\n}\n\n.bd-sidenav {\n  display: none;\n}\n\n.bd-toc-link {\n  display: block;\n  padding: .25rem 1.5rem;\n  font-weight: 500;\n  color: rgba(0, 0, 0, 0.65);\n}\n\n.bd-toc-link:hover {\n  color: rgba(0, 0, 0, 0.85);\n  text-decoration: none;\n}\n\n.bd-toc-item.active {\n  margin-bottom: 1rem;\n}\n\n.bd-toc-item.active:not(:first-child) {\n  margin-top: 1rem;\n}\n\n.bd-toc-item.active > .bd-toc-link {\n  color: rgba(0, 0, 0, 0.85);\n}\n\n.bd-toc-item.active > .bd-toc-link:hover {\n  background-color: transparent;\n}\n\n.bd-toc-item.active > .bd-sidenav {\n  display: block;\n}\n\n.bd-sidebar .nav > li > a {\n  display: block;\n  padding: .25rem 1.5rem;\n  font-size: 90%;\n  color: rgba(0, 0, 0, 0.65);\n}\n\n.bd-sidebar .nav > li > a:hover {\n  color: rgba(0, 0, 0, 0.85);\n  text-decoration: none;\n  background-color: transparent;\n}\n\n.bd-sidebar .nav > .active > a,\n.bd-sidebar .nav > .active:hover > a {\n  font-weight: 500;\n  color: rgba(0, 0, 0, 0.85);\n  background-color: transparent;\n}\n\n.bd-footer {\n  font-size: 85%;\n  text-align: center;\n  background-color: #f7f7f7;\n}\n\n.bd-footer a {\n  font-weight: 500;\n  color: #495057;\n}\n\n.bd-footer a:hover, .bd-footer a:focus {\n  color: #007bff;\n}\n\n.bd-footer p {\n  margin-bottom: 0;\n}\n\n@media (min-width: 576px) {\n  .bd-footer {\n    text-align: left;\n  }\n}\n\n.bd-footer-links {\n  padding-left: 0;\n  margin-bottom: 1rem;\n}\n\n.bd-footer-links li {\n  display: inline-block;\n}\n\n.bd-footer-links li + li {\n  margin-left: 1rem;\n}\n\n.bd-example-row .row > .col,\n.bd-example-row .row > [class^=\"col-\"] {\n  padding-top: .75rem;\n  padding-bottom: .75rem;\n  background-color: rgba(86, 61, 124, 0.15);\n  border: 1px solid rgba(86, 61, 124, 0.2);\n}\n\n.bd-example-row .row + .row {\n  margin-top: 1rem;\n}\n\n.bd-example-row .flex-items-top,\n.bd-example-row .flex-items-middle,\n.bd-example-row .flex-items-bottom {\n  min-height: 6rem;\n  background-color: rgba(255, 0, 0, 0.1);\n}\n\n.bd-example-row-flex-cols .row {\n  min-height: 10rem;\n  background-color: rgba(255, 0, 0, 0.1);\n}\n\n.bd-highlight {\n  background-color: rgba(86, 61, 124, 0.15);\n  border: 1px solid rgba(86, 61, 124, 0.15);\n}\n\n.example-container {\n  width: 800px;\n  width: 100%;\n  padding-right: 15px;\n  padding-left: 15px;\n  margin-right: auto;\n  margin-left: auto;\n}\n\n.example-row {\n  display: -webkit-box;\n  display: -ms-flexbox;\n  display: flex;\n  -ms-flex-wrap: wrap;\n  flex-wrap: wrap;\n  margin-right: -15px;\n  margin-left: -15px;\n}\n\n.example-content-main {\n  position: relative;\n  width: 100%;\n  min-height: 1px;\n  padding-right: 15px;\n  padding-left: 15px;\n}\n\n@media (min-width: 576px) {\n  .example-content-main {\n    -webkit-box-flex: 0;\n    -ms-flex: 0 0 50%;\n    flex: 0 0 50%;\n    max-width: 50%;\n  }\n}\n\n@media (min-width: 992px) {\n  .example-content-main {\n    -webkit-box-flex: 0;\n    -ms-flex: 0 0 66.666667%;\n    flex: 0 0 66.666667%;\n    max-width: 66.666667%;\n  }\n}\n\n.example-content-secondary {\n  position: relative;\n  width: 100%;\n  min-height: 1px;\n  padding-right: 15px;\n  padding-left: 15px;\n}\n\n@media (min-width: 576px) {\n  .example-content-secondary {\n    -webkit-box-flex: 0;\n    -ms-flex: 0 0 50%;\n    flex: 0 0 50%;\n    max-width: 50%;\n  }\n}\n\n@media (min-width: 992px) {\n  .example-content-secondary {\n    -webkit-box-flex: 0;\n    -ms-flex: 0 0 33.333333%;\n    flex: 0 0 33.333333%;\n    max-width: 33.333333%;\n  }\n}\n\n.bd-example-container {\n  min-width: 16rem;\n  max-width: 25rem;\n  margin-right: auto;\n  margin-left: auto;\n}\n\n.bd-example-container-header {\n  height: 3rem;\n  margin-bottom: .5rem;\n  background-color: white;\n  border-radius: .25rem;\n}\n\n.bd-example-container-sidebar {\n  float: right;\n  width: 4rem;\n  height: 8rem;\n  background-color: #80bdff;\n  border-radius: .25rem;\n}\n\n.bd-example-container-body {\n  height: 8rem;\n  margin-right: 4.5rem;\n  background-color: #957bbe;\n  border-radius: .25rem;\n}\n\n.bd-example-container-fluid {\n  max-width: none;\n}\n\n.bd-example {\n  position: relative;\n  padding: 1rem;\n  margin: 1rem -15px 0;\n  border: solid #f7f7f9;\n  border-width: .2rem 0 0;\n}\n\n.bd-example::after {\n  display: block;\n  clear: both;\n  content: \"\";\n}\n\n@media (min-width: 576px) {\n  .bd-example {\n    padding: 1.5rem;\n    margin-right: 0;\n    margin-left: 0;\n    border-width: .2rem;\n  }\n}\n\n.bd-example + .highlight,\n.bd-example + .clipboard + .highlight {\n  margin-top: 0;\n}\n\n.bd-example + p {\n  margin-top: 2rem;\n}\n\n.bd-example .pos-f-t {\n  position: relative;\n  margin: -1rem;\n}\n\n@media (min-width: 576px) {\n  .bd-example .pos-f-t {\n    margin: -1.5rem;\n  }\n}\n\n.bd-example > .form-control + .form-control {\n  margin-top: .5rem;\n}\n\n.bd-example > .nav + .nav,\n.bd-example > .alert + .alert,\n.bd-example > .navbar + .navbar,\n.bd-example > .progress + .progress,\n.bd-example > .progress + .btn {\n  margin-top: 1rem;\n}\n\n.bd-example > .dropdown-menu:first-child {\n  position: static;\n  display: block;\n}\n\n.bd-example > .form-group:last-child {\n  margin-bottom: 0;\n}\n\n.bd-example > .close {\n  float: none;\n}\n\n.bd-example-type .table .type-info {\n  color: #999;\n  vertical-align: middle;\n}\n\n.bd-example-type .table td {\n  padding: 1rem 0;\n  border-color: #eee;\n}\n\n.bd-example-type .table tr:first-child td {\n  border-top: 0;\n}\n\n.bd-example-type h1,\n.bd-example-type h2,\n.bd-example-type h3,\n.bd-example-type h4,\n.bd-example-type h5,\n.bd-example-type h6 {\n  margin-top: 0;\n  margin-bottom: 0;\n}\n\n.bd-example-bg-classes p {\n  padding: 1rem;\n}\n\n.bd-example > img + img {\n  margin-left: .5rem;\n}\n\n.bd-example > .btn-group {\n  margin-top: .25rem;\n  margin-bottom: .25rem;\n}\n\n.bd-example > .btn-toolbar + .btn-toolbar {\n  margin-top: .5rem;\n}\n\n.bd-example-control-sizing select,\n.bd-example-control-sizing input[type=\"text\"] + input[type=\"text\"] {\n  margin-top: .5rem;\n}\n\n.bd-example-form .input-group {\n  margin-bottom: .5rem;\n}\n\n.bd-example > textarea.form-control {\n  resize: vertical;\n}\n\n.bd-example > .list-group {\n  max-width: 400px;\n}\n\n.bd-example .fixed-top,\n.bd-example .sticky-top {\n  position: static;\n  margin: -1rem -1rem 1rem;\n}\n\n.bd-example .fixed-bottom {\n  position: static;\n  margin: 1rem -1rem -1rem;\n}\n\n@media (min-width: 576px) {\n  .bd-example .fixed-top,\n  .bd-example .sticky-top {\n    margin: -1.5rem -1.5rem 1rem;\n  }\n  .bd-example .fixed-bottom {\n    margin: 1rem -1.5rem -1.5rem;\n  }\n}\n\n.bd-example .pagination {\n  margin-top: .5rem;\n  margin-bottom: .5rem;\n}\n\n.modal {\n  z-index: 1072;\n}\n\n.modal .tooltip,\n.modal .popover {\n  z-index: 1073;\n}\n\n.modal-backdrop {\n  z-index: 1071;\n}\n\n.bd-example-modal {\n  background-color: #fafafa;\n}\n\n.bd-example-modal .modal {\n  position: relative;\n  top: auto;\n  right: auto;\n  bottom: auto;\n  left: auto;\n  z-index: 1;\n  display: block;\n}\n\n.bd-example-modal .modal-dialog {\n  left: auto;\n  margin-right: auto;\n  margin-left: auto;\n}\n\n.bd-example-tabs .nav-tabs {\n  margin-bottom: 1rem;\n}\n\n.bd-example-popover-static {\n  padding-bottom: 1.5rem;\n  background-color: #f9f9f9;\n}\n\n.bd-example-popover-static .popover {\n  position: relative;\n  display: block;\n  float: left;\n  width: 260px;\n  margin: 1.25rem;\n}\n\n.tooltip-demo a {\n  white-space: nowrap;\n}\n\n.bd-example-tooltip-static .tooltip {\n  position: relative;\n  display: inline-block;\n  margin: 10px 20px;\n  opacity: 1;\n}\n\n.scrollspy-example {\n  position: relative;\n  height: 200px;\n  margin-top: .5rem;\n  overflow: auto;\n}\n\n.scrollspy-example-2 {\n  position: relative;\n  height: 350px;\n  overflow: auto;\n}\n\n.bd-example-border-utils [class^=\"border\"] {\n  display: inline-block;\n  width: 5rem;\n  height: 5rem;\n  margin: .25rem;\n  background-color: #f5f5f5;\n  border: 1px solid;\n}\n\n.highlight {\n  padding: 1rem;\n  margin-top: 1rem;\n  margin-bottom: 1rem;\n  background-color: #f7f7f9;\n  -ms-overflow-style: -ms-autohiding-scrollbar;\n}\n\n@media (min-width: 576px) {\n  .highlight {\n    padding: 1.5rem;\n  }\n}\n\n.bd-content .highlight {\n  margin-right: -15px;\n  margin-left: -15px;\n}\n\n@media (min-width: 576px) {\n  .bd-content .highlight {\n    margin-right: 0;\n    margin-left: 0;\n  }\n}\n\n.highlight pre {\n  padding: 0;\n  margin-top: 0;\n  margin-bottom: 0;\n  background-color: transparent;\n  border: 0;\n}\n\n.highlight pre code {\n  font-size: inherit;\n  color: #212529;\n}\n\n.btn-bd-primary {\n  font-weight: 500;\n  color: #7952b3;\n  border-color: #7952b3;\n}\n\n.btn-bd-primary:hover, .btn-bd-primary:active {\n  color: #fff;\n  background-color: #7952b3;\n  border-color: #7952b3;\n}\n\n.btn-bd-download {\n  font-weight: 500;\n  color: #ffe484;\n  border-color: #ffe484;\n}\n\n.btn-bd-download:hover, .btn-bd-download:active {\n  color: #2a2730;\n  background-color: #ffe484;\n  border-color: #ffe484;\n}\n\n.bd-callout {\n  padding: 1.25rem;\n  margin-top: 1.25rem;\n  margin-bottom: 1.25rem;\n  border: 1px solid #eee;\n  border-left-width: .25rem;\n  border-radius: .25rem;\n}\n\n.bd-callout h4 {\n  margin-top: 0;\n  margin-bottom: .25rem;\n}\n\n.bd-callout p:last-child {\n  margin-bottom: 0;\n}\n\n.bd-callout code {\n  border-radius: .25rem;\n}\n\n.bd-callout + .bd-callout {\n  margin-top: -.25rem;\n}\n\n.bd-callout-info {\n  border-left-color: #5bc0de;\n}\n\n.bd-callout-info h4 {\n  color: #5bc0de;\n}\n\n.bd-callout-warning {\n  border-left-color: #f0ad4e;\n}\n\n.bd-callout-warning h4 {\n  color: #f0ad4e;\n}\n\n.bd-callout-danger {\n  border-left-color: #d9534f;\n}\n\n.bd-callout-danger h4 {\n  color: #d9534f;\n}\n\n.bd-examples .img-thumbnail {\n  margin-bottom: .75rem;\n}\n\n.bd-examples h4 {\n  margin-bottom: .25rem;\n}\n\n.bd-examples p {\n  margin-bottom: 1.25rem;\n}\n\n@media (max-width: 480px) {\n  .bd-examples {\n    margin-right: -.75rem;\n    margin-left: -.75rem;\n  }\n  .bd-examples > [class^=\"col-\"] {\n    padding-right: .75rem;\n    padding-left: .75rem;\n  }\n}\n\n.bd-browser-bugs td p {\n  margin-bottom: 0;\n}\n\n.bd-browser-bugs th:first-child {\n  width: 18%;\n}\n\n.bd-brand-logos {\n  display: table;\n  width: 100%;\n  margin-bottom: 1rem;\n  overflow: hidden;\n  color: #563d7c;\n  background-color: #f9f9f9;\n  border-radius: .25rem;\n}\n\n.bd-brand-item {\n  padding: 4rem 0;\n  text-align: center;\n}\n\n.bd-brand-item + .bd-brand-item {\n  border-top: 1px solid #fff;\n}\n\n.bd-brand-logos .inverse {\n  color: #fff;\n  background-color: #563d7c;\n}\n\n.bd-brand-item h1,\n.bd-brand-item h3 {\n  margin-top: 0;\n  margin-bottom: 0;\n}\n\n.bd-brand-item .bd-booticon {\n  margin-right: auto;\n  margin-left: auto;\n}\n\n@media (min-width: 768px) {\n  .bd-brand-item {\n    display: table-cell;\n    width: 1%;\n  }\n  .bd-brand-item + .bd-brand-item {\n    border-top: 0;\n    border-left: 1px solid #fff;\n  }\n  .bd-brand-item h1 {\n    font-size: 4rem;\n  }\n}\n\n.color-swatches {\n  margin: 0 -5px;\n  overflow: hidden;\n}\n\n.color-swatch {\n  float: left;\n  width: 4rem;\n  height: 4rem;\n  margin-right: .25rem;\n  margin-left: .25rem;\n  border-radius: .25rem;\n}\n\n@media (min-width: 768px) {\n  .color-swatch {\n    width: 6rem;\n    height: 6rem;\n  }\n}\n\n.color-swatches .bd-purple {\n  background-color: #563d7c;\n}\n\n.color-swatches .bd-purple-light {\n  background-color: #cbbde2;\n}\n\n.color-swatches .bd-purple-lighter {\n  background-color: #e5e1ea;\n}\n\n.color-swatches .bd-gray {\n  background-color: #f9f9f9;\n}\n\n.swatch-blue {\n  color: #fff;\n  background-color: #007bff;\n}\n\n.swatch-indigo {\n  color: #fff;\n  background-color: #6610f2;\n}\n\n.swatch-purple {\n  color: #fff;\n  background-color: #6f42c1;\n}\n\n.swatch-pink {\n  color: #fff;\n  background-color: #e83e8c;\n}\n\n.swatch-red {\n  color: #fff;\n  background-color: #dc3545;\n}\n\n.swatch-orange {\n  color: #212529;\n  background-color: #fd7e14;\n}\n\n.swatch-yellow {\n  color: #212529;\n  background-color: #ffc107;\n}\n\n.swatch-green {\n  color: #fff;\n  background-color: #28a745;\n}\n\n.swatch-teal {\n  color: #fff;\n  background-color: #20c997;\n}\n\n.swatch-cyan {\n  color: #fff;\n  background-color: #17a2b8;\n}\n\n.swatch-white {\n  color: #212529;\n  background-color: #fff;\n}\n\n.swatch-gray {\n  color: #fff;\n  background-color: #6c757d;\n}\n\n.swatch-gray-dark {\n  color: #fff;\n  background-color: #343a40;\n}\n\n.swatch-primary {\n  color: #fff;\n  background-color: #007bff;\n}\n\n.swatch-secondary {\n  color: #fff;\n  background-color: #6c757d;\n}\n\n.swatch-success {\n  color: #fff;\n  background-color: #28a745;\n}\n\n.swatch-info {\n  color: #fff;\n  background-color: #17a2b8;\n}\n\n.swatch-warning {\n  color: #212529;\n  background-color: #ffc107;\n}\n\n.swatch-danger {\n  color: #fff;\n  background-color: #dc3545;\n}\n\n.swatch-light {\n  color: #212529;\n  background-color: #f8f9fa;\n}\n\n.swatch-dark {\n  color: #fff;\n  background-color: #343a40;\n}\n\n.swatch-100 {\n  color: #212529;\n  background-color: #f8f9fa;\n}\n\n.swatch-200 {\n  color: #212529;\n  background-color: #e9ecef;\n}\n\n.swatch-300 {\n  color: #212529;\n  background-color: #dee2e6;\n}\n\n.swatch-400 {\n  color: #212529;\n  background-color: #ced4da;\n}\n\n.swatch-500 {\n  color: #212529;\n  background-color: #adb5bd;\n}\n\n.swatch-600 {\n  color: #fff;\n  background-color: #6c757d;\n}\n\n.swatch-700 {\n  color: #fff;\n  background-color: #495057;\n}\n\n.swatch-800 {\n  color: #fff;\n  background-color: #343a40;\n}\n\n.swatch-900 {\n  color: #fff;\n  background-color: #212529;\n}\n\n.bd-clipboard {\n  position: relative;\n  display: none;\n  float: right;\n}\n\n.bd-clipboard + .highlight {\n  margin-top: 0;\n}\n\n.btn-clipboard {\n  position: absolute;\n  top: .5rem;\n  right: .5rem;\n  z-index: 10;\n  display: block;\n  padding: .25rem .5rem;\n  font-size: 75%;\n  color: #818a91;\n  cursor: pointer;\n  background-color: transparent;\n  border: 0;\n  border-radius: .25rem;\n}\n\n.btn-clipboard:hover {\n  color: #fff;\n  background-color: #027de7;\n}\n\n@media (min-width: 768px) {\n  .bd-clipboard {\n    display: block;\n  }\n}\n\n.hll {\n  background-color: #ffc;\n}\n\n.c {\n  color: #999;\n}\n\n.k {\n  color: #069;\n}\n\n.o {\n  color: #555;\n}\n\n.cm {\n  color: #999;\n}\n\n.cp {\n  color: #099;\n}\n\n.c1 {\n  color: #999;\n}\n\n.cs {\n  color: #999;\n}\n\n.gd {\n  background-color: #fcc;\n  border: 1px solid #c00;\n}\n\n.ge {\n  font-style: italic;\n}\n\n.gr {\n  color: #f00;\n}\n\n.gh {\n  color: #030;\n}\n\n.gi {\n  background-color: #cfc;\n  border: 1px solid #0c0;\n}\n\n.go {\n  color: #aaa;\n}\n\n.gp {\n  color: #009;\n}\n\n.gu {\n  color: #030;\n}\n\n.gt {\n  color: #9c6;\n}\n\n.kc {\n  color: #069;\n}\n\n.kd {\n  color: #069;\n}\n\n.kn {\n  color: #069;\n}\n\n.kp {\n  color: #069;\n}\n\n.kr {\n  color: #069;\n}\n\n.kt {\n  color: #078;\n}\n\n.m {\n  color: #f60;\n}\n\n.s {\n  color: #d44950;\n}\n\n.na {\n  color: #4f9fcf;\n}\n\n.nb {\n  color: #366;\n}\n\n.nc {\n  color: #0a8;\n}\n\n.no {\n  color: #360;\n}\n\n.nd {\n  color: #99f;\n}\n\n.ni {\n  color: #999;\n}\n\n.ne {\n  color: #c00;\n}\n\n.nf {\n  color: #c0f;\n}\n\n.nl {\n  color: #99f;\n}\n\n.nn {\n  color: #0cf;\n}\n\n.nt {\n  color: #2f6f9f;\n}\n\n.nv {\n  color: #033;\n}\n\n.ow {\n  color: #000;\n}\n\n.w {\n  color: #bbb;\n}\n\n.mf {\n  color: #f60;\n}\n\n.mh {\n  color: #f60;\n}\n\n.mi {\n  color: #f60;\n}\n\n.mo {\n  color: #f60;\n}\n\n.sb {\n  color: #c30;\n}\n\n.sc {\n  color: #c30;\n}\n\n.sd {\n  font-style: italic;\n  color: #c30;\n}\n\n.s2 {\n  color: #c30;\n}\n\n.se {\n  color: #c30;\n}\n\n.sh {\n  color: #c30;\n}\n\n.si {\n  color: #a00;\n}\n\n.sx {\n  color: #c30;\n}\n\n.sr {\n  color: #3aa;\n}\n\n.s1 {\n  color: #c30;\n}\n\n.ss {\n  color: #fc3;\n}\n\n.bp {\n  color: #366;\n}\n\n.vc {\n  color: #033;\n}\n\n.vg {\n  color: #033;\n}\n\n.vi {\n  color: #033;\n}\n\n.il {\n  color: #f60;\n}\n\n.css .o,\n.css .o + .nt,\n.css .nt + .nt {\n  color: #999;\n}\n\n.language-bash::before,\n.language-sh::before {\n  color: #009;\n  content: \"$ \";\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  -ms-user-select: none;\n  user-select: none;\n}\n\n.language-powershell::before {\n  color: #009;\n  content: \"PM> \";\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  -ms-user-select: none;\n  user-select: none;\n}\n\n.anchorjs-link {\n  font-weight: 400;\n  color: rgba(0, 123, 255, 0.5);\n  transition: color .16s linear;\n}\n\n.anchorjs-link:hover {\n  color: #007bff;\n  text-decoration: none;\n}\n\n.algolia-autocomplete {\n  display: block !important;\n  -webkit-box-flex: 1;\n  -ms-flex: 1;\n  flex: 1;\n}\n\n.algolia-autocomplete .ds-dropdown-menu {\n  width: 100%;\n  min-width: 0 !important;\n  max-width: none !important;\n  padding: .75rem 0 !important;\n  background-color: #fff;\n  background-clip: padding-box;\n  border: 1px solid rgba(0, 0, 0, 0.1);\n  box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.175);\n}\n\n@media (min-width: 768px) {\n  .algolia-autocomplete .ds-dropdown-menu {\n    width: 175%;\n  }\n}\n\n.algolia-autocomplete .ds-dropdown-menu::before {\n  display: none !important;\n}\n\n.algolia-autocomplete .ds-dropdown-menu [class^=\"ds-dataset-\"] {\n  padding: 0 !important;\n  overflow: visible !important;\n  background-color: transparent !important;\n  border: 0 !important;\n}\n\n.algolia-autocomplete .ds-dropdown-menu .ds-suggestions {\n  margin-top: 0 !important;\n}\n\n.algolia-autocomplete .algolia-docsearch-suggestion {\n  padding: 0 !important;\n  overflow: visible !important;\n}\n\n.algolia-autocomplete .algolia-docsearch-suggestion--category-header {\n  padding: .125rem 1rem !important;\n  margin-top: 0 !important;\n  font-size: .875rem !important;\n  font-weight: 500 !important;\n  color: #7952b3 !important;\n  border-bottom: 0 !important;\n}\n\n.algolia-autocomplete .algolia-docsearch-suggestion--wrapper {\n  float: none !important;\n  padding-top: 0 !important;\n}\n\n.algolia-autocomplete .algolia-docsearch-suggestion--subcategory-column {\n  float: none !important;\n  width: auto !important;\n  padding: 0 !important;\n  text-align: left !important;\n}\n\n.algolia-autocomplete .algolia-docsearch-suggestion--content {\n  float: none !important;\n  width: auto !important;\n  padding: 0 !important;\n}\n\n.algolia-autocomplete .algolia-docsearch-suggestion--content::before {\n  display: none !important;\n}\n\n.algolia-autocomplete .ds-suggestion:not(:first-child) .algolia-docsearch-suggestion--category-header {\n  padding-top: .75rem !important;\n  margin-top: .75rem !important;\n  border-top: 1px solid rgba(0, 0, 0, 0.1);\n}\n\n.algolia-autocomplete .ds-suggestion .algolia-docsearch-suggestion--subcategory-column {\n  display: none !important;\n}\n\n.algolia-autocomplete .algolia-docsearch-suggestion--title {\n  display: block;\n  padding: .25rem 1rem !important;\n  margin-bottom: 0 !important;\n  font-size: .875rem !important;\n  font-weight: 400 !important;\n}\n\n.algolia-autocomplete .algolia-docsearch-suggestion--text {\n  padding: 0 1rem .5rem !important;\n  margin-top: -.25rem;\n  font-size: .875rem !important;\n  font-weight: 400;\n  line-height: 1.25 !important;\n}\n\n.algolia-autocomplete .algolia-docsearch-footer {\n  float: none !important;\n  width: auto !important;\n  height: auto !important;\n  padding: .75rem 1rem 0;\n  font-size: .75rem !important;\n  line-height: 1 !important;\n  color: #767676 !important;\n  border-top: 1px solid rgba(0, 0, 0, 0.1);\n}\n\n.algolia-autocomplete .algolia-docsearch-footer--logo {\n  display: inline !important;\n  overflow: visible !important;\n  color: inherit !important;\n  text-indent: 0 !important;\n  background: none !important;\n}\n\n.algolia-autocomplete .algolia-docsearch-suggestion--highlight {\n  color: #5f2dab;\n  background-color: rgba(154, 132, 187, 0.12);\n}\n\n.algolia-autocomplete .algolia-docsearch-suggestion--text .algolia-docsearch-suggestion--highlight {\n  box-shadow: inset 0 -2px 0 0 rgba(95, 45, 171, 0.5) !important;\n}\n\n.algolia-autocomplete .ds-suggestion.ds-cursor .algolia-docsearch-suggestion--content {\n  background-color: rgba(208, 189, 236, 0.15) !important;\n}\n/*# sourceMappingURL=docs.min.css.map */","// stylelint-disable selector-max-id\n\n#skippy {\n  display: block;\n  padding: 1em;\n  color: #fff;\n  background-color: $bd-purple;\n  outline: 0;\n\n  .skiplink-text {\n    padding: .5em;\n    outline: 1px dotted;\n  }\n}\n","// stylelint-disable declaration-no-important\n\n//\n// Right side table of contents\n//\n\n.bd-toc {\n  @supports (position: sticky) {\n    position: sticky;\n    top: 4rem;\n    height: calc(100vh - 4rem);\n    overflow-y: auto;\n  }\n  order: 2;\n  padding-top: 1.5rem;\n  padding-bottom: 1.5rem;\n  font-size: .875rem;\n}\n\n.section-nav {\n  padding-left: 0;\n  border-left: 1px solid #eee;\n\n  ul {\n    padding-left: 1rem;\n\n    ul {\n      display: none;\n    }\n  }\n}\n\n.toc-entry {\n  display: block;\n\n  a {\n    display: block;\n    padding: .125rem 1.5rem;\n    color: #99979c;\n\n    &:hover {\n      color: $blue;\n      text-decoration: none;\n    }\n  }\n}\n\n//\n// Left side navigation\n//\n\n.bd-sidebar {\n  order: 0;\n  // background-color: #f5f2f9;\n  border-bottom: 1px solid rgba(0, 0, 0, .1);\n\n  @include media-breakpoint-up(md) {\n    @supports (position: sticky) {\n      position: sticky;\n      top: 4rem;\n      z-index: 1000;\n      height: calc(100vh - 4rem);\n    }\n    border-right: 1px solid rgba(0, 0, 0, .1);\n  }\n\n  @include media-breakpoint-up(xl) {\n    flex: 0 1 320px;\n  }\n}\n\n.bd-links {\n  padding-top: 1rem;\n  padding-bottom: 1rem;\n  margin-right: -15px;\n  margin-left: -15px;\n\n  @include media-breakpoint-up(md) {\n    @supports (position: sticky) {\n      max-height: calc(100vh - 9rem);\n      overflow-y: auto;\n    }\n  }\n\n  // Override collapse behaviors\n  @include media-breakpoint-up(md) {\n    display: block !important;\n  }\n}\n\n.bd-search {\n  position: relative; // To contain the Algolia search\n  padding: 1rem 15px;\n  margin-right: -15px;\n  margin-left: -15px;\n  border-bottom: 1px solid rgba(0, 0, 0, .05);\n\n  .form-control:focus {\n    border-color: $bd-purple-bright;\n    box-shadow: 0 0 0 3px rgba($bd-purple-bright, .25);\n  }\n}\n\n.bd-search-docs-toggle {\n  line-height: 1;\n  color: $gray-900;\n}\n\n.bd-sidenav {\n  display: none;\n}\n\n.bd-toc-link {\n  display: block;\n  padding: .25rem 1.5rem;\n  font-weight: 500;\n  color: rgba(0, 0, 0, .65);\n\n  &:hover {\n    color: rgba(0, 0, 0, .85);\n    text-decoration: none;\n  }\n}\n\n.bd-toc-item {\n  &.active {\n    margin-bottom: 1rem;\n\n    &:not(:first-child) {\n      margin-top: 1rem;\n    }\n\n    > .bd-toc-link {\n      color: rgba(0, 0, 0, .85);\n\n      &:hover {\n        background-color: transparent;\n      }\n    }\n\n    > .bd-sidenav {\n      display: block;\n    }\n  }\n}\n\n// All levels of nav\n.bd-sidebar .nav > li > a {\n  display: block;\n  padding: .25rem 1.5rem;\n  font-size: 90%;\n  color: rgba(0, 0, 0, .65);\n}\n\n.bd-sidebar .nav > li > a:hover {\n  color: rgba(0, 0, 0, .85);\n  text-decoration: none;\n  background-color: transparent;\n}\n\n.bd-sidebar .nav > .active > a,\n.bd-sidebar .nav > .active:hover > a {\n  font-weight: 500;\n  color: rgba(0, 0, 0, .85);\n  background-color: transparent;\n}\n","//\n// Footer\n//\n\n.bd-footer {\n  font-size: 85%;\n  text-align: center;\n  background-color: #f7f7f7;\n\n  a {\n    font-weight: 500;\n    color: $gray-700;\n\n    &:hover,\n    &:focus {\n      color: $link-color;\n    }\n  }\n\n  p {\n    margin-bottom: 0;\n  }\n\n  @include media-breakpoint-up(sm) {\n    text-align: left;\n  }\n}\n\n.bd-footer-links {\n  padding-left: 0;\n  margin-bottom: 1rem;\n\n  li {\n    display: inline-block;\n\n    + li {\n      margin-left: 1rem;\n    }\n  }\n}\n","// stylelint-disable no-duplicate-selectors, selector-no-qualifying-type\n\n//\n// Grid examples\n//\n\n.bd-example-row {\n  .row {\n    > .col,\n    > [class^=\"col-\"] {\n      padding-top: .75rem;\n      padding-bottom: .75rem;\n      background-color: rgba(86, 61, 124, .15);\n      border: 1px solid rgba(86, 61, 124, .2);\n    }\n  }\n\n  .row + .row {\n    margin-top: 1rem;\n  }\n\n  .flex-items-top,\n  .flex-items-middle,\n  .flex-items-bottom {\n    min-height: 6rem;\n    background-color: rgba(255, 0, 0, .1);\n  }\n}\n\n.bd-example-row-flex-cols .row {\n  min-height: 10rem;\n  background-color: rgba(255, 0, 0, .1);\n}\n\n.bd-highlight {\n  background-color: rgba($bd-purple, .15);\n  border: 1px solid rgba($bd-purple, .15);\n}\n\n// Grid mixins\n.example-container {\n  width: 800px;\n  @include make-container();\n}\n\n.example-row {\n  @include make-row();\n}\n\n.example-content-main {\n  @include make-col-ready();\n\n  @include media-breakpoint-up(sm) {\n    @include make-col(6);\n  }\n\n  @include media-breakpoint-up(lg) {\n    @include make-col(8);\n  }\n}\n\n.example-content-secondary {\n  @include make-col-ready();\n\n  @include media-breakpoint-up(sm) {\n    @include make-col(6);\n  }\n\n  @include media-breakpoint-up(lg) {\n    @include make-col(4);\n  }\n}\n\n\n//\n// Container illustrations\n//\n\n.bd-example-container {\n  min-width: 16rem;\n  max-width: 25rem;\n  margin-right: auto;\n  margin-left: auto;\n}\n\n.bd-example-container-header {\n  height: 3rem;\n  margin-bottom: .5rem;\n  background-color: lighten($blue, 50%);\n  border-radius: .25rem;\n}\n\n.bd-example-container-sidebar {\n  float: right;\n  width: 4rem;\n  height: 8rem;\n  background-color: lighten($blue, 25%);\n  border-radius: .25rem;\n}\n\n.bd-example-container-body {\n  height: 8rem;\n  margin-right: 4.5rem;\n  background-color: lighten($bd-purple, 25%);\n  border-radius: .25rem;\n}\n\n.bd-example-container-fluid {\n  max-width: none;\n}\n\n\n//\n// Docs examples\n//\n\n.bd-example {\n  position: relative;\n  padding: 1rem;\n  margin: 1rem (-$grid-gutter-width / 2) 0;\n  border: solid #f7f7f9;\n  border-width: .2rem 0 0;\n  @include clearfix();\n\n  @include media-breakpoint-up(sm) {\n    padding: 1.5rem;\n    margin-right: 0;\n    margin-left: 0;\n    border-width: .2rem;\n  }\n\n  + .highlight,\n  + .clipboard + .highlight {\n    margin-top: 0;\n  }\n\n  + p {\n    margin-top: 2rem;\n  }\n\n  .pos-f-t {\n    position: relative;\n    margin: -1rem;\n\n    @include media-breakpoint-up(sm) {\n      margin: -1.5rem;\n    }\n  }\n\n  > .form-control {\n    + .form-control {\n      margin-top: .5rem;\n    }\n  }\n\n  > .nav + .nav,\n  > .alert + .alert,\n  > .navbar + .navbar,\n  > .progress + .progress,\n  > .progress + .btn {\n    margin-top: 1rem;\n  }\n\n  > .dropdown-menu:first-child {\n    position: static;\n    display: block;\n  }\n\n  > .form-group:last-child {\n    margin-bottom: 0;\n  }\n\n  > .close {\n    float: none;\n  }\n}\n\n// Typography\n.bd-example-type {\n  .table {\n    .type-info {\n      color: #999;\n      vertical-align: middle;\n    }\n    td {\n      padding: 1rem 0;\n      border-color: #eee;\n    }\n    tr:first-child td {\n      border-top: 0;\n    }\n  }\n\n  h1,\n  h2,\n  h3,\n  h4,\n  h5,\n  h6 {\n    margin-top: 0;\n    margin-bottom: 0;\n  }\n}\n\n// Contextual background colors\n.bd-example-bg-classes p {\n  padding: 1rem;\n}\n\n// Images\n.bd-example > img {\n  + img {\n    margin-left: .5rem;\n  }\n}\n\n// Buttons\n.bd-example {\n  > .btn-group {\n    margin-top: .25rem;\n    margin-bottom: .25rem;\n  }\n  > .btn-toolbar + .btn-toolbar {\n    margin-top: .5rem;\n  }\n}\n\n// Forms\n.bd-example-control-sizing select,\n.bd-example-control-sizing input[type=\"text\"] + input[type=\"text\"] {\n  margin-top: .5rem;\n}\n.bd-example-form .input-group {\n  margin-bottom: .5rem;\n}\n.bd-example > textarea.form-control {\n  resize: vertical;\n}\n\n// List groups\n.bd-example > .list-group {\n  max-width: 400px;\n}\n\n// Navbars\n.bd-example {\n  .fixed-top,\n  .sticky-top {\n    position: static;\n    margin: -1rem -1rem 1rem;\n  }\n  .fixed-bottom {\n    position: static;\n    margin: 1rem -1rem -1rem;\n  }\n\n  @include media-breakpoint-up(sm) {\n    .fixed-top,\n    .sticky-top {\n      margin: -1.5rem -1.5rem 1rem;\n    }\n    .fixed-bottom {\n      margin: 1rem -1.5rem -1.5rem;\n    }\n  }\n}\n\n// Pagination\n.bd-example .pagination {\n  margin-top: .5rem;\n  margin-bottom: .5rem;\n}\n\n// Example modals\n.modal {\n  z-index: 1072;\n\n  .tooltip,\n  .popover {\n    z-index: 1073;\n  }\n}\n\n.modal-backdrop {\n  z-index: 1071;\n}\n\n.bd-example-modal {\n  background-color: #fafafa;\n\n  .modal {\n    position: relative;\n    top: auto;\n    right: auto;\n    bottom: auto;\n    left: auto;\n    z-index: 1;\n    display: block;\n  }\n\n  .modal-dialog {\n    left: auto;\n    margin-right: auto;\n    margin-left: auto;\n  }\n}\n\n// Example tabbable tabs\n.bd-example-tabs .nav-tabs {\n  margin-bottom: 1rem;\n}\n\n// Popovers\n.bd-example-popover-static {\n  padding-bottom: 1.5rem;\n  background-color: #f9f9f9;\n\n  .popover {\n    position: relative;\n    display: block;\n    float: left;\n    width: 260px;\n    margin: 1.25rem;\n  }\n}\n\n// Tooltips\n.tooltip-demo a {\n  white-space: nowrap;\n}\n\n.bd-example-tooltip-static .tooltip {\n  position: relative;\n  display: inline-block;\n  margin: 10px 20px;\n  opacity: 1;\n}\n\n// Scrollspy demo on fixed height div\n.scrollspy-example {\n  position: relative;\n  height: 200px;\n  margin-top: .5rem;\n  overflow: auto;\n}\n\n.scrollspy-example-2 {\n  position: relative;\n  height: 350px;\n  overflow: auto;\n}\n\n.bd-example-border-utils {\n  [class^=\"border\"] {\n    display: inline-block;\n    width: 5rem;\n    height: 5rem;\n    margin: .25rem;\n    background-color: #f5f5f5;\n    border: 1px solid;\n  }\n}\n\n//\n// Code snippets\n//\n\n.highlight {\n  padding: 1rem;\n  margin-top: 1rem;\n  margin-bottom: 1rem;\n  background-color: #f7f7f9;\n  -ms-overflow-style: -ms-autohiding-scrollbar;\n\n  @include media-breakpoint-up(sm) {\n    padding: 1.5rem;\n  }\n}\n\n.bd-content .highlight {\n  margin-right: (-$grid-gutter-width / 2);\n  margin-left: (-$grid-gutter-width / 2);\n\n  @include media-breakpoint-up(sm) {\n    margin-right: 0;\n    margin-left: 0;\n  }\n}\n\n.highlight {\n  pre {\n    padding: 0;\n    margin-top: 0;\n    margin-bottom: 0;\n    background-color: transparent;\n    border: 0;\n  }\n  pre code {\n    font-size: inherit;\n    color: $gray-900; // Effectively the base text color\n  }\n}\n","/// Grid system\n//\n// Generate semantic grid columns with these mixins.\n\n@mixin make-container() {\n  width: 100%;\n  padding-right: ($grid-gutter-width / 2);\n  padding-left: ($grid-gutter-width / 2);\n  margin-right: auto;\n  margin-left: auto;\n}\n\n\n// For each breakpoint, define the maximum width of the container in a media query\n@mixin make-container-max-widths($max-widths: $container-max-widths, $breakpoints: $grid-breakpoints) {\n  @each $breakpoint, $container-max-width in $max-widths {\n    @include media-breakpoint-up($breakpoint, $breakpoints) {\n      max-width: $container-max-width;\n    }\n  }\n}\n\n@mixin make-row() {\n  display: flex;\n  flex-wrap: wrap;\n  margin-right: ($grid-gutter-width / -2);\n  margin-left: ($grid-gutter-width / -2);\n}\n\n@mixin make-col-ready() {\n  position: relative;\n  // Prevent columns from becoming too narrow when at smaller grid tiers by\n  // always setting `width: 100%;`. This works because we use `flex` values\n  // later on to override this initial width.\n  width: 100%;\n  min-height: 1px; // Prevent collapsing\n  padding-right: ($grid-gutter-width / 2);\n  padding-left: ($grid-gutter-width / 2);\n}\n\n@mixin make-col($size, $columns: $grid-columns) {\n  flex: 0 0 percentage($size / $columns);\n  // Add a `max-width` to ensure content within each column does not blow out\n  // the width of the column. Applies to IE10+ and Firefox. Chrome and Safari\n  // do not appear to require this.\n  max-width: percentage($size / $columns);\n}\n\n@mixin make-col-offset($size, $columns: $grid-columns) {\n  $num: $size / $columns;\n  margin-left: if($num == 0, 0, percentage($num));\n}\n","@mixin clearfix() {\n  &::after {\n    display: block;\n    clear: both;\n    content: \"\";\n  }\n}\n","// Buttons\n//\n// Custom buttons for the docs.\n\n.btn-bd-primary {\n  font-weight: 500;\n  color: $bd-purple-bright;\n  border-color: $bd-purple-bright;\n\n  &:hover,\n  &:active {\n    color: #fff;\n    background-color: $bd-purple-bright;\n    border-color: $bd-purple-bright;\n  }\n}\n\n.btn-bd-download {\n  font-weight: 500;\n  color: $bd-download;\n  border-color: $bd-download;\n\n  &:hover,\n  &:active {\n    color: $bd-dark;\n    background-color: $bd-download;\n    border-color: $bd-download;\n  }\n}\n","//\n// Callouts\n//\n\n.bd-callout {\n  padding: 1.25rem;\n  margin-top: 1.25rem;\n  margin-bottom: 1.25rem;\n  border: 1px solid #eee;\n  border-left-width: .25rem;\n  border-radius: .25rem;\n}\n\n.bd-callout h4 {\n  margin-top: 0;\n  margin-bottom: .25rem;\n}\n\n.bd-callout p:last-child {\n  margin-bottom: 0;\n}\n\n.bd-callout code {\n  border-radius: .25rem;\n}\n\n.bd-callout + .bd-callout {\n  margin-top: -.25rem;\n}\n\n// Variations\n@mixin bs-callout-variant($color) {\n  border-left-color: $color;\n\n  h4 { color: $color; }\n}\n\n.bd-callout-info { @include bs-callout-variant($bd-info); }\n.bd-callout-warning { @include bs-callout-variant($bd-warning); }\n.bd-callout-danger { @include bs-callout-variant($bd-danger); }\n","//\n// Examples\n//\n\n.bd-examples .img-thumbnail {\n  margin-bottom: .75rem;\n}\n.bd-examples h4 {\n  margin-bottom: .25rem;\n}\n.bd-examples p {\n  margin-bottom: 1.25rem;\n}\n\n@media (max-width: 480px) {\n  .bd-examples {\n    margin-right: -.75rem;\n    margin-left: -.75rem;\n  }\n  .bd-examples > [class^=\"col-\"] {\n    padding-right: .75rem;\n    padding-left: .75rem;\n  }\n}\n","// Wall of Browser Bugs\n//\n// Better display for the responsive table on the Wall of Browser Bugs.\n\n.bd-browser-bugs {\n  td p {\n    margin-bottom: 0;\n  }\n  th:first-child {\n    width: 18%;\n  }\n}\n","// stylelint-disable no-duplicate-selectors\n\n//\n// Brand guidelines\n//\n\n// Logo series wrapper\n.bd-brand-logos {\n  display: table;\n  width: 100%;\n  margin-bottom: 1rem;\n  overflow: hidden;\n  color: #563d7c;\n  background-color: #f9f9f9;\n  border-radius: .25rem;\n}\n\n// Individual items\n.bd-brand-item {\n  padding: 4rem 0;\n  text-align: center;\n}\n.bd-brand-item + .bd-brand-item {\n  border-top: 1px solid #fff;\n}\n.bd-brand-logos .inverse {\n  color: #fff;\n  background-color: #563d7c;\n}\n\n// Heading content within\n.bd-brand-item h1,\n.bd-brand-item h3 {\n  margin-top: 0;\n  margin-bottom: 0;\n}\n.bd-brand-item .bd-booticon {\n  margin-right: auto;\n  margin-left: auto;\n}\n\n// Make the icons stand out on what is/isn't okay\n// .bd-brand-item .glyphicon {\n//   width: 30px;\n//   height: 30px;\n//   margin: 10px auto -10px;\n//   line-height: 30px;\n//   color: #fff;\n//   border-radius: 50%;\n// }\n// .bd-brand-item .glyphicon-ok {\n//   background-color: #5cb85c;\n// }\n// .bd-brand-item .glyphicon-remove {\n//   background-color: #d9534f;\n// }\n\n@media (min-width: 768px) {\n  .bd-brand-item {\n    display: table-cell;\n    width: 1%;\n  }\n  .bd-brand-item + .bd-brand-item {\n    border-top: 0;\n    border-left: 1px solid #fff;\n  }\n  .bd-brand-item h1 {\n    font-size: 4rem;\n  }\n}\n\n\n//\n// Color swatches\n//\n\n.color-swatches {\n  margin: 0 -5px;\n  overflow: hidden; // clearfix\n}\n\n.color-swatch {\n  float: left;\n  width: 4rem;\n  height: 4rem;\n  margin-right: .25rem;\n  margin-left: .25rem;\n  border-radius: .25rem;\n\n  @media (min-width: 768px) {\n    width: 6rem;\n    height: 6rem;\n  }\n}\n\n// Docs colors\n.color-swatches {\n  .bd-purple {\n    background-color: $bd-purple;\n  }\n  .bd-purple-light {\n    background-color: $bd-purple-light;\n  }\n  .bd-purple-lighter {\n    background-color: #e5e1ea;\n  }\n  .bd-gray {\n    background-color: #f9f9f9;\n  }\n}\n","//\n// Docs color palette classes\n//\n\n@each $color, $value in $colors {\n  .swatch-#{$color} {\n    color: color-yiq($value);\n    background-color: #{$value};\n  }\n}\n\n@each $color, $value in $theme-colors {\n  .swatch-#{$color} {\n    color: color-yiq($value);\n    background-color: #{$value};\n  }\n}\n\n@each $color, $value in $grays {\n  .swatch-#{$color} {\n    color: color-yiq($value);\n    background-color: #{$value};\n  }\n}\n","// clipboard.js\n//\n// JS-based `Copy` buttons for code snippets.\n\n.bd-clipboard {\n  position: relative;\n  display: none;\n  float: right;\n\n  + .highlight {\n    margin-top: 0;\n  }\n}\n\n.btn-clipboard {\n  position: absolute;\n  top: .5rem;\n  right: .5rem;\n  z-index: 10;\n  display: block;\n  padding: .25rem .5rem;\n  font-size: 75%;\n  color: #818a91;\n  cursor: pointer;\n  background-color: transparent;\n  border: 0;\n  border-radius: .25rem;\n\n  &:hover {\n    color: #fff;\n    background-color: #027de7;\n  }\n}\n\n@media (min-width: 768px) {\n  .bd-clipboard {\n    display: block;\n  }\n}\n","// stylelint-disable declaration-block-single-line-max-declarations\n\n.hll { background-color: #ffc; }\n.c { color: #999; }\n.k { color: #069; }\n.o { color: #555; }\n.cm { color: #999; }\n.cp { color: #099; }\n.c1 { color: #999; }\n.cs { color: #999; }\n.gd { background-color: #fcc; border: 1px solid #c00; }\n.ge { font-style: italic; }\n.gr { color: #f00; }\n.gh { color: #030; }\n.gi { background-color: #cfc; border: 1px solid #0c0; }\n.go { color: #aaa; }\n.gp { color: #009; }\n.gu { color: #030; }\n.gt { color: #9c6; }\n.kc { color: #069; }\n.kd { color: #069; }\n.kn { color: #069; }\n.kp { color: #069; }\n.kr { color: #069; }\n.kt { color: #078; }\n.m { color: #f60; }\n.s { color: #d44950; }\n.na { color: #4f9fcf; }\n.nb { color: #366; }\n.nc { color: #0a8; }\n.no { color: #360; }\n.nd { color: #99f; }\n.ni { color: #999; }\n.ne { color: #c00; }\n.nf { color: #c0f; }\n.nl { color: #99f; }\n.nn { color: #0cf; }\n.nt { color: #2f6f9f; }\n.nv { color: #033; }\n.ow { color: #000; }\n.w { color: #bbb; }\n.mf { color: #f60; }\n.mh { color: #f60; }\n.mi { color: #f60; }\n.mo { color: #f60; }\n.sb { color: #c30; }\n.sc { color: #c30; }\n.sd { font-style: italic; color: #c30; }\n.s2 { color: #c30; }\n.se { color: #c30; }\n.sh { color: #c30; }\n.si { color: #a00; }\n.sx { color: #c30; }\n.sr { color: #3aa; }\n.s1 { color: #c30; }\n.ss { color: #fc3; }\n.bp { color: #366; }\n.vc { color: #033; }\n.vg { color: #033; }\n.vi { color: #033; }\n.il { color: #f60; }\n\n.css .o,\n.css .o + .nt,\n.css .nt + .nt { color: #999; }\n\n.language-bash::before,\n.language-sh::before {\n  color: #009;\n  content: \"$ \";\n  user-select: none;\n}\n\n.language-powershell::before {\n  color: #009;\n  content: \"PM> \";\n  user-select: none;\n}\n",".anchorjs-link {\n  font-weight: 400;\n  color: rgba($link-color, .5);\n  transition: color .16s linear;\n\n  &:hover {\n    color: $link-color;\n    text-decoration: none;\n  }\n}\n","// stylelint-disable declaration-no-important\n\n// Docsearch overrides\n//\n// `!important` indicates overridden properties.\n.algolia-autocomplete {\n  display: block !important;\n  flex: 1;\n\n  // Menu container\n  .ds-dropdown-menu {\n    width: 100%;\n    min-width: 0 !important;\n    max-width: none !important;\n    padding: .75rem 0 !important;\n    background-color: #fff;\n    background-clip: padding-box;\n    border: 1px solid rgba(0, 0, 0, .1);\n    box-shadow: 0 .5rem 1rem rgba(0, 0, 0, .175);\n\n    @include media-breakpoint-up(md) {\n      width: 175%;\n    }\n\n    // Caret\n    &::before {\n      display: none !important;\n    }\n\n    [class^=\"ds-dataset-\"] {\n      padding: 0 !important;\n      overflow: visible !important;\n      background-color: transparent !important;\n      border: 0 !important;\n    }\n\n    .ds-suggestions {\n      margin-top: 0 !important;\n    }\n  }\n\n  .algolia-docsearch-suggestion {\n    padding: 0 !important;\n    overflow: visible !important;\n  }\n\n  .algolia-docsearch-suggestion--category-header {\n    padding: .125rem 1rem !important;\n    margin-top: 0 !important;\n    font-size: .875rem !important;\n    font-weight: 500 !important;\n    color: $bd-purple-bright !important;\n    border-bottom: 0 !important;\n  }\n\n  .algolia-docsearch-suggestion--wrapper {\n    float: none !important;\n    padding-top: 0 !important;\n  }\n\n  // Section header\n  .algolia-docsearch-suggestion--subcategory-column {\n    float: none !important;\n    width: auto !important;\n    padding: 0 !important;\n    text-align: left !important;\n  }\n\n  .algolia-docsearch-suggestion--content {\n    float: none !important;\n    width: auto !important;\n    padding: 0 !important;\n\n    // Vertical divider between column header and content\n    &::before {\n      display: none !important;\n    }\n  }\n\n  .ds-suggestion {\n    &:not(:first-child) {\n      .algolia-docsearch-suggestion--category-header {\n        padding-top: .75rem !important;\n        margin-top: .75rem !important;\n        border-top: 1px solid rgba(0, 0, 0, .1);\n      }\n    }\n\n    .algolia-docsearch-suggestion--subcategory-column {\n      display: none !important;\n    }\n  }\n\n  .algolia-docsearch-suggestion--title {\n    display: block;\n    padding: .25rem 1rem !important;\n    margin-bottom: 0 !important;\n    font-size: .875rem !important;\n    font-weight: 400 !important;\n  }\n\n  .algolia-docsearch-suggestion--text {\n    padding: 0 1rem .5rem !important;\n    margin-top: -.25rem;\n    font-size: .875rem !important;\n    font-weight: 400;\n    line-height: 1.25 !important;\n  }\n\n  .algolia-docsearch-footer {\n    float: none !important;\n    width: auto !important;\n    height: auto !important;\n    padding: .75rem 1rem 0;\n    font-size: .75rem !important;\n    line-height: 1 !important;\n    color: #767676 !important;\n    border-top: 1px solid rgba(0, 0, 0, .1);\n  }\n\n  .algolia-docsearch-footer--logo {\n    display: inline !important;\n    overflow: visible !important;\n    color: inherit !important;\n    text-indent: 0 !important;\n    background: none !important;\n  }\n\n  .algolia-docsearch-suggestion--highlight {\n    color: #5f2dab;\n    background-color: rgba(154, 132, 187, .12);\n  }\n\n  .algolia-docsearch-suggestion--text .algolia-docsearch-suggestion--highlight {\n    box-shadow: inset 0 -2px 0 0 rgba(95, 45, 171, .5) !important;\n  }\n\n  .ds-suggestion.ds-cursor .algolia-docsearch-suggestion--content {\n    background-color: rgba(208, 189, 236, .15) !important;\n  }\n}\n"]}
\ No newline at end of file
index 8516e3241d0a1637ee76410b9ed5869fae9e95e0..5d6dc742c2b63cd16b57df73b9b76ca4f90315c7 100644 (file)
@@ -1,6 +1,6 @@
 /*!
   * Bootstrap v4.0.0-beta.3 (https://getbootstrap.com)
-  * Copyright 2011-2017 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
+  * Copyright 2011-2018 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
   * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
   */
 (function (global, factory) {
@@ -1135,7 +1135,7 @@ var Collapse = function ($$$1) {
       var activesData;
 
       if (this._parent) {
-        actives = $$$1.makeArray($$$1(this._parent).children().children(Selector.ACTIVES));
+        actives = $$$1.makeArray($$$1(this._parent).find(Selector.ACTIVES).filter("[data-parent=\"" + this._config.parent + "\"]"));
 
         if (!actives.length) {
           actives = null;
index 8d7250963acfaf3332d180d07c8033f5cd47013e..bb766fe78467c776df7ba39553d048a3d26b5986 100644 (file)
@@ -1 +1 @@
-{"version":3,"file":"bootstrap.bundle.js","sources":["../../rollupPluginBabelHelpers","../../js/src/util.js","../../js/src/alert.js","../../js/src/button.js","../../js/src/carousel.js","../../js/src/collapse.js","../../node_modules/popper.js/dist/esm/popper.js","../../js/src/dropdown.js","../../js/src/modal.js","../../js/src/tooltip.js","../../js/src/popover.js","../../js/src/scrollspy.js","../../js/src/tab.js","../../js/src/index.js"],"sourcesContent":["export { _createClass as createClass, _extends as extends, _inheritsLoose as inheritsLoose };\n\nfunction _defineProperties(target, props) {\n  for (var i = 0; i < props.length; i++) {\n    var descriptor = props[i];\n    descriptor.enumerable = descriptor.enumerable || false;\n    descriptor.configurable = true;\n    if (\"value\" in descriptor) descriptor.writable = true;\n    Object.defineProperty(target, descriptor.key, descriptor);\n  }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n  if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n  if (staticProps) _defineProperties(Constructor, staticProps);\n  return Constructor;\n}\n\nfunction _extends() {\n  _extends = Object.assign || function (target) {\n    for (var i = 1; i < arguments.length; i++) {\n      var source = arguments[i];\n\n      for (var key in source) {\n        if (Object.prototype.hasOwnProperty.call(source, key)) {\n          target[key] = source[key];\n        }\n      }\n    }\n\n    return target;\n  };\n\n  return _extends.apply(this, arguments);\n}\n\nfunction _inheritsLoose(subClass, superClass) {\n  subClass.prototype = Object.create(superClass.prototype);\n  subClass.prototype.constructor = subClass;\n  subClass.__proto__ = superClass;\n}","import $ from 'jquery'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-beta.3): util.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Util = (($) => {\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Private TransitionEnd Helpers\n   * ------------------------------------------------------------------------\n   */\n\n  let transition = false\n\n  const MAX_UID = 1000000\n\n  // shoutout AngusCroll (https://goo.gl/pxwQGp)\n  function toType(obj) {\n    return {}.toString.call(obj).match(/\\s([a-zA-Z]+)/)[1].toLowerCase()\n  }\n\n  function getSpecialTransitionEndEvent() {\n    return {\n      bindType: transition.end,\n      delegateType: transition.end,\n      handle(event) {\n        if ($(event.target).is(this)) {\n          return event.handleObj.handler.apply(this, arguments) // eslint-disable-line prefer-rest-params\n        }\n        return undefined // eslint-disable-line no-undefined\n      }\n    }\n  }\n\n  function transitionEndTest() {\n    if (window.QUnit) {\n      return false\n    }\n\n    return {\n      end: 'transitionend'\n    }\n  }\n\n  function transitionEndEmulator(duration) {\n    let called = false\n\n    $(this).one(Util.TRANSITION_END, () => {\n      called = true\n    })\n\n    setTimeout(() => {\n      if (!called) {\n        Util.triggerTransitionEnd(this)\n      }\n    }, duration)\n\n    return this\n  }\n\n  function setTransitionEndSupport() {\n    transition = transitionEndTest()\n\n    $.fn.emulateTransitionEnd = transitionEndEmulator\n\n    if (Util.supportsTransitionEnd()) {\n      $.event.special[Util.TRANSITION_END] = getSpecialTransitionEndEvent()\n    }\n  }\n\n  function escapeId(selector) {\n    // we escape IDs in case of special selectors (selector = '#myId:something')\n    // $.escapeSelector does not exist in jQuery < 3\n    selector = typeof $.escapeSelector === 'function' ? $.escapeSelector(selector).substr(1) :\n      selector.replace(/(:|\\.|\\[|\\]|,|=|@)/g, '\\\\$1')\n\n    return selector\n  }\n\n  /**\n   * --------------------------------------------------------------------------\n   * Public Util Api\n   * --------------------------------------------------------------------------\n   */\n\n  const Util = {\n\n    TRANSITION_END: 'bsTransitionEnd',\n\n    getUID(prefix) {\n      do {\n        // eslint-disable-next-line no-bitwise\n        prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n      } while (document.getElementById(prefix))\n      return prefix\n    },\n\n    getSelectorFromElement(element) {\n      let selector = element.getAttribute('data-target')\n      if (!selector || selector === '#') {\n        selector = element.getAttribute('href') || ''\n      }\n\n      // if it's an ID\n      if (selector.charAt(0) === '#') {\n        selector = escapeId(selector)\n      }\n\n      try {\n        const $selector = $(document).find(selector)\n        return $selector.length > 0 ? selector : null\n      } catch (error) {\n        return null\n      }\n    },\n\n    reflow(element) {\n      return element.offsetHeight\n    },\n\n    triggerTransitionEnd(element) {\n      $(element).trigger(transition.end)\n    },\n\n    supportsTransitionEnd() {\n      return Boolean(transition)\n    },\n\n    isElement(obj) {\n      return (obj[0] || obj).nodeType\n    },\n\n    typeCheckConfig(componentName, config, configTypes) {\n      for (const property in configTypes) {\n        if (Object.prototype.hasOwnProperty.call(configTypes, property)) {\n          const expectedTypes = configTypes[property]\n          const value         = config[property]\n          const valueType     = value && Util.isElement(value) ?\n                                'element' : toType(value)\n\n          if (!new RegExp(expectedTypes).test(valueType)) {\n            throw new Error(\n              `${componentName.toUpperCase()}: ` +\n              `Option \"${property}\" provided type \"${valueType}\" ` +\n              `but expected type \"${expectedTypes}\".`)\n          }\n        }\n      }\n    }\n  }\n\n  setTransitionEndSupport()\n\n  return Util\n\n})($)\n\nexport default Util\n","import $ from 'jquery'\nimport Util from './util'\n\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-beta.3): alert.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Alert = (($) => {\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  const NAME                = 'alert'\n  const VERSION             = '4.0.0-beta.3'\n  const DATA_KEY            = 'bs.alert'\n  const EVENT_KEY           = `.${DATA_KEY}`\n  const DATA_API_KEY        = '.data-api'\n  const JQUERY_NO_CONFLICT  = $.fn[NAME]\n  const TRANSITION_DURATION = 150\n\n  const Selector = {\n    DISMISS : '[data-dismiss=\"alert\"]'\n  }\n\n  const Event = {\n    CLOSE          : `close${EVENT_KEY}`,\n    CLOSED         : `closed${EVENT_KEY}`,\n    CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n  }\n\n  const ClassName = {\n    ALERT : 'alert',\n    FADE  : 'fade',\n    SHOW  : 'show'\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  class Alert {\n\n    constructor(element) {\n      this._element = element\n    }\n\n\n    // getters\n\n    static get VERSION() {\n      return VERSION\n    }\n\n\n    // public\n\n    close(element) {\n      element = element || this._element\n\n      const rootElement = this._getRootElement(element)\n      const customEvent = this._triggerCloseEvent(rootElement)\n\n      if (customEvent.isDefaultPrevented()) {\n        return\n      }\n\n      this._removeElement(rootElement)\n    }\n\n    dispose() {\n      $.removeData(this._element, DATA_KEY)\n      this._element = null\n    }\n\n\n    // private\n\n    _getRootElement(element) {\n      const selector = Util.getSelectorFromElement(element)\n      let parent     = false\n\n      if (selector) {\n        parent = $(selector)[0]\n      }\n\n      if (!parent) {\n        parent = $(element).closest(`.${ClassName.ALERT}`)[0]\n      }\n\n      return parent\n    }\n\n    _triggerCloseEvent(element) {\n      const closeEvent = $.Event(Event.CLOSE)\n\n      $(element).trigger(closeEvent)\n      return closeEvent\n    }\n\n    _removeElement(element) {\n      $(element).removeClass(ClassName.SHOW)\n\n      if (!Util.supportsTransitionEnd() ||\n          !$(element).hasClass(ClassName.FADE)) {\n        this._destroyElement(element)\n        return\n      }\n\n      $(element)\n        .one(Util.TRANSITION_END, (event) => this._destroyElement(element, event))\n        .emulateTransitionEnd(TRANSITION_DURATION)\n    }\n\n    _destroyElement(element) {\n      $(element)\n        .detach()\n        .trigger(Event.CLOSED)\n        .remove()\n    }\n\n\n    // static\n\n    static _jQueryInterface(config) {\n      return this.each(function () {\n        const $element = $(this)\n        let data       = $element.data(DATA_KEY)\n\n        if (!data) {\n          data = new Alert(this)\n          $element.data(DATA_KEY, data)\n        }\n\n        if (config === 'close') {\n          data[config](this)\n        }\n      })\n    }\n\n    static _handleDismiss(alertInstance) {\n      return function (event) {\n        if (event) {\n          event.preventDefault()\n        }\n\n        alertInstance.close(this)\n      }\n    }\n\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n  $(document).on(\n    Event.CLICK_DATA_API,\n    Selector.DISMISS,\n    Alert._handleDismiss(new Alert())\n  )\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $.fn[NAME]             = Alert._jQueryInterface\n  $.fn[NAME].Constructor = Alert\n  $.fn[NAME].noConflict  = function () {\n    $.fn[NAME] = JQUERY_NO_CONFLICT\n    return Alert._jQueryInterface\n  }\n\n  return Alert\n\n})($)\n\nexport default Alert\n","import $ from 'jquery'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-beta.3): button.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Button = (($) => {\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  const NAME                = 'button'\n  const VERSION             = '4.0.0-beta.3'\n  const DATA_KEY            = 'bs.button'\n  const EVENT_KEY           = `.${DATA_KEY}`\n  const DATA_API_KEY        = '.data-api'\n  const JQUERY_NO_CONFLICT  = $.fn[NAME]\n\n  const ClassName = {\n    ACTIVE : 'active',\n    BUTTON : 'btn',\n    FOCUS  : 'focus'\n  }\n\n  const Selector = {\n    DATA_TOGGLE_CARROT : '[data-toggle^=\"button\"]',\n    DATA_TOGGLE        : '[data-toggle=\"buttons\"]',\n    INPUT              : 'input',\n    ACTIVE             : '.active',\n    BUTTON             : '.btn'\n  }\n\n  const Event = {\n    CLICK_DATA_API      : `click${EVENT_KEY}${DATA_API_KEY}`,\n    FOCUS_BLUR_DATA_API : `focus${EVENT_KEY}${DATA_API_KEY} `\n                        + `blur${EVENT_KEY}${DATA_API_KEY}`\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  class Button {\n\n    constructor(element) {\n      this._element = element\n    }\n\n\n    // getters\n\n    static get VERSION() {\n      return VERSION\n    }\n\n\n    // public\n\n    toggle() {\n      let triggerChangeEvent = true\n      let addAriaPressed = true\n      const rootElement      = $(this._element).closest(\n        Selector.DATA_TOGGLE\n      )[0]\n\n      if (rootElement) {\n        const input = $(this._element).find(Selector.INPUT)[0]\n\n        if (input) {\n          if (input.type === 'radio') {\n            if (input.checked &&\n              $(this._element).hasClass(ClassName.ACTIVE)) {\n              triggerChangeEvent = false\n\n            } else {\n              const activeElement = $(rootElement).find(Selector.ACTIVE)[0]\n\n              if (activeElement) {\n                $(activeElement).removeClass(ClassName.ACTIVE)\n              }\n            }\n          }\n\n          if (triggerChangeEvent) {\n            if (input.hasAttribute('disabled') ||\n              rootElement.hasAttribute('disabled') ||\n              input.classList.contains('disabled') ||\n              rootElement.classList.contains('disabled')) {\n              return\n            }\n            input.checked = !$(this._element).hasClass(ClassName.ACTIVE)\n            $(input).trigger('change')\n          }\n\n          input.focus()\n          addAriaPressed = false\n        }\n\n      }\n\n      if (addAriaPressed) {\n        this._element.setAttribute('aria-pressed',\n          !$(this._element).hasClass(ClassName.ACTIVE))\n      }\n\n      if (triggerChangeEvent) {\n        $(this._element).toggleClass(ClassName.ACTIVE)\n      }\n    }\n\n    dispose() {\n      $.removeData(this._element, DATA_KEY)\n      this._element = null\n    }\n\n\n    // static\n\n    static _jQueryInterface(config) {\n      return this.each(function () {\n        let data = $(this).data(DATA_KEY)\n\n        if (!data) {\n          data = new Button(this)\n          $(this).data(DATA_KEY, data)\n        }\n\n        if (config === 'toggle') {\n          data[config]()\n        }\n      })\n    }\n\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n  $(document)\n    .on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE_CARROT, (event) => {\n      event.preventDefault()\n\n      let button = event.target\n\n      if (!$(button).hasClass(ClassName.BUTTON)) {\n        button = $(button).closest(Selector.BUTTON)\n      }\n\n      Button._jQueryInterface.call($(button), 'toggle')\n    })\n    .on(Event.FOCUS_BLUR_DATA_API, Selector.DATA_TOGGLE_CARROT, (event) => {\n      const button = $(event.target).closest(Selector.BUTTON)[0]\n      $(button).toggleClass(ClassName.FOCUS, /^focus(in)?$/.test(event.type))\n    })\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $.fn[NAME]             = Button._jQueryInterface\n  $.fn[NAME].Constructor = Button\n  $.fn[NAME].noConflict  = function () {\n    $.fn[NAME] = JQUERY_NO_CONFLICT\n    return Button._jQueryInterface\n  }\n\n  return Button\n\n})($)\n\nexport default Button\n","import $ from 'jquery'\nimport Util from './util'\n\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-beta.3): carousel.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Carousel = (($) => {\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  const NAME                   = 'carousel'\n  const VERSION                = '4.0.0-beta.3'\n  const DATA_KEY               = 'bs.carousel'\n  const EVENT_KEY              = `.${DATA_KEY}`\n  const DATA_API_KEY           = '.data-api'\n  const JQUERY_NO_CONFLICT     = $.fn[NAME]\n  const TRANSITION_DURATION    = 600\n  const ARROW_LEFT_KEYCODE     = 37 // KeyboardEvent.which value for left arrow key\n  const ARROW_RIGHT_KEYCODE    = 39 // KeyboardEvent.which value for right arrow key\n  const TOUCHEVENT_COMPAT_WAIT = 500 // Time for mouse compat events to fire after touch\n\n  const Default = {\n    interval : 5000,\n    keyboard : true,\n    slide    : false,\n    pause    : 'hover',\n    wrap     : true\n  }\n\n  const DefaultType = {\n    interval : '(number|boolean)',\n    keyboard : 'boolean',\n    slide    : '(boolean|string)',\n    pause    : '(string|boolean)',\n    wrap     : 'boolean'\n  }\n\n  const Direction = {\n    NEXT     : 'next',\n    PREV     : 'prev',\n    LEFT     : 'left',\n    RIGHT    : 'right'\n  }\n\n  const Event = {\n    SLIDE          : `slide${EVENT_KEY}`,\n    SLID           : `slid${EVENT_KEY}`,\n    KEYDOWN        : `keydown${EVENT_KEY}`,\n    MOUSEENTER     : `mouseenter${EVENT_KEY}`,\n    MOUSELEAVE     : `mouseleave${EVENT_KEY}`,\n    TOUCHEND       : `touchend${EVENT_KEY}`,\n    LOAD_DATA_API  : `load${EVENT_KEY}${DATA_API_KEY}`,\n    CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n  }\n\n  const ClassName = {\n    CAROUSEL : 'carousel',\n    ACTIVE   : 'active',\n    SLIDE    : 'slide',\n    RIGHT    : 'carousel-item-right',\n    LEFT     : 'carousel-item-left',\n    NEXT     : 'carousel-item-next',\n    PREV     : 'carousel-item-prev',\n    ITEM     : 'carousel-item'\n  }\n\n  const Selector = {\n    ACTIVE      : '.active',\n    ACTIVE_ITEM : '.active.carousel-item',\n    ITEM        : '.carousel-item',\n    NEXT_PREV   : '.carousel-item-next, .carousel-item-prev',\n    INDICATORS  : '.carousel-indicators',\n    DATA_SLIDE  : '[data-slide], [data-slide-to]',\n    DATA_RIDE   : '[data-ride=\"carousel\"]'\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  class Carousel {\n\n    constructor(element, config) {\n      this._items             = null\n      this._interval          = null\n      this._activeElement     = null\n\n      this._isPaused          = false\n      this._isSliding         = false\n\n      this.touchTimeout       = null\n\n      this._config            = this._getConfig(config)\n      this._element           = $(element)[0]\n      this._indicatorsElement = $(this._element).find(Selector.INDICATORS)[0]\n\n      this._addEventListeners()\n    }\n\n\n    // getters\n\n    static get VERSION() {\n      return VERSION\n    }\n\n    static get Default() {\n      return Default\n    }\n\n\n    // public\n\n    next() {\n      if (!this._isSliding) {\n        this._slide(Direction.NEXT)\n      }\n    }\n\n    nextWhenVisible() {\n      // Don't call next when the page isn't visible\n      // or the carousel or its parent isn't visible\n      if (!document.hidden &&\n        ($(this._element).is(':visible') && $(this._element).css('visibility') !== 'hidden')) {\n        this.next()\n      }\n    }\n\n    prev() {\n      if (!this._isSliding) {\n        this._slide(Direction.PREV)\n      }\n    }\n\n    pause(event) {\n      if (!event) {\n        this._isPaused = true\n      }\n\n      if ($(this._element).find(Selector.NEXT_PREV)[0] &&\n        Util.supportsTransitionEnd()) {\n        Util.triggerTransitionEnd(this._element)\n        this.cycle(true)\n      }\n\n      clearInterval(this._interval)\n      this._interval = null\n    }\n\n    cycle(event) {\n      if (!event) {\n        this._isPaused = false\n      }\n\n      if (this._interval) {\n        clearInterval(this._interval)\n        this._interval = null\n      }\n\n      if (this._config.interval && !this._isPaused) {\n        this._interval = setInterval(\n          (document.visibilityState ? this.nextWhenVisible : this.next).bind(this),\n          this._config.interval\n        )\n      }\n    }\n\n    to(index) {\n      this._activeElement = $(this._element).find(Selector.ACTIVE_ITEM)[0]\n\n      const activeIndex = this._getItemIndex(this._activeElement)\n\n      if (index > this._items.length - 1 || index < 0) {\n        return\n      }\n\n      if (this._isSliding) {\n        $(this._element).one(Event.SLID, () => this.to(index))\n        return\n      }\n\n      if (activeIndex === index) {\n        this.pause()\n        this.cycle()\n        return\n      }\n\n      const direction = index > activeIndex ?\n        Direction.NEXT :\n        Direction.PREV\n\n      this._slide(direction, this._items[index])\n    }\n\n    dispose() {\n      $(this._element).off(EVENT_KEY)\n      $.removeData(this._element, DATA_KEY)\n\n      this._items             = null\n      this._config            = null\n      this._element           = null\n      this._interval          = null\n      this._isPaused          = null\n      this._isSliding         = null\n      this._activeElement     = null\n      this._indicatorsElement = null\n    }\n\n\n    // private\n\n    _getConfig(config) {\n      config = {\n        ...Default,\n        ...config\n      }\n      Util.typeCheckConfig(NAME, config, DefaultType)\n      return config\n    }\n\n    _addEventListeners() {\n      if (this._config.keyboard) {\n        $(this._element)\n          .on(Event.KEYDOWN, (event) => this._keydown(event))\n      }\n\n      if (this._config.pause === 'hover') {\n        $(this._element)\n          .on(Event.MOUSEENTER, (event) => this.pause(event))\n          .on(Event.MOUSELEAVE, (event) => this.cycle(event))\n        if ('ontouchstart' in document.documentElement) {\n          // if it's a touch-enabled device, mouseenter/leave are fired as\n          // part of the mouse compatibility events on first tap - the carousel\n          // would stop cycling until user tapped out of it;\n          // here, we listen for touchend, explicitly pause the carousel\n          // (as if it's the second time we tap on it, mouseenter compat event\n          // is NOT fired) and after a timeout (to allow for mouse compatibility\n          // events to fire) we explicitly restart cycling\n          $(this._element).on(Event.TOUCHEND, () => {\n            this.pause()\n            if (this.touchTimeout) {\n              clearTimeout(this.touchTimeout)\n            }\n            this.touchTimeout = setTimeout((event) => this.cycle(event), TOUCHEVENT_COMPAT_WAIT + this._config.interval)\n          })\n        }\n      }\n    }\n\n    _keydown(event) {\n      if (/input|textarea/i.test(event.target.tagName)) {\n        return\n      }\n\n      switch (event.which) {\n        case ARROW_LEFT_KEYCODE:\n          event.preventDefault()\n          this.prev()\n          break\n        case ARROW_RIGHT_KEYCODE:\n          event.preventDefault()\n          this.next()\n          break\n        default:\n          return\n      }\n    }\n\n    _getItemIndex(element) {\n      this._items = $.makeArray($(element).parent().find(Selector.ITEM))\n      return this._items.indexOf(element)\n    }\n\n    _getItemByDirection(direction, activeElement) {\n      const isNextDirection = direction === Direction.NEXT\n      const isPrevDirection = direction === Direction.PREV\n      const activeIndex     = this._getItemIndex(activeElement)\n      const lastItemIndex   = this._items.length - 1\n      const isGoingToWrap   = isPrevDirection && activeIndex === 0 ||\n                              isNextDirection && activeIndex === lastItemIndex\n\n      if (isGoingToWrap && !this._config.wrap) {\n        return activeElement\n      }\n\n      const delta     = direction === Direction.PREV ? -1 : 1\n      const itemIndex = (activeIndex + delta) % this._items.length\n\n      return itemIndex === -1 ?\n        this._items[this._items.length - 1] : this._items[itemIndex]\n    }\n\n\n    _triggerSlideEvent(relatedTarget, eventDirectionName) {\n      const targetIndex = this._getItemIndex(relatedTarget)\n      const fromIndex = this._getItemIndex($(this._element).find(Selector.ACTIVE_ITEM)[0])\n      const slideEvent = $.Event(Event.SLIDE, {\n        relatedTarget,\n        direction: eventDirectionName,\n        from: fromIndex,\n        to: targetIndex\n      })\n\n      $(this._element).trigger(slideEvent)\n\n      return slideEvent\n    }\n\n    _setActiveIndicatorElement(element) {\n      if (this._indicatorsElement) {\n        $(this._indicatorsElement)\n          .find(Selector.ACTIVE)\n          .removeClass(ClassName.ACTIVE)\n\n        const nextIndicator = this._indicatorsElement.children[\n          this._getItemIndex(element)\n        ]\n\n        if (nextIndicator) {\n          $(nextIndicator).addClass(ClassName.ACTIVE)\n        }\n      }\n    }\n\n    _slide(direction, element) {\n      const activeElement = $(this._element).find(Selector.ACTIVE_ITEM)[0]\n      const activeElementIndex = this._getItemIndex(activeElement)\n      const nextElement   = element || activeElement &&\n        this._getItemByDirection(direction, activeElement)\n      const nextElementIndex = this._getItemIndex(nextElement)\n      const isCycling = Boolean(this._interval)\n\n      let directionalClassName\n      let orderClassName\n      let eventDirectionName\n\n      if (direction === Direction.NEXT) {\n        directionalClassName = ClassName.LEFT\n        orderClassName = ClassName.NEXT\n        eventDirectionName = Direction.LEFT\n      } else {\n        directionalClassName = ClassName.RIGHT\n        orderClassName = ClassName.PREV\n        eventDirectionName = Direction.RIGHT\n      }\n\n      if (nextElement && $(nextElement).hasClass(ClassName.ACTIVE)) {\n        this._isSliding = false\n        return\n      }\n\n      const slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName)\n      if (slideEvent.isDefaultPrevented()) {\n        return\n      }\n\n      if (!activeElement || !nextElement) {\n        // some weirdness is happening, so we bail\n        return\n      }\n\n      this._isSliding = true\n\n      if (isCycling) {\n        this.pause()\n      }\n\n      this._setActiveIndicatorElement(nextElement)\n\n      const slidEvent = $.Event(Event.SLID, {\n        relatedTarget: nextElement,\n        direction: eventDirectionName,\n        from: activeElementIndex,\n        to: nextElementIndex\n      })\n\n      if (Util.supportsTransitionEnd() &&\n        $(this._element).hasClass(ClassName.SLIDE)) {\n\n        $(nextElement).addClass(orderClassName)\n\n        Util.reflow(nextElement)\n\n        $(activeElement).addClass(directionalClassName)\n        $(nextElement).addClass(directionalClassName)\n\n        $(activeElement)\n          .one(Util.TRANSITION_END, () => {\n            $(nextElement)\n              .removeClass(`${directionalClassName} ${orderClassName}`)\n              .addClass(ClassName.ACTIVE)\n\n            $(activeElement).removeClass(`${ClassName.ACTIVE} ${orderClassName} ${directionalClassName}`)\n\n            this._isSliding = false\n\n            setTimeout(() => $(this._element).trigger(slidEvent), 0)\n\n          })\n          .emulateTransitionEnd(TRANSITION_DURATION)\n\n      } else {\n        $(activeElement).removeClass(ClassName.ACTIVE)\n        $(nextElement).addClass(ClassName.ACTIVE)\n\n        this._isSliding = false\n        $(this._element).trigger(slidEvent)\n      }\n\n      if (isCycling) {\n        this.cycle()\n      }\n    }\n\n\n    // static\n\n    static _jQueryInterface(config) {\n      return this.each(function () {\n        let data      = $(this).data(DATA_KEY)\n        let _config = {\n          ...Default,\n          ...$(this).data()\n        }\n\n        if (typeof config === 'object') {\n          _config = {\n            ..._config,\n            ...config\n          }\n        }\n\n        const action = typeof config === 'string' ? config : _config.slide\n\n        if (!data) {\n          data = new Carousel(this, _config)\n          $(this).data(DATA_KEY, data)\n        }\n\n        if (typeof config === 'number') {\n          data.to(config)\n        } else if (typeof action === 'string') {\n          if (typeof data[action] === 'undefined') {\n            throw new Error(`No method named \"${action}\"`)\n          }\n          data[action]()\n        } else if (_config.interval) {\n          data.pause()\n          data.cycle()\n        }\n      })\n    }\n\n    static _dataApiClickHandler(event) {\n      const selector = Util.getSelectorFromElement(this)\n\n      if (!selector) {\n        return\n      }\n\n      const target = $(selector)[0]\n\n      if (!target || !$(target).hasClass(ClassName.CAROUSEL)) {\n        return\n      }\n\n      const config = {\n        ...$(target).data(),\n        ...$(this).data()\n      }\n      const slideIndex = this.getAttribute('data-slide-to')\n\n      if (slideIndex) {\n        config.interval = false\n      }\n\n      Carousel._jQueryInterface.call($(target), config)\n\n      if (slideIndex) {\n        $(target).data(DATA_KEY).to(slideIndex)\n      }\n\n      event.preventDefault()\n    }\n\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n  $(document)\n    .on(Event.CLICK_DATA_API, Selector.DATA_SLIDE, Carousel._dataApiClickHandler)\n\n  $(window).on(Event.LOAD_DATA_API, () => {\n    $(Selector.DATA_RIDE).each(function () {\n      const $carousel = $(this)\n      Carousel._jQueryInterface.call($carousel, $carousel.data())\n    })\n  })\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $.fn[NAME]             = Carousel._jQueryInterface\n  $.fn[NAME].Constructor = Carousel\n  $.fn[NAME].noConflict  = function () {\n    $.fn[NAME] = JQUERY_NO_CONFLICT\n    return Carousel._jQueryInterface\n  }\n\n  return Carousel\n\n})($)\n\nexport default Carousel\n","import $ from 'jquery'\nimport Util from './util'\n\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-beta.3): collapse.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Collapse = (($) => {\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  const NAME                = 'collapse'\n  const VERSION             = '4.0.0-beta.3'\n  const DATA_KEY            = 'bs.collapse'\n  const EVENT_KEY           = `.${DATA_KEY}`\n  const DATA_API_KEY        = '.data-api'\n  const JQUERY_NO_CONFLICT  = $.fn[NAME]\n  const TRANSITION_DURATION = 600\n\n  const Default = {\n    toggle : true,\n    parent : ''\n  }\n\n  const DefaultType = {\n    toggle : 'boolean',\n    parent : '(string|element)'\n  }\n\n  const Event = {\n    SHOW           : `show${EVENT_KEY}`,\n    SHOWN          : `shown${EVENT_KEY}`,\n    HIDE           : `hide${EVENT_KEY}`,\n    HIDDEN         : `hidden${EVENT_KEY}`,\n    CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n  }\n\n  const ClassName = {\n    SHOW       : 'show',\n    COLLAPSE   : 'collapse',\n    COLLAPSING : 'collapsing',\n    COLLAPSED  : 'collapsed'\n  }\n\n  const Dimension = {\n    WIDTH  : 'width',\n    HEIGHT : 'height'\n  }\n\n  const Selector = {\n    ACTIVES     : '.show, .collapsing',\n    DATA_TOGGLE : '[data-toggle=\"collapse\"]'\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  class Collapse {\n\n    constructor(element, config) {\n      this._isTransitioning = false\n      this._element         = element\n      this._config          = this._getConfig(config)\n      this._triggerArray    = $.makeArray($(\n        `[data-toggle=\"collapse\"][href=\"#${element.id}\"],` +\n        `[data-toggle=\"collapse\"][data-target=\"#${element.id}\"]`\n      ))\n      const tabToggles = $(Selector.DATA_TOGGLE)\n      for (let i = 0; i < tabToggles.length; i++) {\n        const elem = tabToggles[i]\n        const selector = Util.getSelectorFromElement(elem)\n        if (selector !== null && $(selector).filter(element).length > 0) {\n          this._triggerArray.push(elem)\n        }\n      }\n\n      this._parent = this._config.parent ? this._getParent() : null\n\n      if (!this._config.parent) {\n        this._addAriaAndCollapsedClass(this._element, this._triggerArray)\n      }\n\n      if (this._config.toggle) {\n        this.toggle()\n      }\n    }\n\n\n    // getters\n\n    static get VERSION() {\n      return VERSION\n    }\n\n    static get Default() {\n      return Default\n    }\n\n\n    // public\n\n    toggle() {\n      if ($(this._element).hasClass(ClassName.SHOW)) {\n        this.hide()\n      } else {\n        this.show()\n      }\n    }\n\n    show() {\n      if (this._isTransitioning ||\n        $(this._element).hasClass(ClassName.SHOW)) {\n        return\n      }\n\n      let actives\n      let activesData\n\n      if (this._parent) {\n        actives = $.makeArray($(this._parent).children().children(Selector.ACTIVES))\n        if (!actives.length) {\n          actives = null\n        }\n      }\n\n      if (actives) {\n        activesData = $(actives).data(DATA_KEY)\n        if (activesData && activesData._isTransitioning) {\n          return\n        }\n      }\n\n      const startEvent = $.Event(Event.SHOW)\n      $(this._element).trigger(startEvent)\n      if (startEvent.isDefaultPrevented()) {\n        return\n      }\n\n      if (actives) {\n        Collapse._jQueryInterface.call($(actives), 'hide')\n        if (!activesData) {\n          $(actives).data(DATA_KEY, null)\n        }\n      }\n\n      const dimension = this._getDimension()\n\n      $(this._element)\n        .removeClass(ClassName.COLLAPSE)\n        .addClass(ClassName.COLLAPSING)\n\n      this._element.style[dimension] = 0\n\n      if (this._triggerArray.length) {\n        $(this._triggerArray)\n          .removeClass(ClassName.COLLAPSED)\n          .attr('aria-expanded', true)\n      }\n\n      this.setTransitioning(true)\n\n      const complete = () => {\n        $(this._element)\n          .removeClass(ClassName.COLLAPSING)\n          .addClass(ClassName.COLLAPSE)\n          .addClass(ClassName.SHOW)\n\n        this._element.style[dimension] = ''\n\n        this.setTransitioning(false)\n\n        $(this._element).trigger(Event.SHOWN)\n      }\n\n      if (!Util.supportsTransitionEnd()) {\n        complete()\n        return\n      }\n\n      const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1)\n      const scrollSize           = `scroll${capitalizedDimension}`\n\n      $(this._element)\n        .one(Util.TRANSITION_END, complete)\n        .emulateTransitionEnd(TRANSITION_DURATION)\n\n      this._element.style[dimension] = `${this._element[scrollSize]}px`\n    }\n\n    hide() {\n      if (this._isTransitioning ||\n        !$(this._element).hasClass(ClassName.SHOW)) {\n        return\n      }\n\n      const startEvent = $.Event(Event.HIDE)\n      $(this._element).trigger(startEvent)\n      if (startEvent.isDefaultPrevented()) {\n        return\n      }\n\n      const dimension       = this._getDimension()\n\n      this._element.style[dimension] = `${this._element.getBoundingClientRect()[dimension]}px`\n\n      Util.reflow(this._element)\n\n      $(this._element)\n        .addClass(ClassName.COLLAPSING)\n        .removeClass(ClassName.COLLAPSE)\n        .removeClass(ClassName.SHOW)\n\n      if (this._triggerArray.length) {\n        for (let i = 0; i < this._triggerArray.length; i++) {\n          const trigger = this._triggerArray[i]\n          const selector = Util.getSelectorFromElement(trigger)\n          if (selector !== null) {\n            const $elem = $(selector)\n            if (!$elem.hasClass(ClassName.SHOW)) {\n              $(trigger).addClass(ClassName.COLLAPSED)\n                   .attr('aria-expanded', false)\n            }\n          }\n        }\n      }\n\n      this.setTransitioning(true)\n\n      const complete = () => {\n        this.setTransitioning(false)\n        $(this._element)\n          .removeClass(ClassName.COLLAPSING)\n          .addClass(ClassName.COLLAPSE)\n          .trigger(Event.HIDDEN)\n      }\n\n      this._element.style[dimension] = ''\n\n      if (!Util.supportsTransitionEnd()) {\n        complete()\n        return\n      }\n\n      $(this._element)\n        .one(Util.TRANSITION_END, complete)\n        .emulateTransitionEnd(TRANSITION_DURATION)\n    }\n\n    setTransitioning(isTransitioning) {\n      this._isTransitioning = isTransitioning\n    }\n\n    dispose() {\n      $.removeData(this._element, DATA_KEY)\n\n      this._config          = null\n      this._parent          = null\n      this._element         = null\n      this._triggerArray    = null\n      this._isTransitioning = null\n    }\n\n\n    // private\n\n    _getConfig(config) {\n      config = {\n        ...Default,\n        ...config\n      }\n      config.toggle = Boolean(config.toggle) // coerce string values\n      Util.typeCheckConfig(NAME, config, DefaultType)\n      return config\n    }\n\n    _getDimension() {\n      const hasWidth = $(this._element).hasClass(Dimension.WIDTH)\n      return hasWidth ? Dimension.WIDTH : Dimension.HEIGHT\n    }\n\n    _getParent() {\n      let parent = null\n      if (Util.isElement(this._config.parent)) {\n        parent = this._config.parent\n\n        // it's a jQuery object\n        if (typeof this._config.parent.jquery !== 'undefined') {\n          parent = this._config.parent[0]\n        }\n      } else {\n        parent = $(this._config.parent)[0]\n      }\n\n      const selector =\n        `[data-toggle=\"collapse\"][data-parent=\"${this._config.parent}\"]`\n\n      $(parent).find(selector).each((i, element) => {\n        this._addAriaAndCollapsedClass(\n          Collapse._getTargetFromElement(element),\n          [element]\n        )\n      })\n\n      return parent\n    }\n\n    _addAriaAndCollapsedClass(element, triggerArray) {\n      if (element) {\n        const isOpen = $(element).hasClass(ClassName.SHOW)\n\n        if (triggerArray.length) {\n          $(triggerArray)\n            .toggleClass(ClassName.COLLAPSED, !isOpen)\n            .attr('aria-expanded', isOpen)\n        }\n      }\n    }\n\n\n    // static\n\n    static _getTargetFromElement(element) {\n      const selector = Util.getSelectorFromElement(element)\n      return selector ? $(selector)[0] : null\n    }\n\n    static _jQueryInterface(config) {\n      return this.each(function () {\n        const $this   = $(this)\n        let data      = $this.data(DATA_KEY)\n        const _config = {\n          ...Default,\n          ...$this.data(),\n          ...typeof config === 'object' && config\n        }\n\n        if (!data && _config.toggle && /show|hide/.test(config)) {\n          _config.toggle = false\n        }\n\n        if (!data) {\n          data = new Collapse(this, _config)\n          $this.data(DATA_KEY, data)\n        }\n\n        if (typeof config === 'string') {\n          if (typeof data[config] === 'undefined') {\n            throw new Error(`No method named \"${config}\"`)\n          }\n          data[config]()\n        }\n      })\n    }\n\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n  $(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n    // preventDefault only for <a> elements (which change the URL) not inside the collapsible element\n    if (event.currentTarget.tagName === 'A') {\n      event.preventDefault()\n    }\n\n    const $trigger = $(this)\n    const selector = Util.getSelectorFromElement(this)\n    $(selector).each(function () {\n      const $target = $(this)\n      const data    = $target.data(DATA_KEY)\n      const config  = data ? 'toggle' : $trigger.data()\n      Collapse._jQueryInterface.call($target, config)\n    })\n  })\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $.fn[NAME]             = Collapse._jQueryInterface\n  $.fn[NAME].Constructor = Collapse\n  $.fn[NAME].noConflict  = function () {\n    $.fn[NAME] = JQUERY_NO_CONFLICT\n    return Collapse._jQueryInterface\n  }\n\n  return Collapse\n\n})($)\n\nexport default Collapse\n","/**!\n * @fileOverview Kickass library to create and place poppers near their reference elements.\n * @version 1.12.9\n * @license\n * Copyright (c) 2016 Federico Zivolo and contributors\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined';\nvar longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];\nvar timeoutDuration = 0;\nfor (var i = 0; i < longerTimeoutBrowsers.length; i += 1) {\n  if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {\n    timeoutDuration = 1;\n    break;\n  }\n}\n\nfunction microtaskDebounce(fn) {\n  var called = false;\n  return function () {\n    if (called) {\n      return;\n    }\n    called = true;\n    window.Promise.resolve().then(function () {\n      called = false;\n      fn();\n    });\n  };\n}\n\nfunction taskDebounce(fn) {\n  var scheduled = false;\n  return function () {\n    if (!scheduled) {\n      scheduled = true;\n      setTimeout(function () {\n        scheduled = false;\n        fn();\n      }, timeoutDuration);\n    }\n  };\n}\n\nvar supportsMicroTasks = isBrowser && window.Promise;\n\n/**\n* Create a debounced version of a method, that's asynchronously deferred\n* but called in the minimum time possible.\n*\n* @method\n* @memberof Popper.Utils\n* @argument {Function} fn\n* @returns {Function}\n*/\nvar debounce = supportsMicroTasks ? microtaskDebounce : taskDebounce;\n\n/**\n * Check if the given variable is a function\n * @method\n * @memberof Popper.Utils\n * @argument {Any} functionToCheck - variable to check\n * @returns {Boolean} answer to: is a function?\n */\nfunction isFunction(functionToCheck) {\n  var getType = {};\n  return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';\n}\n\n/**\n * Get CSS computed property of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Eement} element\n * @argument {String} property\n */\nfunction getStyleComputedProperty(element, property) {\n  if (element.nodeType !== 1) {\n    return [];\n  }\n  // NOTE: 1 DOM access here\n  var css = getComputedStyle(element, null);\n  return property ? css[property] : css;\n}\n\n/**\n * Returns the parentNode or the host of the element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} parent\n */\nfunction getParentNode(element) {\n  if (element.nodeName === 'HTML') {\n    return element;\n  }\n  return element.parentNode || element.host;\n}\n\n/**\n * Returns the scrolling parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} scroll parent\n */\nfunction getScrollParent(element) {\n  // Return body, `getScroll` will take care to get the correct `scrollTop` from it\n  if (!element) {\n    return document.body;\n  }\n\n  switch (element.nodeName) {\n    case 'HTML':\n    case 'BODY':\n      return element.ownerDocument.body;\n    case '#document':\n      return element.body;\n  }\n\n  // Firefox want us to check `-x` and `-y` variations as well\n\n  var _getStyleComputedProp = getStyleComputedProperty(element),\n      overflow = _getStyleComputedProp.overflow,\n      overflowX = _getStyleComputedProp.overflowX,\n      overflowY = _getStyleComputedProp.overflowY;\n\n  if (/(auto|scroll)/.test(overflow + overflowY + overflowX)) {\n    return element;\n  }\n\n  return getScrollParent(getParentNode(element));\n}\n\n/**\n * Returns the offset parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} offset parent\n */\nfunction getOffsetParent(element) {\n  // NOTE: 1 DOM access here\n  var offsetParent = element && element.offsetParent;\n  var nodeName = offsetParent && offsetParent.nodeName;\n\n  if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {\n    if (element) {\n      return element.ownerDocument.documentElement;\n    }\n\n    return document.documentElement;\n  }\n\n  // .offsetParent will return the closest TD or TABLE in case\n  // no offsetParent is present, I hate this job...\n  if (['TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 && getStyleComputedProperty(offsetParent, 'position') === 'static') {\n    return getOffsetParent(offsetParent);\n  }\n\n  return offsetParent;\n}\n\nfunction isOffsetContainer(element) {\n  var nodeName = element.nodeName;\n\n  if (nodeName === 'BODY') {\n    return false;\n  }\n  return nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element;\n}\n\n/**\n * Finds the root node (document, shadowDOM root) of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} node\n * @returns {Element} root node\n */\nfunction getRoot(node) {\n  if (node.parentNode !== null) {\n    return getRoot(node.parentNode);\n  }\n\n  return node;\n}\n\n/**\n * Finds the offset parent common to the two provided nodes\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element1\n * @argument {Element} element2\n * @returns {Element} common offset parent\n */\nfunction findCommonOffsetParent(element1, element2) {\n  // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n  if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) {\n    return document.documentElement;\n  }\n\n  // Here we make sure to give as \"start\" the element that comes first in the DOM\n  var order = element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING;\n  var start = order ? element1 : element2;\n  var end = order ? element2 : element1;\n\n  // Get common ancestor container\n  var range = document.createRange();\n  range.setStart(start, 0);\n  range.setEnd(end, 0);\n  var commonAncestorContainer = range.commonAncestorContainer;\n\n  // Both nodes are inside #document\n\n  if (element1 !== commonAncestorContainer && element2 !== commonAncestorContainer || start.contains(end)) {\n    if (isOffsetContainer(commonAncestorContainer)) {\n      return commonAncestorContainer;\n    }\n\n    return getOffsetParent(commonAncestorContainer);\n  }\n\n  // one of the nodes is inside shadowDOM, find which one\n  var element1root = getRoot(element1);\n  if (element1root.host) {\n    return findCommonOffsetParent(element1root.host, element2);\n  } else {\n    return findCommonOffsetParent(element1, getRoot(element2).host);\n  }\n}\n\n/**\n * Gets the scroll value of the given element in the given side (top and left)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {String} side `top` or `left`\n * @returns {number} amount of scrolled pixels\n */\nfunction getScroll(element) {\n  var side = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'top';\n\n  var upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';\n  var nodeName = element.nodeName;\n\n  if (nodeName === 'BODY' || nodeName === 'HTML') {\n    var html = element.ownerDocument.documentElement;\n    var scrollingElement = element.ownerDocument.scrollingElement || html;\n    return scrollingElement[upperSide];\n  }\n\n  return element[upperSide];\n}\n\n/*\n * Sum or subtract the element scroll values (left and top) from a given rect object\n * @method\n * @memberof Popper.Utils\n * @param {Object} rect - Rect object you want to change\n * @param {HTMLElement} element - The element from the function reads the scroll values\n * @param {Boolean} subtract - set to true if you want to subtract the scroll values\n * @return {Object} rect - The modifier rect object\n */\nfunction includeScroll(rect, element) {\n  var subtract = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n  var scrollTop = getScroll(element, 'top');\n  var scrollLeft = getScroll(element, 'left');\n  var modifier = subtract ? -1 : 1;\n  rect.top += scrollTop * modifier;\n  rect.bottom += scrollTop * modifier;\n  rect.left += scrollLeft * modifier;\n  rect.right += scrollLeft * modifier;\n  return rect;\n}\n\n/*\n * Helper to detect borders of a given element\n * @method\n * @memberof Popper.Utils\n * @param {CSSStyleDeclaration} styles\n * Result of `getStyleComputedProperty` on the given element\n * @param {String} axis - `x` or `y`\n * @return {number} borders - The borders size of the given axis\n */\n\nfunction getBordersSize(styles, axis) {\n  var sideA = axis === 'x' ? 'Left' : 'Top';\n  var sideB = sideA === 'Left' ? 'Right' : 'Bottom';\n\n  return parseFloat(styles['border' + sideA + 'Width'], 10) + parseFloat(styles['border' + sideB + 'Width'], 10);\n}\n\n/**\n * Tells if you are running Internet Explorer 10\n * @method\n * @memberof Popper.Utils\n * @returns {Boolean} isIE10\n */\nvar isIE10 = undefined;\n\nvar isIE10$1 = function () {\n  if (isIE10 === undefined) {\n    isIE10 = navigator.appVersion.indexOf('MSIE 10') !== -1;\n  }\n  return isIE10;\n};\n\nfunction getSize(axis, body, html, computedStyle) {\n  return Math.max(body['offset' + axis], body['scroll' + axis], html['client' + axis], html['offset' + axis], html['scroll' + axis], isIE10$1() ? html['offset' + axis] + computedStyle['margin' + (axis === 'Height' ? 'Top' : 'Left')] + computedStyle['margin' + (axis === 'Height' ? 'Bottom' : 'Right')] : 0);\n}\n\nfunction getWindowSizes() {\n  var body = document.body;\n  var html = document.documentElement;\n  var computedStyle = isIE10$1() && getComputedStyle(html);\n\n  return {\n    height: getSize('Height', body, html, computedStyle),\n    width: getSize('Width', body, html, computedStyle)\n  };\n}\n\nvar classCallCheck = function (instance, Constructor) {\n  if (!(instance instanceof Constructor)) {\n    throw new TypeError(\"Cannot call a class as a function\");\n  }\n};\n\nvar createClass = function () {\n  function defineProperties(target, props) {\n    for (var i = 0; i < props.length; i++) {\n      var descriptor = props[i];\n      descriptor.enumerable = descriptor.enumerable || false;\n      descriptor.configurable = true;\n      if (\"value\" in descriptor) descriptor.writable = true;\n      Object.defineProperty(target, descriptor.key, descriptor);\n    }\n  }\n\n  return function (Constructor, protoProps, staticProps) {\n    if (protoProps) defineProperties(Constructor.prototype, protoProps);\n    if (staticProps) defineProperties(Constructor, staticProps);\n    return Constructor;\n  };\n}();\n\n\n\n\n\nvar defineProperty = function (obj, key, value) {\n  if (key in obj) {\n    Object.defineProperty(obj, key, {\n      value: value,\n      enumerable: true,\n      configurable: true,\n      writable: true\n    });\n  } else {\n    obj[key] = value;\n  }\n\n  return obj;\n};\n\nvar _extends = Object.assign || function (target) {\n  for (var i = 1; i < arguments.length; i++) {\n    var source = arguments[i];\n\n    for (var key in source) {\n      if (Object.prototype.hasOwnProperty.call(source, key)) {\n        target[key] = source[key];\n      }\n    }\n  }\n\n  return target;\n};\n\n/**\n * Given element offsets, generate an output similar to getBoundingClientRect\n * @method\n * @memberof Popper.Utils\n * @argument {Object} offsets\n * @returns {Object} ClientRect like output\n */\nfunction getClientRect(offsets) {\n  return _extends({}, offsets, {\n    right: offsets.left + offsets.width,\n    bottom: offsets.top + offsets.height\n  });\n}\n\n/**\n * Get bounding client rect of given element\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} element\n * @return {Object} client rect\n */\nfunction getBoundingClientRect(element) {\n  var rect = {};\n\n  // IE10 10 FIX: Please, don't ask, the element isn't\n  // considered in DOM in some circumstances...\n  // This isn't reproducible in IE10 compatibility mode of IE11\n  if (isIE10$1()) {\n    try {\n      rect = element.getBoundingClientRect();\n      var scrollTop = getScroll(element, 'top');\n      var scrollLeft = getScroll(element, 'left');\n      rect.top += scrollTop;\n      rect.left += scrollLeft;\n      rect.bottom += scrollTop;\n      rect.right += scrollLeft;\n    } catch (err) {}\n  } else {\n    rect = element.getBoundingClientRect();\n  }\n\n  var result = {\n    left: rect.left,\n    top: rect.top,\n    width: rect.right - rect.left,\n    height: rect.bottom - rect.top\n  };\n\n  // subtract scrollbar size from sizes\n  var sizes = element.nodeName === 'HTML' ? getWindowSizes() : {};\n  var width = sizes.width || element.clientWidth || result.right - result.left;\n  var height = sizes.height || element.clientHeight || result.bottom - result.top;\n\n  var horizScrollbar = element.offsetWidth - width;\n  var vertScrollbar = element.offsetHeight - height;\n\n  // if an hypothetical scrollbar is detected, we must be sure it's not a `border`\n  // we make this check conditional for performance reasons\n  if (horizScrollbar || vertScrollbar) {\n    var styles = getStyleComputedProperty(element);\n    horizScrollbar -= getBordersSize(styles, 'x');\n    vertScrollbar -= getBordersSize(styles, 'y');\n\n    result.width -= horizScrollbar;\n    result.height -= vertScrollbar;\n  }\n\n  return getClientRect(result);\n}\n\nfunction getOffsetRectRelativeToArbitraryNode(children, parent) {\n  var isIE10 = isIE10$1();\n  var isHTML = parent.nodeName === 'HTML';\n  var childrenRect = getBoundingClientRect(children);\n  var parentRect = getBoundingClientRect(parent);\n  var scrollParent = getScrollParent(children);\n\n  var styles = getStyleComputedProperty(parent);\n  var borderTopWidth = parseFloat(styles.borderTopWidth, 10);\n  var borderLeftWidth = parseFloat(styles.borderLeftWidth, 10);\n\n  var offsets = getClientRect({\n    top: childrenRect.top - parentRect.top - borderTopWidth,\n    left: childrenRect.left - parentRect.left - borderLeftWidth,\n    width: childrenRect.width,\n    height: childrenRect.height\n  });\n  offsets.marginTop = 0;\n  offsets.marginLeft = 0;\n\n  // Subtract margins of documentElement in case it's being used as parent\n  // we do this only on HTML because it's the only element that behaves\n  // differently when margins are applied to it. The margins are included in\n  // the box of the documentElement, in the other cases not.\n  if (!isIE10 && isHTML) {\n    var marginTop = parseFloat(styles.marginTop, 10);\n    var marginLeft = parseFloat(styles.marginLeft, 10);\n\n    offsets.top -= borderTopWidth - marginTop;\n    offsets.bottom -= borderTopWidth - marginTop;\n    offsets.left -= borderLeftWidth - marginLeft;\n    offsets.right -= borderLeftWidth - marginLeft;\n\n    // Attach marginTop and marginLeft because in some circumstances we may need them\n    offsets.marginTop = marginTop;\n    offsets.marginLeft = marginLeft;\n  }\n\n  if (isIE10 ? parent.contains(scrollParent) : parent === scrollParent && scrollParent.nodeName !== 'BODY') {\n    offsets = includeScroll(offsets, parent);\n  }\n\n  return offsets;\n}\n\nfunction getViewportOffsetRectRelativeToArtbitraryNode(element) {\n  var html = element.ownerDocument.documentElement;\n  var relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);\n  var width = Math.max(html.clientWidth, window.innerWidth || 0);\n  var height = Math.max(html.clientHeight, window.innerHeight || 0);\n\n  var scrollTop = getScroll(html);\n  var scrollLeft = getScroll(html, 'left');\n\n  var offset = {\n    top: scrollTop - relativeOffset.top + relativeOffset.marginTop,\n    left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,\n    width: width,\n    height: height\n  };\n\n  return getClientRect(offset);\n}\n\n/**\n * Check if the given element is fixed or is inside a fixed parent\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {Element} customContainer\n * @returns {Boolean} answer to \"isFixed?\"\n */\nfunction isFixed(element) {\n  var nodeName = element.nodeName;\n  if (nodeName === 'BODY' || nodeName === 'HTML') {\n    return false;\n  }\n  if (getStyleComputedProperty(element, 'position') === 'fixed') {\n    return true;\n  }\n  return isFixed(getParentNode(element));\n}\n\n/**\n * Computed the boundaries limits and return them\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} popper\n * @param {HTMLElement} reference\n * @param {number} padding\n * @param {HTMLElement} boundariesElement - Element used to define the boundaries\n * @returns {Object} Coordinates of the boundaries\n */\nfunction getBoundaries(popper, reference, padding, boundariesElement) {\n  // NOTE: 1 DOM access here\n  var boundaries = { top: 0, left: 0 };\n  var offsetParent = findCommonOffsetParent(popper, reference);\n\n  // Handle viewport case\n  if (boundariesElement === 'viewport') {\n    boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent);\n  } else {\n    // Handle other cases based on DOM element used as boundaries\n    var boundariesNode = void 0;\n    if (boundariesElement === 'scrollParent') {\n      boundariesNode = getScrollParent(getParentNode(reference));\n      if (boundariesNode.nodeName === 'BODY') {\n        boundariesNode = popper.ownerDocument.documentElement;\n      }\n    } else if (boundariesElement === 'window') {\n      boundariesNode = popper.ownerDocument.documentElement;\n    } else {\n      boundariesNode = boundariesElement;\n    }\n\n    var offsets = getOffsetRectRelativeToArbitraryNode(boundariesNode, offsetParent);\n\n    // In case of HTML, we need a different computation\n    if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {\n      var _getWindowSizes = getWindowSizes(),\n          height = _getWindowSizes.height,\n          width = _getWindowSizes.width;\n\n      boundaries.top += offsets.top - offsets.marginTop;\n      boundaries.bottom = height + offsets.top;\n      boundaries.left += offsets.left - offsets.marginLeft;\n      boundaries.right = width + offsets.left;\n    } else {\n      // for all the other DOM elements, this one is good\n      boundaries = offsets;\n    }\n  }\n\n  // Add paddings\n  boundaries.left += padding;\n  boundaries.top += padding;\n  boundaries.right -= padding;\n  boundaries.bottom -= padding;\n\n  return boundaries;\n}\n\nfunction getArea(_ref) {\n  var width = _ref.width,\n      height = _ref.height;\n\n  return width * height;\n}\n\n/**\n * Utility used to transform the `auto` placement to the placement with more\n * available space.\n * @method\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeAutoPlacement(placement, refRect, popper, reference, boundariesElement) {\n  var padding = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0;\n\n  if (placement.indexOf('auto') === -1) {\n    return placement;\n  }\n\n  var boundaries = getBoundaries(popper, reference, padding, boundariesElement);\n\n  var rects = {\n    top: {\n      width: boundaries.width,\n      height: refRect.top - boundaries.top\n    },\n    right: {\n      width: boundaries.right - refRect.right,\n      height: boundaries.height\n    },\n    bottom: {\n      width: boundaries.width,\n      height: boundaries.bottom - refRect.bottom\n    },\n    left: {\n      width: refRect.left - boundaries.left,\n      height: boundaries.height\n    }\n  };\n\n  var sortedAreas = Object.keys(rects).map(function (key) {\n    return _extends({\n      key: key\n    }, rects[key], {\n      area: getArea(rects[key])\n    });\n  }).sort(function (a, b) {\n    return b.area - a.area;\n  });\n\n  var filteredAreas = sortedAreas.filter(function (_ref2) {\n    var width = _ref2.width,\n        height = _ref2.height;\n    return width >= popper.clientWidth && height >= popper.clientHeight;\n  });\n\n  var computedPlacement = filteredAreas.length > 0 ? filteredAreas[0].key : sortedAreas[0].key;\n\n  var variation = placement.split('-')[1];\n\n  return computedPlacement + (variation ? '-' + variation : '');\n}\n\n/**\n * Get offsets to the reference element\n * @method\n * @memberof Popper.Utils\n * @param {Object} state\n * @param {Element} popper - the popper element\n * @param {Element} reference - the reference element (the popper will be relative to this)\n * @returns {Object} An object containing the offsets which will be applied to the popper\n */\nfunction getReferenceOffsets(state, popper, reference) {\n  var commonOffsetParent = findCommonOffsetParent(popper, reference);\n  return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent);\n}\n\n/**\n * Get the outer sizes of the given element (offset size + margins)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Object} object containing width and height properties\n */\nfunction getOuterSizes(element) {\n  var styles = getComputedStyle(element);\n  var x = parseFloat(styles.marginTop) + parseFloat(styles.marginBottom);\n  var y = parseFloat(styles.marginLeft) + parseFloat(styles.marginRight);\n  var result = {\n    width: element.offsetWidth + y,\n    height: element.offsetHeight + x\n  };\n  return result;\n}\n\n/**\n * Get the opposite placement of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement\n * @returns {String} flipped placement\n */\nfunction getOppositePlacement(placement) {\n  var hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };\n  return placement.replace(/left|right|bottom|top/g, function (matched) {\n    return hash[matched];\n  });\n}\n\n/**\n * Get offsets to the popper\n * @method\n * @memberof Popper.Utils\n * @param {Object} position - CSS position the Popper will get applied\n * @param {HTMLElement} popper - the popper element\n * @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this)\n * @param {String} placement - one of the valid placement options\n * @returns {Object} popperOffsets - An object containing the offsets which will be applied to the popper\n */\nfunction getPopperOffsets(popper, referenceOffsets, placement) {\n  placement = placement.split('-')[0];\n\n  // Get popper node sizes\n  var popperRect = getOuterSizes(popper);\n\n  // Add position, width and height to our offsets object\n  var popperOffsets = {\n    width: popperRect.width,\n    height: popperRect.height\n  };\n\n  // depending by the popper placement we have to compute its offsets slightly differently\n  var isHoriz = ['right', 'left'].indexOf(placement) !== -1;\n  var mainSide = isHoriz ? 'top' : 'left';\n  var secondarySide = isHoriz ? 'left' : 'top';\n  var measurement = isHoriz ? 'height' : 'width';\n  var secondaryMeasurement = !isHoriz ? 'height' : 'width';\n\n  popperOffsets[mainSide] = referenceOffsets[mainSide] + referenceOffsets[measurement] / 2 - popperRect[measurement] / 2;\n  if (placement === secondarySide) {\n    popperOffsets[secondarySide] = referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];\n  } else {\n    popperOffsets[secondarySide] = referenceOffsets[getOppositePlacement(secondarySide)];\n  }\n\n  return popperOffsets;\n}\n\n/**\n * Mimics the `find` method of Array\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction find(arr, check) {\n  // use native find if supported\n  if (Array.prototype.find) {\n    return arr.find(check);\n  }\n\n  // use `filter` to obtain the same behavior of `find`\n  return arr.filter(check)[0];\n}\n\n/**\n * Return the index of the matching object\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction findIndex(arr, prop, value) {\n  // use native findIndex if supported\n  if (Array.prototype.findIndex) {\n    return arr.findIndex(function (cur) {\n      return cur[prop] === value;\n    });\n  }\n\n  // use `find` + `indexOf` if `findIndex` isn't supported\n  var match = find(arr, function (obj) {\n    return obj[prop] === value;\n  });\n  return arr.indexOf(match);\n}\n\n/**\n * Loop trough the list of modifiers and run them in order,\n * each of them will then edit the data object.\n * @method\n * @memberof Popper.Utils\n * @param {dataObject} data\n * @param {Array} modifiers\n * @param {String} ends - Optional modifier name used as stopper\n * @returns {dataObject}\n */\nfunction runModifiers(modifiers, data, ends) {\n  var modifiersToRun = ends === undefined ? modifiers : modifiers.slice(0, findIndex(modifiers, 'name', ends));\n\n  modifiersToRun.forEach(function (modifier) {\n    if (modifier['function']) {\n      // eslint-disable-line dot-notation\n      console.warn('`modifier.function` is deprecated, use `modifier.fn`!');\n    }\n    var fn = modifier['function'] || modifier.fn; // eslint-disable-line dot-notation\n    if (modifier.enabled && isFunction(fn)) {\n      // Add properties to offsets to make them a complete clientRect object\n      // we do this before each modifier to make sure the previous one doesn't\n      // mess with these values\n      data.offsets.popper = getClientRect(data.offsets.popper);\n      data.offsets.reference = getClientRect(data.offsets.reference);\n\n      data = fn(data, modifier);\n    }\n  });\n\n  return data;\n}\n\n/**\n * Updates the position of the popper, computing the new offsets and applying\n * the new style.<br />\n * Prefer `scheduleUpdate` over `update` because of performance reasons.\n * @method\n * @memberof Popper\n */\nfunction update() {\n  // if popper is destroyed, don't perform any further update\n  if (this.state.isDestroyed) {\n    return;\n  }\n\n  var data = {\n    instance: this,\n    styles: {},\n    arrowStyles: {},\n    attributes: {},\n    flipped: false,\n    offsets: {}\n  };\n\n  // compute reference element offsets\n  data.offsets.reference = getReferenceOffsets(this.state, this.popper, this.reference);\n\n  // compute auto placement, store placement inside the data object,\n  // modifiers will be able to edit `placement` if needed\n  // and refer to originalPlacement to know the original value\n  data.placement = computeAutoPlacement(this.options.placement, data.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding);\n\n  // store the computed placement inside `originalPlacement`\n  data.originalPlacement = data.placement;\n\n  // compute the popper offsets\n  data.offsets.popper = getPopperOffsets(this.popper, data.offsets.reference, data.placement);\n  data.offsets.popper.position = 'absolute';\n\n  // run the modifiers\n  data = runModifiers(this.modifiers, data);\n\n  // the first `update` will call `onCreate` callback\n  // the other ones will call `onUpdate` callback\n  if (!this.state.isCreated) {\n    this.state.isCreated = true;\n    this.options.onCreate(data);\n  } else {\n    this.options.onUpdate(data);\n  }\n}\n\n/**\n * Helper used to know if the given modifier is enabled.\n * @method\n * @memberof Popper.Utils\n * @returns {Boolean}\n */\nfunction isModifierEnabled(modifiers, modifierName) {\n  return modifiers.some(function (_ref) {\n    var name = _ref.name,\n        enabled = _ref.enabled;\n    return enabled && name === modifierName;\n  });\n}\n\n/**\n * Get the prefixed supported property name\n * @method\n * @memberof Popper.Utils\n * @argument {String} property (camelCase)\n * @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix)\n */\nfunction getSupportedPropertyName(property) {\n  var prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];\n  var upperProp = property.charAt(0).toUpperCase() + property.slice(1);\n\n  for (var i = 0; i < prefixes.length - 1; i++) {\n    var prefix = prefixes[i];\n    var toCheck = prefix ? '' + prefix + upperProp : property;\n    if (typeof document.body.style[toCheck] !== 'undefined') {\n      return toCheck;\n    }\n  }\n  return null;\n}\n\n/**\n * Destroy the popper\n * @method\n * @memberof Popper\n */\nfunction destroy() {\n  this.state.isDestroyed = true;\n\n  // touch DOM only if `applyStyle` modifier is enabled\n  if (isModifierEnabled(this.modifiers, 'applyStyle')) {\n    this.popper.removeAttribute('x-placement');\n    this.popper.style.left = '';\n    this.popper.style.position = '';\n    this.popper.style.top = '';\n    this.popper.style[getSupportedPropertyName('transform')] = '';\n  }\n\n  this.disableEventListeners();\n\n  // remove the popper if user explicity asked for the deletion on destroy\n  // do not use `remove` because IE11 doesn't support it\n  if (this.options.removeOnDestroy) {\n    this.popper.parentNode.removeChild(this.popper);\n  }\n  return this;\n}\n\n/**\n * Get the window associated with the element\n * @argument {Element} element\n * @returns {Window}\n */\nfunction getWindow(element) {\n  var ownerDocument = element.ownerDocument;\n  return ownerDocument ? ownerDocument.defaultView : window;\n}\n\nfunction attachToScrollParents(scrollParent, event, callback, scrollParents) {\n  var isBody = scrollParent.nodeName === 'BODY';\n  var target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;\n  target.addEventListener(event, callback, { passive: true });\n\n  if (!isBody) {\n    attachToScrollParents(getScrollParent(target.parentNode), event, callback, scrollParents);\n  }\n  scrollParents.push(target);\n}\n\n/**\n * Setup needed event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction setupEventListeners(reference, options, state, updateBound) {\n  // Resize event listener on window\n  state.updateBound = updateBound;\n  getWindow(reference).addEventListener('resize', state.updateBound, { passive: true });\n\n  // Scroll event listener on scroll parents\n  var scrollElement = getScrollParent(reference);\n  attachToScrollParents(scrollElement, 'scroll', state.updateBound, state.scrollParents);\n  state.scrollElement = scrollElement;\n  state.eventsEnabled = true;\n\n  return state;\n}\n\n/**\n * It will add resize/scroll events and start recalculating\n * position of the popper element when they are triggered.\n * @method\n * @memberof Popper\n */\nfunction enableEventListeners() {\n  if (!this.state.eventsEnabled) {\n    this.state = setupEventListeners(this.reference, this.options, this.state, this.scheduleUpdate);\n  }\n}\n\n/**\n * Remove event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction removeEventListeners(reference, state) {\n  // Remove resize event listener on window\n  getWindow(reference).removeEventListener('resize', state.updateBound);\n\n  // Remove scroll event listener on scroll parents\n  state.scrollParents.forEach(function (target) {\n    target.removeEventListener('scroll', state.updateBound);\n  });\n\n  // Reset state\n  state.updateBound = null;\n  state.scrollParents = [];\n  state.scrollElement = null;\n  state.eventsEnabled = false;\n  return state;\n}\n\n/**\n * It will remove resize/scroll events and won't recalculate popper position\n * when they are triggered. It also won't trigger onUpdate callback anymore,\n * unless you call `update` method manually.\n * @method\n * @memberof Popper\n */\nfunction disableEventListeners() {\n  if (this.state.eventsEnabled) {\n    cancelAnimationFrame(this.scheduleUpdate);\n    this.state = removeEventListeners(this.reference, this.state);\n  }\n}\n\n/**\n * Tells if a given input is a number\n * @method\n * @memberof Popper.Utils\n * @param {*} input to check\n * @return {Boolean}\n */\nfunction isNumeric(n) {\n  return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);\n}\n\n/**\n * Set the style to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the style to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setStyles(element, styles) {\n  Object.keys(styles).forEach(function (prop) {\n    var unit = '';\n    // add unit if the value is numeric and is one of the following\n    if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 && isNumeric(styles[prop])) {\n      unit = 'px';\n    }\n    element.style[prop] = styles[prop] + unit;\n  });\n}\n\n/**\n * Set the attributes to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the attributes to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setAttributes(element, attributes) {\n  Object.keys(attributes).forEach(function (prop) {\n    var value = attributes[prop];\n    if (value !== false) {\n      element.setAttribute(prop, attributes[prop]);\n    } else {\n      element.removeAttribute(prop);\n    }\n  });\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} data.styles - List of style properties - values to apply to popper element\n * @argument {Object} data.attributes - List of attribute properties - values to apply to popper element\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The same data object\n */\nfunction applyStyle(data) {\n  // any property present in `data.styles` will be applied to the popper,\n  // in this way we can make the 3rd party modifiers add custom styles to it\n  // Be aware, modifiers could override the properties defined in the previous\n  // lines of this modifier!\n  setStyles(data.instance.popper, data.styles);\n\n  // any property present in `data.attributes` will be applied to the popper,\n  // they will be set as HTML attributes of the element\n  setAttributes(data.instance.popper, data.attributes);\n\n  // if arrowElement is defined and arrowStyles has some properties\n  if (data.arrowElement && Object.keys(data.arrowStyles).length) {\n    setStyles(data.arrowElement, data.arrowStyles);\n  }\n\n  return data;\n}\n\n/**\n * Set the x-placement attribute before everything else because it could be used\n * to add margins to the popper margins needs to be calculated to get the\n * correct popper offsets.\n * @method\n * @memberof Popper.modifiers\n * @param {HTMLElement} reference - The reference element used to position the popper\n * @param {HTMLElement} popper - The HTML element used as popper.\n * @param {Object} options - Popper.js options\n */\nfunction applyStyleOnLoad(reference, popper, options, modifierOptions, state) {\n  // compute reference element offsets\n  var referenceOffsets = getReferenceOffsets(state, popper, reference);\n\n  // compute auto placement, store placement inside the data object,\n  // modifiers will be able to edit `placement` if needed\n  // and refer to originalPlacement to know the original value\n  var placement = computeAutoPlacement(options.placement, referenceOffsets, popper, reference, options.modifiers.flip.boundariesElement, options.modifiers.flip.padding);\n\n  popper.setAttribute('x-placement', placement);\n\n  // Apply `position` to popper before anything else because\n  // without the position applied we can't guarantee correct computations\n  setStyles(popper, { position: 'absolute' });\n\n  return options;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeStyle(data, options) {\n  var x = options.x,\n      y = options.y;\n  var popper = data.offsets.popper;\n\n  // Remove this legacy support in Popper.js v2\n\n  var legacyGpuAccelerationOption = find(data.instance.modifiers, function (modifier) {\n    return modifier.name === 'applyStyle';\n  }).gpuAcceleration;\n  if (legacyGpuAccelerationOption !== undefined) {\n    console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!');\n  }\n  var gpuAcceleration = legacyGpuAccelerationOption !== undefined ? legacyGpuAccelerationOption : options.gpuAcceleration;\n\n  var offsetParent = getOffsetParent(data.instance.popper);\n  var offsetParentRect = getBoundingClientRect(offsetParent);\n\n  // Styles\n  var styles = {\n    position: popper.position\n  };\n\n  // floor sides to avoid blurry text\n  var offsets = {\n    left: Math.floor(popper.left),\n    top: Math.floor(popper.top),\n    bottom: Math.floor(popper.bottom),\n    right: Math.floor(popper.right)\n  };\n\n  var sideA = x === 'bottom' ? 'top' : 'bottom';\n  var sideB = y === 'right' ? 'left' : 'right';\n\n  // if gpuAcceleration is set to `true` and transform is supported,\n  //  we use `translate3d` to apply the position to the popper we\n  // automatically use the supported prefixed version if needed\n  var prefixedProperty = getSupportedPropertyName('transform');\n\n  // now, let's make a step back and look at this code closely (wtf?)\n  // If the content of the popper grows once it's been positioned, it\n  // may happen that the popper gets misplaced because of the new content\n  // overflowing its reference element\n  // To avoid this problem, we provide two options (x and y), which allow\n  // the consumer to define the offset origin.\n  // If we position a popper on top of a reference element, we can set\n  // `x` to `top` to make the popper grow towards its top instead of\n  // its bottom.\n  var left = void 0,\n      top = void 0;\n  if (sideA === 'bottom') {\n    top = -offsetParentRect.height + offsets.bottom;\n  } else {\n    top = offsets.top;\n  }\n  if (sideB === 'right') {\n    left = -offsetParentRect.width + offsets.right;\n  } else {\n    left = offsets.left;\n  }\n  if (gpuAcceleration && prefixedProperty) {\n    styles[prefixedProperty] = 'translate3d(' + left + 'px, ' + top + 'px, 0)';\n    styles[sideA] = 0;\n    styles[sideB] = 0;\n    styles.willChange = 'transform';\n  } else {\n    // othwerise, we use the standard `top`, `left`, `bottom` and `right` properties\n    var invertTop = sideA === 'bottom' ? -1 : 1;\n    var invertLeft = sideB === 'right' ? -1 : 1;\n    styles[sideA] = top * invertTop;\n    styles[sideB] = left * invertLeft;\n    styles.willChange = sideA + ', ' + sideB;\n  }\n\n  // Attributes\n  var attributes = {\n    'x-placement': data.placement\n  };\n\n  // Update `data` attributes, styles and arrowStyles\n  data.attributes = _extends({}, attributes, data.attributes);\n  data.styles = _extends({}, styles, data.styles);\n  data.arrowStyles = _extends({}, data.offsets.arrow, data.arrowStyles);\n\n  return data;\n}\n\n/**\n * Helper used to know if the given modifier depends from another one.<br />\n * It checks if the needed modifier is listed and enabled.\n * @method\n * @memberof Popper.Utils\n * @param {Array} modifiers - list of modifiers\n * @param {String} requestingName - name of requesting modifier\n * @param {String} requestedName - name of requested modifier\n * @returns {Boolean}\n */\nfunction isModifierRequired(modifiers, requestingName, requestedName) {\n  var requesting = find(modifiers, function (_ref) {\n    var name = _ref.name;\n    return name === requestingName;\n  });\n\n  var isRequired = !!requesting && modifiers.some(function (modifier) {\n    return modifier.name === requestedName && modifier.enabled && modifier.order < requesting.order;\n  });\n\n  if (!isRequired) {\n    var _requesting = '`' + requestingName + '`';\n    var requested = '`' + requestedName + '`';\n    console.warn(requested + ' modifier is required by ' + _requesting + ' modifier in order to work, be sure to include it before ' + _requesting + '!');\n  }\n  return isRequired;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction arrow(data, options) {\n  var _data$offsets$arrow;\n\n  // arrow depends on keepTogether in order to work\n  if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) {\n    return data;\n  }\n\n  var arrowElement = options.element;\n\n  // if arrowElement is a string, suppose it's a CSS selector\n  if (typeof arrowElement === 'string') {\n    arrowElement = data.instance.popper.querySelector(arrowElement);\n\n    // if arrowElement is not found, don't run the modifier\n    if (!arrowElement) {\n      return data;\n    }\n  } else {\n    // if the arrowElement isn't a query selector we must check that the\n    // provided DOM node is child of its popper node\n    if (!data.instance.popper.contains(arrowElement)) {\n      console.warn('WARNING: `arrow.element` must be child of its popper element!');\n      return data;\n    }\n  }\n\n  var placement = data.placement.split('-')[0];\n  var _data$offsets = data.offsets,\n      popper = _data$offsets.popper,\n      reference = _data$offsets.reference;\n\n  var isVertical = ['left', 'right'].indexOf(placement) !== -1;\n\n  var len = isVertical ? 'height' : 'width';\n  var sideCapitalized = isVertical ? 'Top' : 'Left';\n  var side = sideCapitalized.toLowerCase();\n  var altSide = isVertical ? 'left' : 'top';\n  var opSide = isVertical ? 'bottom' : 'right';\n  var arrowElementSize = getOuterSizes(arrowElement)[len];\n\n  //\n  // extends keepTogether behavior making sure the popper and its\n  // reference have enough pixels in conjuction\n  //\n\n  // top/left side\n  if (reference[opSide] - arrowElementSize < popper[side]) {\n    data.offsets.popper[side] -= popper[side] - (reference[opSide] - arrowElementSize);\n  }\n  // bottom/right side\n  if (reference[side] + arrowElementSize > popper[opSide]) {\n    data.offsets.popper[side] += reference[side] + arrowElementSize - popper[opSide];\n  }\n  data.offsets.popper = getClientRect(data.offsets.popper);\n\n  // compute center of the popper\n  var center = reference[side] + reference[len] / 2 - arrowElementSize / 2;\n\n  // Compute the sideValue using the updated popper offsets\n  // take popper margin in account because we don't have this info available\n  var css = getStyleComputedProperty(data.instance.popper);\n  var popperMarginSide = parseFloat(css['margin' + sideCapitalized], 10);\n  var popperBorderSide = parseFloat(css['border' + sideCapitalized + 'Width'], 10);\n  var sideValue = center - data.offsets.popper[side] - popperMarginSide - popperBorderSide;\n\n  // prevent arrowElement from being placed not contiguously to its popper\n  sideValue = Math.max(Math.min(popper[len] - arrowElementSize, sideValue), 0);\n\n  data.arrowElement = arrowElement;\n  data.offsets.arrow = (_data$offsets$arrow = {}, defineProperty(_data$offsets$arrow, side, Math.round(sideValue)), defineProperty(_data$offsets$arrow, altSide, ''), _data$offsets$arrow);\n\n  return data;\n}\n\n/**\n * Get the opposite placement variation of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement variation\n * @returns {String} flipped placement variation\n */\nfunction getOppositeVariation(variation) {\n  if (variation === 'end') {\n    return 'start';\n  } else if (variation === 'start') {\n    return 'end';\n  }\n  return variation;\n}\n\n/**\n * List of accepted placements to use as values of the `placement` option.<br />\n * Valid placements are:\n * - `auto`\n * - `top`\n * - `right`\n * - `bottom`\n * - `left`\n *\n * Each placement can have a variation from this list:\n * - `-start`\n * - `-end`\n *\n * Variations are interpreted easily if you think of them as the left to right\n * written languages. Horizontally (`top` and `bottom`), `start` is left and `end`\n * is right.<br />\n * Vertically (`left` and `right`), `start` is top and `end` is bottom.\n *\n * Some valid examples are:\n * - `top-end` (on top of reference, right aligned)\n * - `right-start` (on right of reference, top aligned)\n * - `bottom` (on bottom, centered)\n * - `auto-right` (on the side with more space available, alignment depends by placement)\n *\n * @static\n * @type {Array}\n * @enum {String}\n * @readonly\n * @method placements\n * @memberof Popper\n */\nvar placements = ['auto-start', 'auto', 'auto-end', 'top-start', 'top', 'top-end', 'right-start', 'right', 'right-end', 'bottom-end', 'bottom', 'bottom-start', 'left-end', 'left', 'left-start'];\n\n// Get rid of `auto` `auto-start` and `auto-end`\nvar validPlacements = placements.slice(3);\n\n/**\n * Given an initial placement, returns all the subsequent placements\n * clockwise (or counter-clockwise).\n *\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement - A valid placement (it accepts variations)\n * @argument {Boolean} counter - Set to true to walk the placements counterclockwise\n * @returns {Array} placements including their variations\n */\nfunction clockwise(placement) {\n  var counter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n  var index = validPlacements.indexOf(placement);\n  var arr = validPlacements.slice(index + 1).concat(validPlacements.slice(0, index));\n  return counter ? arr.reverse() : arr;\n}\n\nvar BEHAVIORS = {\n  FLIP: 'flip',\n  CLOCKWISE: 'clockwise',\n  COUNTERCLOCKWISE: 'counterclockwise'\n};\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction flip(data, options) {\n  // if `inner` modifier is enabled, we can't use the `flip` modifier\n  if (isModifierEnabled(data.instance.modifiers, 'inner')) {\n    return data;\n  }\n\n  if (data.flipped && data.placement === data.originalPlacement) {\n    // seems like flip is trying to loop, probably there's not enough space on any of the flippable sides\n    return data;\n  }\n\n  var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, options.boundariesElement);\n\n  var placement = data.placement.split('-')[0];\n  var placementOpposite = getOppositePlacement(placement);\n  var variation = data.placement.split('-')[1] || '';\n\n  var flipOrder = [];\n\n  switch (options.behavior) {\n    case BEHAVIORS.FLIP:\n      flipOrder = [placement, placementOpposite];\n      break;\n    case BEHAVIORS.CLOCKWISE:\n      flipOrder = clockwise(placement);\n      break;\n    case BEHAVIORS.COUNTERCLOCKWISE:\n      flipOrder = clockwise(placement, true);\n      break;\n    default:\n      flipOrder = options.behavior;\n  }\n\n  flipOrder.forEach(function (step, index) {\n    if (placement !== step || flipOrder.length === index + 1) {\n      return data;\n    }\n\n    placement = data.placement.split('-')[0];\n    placementOpposite = getOppositePlacement(placement);\n\n    var popperOffsets = data.offsets.popper;\n    var refOffsets = data.offsets.reference;\n\n    // using floor because the reference offsets may contain decimals we are not going to consider here\n    var floor = Math.floor;\n    var overlapsRef = placement === 'left' && floor(popperOffsets.right) > floor(refOffsets.left) || placement === 'right' && floor(popperOffsets.left) < floor(refOffsets.right) || placement === 'top' && floor(popperOffsets.bottom) > floor(refOffsets.top) || placement === 'bottom' && floor(popperOffsets.top) < floor(refOffsets.bottom);\n\n    var overflowsLeft = floor(popperOffsets.left) < floor(boundaries.left);\n    var overflowsRight = floor(popperOffsets.right) > floor(boundaries.right);\n    var overflowsTop = floor(popperOffsets.top) < floor(boundaries.top);\n    var overflowsBottom = floor(popperOffsets.bottom) > floor(boundaries.bottom);\n\n    var overflowsBoundaries = placement === 'left' && overflowsLeft || placement === 'right' && overflowsRight || placement === 'top' && overflowsTop || placement === 'bottom' && overflowsBottom;\n\n    // flip the variation if required\n    var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n    var flippedVariation = !!options.flipVariations && (isVertical && variation === 'start' && overflowsLeft || isVertical && variation === 'end' && overflowsRight || !isVertical && variation === 'start' && overflowsTop || !isVertical && variation === 'end' && overflowsBottom);\n\n    if (overlapsRef || overflowsBoundaries || flippedVariation) {\n      // this boolean to detect any flip loop\n      data.flipped = true;\n\n      if (overlapsRef || overflowsBoundaries) {\n        placement = flipOrder[index + 1];\n      }\n\n      if (flippedVariation) {\n        variation = getOppositeVariation(variation);\n      }\n\n      data.placement = placement + (variation ? '-' + variation : '');\n\n      // this object contains `position`, we want to preserve it along with\n      // any additional property we may add in the future\n      data.offsets.popper = _extends({}, data.offsets.popper, getPopperOffsets(data.instance.popper, data.offsets.reference, data.placement));\n\n      data = runModifiers(data.instance.modifiers, data, 'flip');\n    }\n  });\n  return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction keepTogether(data) {\n  var _data$offsets = data.offsets,\n      popper = _data$offsets.popper,\n      reference = _data$offsets.reference;\n\n  var placement = data.placement.split('-')[0];\n  var floor = Math.floor;\n  var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n  var side = isVertical ? 'right' : 'bottom';\n  var opSide = isVertical ? 'left' : 'top';\n  var measurement = isVertical ? 'width' : 'height';\n\n  if (popper[side] < floor(reference[opSide])) {\n    data.offsets.popper[opSide] = floor(reference[opSide]) - popper[measurement];\n  }\n  if (popper[opSide] > floor(reference[side])) {\n    data.offsets.popper[opSide] = floor(reference[side]);\n  }\n\n  return data;\n}\n\n/**\n * Converts a string containing value + unit into a px value number\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} str - Value + unit string\n * @argument {String} measurement - `height` or `width`\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @returns {Number|String}\n * Value in pixels, or original string if no values were extracted\n */\nfunction toValue(str, measurement, popperOffsets, referenceOffsets) {\n  // separate value from unit\n  var split = str.match(/((?:\\-|\\+)?\\d*\\.?\\d*)(.*)/);\n  var value = +split[1];\n  var unit = split[2];\n\n  // If it's not a number it's an operator, I guess\n  if (!value) {\n    return str;\n  }\n\n  if (unit.indexOf('%') === 0) {\n    var element = void 0;\n    switch (unit) {\n      case '%p':\n        element = popperOffsets;\n        break;\n      case '%':\n      case '%r':\n      default:\n        element = referenceOffsets;\n    }\n\n    var rect = getClientRect(element);\n    return rect[measurement] / 100 * value;\n  } else if (unit === 'vh' || unit === 'vw') {\n    // if is a vh or vw, we calculate the size based on the viewport\n    var size = void 0;\n    if (unit === 'vh') {\n      size = Math.max(document.documentElement.clientHeight, window.innerHeight || 0);\n    } else {\n      size = Math.max(document.documentElement.clientWidth, window.innerWidth || 0);\n    }\n    return size / 100 * value;\n  } else {\n    // if is an explicit pixel unit, we get rid of the unit and keep the value\n    // if is an implicit unit, it's px, and we return just the value\n    return value;\n  }\n}\n\n/**\n * Parse an `offset` string to extrapolate `x` and `y` numeric offsets.\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} offset\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @argument {String} basePlacement\n * @returns {Array} a two cells array with x and y offsets in numbers\n */\nfunction parseOffset(offset, popperOffsets, referenceOffsets, basePlacement) {\n  var offsets = [0, 0];\n\n  // Use height if placement is left or right and index is 0 otherwise use width\n  // in this way the first offset will use an axis and the second one\n  // will use the other one\n  var useHeight = ['right', 'left'].indexOf(basePlacement) !== -1;\n\n  // Split the offset string to obtain a list of values and operands\n  // The regex addresses values with the plus or minus sign in front (+10, -20, etc)\n  var fragments = offset.split(/(\\+|\\-)/).map(function (frag) {\n    return frag.trim();\n  });\n\n  // Detect if the offset string contains a pair of values or a single one\n  // they could be separated by comma or space\n  var divider = fragments.indexOf(find(fragments, function (frag) {\n    return frag.search(/,|\\s/) !== -1;\n  }));\n\n  if (fragments[divider] && fragments[divider].indexOf(',') === -1) {\n    console.warn('Offsets separated by white space(s) are deprecated, use a comma (,) instead.');\n  }\n\n  // If divider is found, we divide the list of values and operands to divide\n  // them by ofset X and Y.\n  var splitRegex = /\\s*,\\s*|\\s+/;\n  var ops = divider !== -1 ? [fragments.slice(0, divider).concat([fragments[divider].split(splitRegex)[0]]), [fragments[divider].split(splitRegex)[1]].concat(fragments.slice(divider + 1))] : [fragments];\n\n  // Convert the values with units to absolute pixels to allow our computations\n  ops = ops.map(function (op, index) {\n    // Most of the units rely on the orientation of the popper\n    var measurement = (index === 1 ? !useHeight : useHeight) ? 'height' : 'width';\n    var mergeWithPrevious = false;\n    return op\n    // This aggregates any `+` or `-` sign that aren't considered operators\n    // e.g.: 10 + +5 => [10, +, +5]\n    .reduce(function (a, b) {\n      if (a[a.length - 1] === '' && ['+', '-'].indexOf(b) !== -1) {\n        a[a.length - 1] = b;\n        mergeWithPrevious = true;\n        return a;\n      } else if (mergeWithPrevious) {\n        a[a.length - 1] += b;\n        mergeWithPrevious = false;\n        return a;\n      } else {\n        return a.concat(b);\n      }\n    }, [])\n    // Here we convert the string values into number values (in px)\n    .map(function (str) {\n      return toValue(str, measurement, popperOffsets, referenceOffsets);\n    });\n  });\n\n  // Loop trough the offsets arrays and execute the operations\n  ops.forEach(function (op, index) {\n    op.forEach(function (frag, index2) {\n      if (isNumeric(frag)) {\n        offsets[index] += frag * (op[index2 - 1] === '-' ? -1 : 1);\n      }\n    });\n  });\n  return offsets;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @argument {Number|String} options.offset=0\n * The offset value as described in the modifier description\n * @returns {Object} The data object, properly modified\n */\nfunction offset(data, _ref) {\n  var offset = _ref.offset;\n  var placement = data.placement,\n      _data$offsets = data.offsets,\n      popper = _data$offsets.popper,\n      reference = _data$offsets.reference;\n\n  var basePlacement = placement.split('-')[0];\n\n  var offsets = void 0;\n  if (isNumeric(+offset)) {\n    offsets = [+offset, 0];\n  } else {\n    offsets = parseOffset(offset, popper, reference, basePlacement);\n  }\n\n  if (basePlacement === 'left') {\n    popper.top += offsets[0];\n    popper.left -= offsets[1];\n  } else if (basePlacement === 'right') {\n    popper.top += offsets[0];\n    popper.left += offsets[1];\n  } else if (basePlacement === 'top') {\n    popper.left += offsets[0];\n    popper.top -= offsets[1];\n  } else if (basePlacement === 'bottom') {\n    popper.left += offsets[0];\n    popper.top += offsets[1];\n  }\n\n  data.popper = popper;\n  return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction preventOverflow(data, options) {\n  var boundariesElement = options.boundariesElement || getOffsetParent(data.instance.popper);\n\n  // If offsetParent is the reference element, we really want to\n  // go one step up and use the next offsetParent as reference to\n  // avoid to make this modifier completely useless and look like broken\n  if (data.instance.reference === boundariesElement) {\n    boundariesElement = getOffsetParent(boundariesElement);\n  }\n\n  var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, boundariesElement);\n  options.boundaries = boundaries;\n\n  var order = options.priority;\n  var popper = data.offsets.popper;\n\n  var check = {\n    primary: function primary(placement) {\n      var value = popper[placement];\n      if (popper[placement] < boundaries[placement] && !options.escapeWithReference) {\n        value = Math.max(popper[placement], boundaries[placement]);\n      }\n      return defineProperty({}, placement, value);\n    },\n    secondary: function secondary(placement) {\n      var mainSide = placement === 'right' ? 'left' : 'top';\n      var value = popper[mainSide];\n      if (popper[placement] > boundaries[placement] && !options.escapeWithReference) {\n        value = Math.min(popper[mainSide], boundaries[placement] - (placement === 'right' ? popper.width : popper.height));\n      }\n      return defineProperty({}, mainSide, value);\n    }\n  };\n\n  order.forEach(function (placement) {\n    var side = ['left', 'top'].indexOf(placement) !== -1 ? 'primary' : 'secondary';\n    popper = _extends({}, popper, check[side](placement));\n  });\n\n  data.offsets.popper = popper;\n\n  return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction shift(data) {\n  var placement = data.placement;\n  var basePlacement = placement.split('-')[0];\n  var shiftvariation = placement.split('-')[1];\n\n  // if shift shiftvariation is specified, run the modifier\n  if (shiftvariation) {\n    var _data$offsets = data.offsets,\n        reference = _data$offsets.reference,\n        popper = _data$offsets.popper;\n\n    var isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1;\n    var side = isVertical ? 'left' : 'top';\n    var measurement = isVertical ? 'width' : 'height';\n\n    var shiftOffsets = {\n      start: defineProperty({}, side, reference[side]),\n      end: defineProperty({}, side, reference[side] + reference[measurement] - popper[measurement])\n    };\n\n    data.offsets.popper = _extends({}, popper, shiftOffsets[shiftvariation]);\n  }\n\n  return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction hide(data) {\n  if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) {\n    return data;\n  }\n\n  var refRect = data.offsets.reference;\n  var bound = find(data.instance.modifiers, function (modifier) {\n    return modifier.name === 'preventOverflow';\n  }).boundaries;\n\n  if (refRect.bottom < bound.top || refRect.left > bound.right || refRect.top > bound.bottom || refRect.right < bound.left) {\n    // Avoid unnecessary DOM access if visibility hasn't changed\n    if (data.hide === true) {\n      return data;\n    }\n\n    data.hide = true;\n    data.attributes['x-out-of-boundaries'] = '';\n  } else {\n    // Avoid unnecessary DOM access if visibility hasn't changed\n    if (data.hide === false) {\n      return data;\n    }\n\n    data.hide = false;\n    data.attributes['x-out-of-boundaries'] = false;\n  }\n\n  return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction inner(data) {\n  var placement = data.placement;\n  var basePlacement = placement.split('-')[0];\n  var _data$offsets = data.offsets,\n      popper = _data$offsets.popper,\n      reference = _data$offsets.reference;\n\n  var isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1;\n\n  var subtractLength = ['top', 'left'].indexOf(basePlacement) === -1;\n\n  popper[isHoriz ? 'left' : 'top'] = reference[basePlacement] - (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0);\n\n  data.placement = getOppositePlacement(placement);\n  data.offsets.popper = getClientRect(popper);\n\n  return data;\n}\n\n/**\n * Modifier function, each modifier can have a function of this type assigned\n * to its `fn` property.<br />\n * These functions will be called on each update, this means that you must\n * make sure they are performant enough to avoid performance bottlenecks.\n *\n * @function ModifierFn\n * @argument {dataObject} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {dataObject} The data object, properly modified\n */\n\n/**\n * Modifiers are plugins used to alter the behavior of your poppers.<br />\n * Popper.js uses a set of 9 modifiers to provide all the basic functionalities\n * needed by the library.\n *\n * Usually you don't want to override the `order`, `fn` and `onLoad` props.\n * All the other properties are configurations that could be tweaked.\n * @namespace modifiers\n */\nvar modifiers = {\n  /**\n   * Modifier used to shift the popper on the start or end of its reference\n   * element.<br />\n   * It will read the variation of the `placement` property.<br />\n   * It can be one either `-end` or `-start`.\n   * @memberof modifiers\n   * @inner\n   */\n  shift: {\n    /** @prop {number} order=100 - Index used to define the order of execution */\n    order: 100,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: shift\n  },\n\n  /**\n   * The `offset` modifier can shift your popper on both its axis.\n   *\n   * It accepts the following units:\n   * - `px` or unitless, interpreted as pixels\n   * - `%` or `%r`, percentage relative to the length of the reference element\n   * - `%p`, percentage relative to the length of the popper element\n   * - `vw`, CSS viewport width unit\n   * - `vh`, CSS viewport height unit\n   *\n   * For length is intended the main axis relative to the placement of the popper.<br />\n   * This means that if the placement is `top` or `bottom`, the length will be the\n   * `width`. In case of `left` or `right`, it will be the height.\n   *\n   * You can provide a single value (as `Number` or `String`), or a pair of values\n   * as `String` divided by a comma or one (or more) white spaces.<br />\n   * The latter is a deprecated method because it leads to confusion and will be\n   * removed in v2.<br />\n   * Additionally, it accepts additions and subtractions between different units.\n   * Note that multiplications and divisions aren't supported.\n   *\n   * Valid examples are:\n   * ```\n   * 10\n   * '10%'\n   * '10, 10'\n   * '10%, 10'\n   * '10 + 10%'\n   * '10 - 5vh + 3%'\n   * '-10px + 5vh, 5px - 6%'\n   * ```\n   * > **NB**: If you desire to apply offsets to your poppers in a way that may make them overlap\n   * > with their reference element, unfortunately, you will have to disable the `flip` modifier.\n   * > More on this [reading this issue](https://github.com/FezVrasta/popper.js/issues/373)\n   *\n   * @memberof modifiers\n   * @inner\n   */\n  offset: {\n    /** @prop {number} order=200 - Index used to define the order of execution */\n    order: 200,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: offset,\n    /** @prop {Number|String} offset=0\n     * The offset value as described in the modifier description\n     */\n    offset: 0\n  },\n\n  /**\n   * Modifier used to prevent the popper from being positioned outside the boundary.\n   *\n   * An scenario exists where the reference itself is not within the boundaries.<br />\n   * We can say it has \"escaped the boundaries\" â€” or just \"escaped\".<br />\n   * In this case we need to decide whether the popper should either:\n   *\n   * - detach from the reference and remain \"trapped\" in the boundaries, or\n   * - if it should ignore the boundary and \"escape with its reference\"\n   *\n   * When `escapeWithReference` is set to`true` and reference is completely\n   * outside its boundaries, the popper will overflow (or completely leave)\n   * the boundaries in order to remain attached to the edge of the reference.\n   *\n   * @memberof modifiers\n   * @inner\n   */\n  preventOverflow: {\n    /** @prop {number} order=300 - Index used to define the order of execution */\n    order: 300,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: preventOverflow,\n    /**\n     * @prop {Array} [priority=['left','right','top','bottom']]\n     * Popper will try to prevent overflow following these priorities by default,\n     * then, it could overflow on the left and on top of the `boundariesElement`\n     */\n    priority: ['left', 'right', 'top', 'bottom'],\n    /**\n     * @prop {number} padding=5\n     * Amount of pixel used to define a minimum distance between the boundaries\n     * and the popper this makes sure the popper has always a little padding\n     * between the edges of its container\n     */\n    padding: 5,\n    /**\n     * @prop {String|HTMLElement} boundariesElement='scrollParent'\n     * Boundaries used by the modifier, can be `scrollParent`, `window`,\n     * `viewport` or any DOM element.\n     */\n    boundariesElement: 'scrollParent'\n  },\n\n  /**\n   * Modifier used to make sure the reference and its popper stay near eachothers\n   * without leaving any gap between the two. Expecially useful when the arrow is\n   * enabled and you want to assure it to point to its reference element.\n   * It cares only about the first axis, you can still have poppers with margin\n   * between the popper and its reference element.\n   * @memberof modifiers\n   * @inner\n   */\n  keepTogether: {\n    /** @prop {number} order=400 - Index used to define the order of execution */\n    order: 400,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: keepTogether\n  },\n\n  /**\n   * This modifier is used to move the `arrowElement` of the popper to make\n   * sure it is positioned between the reference element and its popper element.\n   * It will read the outer size of the `arrowElement` node to detect how many\n   * pixels of conjuction are needed.\n   *\n   * It has no effect if no `arrowElement` is provided.\n   * @memberof modifiers\n   * @inner\n   */\n  arrow: {\n    /** @prop {number} order=500 - Index used to define the order of execution */\n    order: 500,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: arrow,\n    /** @prop {String|HTMLElement} element='[x-arrow]' - Selector or node used as arrow */\n    element: '[x-arrow]'\n  },\n\n  /**\n   * Modifier used to flip the popper's placement when it starts to overlap its\n   * reference element.\n   *\n   * Requires the `preventOverflow` modifier before it in order to work.\n   *\n   * **NOTE:** this modifier will interrupt the current update cycle and will\n   * restart it if it detects the need to flip the placement.\n   * @memberof modifiers\n   * @inner\n   */\n  flip: {\n    /** @prop {number} order=600 - Index used to define the order of execution */\n    order: 600,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: flip,\n    /**\n     * @prop {String|Array} behavior='flip'\n     * The behavior used to change the popper's placement. It can be one of\n     * `flip`, `clockwise`, `counterclockwise` or an array with a list of valid\n     * placements (with optional variations).\n     */\n    behavior: 'flip',\n    /**\n     * @prop {number} padding=5\n     * The popper will flip if it hits the edges of the `boundariesElement`\n     */\n    padding: 5,\n    /**\n     * @prop {String|HTMLElement} boundariesElement='viewport'\n     * The element which will define the boundaries of the popper position,\n     * the popper will never be placed outside of the defined boundaries\n     * (except if keepTogether is enabled)\n     */\n    boundariesElement: 'viewport'\n  },\n\n  /**\n   * Modifier used to make the popper flow toward the inner of the reference element.\n   * By default, when this modifier is disabled, the popper will be placed outside\n   * the reference element.\n   * @memberof modifiers\n   * @inner\n   */\n  inner: {\n    /** @prop {number} order=700 - Index used to define the order of execution */\n    order: 700,\n    /** @prop {Boolean} enabled=false - Whether the modifier is enabled or not */\n    enabled: false,\n    /** @prop {ModifierFn} */\n    fn: inner\n  },\n\n  /**\n   * Modifier used to hide the popper when its reference element is outside of the\n   * popper boundaries. It will set a `x-out-of-boundaries` attribute which can\n   * be used to hide with a CSS selector the popper when its reference is\n   * out of boundaries.\n   *\n   * Requires the `preventOverflow` modifier before it in order to work.\n   * @memberof modifiers\n   * @inner\n   */\n  hide: {\n    /** @prop {number} order=800 - Index used to define the order of execution */\n    order: 800,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: hide\n  },\n\n  /**\n   * Computes the style that will be applied to the popper element to gets\n   * properly positioned.\n   *\n   * Note that this modifier will not touch the DOM, it just prepares the styles\n   * so that `applyStyle` modifier can apply it. This separation is useful\n   * in case you need to replace `applyStyle` with a custom implementation.\n   *\n   * This modifier has `850` as `order` value to maintain backward compatibility\n   * with previous versions of Popper.js. Expect the modifiers ordering method\n   * to change in future major versions of the library.\n   *\n   * @memberof modifiers\n   * @inner\n   */\n  computeStyle: {\n    /** @prop {number} order=850 - Index used to define the order of execution */\n    order: 850,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: computeStyle,\n    /**\n     * @prop {Boolean} gpuAcceleration=true\n     * If true, it uses the CSS 3d transformation to position the popper.\n     * Otherwise, it will use the `top` and `left` properties.\n     */\n    gpuAcceleration: true,\n    /**\n     * @prop {string} [x='bottom']\n     * Where to anchor the X axis (`bottom` or `top`). AKA X offset origin.\n     * Change this if your popper should grow in a direction different from `bottom`\n     */\n    x: 'bottom',\n    /**\n     * @prop {string} [x='left']\n     * Where to anchor the Y axis (`left` or `right`). AKA Y offset origin.\n     * Change this if your popper should grow in a direction different from `right`\n     */\n    y: 'right'\n  },\n\n  /**\n   * Applies the computed styles to the popper element.\n   *\n   * All the DOM manipulations are limited to this modifier. This is useful in case\n   * you want to integrate Popper.js inside a framework or view library and you\n   * want to delegate all the DOM manipulations to it.\n   *\n   * Note that if you disable this modifier, you must make sure the popper element\n   * has its position set to `absolute` before Popper.js can do its work!\n   *\n   * Just disable this modifier and define you own to achieve the desired effect.\n   *\n   * @memberof modifiers\n   * @inner\n   */\n  applyStyle: {\n    /** @prop {number} order=900 - Index used to define the order of execution */\n    order: 900,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: applyStyle,\n    /** @prop {Function} */\n    onLoad: applyStyleOnLoad,\n    /**\n     * @deprecated since version 1.10.0, the property moved to `computeStyle` modifier\n     * @prop {Boolean} gpuAcceleration=true\n     * If true, it uses the CSS 3d transformation to position the popper.\n     * Otherwise, it will use the `top` and `left` properties.\n     */\n    gpuAcceleration: undefined\n  }\n};\n\n/**\n * The `dataObject` is an object containing all the informations used by Popper.js\n * this object get passed to modifiers and to the `onCreate` and `onUpdate` callbacks.\n * @name dataObject\n * @property {Object} data.instance The Popper.js instance\n * @property {String} data.placement Placement applied to popper\n * @property {String} data.originalPlacement Placement originally defined on init\n * @property {Boolean} data.flipped True if popper has been flipped by flip modifier\n * @property {Boolean} data.hide True if the reference element is out of boundaries, useful to know when to hide the popper.\n * @property {HTMLElement} data.arrowElement Node used as arrow by arrow modifier\n * @property {Object} data.styles Any CSS property defined here will be applied to the popper, it expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.arrowStyles Any CSS property defined here will be applied to the popper arrow, it expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.boundaries Offsets of the popper boundaries\n * @property {Object} data.offsets The measurements of popper, reference and arrow elements.\n * @property {Object} data.offsets.popper `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.reference `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.arrow] `top` and `left` offsets, only one of them will be different from 0\n */\n\n/**\n * Default options provided to Popper.js constructor.<br />\n * These can be overriden using the `options` argument of Popper.js.<br />\n * To override an option, simply pass as 3rd argument an object with the same\n * structure of this object, example:\n * ```\n * new Popper(ref, pop, {\n *   modifiers: {\n *     preventOverflow: { enabled: false }\n *   }\n * })\n * ```\n * @type {Object}\n * @static\n * @memberof Popper\n */\nvar Defaults = {\n  /**\n   * Popper's placement\n   * @prop {Popper.placements} placement='bottom'\n   */\n  placement: 'bottom',\n\n  /**\n   * Whether events (resize, scroll) are initially enabled\n   * @prop {Boolean} eventsEnabled=true\n   */\n  eventsEnabled: true,\n\n  /**\n   * Set to true if you want to automatically remove the popper when\n   * you call the `destroy` method.\n   * @prop {Boolean} removeOnDestroy=false\n   */\n  removeOnDestroy: false,\n\n  /**\n   * Callback called when the popper is created.<br />\n   * By default, is set to no-op.<br />\n   * Access Popper.js instance with `data.instance`.\n   * @prop {onCreate}\n   */\n  onCreate: function onCreate() {},\n\n  /**\n   * Callback called when the popper is updated, this callback is not called\n   * on the initialization/creation of the popper, but only on subsequent\n   * updates.<br />\n   * By default, is set to no-op.<br />\n   * Access Popper.js instance with `data.instance`.\n   * @prop {onUpdate}\n   */\n  onUpdate: function onUpdate() {},\n\n  /**\n   * List of modifiers used to modify the offsets before they are applied to the popper.\n   * They provide most of the functionalities of Popper.js\n   * @prop {modifiers}\n   */\n  modifiers: modifiers\n};\n\n/**\n * @callback onCreate\n * @param {dataObject} data\n */\n\n/**\n * @callback onUpdate\n * @param {dataObject} data\n */\n\n// Utils\n// Methods\nvar Popper = function () {\n  /**\n   * Create a new Popper.js instance\n   * @class Popper\n   * @param {HTMLElement|referenceObject} reference - The reference element used to position the popper\n   * @param {HTMLElement} popper - The HTML element used as popper.\n   * @param {Object} options - Your custom options to override the ones defined in [Defaults](#defaults)\n   * @return {Object} instance - The generated Popper.js instance\n   */\n  function Popper(reference, popper) {\n    var _this = this;\n\n    var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n    classCallCheck(this, Popper);\n\n    this.scheduleUpdate = function () {\n      return requestAnimationFrame(_this.update);\n    };\n\n    // make update() debounced, so that it only runs at most once-per-tick\n    this.update = debounce(this.update.bind(this));\n\n    // with {} we create a new object with the options inside it\n    this.options = _extends({}, Popper.Defaults, options);\n\n    // init state\n    this.state = {\n      isDestroyed: false,\n      isCreated: false,\n      scrollParents: []\n    };\n\n    // get reference and popper elements (allow jQuery wrappers)\n    this.reference = reference && reference.jquery ? reference[0] : reference;\n    this.popper = popper && popper.jquery ? popper[0] : popper;\n\n    // Deep merge modifiers options\n    this.options.modifiers = {};\n    Object.keys(_extends({}, Popper.Defaults.modifiers, options.modifiers)).forEach(function (name) {\n      _this.options.modifiers[name] = _extends({}, Popper.Defaults.modifiers[name] || {}, options.modifiers ? options.modifiers[name] : {});\n    });\n\n    // Refactoring modifiers' list (Object => Array)\n    this.modifiers = Object.keys(this.options.modifiers).map(function (name) {\n      return _extends({\n        name: name\n      }, _this.options.modifiers[name]);\n    })\n    // sort the modifiers by order\n    .sort(function (a, b) {\n      return a.order - b.order;\n    });\n\n    // modifiers have the ability to execute arbitrary code when Popper.js get inited\n    // such code is executed in the same order of its modifier\n    // they could add new properties to their options configuration\n    // BE AWARE: don't add options to `options.modifiers.name` but to `modifierOptions`!\n    this.modifiers.forEach(function (modifierOptions) {\n      if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) {\n        modifierOptions.onLoad(_this.reference, _this.popper, _this.options, modifierOptions, _this.state);\n      }\n    });\n\n    // fire the first update to position the popper in the right place\n    this.update();\n\n    var eventsEnabled = this.options.eventsEnabled;\n    if (eventsEnabled) {\n      // setup event listeners, they will take care of update the position in specific situations\n      this.enableEventListeners();\n    }\n\n    this.state.eventsEnabled = eventsEnabled;\n  }\n\n  // We can't use class properties because they don't get listed in the\n  // class prototype and break stuff like Sinon stubs\n\n\n  createClass(Popper, [{\n    key: 'update',\n    value: function update$$1() {\n      return update.call(this);\n    }\n  }, {\n    key: 'destroy',\n    value: function destroy$$1() {\n      return destroy.call(this);\n    }\n  }, {\n    key: 'enableEventListeners',\n    value: function enableEventListeners$$1() {\n      return enableEventListeners.call(this);\n    }\n  }, {\n    key: 'disableEventListeners',\n    value: function disableEventListeners$$1() {\n      return disableEventListeners.call(this);\n    }\n\n    /**\n     * Schedule an update, it will run on the next UI update available\n     * @method scheduleUpdate\n     * @memberof Popper\n     */\n\n\n    /**\n     * Collection of utilities useful when writing custom modifiers.\n     * Starting from version 1.7, this method is available only if you\n     * include `popper-utils.js` before `popper.js`.\n     *\n     * **DEPRECATION**: This way to access PopperUtils is deprecated\n     * and will be removed in v2! Use the PopperUtils module directly instead.\n     * Due to the high instability of the methods contained in Utils, we can't\n     * guarantee them to follow semver. Use them at your own risk!\n     * @static\n     * @private\n     * @type {Object}\n     * @deprecated since version 1.8\n     * @member Utils\n     * @memberof Popper\n     */\n\n  }]);\n  return Popper;\n}();\n\n/**\n * The `referenceObject` is an object that provides an interface compatible with Popper.js\n * and lets you use it as replacement of a real DOM node.<br />\n * You can use this method to position a popper relatively to a set of coordinates\n * in case you don't have a DOM node to use as reference.\n *\n * ```\n * new Popper(referenceObject, popperNode);\n * ```\n *\n * NB: This feature isn't supported in Internet Explorer 10\n * @name referenceObject\n * @property {Function} data.getBoundingClientRect\n * A function that returns a set of coordinates compatible with the native `getBoundingClientRect` method.\n * @property {number} data.clientWidth\n * An ES6 getter that will return the width of the virtual reference element.\n * @property {number} data.clientHeight\n * An ES6 getter that will return the height of the virtual reference element.\n */\n\n\nPopper.Utils = (typeof window !== 'undefined' ? window : global).PopperUtils;\nPopper.placements = placements;\nPopper.Defaults = Defaults;\n\nexport default Popper;\n//# sourceMappingURL=popper.js.map\n","import $ from 'jquery'\nimport Popper from 'popper.js'\nimport Util from './util'\n\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-beta.3): dropdown.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Dropdown = (($) => {\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  const NAME                     = 'dropdown'\n  const VERSION                  = '4.0.0-beta.3'\n  const DATA_KEY                 = 'bs.dropdown'\n  const EVENT_KEY                = `.${DATA_KEY}`\n  const DATA_API_KEY             = '.data-api'\n  const JQUERY_NO_CONFLICT       = $.fn[NAME]\n  const ESCAPE_KEYCODE           = 27 // KeyboardEvent.which value for Escape (Esc) key\n  const SPACE_KEYCODE            = 32 // KeyboardEvent.which value for space key\n  const TAB_KEYCODE              = 9 // KeyboardEvent.which value for tab key\n  const ARROW_UP_KEYCODE         = 38 // KeyboardEvent.which value for up arrow key\n  const ARROW_DOWN_KEYCODE       = 40 // KeyboardEvent.which value for down arrow key\n  const RIGHT_MOUSE_BUTTON_WHICH = 3 // MouseEvent.which value for the right button (assuming a right-handed mouse)\n  const REGEXP_KEYDOWN           = new RegExp(`${ARROW_UP_KEYCODE}|${ARROW_DOWN_KEYCODE}|${ESCAPE_KEYCODE}`)\n\n  const Event = {\n    HIDE             : `hide${EVENT_KEY}`,\n    HIDDEN           : `hidden${EVENT_KEY}`,\n    SHOW             : `show${EVENT_KEY}`,\n    SHOWN            : `shown${EVENT_KEY}`,\n    CLICK            : `click${EVENT_KEY}`,\n    CLICK_DATA_API   : `click${EVENT_KEY}${DATA_API_KEY}`,\n    KEYDOWN_DATA_API : `keydown${EVENT_KEY}${DATA_API_KEY}`,\n    KEYUP_DATA_API   : `keyup${EVENT_KEY}${DATA_API_KEY}`\n  }\n\n  const ClassName = {\n    DISABLED  : 'disabled',\n    SHOW      : 'show',\n    DROPUP    : 'dropup',\n    DROPRIGHT : 'dropright',\n    DROPLEFT  : 'dropleft',\n    MENURIGHT : 'dropdown-menu-right',\n    MENULEFT  : 'dropdown-menu-left',\n    POSITION_STATIC : 'position-static'\n  }\n\n  const Selector = {\n    DATA_TOGGLE   : '[data-toggle=\"dropdown\"]',\n    FORM_CHILD    : '.dropdown form',\n    MENU          : '.dropdown-menu',\n    NAVBAR_NAV    : '.navbar-nav',\n    VISIBLE_ITEMS : '.dropdown-menu .dropdown-item:not(.disabled)'\n  }\n\n  const AttachmentMap = {\n    TOP       : 'top-start',\n    TOPEND    : 'top-end',\n    BOTTOM    : 'bottom-start',\n    BOTTOMEND : 'bottom-end',\n    RIGHT     : 'right-start',\n    RIGHTEND  : 'right-end',\n    LEFT      : 'left-start',\n    LEFTEND   : 'left-end'\n  }\n\n  const Default = {\n    offset      : 0,\n    flip        : true,\n    boundary    : 'scrollParent'\n  }\n\n  const DefaultType = {\n    offset      : '(number|string|function)',\n    flip        : 'boolean',\n    boundary    : '(string|element)'\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  class Dropdown {\n\n    constructor(element, config) {\n      this._element  = element\n      this._popper   = null\n      this._config   = this._getConfig(config)\n      this._menu     = this._getMenuElement()\n      this._inNavbar = this._detectNavbar()\n\n      this._addEventListeners()\n    }\n\n\n    // getters\n\n    static get VERSION() {\n      return VERSION\n    }\n\n    static get Default() {\n      return Default\n    }\n\n    static get DefaultType() {\n      return DefaultType\n    }\n\n    // public\n\n    toggle() {\n      if (this._element.disabled || $(this._element).hasClass(ClassName.DISABLED)) {\n        return\n      }\n\n      const parent   = Dropdown._getParentFromElement(this._element)\n      const isActive = $(this._menu).hasClass(ClassName.SHOW)\n\n      Dropdown._clearMenus()\n\n      if (isActive) {\n        return\n      }\n\n      const relatedTarget = {\n        relatedTarget : this._element\n      }\n      const showEvent = $.Event(Event.SHOW, relatedTarget)\n\n      $(parent).trigger(showEvent)\n\n      if (showEvent.isDefaultPrevented()) {\n        return\n      }\n\n      // Disable totally Popper.js for Dropdown in Navbar\n      if (!this._inNavbar) {\n        /**\n         * Check for Popper dependency\n         * Popper - https://popper.js.org\n         */\n        if (typeof Popper === 'undefined') {\n          throw new Error('Bootstrap dropdown require Popper.js (https://popper.js.org)')\n        }\n        let element = this._element\n        // for dropup with alignment we use the parent as popper container\n        if ($(parent).hasClass(ClassName.DROPUP)) {\n          if ($(this._menu).hasClass(ClassName.MENULEFT) || $(this._menu).hasClass(ClassName.MENURIGHT)) {\n            element = parent\n          }\n        }\n        // If boundary is not `scrollParent`, then set position to `static`\n        // to allow the menu to \"escape\" the scroll parent's boundaries\n        // https://github.com/twbs/bootstrap/issues/24251\n        if (this._config.boundary !== 'scrollParent') {\n          $(parent).addClass(ClassName.POSITION_STATIC)\n        }\n        this._popper = new Popper(element, this._menu, this._getPopperConfig())\n      }\n\n\n      // if this is a touch-enabled device we add extra\n      // empty mouseover listeners to the body's immediate children;\n      // only needed because of broken event delegation on iOS\n      // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n      if ('ontouchstart' in document.documentElement &&\n         !$(parent).closest(Selector.NAVBAR_NAV).length) {\n        $('body').children().on('mouseover', null, $.noop)\n      }\n\n      this._element.focus()\n      this._element.setAttribute('aria-expanded', true)\n\n      $(this._menu).toggleClass(ClassName.SHOW)\n      $(parent)\n        .toggleClass(ClassName.SHOW)\n        .trigger($.Event(Event.SHOWN, relatedTarget))\n    }\n\n    dispose() {\n      $.removeData(this._element, DATA_KEY)\n      $(this._element).off(EVENT_KEY)\n      this._element = null\n      this._menu = null\n      if (this._popper !== null) {\n        this._popper.destroy()\n        this._popper = null\n      }\n    }\n\n    update() {\n      this._inNavbar = this._detectNavbar()\n      if (this._popper !== null) {\n        this._popper.scheduleUpdate()\n      }\n    }\n\n    // private\n\n    _addEventListeners() {\n      $(this._element).on(Event.CLICK, (event) => {\n        event.preventDefault()\n        event.stopPropagation()\n        this.toggle()\n      })\n    }\n\n    _getConfig(config) {\n      config = {\n        ...this.constructor.Default,\n        ...$(this._element).data(),\n        ...config\n      }\n\n      Util.typeCheckConfig(\n        NAME,\n        config,\n        this.constructor.DefaultType\n      )\n\n      return config\n    }\n\n    _getMenuElement() {\n      if (!this._menu) {\n        const parent = Dropdown._getParentFromElement(this._element)\n        this._menu = $(parent).find(Selector.MENU)[0]\n      }\n      return this._menu\n    }\n\n    _getPlacement() {\n      const $parentDropdown = $(this._element).parent()\n      let placement         = AttachmentMap.BOTTOM\n\n      // Handle dropup\n      if ($parentDropdown.hasClass(ClassName.DROPUP)) {\n        placement = AttachmentMap.TOP\n        if ($(this._menu).hasClass(ClassName.MENURIGHT)) {\n          placement = AttachmentMap.TOPEND\n        }\n      } else if ($parentDropdown.hasClass(ClassName.DROPRIGHT)) {\n        placement = AttachmentMap.RIGHT\n      } else if ($parentDropdown.hasClass(ClassName.DROPLEFT)) {\n        placement = AttachmentMap.LEFT\n      } else if ($(this._menu).hasClass(ClassName.MENURIGHT)) {\n        placement = AttachmentMap.BOTTOMEND\n      }\n      return placement\n    }\n\n    _detectNavbar() {\n      return $(this._element).closest('.navbar').length > 0\n    }\n\n    _getPopperConfig() {\n      const offsetConf = {}\n      if (typeof this._config.offset === 'function') {\n        offsetConf.fn = (data) => {\n          data.offsets = {\n            ...data.offsets,\n            ...this._config.offset(data.offsets) || {}\n          }\n          return data\n        }\n      } else {\n        offsetConf.offset = this._config.offset\n      }\n      const popperConfig = {\n        placement : this._getPlacement(),\n        modifiers : {\n          offset : offsetConf,\n          flip : {\n            enabled : this._config.flip\n          },\n          preventOverflow : {\n            boundariesElement : this._config.boundary\n          }\n        }\n      }\n\n      return popperConfig\n    }\n\n    // static\n\n    static _jQueryInterface(config) {\n      return this.each(function () {\n        let data = $(this).data(DATA_KEY)\n        const _config = typeof config === 'object' ? config : null\n\n        if (!data) {\n          data = new Dropdown(this, _config)\n          $(this).data(DATA_KEY, data)\n        }\n\n        if (typeof config === 'string') {\n          if (typeof data[config] === 'undefined') {\n            throw new Error(`No method named \"${config}\"`)\n          }\n          data[config]()\n        }\n      })\n    }\n\n    static _clearMenus(event) {\n      if (event && (event.which === RIGHT_MOUSE_BUTTON_WHICH ||\n        event.type === 'keyup' && event.which !== TAB_KEYCODE)) {\n        return\n      }\n\n      const toggles = $.makeArray($(Selector.DATA_TOGGLE))\n      for (let i = 0; i < toggles.length; i++) {\n        const parent        = Dropdown._getParentFromElement(toggles[i])\n        const context       = $(toggles[i]).data(DATA_KEY)\n        const relatedTarget = {\n          relatedTarget : toggles[i]\n        }\n\n        if (!context) {\n          continue\n        }\n\n        const dropdownMenu = context._menu\n        if (!$(parent).hasClass(ClassName.SHOW)) {\n          continue\n        }\n\n        if (event && (event.type === 'click' &&\n            /input|textarea/i.test(event.target.tagName) || event.type === 'keyup' && event.which === TAB_KEYCODE)\n            && $.contains(parent, event.target)) {\n          continue\n        }\n\n        const hideEvent = $.Event(Event.HIDE, relatedTarget)\n        $(parent).trigger(hideEvent)\n        if (hideEvent.isDefaultPrevented()) {\n          continue\n        }\n\n        // if this is a touch-enabled device we remove the extra\n        // empty mouseover listeners we added for iOS support\n        if ('ontouchstart' in document.documentElement) {\n          $('body').children().off('mouseover', null, $.noop)\n        }\n\n        toggles[i].setAttribute('aria-expanded', 'false')\n\n        $(dropdownMenu).removeClass(ClassName.SHOW)\n        $(parent)\n          .removeClass(ClassName.SHOW)\n          .trigger($.Event(Event.HIDDEN, relatedTarget))\n      }\n    }\n\n    static _getParentFromElement(element) {\n      let parent\n      const selector = Util.getSelectorFromElement(element)\n\n      if (selector) {\n        parent = $(selector)[0]\n      }\n\n      return parent || element.parentNode\n    }\n\n    // eslint-disable-next-line complexity\n    static _dataApiKeydownHandler(event) {\n      // If not input/textarea:\n      //  - And not a key in REGEXP_KEYDOWN => not a dropdown command\n      // If input/textarea:\n      //  - If space key => not a dropdown command\n      //  - If key is other than escape\n      //    - If key is not up or down => not a dropdown command\n      //    - If trigger inside the menu => not a dropdown command\n      if (/input|textarea/i.test(event.target.tagName) ?\n        event.which === SPACE_KEYCODE || event.which !== ESCAPE_KEYCODE &&\n        (event.which !== ARROW_DOWN_KEYCODE && event.which !== ARROW_UP_KEYCODE ||\n          $(event.target).closest(Selector.MENU).length) : !REGEXP_KEYDOWN.test(event.which)) {\n        return\n      }\n\n      event.preventDefault()\n      event.stopPropagation()\n\n      if (this.disabled || $(this).hasClass(ClassName.DISABLED)) {\n        return\n      }\n\n      const parent   = Dropdown._getParentFromElement(this)\n      const isActive = $(parent).hasClass(ClassName.SHOW)\n\n      if (!isActive && (event.which !== ESCAPE_KEYCODE || event.which !== SPACE_KEYCODE) ||\n           isActive && (event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE)) {\n\n        if (event.which === ESCAPE_KEYCODE) {\n          const toggle = $(parent).find(Selector.DATA_TOGGLE)[0]\n          $(toggle).trigger('focus')\n        }\n\n        $(this).trigger('click')\n        return\n      }\n\n      const items = $(parent).find(Selector.VISIBLE_ITEMS).get()\n\n      if (!items.length) {\n        return\n      }\n\n      let index = items.indexOf(event.target)\n\n      if (event.which === ARROW_UP_KEYCODE && index > 0) { // up\n        index--\n      }\n\n      if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) { // down\n        index++\n      }\n\n      if (index < 0) {\n        index = 0\n      }\n\n      items[index].focus()\n    }\n\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n  $(document)\n    .on(Event.KEYDOWN_DATA_API, Selector.DATA_TOGGLE,  Dropdown._dataApiKeydownHandler)\n    .on(Event.KEYDOWN_DATA_API, Selector.MENU, Dropdown._dataApiKeydownHandler)\n    .on(`${Event.CLICK_DATA_API} ${Event.KEYUP_DATA_API}`, Dropdown._clearMenus)\n    .on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n      event.preventDefault()\n      event.stopPropagation()\n      Dropdown._jQueryInterface.call($(this), 'toggle')\n    })\n    .on(Event.CLICK_DATA_API, Selector.FORM_CHILD, (e) => {\n      e.stopPropagation()\n    })\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $.fn[NAME]             = Dropdown._jQueryInterface\n  $.fn[NAME].Constructor = Dropdown\n  $.fn[NAME].noConflict  = function () {\n    $.fn[NAME] = JQUERY_NO_CONFLICT\n    return Dropdown._jQueryInterface\n  }\n\n  return Dropdown\n\n})($, Popper)\n\nexport default Dropdown\n","import $ from 'jquery'\nimport Util from './util'\n\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-beta.3): modal.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Modal = (($) => {\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  const NAME                         = 'modal'\n  const VERSION                      = '4.0.0-beta.3'\n  const DATA_KEY                     = 'bs.modal'\n  const EVENT_KEY                    = `.${DATA_KEY}`\n  const DATA_API_KEY                 = '.data-api'\n  const JQUERY_NO_CONFLICT           = $.fn[NAME]\n  const TRANSITION_DURATION          = 300\n  const BACKDROP_TRANSITION_DURATION = 150\n  const ESCAPE_KEYCODE               = 27 // KeyboardEvent.which value for Escape (Esc) key\n\n  const Default = {\n    backdrop : true,\n    keyboard : true,\n    focus    : true,\n    show     : true\n  }\n\n  const DefaultType = {\n    backdrop : '(boolean|string)',\n    keyboard : 'boolean',\n    focus    : 'boolean',\n    show     : 'boolean'\n  }\n\n  const Event = {\n    HIDE              : `hide${EVENT_KEY}`,\n    HIDDEN            : `hidden${EVENT_KEY}`,\n    SHOW              : `show${EVENT_KEY}`,\n    SHOWN             : `shown${EVENT_KEY}`,\n    FOCUSIN           : `focusin${EVENT_KEY}`,\n    RESIZE            : `resize${EVENT_KEY}`,\n    CLICK_DISMISS     : `click.dismiss${EVENT_KEY}`,\n    KEYDOWN_DISMISS   : `keydown.dismiss${EVENT_KEY}`,\n    MOUSEUP_DISMISS   : `mouseup.dismiss${EVENT_KEY}`,\n    MOUSEDOWN_DISMISS : `mousedown.dismiss${EVENT_KEY}`,\n    CLICK_DATA_API    : `click${EVENT_KEY}${DATA_API_KEY}`\n  }\n\n  const ClassName = {\n    SCROLLBAR_MEASURER : 'modal-scrollbar-measure',\n    BACKDROP           : 'modal-backdrop',\n    OPEN               : 'modal-open',\n    FADE               : 'fade',\n    SHOW               : 'show'\n  }\n\n  const Selector = {\n    DIALOG             : '.modal-dialog',\n    DATA_TOGGLE        : '[data-toggle=\"modal\"]',\n    DATA_DISMISS       : '[data-dismiss=\"modal\"]',\n    FIXED_CONTENT      : '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top',\n    STICKY_CONTENT     : '.sticky-top',\n    NAVBAR_TOGGLER     : '.navbar-toggler'\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  class Modal {\n\n    constructor(element, config) {\n      this._config              = this._getConfig(config)\n      this._element             = element\n      this._dialog              = $(element).find(Selector.DIALOG)[0]\n      this._backdrop            = null\n      this._isShown             = false\n      this._isBodyOverflowing   = false\n      this._ignoreBackdropClick = false\n      this._originalBodyPadding = 0\n      this._scrollbarWidth      = 0\n    }\n\n\n    // getters\n\n    static get VERSION() {\n      return VERSION\n    }\n\n    static get Default() {\n      return Default\n    }\n\n\n    // public\n\n    toggle(relatedTarget) {\n      return this._isShown ? this.hide() : this.show(relatedTarget)\n    }\n\n    show(relatedTarget) {\n      if (this._isTransitioning || this._isShown) {\n        return\n      }\n\n      if (Util.supportsTransitionEnd() && $(this._element).hasClass(ClassName.FADE)) {\n        this._isTransitioning = true\n      }\n\n      const showEvent = $.Event(Event.SHOW, {\n        relatedTarget\n      })\n\n      $(this._element).trigger(showEvent)\n\n      if (this._isShown || showEvent.isDefaultPrevented()) {\n        return\n      }\n\n      this._isShown = true\n\n      this._checkScrollbar()\n      this._setScrollbar()\n\n      this._adjustDialog()\n\n      $(document.body).addClass(ClassName.OPEN)\n\n      this._setEscapeEvent()\n      this._setResizeEvent()\n\n      $(this._element).on(\n        Event.CLICK_DISMISS,\n        Selector.DATA_DISMISS,\n        (event) => this.hide(event)\n      )\n\n      $(this._dialog).on(Event.MOUSEDOWN_DISMISS, () => {\n        $(this._element).one(Event.MOUSEUP_DISMISS, (event) => {\n          if ($(event.target).is(this._element)) {\n            this._ignoreBackdropClick = true\n          }\n        })\n      })\n\n      this._showBackdrop(() => this._showElement(relatedTarget))\n    }\n\n    hide(event) {\n      if (event) {\n        event.preventDefault()\n      }\n\n      if (this._isTransitioning || !this._isShown) {\n        return\n      }\n\n      const hideEvent = $.Event(Event.HIDE)\n\n      $(this._element).trigger(hideEvent)\n\n      if (!this._isShown || hideEvent.isDefaultPrevented()) {\n        return\n      }\n\n      this._isShown = false\n\n      const transition = Util.supportsTransitionEnd() && $(this._element).hasClass(ClassName.FADE)\n\n      if (transition) {\n        this._isTransitioning = true\n      }\n\n      this._setEscapeEvent()\n      this._setResizeEvent()\n\n      $(document).off(Event.FOCUSIN)\n\n      $(this._element).removeClass(ClassName.SHOW)\n\n      $(this._element).off(Event.CLICK_DISMISS)\n      $(this._dialog).off(Event.MOUSEDOWN_DISMISS)\n\n      if (transition) {\n\n        $(this._element)\n          .one(Util.TRANSITION_END, (event) => this._hideModal(event))\n          .emulateTransitionEnd(TRANSITION_DURATION)\n      } else {\n        this._hideModal()\n      }\n    }\n\n    dispose() {\n      $.removeData(this._element, DATA_KEY)\n\n      $(window, document, this._element, this._backdrop).off(EVENT_KEY)\n\n      this._config              = null\n      this._element             = null\n      this._dialog              = null\n      this._backdrop            = null\n      this._isShown             = null\n      this._isBodyOverflowing   = null\n      this._ignoreBackdropClick = null\n      this._scrollbarWidth      = null\n    }\n\n    handleUpdate() {\n      this._adjustDialog()\n    }\n\n    // private\n\n    _getConfig(config) {\n      config = {\n        ...Default,\n        ...config\n      }\n      Util.typeCheckConfig(NAME, config, DefaultType)\n      return config\n    }\n\n    _showElement(relatedTarget) {\n      const transition = Util.supportsTransitionEnd() &&\n        $(this._element).hasClass(ClassName.FADE)\n\n      if (!this._element.parentNode ||\n         this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {\n        // don't move modals dom position\n        document.body.appendChild(this._element)\n      }\n\n      this._element.style.display = 'block'\n      this._element.removeAttribute('aria-hidden')\n      this._element.scrollTop = 0\n\n      if (transition) {\n        Util.reflow(this._element)\n      }\n\n      $(this._element).addClass(ClassName.SHOW)\n\n      if (this._config.focus) {\n        this._enforceFocus()\n      }\n\n      const shownEvent = $.Event(Event.SHOWN, {\n        relatedTarget\n      })\n\n      const transitionComplete = () => {\n        if (this._config.focus) {\n          this._element.focus()\n        }\n        this._isTransitioning = false\n        $(this._element).trigger(shownEvent)\n      }\n\n      if (transition) {\n        $(this._dialog)\n          .one(Util.TRANSITION_END, transitionComplete)\n          .emulateTransitionEnd(TRANSITION_DURATION)\n      } else {\n        transitionComplete()\n      }\n    }\n\n    _enforceFocus() {\n      $(document)\n        .off(Event.FOCUSIN) // guard against infinite focus loop\n        .on(Event.FOCUSIN, (event) => {\n          if (document !== event.target &&\n              this._element !== event.target &&\n              !$(this._element).has(event.target).length) {\n            this._element.focus()\n          }\n        })\n    }\n\n    _setEscapeEvent() {\n      if (this._isShown && this._config.keyboard) {\n        $(this._element).on(Event.KEYDOWN_DISMISS, (event) => {\n          if (event.which === ESCAPE_KEYCODE) {\n            event.preventDefault()\n            this.hide()\n          }\n        })\n\n      } else if (!this._isShown) {\n        $(this._element).off(Event.KEYDOWN_DISMISS)\n      }\n    }\n\n    _setResizeEvent() {\n      if (this._isShown) {\n        $(window).on(Event.RESIZE, (event) => this.handleUpdate(event))\n      } else {\n        $(window).off(Event.RESIZE)\n      }\n    }\n\n    _hideModal() {\n      this._element.style.display = 'none'\n      this._element.setAttribute('aria-hidden', true)\n      this._isTransitioning = false\n      this._showBackdrop(() => {\n        $(document.body).removeClass(ClassName.OPEN)\n        this._resetAdjustments()\n        this._resetScrollbar()\n        $(this._element).trigger(Event.HIDDEN)\n      })\n    }\n\n    _removeBackdrop() {\n      if (this._backdrop) {\n        $(this._backdrop).remove()\n        this._backdrop = null\n      }\n    }\n\n    _showBackdrop(callback) {\n      const animate = $(this._element).hasClass(ClassName.FADE) ?\n        ClassName.FADE : ''\n\n      if (this._isShown && this._config.backdrop) {\n        const doAnimate = Util.supportsTransitionEnd() && animate\n\n        this._backdrop = document.createElement('div')\n        this._backdrop.className = ClassName.BACKDROP\n\n        if (animate) {\n          $(this._backdrop).addClass(animate)\n        }\n\n        $(this._backdrop).appendTo(document.body)\n\n        $(this._element).on(Event.CLICK_DISMISS, (event) => {\n          if (this._ignoreBackdropClick) {\n            this._ignoreBackdropClick = false\n            return\n          }\n          if (event.target !== event.currentTarget) {\n            return\n          }\n          if (this._config.backdrop === 'static') {\n            this._element.focus()\n          } else {\n            this.hide()\n          }\n        })\n\n        if (doAnimate) {\n          Util.reflow(this._backdrop)\n        }\n\n        $(this._backdrop).addClass(ClassName.SHOW)\n\n        if (!callback) {\n          return\n        }\n\n        if (!doAnimate) {\n          callback()\n          return\n        }\n\n        $(this._backdrop)\n          .one(Util.TRANSITION_END, callback)\n          .emulateTransitionEnd(BACKDROP_TRANSITION_DURATION)\n\n      } else if (!this._isShown && this._backdrop) {\n        $(this._backdrop).removeClass(ClassName.SHOW)\n\n        const callbackRemove = () => {\n          this._removeBackdrop()\n          if (callback) {\n            callback()\n          }\n        }\n\n        if (Util.supportsTransitionEnd() &&\n           $(this._element).hasClass(ClassName.FADE)) {\n          $(this._backdrop)\n            .one(Util.TRANSITION_END, callbackRemove)\n            .emulateTransitionEnd(BACKDROP_TRANSITION_DURATION)\n        } else {\n          callbackRemove()\n        }\n\n      } else if (callback) {\n        callback()\n      }\n    }\n\n\n    // ----------------------------------------------------------------------\n    // the following methods are used to handle overflowing modals\n    // todo (fat): these should probably be refactored out of modal.js\n    // ----------------------------------------------------------------------\n\n    _adjustDialog() {\n      const isModalOverflowing =\n        this._element.scrollHeight > document.documentElement.clientHeight\n\n      if (!this._isBodyOverflowing && isModalOverflowing) {\n        this._element.style.paddingLeft = `${this._scrollbarWidth}px`\n      }\n\n      if (this._isBodyOverflowing && !isModalOverflowing) {\n        this._element.style.paddingRight = `${this._scrollbarWidth}px`\n      }\n    }\n\n    _resetAdjustments() {\n      this._element.style.paddingLeft = ''\n      this._element.style.paddingRight = ''\n    }\n\n    _checkScrollbar() {\n      const rect = document.body.getBoundingClientRect()\n      this._isBodyOverflowing = rect.left + rect.right < window.innerWidth\n      this._scrollbarWidth = this._getScrollbarWidth()\n    }\n\n    _setScrollbar() {\n      if (this._isBodyOverflowing) {\n        // Note: DOMNode.style.paddingRight returns the actual value or '' if not set\n        //   while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set\n\n        // Adjust fixed content padding\n        $(Selector.FIXED_CONTENT).each((index, element) => {\n          const actualPadding = $(element)[0].style.paddingRight\n          const calculatedPadding = $(element).css('padding-right')\n          $(element).data('padding-right', actualPadding).css('padding-right', `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`)\n        })\n\n        // Adjust sticky content margin\n        $(Selector.STICKY_CONTENT).each((index, element) => {\n          const actualMargin = $(element)[0].style.marginRight\n          const calculatedMargin = $(element).css('margin-right')\n          $(element).data('margin-right', actualMargin).css('margin-right', `${parseFloat(calculatedMargin) - this._scrollbarWidth}px`)\n        })\n\n        // Adjust navbar-toggler margin\n        $(Selector.NAVBAR_TOGGLER).each((index, element) => {\n          const actualMargin = $(element)[0].style.marginRight\n          const calculatedMargin = $(element).css('margin-right')\n          $(element).data('margin-right', actualMargin).css('margin-right', `${parseFloat(calculatedMargin) + this._scrollbarWidth}px`)\n        })\n\n        // Adjust body padding\n        const actualPadding = document.body.style.paddingRight\n        const calculatedPadding = $('body').css('padding-right')\n        $('body').data('padding-right', actualPadding).css('padding-right', `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`)\n      }\n    }\n\n    _resetScrollbar() {\n      // Restore fixed content padding\n      $(Selector.FIXED_CONTENT).each((index, element) => {\n        const padding = $(element).data('padding-right')\n        if (typeof padding !== 'undefined') {\n          $(element).css('padding-right', padding).removeData('padding-right')\n        }\n      })\n\n      // Restore sticky content and navbar-toggler margin\n      $(`${Selector.STICKY_CONTENT}, ${Selector.NAVBAR_TOGGLER}`).each((index, element) => {\n        const margin = $(element).data('margin-right')\n        if (typeof margin !== 'undefined') {\n          $(element).css('margin-right', margin).removeData('margin-right')\n        }\n      })\n\n      // Restore body padding\n      const padding = $('body').data('padding-right')\n      if (typeof padding !== 'undefined') {\n        $('body').css('padding-right', padding).removeData('padding-right')\n      }\n    }\n\n    _getScrollbarWidth() { // thx d.walsh\n      const scrollDiv = document.createElement('div')\n      scrollDiv.className = ClassName.SCROLLBAR_MEASURER\n      document.body.appendChild(scrollDiv)\n      const scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth\n      document.body.removeChild(scrollDiv)\n      return scrollbarWidth\n    }\n\n\n    // static\n\n    static _jQueryInterface(config, relatedTarget) {\n      return this.each(function () {\n        let data      = $(this).data(DATA_KEY)\n        const _config = {\n          ...Modal.Default,\n          ...$(this).data(),\n          ...typeof config === 'object' && config\n        }\n\n        if (!data) {\n          data = new Modal(this, _config)\n          $(this).data(DATA_KEY, data)\n        }\n\n        if (typeof config === 'string') {\n          if (typeof data[config] === 'undefined') {\n            throw new Error(`No method named \"${config}\"`)\n          }\n          data[config](relatedTarget)\n        } else if (_config.show) {\n          data.show(relatedTarget)\n        }\n      })\n    }\n\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n  $(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n    let target\n    const selector = Util.getSelectorFromElement(this)\n\n    if (selector) {\n      target = $(selector)[0]\n    }\n\n    const config = $(target).data(DATA_KEY) ?\n      'toggle' : {\n        ...$(target).data(),\n        ...$(this).data()\n      }\n\n    if (this.tagName === 'A' || this.tagName === 'AREA') {\n      event.preventDefault()\n    }\n\n    const $target = $(target).one(Event.SHOW, (showEvent) => {\n      if (showEvent.isDefaultPrevented()) {\n        // only register focus restorer if modal will actually get shown\n        return\n      }\n\n      $target.one(Event.HIDDEN, () => {\n        if ($(this).is(':visible')) {\n          this.focus()\n        }\n      })\n    })\n\n    Modal._jQueryInterface.call($(target), config, this)\n  })\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $.fn[NAME]             = Modal._jQueryInterface\n  $.fn[NAME].Constructor = Modal\n  $.fn[NAME].noConflict  = function () {\n    $.fn[NAME] = JQUERY_NO_CONFLICT\n    return Modal._jQueryInterface\n  }\n\n  return Modal\n\n})($)\n\nexport default Modal\n","import $ from 'jquery'\nimport Popper from 'popper.js'\nimport Util from './util'\n\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-beta.3): tooltip.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Tooltip = (($) => {\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  const NAME                = 'tooltip'\n  const VERSION             = '4.0.0-beta.3'\n  const DATA_KEY            = 'bs.tooltip'\n  const EVENT_KEY           = `.${DATA_KEY}`\n  const JQUERY_NO_CONFLICT  = $.fn[NAME]\n  const TRANSITION_DURATION = 150\n  const CLASS_PREFIX        = 'bs-tooltip'\n  const BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\n\n  const DefaultType = {\n    animation           : 'boolean',\n    template            : 'string',\n    title               : '(string|element|function)',\n    trigger             : 'string',\n    delay               : '(number|object)',\n    html                : 'boolean',\n    selector            : '(string|boolean)',\n    placement           : '(string|function)',\n    offset              : '(number|string)',\n    container           : '(string|element|boolean)',\n    fallbackPlacement   : '(string|array)',\n    boundary            : '(string|element)'\n  }\n\n  const AttachmentMap = {\n    AUTO   : 'auto',\n    TOP    : 'top',\n    RIGHT  : 'right',\n    BOTTOM : 'bottom',\n    LEFT   : 'left'\n  }\n\n  const Default = {\n    animation           : true,\n    template            : '<div class=\"tooltip\" role=\"tooltip\">'\n                        + '<div class=\"arrow\"></div>'\n                        + '<div class=\"tooltip-inner\"></div></div>',\n    trigger             : 'hover focus',\n    title               : '',\n    delay               : 0,\n    html                : false,\n    selector            : false,\n    placement           : 'top',\n    offset              : 0,\n    container           : false,\n    fallbackPlacement   : 'flip',\n    boundary            : 'scrollParent'\n  }\n\n  const HoverState = {\n    SHOW : 'show',\n    OUT  : 'out'\n  }\n\n  const Event = {\n    HIDE       : `hide${EVENT_KEY}`,\n    HIDDEN     : `hidden${EVENT_KEY}`,\n    SHOW       : `show${EVENT_KEY}`,\n    SHOWN      : `shown${EVENT_KEY}`,\n    INSERTED   : `inserted${EVENT_KEY}`,\n    CLICK      : `click${EVENT_KEY}`,\n    FOCUSIN    : `focusin${EVENT_KEY}`,\n    FOCUSOUT   : `focusout${EVENT_KEY}`,\n    MOUSEENTER : `mouseenter${EVENT_KEY}`,\n    MOUSELEAVE : `mouseleave${EVENT_KEY}`\n  }\n\n  const ClassName = {\n    FADE : 'fade',\n    SHOW : 'show'\n  }\n\n  const Selector = {\n    TOOLTIP       : '.tooltip',\n    TOOLTIP_INNER : '.tooltip-inner',\n    ARROW         : '.arrow'\n  }\n\n  const Trigger = {\n    HOVER  : 'hover',\n    FOCUS  : 'focus',\n    CLICK  : 'click',\n    MANUAL : 'manual'\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  class Tooltip {\n\n    constructor(element, config) {\n      /**\n       * Check for Popper dependency\n       * Popper - https://popper.js.org\n       */\n      if (typeof Popper === 'undefined') {\n        throw new Error('Bootstrap tooltips require Popper.js (https://popper.js.org)')\n      }\n\n      // private\n      this._isEnabled     = true\n      this._timeout       = 0\n      this._hoverState    = ''\n      this._activeTrigger = {}\n      this._popper        = null\n\n      // protected\n      this.element = element\n      this.config  = this._getConfig(config)\n      this.tip     = null\n\n      this._setListeners()\n\n    }\n\n\n    // getters\n\n    static get VERSION() {\n      return VERSION\n    }\n\n    static get Default() {\n      return Default\n    }\n\n    static get NAME() {\n      return NAME\n    }\n\n    static get DATA_KEY() {\n      return DATA_KEY\n    }\n\n    static get Event() {\n      return Event\n    }\n\n    static get EVENT_KEY() {\n      return EVENT_KEY\n    }\n\n    static get DefaultType() {\n      return DefaultType\n    }\n\n\n    // public\n\n    enable() {\n      this._isEnabled = true\n    }\n\n    disable() {\n      this._isEnabled = false\n    }\n\n    toggleEnabled() {\n      this._isEnabled = !this._isEnabled\n    }\n\n    toggle(event) {\n      if (!this._isEnabled) {\n        return\n      }\n\n      if (event) {\n        const dataKey = this.constructor.DATA_KEY\n        let context = $(event.currentTarget).data(dataKey)\n\n        if (!context) {\n          context = new this.constructor(\n            event.currentTarget,\n            this._getDelegateConfig()\n          )\n          $(event.currentTarget).data(dataKey, context)\n        }\n\n        context._activeTrigger.click = !context._activeTrigger.click\n\n        if (context._isWithActiveTrigger()) {\n          context._enter(null, context)\n        } else {\n          context._leave(null, context)\n        }\n\n      } else {\n\n        if ($(this.getTipElement()).hasClass(ClassName.SHOW)) {\n          this._leave(null, this)\n          return\n        }\n\n        this._enter(null, this)\n      }\n    }\n\n    dispose() {\n      clearTimeout(this._timeout)\n\n      $.removeData(this.element, this.constructor.DATA_KEY)\n\n      $(this.element).off(this.constructor.EVENT_KEY)\n      $(this.element).closest('.modal').off('hide.bs.modal')\n\n      if (this.tip) {\n        $(this.tip).remove()\n      }\n\n      this._isEnabled     = null\n      this._timeout       = null\n      this._hoverState    = null\n      this._activeTrigger = null\n      if (this._popper !== null) {\n        this._popper.destroy()\n      }\n\n      this._popper = null\n      this.element = null\n      this.config  = null\n      this.tip     = null\n    }\n\n    show() {\n      if ($(this.element).css('display') === 'none') {\n        throw new Error('Please use show on visible elements')\n      }\n\n      const showEvent = $.Event(this.constructor.Event.SHOW)\n      if (this.isWithContent() && this._isEnabled) {\n        $(this.element).trigger(showEvent)\n\n        const isInTheDom = $.contains(\n          this.element.ownerDocument.documentElement,\n          this.element\n        )\n\n        if (showEvent.isDefaultPrevented() || !isInTheDom) {\n          return\n        }\n\n        const tip   = this.getTipElement()\n        const tipId = Util.getUID(this.constructor.NAME)\n\n        tip.setAttribute('id', tipId)\n        this.element.setAttribute('aria-describedby', tipId)\n\n        this.setContent()\n\n        if (this.config.animation) {\n          $(tip).addClass(ClassName.FADE)\n        }\n\n        const placement  = typeof this.config.placement === 'function' ?\n          this.config.placement.call(this, tip, this.element) :\n          this.config.placement\n\n        const attachment = this._getAttachment(placement)\n        this.addAttachmentClass(attachment)\n\n        const container = this.config.container === false ? document.body : $(this.config.container)\n\n        $(tip).data(this.constructor.DATA_KEY, this)\n\n        if (!$.contains(this.element.ownerDocument.documentElement, this.tip)) {\n          $(tip).appendTo(container)\n        }\n\n        $(this.element).trigger(this.constructor.Event.INSERTED)\n\n        this._popper = new Popper(this.element, tip, {\n          placement: attachment,\n          modifiers: {\n            offset: {\n              offset: this.config.offset\n            },\n            flip: {\n              behavior: this.config.fallbackPlacement\n            },\n            arrow: {\n              element: Selector.ARROW\n            },\n            preventOverflow: {\n              boundariesElement: this.config.boundary\n            }\n          },\n          onCreate: (data) => {\n            if (data.originalPlacement !== data.placement) {\n              this._handlePopperPlacementChange(data)\n            }\n          },\n          onUpdate : (data) => {\n            this._handlePopperPlacementChange(data)\n          }\n        })\n\n        $(tip).addClass(ClassName.SHOW)\n\n        // if this is a touch-enabled device we add extra\n        // empty mouseover listeners to the body's immediate children;\n        // only needed because of broken event delegation on iOS\n        // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n        if ('ontouchstart' in document.documentElement) {\n          $('body').children().on('mouseover', null, $.noop)\n        }\n\n        const complete = () => {\n          if (this.config.animation) {\n            this._fixTransition()\n          }\n          const prevHoverState = this._hoverState\n          this._hoverState     = null\n\n          $(this.element).trigger(this.constructor.Event.SHOWN)\n\n          if (prevHoverState === HoverState.OUT) {\n            this._leave(null, this)\n          }\n        }\n\n        if (Util.supportsTransitionEnd() && $(this.tip).hasClass(ClassName.FADE)) {\n          $(this.tip)\n            .one(Util.TRANSITION_END, complete)\n            .emulateTransitionEnd(Tooltip._TRANSITION_DURATION)\n        } else {\n          complete()\n        }\n      }\n    }\n\n    hide(callback) {\n      const tip       = this.getTipElement()\n      const hideEvent = $.Event(this.constructor.Event.HIDE)\n      const complete  = () => {\n        if (this._hoverState !== HoverState.SHOW && tip.parentNode) {\n          tip.parentNode.removeChild(tip)\n        }\n\n        this._cleanTipClass()\n        this.element.removeAttribute('aria-describedby')\n        $(this.element).trigger(this.constructor.Event.HIDDEN)\n        if (this._popper !== null) {\n          this._popper.destroy()\n        }\n\n        if (callback) {\n          callback()\n        }\n      }\n\n      $(this.element).trigger(hideEvent)\n\n      if (hideEvent.isDefaultPrevented()) {\n        return\n      }\n\n      $(tip).removeClass(ClassName.SHOW)\n\n      // if this is a touch-enabled device we remove the extra\n      // empty mouseover listeners we added for iOS support\n      if ('ontouchstart' in document.documentElement) {\n        $('body').children().off('mouseover', null, $.noop)\n      }\n\n      this._activeTrigger[Trigger.CLICK] = false\n      this._activeTrigger[Trigger.FOCUS] = false\n      this._activeTrigger[Trigger.HOVER] = false\n\n      if (Util.supportsTransitionEnd() &&\n          $(this.tip).hasClass(ClassName.FADE)) {\n\n        $(tip)\n          .one(Util.TRANSITION_END, complete)\n          .emulateTransitionEnd(TRANSITION_DURATION)\n\n      } else {\n        complete()\n      }\n\n      this._hoverState = ''\n\n    }\n\n    update() {\n      if (this._popper !== null) {\n        this._popper.scheduleUpdate()\n      }\n    }\n\n    // protected\n\n    isWithContent() {\n      return Boolean(this.getTitle())\n    }\n\n    addAttachmentClass(attachment) {\n      $(this.getTipElement()).addClass(`${CLASS_PREFIX}-${attachment}`)\n    }\n\n    getTipElement() {\n      this.tip = this.tip || $(this.config.template)[0]\n      return this.tip\n    }\n\n    setContent() {\n      const $tip = $(this.getTipElement())\n      this.setElementContent($tip.find(Selector.TOOLTIP_INNER), this.getTitle())\n      $tip.removeClass(`${ClassName.FADE} ${ClassName.SHOW}`)\n    }\n\n    setElementContent($element, content) {\n      const html = this.config.html\n      if (typeof content === 'object' && (content.nodeType || content.jquery)) {\n        // content is a DOM node or a jQuery\n        if (html) {\n          if (!$(content).parent().is($element)) {\n            $element.empty().append(content)\n          }\n        } else {\n          $element.text($(content).text())\n        }\n      } else {\n        $element[html ? 'html' : 'text'](content)\n      }\n    }\n\n    getTitle() {\n      let title = this.element.getAttribute('data-original-title')\n\n      if (!title) {\n        title = typeof this.config.title === 'function' ?\n          this.config.title.call(this.element) :\n          this.config.title\n      }\n\n      return title\n    }\n\n\n    // private\n\n    _getAttachment(placement) {\n      return AttachmentMap[placement.toUpperCase()]\n    }\n\n    _setListeners() {\n      const triggers = this.config.trigger.split(' ')\n\n      triggers.forEach((trigger) => {\n        if (trigger === 'click') {\n          $(this.element).on(\n            this.constructor.Event.CLICK,\n            this.config.selector,\n            (event) => this.toggle(event)\n          )\n\n        } else if (trigger !== Trigger.MANUAL) {\n          const eventIn  = trigger === Trigger.HOVER ?\n            this.constructor.Event.MOUSEENTER :\n            this.constructor.Event.FOCUSIN\n          const eventOut = trigger === Trigger.HOVER ?\n            this.constructor.Event.MOUSELEAVE :\n            this.constructor.Event.FOCUSOUT\n\n          $(this.element)\n            .on(\n              eventIn,\n              this.config.selector,\n              (event) => this._enter(event)\n            )\n            .on(\n              eventOut,\n              this.config.selector,\n              (event) => this._leave(event)\n            )\n        }\n\n        $(this.element).closest('.modal').on(\n          'hide.bs.modal',\n          () => this.hide()\n        )\n      })\n\n      if (this.config.selector) {\n        this.config = {\n          ...this.config,\n          trigger  : 'manual',\n          selector : ''\n        }\n      } else {\n        this._fixTitle()\n      }\n    }\n\n    _fixTitle() {\n      const titleType = typeof this.element.getAttribute('data-original-title')\n      if (this.element.getAttribute('title') ||\n         titleType !== 'string') {\n        this.element.setAttribute(\n          'data-original-title',\n          this.element.getAttribute('title') || ''\n        )\n        this.element.setAttribute('title', '')\n      }\n    }\n\n    _enter(event, context) {\n      const dataKey = this.constructor.DATA_KEY\n\n      context = context || $(event.currentTarget).data(dataKey)\n\n      if (!context) {\n        context = new this.constructor(\n          event.currentTarget,\n          this._getDelegateConfig()\n        )\n        $(event.currentTarget).data(dataKey, context)\n      }\n\n      if (event) {\n        context._activeTrigger[\n          event.type === 'focusin' ? Trigger.FOCUS : Trigger.HOVER\n        ] = true\n      }\n\n      if ($(context.getTipElement()).hasClass(ClassName.SHOW) ||\n         context._hoverState === HoverState.SHOW) {\n        context._hoverState = HoverState.SHOW\n        return\n      }\n\n      clearTimeout(context._timeout)\n\n      context._hoverState = HoverState.SHOW\n\n      if (!context.config.delay || !context.config.delay.show) {\n        context.show()\n        return\n      }\n\n      context._timeout = setTimeout(() => {\n        if (context._hoverState === HoverState.SHOW) {\n          context.show()\n        }\n      }, context.config.delay.show)\n    }\n\n    _leave(event, context) {\n      const dataKey = this.constructor.DATA_KEY\n\n      context = context || $(event.currentTarget).data(dataKey)\n\n      if (!context) {\n        context = new this.constructor(\n          event.currentTarget,\n          this._getDelegateConfig()\n        )\n        $(event.currentTarget).data(dataKey, context)\n      }\n\n      if (event) {\n        context._activeTrigger[\n          event.type === 'focusout' ? Trigger.FOCUS : Trigger.HOVER\n        ] = false\n      }\n\n      if (context._isWithActiveTrigger()) {\n        return\n      }\n\n      clearTimeout(context._timeout)\n\n      context._hoverState = HoverState.OUT\n\n      if (!context.config.delay || !context.config.delay.hide) {\n        context.hide()\n        return\n      }\n\n      context._timeout = setTimeout(() => {\n        if (context._hoverState === HoverState.OUT) {\n          context.hide()\n        }\n      }, context.config.delay.hide)\n    }\n\n    _isWithActiveTrigger() {\n      for (const trigger in this._activeTrigger) {\n        if (this._activeTrigger[trigger]) {\n          return true\n        }\n      }\n\n      return false\n    }\n\n    _getConfig(config) {\n      config = {\n        ...this.constructor.Default,\n        ...$(this.element).data(),\n        ...config\n      }\n\n      if (typeof config.delay === 'number') {\n        config.delay = {\n          show : config.delay,\n          hide : config.delay\n        }\n      }\n\n      if (typeof config.title === 'number') {\n        config.title = config.title.toString()\n      }\n\n      if (typeof config.content === 'number') {\n        config.content = config.content.toString()\n      }\n\n      Util.typeCheckConfig(\n        NAME,\n        config,\n        this.constructor.DefaultType\n      )\n\n      return config\n    }\n\n    _getDelegateConfig() {\n      const config = {}\n\n      if (this.config) {\n        for (const key in this.config) {\n          if (this.constructor.Default[key] !== this.config[key]) {\n            config[key] = this.config[key]\n          }\n        }\n      }\n\n      return config\n    }\n\n    _cleanTipClass() {\n      const $tip = $(this.getTipElement())\n      const tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX)\n      if (tabClass !== null && tabClass.length > 0) {\n        $tip.removeClass(tabClass.join(''))\n      }\n    }\n\n    _handlePopperPlacementChange(data) {\n      this._cleanTipClass()\n      this.addAttachmentClass(this._getAttachment(data.placement))\n    }\n\n    _fixTransition() {\n      const tip                 = this.getTipElement()\n      const initConfigAnimation = this.config.animation\n      if (tip.getAttribute('x-placement') !== null) {\n        return\n      }\n      $(tip).removeClass(ClassName.FADE)\n      this.config.animation = false\n      this.hide()\n      this.show()\n      this.config.animation = initConfigAnimation\n    }\n\n    // static\n\n    static _jQueryInterface(config) {\n      return this.each(function () {\n        let data      = $(this).data(DATA_KEY)\n        const _config = typeof config === 'object' && config\n\n        if (!data && /dispose|hide/.test(config)) {\n          return\n        }\n\n        if (!data) {\n          data = new Tooltip(this, _config)\n          $(this).data(DATA_KEY, data)\n        }\n\n        if (typeof config === 'string') {\n          if (typeof data[config] === 'undefined') {\n            throw new Error(`No method named \"${config}\"`)\n          }\n          data[config]()\n        }\n      })\n    }\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $.fn[NAME]             = Tooltip._jQueryInterface\n  $.fn[NAME].Constructor = Tooltip\n  $.fn[NAME].noConflict  = function () {\n    $.fn[NAME] = JQUERY_NO_CONFLICT\n    return Tooltip._jQueryInterface\n  }\n\n  return Tooltip\n\n})($, Popper)\n\nexport default Tooltip\n","import $ from 'jquery'\nimport Tooltip from './tooltip'\n\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-beta.3): popover.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Popover = (($) => {\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  const NAME                = 'popover'\n  const VERSION             = '4.0.0-beta.3'\n  const DATA_KEY            = 'bs.popover'\n  const EVENT_KEY           = `.${DATA_KEY}`\n  const JQUERY_NO_CONFLICT  = $.fn[NAME]\n  const CLASS_PREFIX        = 'bs-popover'\n  const BSCLS_PREFIX_REGEX  = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\n\n  const Default = {\n    ...Tooltip.Default,\n    placement : 'right',\n    trigger   : 'click',\n    content   : '',\n    template  : '<div class=\"popover\" role=\"tooltip\">'\n              + '<div class=\"arrow\"></div>'\n              + '<h3 class=\"popover-header\"></h3>'\n              + '<div class=\"popover-body\"></div></div>'\n  }\n\n  const DefaultType = {\n    ...Tooltip.DefaultType,\n    content : '(string|element|function)'\n  }\n\n  const ClassName = {\n    FADE : 'fade',\n    SHOW : 'show'\n  }\n\n  const Selector = {\n    TITLE   : '.popover-header',\n    CONTENT : '.popover-body'\n  }\n\n  const Event = {\n    HIDE       : `hide${EVENT_KEY}`,\n    HIDDEN     : `hidden${EVENT_KEY}`,\n    SHOW       : `show${EVENT_KEY}`,\n    SHOWN      : `shown${EVENT_KEY}`,\n    INSERTED   : `inserted${EVENT_KEY}`,\n    CLICK      : `click${EVENT_KEY}`,\n    FOCUSIN    : `focusin${EVENT_KEY}`,\n    FOCUSOUT   : `focusout${EVENT_KEY}`,\n    MOUSEENTER : `mouseenter${EVENT_KEY}`,\n    MOUSELEAVE : `mouseleave${EVENT_KEY}`\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  class Popover extends Tooltip {\n\n\n    // getters\n\n    static get VERSION() {\n      return VERSION\n    }\n\n    static get Default() {\n      return Default\n    }\n\n    static get NAME() {\n      return NAME\n    }\n\n    static get DATA_KEY() {\n      return DATA_KEY\n    }\n\n    static get Event() {\n      return Event\n    }\n\n    static get EVENT_KEY() {\n      return EVENT_KEY\n    }\n\n    static get DefaultType() {\n      return DefaultType\n    }\n\n\n    // overrides\n\n    isWithContent() {\n      return this.getTitle() || this._getContent()\n    }\n\n    addAttachmentClass(attachment) {\n      $(this.getTipElement()).addClass(`${CLASS_PREFIX}-${attachment}`)\n    }\n\n    getTipElement() {\n      this.tip = this.tip || $(this.config.template)[0]\n      return this.tip\n    }\n\n    setContent() {\n      const $tip = $(this.getTipElement())\n\n      // we use append for html objects to maintain js events\n      this.setElementContent($tip.find(Selector.TITLE), this.getTitle())\n      let content = this._getContent()\n      if (typeof content === 'function') {\n        content = content.call(this.element)\n      }\n      this.setElementContent($tip.find(Selector.CONTENT), content)\n\n      $tip.removeClass(`${ClassName.FADE} ${ClassName.SHOW}`)\n    }\n\n    // private\n\n    _getContent() {\n      return this.element.getAttribute('data-content')\n        || this.config.content\n    }\n\n    _cleanTipClass() {\n      const $tip = $(this.getTipElement())\n      const tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX)\n      if (tabClass !== null && tabClass.length > 0) {\n        $tip.removeClass(tabClass.join(''))\n      }\n    }\n\n\n    // static\n\n    static _jQueryInterface(config) {\n      return this.each(function () {\n        let data      = $(this).data(DATA_KEY)\n        const _config = typeof config === 'object' ? config : null\n\n        if (!data && /destroy|hide/.test(config)) {\n          return\n        }\n\n        if (!data) {\n          data = new Popover(this, _config)\n          $(this).data(DATA_KEY, data)\n        }\n\n        if (typeof config === 'string') {\n          if (typeof data[config] === 'undefined') {\n            throw new Error(`No method named \"${config}\"`)\n          }\n          data[config]()\n        }\n      })\n    }\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $.fn[NAME]             = Popover._jQueryInterface\n  $.fn[NAME].Constructor = Popover\n  $.fn[NAME].noConflict  = function () {\n    $.fn[NAME] = JQUERY_NO_CONFLICT\n    return Popover._jQueryInterface\n  }\n\n  return Popover\n\n})($)\n\nexport default Popover\n","import $ from 'jquery'\nimport Util from './util'\n\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-beta.3): scrollspy.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst ScrollSpy = (($) => {\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  const NAME               = 'scrollspy'\n  const VERSION            = '4.0.0-beta.3'\n  const DATA_KEY           = 'bs.scrollspy'\n  const EVENT_KEY          = `.${DATA_KEY}`\n  const DATA_API_KEY       = '.data-api'\n  const JQUERY_NO_CONFLICT = $.fn[NAME]\n\n  const Default = {\n    offset : 10,\n    method : 'auto',\n    target : ''\n  }\n\n  const DefaultType = {\n    offset : 'number',\n    method : 'string',\n    target : '(string|element)'\n  }\n\n  const Event = {\n    ACTIVATE      : `activate${EVENT_KEY}`,\n    SCROLL        : `scroll${EVENT_KEY}`,\n    LOAD_DATA_API : `load${EVENT_KEY}${DATA_API_KEY}`\n  }\n\n  const ClassName = {\n    DROPDOWN_ITEM : 'dropdown-item',\n    DROPDOWN_MENU : 'dropdown-menu',\n    ACTIVE        : 'active'\n  }\n\n  const Selector = {\n    DATA_SPY        : '[data-spy=\"scroll\"]',\n    ACTIVE          : '.active',\n    NAV_LIST_GROUP  : '.nav, .list-group',\n    NAV_LINKS       : '.nav-link',\n    NAV_ITEMS       : '.nav-item',\n    LIST_ITEMS      : '.list-group-item',\n    DROPDOWN        : '.dropdown',\n    DROPDOWN_ITEMS  : '.dropdown-item',\n    DROPDOWN_TOGGLE : '.dropdown-toggle'\n  }\n\n  const OffsetMethod = {\n    OFFSET   : 'offset',\n    POSITION : 'position'\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  class ScrollSpy {\n\n    constructor(element, config) {\n      this._element       = element\n      this._scrollElement = element.tagName === 'BODY' ? window : element\n      this._config        = this._getConfig(config)\n      this._selector      = `${this._config.target} ${Selector.NAV_LINKS},`\n                          + `${this._config.target} ${Selector.LIST_ITEMS},`\n                          + `${this._config.target} ${Selector.DROPDOWN_ITEMS}`\n      this._offsets       = []\n      this._targets       = []\n      this._activeTarget  = null\n      this._scrollHeight  = 0\n\n      $(this._scrollElement).on(Event.SCROLL, (event) => this._process(event))\n\n      this.refresh()\n      this._process()\n    }\n\n\n    // getters\n\n    static get VERSION() {\n      return VERSION\n    }\n\n    static get Default() {\n      return Default\n    }\n\n\n    // public\n\n    refresh() {\n      const autoMethod = this._scrollElement !== this._scrollElement.window ?\n        OffsetMethod.POSITION : OffsetMethod.OFFSET\n\n      const offsetMethod = this._config.method === 'auto' ?\n        autoMethod : this._config.method\n\n      const offsetBase = offsetMethod === OffsetMethod.POSITION ?\n        this._getScrollTop() : 0\n\n      this._offsets = []\n      this._targets = []\n\n      this._scrollHeight = this._getScrollHeight()\n\n      const targets = $.makeArray($(this._selector))\n\n      targets\n        .map((element) => {\n          let target\n          const targetSelector = Util.getSelectorFromElement(element)\n\n          if (targetSelector) {\n            target = $(targetSelector)[0]\n          }\n\n          if (target) {\n            const targetBCR = target.getBoundingClientRect()\n            if (targetBCR.width || targetBCR.height) {\n              // todo (fat): remove sketch reliance on jQuery position/offset\n              return [\n                $(target)[offsetMethod]().top + offsetBase,\n                targetSelector\n              ]\n            }\n          }\n          return null\n        })\n        .filter((item)  => item)\n        .sort((a, b)    => a[0] - b[0])\n        .forEach((item) => {\n          this._offsets.push(item[0])\n          this._targets.push(item[1])\n        })\n    }\n\n    dispose() {\n      $.removeData(this._element, DATA_KEY)\n      $(this._scrollElement).off(EVENT_KEY)\n\n      this._element       = null\n      this._scrollElement = null\n      this._config        = null\n      this._selector      = null\n      this._offsets       = null\n      this._targets       = null\n      this._activeTarget  = null\n      this._scrollHeight  = null\n    }\n\n\n    // private\n\n    _getConfig(config) {\n      config = {\n        ...Default,\n        ...config\n      }\n\n      if (typeof config.target !== 'string') {\n        let id = $(config.target).attr('id')\n        if (!id) {\n          id = Util.getUID(NAME)\n          $(config.target).attr('id', id)\n        }\n        config.target = `#${id}`\n      }\n\n      Util.typeCheckConfig(NAME, config, DefaultType)\n\n      return config\n    }\n\n    _getScrollTop() {\n      return this._scrollElement === window ?\n          this._scrollElement.pageYOffset : this._scrollElement.scrollTop\n    }\n\n    _getScrollHeight() {\n      return this._scrollElement.scrollHeight || Math.max(\n        document.body.scrollHeight,\n        document.documentElement.scrollHeight\n      )\n    }\n\n    _getOffsetHeight() {\n      return this._scrollElement === window ?\n          window.innerHeight : this._scrollElement.getBoundingClientRect().height\n    }\n\n    _process() {\n      const scrollTop    = this._getScrollTop() + this._config.offset\n      const scrollHeight = this._getScrollHeight()\n      const maxScroll    = this._config.offset\n        + scrollHeight\n        - this._getOffsetHeight()\n\n      if (this._scrollHeight !== scrollHeight) {\n        this.refresh()\n      }\n\n      if (scrollTop >= maxScroll) {\n        const target = this._targets[this._targets.length - 1]\n\n        if (this._activeTarget !== target) {\n          this._activate(target)\n        }\n        return\n      }\n\n      if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) {\n        this._activeTarget = null\n        this._clear()\n        return\n      }\n\n      for (let i = this._offsets.length; i--;) {\n        const isActiveTarget = this._activeTarget !== this._targets[i]\n            && scrollTop >= this._offsets[i]\n            && (typeof this._offsets[i + 1] === 'undefined' ||\n                scrollTop < this._offsets[i + 1])\n\n        if (isActiveTarget) {\n          this._activate(this._targets[i])\n        }\n      }\n    }\n\n    _activate(target) {\n      this._activeTarget = target\n\n      this._clear()\n\n      let queries = this._selector.split(',')\n      // eslint-disable-next-line arrow-body-style\n      queries     = queries.map((selector) => {\n        return `${selector}[data-target=\"${target}\"],` +\n               `${selector}[href=\"${target}\"]`\n      })\n\n      const $link = $(queries.join(','))\n\n      if ($link.hasClass(ClassName.DROPDOWN_ITEM)) {\n        $link.closest(Selector.DROPDOWN).find(Selector.DROPDOWN_TOGGLE).addClass(ClassName.ACTIVE)\n        $link.addClass(ClassName.ACTIVE)\n      } else {\n        // Set triggered link as active\n        $link.addClass(ClassName.ACTIVE)\n        // Set triggered links parents as active\n        // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor\n        $link.parents(Selector.NAV_LIST_GROUP).prev(`${Selector.NAV_LINKS}, ${Selector.LIST_ITEMS}`).addClass(ClassName.ACTIVE)\n        // Handle special case when .nav-link is inside .nav-item\n        $link.parents(Selector.NAV_LIST_GROUP).prev(Selector.NAV_ITEMS).children(Selector.NAV_LINKS).addClass(ClassName.ACTIVE)\n      }\n\n      $(this._scrollElement).trigger(Event.ACTIVATE, {\n        relatedTarget: target\n      })\n    }\n\n    _clear() {\n      $(this._selector).filter(Selector.ACTIVE).removeClass(ClassName.ACTIVE)\n    }\n\n\n    // static\n\n    static _jQueryInterface(config) {\n      return this.each(function () {\n        let data      = $(this).data(DATA_KEY)\n        const _config = typeof config === 'object' && config\n\n        if (!data) {\n          data = new ScrollSpy(this, _config)\n          $(this).data(DATA_KEY, data)\n        }\n\n        if (typeof config === 'string') {\n          if (typeof data[config] === 'undefined') {\n            throw new Error(`No method named \"${config}\"`)\n          }\n          data[config]()\n        }\n      })\n    }\n\n\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n  $(window).on(Event.LOAD_DATA_API, () => {\n    const scrollSpys = $.makeArray($(Selector.DATA_SPY))\n\n    for (let i = scrollSpys.length; i--;) {\n      const $spy = $(scrollSpys[i])\n      ScrollSpy._jQueryInterface.call($spy, $spy.data())\n    }\n  })\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $.fn[NAME]             = ScrollSpy._jQueryInterface\n  $.fn[NAME].Constructor = ScrollSpy\n  $.fn[NAME].noConflict  = function () {\n    $.fn[NAME] = JQUERY_NO_CONFLICT\n    return ScrollSpy._jQueryInterface\n  }\n\n  return ScrollSpy\n\n})($)\n\nexport default ScrollSpy\n","import $ from 'jquery'\nimport Util from './util'\n\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-beta.3): tab.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Tab = (($) => {\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  const NAME                = 'tab'\n  const VERSION             = '4.0.0-beta.3'\n  const DATA_KEY            = 'bs.tab'\n  const EVENT_KEY           = `.${DATA_KEY}`\n  const DATA_API_KEY        = '.data-api'\n  const JQUERY_NO_CONFLICT  = $.fn[NAME]\n  const TRANSITION_DURATION = 150\n\n  const Event = {\n    HIDE           : `hide${EVENT_KEY}`,\n    HIDDEN         : `hidden${EVENT_KEY}`,\n    SHOW           : `show${EVENT_KEY}`,\n    SHOWN          : `shown${EVENT_KEY}`,\n    CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n  }\n\n  const ClassName = {\n    DROPDOWN_MENU : 'dropdown-menu',\n    ACTIVE        : 'active',\n    DISABLED      : 'disabled',\n    FADE          : 'fade',\n    SHOW          : 'show'\n  }\n\n  const Selector = {\n    DROPDOWN              : '.dropdown',\n    NAV_LIST_GROUP        : '.nav, .list-group',\n    ACTIVE                : '.active',\n    ACTIVE_UL             : '> li > .active',\n    DATA_TOGGLE           : '[data-toggle=\"tab\"], [data-toggle=\"pill\"], [data-toggle=\"list\"]',\n    DROPDOWN_TOGGLE       : '.dropdown-toggle',\n    DROPDOWN_ACTIVE_CHILD : '> .dropdown-menu .active'\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  class Tab {\n\n    constructor(element) {\n      this._element = element\n    }\n\n\n    // getters\n\n    static get VERSION() {\n      return VERSION\n    }\n\n\n    // public\n\n    show() {\n      if (this._element.parentNode &&\n          this._element.parentNode.nodeType === Node.ELEMENT_NODE &&\n          $(this._element).hasClass(ClassName.ACTIVE) ||\n          $(this._element).hasClass(ClassName.DISABLED)) {\n        return\n      }\n\n      let target\n      let previous\n      const listElement = $(this._element).closest(Selector.NAV_LIST_GROUP)[0]\n      const selector    = Util.getSelectorFromElement(this._element)\n\n      if (listElement) {\n        const itemSelector = listElement.nodeName === 'UL' ? Selector.ACTIVE_UL : Selector.ACTIVE\n        previous = $.makeArray($(listElement).find(itemSelector))\n        previous = previous[previous.length - 1]\n      }\n\n      const hideEvent = $.Event(Event.HIDE, {\n        relatedTarget: this._element\n      })\n\n      const showEvent = $.Event(Event.SHOW, {\n        relatedTarget: previous\n      })\n\n      if (previous) {\n        $(previous).trigger(hideEvent)\n      }\n\n      $(this._element).trigger(showEvent)\n\n      if (showEvent.isDefaultPrevented() ||\n         hideEvent.isDefaultPrevented()) {\n        return\n      }\n\n      if (selector) {\n        target = $(selector)[0]\n      }\n\n      this._activate(\n        this._element,\n        listElement\n      )\n\n      const complete = () => {\n        const hiddenEvent = $.Event(Event.HIDDEN, {\n          relatedTarget: this._element\n        })\n\n        const shownEvent = $.Event(Event.SHOWN, {\n          relatedTarget: previous\n        })\n\n        $(previous).trigger(hiddenEvent)\n        $(this._element).trigger(shownEvent)\n      }\n\n      if (target) {\n        this._activate(target, target.parentNode, complete)\n      } else {\n        complete()\n      }\n    }\n\n    dispose() {\n      $.removeData(this._element, DATA_KEY)\n      this._element = null\n    }\n\n\n    // private\n\n    _activate(element, container, callback) {\n      let activeElements\n      if (container.nodeName === 'UL') {\n        activeElements = $(container).find(Selector.ACTIVE_UL)\n      } else {\n        activeElements = $(container).children(Selector.ACTIVE)\n      }\n\n      const active          = activeElements[0]\n      const isTransitioning = callback\n        && Util.supportsTransitionEnd()\n        && (active && $(active).hasClass(ClassName.FADE))\n\n      const complete = () => this._transitionComplete(\n        element,\n        active,\n        callback\n      )\n\n      if (active && isTransitioning) {\n        $(active)\n          .one(Util.TRANSITION_END, complete)\n          .emulateTransitionEnd(TRANSITION_DURATION)\n      } else {\n        complete()\n      }\n    }\n\n    _transitionComplete(element, active, callback) {\n      if (active) {\n        $(active).removeClass(`${ClassName.SHOW} ${ClassName.ACTIVE}`)\n\n        const dropdownChild = $(active.parentNode).find(\n          Selector.DROPDOWN_ACTIVE_CHILD\n        )[0]\n\n        if (dropdownChild) {\n          $(dropdownChild).removeClass(ClassName.ACTIVE)\n        }\n\n        if (active.getAttribute('role') === 'tab') {\n          active.setAttribute('aria-selected', false)\n        }\n      }\n\n      $(element).addClass(ClassName.ACTIVE)\n      if (element.getAttribute('role') === 'tab') {\n        element.setAttribute('aria-selected', true)\n      }\n\n      Util.reflow(element)\n      $(element).addClass(ClassName.SHOW)\n\n      if (element.parentNode &&\n          $(element.parentNode).hasClass(ClassName.DROPDOWN_MENU)) {\n\n        const dropdownElement = $(element).closest(Selector.DROPDOWN)[0]\n        if (dropdownElement) {\n          $(dropdownElement).find(Selector.DROPDOWN_TOGGLE).addClass(ClassName.ACTIVE)\n        }\n\n        element.setAttribute('aria-expanded', true)\n      }\n\n      if (callback) {\n        callback()\n      }\n    }\n\n\n    // static\n\n    static _jQueryInterface(config) {\n      return this.each(function () {\n        const $this = $(this)\n        let data    = $this.data(DATA_KEY)\n\n        if (!data) {\n          data = new Tab(this)\n          $this.data(DATA_KEY, data)\n        }\n\n        if (typeof config === 'string') {\n          if (typeof data[config] === 'undefined') {\n            throw new Error(`No method named \"${config}\"`)\n          }\n          data[config]()\n        }\n      })\n    }\n\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n  $(document)\n    .on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n      event.preventDefault()\n      Tab._jQueryInterface.call($(this), 'show')\n    })\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $.fn[NAME]             = Tab._jQueryInterface\n  $.fn[NAME].Constructor = Tab\n  $.fn[NAME].noConflict  = function () {\n    $.fn[NAME] = JQUERY_NO_CONFLICT\n    return Tab._jQueryInterface\n  }\n\n  return Tab\n\n})($)\n\nexport default Tab\n","import $ from 'jquery'\nimport Alert from './alert'\nimport Button from './button'\nimport Carousel from './carousel'\nimport Collapse from './collapse'\nimport Dropdown from './dropdown'\nimport Modal from './modal'\nimport Popover from './popover'\nimport Scrollspy from './scrollspy'\nimport Tab from './tab'\nimport Tooltip from './tooltip'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-alpha.6): index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n(($) => {\n  if (typeof $ === 'undefined') {\n    throw new Error('Bootstrap\\'s JavaScript requires jQuery. jQuery must be included before Bootstrap\\'s JavaScript.')\n  }\n\n  const version = $.fn.jquery.split(' ')[0].split('.')\n  const minMajor = 1\n  const ltMajor  = 2\n  const minMinor = 9\n  const minPatch = 1\n  const maxMajor = 4\n\n  if (version[0] < ltMajor && version[1] < minMinor || version[0] === minMajor && version[1] === minMinor && version[2] < minPatch || version[0] >= maxMajor) {\n    throw new Error('Bootstrap\\'s JavaScript requires at least jQuery v1.9.1 but less than v4.0.0')\n  }\n})($)\n\nexport {\n  Util,\n  Alert,\n  Button,\n  Carousel,\n  Collapse,\n  Dropdown,\n  Modal,\n  Popover,\n  Scrollspy,\n  Tab,\n  Tooltip\n}\n"],"names":["Util","$","transition","MAX_UID","toType","obj","toString","call","match","toLowerCase","getSpecialTransitionEndEvent","end","event","target","is","handleObj","handler","apply","arguments","undefined","transitionEndTest","window","QUnit","transitionEndEmulator","duration","called","one","TRANSITION_END","triggerTransitionEnd","setTransitionEndSupport","fn","emulateTransitionEnd","supportsTransitionEnd","special","escapeId","selector","escapeSelector","substr","replace","prefix","Math","random","document","getElementById","element","getAttribute","charAt","$selector","find","length","error","offsetHeight","trigger","Boolean","nodeType","componentName","config","configTypes","property","Object","prototype","hasOwnProperty","expectedTypes","value","valueType","isElement","RegExp","test","Error","toUpperCase","Alert","NAME","VERSION","DATA_KEY","EVENT_KEY","DATA_API_KEY","JQUERY_NO_CONFLICT","TRANSITION_DURATION","Selector","Event","ClassName","_element","close","rootElement","_getRootElement","customEvent","_triggerCloseEvent","isDefaultPrevented","_removeElement","dispose","removeData","getSelectorFromElement","parent","closest","ALERT","closeEvent","CLOSE","removeClass","SHOW","hasClass","FADE","_destroyElement","detach","CLOSED","remove","_jQueryInterface","each","$element","data","_handleDismiss","alertInstance","preventDefault","on","CLICK_DATA_API","DISMISS","Constructor","noConflict","Button","toggle","triggerChangeEvent","addAriaPressed","DATA_TOGGLE","input","INPUT","type","checked","ACTIVE","activeElement","hasAttribute","classList","contains","focus","setAttribute","toggleClass","DATA_TOGGLE_CARROT","button","BUTTON","FOCUS_BLUR_DATA_API","FOCUS","Carousel","ARROW_LEFT_KEYCODE","ARROW_RIGHT_KEYCODE","TOUCHEVENT_COMPAT_WAIT","Default","DefaultType","Direction","_items","_interval","_activeElement","_isPaused","_isSliding","touchTimeout","_config","_getConfig","_indicatorsElement","INDICATORS","_addEventListeners","next","_slide","NEXT","nextWhenVisible","hidden","css","prev","PREV","pause","NEXT_PREV","cycle","interval","setInterval","visibilityState","bind","to","index","ACTIVE_ITEM","activeIndex","_getItemIndex","SLID","direction","off","typeCheckConfig","keyboard","KEYDOWN","_keydown","MOUSEENTER","MOUSELEAVE","documentElement","TOUCHEND","setTimeout","tagName","which","makeArray","ITEM","indexOf","_getItemByDirection","isNextDirection","isPrevDirection","lastItemIndex","isGoingToWrap","wrap","delta","itemIndex","_triggerSlideEvent","relatedTarget","eventDirectionName","targetIndex","fromIndex","slideEvent","SLIDE","_setActiveIndicatorElement","nextIndicator","children","addClass","activeElementIndex","nextElement","nextElementIndex","isCycling","directionalClassName","orderClassName","LEFT","RIGHT","slidEvent","reflow","action","slide","_dataApiClickHandler","CAROUSEL","slideIndex","DATA_SLIDE","LOAD_DATA_API","DATA_RIDE","$carousel","Collapse","Dimension","_isTransitioning","_triggerArray","id","tabToggles","i","elem","filter","push","_parent","_getParent","_addAriaAndCollapsedClass","hide","show","actives","activesData","ACTIVES","startEvent","dimension","_getDimension","COLLAPSE","COLLAPSING","style","COLLAPSED","attr","setTransitioning","complete","SHOWN","capitalizedDimension","slice","scrollSize","HIDE","getBoundingClientRect","$elem","HIDDEN","isTransitioning","hasWidth","WIDTH","HEIGHT","jquery","_getTargetFromElement","triggerArray","isOpen","$this","currentTarget","$trigger","$target","_extends","Dropdown","ESCAPE_KEYCODE","SPACE_KEYCODE","TAB_KEYCODE","ARROW_UP_KEYCODE","ARROW_DOWN_KEYCODE","RIGHT_MOUSE_BUTTON_WHICH","REGEXP_KEYDOWN","AttachmentMap","_popper","_menu","_getMenuElement","_inNavbar","_detectNavbar","disabled","DISABLED","_getParentFromElement","isActive","_clearMenus","showEvent","Popper","DROPUP","MENULEFT","MENURIGHT","boundary","POSITION_STATIC","_getPopperConfig","NAVBAR_NAV","noop","destroy","update","scheduleUpdate","CLICK","stopPropagation","constructor","MENU","_getPlacement","$parentDropdown","placement","BOTTOM","TOP","TOPEND","DROPRIGHT","DROPLEFT","BOTTOMEND","offsetConf","offset","offsets","popperConfig","flip","toggles","context","dropdownMenu","hideEvent","parentNode","_dataApiKeydownHandler","items","VISIBLE_ITEMS","get","KEYDOWN_DATA_API","KEYUP_DATA_API","FORM_CHILD","e","Modal","BACKDROP_TRANSITION_DURATION","_dialog","DIALOG","_backdrop","_isShown","_isBodyOverflowing","_ignoreBackdropClick","_originalBodyPadding","_scrollbarWidth","_checkScrollbar","_setScrollbar","_adjustDialog","body","OPEN","_setEscapeEvent","_setResizeEvent","CLICK_DISMISS","DATA_DISMISS","MOUSEDOWN_DISMISS","MOUSEUP_DISMISS","_showBackdrop","_showElement","FOCUSIN","_hideModal","handleUpdate","Node","ELEMENT_NODE","appendChild","display","removeAttribute","scrollTop","_enforceFocus","shownEvent","transitionComplete","has","KEYDOWN_DISMISS","RESIZE","_resetAdjustments","_resetScrollbar","_removeBackdrop","callback","animate","backdrop","doAnimate","createElement","className","BACKDROP","appendTo","callbackRemove","isModalOverflowing","scrollHeight","clientHeight","paddingLeft","paddingRight","rect","left","right","innerWidth","_getScrollbarWidth","FIXED_CONTENT","actualPadding","calculatedPadding","parseFloat","STICKY_CONTENT","actualMargin","marginRight","calculatedMargin","NAVBAR_TOGGLER","padding","margin","scrollDiv","SCROLLBAR_MEASURER","scrollbarWidth","width","clientWidth","removeChild","Tooltip","CLASS_PREFIX","BSCLS_PREFIX_REGEX","HoverState","Trigger","_isEnabled","_timeout","_hoverState","_activeTrigger","tip","_setListeners","enable","disable","toggleEnabled","dataKey","_getDelegateConfig","click","_isWithActiveTrigger","_enter","_leave","getTipElement","isWithContent","isInTheDom","ownerDocument","tipId","getUID","setContent","animation","attachment","_getAttachment","addAttachmentClass","container","INSERTED","fallbackPlacement","ARROW","originalPlacement","_handlePopperPlacementChange","_fixTransition","prevHoverState","OUT","_TRANSITION_DURATION","_cleanTipClass","HOVER","getTitle","template","$tip","setElementContent","TOOLTIP_INNER","content","html","empty","append","text","title","triggers","split","forEach","MANUAL","eventIn","eventOut","FOCUSOUT","_fixTitle","titleType","delay","key","tabClass","join","initConfigAnimation","Popover","_getContent","TITLE","CONTENT","ScrollSpy","OffsetMethod","_scrollElement","_selector","NAV_LINKS","LIST_ITEMS","DROPDOWN_ITEMS","_offsets","_targets","_activeTarget","_scrollHeight","SCROLL","_process","refresh","autoMethod","POSITION","OFFSET","offsetMethod","method","offsetBase","_getScrollTop","_getScrollHeight","targets","map","targetSelector","targetBCR","height","top","item","sort","a","b","pageYOffset","max","_getOffsetHeight","innerHeight","maxScroll","_activate","_clear","isActiveTarget","queries","$link","DROPDOWN_ITEM","DROPDOWN","DROPDOWN_TOGGLE","parents","NAV_LIST_GROUP","NAV_ITEMS","ACTIVATE","scrollSpys","DATA_SPY","$spy","Tab","previous","listElement","itemSelector","nodeName","ACTIVE_UL","hiddenEvent","activeElements","active","_transitionComplete","dropdownChild","DROPDOWN_ACTIVE_CHILD","DROPDOWN_MENU","dropdownElement","version","minMajor","ltMajor","minMinor","minPatch","maxMajor"],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"bootstrap.bundle.js","sources":["../../rollupPluginBabelHelpers","../../js/src/util.js","../../js/src/alert.js","../../js/src/button.js","../../js/src/carousel.js","../../js/src/collapse.js","../../node_modules/popper.js/dist/esm/popper.js","../../js/src/dropdown.js","../../js/src/modal.js","../../js/src/tooltip.js","../../js/src/popover.js","../../js/src/scrollspy.js","../../js/src/tab.js","../../js/src/index.js"],"sourcesContent":["export { _createClass as createClass, _extends as extends, _inheritsLoose as inheritsLoose };\n\nfunction _defineProperties(target, props) {\n  for (var i = 0; i < props.length; i++) {\n    var descriptor = props[i];\n    descriptor.enumerable = descriptor.enumerable || false;\n    descriptor.configurable = true;\n    if (\"value\" in descriptor) descriptor.writable = true;\n    Object.defineProperty(target, descriptor.key, descriptor);\n  }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n  if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n  if (staticProps) _defineProperties(Constructor, staticProps);\n  return Constructor;\n}\n\nfunction _extends() {\n  _extends = Object.assign || function (target) {\n    for (var i = 1; i < arguments.length; i++) {\n      var source = arguments[i];\n\n      for (var key in source) {\n        if (Object.prototype.hasOwnProperty.call(source, key)) {\n          target[key] = source[key];\n        }\n      }\n    }\n\n    return target;\n  };\n\n  return _extends.apply(this, arguments);\n}\n\nfunction _inheritsLoose(subClass, superClass) {\n  subClass.prototype = Object.create(superClass.prototype);\n  subClass.prototype.constructor = subClass;\n  subClass.__proto__ = superClass;\n}","import $ from 'jquery'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-beta.3): util.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Util = (($) => {\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Private TransitionEnd Helpers\n   * ------------------------------------------------------------------------\n   */\n\n  let transition = false\n\n  const MAX_UID = 1000000\n\n  // shoutout AngusCroll (https://goo.gl/pxwQGp)\n  function toType(obj) {\n    return {}.toString.call(obj).match(/\\s([a-zA-Z]+)/)[1].toLowerCase()\n  }\n\n  function getSpecialTransitionEndEvent() {\n    return {\n      bindType: transition.end,\n      delegateType: transition.end,\n      handle(event) {\n        if ($(event.target).is(this)) {\n          return event.handleObj.handler.apply(this, arguments) // eslint-disable-line prefer-rest-params\n        }\n        return undefined // eslint-disable-line no-undefined\n      }\n    }\n  }\n\n  function transitionEndTest() {\n    if (window.QUnit) {\n      return false\n    }\n\n    return {\n      end: 'transitionend'\n    }\n  }\n\n  function transitionEndEmulator(duration) {\n    let called = false\n\n    $(this).one(Util.TRANSITION_END, () => {\n      called = true\n    })\n\n    setTimeout(() => {\n      if (!called) {\n        Util.triggerTransitionEnd(this)\n      }\n    }, duration)\n\n    return this\n  }\n\n  function setTransitionEndSupport() {\n    transition = transitionEndTest()\n\n    $.fn.emulateTransitionEnd = transitionEndEmulator\n\n    if (Util.supportsTransitionEnd()) {\n      $.event.special[Util.TRANSITION_END] = getSpecialTransitionEndEvent()\n    }\n  }\n\n  function escapeId(selector) {\n    // we escape IDs in case of special selectors (selector = '#myId:something')\n    // $.escapeSelector does not exist in jQuery < 3\n    selector = typeof $.escapeSelector === 'function' ? $.escapeSelector(selector).substr(1) :\n      selector.replace(/(:|\\.|\\[|\\]|,|=|@)/g, '\\\\$1')\n\n    return selector\n  }\n\n  /**\n   * --------------------------------------------------------------------------\n   * Public Util Api\n   * --------------------------------------------------------------------------\n   */\n\n  const Util = {\n\n    TRANSITION_END: 'bsTransitionEnd',\n\n    getUID(prefix) {\n      do {\n        // eslint-disable-next-line no-bitwise\n        prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n      } while (document.getElementById(prefix))\n      return prefix\n    },\n\n    getSelectorFromElement(element) {\n      let selector = element.getAttribute('data-target')\n      if (!selector || selector === '#') {\n        selector = element.getAttribute('href') || ''\n      }\n\n      // if it's an ID\n      if (selector.charAt(0) === '#') {\n        selector = escapeId(selector)\n      }\n\n      try {\n        const $selector = $(document).find(selector)\n        return $selector.length > 0 ? selector : null\n      } catch (error) {\n        return null\n      }\n    },\n\n    reflow(element) {\n      return element.offsetHeight\n    },\n\n    triggerTransitionEnd(element) {\n      $(element).trigger(transition.end)\n    },\n\n    supportsTransitionEnd() {\n      return Boolean(transition)\n    },\n\n    isElement(obj) {\n      return (obj[0] || obj).nodeType\n    },\n\n    typeCheckConfig(componentName, config, configTypes) {\n      for (const property in configTypes) {\n        if (Object.prototype.hasOwnProperty.call(configTypes, property)) {\n          const expectedTypes = configTypes[property]\n          const value         = config[property]\n          const valueType     = value && Util.isElement(value) ?\n                                'element' : toType(value)\n\n          if (!new RegExp(expectedTypes).test(valueType)) {\n            throw new Error(\n              `${componentName.toUpperCase()}: ` +\n              `Option \"${property}\" provided type \"${valueType}\" ` +\n              `but expected type \"${expectedTypes}\".`)\n          }\n        }\n      }\n    }\n  }\n\n  setTransitionEndSupport()\n\n  return Util\n\n})($)\n\nexport default Util\n","import $ from 'jquery'\nimport Util from './util'\n\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-beta.3): alert.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Alert = (($) => {\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  const NAME                = 'alert'\n  const VERSION             = '4.0.0-beta.3'\n  const DATA_KEY            = 'bs.alert'\n  const EVENT_KEY           = `.${DATA_KEY}`\n  const DATA_API_KEY        = '.data-api'\n  const JQUERY_NO_CONFLICT  = $.fn[NAME]\n  const TRANSITION_DURATION = 150\n\n  const Selector = {\n    DISMISS : '[data-dismiss=\"alert\"]'\n  }\n\n  const Event = {\n    CLOSE          : `close${EVENT_KEY}`,\n    CLOSED         : `closed${EVENT_KEY}`,\n    CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n  }\n\n  const ClassName = {\n    ALERT : 'alert',\n    FADE  : 'fade',\n    SHOW  : 'show'\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  class Alert {\n\n    constructor(element) {\n      this._element = element\n    }\n\n\n    // getters\n\n    static get VERSION() {\n      return VERSION\n    }\n\n\n    // public\n\n    close(element) {\n      element = element || this._element\n\n      const rootElement = this._getRootElement(element)\n      const customEvent = this._triggerCloseEvent(rootElement)\n\n      if (customEvent.isDefaultPrevented()) {\n        return\n      }\n\n      this._removeElement(rootElement)\n    }\n\n    dispose() {\n      $.removeData(this._element, DATA_KEY)\n      this._element = null\n    }\n\n\n    // private\n\n    _getRootElement(element) {\n      const selector = Util.getSelectorFromElement(element)\n      let parent     = false\n\n      if (selector) {\n        parent = $(selector)[0]\n      }\n\n      if (!parent) {\n        parent = $(element).closest(`.${ClassName.ALERT}`)[0]\n      }\n\n      return parent\n    }\n\n    _triggerCloseEvent(element) {\n      const closeEvent = $.Event(Event.CLOSE)\n\n      $(element).trigger(closeEvent)\n      return closeEvent\n    }\n\n    _removeElement(element) {\n      $(element).removeClass(ClassName.SHOW)\n\n      if (!Util.supportsTransitionEnd() ||\n          !$(element).hasClass(ClassName.FADE)) {\n        this._destroyElement(element)\n        return\n      }\n\n      $(element)\n        .one(Util.TRANSITION_END, (event) => this._destroyElement(element, event))\n        .emulateTransitionEnd(TRANSITION_DURATION)\n    }\n\n    _destroyElement(element) {\n      $(element)\n        .detach()\n        .trigger(Event.CLOSED)\n        .remove()\n    }\n\n\n    // static\n\n    static _jQueryInterface(config) {\n      return this.each(function () {\n        const $element = $(this)\n        let data       = $element.data(DATA_KEY)\n\n        if (!data) {\n          data = new Alert(this)\n          $element.data(DATA_KEY, data)\n        }\n\n        if (config === 'close') {\n          data[config](this)\n        }\n      })\n    }\n\n    static _handleDismiss(alertInstance) {\n      return function (event) {\n        if (event) {\n          event.preventDefault()\n        }\n\n        alertInstance.close(this)\n      }\n    }\n\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n  $(document).on(\n    Event.CLICK_DATA_API,\n    Selector.DISMISS,\n    Alert._handleDismiss(new Alert())\n  )\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $.fn[NAME]             = Alert._jQueryInterface\n  $.fn[NAME].Constructor = Alert\n  $.fn[NAME].noConflict  = function () {\n    $.fn[NAME] = JQUERY_NO_CONFLICT\n    return Alert._jQueryInterface\n  }\n\n  return Alert\n\n})($)\n\nexport default Alert\n","import $ from 'jquery'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-beta.3): button.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Button = (($) => {\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  const NAME                = 'button'\n  const VERSION             = '4.0.0-beta.3'\n  const DATA_KEY            = 'bs.button'\n  const EVENT_KEY           = `.${DATA_KEY}`\n  const DATA_API_KEY        = '.data-api'\n  const JQUERY_NO_CONFLICT  = $.fn[NAME]\n\n  const ClassName = {\n    ACTIVE : 'active',\n    BUTTON : 'btn',\n    FOCUS  : 'focus'\n  }\n\n  const Selector = {\n    DATA_TOGGLE_CARROT : '[data-toggle^=\"button\"]',\n    DATA_TOGGLE        : '[data-toggle=\"buttons\"]',\n    INPUT              : 'input',\n    ACTIVE             : '.active',\n    BUTTON             : '.btn'\n  }\n\n  const Event = {\n    CLICK_DATA_API      : `click${EVENT_KEY}${DATA_API_KEY}`,\n    FOCUS_BLUR_DATA_API : `focus${EVENT_KEY}${DATA_API_KEY} `\n                        + `blur${EVENT_KEY}${DATA_API_KEY}`\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  class Button {\n\n    constructor(element) {\n      this._element = element\n    }\n\n\n    // getters\n\n    static get VERSION() {\n      return VERSION\n    }\n\n\n    // public\n\n    toggle() {\n      let triggerChangeEvent = true\n      let addAriaPressed = true\n      const rootElement      = $(this._element).closest(\n        Selector.DATA_TOGGLE\n      )[0]\n\n      if (rootElement) {\n        const input = $(this._element).find(Selector.INPUT)[0]\n\n        if (input) {\n          if (input.type === 'radio') {\n            if (input.checked &&\n              $(this._element).hasClass(ClassName.ACTIVE)) {\n              triggerChangeEvent = false\n\n            } else {\n              const activeElement = $(rootElement).find(Selector.ACTIVE)[0]\n\n              if (activeElement) {\n                $(activeElement).removeClass(ClassName.ACTIVE)\n              }\n            }\n          }\n\n          if (triggerChangeEvent) {\n            if (input.hasAttribute('disabled') ||\n              rootElement.hasAttribute('disabled') ||\n              input.classList.contains('disabled') ||\n              rootElement.classList.contains('disabled')) {\n              return\n            }\n            input.checked = !$(this._element).hasClass(ClassName.ACTIVE)\n            $(input).trigger('change')\n          }\n\n          input.focus()\n          addAriaPressed = false\n        }\n\n      }\n\n      if (addAriaPressed) {\n        this._element.setAttribute('aria-pressed',\n          !$(this._element).hasClass(ClassName.ACTIVE))\n      }\n\n      if (triggerChangeEvent) {\n        $(this._element).toggleClass(ClassName.ACTIVE)\n      }\n    }\n\n    dispose() {\n      $.removeData(this._element, DATA_KEY)\n      this._element = null\n    }\n\n\n    // static\n\n    static _jQueryInterface(config) {\n      return this.each(function () {\n        let data = $(this).data(DATA_KEY)\n\n        if (!data) {\n          data = new Button(this)\n          $(this).data(DATA_KEY, data)\n        }\n\n        if (config === 'toggle') {\n          data[config]()\n        }\n      })\n    }\n\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n  $(document)\n    .on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE_CARROT, (event) => {\n      event.preventDefault()\n\n      let button = event.target\n\n      if (!$(button).hasClass(ClassName.BUTTON)) {\n        button = $(button).closest(Selector.BUTTON)\n      }\n\n      Button._jQueryInterface.call($(button), 'toggle')\n    })\n    .on(Event.FOCUS_BLUR_DATA_API, Selector.DATA_TOGGLE_CARROT, (event) => {\n      const button = $(event.target).closest(Selector.BUTTON)[0]\n      $(button).toggleClass(ClassName.FOCUS, /^focus(in)?$/.test(event.type))\n    })\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $.fn[NAME]             = Button._jQueryInterface\n  $.fn[NAME].Constructor = Button\n  $.fn[NAME].noConflict  = function () {\n    $.fn[NAME] = JQUERY_NO_CONFLICT\n    return Button._jQueryInterface\n  }\n\n  return Button\n\n})($)\n\nexport default Button\n","import $ from 'jquery'\nimport Util from './util'\n\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-beta.3): carousel.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Carousel = (($) => {\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  const NAME                   = 'carousel'\n  const VERSION                = '4.0.0-beta.3'\n  const DATA_KEY               = 'bs.carousel'\n  const EVENT_KEY              = `.${DATA_KEY}`\n  const DATA_API_KEY           = '.data-api'\n  const JQUERY_NO_CONFLICT     = $.fn[NAME]\n  const TRANSITION_DURATION    = 600\n  const ARROW_LEFT_KEYCODE     = 37 // KeyboardEvent.which value for left arrow key\n  const ARROW_RIGHT_KEYCODE    = 39 // KeyboardEvent.which value for right arrow key\n  const TOUCHEVENT_COMPAT_WAIT = 500 // Time for mouse compat events to fire after touch\n\n  const Default = {\n    interval : 5000,\n    keyboard : true,\n    slide    : false,\n    pause    : 'hover',\n    wrap     : true\n  }\n\n  const DefaultType = {\n    interval : '(number|boolean)',\n    keyboard : 'boolean',\n    slide    : '(boolean|string)',\n    pause    : '(string|boolean)',\n    wrap     : 'boolean'\n  }\n\n  const Direction = {\n    NEXT     : 'next',\n    PREV     : 'prev',\n    LEFT     : 'left',\n    RIGHT    : 'right'\n  }\n\n  const Event = {\n    SLIDE          : `slide${EVENT_KEY}`,\n    SLID           : `slid${EVENT_KEY}`,\n    KEYDOWN        : `keydown${EVENT_KEY}`,\n    MOUSEENTER     : `mouseenter${EVENT_KEY}`,\n    MOUSELEAVE     : `mouseleave${EVENT_KEY}`,\n    TOUCHEND       : `touchend${EVENT_KEY}`,\n    LOAD_DATA_API  : `load${EVENT_KEY}${DATA_API_KEY}`,\n    CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n  }\n\n  const ClassName = {\n    CAROUSEL : 'carousel',\n    ACTIVE   : 'active',\n    SLIDE    : 'slide',\n    RIGHT    : 'carousel-item-right',\n    LEFT     : 'carousel-item-left',\n    NEXT     : 'carousel-item-next',\n    PREV     : 'carousel-item-prev',\n    ITEM     : 'carousel-item'\n  }\n\n  const Selector = {\n    ACTIVE      : '.active',\n    ACTIVE_ITEM : '.active.carousel-item',\n    ITEM        : '.carousel-item',\n    NEXT_PREV   : '.carousel-item-next, .carousel-item-prev',\n    INDICATORS  : '.carousel-indicators',\n    DATA_SLIDE  : '[data-slide], [data-slide-to]',\n    DATA_RIDE   : '[data-ride=\"carousel\"]'\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  class Carousel {\n\n    constructor(element, config) {\n      this._items             = null\n      this._interval          = null\n      this._activeElement     = null\n\n      this._isPaused          = false\n      this._isSliding         = false\n\n      this.touchTimeout       = null\n\n      this._config            = this._getConfig(config)\n      this._element           = $(element)[0]\n      this._indicatorsElement = $(this._element).find(Selector.INDICATORS)[0]\n\n      this._addEventListeners()\n    }\n\n\n    // getters\n\n    static get VERSION() {\n      return VERSION\n    }\n\n    static get Default() {\n      return Default\n    }\n\n\n    // public\n\n    next() {\n      if (!this._isSliding) {\n        this._slide(Direction.NEXT)\n      }\n    }\n\n    nextWhenVisible() {\n      // Don't call next when the page isn't visible\n      // or the carousel or its parent isn't visible\n      if (!document.hidden &&\n        ($(this._element).is(':visible') && $(this._element).css('visibility') !== 'hidden')) {\n        this.next()\n      }\n    }\n\n    prev() {\n      if (!this._isSliding) {\n        this._slide(Direction.PREV)\n      }\n    }\n\n    pause(event) {\n      if (!event) {\n        this._isPaused = true\n      }\n\n      if ($(this._element).find(Selector.NEXT_PREV)[0] &&\n        Util.supportsTransitionEnd()) {\n        Util.triggerTransitionEnd(this._element)\n        this.cycle(true)\n      }\n\n      clearInterval(this._interval)\n      this._interval = null\n    }\n\n    cycle(event) {\n      if (!event) {\n        this._isPaused = false\n      }\n\n      if (this._interval) {\n        clearInterval(this._interval)\n        this._interval = null\n      }\n\n      if (this._config.interval && !this._isPaused) {\n        this._interval = setInterval(\n          (document.visibilityState ? this.nextWhenVisible : this.next).bind(this),\n          this._config.interval\n        )\n      }\n    }\n\n    to(index) {\n      this._activeElement = $(this._element).find(Selector.ACTIVE_ITEM)[0]\n\n      const activeIndex = this._getItemIndex(this._activeElement)\n\n      if (index > this._items.length - 1 || index < 0) {\n        return\n      }\n\n      if (this._isSliding) {\n        $(this._element).one(Event.SLID, () => this.to(index))\n        return\n      }\n\n      if (activeIndex === index) {\n        this.pause()\n        this.cycle()\n        return\n      }\n\n      const direction = index > activeIndex ?\n        Direction.NEXT :\n        Direction.PREV\n\n      this._slide(direction, this._items[index])\n    }\n\n    dispose() {\n      $(this._element).off(EVENT_KEY)\n      $.removeData(this._element, DATA_KEY)\n\n      this._items             = null\n      this._config            = null\n      this._element           = null\n      this._interval          = null\n      this._isPaused          = null\n      this._isSliding         = null\n      this._activeElement     = null\n      this._indicatorsElement = null\n    }\n\n\n    // private\n\n    _getConfig(config) {\n      config = {\n        ...Default,\n        ...config\n      }\n      Util.typeCheckConfig(NAME, config, DefaultType)\n      return config\n    }\n\n    _addEventListeners() {\n      if (this._config.keyboard) {\n        $(this._element)\n          .on(Event.KEYDOWN, (event) => this._keydown(event))\n      }\n\n      if (this._config.pause === 'hover') {\n        $(this._element)\n          .on(Event.MOUSEENTER, (event) => this.pause(event))\n          .on(Event.MOUSELEAVE, (event) => this.cycle(event))\n        if ('ontouchstart' in document.documentElement) {\n          // if it's a touch-enabled device, mouseenter/leave are fired as\n          // part of the mouse compatibility events on first tap - the carousel\n          // would stop cycling until user tapped out of it;\n          // here, we listen for touchend, explicitly pause the carousel\n          // (as if it's the second time we tap on it, mouseenter compat event\n          // is NOT fired) and after a timeout (to allow for mouse compatibility\n          // events to fire) we explicitly restart cycling\n          $(this._element).on(Event.TOUCHEND, () => {\n            this.pause()\n            if (this.touchTimeout) {\n              clearTimeout(this.touchTimeout)\n            }\n            this.touchTimeout = setTimeout((event) => this.cycle(event), TOUCHEVENT_COMPAT_WAIT + this._config.interval)\n          })\n        }\n      }\n    }\n\n    _keydown(event) {\n      if (/input|textarea/i.test(event.target.tagName)) {\n        return\n      }\n\n      switch (event.which) {\n        case ARROW_LEFT_KEYCODE:\n          event.preventDefault()\n          this.prev()\n          break\n        case ARROW_RIGHT_KEYCODE:\n          event.preventDefault()\n          this.next()\n          break\n        default:\n          return\n      }\n    }\n\n    _getItemIndex(element) {\n      this._items = $.makeArray($(element).parent().find(Selector.ITEM))\n      return this._items.indexOf(element)\n    }\n\n    _getItemByDirection(direction, activeElement) {\n      const isNextDirection = direction === Direction.NEXT\n      const isPrevDirection = direction === Direction.PREV\n      const activeIndex     = this._getItemIndex(activeElement)\n      const lastItemIndex   = this._items.length - 1\n      const isGoingToWrap   = isPrevDirection && activeIndex === 0 ||\n                              isNextDirection && activeIndex === lastItemIndex\n\n      if (isGoingToWrap && !this._config.wrap) {\n        return activeElement\n      }\n\n      const delta     = direction === Direction.PREV ? -1 : 1\n      const itemIndex = (activeIndex + delta) % this._items.length\n\n      return itemIndex === -1 ?\n        this._items[this._items.length - 1] : this._items[itemIndex]\n    }\n\n\n    _triggerSlideEvent(relatedTarget, eventDirectionName) {\n      const targetIndex = this._getItemIndex(relatedTarget)\n      const fromIndex = this._getItemIndex($(this._element).find(Selector.ACTIVE_ITEM)[0])\n      const slideEvent = $.Event(Event.SLIDE, {\n        relatedTarget,\n        direction: eventDirectionName,\n        from: fromIndex,\n        to: targetIndex\n      })\n\n      $(this._element).trigger(slideEvent)\n\n      return slideEvent\n    }\n\n    _setActiveIndicatorElement(element) {\n      if (this._indicatorsElement) {\n        $(this._indicatorsElement)\n          .find(Selector.ACTIVE)\n          .removeClass(ClassName.ACTIVE)\n\n        const nextIndicator = this._indicatorsElement.children[\n          this._getItemIndex(element)\n        ]\n\n        if (nextIndicator) {\n          $(nextIndicator).addClass(ClassName.ACTIVE)\n        }\n      }\n    }\n\n    _slide(direction, element) {\n      const activeElement = $(this._element).find(Selector.ACTIVE_ITEM)[0]\n      const activeElementIndex = this._getItemIndex(activeElement)\n      const nextElement   = element || activeElement &&\n        this._getItemByDirection(direction, activeElement)\n      const nextElementIndex = this._getItemIndex(nextElement)\n      const isCycling = Boolean(this._interval)\n\n      let directionalClassName\n      let orderClassName\n      let eventDirectionName\n\n      if (direction === Direction.NEXT) {\n        directionalClassName = ClassName.LEFT\n        orderClassName = ClassName.NEXT\n        eventDirectionName = Direction.LEFT\n      } else {\n        directionalClassName = ClassName.RIGHT\n        orderClassName = ClassName.PREV\n        eventDirectionName = Direction.RIGHT\n      }\n\n      if (nextElement && $(nextElement).hasClass(ClassName.ACTIVE)) {\n        this._isSliding = false\n        return\n      }\n\n      const slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName)\n      if (slideEvent.isDefaultPrevented()) {\n        return\n      }\n\n      if (!activeElement || !nextElement) {\n        // some weirdness is happening, so we bail\n        return\n      }\n\n      this._isSliding = true\n\n      if (isCycling) {\n        this.pause()\n      }\n\n      this._setActiveIndicatorElement(nextElement)\n\n      const slidEvent = $.Event(Event.SLID, {\n        relatedTarget: nextElement,\n        direction: eventDirectionName,\n        from: activeElementIndex,\n        to: nextElementIndex\n      })\n\n      if (Util.supportsTransitionEnd() &&\n        $(this._element).hasClass(ClassName.SLIDE)) {\n\n        $(nextElement).addClass(orderClassName)\n\n        Util.reflow(nextElement)\n\n        $(activeElement).addClass(directionalClassName)\n        $(nextElement).addClass(directionalClassName)\n\n        $(activeElement)\n          .one(Util.TRANSITION_END, () => {\n            $(nextElement)\n              .removeClass(`${directionalClassName} ${orderClassName}`)\n              .addClass(ClassName.ACTIVE)\n\n            $(activeElement).removeClass(`${ClassName.ACTIVE} ${orderClassName} ${directionalClassName}`)\n\n            this._isSliding = false\n\n            setTimeout(() => $(this._element).trigger(slidEvent), 0)\n\n          })\n          .emulateTransitionEnd(TRANSITION_DURATION)\n\n      } else {\n        $(activeElement).removeClass(ClassName.ACTIVE)\n        $(nextElement).addClass(ClassName.ACTIVE)\n\n        this._isSliding = false\n        $(this._element).trigger(slidEvent)\n      }\n\n      if (isCycling) {\n        this.cycle()\n      }\n    }\n\n\n    // static\n\n    static _jQueryInterface(config) {\n      return this.each(function () {\n        let data      = $(this).data(DATA_KEY)\n        let _config = {\n          ...Default,\n          ...$(this).data()\n        }\n\n        if (typeof config === 'object') {\n          _config = {\n            ..._config,\n            ...config\n          }\n        }\n\n        const action = typeof config === 'string' ? config : _config.slide\n\n        if (!data) {\n          data = new Carousel(this, _config)\n          $(this).data(DATA_KEY, data)\n        }\n\n        if (typeof config === 'number') {\n          data.to(config)\n        } else if (typeof action === 'string') {\n          if (typeof data[action] === 'undefined') {\n            throw new Error(`No method named \"${action}\"`)\n          }\n          data[action]()\n        } else if (_config.interval) {\n          data.pause()\n          data.cycle()\n        }\n      })\n    }\n\n    static _dataApiClickHandler(event) {\n      const selector = Util.getSelectorFromElement(this)\n\n      if (!selector) {\n        return\n      }\n\n      const target = $(selector)[0]\n\n      if (!target || !$(target).hasClass(ClassName.CAROUSEL)) {\n        return\n      }\n\n      const config = {\n        ...$(target).data(),\n        ...$(this).data()\n      }\n      const slideIndex = this.getAttribute('data-slide-to')\n\n      if (slideIndex) {\n        config.interval = false\n      }\n\n      Carousel._jQueryInterface.call($(target), config)\n\n      if (slideIndex) {\n        $(target).data(DATA_KEY).to(slideIndex)\n      }\n\n      event.preventDefault()\n    }\n\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n  $(document)\n    .on(Event.CLICK_DATA_API, Selector.DATA_SLIDE, Carousel._dataApiClickHandler)\n\n  $(window).on(Event.LOAD_DATA_API, () => {\n    $(Selector.DATA_RIDE).each(function () {\n      const $carousel = $(this)\n      Carousel._jQueryInterface.call($carousel, $carousel.data())\n    })\n  })\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $.fn[NAME]             = Carousel._jQueryInterface\n  $.fn[NAME].Constructor = Carousel\n  $.fn[NAME].noConflict  = function () {\n    $.fn[NAME] = JQUERY_NO_CONFLICT\n    return Carousel._jQueryInterface\n  }\n\n  return Carousel\n\n})($)\n\nexport default Carousel\n","import $ from 'jquery'\nimport Util from './util'\n\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-beta.3): collapse.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Collapse = (($) => {\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  const NAME                = 'collapse'\n  const VERSION             = '4.0.0-beta.3'\n  const DATA_KEY            = 'bs.collapse'\n  const EVENT_KEY           = `.${DATA_KEY}`\n  const DATA_API_KEY        = '.data-api'\n  const JQUERY_NO_CONFLICT  = $.fn[NAME]\n  const TRANSITION_DURATION = 600\n\n  const Default = {\n    toggle : true,\n    parent : ''\n  }\n\n  const DefaultType = {\n    toggle : 'boolean',\n    parent : '(string|element)'\n  }\n\n  const Event = {\n    SHOW           : `show${EVENT_KEY}`,\n    SHOWN          : `shown${EVENT_KEY}`,\n    HIDE           : `hide${EVENT_KEY}`,\n    HIDDEN         : `hidden${EVENT_KEY}`,\n    CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n  }\n\n  const ClassName = {\n    SHOW       : 'show',\n    COLLAPSE   : 'collapse',\n    COLLAPSING : 'collapsing',\n    COLLAPSED  : 'collapsed'\n  }\n\n  const Dimension = {\n    WIDTH  : 'width',\n    HEIGHT : 'height'\n  }\n\n  const Selector = {\n    ACTIVES     : '.show, .collapsing',\n    DATA_TOGGLE : '[data-toggle=\"collapse\"]'\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  class Collapse {\n\n    constructor(element, config) {\n      this._isTransitioning = false\n      this._element         = element\n      this._config          = this._getConfig(config)\n      this._triggerArray    = $.makeArray($(\n        `[data-toggle=\"collapse\"][href=\"#${element.id}\"],` +\n        `[data-toggle=\"collapse\"][data-target=\"#${element.id}\"]`\n      ))\n      const tabToggles = $(Selector.DATA_TOGGLE)\n      for (let i = 0; i < tabToggles.length; i++) {\n        const elem = tabToggles[i]\n        const selector = Util.getSelectorFromElement(elem)\n        if (selector !== null && $(selector).filter(element).length > 0) {\n          this._triggerArray.push(elem)\n        }\n      }\n\n      this._parent = this._config.parent ? this._getParent() : null\n\n      if (!this._config.parent) {\n        this._addAriaAndCollapsedClass(this._element, this._triggerArray)\n      }\n\n      if (this._config.toggle) {\n        this.toggle()\n      }\n    }\n\n\n    // getters\n\n    static get VERSION() {\n      return VERSION\n    }\n\n    static get Default() {\n      return Default\n    }\n\n\n    // public\n\n    toggle() {\n      if ($(this._element).hasClass(ClassName.SHOW)) {\n        this.hide()\n      } else {\n        this.show()\n      }\n    }\n\n    show() {\n      if (this._isTransitioning ||\n        $(this._element).hasClass(ClassName.SHOW)) {\n        return\n      }\n\n      let actives\n      let activesData\n\n      if (this._parent) {\n        actives = $.makeArray(\n          $(this._parent)\n            .find(Selector.ACTIVES)\n            .filter(`[data-parent=\"${this._config.parent}\"]`)\n        )\n        if (!actives.length) {\n          actives = null\n        }\n      }\n\n      if (actives) {\n        activesData = $(actives).data(DATA_KEY)\n        if (activesData && activesData._isTransitioning) {\n          return\n        }\n      }\n\n      const startEvent = $.Event(Event.SHOW)\n      $(this._element).trigger(startEvent)\n      if (startEvent.isDefaultPrevented()) {\n        return\n      }\n\n      if (actives) {\n        Collapse._jQueryInterface.call($(actives), 'hide')\n        if (!activesData) {\n          $(actives).data(DATA_KEY, null)\n        }\n      }\n\n      const dimension = this._getDimension()\n\n      $(this._element)\n        .removeClass(ClassName.COLLAPSE)\n        .addClass(ClassName.COLLAPSING)\n\n      this._element.style[dimension] = 0\n\n      if (this._triggerArray.length) {\n        $(this._triggerArray)\n          .removeClass(ClassName.COLLAPSED)\n          .attr('aria-expanded', true)\n      }\n\n      this.setTransitioning(true)\n\n      const complete = () => {\n        $(this._element)\n          .removeClass(ClassName.COLLAPSING)\n          .addClass(ClassName.COLLAPSE)\n          .addClass(ClassName.SHOW)\n\n        this._element.style[dimension] = ''\n\n        this.setTransitioning(false)\n\n        $(this._element).trigger(Event.SHOWN)\n      }\n\n      if (!Util.supportsTransitionEnd()) {\n        complete()\n        return\n      }\n\n      const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1)\n      const scrollSize           = `scroll${capitalizedDimension}`\n\n      $(this._element)\n        .one(Util.TRANSITION_END, complete)\n        .emulateTransitionEnd(TRANSITION_DURATION)\n\n      this._element.style[dimension] = `${this._element[scrollSize]}px`\n    }\n\n    hide() {\n      if (this._isTransitioning ||\n        !$(this._element).hasClass(ClassName.SHOW)) {\n        return\n      }\n\n      const startEvent = $.Event(Event.HIDE)\n      $(this._element).trigger(startEvent)\n      if (startEvent.isDefaultPrevented()) {\n        return\n      }\n\n      const dimension       = this._getDimension()\n\n      this._element.style[dimension] = `${this._element.getBoundingClientRect()[dimension]}px`\n\n      Util.reflow(this._element)\n\n      $(this._element)\n        .addClass(ClassName.COLLAPSING)\n        .removeClass(ClassName.COLLAPSE)\n        .removeClass(ClassName.SHOW)\n\n      if (this._triggerArray.length) {\n        for (let i = 0; i < this._triggerArray.length; i++) {\n          const trigger = this._triggerArray[i]\n          const selector = Util.getSelectorFromElement(trigger)\n          if (selector !== null) {\n            const $elem = $(selector)\n            if (!$elem.hasClass(ClassName.SHOW)) {\n              $(trigger).addClass(ClassName.COLLAPSED)\n                   .attr('aria-expanded', false)\n            }\n          }\n        }\n      }\n\n      this.setTransitioning(true)\n\n      const complete = () => {\n        this.setTransitioning(false)\n        $(this._element)\n          .removeClass(ClassName.COLLAPSING)\n          .addClass(ClassName.COLLAPSE)\n          .trigger(Event.HIDDEN)\n      }\n\n      this._element.style[dimension] = ''\n\n      if (!Util.supportsTransitionEnd()) {\n        complete()\n        return\n      }\n\n      $(this._element)\n        .one(Util.TRANSITION_END, complete)\n        .emulateTransitionEnd(TRANSITION_DURATION)\n    }\n\n    setTransitioning(isTransitioning) {\n      this._isTransitioning = isTransitioning\n    }\n\n    dispose() {\n      $.removeData(this._element, DATA_KEY)\n\n      this._config          = null\n      this._parent          = null\n      this._element         = null\n      this._triggerArray    = null\n      this._isTransitioning = null\n    }\n\n\n    // private\n\n    _getConfig(config) {\n      config = {\n        ...Default,\n        ...config\n      }\n      config.toggle = Boolean(config.toggle) // coerce string values\n      Util.typeCheckConfig(NAME, config, DefaultType)\n      return config\n    }\n\n    _getDimension() {\n      const hasWidth = $(this._element).hasClass(Dimension.WIDTH)\n      return hasWidth ? Dimension.WIDTH : Dimension.HEIGHT\n    }\n\n    _getParent() {\n      let parent = null\n      if (Util.isElement(this._config.parent)) {\n        parent = this._config.parent\n\n        // it's a jQuery object\n        if (typeof this._config.parent.jquery !== 'undefined') {\n          parent = this._config.parent[0]\n        }\n      } else {\n        parent = $(this._config.parent)[0]\n      }\n\n      const selector =\n        `[data-toggle=\"collapse\"][data-parent=\"${this._config.parent}\"]`\n\n      $(parent).find(selector).each((i, element) => {\n        this._addAriaAndCollapsedClass(\n          Collapse._getTargetFromElement(element),\n          [element]\n        )\n      })\n\n      return parent\n    }\n\n    _addAriaAndCollapsedClass(element, triggerArray) {\n      if (element) {\n        const isOpen = $(element).hasClass(ClassName.SHOW)\n\n        if (triggerArray.length) {\n          $(triggerArray)\n            .toggleClass(ClassName.COLLAPSED, !isOpen)\n            .attr('aria-expanded', isOpen)\n        }\n      }\n    }\n\n\n    // static\n\n    static _getTargetFromElement(element) {\n      const selector = Util.getSelectorFromElement(element)\n      return selector ? $(selector)[0] : null\n    }\n\n    static _jQueryInterface(config) {\n      return this.each(function () {\n        const $this   = $(this)\n        let data      = $this.data(DATA_KEY)\n        const _config = {\n          ...Default,\n          ...$this.data(),\n          ...typeof config === 'object' && config\n        }\n\n        if (!data && _config.toggle && /show|hide/.test(config)) {\n          _config.toggle = false\n        }\n\n        if (!data) {\n          data = new Collapse(this, _config)\n          $this.data(DATA_KEY, data)\n        }\n\n        if (typeof config === 'string') {\n          if (typeof data[config] === 'undefined') {\n            throw new Error(`No method named \"${config}\"`)\n          }\n          data[config]()\n        }\n      })\n    }\n\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n  $(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n    // preventDefault only for <a> elements (which change the URL) not inside the collapsible element\n    if (event.currentTarget.tagName === 'A') {\n      event.preventDefault()\n    }\n\n    const $trigger = $(this)\n    const selector = Util.getSelectorFromElement(this)\n    $(selector).each(function () {\n      const $target = $(this)\n      const data    = $target.data(DATA_KEY)\n      const config  = data ? 'toggle' : $trigger.data()\n      Collapse._jQueryInterface.call($target, config)\n    })\n  })\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $.fn[NAME]             = Collapse._jQueryInterface\n  $.fn[NAME].Constructor = Collapse\n  $.fn[NAME].noConflict  = function () {\n    $.fn[NAME] = JQUERY_NO_CONFLICT\n    return Collapse._jQueryInterface\n  }\n\n  return Collapse\n\n})($)\n\nexport default Collapse\n","/**!\n * @fileOverview Kickass library to create and place poppers near their reference elements.\n * @version 1.12.9\n * @license\n * Copyright (c) 2016 Federico Zivolo and contributors\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined';\nvar longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];\nvar timeoutDuration = 0;\nfor (var i = 0; i < longerTimeoutBrowsers.length; i += 1) {\n  if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {\n    timeoutDuration = 1;\n    break;\n  }\n}\n\nfunction microtaskDebounce(fn) {\n  var called = false;\n  return function () {\n    if (called) {\n      return;\n    }\n    called = true;\n    window.Promise.resolve().then(function () {\n      called = false;\n      fn();\n    });\n  };\n}\n\nfunction taskDebounce(fn) {\n  var scheduled = false;\n  return function () {\n    if (!scheduled) {\n      scheduled = true;\n      setTimeout(function () {\n        scheduled = false;\n        fn();\n      }, timeoutDuration);\n    }\n  };\n}\n\nvar supportsMicroTasks = isBrowser && window.Promise;\n\n/**\n* Create a debounced version of a method, that's asynchronously deferred\n* but called in the minimum time possible.\n*\n* @method\n* @memberof Popper.Utils\n* @argument {Function} fn\n* @returns {Function}\n*/\nvar debounce = supportsMicroTasks ? microtaskDebounce : taskDebounce;\n\n/**\n * Check if the given variable is a function\n * @method\n * @memberof Popper.Utils\n * @argument {Any} functionToCheck - variable to check\n * @returns {Boolean} answer to: is a function?\n */\nfunction isFunction(functionToCheck) {\n  var getType = {};\n  return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';\n}\n\n/**\n * Get CSS computed property of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Eement} element\n * @argument {String} property\n */\nfunction getStyleComputedProperty(element, property) {\n  if (element.nodeType !== 1) {\n    return [];\n  }\n  // NOTE: 1 DOM access here\n  var css = getComputedStyle(element, null);\n  return property ? css[property] : css;\n}\n\n/**\n * Returns the parentNode or the host of the element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} parent\n */\nfunction getParentNode(element) {\n  if (element.nodeName === 'HTML') {\n    return element;\n  }\n  return element.parentNode || element.host;\n}\n\n/**\n * Returns the scrolling parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} scroll parent\n */\nfunction getScrollParent(element) {\n  // Return body, `getScroll` will take care to get the correct `scrollTop` from it\n  if (!element) {\n    return document.body;\n  }\n\n  switch (element.nodeName) {\n    case 'HTML':\n    case 'BODY':\n      return element.ownerDocument.body;\n    case '#document':\n      return element.body;\n  }\n\n  // Firefox want us to check `-x` and `-y` variations as well\n\n  var _getStyleComputedProp = getStyleComputedProperty(element),\n      overflow = _getStyleComputedProp.overflow,\n      overflowX = _getStyleComputedProp.overflowX,\n      overflowY = _getStyleComputedProp.overflowY;\n\n  if (/(auto|scroll)/.test(overflow + overflowY + overflowX)) {\n    return element;\n  }\n\n  return getScrollParent(getParentNode(element));\n}\n\n/**\n * Returns the offset parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} offset parent\n */\nfunction getOffsetParent(element) {\n  // NOTE: 1 DOM access here\n  var offsetParent = element && element.offsetParent;\n  var nodeName = offsetParent && offsetParent.nodeName;\n\n  if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {\n    if (element) {\n      return element.ownerDocument.documentElement;\n    }\n\n    return document.documentElement;\n  }\n\n  // .offsetParent will return the closest TD or TABLE in case\n  // no offsetParent is present, I hate this job...\n  if (['TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 && getStyleComputedProperty(offsetParent, 'position') === 'static') {\n    return getOffsetParent(offsetParent);\n  }\n\n  return offsetParent;\n}\n\nfunction isOffsetContainer(element) {\n  var nodeName = element.nodeName;\n\n  if (nodeName === 'BODY') {\n    return false;\n  }\n  return nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element;\n}\n\n/**\n * Finds the root node (document, shadowDOM root) of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} node\n * @returns {Element} root node\n */\nfunction getRoot(node) {\n  if (node.parentNode !== null) {\n    return getRoot(node.parentNode);\n  }\n\n  return node;\n}\n\n/**\n * Finds the offset parent common to the two provided nodes\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element1\n * @argument {Element} element2\n * @returns {Element} common offset parent\n */\nfunction findCommonOffsetParent(element1, element2) {\n  // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n  if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) {\n    return document.documentElement;\n  }\n\n  // Here we make sure to give as \"start\" the element that comes first in the DOM\n  var order = element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING;\n  var start = order ? element1 : element2;\n  var end = order ? element2 : element1;\n\n  // Get common ancestor container\n  var range = document.createRange();\n  range.setStart(start, 0);\n  range.setEnd(end, 0);\n  var commonAncestorContainer = range.commonAncestorContainer;\n\n  // Both nodes are inside #document\n\n  if (element1 !== commonAncestorContainer && element2 !== commonAncestorContainer || start.contains(end)) {\n    if (isOffsetContainer(commonAncestorContainer)) {\n      return commonAncestorContainer;\n    }\n\n    return getOffsetParent(commonAncestorContainer);\n  }\n\n  // one of the nodes is inside shadowDOM, find which one\n  var element1root = getRoot(element1);\n  if (element1root.host) {\n    return findCommonOffsetParent(element1root.host, element2);\n  } else {\n    return findCommonOffsetParent(element1, getRoot(element2).host);\n  }\n}\n\n/**\n * Gets the scroll value of the given element in the given side (top and left)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {String} side `top` or `left`\n * @returns {number} amount of scrolled pixels\n */\nfunction getScroll(element) {\n  var side = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'top';\n\n  var upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';\n  var nodeName = element.nodeName;\n\n  if (nodeName === 'BODY' || nodeName === 'HTML') {\n    var html = element.ownerDocument.documentElement;\n    var scrollingElement = element.ownerDocument.scrollingElement || html;\n    return scrollingElement[upperSide];\n  }\n\n  return element[upperSide];\n}\n\n/*\n * Sum or subtract the element scroll values (left and top) from a given rect object\n * @method\n * @memberof Popper.Utils\n * @param {Object} rect - Rect object you want to change\n * @param {HTMLElement} element - The element from the function reads the scroll values\n * @param {Boolean} subtract - set to true if you want to subtract the scroll values\n * @return {Object} rect - The modifier rect object\n */\nfunction includeScroll(rect, element) {\n  var subtract = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n  var scrollTop = getScroll(element, 'top');\n  var scrollLeft = getScroll(element, 'left');\n  var modifier = subtract ? -1 : 1;\n  rect.top += scrollTop * modifier;\n  rect.bottom += scrollTop * modifier;\n  rect.left += scrollLeft * modifier;\n  rect.right += scrollLeft * modifier;\n  return rect;\n}\n\n/*\n * Helper to detect borders of a given element\n * @method\n * @memberof Popper.Utils\n * @param {CSSStyleDeclaration} styles\n * Result of `getStyleComputedProperty` on the given element\n * @param {String} axis - `x` or `y`\n * @return {number} borders - The borders size of the given axis\n */\n\nfunction getBordersSize(styles, axis) {\n  var sideA = axis === 'x' ? 'Left' : 'Top';\n  var sideB = sideA === 'Left' ? 'Right' : 'Bottom';\n\n  return parseFloat(styles['border' + sideA + 'Width'], 10) + parseFloat(styles['border' + sideB + 'Width'], 10);\n}\n\n/**\n * Tells if you are running Internet Explorer 10\n * @method\n * @memberof Popper.Utils\n * @returns {Boolean} isIE10\n */\nvar isIE10 = undefined;\n\nvar isIE10$1 = function () {\n  if (isIE10 === undefined) {\n    isIE10 = navigator.appVersion.indexOf('MSIE 10') !== -1;\n  }\n  return isIE10;\n};\n\nfunction getSize(axis, body, html, computedStyle) {\n  return Math.max(body['offset' + axis], body['scroll' + axis], html['client' + axis], html['offset' + axis], html['scroll' + axis], isIE10$1() ? html['offset' + axis] + computedStyle['margin' + (axis === 'Height' ? 'Top' : 'Left')] + computedStyle['margin' + (axis === 'Height' ? 'Bottom' : 'Right')] : 0);\n}\n\nfunction getWindowSizes() {\n  var body = document.body;\n  var html = document.documentElement;\n  var computedStyle = isIE10$1() && getComputedStyle(html);\n\n  return {\n    height: getSize('Height', body, html, computedStyle),\n    width: getSize('Width', body, html, computedStyle)\n  };\n}\n\nvar classCallCheck = function (instance, Constructor) {\n  if (!(instance instanceof Constructor)) {\n    throw new TypeError(\"Cannot call a class as a function\");\n  }\n};\n\nvar createClass = function () {\n  function defineProperties(target, props) {\n    for (var i = 0; i < props.length; i++) {\n      var descriptor = props[i];\n      descriptor.enumerable = descriptor.enumerable || false;\n      descriptor.configurable = true;\n      if (\"value\" in descriptor) descriptor.writable = true;\n      Object.defineProperty(target, descriptor.key, descriptor);\n    }\n  }\n\n  return function (Constructor, protoProps, staticProps) {\n    if (protoProps) defineProperties(Constructor.prototype, protoProps);\n    if (staticProps) defineProperties(Constructor, staticProps);\n    return Constructor;\n  };\n}();\n\n\n\n\n\nvar defineProperty = function (obj, key, value) {\n  if (key in obj) {\n    Object.defineProperty(obj, key, {\n      value: value,\n      enumerable: true,\n      configurable: true,\n      writable: true\n    });\n  } else {\n    obj[key] = value;\n  }\n\n  return obj;\n};\n\nvar _extends = Object.assign || function (target) {\n  for (var i = 1; i < arguments.length; i++) {\n    var source = arguments[i];\n\n    for (var key in source) {\n      if (Object.prototype.hasOwnProperty.call(source, key)) {\n        target[key] = source[key];\n      }\n    }\n  }\n\n  return target;\n};\n\n/**\n * Given element offsets, generate an output similar to getBoundingClientRect\n * @method\n * @memberof Popper.Utils\n * @argument {Object} offsets\n * @returns {Object} ClientRect like output\n */\nfunction getClientRect(offsets) {\n  return _extends({}, offsets, {\n    right: offsets.left + offsets.width,\n    bottom: offsets.top + offsets.height\n  });\n}\n\n/**\n * Get bounding client rect of given element\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} element\n * @return {Object} client rect\n */\nfunction getBoundingClientRect(element) {\n  var rect = {};\n\n  // IE10 10 FIX: Please, don't ask, the element isn't\n  // considered in DOM in some circumstances...\n  // This isn't reproducible in IE10 compatibility mode of IE11\n  if (isIE10$1()) {\n    try {\n      rect = element.getBoundingClientRect();\n      var scrollTop = getScroll(element, 'top');\n      var scrollLeft = getScroll(element, 'left');\n      rect.top += scrollTop;\n      rect.left += scrollLeft;\n      rect.bottom += scrollTop;\n      rect.right += scrollLeft;\n    } catch (err) {}\n  } else {\n    rect = element.getBoundingClientRect();\n  }\n\n  var result = {\n    left: rect.left,\n    top: rect.top,\n    width: rect.right - rect.left,\n    height: rect.bottom - rect.top\n  };\n\n  // subtract scrollbar size from sizes\n  var sizes = element.nodeName === 'HTML' ? getWindowSizes() : {};\n  var width = sizes.width || element.clientWidth || result.right - result.left;\n  var height = sizes.height || element.clientHeight || result.bottom - result.top;\n\n  var horizScrollbar = element.offsetWidth - width;\n  var vertScrollbar = element.offsetHeight - height;\n\n  // if an hypothetical scrollbar is detected, we must be sure it's not a `border`\n  // we make this check conditional for performance reasons\n  if (horizScrollbar || vertScrollbar) {\n    var styles = getStyleComputedProperty(element);\n    horizScrollbar -= getBordersSize(styles, 'x');\n    vertScrollbar -= getBordersSize(styles, 'y');\n\n    result.width -= horizScrollbar;\n    result.height -= vertScrollbar;\n  }\n\n  return getClientRect(result);\n}\n\nfunction getOffsetRectRelativeToArbitraryNode(children, parent) {\n  var isIE10 = isIE10$1();\n  var isHTML = parent.nodeName === 'HTML';\n  var childrenRect = getBoundingClientRect(children);\n  var parentRect = getBoundingClientRect(parent);\n  var scrollParent = getScrollParent(children);\n\n  var styles = getStyleComputedProperty(parent);\n  var borderTopWidth = parseFloat(styles.borderTopWidth, 10);\n  var borderLeftWidth = parseFloat(styles.borderLeftWidth, 10);\n\n  var offsets = getClientRect({\n    top: childrenRect.top - parentRect.top - borderTopWidth,\n    left: childrenRect.left - parentRect.left - borderLeftWidth,\n    width: childrenRect.width,\n    height: childrenRect.height\n  });\n  offsets.marginTop = 0;\n  offsets.marginLeft = 0;\n\n  // Subtract margins of documentElement in case it's being used as parent\n  // we do this only on HTML because it's the only element that behaves\n  // differently when margins are applied to it. The margins are included in\n  // the box of the documentElement, in the other cases not.\n  if (!isIE10 && isHTML) {\n    var marginTop = parseFloat(styles.marginTop, 10);\n    var marginLeft = parseFloat(styles.marginLeft, 10);\n\n    offsets.top -= borderTopWidth - marginTop;\n    offsets.bottom -= borderTopWidth - marginTop;\n    offsets.left -= borderLeftWidth - marginLeft;\n    offsets.right -= borderLeftWidth - marginLeft;\n\n    // Attach marginTop and marginLeft because in some circumstances we may need them\n    offsets.marginTop = marginTop;\n    offsets.marginLeft = marginLeft;\n  }\n\n  if (isIE10 ? parent.contains(scrollParent) : parent === scrollParent && scrollParent.nodeName !== 'BODY') {\n    offsets = includeScroll(offsets, parent);\n  }\n\n  return offsets;\n}\n\nfunction getViewportOffsetRectRelativeToArtbitraryNode(element) {\n  var html = element.ownerDocument.documentElement;\n  var relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);\n  var width = Math.max(html.clientWidth, window.innerWidth || 0);\n  var height = Math.max(html.clientHeight, window.innerHeight || 0);\n\n  var scrollTop = getScroll(html);\n  var scrollLeft = getScroll(html, 'left');\n\n  var offset = {\n    top: scrollTop - relativeOffset.top + relativeOffset.marginTop,\n    left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,\n    width: width,\n    height: height\n  };\n\n  return getClientRect(offset);\n}\n\n/**\n * Check if the given element is fixed or is inside a fixed parent\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {Element} customContainer\n * @returns {Boolean} answer to \"isFixed?\"\n */\nfunction isFixed(element) {\n  var nodeName = element.nodeName;\n  if (nodeName === 'BODY' || nodeName === 'HTML') {\n    return false;\n  }\n  if (getStyleComputedProperty(element, 'position') === 'fixed') {\n    return true;\n  }\n  return isFixed(getParentNode(element));\n}\n\n/**\n * Computed the boundaries limits and return them\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} popper\n * @param {HTMLElement} reference\n * @param {number} padding\n * @param {HTMLElement} boundariesElement - Element used to define the boundaries\n * @returns {Object} Coordinates of the boundaries\n */\nfunction getBoundaries(popper, reference, padding, boundariesElement) {\n  // NOTE: 1 DOM access here\n  var boundaries = { top: 0, left: 0 };\n  var offsetParent = findCommonOffsetParent(popper, reference);\n\n  // Handle viewport case\n  if (boundariesElement === 'viewport') {\n    boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent);\n  } else {\n    // Handle other cases based on DOM element used as boundaries\n    var boundariesNode = void 0;\n    if (boundariesElement === 'scrollParent') {\n      boundariesNode = getScrollParent(getParentNode(reference));\n      if (boundariesNode.nodeName === 'BODY') {\n        boundariesNode = popper.ownerDocument.documentElement;\n      }\n    } else if (boundariesElement === 'window') {\n      boundariesNode = popper.ownerDocument.documentElement;\n    } else {\n      boundariesNode = boundariesElement;\n    }\n\n    var offsets = getOffsetRectRelativeToArbitraryNode(boundariesNode, offsetParent);\n\n    // In case of HTML, we need a different computation\n    if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {\n      var _getWindowSizes = getWindowSizes(),\n          height = _getWindowSizes.height,\n          width = _getWindowSizes.width;\n\n      boundaries.top += offsets.top - offsets.marginTop;\n      boundaries.bottom = height + offsets.top;\n      boundaries.left += offsets.left - offsets.marginLeft;\n      boundaries.right = width + offsets.left;\n    } else {\n      // for all the other DOM elements, this one is good\n      boundaries = offsets;\n    }\n  }\n\n  // Add paddings\n  boundaries.left += padding;\n  boundaries.top += padding;\n  boundaries.right -= padding;\n  boundaries.bottom -= padding;\n\n  return boundaries;\n}\n\nfunction getArea(_ref) {\n  var width = _ref.width,\n      height = _ref.height;\n\n  return width * height;\n}\n\n/**\n * Utility used to transform the `auto` placement to the placement with more\n * available space.\n * @method\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeAutoPlacement(placement, refRect, popper, reference, boundariesElement) {\n  var padding = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0;\n\n  if (placement.indexOf('auto') === -1) {\n    return placement;\n  }\n\n  var boundaries = getBoundaries(popper, reference, padding, boundariesElement);\n\n  var rects = {\n    top: {\n      width: boundaries.width,\n      height: refRect.top - boundaries.top\n    },\n    right: {\n      width: boundaries.right - refRect.right,\n      height: boundaries.height\n    },\n    bottom: {\n      width: boundaries.width,\n      height: boundaries.bottom - refRect.bottom\n    },\n    left: {\n      width: refRect.left - boundaries.left,\n      height: boundaries.height\n    }\n  };\n\n  var sortedAreas = Object.keys(rects).map(function (key) {\n    return _extends({\n      key: key\n    }, rects[key], {\n      area: getArea(rects[key])\n    });\n  }).sort(function (a, b) {\n    return b.area - a.area;\n  });\n\n  var filteredAreas = sortedAreas.filter(function (_ref2) {\n    var width = _ref2.width,\n        height = _ref2.height;\n    return width >= popper.clientWidth && height >= popper.clientHeight;\n  });\n\n  var computedPlacement = filteredAreas.length > 0 ? filteredAreas[0].key : sortedAreas[0].key;\n\n  var variation = placement.split('-')[1];\n\n  return computedPlacement + (variation ? '-' + variation : '');\n}\n\n/**\n * Get offsets to the reference element\n * @method\n * @memberof Popper.Utils\n * @param {Object} state\n * @param {Element} popper - the popper element\n * @param {Element} reference - the reference element (the popper will be relative to this)\n * @returns {Object} An object containing the offsets which will be applied to the popper\n */\nfunction getReferenceOffsets(state, popper, reference) {\n  var commonOffsetParent = findCommonOffsetParent(popper, reference);\n  return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent);\n}\n\n/**\n * Get the outer sizes of the given element (offset size + margins)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Object} object containing width and height properties\n */\nfunction getOuterSizes(element) {\n  var styles = getComputedStyle(element);\n  var x = parseFloat(styles.marginTop) + parseFloat(styles.marginBottom);\n  var y = parseFloat(styles.marginLeft) + parseFloat(styles.marginRight);\n  var result = {\n    width: element.offsetWidth + y,\n    height: element.offsetHeight + x\n  };\n  return result;\n}\n\n/**\n * Get the opposite placement of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement\n * @returns {String} flipped placement\n */\nfunction getOppositePlacement(placement) {\n  var hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };\n  return placement.replace(/left|right|bottom|top/g, function (matched) {\n    return hash[matched];\n  });\n}\n\n/**\n * Get offsets to the popper\n * @method\n * @memberof Popper.Utils\n * @param {Object} position - CSS position the Popper will get applied\n * @param {HTMLElement} popper - the popper element\n * @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this)\n * @param {String} placement - one of the valid placement options\n * @returns {Object} popperOffsets - An object containing the offsets which will be applied to the popper\n */\nfunction getPopperOffsets(popper, referenceOffsets, placement) {\n  placement = placement.split('-')[0];\n\n  // Get popper node sizes\n  var popperRect = getOuterSizes(popper);\n\n  // Add position, width and height to our offsets object\n  var popperOffsets = {\n    width: popperRect.width,\n    height: popperRect.height\n  };\n\n  // depending by the popper placement we have to compute its offsets slightly differently\n  var isHoriz = ['right', 'left'].indexOf(placement) !== -1;\n  var mainSide = isHoriz ? 'top' : 'left';\n  var secondarySide = isHoriz ? 'left' : 'top';\n  var measurement = isHoriz ? 'height' : 'width';\n  var secondaryMeasurement = !isHoriz ? 'height' : 'width';\n\n  popperOffsets[mainSide] = referenceOffsets[mainSide] + referenceOffsets[measurement] / 2 - popperRect[measurement] / 2;\n  if (placement === secondarySide) {\n    popperOffsets[secondarySide] = referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];\n  } else {\n    popperOffsets[secondarySide] = referenceOffsets[getOppositePlacement(secondarySide)];\n  }\n\n  return popperOffsets;\n}\n\n/**\n * Mimics the `find` method of Array\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction find(arr, check) {\n  // use native find if supported\n  if (Array.prototype.find) {\n    return arr.find(check);\n  }\n\n  // use `filter` to obtain the same behavior of `find`\n  return arr.filter(check)[0];\n}\n\n/**\n * Return the index of the matching object\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction findIndex(arr, prop, value) {\n  // use native findIndex if supported\n  if (Array.prototype.findIndex) {\n    return arr.findIndex(function (cur) {\n      return cur[prop] === value;\n    });\n  }\n\n  // use `find` + `indexOf` if `findIndex` isn't supported\n  var match = find(arr, function (obj) {\n    return obj[prop] === value;\n  });\n  return arr.indexOf(match);\n}\n\n/**\n * Loop trough the list of modifiers and run them in order,\n * each of them will then edit the data object.\n * @method\n * @memberof Popper.Utils\n * @param {dataObject} data\n * @param {Array} modifiers\n * @param {String} ends - Optional modifier name used as stopper\n * @returns {dataObject}\n */\nfunction runModifiers(modifiers, data, ends) {\n  var modifiersToRun = ends === undefined ? modifiers : modifiers.slice(0, findIndex(modifiers, 'name', ends));\n\n  modifiersToRun.forEach(function (modifier) {\n    if (modifier['function']) {\n      // eslint-disable-line dot-notation\n      console.warn('`modifier.function` is deprecated, use `modifier.fn`!');\n    }\n    var fn = modifier['function'] || modifier.fn; // eslint-disable-line dot-notation\n    if (modifier.enabled && isFunction(fn)) {\n      // Add properties to offsets to make them a complete clientRect object\n      // we do this before each modifier to make sure the previous one doesn't\n      // mess with these values\n      data.offsets.popper = getClientRect(data.offsets.popper);\n      data.offsets.reference = getClientRect(data.offsets.reference);\n\n      data = fn(data, modifier);\n    }\n  });\n\n  return data;\n}\n\n/**\n * Updates the position of the popper, computing the new offsets and applying\n * the new style.<br />\n * Prefer `scheduleUpdate` over `update` because of performance reasons.\n * @method\n * @memberof Popper\n */\nfunction update() {\n  // if popper is destroyed, don't perform any further update\n  if (this.state.isDestroyed) {\n    return;\n  }\n\n  var data = {\n    instance: this,\n    styles: {},\n    arrowStyles: {},\n    attributes: {},\n    flipped: false,\n    offsets: {}\n  };\n\n  // compute reference element offsets\n  data.offsets.reference = getReferenceOffsets(this.state, this.popper, this.reference);\n\n  // compute auto placement, store placement inside the data object,\n  // modifiers will be able to edit `placement` if needed\n  // and refer to originalPlacement to know the original value\n  data.placement = computeAutoPlacement(this.options.placement, data.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding);\n\n  // store the computed placement inside `originalPlacement`\n  data.originalPlacement = data.placement;\n\n  // compute the popper offsets\n  data.offsets.popper = getPopperOffsets(this.popper, data.offsets.reference, data.placement);\n  data.offsets.popper.position = 'absolute';\n\n  // run the modifiers\n  data = runModifiers(this.modifiers, data);\n\n  // the first `update` will call `onCreate` callback\n  // the other ones will call `onUpdate` callback\n  if (!this.state.isCreated) {\n    this.state.isCreated = true;\n    this.options.onCreate(data);\n  } else {\n    this.options.onUpdate(data);\n  }\n}\n\n/**\n * Helper used to know if the given modifier is enabled.\n * @method\n * @memberof Popper.Utils\n * @returns {Boolean}\n */\nfunction isModifierEnabled(modifiers, modifierName) {\n  return modifiers.some(function (_ref) {\n    var name = _ref.name,\n        enabled = _ref.enabled;\n    return enabled && name === modifierName;\n  });\n}\n\n/**\n * Get the prefixed supported property name\n * @method\n * @memberof Popper.Utils\n * @argument {String} property (camelCase)\n * @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix)\n */\nfunction getSupportedPropertyName(property) {\n  var prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];\n  var upperProp = property.charAt(0).toUpperCase() + property.slice(1);\n\n  for (var i = 0; i < prefixes.length - 1; i++) {\n    var prefix = prefixes[i];\n    var toCheck = prefix ? '' + prefix + upperProp : property;\n    if (typeof document.body.style[toCheck] !== 'undefined') {\n      return toCheck;\n    }\n  }\n  return null;\n}\n\n/**\n * Destroy the popper\n * @method\n * @memberof Popper\n */\nfunction destroy() {\n  this.state.isDestroyed = true;\n\n  // touch DOM only if `applyStyle` modifier is enabled\n  if (isModifierEnabled(this.modifiers, 'applyStyle')) {\n    this.popper.removeAttribute('x-placement');\n    this.popper.style.left = '';\n    this.popper.style.position = '';\n    this.popper.style.top = '';\n    this.popper.style[getSupportedPropertyName('transform')] = '';\n  }\n\n  this.disableEventListeners();\n\n  // remove the popper if user explicity asked for the deletion on destroy\n  // do not use `remove` because IE11 doesn't support it\n  if (this.options.removeOnDestroy) {\n    this.popper.parentNode.removeChild(this.popper);\n  }\n  return this;\n}\n\n/**\n * Get the window associated with the element\n * @argument {Element} element\n * @returns {Window}\n */\nfunction getWindow(element) {\n  var ownerDocument = element.ownerDocument;\n  return ownerDocument ? ownerDocument.defaultView : window;\n}\n\nfunction attachToScrollParents(scrollParent, event, callback, scrollParents) {\n  var isBody = scrollParent.nodeName === 'BODY';\n  var target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;\n  target.addEventListener(event, callback, { passive: true });\n\n  if (!isBody) {\n    attachToScrollParents(getScrollParent(target.parentNode), event, callback, scrollParents);\n  }\n  scrollParents.push(target);\n}\n\n/**\n * Setup needed event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction setupEventListeners(reference, options, state, updateBound) {\n  // Resize event listener on window\n  state.updateBound = updateBound;\n  getWindow(reference).addEventListener('resize', state.updateBound, { passive: true });\n\n  // Scroll event listener on scroll parents\n  var scrollElement = getScrollParent(reference);\n  attachToScrollParents(scrollElement, 'scroll', state.updateBound, state.scrollParents);\n  state.scrollElement = scrollElement;\n  state.eventsEnabled = true;\n\n  return state;\n}\n\n/**\n * It will add resize/scroll events and start recalculating\n * position of the popper element when they are triggered.\n * @method\n * @memberof Popper\n */\nfunction enableEventListeners() {\n  if (!this.state.eventsEnabled) {\n    this.state = setupEventListeners(this.reference, this.options, this.state, this.scheduleUpdate);\n  }\n}\n\n/**\n * Remove event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction removeEventListeners(reference, state) {\n  // Remove resize event listener on window\n  getWindow(reference).removeEventListener('resize', state.updateBound);\n\n  // Remove scroll event listener on scroll parents\n  state.scrollParents.forEach(function (target) {\n    target.removeEventListener('scroll', state.updateBound);\n  });\n\n  // Reset state\n  state.updateBound = null;\n  state.scrollParents = [];\n  state.scrollElement = null;\n  state.eventsEnabled = false;\n  return state;\n}\n\n/**\n * It will remove resize/scroll events and won't recalculate popper position\n * when they are triggered. It also won't trigger onUpdate callback anymore,\n * unless you call `update` method manually.\n * @method\n * @memberof Popper\n */\nfunction disableEventListeners() {\n  if (this.state.eventsEnabled) {\n    cancelAnimationFrame(this.scheduleUpdate);\n    this.state = removeEventListeners(this.reference, this.state);\n  }\n}\n\n/**\n * Tells if a given input is a number\n * @method\n * @memberof Popper.Utils\n * @param {*} input to check\n * @return {Boolean}\n */\nfunction isNumeric(n) {\n  return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);\n}\n\n/**\n * Set the style to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the style to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setStyles(element, styles) {\n  Object.keys(styles).forEach(function (prop) {\n    var unit = '';\n    // add unit if the value is numeric and is one of the following\n    if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 && isNumeric(styles[prop])) {\n      unit = 'px';\n    }\n    element.style[prop] = styles[prop] + unit;\n  });\n}\n\n/**\n * Set the attributes to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the attributes to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setAttributes(element, attributes) {\n  Object.keys(attributes).forEach(function (prop) {\n    var value = attributes[prop];\n    if (value !== false) {\n      element.setAttribute(prop, attributes[prop]);\n    } else {\n      element.removeAttribute(prop);\n    }\n  });\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} data.styles - List of style properties - values to apply to popper element\n * @argument {Object} data.attributes - List of attribute properties - values to apply to popper element\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The same data object\n */\nfunction applyStyle(data) {\n  // any property present in `data.styles` will be applied to the popper,\n  // in this way we can make the 3rd party modifiers add custom styles to it\n  // Be aware, modifiers could override the properties defined in the previous\n  // lines of this modifier!\n  setStyles(data.instance.popper, data.styles);\n\n  // any property present in `data.attributes` will be applied to the popper,\n  // they will be set as HTML attributes of the element\n  setAttributes(data.instance.popper, data.attributes);\n\n  // if arrowElement is defined and arrowStyles has some properties\n  if (data.arrowElement && Object.keys(data.arrowStyles).length) {\n    setStyles(data.arrowElement, data.arrowStyles);\n  }\n\n  return data;\n}\n\n/**\n * Set the x-placement attribute before everything else because it could be used\n * to add margins to the popper margins needs to be calculated to get the\n * correct popper offsets.\n * @method\n * @memberof Popper.modifiers\n * @param {HTMLElement} reference - The reference element used to position the popper\n * @param {HTMLElement} popper - The HTML element used as popper.\n * @param {Object} options - Popper.js options\n */\nfunction applyStyleOnLoad(reference, popper, options, modifierOptions, state) {\n  // compute reference element offsets\n  var referenceOffsets = getReferenceOffsets(state, popper, reference);\n\n  // compute auto placement, store placement inside the data object,\n  // modifiers will be able to edit `placement` if needed\n  // and refer to originalPlacement to know the original value\n  var placement = computeAutoPlacement(options.placement, referenceOffsets, popper, reference, options.modifiers.flip.boundariesElement, options.modifiers.flip.padding);\n\n  popper.setAttribute('x-placement', placement);\n\n  // Apply `position` to popper before anything else because\n  // without the position applied we can't guarantee correct computations\n  setStyles(popper, { position: 'absolute' });\n\n  return options;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeStyle(data, options) {\n  var x = options.x,\n      y = options.y;\n  var popper = data.offsets.popper;\n\n  // Remove this legacy support in Popper.js v2\n\n  var legacyGpuAccelerationOption = find(data.instance.modifiers, function (modifier) {\n    return modifier.name === 'applyStyle';\n  }).gpuAcceleration;\n  if (legacyGpuAccelerationOption !== undefined) {\n    console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!');\n  }\n  var gpuAcceleration = legacyGpuAccelerationOption !== undefined ? legacyGpuAccelerationOption : options.gpuAcceleration;\n\n  var offsetParent = getOffsetParent(data.instance.popper);\n  var offsetParentRect = getBoundingClientRect(offsetParent);\n\n  // Styles\n  var styles = {\n    position: popper.position\n  };\n\n  // floor sides to avoid blurry text\n  var offsets = {\n    left: Math.floor(popper.left),\n    top: Math.floor(popper.top),\n    bottom: Math.floor(popper.bottom),\n    right: Math.floor(popper.right)\n  };\n\n  var sideA = x === 'bottom' ? 'top' : 'bottom';\n  var sideB = y === 'right' ? 'left' : 'right';\n\n  // if gpuAcceleration is set to `true` and transform is supported,\n  //  we use `translate3d` to apply the position to the popper we\n  // automatically use the supported prefixed version if needed\n  var prefixedProperty = getSupportedPropertyName('transform');\n\n  // now, let's make a step back and look at this code closely (wtf?)\n  // If the content of the popper grows once it's been positioned, it\n  // may happen that the popper gets misplaced because of the new content\n  // overflowing its reference element\n  // To avoid this problem, we provide two options (x and y), which allow\n  // the consumer to define the offset origin.\n  // If we position a popper on top of a reference element, we can set\n  // `x` to `top` to make the popper grow towards its top instead of\n  // its bottom.\n  var left = void 0,\n      top = void 0;\n  if (sideA === 'bottom') {\n    top = -offsetParentRect.height + offsets.bottom;\n  } else {\n    top = offsets.top;\n  }\n  if (sideB === 'right') {\n    left = -offsetParentRect.width + offsets.right;\n  } else {\n    left = offsets.left;\n  }\n  if (gpuAcceleration && prefixedProperty) {\n    styles[prefixedProperty] = 'translate3d(' + left + 'px, ' + top + 'px, 0)';\n    styles[sideA] = 0;\n    styles[sideB] = 0;\n    styles.willChange = 'transform';\n  } else {\n    // othwerise, we use the standard `top`, `left`, `bottom` and `right` properties\n    var invertTop = sideA === 'bottom' ? -1 : 1;\n    var invertLeft = sideB === 'right' ? -1 : 1;\n    styles[sideA] = top * invertTop;\n    styles[sideB] = left * invertLeft;\n    styles.willChange = sideA + ', ' + sideB;\n  }\n\n  // Attributes\n  var attributes = {\n    'x-placement': data.placement\n  };\n\n  // Update `data` attributes, styles and arrowStyles\n  data.attributes = _extends({}, attributes, data.attributes);\n  data.styles = _extends({}, styles, data.styles);\n  data.arrowStyles = _extends({}, data.offsets.arrow, data.arrowStyles);\n\n  return data;\n}\n\n/**\n * Helper used to know if the given modifier depends from another one.<br />\n * It checks if the needed modifier is listed and enabled.\n * @method\n * @memberof Popper.Utils\n * @param {Array} modifiers - list of modifiers\n * @param {String} requestingName - name of requesting modifier\n * @param {String} requestedName - name of requested modifier\n * @returns {Boolean}\n */\nfunction isModifierRequired(modifiers, requestingName, requestedName) {\n  var requesting = find(modifiers, function (_ref) {\n    var name = _ref.name;\n    return name === requestingName;\n  });\n\n  var isRequired = !!requesting && modifiers.some(function (modifier) {\n    return modifier.name === requestedName && modifier.enabled && modifier.order < requesting.order;\n  });\n\n  if (!isRequired) {\n    var _requesting = '`' + requestingName + '`';\n    var requested = '`' + requestedName + '`';\n    console.warn(requested + ' modifier is required by ' + _requesting + ' modifier in order to work, be sure to include it before ' + _requesting + '!');\n  }\n  return isRequired;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction arrow(data, options) {\n  var _data$offsets$arrow;\n\n  // arrow depends on keepTogether in order to work\n  if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) {\n    return data;\n  }\n\n  var arrowElement = options.element;\n\n  // if arrowElement is a string, suppose it's a CSS selector\n  if (typeof arrowElement === 'string') {\n    arrowElement = data.instance.popper.querySelector(arrowElement);\n\n    // if arrowElement is not found, don't run the modifier\n    if (!arrowElement) {\n      return data;\n    }\n  } else {\n    // if the arrowElement isn't a query selector we must check that the\n    // provided DOM node is child of its popper node\n    if (!data.instance.popper.contains(arrowElement)) {\n      console.warn('WARNING: `arrow.element` must be child of its popper element!');\n      return data;\n    }\n  }\n\n  var placement = data.placement.split('-')[0];\n  var _data$offsets = data.offsets,\n      popper = _data$offsets.popper,\n      reference = _data$offsets.reference;\n\n  var isVertical = ['left', 'right'].indexOf(placement) !== -1;\n\n  var len = isVertical ? 'height' : 'width';\n  var sideCapitalized = isVertical ? 'Top' : 'Left';\n  var side = sideCapitalized.toLowerCase();\n  var altSide = isVertical ? 'left' : 'top';\n  var opSide = isVertical ? 'bottom' : 'right';\n  var arrowElementSize = getOuterSizes(arrowElement)[len];\n\n  //\n  // extends keepTogether behavior making sure the popper and its\n  // reference have enough pixels in conjuction\n  //\n\n  // top/left side\n  if (reference[opSide] - arrowElementSize < popper[side]) {\n    data.offsets.popper[side] -= popper[side] - (reference[opSide] - arrowElementSize);\n  }\n  // bottom/right side\n  if (reference[side] + arrowElementSize > popper[opSide]) {\n    data.offsets.popper[side] += reference[side] + arrowElementSize - popper[opSide];\n  }\n  data.offsets.popper = getClientRect(data.offsets.popper);\n\n  // compute center of the popper\n  var center = reference[side] + reference[len] / 2 - arrowElementSize / 2;\n\n  // Compute the sideValue using the updated popper offsets\n  // take popper margin in account because we don't have this info available\n  var css = getStyleComputedProperty(data.instance.popper);\n  var popperMarginSide = parseFloat(css['margin' + sideCapitalized], 10);\n  var popperBorderSide = parseFloat(css['border' + sideCapitalized + 'Width'], 10);\n  var sideValue = center - data.offsets.popper[side] - popperMarginSide - popperBorderSide;\n\n  // prevent arrowElement from being placed not contiguously to its popper\n  sideValue = Math.max(Math.min(popper[len] - arrowElementSize, sideValue), 0);\n\n  data.arrowElement = arrowElement;\n  data.offsets.arrow = (_data$offsets$arrow = {}, defineProperty(_data$offsets$arrow, side, Math.round(sideValue)), defineProperty(_data$offsets$arrow, altSide, ''), _data$offsets$arrow);\n\n  return data;\n}\n\n/**\n * Get the opposite placement variation of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement variation\n * @returns {String} flipped placement variation\n */\nfunction getOppositeVariation(variation) {\n  if (variation === 'end') {\n    return 'start';\n  } else if (variation === 'start') {\n    return 'end';\n  }\n  return variation;\n}\n\n/**\n * List of accepted placements to use as values of the `placement` option.<br />\n * Valid placements are:\n * - `auto`\n * - `top`\n * - `right`\n * - `bottom`\n * - `left`\n *\n * Each placement can have a variation from this list:\n * - `-start`\n * - `-end`\n *\n * Variations are interpreted easily if you think of them as the left to right\n * written languages. Horizontally (`top` and `bottom`), `start` is left and `end`\n * is right.<br />\n * Vertically (`left` and `right`), `start` is top and `end` is bottom.\n *\n * Some valid examples are:\n * - `top-end` (on top of reference, right aligned)\n * - `right-start` (on right of reference, top aligned)\n * - `bottom` (on bottom, centered)\n * - `auto-right` (on the side with more space available, alignment depends by placement)\n *\n * @static\n * @type {Array}\n * @enum {String}\n * @readonly\n * @method placements\n * @memberof Popper\n */\nvar placements = ['auto-start', 'auto', 'auto-end', 'top-start', 'top', 'top-end', 'right-start', 'right', 'right-end', 'bottom-end', 'bottom', 'bottom-start', 'left-end', 'left', 'left-start'];\n\n// Get rid of `auto` `auto-start` and `auto-end`\nvar validPlacements = placements.slice(3);\n\n/**\n * Given an initial placement, returns all the subsequent placements\n * clockwise (or counter-clockwise).\n *\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement - A valid placement (it accepts variations)\n * @argument {Boolean} counter - Set to true to walk the placements counterclockwise\n * @returns {Array} placements including their variations\n */\nfunction clockwise(placement) {\n  var counter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n  var index = validPlacements.indexOf(placement);\n  var arr = validPlacements.slice(index + 1).concat(validPlacements.slice(0, index));\n  return counter ? arr.reverse() : arr;\n}\n\nvar BEHAVIORS = {\n  FLIP: 'flip',\n  CLOCKWISE: 'clockwise',\n  COUNTERCLOCKWISE: 'counterclockwise'\n};\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction flip(data, options) {\n  // if `inner` modifier is enabled, we can't use the `flip` modifier\n  if (isModifierEnabled(data.instance.modifiers, 'inner')) {\n    return data;\n  }\n\n  if (data.flipped && data.placement === data.originalPlacement) {\n    // seems like flip is trying to loop, probably there's not enough space on any of the flippable sides\n    return data;\n  }\n\n  var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, options.boundariesElement);\n\n  var placement = data.placement.split('-')[0];\n  var placementOpposite = getOppositePlacement(placement);\n  var variation = data.placement.split('-')[1] || '';\n\n  var flipOrder = [];\n\n  switch (options.behavior) {\n    case BEHAVIORS.FLIP:\n      flipOrder = [placement, placementOpposite];\n      break;\n    case BEHAVIORS.CLOCKWISE:\n      flipOrder = clockwise(placement);\n      break;\n    case BEHAVIORS.COUNTERCLOCKWISE:\n      flipOrder = clockwise(placement, true);\n      break;\n    default:\n      flipOrder = options.behavior;\n  }\n\n  flipOrder.forEach(function (step, index) {\n    if (placement !== step || flipOrder.length === index + 1) {\n      return data;\n    }\n\n    placement = data.placement.split('-')[0];\n    placementOpposite = getOppositePlacement(placement);\n\n    var popperOffsets = data.offsets.popper;\n    var refOffsets = data.offsets.reference;\n\n    // using floor because the reference offsets may contain decimals we are not going to consider here\n    var floor = Math.floor;\n    var overlapsRef = placement === 'left' && floor(popperOffsets.right) > floor(refOffsets.left) || placement === 'right' && floor(popperOffsets.left) < floor(refOffsets.right) || placement === 'top' && floor(popperOffsets.bottom) > floor(refOffsets.top) || placement === 'bottom' && floor(popperOffsets.top) < floor(refOffsets.bottom);\n\n    var overflowsLeft = floor(popperOffsets.left) < floor(boundaries.left);\n    var overflowsRight = floor(popperOffsets.right) > floor(boundaries.right);\n    var overflowsTop = floor(popperOffsets.top) < floor(boundaries.top);\n    var overflowsBottom = floor(popperOffsets.bottom) > floor(boundaries.bottom);\n\n    var overflowsBoundaries = placement === 'left' && overflowsLeft || placement === 'right' && overflowsRight || placement === 'top' && overflowsTop || placement === 'bottom' && overflowsBottom;\n\n    // flip the variation if required\n    var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n    var flippedVariation = !!options.flipVariations && (isVertical && variation === 'start' && overflowsLeft || isVertical && variation === 'end' && overflowsRight || !isVertical && variation === 'start' && overflowsTop || !isVertical && variation === 'end' && overflowsBottom);\n\n    if (overlapsRef || overflowsBoundaries || flippedVariation) {\n      // this boolean to detect any flip loop\n      data.flipped = true;\n\n      if (overlapsRef || overflowsBoundaries) {\n        placement = flipOrder[index + 1];\n      }\n\n      if (flippedVariation) {\n        variation = getOppositeVariation(variation);\n      }\n\n      data.placement = placement + (variation ? '-' + variation : '');\n\n      // this object contains `position`, we want to preserve it along with\n      // any additional property we may add in the future\n      data.offsets.popper = _extends({}, data.offsets.popper, getPopperOffsets(data.instance.popper, data.offsets.reference, data.placement));\n\n      data = runModifiers(data.instance.modifiers, data, 'flip');\n    }\n  });\n  return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction keepTogether(data) {\n  var _data$offsets = data.offsets,\n      popper = _data$offsets.popper,\n      reference = _data$offsets.reference;\n\n  var placement = data.placement.split('-')[0];\n  var floor = Math.floor;\n  var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n  var side = isVertical ? 'right' : 'bottom';\n  var opSide = isVertical ? 'left' : 'top';\n  var measurement = isVertical ? 'width' : 'height';\n\n  if (popper[side] < floor(reference[opSide])) {\n    data.offsets.popper[opSide] = floor(reference[opSide]) - popper[measurement];\n  }\n  if (popper[opSide] > floor(reference[side])) {\n    data.offsets.popper[opSide] = floor(reference[side]);\n  }\n\n  return data;\n}\n\n/**\n * Converts a string containing value + unit into a px value number\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} str - Value + unit string\n * @argument {String} measurement - `height` or `width`\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @returns {Number|String}\n * Value in pixels, or original string if no values were extracted\n */\nfunction toValue(str, measurement, popperOffsets, referenceOffsets) {\n  // separate value from unit\n  var split = str.match(/((?:\\-|\\+)?\\d*\\.?\\d*)(.*)/);\n  var value = +split[1];\n  var unit = split[2];\n\n  // If it's not a number it's an operator, I guess\n  if (!value) {\n    return str;\n  }\n\n  if (unit.indexOf('%') === 0) {\n    var element = void 0;\n    switch (unit) {\n      case '%p':\n        element = popperOffsets;\n        break;\n      case '%':\n      case '%r':\n      default:\n        element = referenceOffsets;\n    }\n\n    var rect = getClientRect(element);\n    return rect[measurement] / 100 * value;\n  } else if (unit === 'vh' || unit === 'vw') {\n    // if is a vh or vw, we calculate the size based on the viewport\n    var size = void 0;\n    if (unit === 'vh') {\n      size = Math.max(document.documentElement.clientHeight, window.innerHeight || 0);\n    } else {\n      size = Math.max(document.documentElement.clientWidth, window.innerWidth || 0);\n    }\n    return size / 100 * value;\n  } else {\n    // if is an explicit pixel unit, we get rid of the unit and keep the value\n    // if is an implicit unit, it's px, and we return just the value\n    return value;\n  }\n}\n\n/**\n * Parse an `offset` string to extrapolate `x` and `y` numeric offsets.\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} offset\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @argument {String} basePlacement\n * @returns {Array} a two cells array with x and y offsets in numbers\n */\nfunction parseOffset(offset, popperOffsets, referenceOffsets, basePlacement) {\n  var offsets = [0, 0];\n\n  // Use height if placement is left or right and index is 0 otherwise use width\n  // in this way the first offset will use an axis and the second one\n  // will use the other one\n  var useHeight = ['right', 'left'].indexOf(basePlacement) !== -1;\n\n  // Split the offset string to obtain a list of values and operands\n  // The regex addresses values with the plus or minus sign in front (+10, -20, etc)\n  var fragments = offset.split(/(\\+|\\-)/).map(function (frag) {\n    return frag.trim();\n  });\n\n  // Detect if the offset string contains a pair of values or a single one\n  // they could be separated by comma or space\n  var divider = fragments.indexOf(find(fragments, function (frag) {\n    return frag.search(/,|\\s/) !== -1;\n  }));\n\n  if (fragments[divider] && fragments[divider].indexOf(',') === -1) {\n    console.warn('Offsets separated by white space(s) are deprecated, use a comma (,) instead.');\n  }\n\n  // If divider is found, we divide the list of values and operands to divide\n  // them by ofset X and Y.\n  var splitRegex = /\\s*,\\s*|\\s+/;\n  var ops = divider !== -1 ? [fragments.slice(0, divider).concat([fragments[divider].split(splitRegex)[0]]), [fragments[divider].split(splitRegex)[1]].concat(fragments.slice(divider + 1))] : [fragments];\n\n  // Convert the values with units to absolute pixels to allow our computations\n  ops = ops.map(function (op, index) {\n    // Most of the units rely on the orientation of the popper\n    var measurement = (index === 1 ? !useHeight : useHeight) ? 'height' : 'width';\n    var mergeWithPrevious = false;\n    return op\n    // This aggregates any `+` or `-` sign that aren't considered operators\n    // e.g.: 10 + +5 => [10, +, +5]\n    .reduce(function (a, b) {\n      if (a[a.length - 1] === '' && ['+', '-'].indexOf(b) !== -1) {\n        a[a.length - 1] = b;\n        mergeWithPrevious = true;\n        return a;\n      } else if (mergeWithPrevious) {\n        a[a.length - 1] += b;\n        mergeWithPrevious = false;\n        return a;\n      } else {\n        return a.concat(b);\n      }\n    }, [])\n    // Here we convert the string values into number values (in px)\n    .map(function (str) {\n      return toValue(str, measurement, popperOffsets, referenceOffsets);\n    });\n  });\n\n  // Loop trough the offsets arrays and execute the operations\n  ops.forEach(function (op, index) {\n    op.forEach(function (frag, index2) {\n      if (isNumeric(frag)) {\n        offsets[index] += frag * (op[index2 - 1] === '-' ? -1 : 1);\n      }\n    });\n  });\n  return offsets;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @argument {Number|String} options.offset=0\n * The offset value as described in the modifier description\n * @returns {Object} The data object, properly modified\n */\nfunction offset(data, _ref) {\n  var offset = _ref.offset;\n  var placement = data.placement,\n      _data$offsets = data.offsets,\n      popper = _data$offsets.popper,\n      reference = _data$offsets.reference;\n\n  var basePlacement = placement.split('-')[0];\n\n  var offsets = void 0;\n  if (isNumeric(+offset)) {\n    offsets = [+offset, 0];\n  } else {\n    offsets = parseOffset(offset, popper, reference, basePlacement);\n  }\n\n  if (basePlacement === 'left') {\n    popper.top += offsets[0];\n    popper.left -= offsets[1];\n  } else if (basePlacement === 'right') {\n    popper.top += offsets[0];\n    popper.left += offsets[1];\n  } else if (basePlacement === 'top') {\n    popper.left += offsets[0];\n    popper.top -= offsets[1];\n  } else if (basePlacement === 'bottom') {\n    popper.left += offsets[0];\n    popper.top += offsets[1];\n  }\n\n  data.popper = popper;\n  return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction preventOverflow(data, options) {\n  var boundariesElement = options.boundariesElement || getOffsetParent(data.instance.popper);\n\n  // If offsetParent is the reference element, we really want to\n  // go one step up and use the next offsetParent as reference to\n  // avoid to make this modifier completely useless and look like broken\n  if (data.instance.reference === boundariesElement) {\n    boundariesElement = getOffsetParent(boundariesElement);\n  }\n\n  var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, boundariesElement);\n  options.boundaries = boundaries;\n\n  var order = options.priority;\n  var popper = data.offsets.popper;\n\n  var check = {\n    primary: function primary(placement) {\n      var value = popper[placement];\n      if (popper[placement] < boundaries[placement] && !options.escapeWithReference) {\n        value = Math.max(popper[placement], boundaries[placement]);\n      }\n      return defineProperty({}, placement, value);\n    },\n    secondary: function secondary(placement) {\n      var mainSide = placement === 'right' ? 'left' : 'top';\n      var value = popper[mainSide];\n      if (popper[placement] > boundaries[placement] && !options.escapeWithReference) {\n        value = Math.min(popper[mainSide], boundaries[placement] - (placement === 'right' ? popper.width : popper.height));\n      }\n      return defineProperty({}, mainSide, value);\n    }\n  };\n\n  order.forEach(function (placement) {\n    var side = ['left', 'top'].indexOf(placement) !== -1 ? 'primary' : 'secondary';\n    popper = _extends({}, popper, check[side](placement));\n  });\n\n  data.offsets.popper = popper;\n\n  return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction shift(data) {\n  var placement = data.placement;\n  var basePlacement = placement.split('-')[0];\n  var shiftvariation = placement.split('-')[1];\n\n  // if shift shiftvariation is specified, run the modifier\n  if (shiftvariation) {\n    var _data$offsets = data.offsets,\n        reference = _data$offsets.reference,\n        popper = _data$offsets.popper;\n\n    var isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1;\n    var side = isVertical ? 'left' : 'top';\n    var measurement = isVertical ? 'width' : 'height';\n\n    var shiftOffsets = {\n      start: defineProperty({}, side, reference[side]),\n      end: defineProperty({}, side, reference[side] + reference[measurement] - popper[measurement])\n    };\n\n    data.offsets.popper = _extends({}, popper, shiftOffsets[shiftvariation]);\n  }\n\n  return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction hide(data) {\n  if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) {\n    return data;\n  }\n\n  var refRect = data.offsets.reference;\n  var bound = find(data.instance.modifiers, function (modifier) {\n    return modifier.name === 'preventOverflow';\n  }).boundaries;\n\n  if (refRect.bottom < bound.top || refRect.left > bound.right || refRect.top > bound.bottom || refRect.right < bound.left) {\n    // Avoid unnecessary DOM access if visibility hasn't changed\n    if (data.hide === true) {\n      return data;\n    }\n\n    data.hide = true;\n    data.attributes['x-out-of-boundaries'] = '';\n  } else {\n    // Avoid unnecessary DOM access if visibility hasn't changed\n    if (data.hide === false) {\n      return data;\n    }\n\n    data.hide = false;\n    data.attributes['x-out-of-boundaries'] = false;\n  }\n\n  return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction inner(data) {\n  var placement = data.placement;\n  var basePlacement = placement.split('-')[0];\n  var _data$offsets = data.offsets,\n      popper = _data$offsets.popper,\n      reference = _data$offsets.reference;\n\n  var isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1;\n\n  var subtractLength = ['top', 'left'].indexOf(basePlacement) === -1;\n\n  popper[isHoriz ? 'left' : 'top'] = reference[basePlacement] - (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0);\n\n  data.placement = getOppositePlacement(placement);\n  data.offsets.popper = getClientRect(popper);\n\n  return data;\n}\n\n/**\n * Modifier function, each modifier can have a function of this type assigned\n * to its `fn` property.<br />\n * These functions will be called on each update, this means that you must\n * make sure they are performant enough to avoid performance bottlenecks.\n *\n * @function ModifierFn\n * @argument {dataObject} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {dataObject} The data object, properly modified\n */\n\n/**\n * Modifiers are plugins used to alter the behavior of your poppers.<br />\n * Popper.js uses a set of 9 modifiers to provide all the basic functionalities\n * needed by the library.\n *\n * Usually you don't want to override the `order`, `fn` and `onLoad` props.\n * All the other properties are configurations that could be tweaked.\n * @namespace modifiers\n */\nvar modifiers = {\n  /**\n   * Modifier used to shift the popper on the start or end of its reference\n   * element.<br />\n   * It will read the variation of the `placement` property.<br />\n   * It can be one either `-end` or `-start`.\n   * @memberof modifiers\n   * @inner\n   */\n  shift: {\n    /** @prop {number} order=100 - Index used to define the order of execution */\n    order: 100,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: shift\n  },\n\n  /**\n   * The `offset` modifier can shift your popper on both its axis.\n   *\n   * It accepts the following units:\n   * - `px` or unitless, interpreted as pixels\n   * - `%` or `%r`, percentage relative to the length of the reference element\n   * - `%p`, percentage relative to the length of the popper element\n   * - `vw`, CSS viewport width unit\n   * - `vh`, CSS viewport height unit\n   *\n   * For length is intended the main axis relative to the placement of the popper.<br />\n   * This means that if the placement is `top` or `bottom`, the length will be the\n   * `width`. In case of `left` or `right`, it will be the height.\n   *\n   * You can provide a single value (as `Number` or `String`), or a pair of values\n   * as `String` divided by a comma or one (or more) white spaces.<br />\n   * The latter is a deprecated method because it leads to confusion and will be\n   * removed in v2.<br />\n   * Additionally, it accepts additions and subtractions between different units.\n   * Note that multiplications and divisions aren't supported.\n   *\n   * Valid examples are:\n   * ```\n   * 10\n   * '10%'\n   * '10, 10'\n   * '10%, 10'\n   * '10 + 10%'\n   * '10 - 5vh + 3%'\n   * '-10px + 5vh, 5px - 6%'\n   * ```\n   * > **NB**: If you desire to apply offsets to your poppers in a way that may make them overlap\n   * > with their reference element, unfortunately, you will have to disable the `flip` modifier.\n   * > More on this [reading this issue](https://github.com/FezVrasta/popper.js/issues/373)\n   *\n   * @memberof modifiers\n   * @inner\n   */\n  offset: {\n    /** @prop {number} order=200 - Index used to define the order of execution */\n    order: 200,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: offset,\n    /** @prop {Number|String} offset=0\n     * The offset value as described in the modifier description\n     */\n    offset: 0\n  },\n\n  /**\n   * Modifier used to prevent the popper from being positioned outside the boundary.\n   *\n   * An scenario exists where the reference itself is not within the boundaries.<br />\n   * We can say it has \"escaped the boundaries\" â€” or just \"escaped\".<br />\n   * In this case we need to decide whether the popper should either:\n   *\n   * - detach from the reference and remain \"trapped\" in the boundaries, or\n   * - if it should ignore the boundary and \"escape with its reference\"\n   *\n   * When `escapeWithReference` is set to`true` and reference is completely\n   * outside its boundaries, the popper will overflow (or completely leave)\n   * the boundaries in order to remain attached to the edge of the reference.\n   *\n   * @memberof modifiers\n   * @inner\n   */\n  preventOverflow: {\n    /** @prop {number} order=300 - Index used to define the order of execution */\n    order: 300,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: preventOverflow,\n    /**\n     * @prop {Array} [priority=['left','right','top','bottom']]\n     * Popper will try to prevent overflow following these priorities by default,\n     * then, it could overflow on the left and on top of the `boundariesElement`\n     */\n    priority: ['left', 'right', 'top', 'bottom'],\n    /**\n     * @prop {number} padding=5\n     * Amount of pixel used to define a minimum distance between the boundaries\n     * and the popper this makes sure the popper has always a little padding\n     * between the edges of its container\n     */\n    padding: 5,\n    /**\n     * @prop {String|HTMLElement} boundariesElement='scrollParent'\n     * Boundaries used by the modifier, can be `scrollParent`, `window`,\n     * `viewport` or any DOM element.\n     */\n    boundariesElement: 'scrollParent'\n  },\n\n  /**\n   * Modifier used to make sure the reference and its popper stay near eachothers\n   * without leaving any gap between the two. Expecially useful when the arrow is\n   * enabled and you want to assure it to point to its reference element.\n   * It cares only about the first axis, you can still have poppers with margin\n   * between the popper and its reference element.\n   * @memberof modifiers\n   * @inner\n   */\n  keepTogether: {\n    /** @prop {number} order=400 - Index used to define the order of execution */\n    order: 400,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: keepTogether\n  },\n\n  /**\n   * This modifier is used to move the `arrowElement` of the popper to make\n   * sure it is positioned between the reference element and its popper element.\n   * It will read the outer size of the `arrowElement` node to detect how many\n   * pixels of conjuction are needed.\n   *\n   * It has no effect if no `arrowElement` is provided.\n   * @memberof modifiers\n   * @inner\n   */\n  arrow: {\n    /** @prop {number} order=500 - Index used to define the order of execution */\n    order: 500,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: arrow,\n    /** @prop {String|HTMLElement} element='[x-arrow]' - Selector or node used as arrow */\n    element: '[x-arrow]'\n  },\n\n  /**\n   * Modifier used to flip the popper's placement when it starts to overlap its\n   * reference element.\n   *\n   * Requires the `preventOverflow` modifier before it in order to work.\n   *\n   * **NOTE:** this modifier will interrupt the current update cycle and will\n   * restart it if it detects the need to flip the placement.\n   * @memberof modifiers\n   * @inner\n   */\n  flip: {\n    /** @prop {number} order=600 - Index used to define the order of execution */\n    order: 600,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: flip,\n    /**\n     * @prop {String|Array} behavior='flip'\n     * The behavior used to change the popper's placement. It can be one of\n     * `flip`, `clockwise`, `counterclockwise` or an array with a list of valid\n     * placements (with optional variations).\n     */\n    behavior: 'flip',\n    /**\n     * @prop {number} padding=5\n     * The popper will flip if it hits the edges of the `boundariesElement`\n     */\n    padding: 5,\n    /**\n     * @prop {String|HTMLElement} boundariesElement='viewport'\n     * The element which will define the boundaries of the popper position,\n     * the popper will never be placed outside of the defined boundaries\n     * (except if keepTogether is enabled)\n     */\n    boundariesElement: 'viewport'\n  },\n\n  /**\n   * Modifier used to make the popper flow toward the inner of the reference element.\n   * By default, when this modifier is disabled, the popper will be placed outside\n   * the reference element.\n   * @memberof modifiers\n   * @inner\n   */\n  inner: {\n    /** @prop {number} order=700 - Index used to define the order of execution */\n    order: 700,\n    /** @prop {Boolean} enabled=false - Whether the modifier is enabled or not */\n    enabled: false,\n    /** @prop {ModifierFn} */\n    fn: inner\n  },\n\n  /**\n   * Modifier used to hide the popper when its reference element is outside of the\n   * popper boundaries. It will set a `x-out-of-boundaries` attribute which can\n   * be used to hide with a CSS selector the popper when its reference is\n   * out of boundaries.\n   *\n   * Requires the `preventOverflow` modifier before it in order to work.\n   * @memberof modifiers\n   * @inner\n   */\n  hide: {\n    /** @prop {number} order=800 - Index used to define the order of execution */\n    order: 800,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: hide\n  },\n\n  /**\n   * Computes the style that will be applied to the popper element to gets\n   * properly positioned.\n   *\n   * Note that this modifier will not touch the DOM, it just prepares the styles\n   * so that `applyStyle` modifier can apply it. This separation is useful\n   * in case you need to replace `applyStyle` with a custom implementation.\n   *\n   * This modifier has `850` as `order` value to maintain backward compatibility\n   * with previous versions of Popper.js. Expect the modifiers ordering method\n   * to change in future major versions of the library.\n   *\n   * @memberof modifiers\n   * @inner\n   */\n  computeStyle: {\n    /** @prop {number} order=850 - Index used to define the order of execution */\n    order: 850,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: computeStyle,\n    /**\n     * @prop {Boolean} gpuAcceleration=true\n     * If true, it uses the CSS 3d transformation to position the popper.\n     * Otherwise, it will use the `top` and `left` properties.\n     */\n    gpuAcceleration: true,\n    /**\n     * @prop {string} [x='bottom']\n     * Where to anchor the X axis (`bottom` or `top`). AKA X offset origin.\n     * Change this if your popper should grow in a direction different from `bottom`\n     */\n    x: 'bottom',\n    /**\n     * @prop {string} [x='left']\n     * Where to anchor the Y axis (`left` or `right`). AKA Y offset origin.\n     * Change this if your popper should grow in a direction different from `right`\n     */\n    y: 'right'\n  },\n\n  /**\n   * Applies the computed styles to the popper element.\n   *\n   * All the DOM manipulations are limited to this modifier. This is useful in case\n   * you want to integrate Popper.js inside a framework or view library and you\n   * want to delegate all the DOM manipulations to it.\n   *\n   * Note that if you disable this modifier, you must make sure the popper element\n   * has its position set to `absolute` before Popper.js can do its work!\n   *\n   * Just disable this modifier and define you own to achieve the desired effect.\n   *\n   * @memberof modifiers\n   * @inner\n   */\n  applyStyle: {\n    /** @prop {number} order=900 - Index used to define the order of execution */\n    order: 900,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: applyStyle,\n    /** @prop {Function} */\n    onLoad: applyStyleOnLoad,\n    /**\n     * @deprecated since version 1.10.0, the property moved to `computeStyle` modifier\n     * @prop {Boolean} gpuAcceleration=true\n     * If true, it uses the CSS 3d transformation to position the popper.\n     * Otherwise, it will use the `top` and `left` properties.\n     */\n    gpuAcceleration: undefined\n  }\n};\n\n/**\n * The `dataObject` is an object containing all the informations used by Popper.js\n * this object get passed to modifiers and to the `onCreate` and `onUpdate` callbacks.\n * @name dataObject\n * @property {Object} data.instance The Popper.js instance\n * @property {String} data.placement Placement applied to popper\n * @property {String} data.originalPlacement Placement originally defined on init\n * @property {Boolean} data.flipped True if popper has been flipped by flip modifier\n * @property {Boolean} data.hide True if the reference element is out of boundaries, useful to know when to hide the popper.\n * @property {HTMLElement} data.arrowElement Node used as arrow by arrow modifier\n * @property {Object} data.styles Any CSS property defined here will be applied to the popper, it expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.arrowStyles Any CSS property defined here will be applied to the popper arrow, it expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.boundaries Offsets of the popper boundaries\n * @property {Object} data.offsets The measurements of popper, reference and arrow elements.\n * @property {Object} data.offsets.popper `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.reference `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.arrow] `top` and `left` offsets, only one of them will be different from 0\n */\n\n/**\n * Default options provided to Popper.js constructor.<br />\n * These can be overriden using the `options` argument of Popper.js.<br />\n * To override an option, simply pass as 3rd argument an object with the same\n * structure of this object, example:\n * ```\n * new Popper(ref, pop, {\n *   modifiers: {\n *     preventOverflow: { enabled: false }\n *   }\n * })\n * ```\n * @type {Object}\n * @static\n * @memberof Popper\n */\nvar Defaults = {\n  /**\n   * Popper's placement\n   * @prop {Popper.placements} placement='bottom'\n   */\n  placement: 'bottom',\n\n  /**\n   * Whether events (resize, scroll) are initially enabled\n   * @prop {Boolean} eventsEnabled=true\n   */\n  eventsEnabled: true,\n\n  /**\n   * Set to true if you want to automatically remove the popper when\n   * you call the `destroy` method.\n   * @prop {Boolean} removeOnDestroy=false\n   */\n  removeOnDestroy: false,\n\n  /**\n   * Callback called when the popper is created.<br />\n   * By default, is set to no-op.<br />\n   * Access Popper.js instance with `data.instance`.\n   * @prop {onCreate}\n   */\n  onCreate: function onCreate() {},\n\n  /**\n   * Callback called when the popper is updated, this callback is not called\n   * on the initialization/creation of the popper, but only on subsequent\n   * updates.<br />\n   * By default, is set to no-op.<br />\n   * Access Popper.js instance with `data.instance`.\n   * @prop {onUpdate}\n   */\n  onUpdate: function onUpdate() {},\n\n  /**\n   * List of modifiers used to modify the offsets before they are applied to the popper.\n   * They provide most of the functionalities of Popper.js\n   * @prop {modifiers}\n   */\n  modifiers: modifiers\n};\n\n/**\n * @callback onCreate\n * @param {dataObject} data\n */\n\n/**\n * @callback onUpdate\n * @param {dataObject} data\n */\n\n// Utils\n// Methods\nvar Popper = function () {\n  /**\n   * Create a new Popper.js instance\n   * @class Popper\n   * @param {HTMLElement|referenceObject} reference - The reference element used to position the popper\n   * @param {HTMLElement} popper - The HTML element used as popper.\n   * @param {Object} options - Your custom options to override the ones defined in [Defaults](#defaults)\n   * @return {Object} instance - The generated Popper.js instance\n   */\n  function Popper(reference, popper) {\n    var _this = this;\n\n    var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n    classCallCheck(this, Popper);\n\n    this.scheduleUpdate = function () {\n      return requestAnimationFrame(_this.update);\n    };\n\n    // make update() debounced, so that it only runs at most once-per-tick\n    this.update = debounce(this.update.bind(this));\n\n    // with {} we create a new object with the options inside it\n    this.options = _extends({}, Popper.Defaults, options);\n\n    // init state\n    this.state = {\n      isDestroyed: false,\n      isCreated: false,\n      scrollParents: []\n    };\n\n    // get reference and popper elements (allow jQuery wrappers)\n    this.reference = reference && reference.jquery ? reference[0] : reference;\n    this.popper = popper && popper.jquery ? popper[0] : popper;\n\n    // Deep merge modifiers options\n    this.options.modifiers = {};\n    Object.keys(_extends({}, Popper.Defaults.modifiers, options.modifiers)).forEach(function (name) {\n      _this.options.modifiers[name] = _extends({}, Popper.Defaults.modifiers[name] || {}, options.modifiers ? options.modifiers[name] : {});\n    });\n\n    // Refactoring modifiers' list (Object => Array)\n    this.modifiers = Object.keys(this.options.modifiers).map(function (name) {\n      return _extends({\n        name: name\n      }, _this.options.modifiers[name]);\n    })\n    // sort the modifiers by order\n    .sort(function (a, b) {\n      return a.order - b.order;\n    });\n\n    // modifiers have the ability to execute arbitrary code when Popper.js get inited\n    // such code is executed in the same order of its modifier\n    // they could add new properties to their options configuration\n    // BE AWARE: don't add options to `options.modifiers.name` but to `modifierOptions`!\n    this.modifiers.forEach(function (modifierOptions) {\n      if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) {\n        modifierOptions.onLoad(_this.reference, _this.popper, _this.options, modifierOptions, _this.state);\n      }\n    });\n\n    // fire the first update to position the popper in the right place\n    this.update();\n\n    var eventsEnabled = this.options.eventsEnabled;\n    if (eventsEnabled) {\n      // setup event listeners, they will take care of update the position in specific situations\n      this.enableEventListeners();\n    }\n\n    this.state.eventsEnabled = eventsEnabled;\n  }\n\n  // We can't use class properties because they don't get listed in the\n  // class prototype and break stuff like Sinon stubs\n\n\n  createClass(Popper, [{\n    key: 'update',\n    value: function update$$1() {\n      return update.call(this);\n    }\n  }, {\n    key: 'destroy',\n    value: function destroy$$1() {\n      return destroy.call(this);\n    }\n  }, {\n    key: 'enableEventListeners',\n    value: function enableEventListeners$$1() {\n      return enableEventListeners.call(this);\n    }\n  }, {\n    key: 'disableEventListeners',\n    value: function disableEventListeners$$1() {\n      return disableEventListeners.call(this);\n    }\n\n    /**\n     * Schedule an update, it will run on the next UI update available\n     * @method scheduleUpdate\n     * @memberof Popper\n     */\n\n\n    /**\n     * Collection of utilities useful when writing custom modifiers.\n     * Starting from version 1.7, this method is available only if you\n     * include `popper-utils.js` before `popper.js`.\n     *\n     * **DEPRECATION**: This way to access PopperUtils is deprecated\n     * and will be removed in v2! Use the PopperUtils module directly instead.\n     * Due to the high instability of the methods contained in Utils, we can't\n     * guarantee them to follow semver. Use them at your own risk!\n     * @static\n     * @private\n     * @type {Object}\n     * @deprecated since version 1.8\n     * @member Utils\n     * @memberof Popper\n     */\n\n  }]);\n  return Popper;\n}();\n\n/**\n * The `referenceObject` is an object that provides an interface compatible with Popper.js\n * and lets you use it as replacement of a real DOM node.<br />\n * You can use this method to position a popper relatively to a set of coordinates\n * in case you don't have a DOM node to use as reference.\n *\n * ```\n * new Popper(referenceObject, popperNode);\n * ```\n *\n * NB: This feature isn't supported in Internet Explorer 10\n * @name referenceObject\n * @property {Function} data.getBoundingClientRect\n * A function that returns a set of coordinates compatible with the native `getBoundingClientRect` method.\n * @property {number} data.clientWidth\n * An ES6 getter that will return the width of the virtual reference element.\n * @property {number} data.clientHeight\n * An ES6 getter that will return the height of the virtual reference element.\n */\n\n\nPopper.Utils = (typeof window !== 'undefined' ? window : global).PopperUtils;\nPopper.placements = placements;\nPopper.Defaults = Defaults;\n\nexport default Popper;\n//# sourceMappingURL=popper.js.map\n","import $ from 'jquery'\nimport Popper from 'popper.js'\nimport Util from './util'\n\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-beta.3): dropdown.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Dropdown = (($) => {\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  const NAME                     = 'dropdown'\n  const VERSION                  = '4.0.0-beta.3'\n  const DATA_KEY                 = 'bs.dropdown'\n  const EVENT_KEY                = `.${DATA_KEY}`\n  const DATA_API_KEY             = '.data-api'\n  const JQUERY_NO_CONFLICT       = $.fn[NAME]\n  const ESCAPE_KEYCODE           = 27 // KeyboardEvent.which value for Escape (Esc) key\n  const SPACE_KEYCODE            = 32 // KeyboardEvent.which value for space key\n  const TAB_KEYCODE              = 9 // KeyboardEvent.which value for tab key\n  const ARROW_UP_KEYCODE         = 38 // KeyboardEvent.which value for up arrow key\n  const ARROW_DOWN_KEYCODE       = 40 // KeyboardEvent.which value for down arrow key\n  const RIGHT_MOUSE_BUTTON_WHICH = 3 // MouseEvent.which value for the right button (assuming a right-handed mouse)\n  const REGEXP_KEYDOWN           = new RegExp(`${ARROW_UP_KEYCODE}|${ARROW_DOWN_KEYCODE}|${ESCAPE_KEYCODE}`)\n\n  const Event = {\n    HIDE             : `hide${EVENT_KEY}`,\n    HIDDEN           : `hidden${EVENT_KEY}`,\n    SHOW             : `show${EVENT_KEY}`,\n    SHOWN            : `shown${EVENT_KEY}`,\n    CLICK            : `click${EVENT_KEY}`,\n    CLICK_DATA_API   : `click${EVENT_KEY}${DATA_API_KEY}`,\n    KEYDOWN_DATA_API : `keydown${EVENT_KEY}${DATA_API_KEY}`,\n    KEYUP_DATA_API   : `keyup${EVENT_KEY}${DATA_API_KEY}`\n  }\n\n  const ClassName = {\n    DISABLED  : 'disabled',\n    SHOW      : 'show',\n    DROPUP    : 'dropup',\n    DROPRIGHT : 'dropright',\n    DROPLEFT  : 'dropleft',\n    MENURIGHT : 'dropdown-menu-right',\n    MENULEFT  : 'dropdown-menu-left',\n    POSITION_STATIC : 'position-static'\n  }\n\n  const Selector = {\n    DATA_TOGGLE   : '[data-toggle=\"dropdown\"]',\n    FORM_CHILD    : '.dropdown form',\n    MENU          : '.dropdown-menu',\n    NAVBAR_NAV    : '.navbar-nav',\n    VISIBLE_ITEMS : '.dropdown-menu .dropdown-item:not(.disabled)'\n  }\n\n  const AttachmentMap = {\n    TOP       : 'top-start',\n    TOPEND    : 'top-end',\n    BOTTOM    : 'bottom-start',\n    BOTTOMEND : 'bottom-end',\n    RIGHT     : 'right-start',\n    RIGHTEND  : 'right-end',\n    LEFT      : 'left-start',\n    LEFTEND   : 'left-end'\n  }\n\n  const Default = {\n    offset      : 0,\n    flip        : true,\n    boundary    : 'scrollParent'\n  }\n\n  const DefaultType = {\n    offset      : '(number|string|function)',\n    flip        : 'boolean',\n    boundary    : '(string|element)'\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  class Dropdown {\n\n    constructor(element, config) {\n      this._element  = element\n      this._popper   = null\n      this._config   = this._getConfig(config)\n      this._menu     = this._getMenuElement()\n      this._inNavbar = this._detectNavbar()\n\n      this._addEventListeners()\n    }\n\n\n    // getters\n\n    static get VERSION() {\n      return VERSION\n    }\n\n    static get Default() {\n      return Default\n    }\n\n    static get DefaultType() {\n      return DefaultType\n    }\n\n    // public\n\n    toggle() {\n      if (this._element.disabled || $(this._element).hasClass(ClassName.DISABLED)) {\n        return\n      }\n\n      const parent   = Dropdown._getParentFromElement(this._element)\n      const isActive = $(this._menu).hasClass(ClassName.SHOW)\n\n      Dropdown._clearMenus()\n\n      if (isActive) {\n        return\n      }\n\n      const relatedTarget = {\n        relatedTarget : this._element\n      }\n      const showEvent = $.Event(Event.SHOW, relatedTarget)\n\n      $(parent).trigger(showEvent)\n\n      if (showEvent.isDefaultPrevented()) {\n        return\n      }\n\n      // Disable totally Popper.js for Dropdown in Navbar\n      if (!this._inNavbar) {\n        /**\n         * Check for Popper dependency\n         * Popper - https://popper.js.org\n         */\n        if (typeof Popper === 'undefined') {\n          throw new Error('Bootstrap dropdown require Popper.js (https://popper.js.org)')\n        }\n        let element = this._element\n        // for dropup with alignment we use the parent as popper container\n        if ($(parent).hasClass(ClassName.DROPUP)) {\n          if ($(this._menu).hasClass(ClassName.MENULEFT) || $(this._menu).hasClass(ClassName.MENURIGHT)) {\n            element = parent\n          }\n        }\n        // If boundary is not `scrollParent`, then set position to `static`\n        // to allow the menu to \"escape\" the scroll parent's boundaries\n        // https://github.com/twbs/bootstrap/issues/24251\n        if (this._config.boundary !== 'scrollParent') {\n          $(parent).addClass(ClassName.POSITION_STATIC)\n        }\n        this._popper = new Popper(element, this._menu, this._getPopperConfig())\n      }\n\n\n      // if this is a touch-enabled device we add extra\n      // empty mouseover listeners to the body's immediate children;\n      // only needed because of broken event delegation on iOS\n      // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n      if ('ontouchstart' in document.documentElement &&\n         !$(parent).closest(Selector.NAVBAR_NAV).length) {\n        $('body').children().on('mouseover', null, $.noop)\n      }\n\n      this._element.focus()\n      this._element.setAttribute('aria-expanded', true)\n\n      $(this._menu).toggleClass(ClassName.SHOW)\n      $(parent)\n        .toggleClass(ClassName.SHOW)\n        .trigger($.Event(Event.SHOWN, relatedTarget))\n    }\n\n    dispose() {\n      $.removeData(this._element, DATA_KEY)\n      $(this._element).off(EVENT_KEY)\n      this._element = null\n      this._menu = null\n      if (this._popper !== null) {\n        this._popper.destroy()\n        this._popper = null\n      }\n    }\n\n    update() {\n      this._inNavbar = this._detectNavbar()\n      if (this._popper !== null) {\n        this._popper.scheduleUpdate()\n      }\n    }\n\n    // private\n\n    _addEventListeners() {\n      $(this._element).on(Event.CLICK, (event) => {\n        event.preventDefault()\n        event.stopPropagation()\n        this.toggle()\n      })\n    }\n\n    _getConfig(config) {\n      config = {\n        ...this.constructor.Default,\n        ...$(this._element).data(),\n        ...config\n      }\n\n      Util.typeCheckConfig(\n        NAME,\n        config,\n        this.constructor.DefaultType\n      )\n\n      return config\n    }\n\n    _getMenuElement() {\n      if (!this._menu) {\n        const parent = Dropdown._getParentFromElement(this._element)\n        this._menu = $(parent).find(Selector.MENU)[0]\n      }\n      return this._menu\n    }\n\n    _getPlacement() {\n      const $parentDropdown = $(this._element).parent()\n      let placement         = AttachmentMap.BOTTOM\n\n      // Handle dropup\n      if ($parentDropdown.hasClass(ClassName.DROPUP)) {\n        placement = AttachmentMap.TOP\n        if ($(this._menu).hasClass(ClassName.MENURIGHT)) {\n          placement = AttachmentMap.TOPEND\n        }\n      } else if ($parentDropdown.hasClass(ClassName.DROPRIGHT)) {\n        placement = AttachmentMap.RIGHT\n      } else if ($parentDropdown.hasClass(ClassName.DROPLEFT)) {\n        placement = AttachmentMap.LEFT\n      } else if ($(this._menu).hasClass(ClassName.MENURIGHT)) {\n        placement = AttachmentMap.BOTTOMEND\n      }\n      return placement\n    }\n\n    _detectNavbar() {\n      return $(this._element).closest('.navbar').length > 0\n    }\n\n    _getPopperConfig() {\n      const offsetConf = {}\n      if (typeof this._config.offset === 'function') {\n        offsetConf.fn = (data) => {\n          data.offsets = {\n            ...data.offsets,\n            ...this._config.offset(data.offsets) || {}\n          }\n          return data\n        }\n      } else {\n        offsetConf.offset = this._config.offset\n      }\n      const popperConfig = {\n        placement : this._getPlacement(),\n        modifiers : {\n          offset : offsetConf,\n          flip : {\n            enabled : this._config.flip\n          },\n          preventOverflow : {\n            boundariesElement : this._config.boundary\n          }\n        }\n      }\n\n      return popperConfig\n    }\n\n    // static\n\n    static _jQueryInterface(config) {\n      return this.each(function () {\n        let data = $(this).data(DATA_KEY)\n        const _config = typeof config === 'object' ? config : null\n\n        if (!data) {\n          data = new Dropdown(this, _config)\n          $(this).data(DATA_KEY, data)\n        }\n\n        if (typeof config === 'string') {\n          if (typeof data[config] === 'undefined') {\n            throw new Error(`No method named \"${config}\"`)\n          }\n          data[config]()\n        }\n      })\n    }\n\n    static _clearMenus(event) {\n      if (event && (event.which === RIGHT_MOUSE_BUTTON_WHICH ||\n        event.type === 'keyup' && event.which !== TAB_KEYCODE)) {\n        return\n      }\n\n      const toggles = $.makeArray($(Selector.DATA_TOGGLE))\n      for (let i = 0; i < toggles.length; i++) {\n        const parent        = Dropdown._getParentFromElement(toggles[i])\n        const context       = $(toggles[i]).data(DATA_KEY)\n        const relatedTarget = {\n          relatedTarget : toggles[i]\n        }\n\n        if (!context) {\n          continue\n        }\n\n        const dropdownMenu = context._menu\n        if (!$(parent).hasClass(ClassName.SHOW)) {\n          continue\n        }\n\n        if (event && (event.type === 'click' &&\n            /input|textarea/i.test(event.target.tagName) || event.type === 'keyup' && event.which === TAB_KEYCODE)\n            && $.contains(parent, event.target)) {\n          continue\n        }\n\n        const hideEvent = $.Event(Event.HIDE, relatedTarget)\n        $(parent).trigger(hideEvent)\n        if (hideEvent.isDefaultPrevented()) {\n          continue\n        }\n\n        // if this is a touch-enabled device we remove the extra\n        // empty mouseover listeners we added for iOS support\n        if ('ontouchstart' in document.documentElement) {\n          $('body').children().off('mouseover', null, $.noop)\n        }\n\n        toggles[i].setAttribute('aria-expanded', 'false')\n\n        $(dropdownMenu).removeClass(ClassName.SHOW)\n        $(parent)\n          .removeClass(ClassName.SHOW)\n          .trigger($.Event(Event.HIDDEN, relatedTarget))\n      }\n    }\n\n    static _getParentFromElement(element) {\n      let parent\n      const selector = Util.getSelectorFromElement(element)\n\n      if (selector) {\n        parent = $(selector)[0]\n      }\n\n      return parent || element.parentNode\n    }\n\n    // eslint-disable-next-line complexity\n    static _dataApiKeydownHandler(event) {\n      // If not input/textarea:\n      //  - And not a key in REGEXP_KEYDOWN => not a dropdown command\n      // If input/textarea:\n      //  - If space key => not a dropdown command\n      //  - If key is other than escape\n      //    - If key is not up or down => not a dropdown command\n      //    - If trigger inside the menu => not a dropdown command\n      if (/input|textarea/i.test(event.target.tagName) ?\n        event.which === SPACE_KEYCODE || event.which !== ESCAPE_KEYCODE &&\n        (event.which !== ARROW_DOWN_KEYCODE && event.which !== ARROW_UP_KEYCODE ||\n          $(event.target).closest(Selector.MENU).length) : !REGEXP_KEYDOWN.test(event.which)) {\n        return\n      }\n\n      event.preventDefault()\n      event.stopPropagation()\n\n      if (this.disabled || $(this).hasClass(ClassName.DISABLED)) {\n        return\n      }\n\n      const parent   = Dropdown._getParentFromElement(this)\n      const isActive = $(parent).hasClass(ClassName.SHOW)\n\n      if (!isActive && (event.which !== ESCAPE_KEYCODE || event.which !== SPACE_KEYCODE) ||\n           isActive && (event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE)) {\n\n        if (event.which === ESCAPE_KEYCODE) {\n          const toggle = $(parent).find(Selector.DATA_TOGGLE)[0]\n          $(toggle).trigger('focus')\n        }\n\n        $(this).trigger('click')\n        return\n      }\n\n      const items = $(parent).find(Selector.VISIBLE_ITEMS).get()\n\n      if (!items.length) {\n        return\n      }\n\n      let index = items.indexOf(event.target)\n\n      if (event.which === ARROW_UP_KEYCODE && index > 0) { // up\n        index--\n      }\n\n      if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) { // down\n        index++\n      }\n\n      if (index < 0) {\n        index = 0\n      }\n\n      items[index].focus()\n    }\n\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n  $(document)\n    .on(Event.KEYDOWN_DATA_API, Selector.DATA_TOGGLE,  Dropdown._dataApiKeydownHandler)\n    .on(Event.KEYDOWN_DATA_API, Selector.MENU, Dropdown._dataApiKeydownHandler)\n    .on(`${Event.CLICK_DATA_API} ${Event.KEYUP_DATA_API}`, Dropdown._clearMenus)\n    .on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n      event.preventDefault()\n      event.stopPropagation()\n      Dropdown._jQueryInterface.call($(this), 'toggle')\n    })\n    .on(Event.CLICK_DATA_API, Selector.FORM_CHILD, (e) => {\n      e.stopPropagation()\n    })\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $.fn[NAME]             = Dropdown._jQueryInterface\n  $.fn[NAME].Constructor = Dropdown\n  $.fn[NAME].noConflict  = function () {\n    $.fn[NAME] = JQUERY_NO_CONFLICT\n    return Dropdown._jQueryInterface\n  }\n\n  return Dropdown\n\n})($, Popper)\n\nexport default Dropdown\n","import $ from 'jquery'\nimport Util from './util'\n\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-beta.3): modal.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Modal = (($) => {\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  const NAME                         = 'modal'\n  const VERSION                      = '4.0.0-beta.3'\n  const DATA_KEY                     = 'bs.modal'\n  const EVENT_KEY                    = `.${DATA_KEY}`\n  const DATA_API_KEY                 = '.data-api'\n  const JQUERY_NO_CONFLICT           = $.fn[NAME]\n  const TRANSITION_DURATION          = 300\n  const BACKDROP_TRANSITION_DURATION = 150\n  const ESCAPE_KEYCODE               = 27 // KeyboardEvent.which value for Escape (Esc) key\n\n  const Default = {\n    backdrop : true,\n    keyboard : true,\n    focus    : true,\n    show     : true\n  }\n\n  const DefaultType = {\n    backdrop : '(boolean|string)',\n    keyboard : 'boolean',\n    focus    : 'boolean',\n    show     : 'boolean'\n  }\n\n  const Event = {\n    HIDE              : `hide${EVENT_KEY}`,\n    HIDDEN            : `hidden${EVENT_KEY}`,\n    SHOW              : `show${EVENT_KEY}`,\n    SHOWN             : `shown${EVENT_KEY}`,\n    FOCUSIN           : `focusin${EVENT_KEY}`,\n    RESIZE            : `resize${EVENT_KEY}`,\n    CLICK_DISMISS     : `click.dismiss${EVENT_KEY}`,\n    KEYDOWN_DISMISS   : `keydown.dismiss${EVENT_KEY}`,\n    MOUSEUP_DISMISS   : `mouseup.dismiss${EVENT_KEY}`,\n    MOUSEDOWN_DISMISS : `mousedown.dismiss${EVENT_KEY}`,\n    CLICK_DATA_API    : `click${EVENT_KEY}${DATA_API_KEY}`\n  }\n\n  const ClassName = {\n    SCROLLBAR_MEASURER : 'modal-scrollbar-measure',\n    BACKDROP           : 'modal-backdrop',\n    OPEN               : 'modal-open',\n    FADE               : 'fade',\n    SHOW               : 'show'\n  }\n\n  const Selector = {\n    DIALOG             : '.modal-dialog',\n    DATA_TOGGLE        : '[data-toggle=\"modal\"]',\n    DATA_DISMISS       : '[data-dismiss=\"modal\"]',\n    FIXED_CONTENT      : '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top',\n    STICKY_CONTENT     : '.sticky-top',\n    NAVBAR_TOGGLER     : '.navbar-toggler'\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  class Modal {\n\n    constructor(element, config) {\n      this._config              = this._getConfig(config)\n      this._element             = element\n      this._dialog              = $(element).find(Selector.DIALOG)[0]\n      this._backdrop            = null\n      this._isShown             = false\n      this._isBodyOverflowing   = false\n      this._ignoreBackdropClick = false\n      this._originalBodyPadding = 0\n      this._scrollbarWidth      = 0\n    }\n\n\n    // getters\n\n    static get VERSION() {\n      return VERSION\n    }\n\n    static get Default() {\n      return Default\n    }\n\n\n    // public\n\n    toggle(relatedTarget) {\n      return this._isShown ? this.hide() : this.show(relatedTarget)\n    }\n\n    show(relatedTarget) {\n      if (this._isTransitioning || this._isShown) {\n        return\n      }\n\n      if (Util.supportsTransitionEnd() && $(this._element).hasClass(ClassName.FADE)) {\n        this._isTransitioning = true\n      }\n\n      const showEvent = $.Event(Event.SHOW, {\n        relatedTarget\n      })\n\n      $(this._element).trigger(showEvent)\n\n      if (this._isShown || showEvent.isDefaultPrevented()) {\n        return\n      }\n\n      this._isShown = true\n\n      this._checkScrollbar()\n      this._setScrollbar()\n\n      this._adjustDialog()\n\n      $(document.body).addClass(ClassName.OPEN)\n\n      this._setEscapeEvent()\n      this._setResizeEvent()\n\n      $(this._element).on(\n        Event.CLICK_DISMISS,\n        Selector.DATA_DISMISS,\n        (event) => this.hide(event)\n      )\n\n      $(this._dialog).on(Event.MOUSEDOWN_DISMISS, () => {\n        $(this._element).one(Event.MOUSEUP_DISMISS, (event) => {\n          if ($(event.target).is(this._element)) {\n            this._ignoreBackdropClick = true\n          }\n        })\n      })\n\n      this._showBackdrop(() => this._showElement(relatedTarget))\n    }\n\n    hide(event) {\n      if (event) {\n        event.preventDefault()\n      }\n\n      if (this._isTransitioning || !this._isShown) {\n        return\n      }\n\n      const hideEvent = $.Event(Event.HIDE)\n\n      $(this._element).trigger(hideEvent)\n\n      if (!this._isShown || hideEvent.isDefaultPrevented()) {\n        return\n      }\n\n      this._isShown = false\n\n      const transition = Util.supportsTransitionEnd() && $(this._element).hasClass(ClassName.FADE)\n\n      if (transition) {\n        this._isTransitioning = true\n      }\n\n      this._setEscapeEvent()\n      this._setResizeEvent()\n\n      $(document).off(Event.FOCUSIN)\n\n      $(this._element).removeClass(ClassName.SHOW)\n\n      $(this._element).off(Event.CLICK_DISMISS)\n      $(this._dialog).off(Event.MOUSEDOWN_DISMISS)\n\n      if (transition) {\n\n        $(this._element)\n          .one(Util.TRANSITION_END, (event) => this._hideModal(event))\n          .emulateTransitionEnd(TRANSITION_DURATION)\n      } else {\n        this._hideModal()\n      }\n    }\n\n    dispose() {\n      $.removeData(this._element, DATA_KEY)\n\n      $(window, document, this._element, this._backdrop).off(EVENT_KEY)\n\n      this._config              = null\n      this._element             = null\n      this._dialog              = null\n      this._backdrop            = null\n      this._isShown             = null\n      this._isBodyOverflowing   = null\n      this._ignoreBackdropClick = null\n      this._scrollbarWidth      = null\n    }\n\n    handleUpdate() {\n      this._adjustDialog()\n    }\n\n    // private\n\n    _getConfig(config) {\n      config = {\n        ...Default,\n        ...config\n      }\n      Util.typeCheckConfig(NAME, config, DefaultType)\n      return config\n    }\n\n    _showElement(relatedTarget) {\n      const transition = Util.supportsTransitionEnd() &&\n        $(this._element).hasClass(ClassName.FADE)\n\n      if (!this._element.parentNode ||\n         this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {\n        // don't move modals dom position\n        document.body.appendChild(this._element)\n      }\n\n      this._element.style.display = 'block'\n      this._element.removeAttribute('aria-hidden')\n      this._element.scrollTop = 0\n\n      if (transition) {\n        Util.reflow(this._element)\n      }\n\n      $(this._element).addClass(ClassName.SHOW)\n\n      if (this._config.focus) {\n        this._enforceFocus()\n      }\n\n      const shownEvent = $.Event(Event.SHOWN, {\n        relatedTarget\n      })\n\n      const transitionComplete = () => {\n        if (this._config.focus) {\n          this._element.focus()\n        }\n        this._isTransitioning = false\n        $(this._element).trigger(shownEvent)\n      }\n\n      if (transition) {\n        $(this._dialog)\n          .one(Util.TRANSITION_END, transitionComplete)\n          .emulateTransitionEnd(TRANSITION_DURATION)\n      } else {\n        transitionComplete()\n      }\n    }\n\n    _enforceFocus() {\n      $(document)\n        .off(Event.FOCUSIN) // guard against infinite focus loop\n        .on(Event.FOCUSIN, (event) => {\n          if (document !== event.target &&\n              this._element !== event.target &&\n              !$(this._element).has(event.target).length) {\n            this._element.focus()\n          }\n        })\n    }\n\n    _setEscapeEvent() {\n      if (this._isShown && this._config.keyboard) {\n        $(this._element).on(Event.KEYDOWN_DISMISS, (event) => {\n          if (event.which === ESCAPE_KEYCODE) {\n            event.preventDefault()\n            this.hide()\n          }\n        })\n\n      } else if (!this._isShown) {\n        $(this._element).off(Event.KEYDOWN_DISMISS)\n      }\n    }\n\n    _setResizeEvent() {\n      if (this._isShown) {\n        $(window).on(Event.RESIZE, (event) => this.handleUpdate(event))\n      } else {\n        $(window).off(Event.RESIZE)\n      }\n    }\n\n    _hideModal() {\n      this._element.style.display = 'none'\n      this._element.setAttribute('aria-hidden', true)\n      this._isTransitioning = false\n      this._showBackdrop(() => {\n        $(document.body).removeClass(ClassName.OPEN)\n        this._resetAdjustments()\n        this._resetScrollbar()\n        $(this._element).trigger(Event.HIDDEN)\n      })\n    }\n\n    _removeBackdrop() {\n      if (this._backdrop) {\n        $(this._backdrop).remove()\n        this._backdrop = null\n      }\n    }\n\n    _showBackdrop(callback) {\n      const animate = $(this._element).hasClass(ClassName.FADE) ?\n        ClassName.FADE : ''\n\n      if (this._isShown && this._config.backdrop) {\n        const doAnimate = Util.supportsTransitionEnd() && animate\n\n        this._backdrop = document.createElement('div')\n        this._backdrop.className = ClassName.BACKDROP\n\n        if (animate) {\n          $(this._backdrop).addClass(animate)\n        }\n\n        $(this._backdrop).appendTo(document.body)\n\n        $(this._element).on(Event.CLICK_DISMISS, (event) => {\n          if (this._ignoreBackdropClick) {\n            this._ignoreBackdropClick = false\n            return\n          }\n          if (event.target !== event.currentTarget) {\n            return\n          }\n          if (this._config.backdrop === 'static') {\n            this._element.focus()\n          } else {\n            this.hide()\n          }\n        })\n\n        if (doAnimate) {\n          Util.reflow(this._backdrop)\n        }\n\n        $(this._backdrop).addClass(ClassName.SHOW)\n\n        if (!callback) {\n          return\n        }\n\n        if (!doAnimate) {\n          callback()\n          return\n        }\n\n        $(this._backdrop)\n          .one(Util.TRANSITION_END, callback)\n          .emulateTransitionEnd(BACKDROP_TRANSITION_DURATION)\n\n      } else if (!this._isShown && this._backdrop) {\n        $(this._backdrop).removeClass(ClassName.SHOW)\n\n        const callbackRemove = () => {\n          this._removeBackdrop()\n          if (callback) {\n            callback()\n          }\n        }\n\n        if (Util.supportsTransitionEnd() &&\n           $(this._element).hasClass(ClassName.FADE)) {\n          $(this._backdrop)\n            .one(Util.TRANSITION_END, callbackRemove)\n            .emulateTransitionEnd(BACKDROP_TRANSITION_DURATION)\n        } else {\n          callbackRemove()\n        }\n\n      } else if (callback) {\n        callback()\n      }\n    }\n\n\n    // ----------------------------------------------------------------------\n    // the following methods are used to handle overflowing modals\n    // todo (fat): these should probably be refactored out of modal.js\n    // ----------------------------------------------------------------------\n\n    _adjustDialog() {\n      const isModalOverflowing =\n        this._element.scrollHeight > document.documentElement.clientHeight\n\n      if (!this._isBodyOverflowing && isModalOverflowing) {\n        this._element.style.paddingLeft = `${this._scrollbarWidth}px`\n      }\n\n      if (this._isBodyOverflowing && !isModalOverflowing) {\n        this._element.style.paddingRight = `${this._scrollbarWidth}px`\n      }\n    }\n\n    _resetAdjustments() {\n      this._element.style.paddingLeft = ''\n      this._element.style.paddingRight = ''\n    }\n\n    _checkScrollbar() {\n      const rect = document.body.getBoundingClientRect()\n      this._isBodyOverflowing = rect.left + rect.right < window.innerWidth\n      this._scrollbarWidth = this._getScrollbarWidth()\n    }\n\n    _setScrollbar() {\n      if (this._isBodyOverflowing) {\n        // Note: DOMNode.style.paddingRight returns the actual value or '' if not set\n        //   while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set\n\n        // Adjust fixed content padding\n        $(Selector.FIXED_CONTENT).each((index, element) => {\n          const actualPadding = $(element)[0].style.paddingRight\n          const calculatedPadding = $(element).css('padding-right')\n          $(element).data('padding-right', actualPadding).css('padding-right', `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`)\n        })\n\n        // Adjust sticky content margin\n        $(Selector.STICKY_CONTENT).each((index, element) => {\n          const actualMargin = $(element)[0].style.marginRight\n          const calculatedMargin = $(element).css('margin-right')\n          $(element).data('margin-right', actualMargin).css('margin-right', `${parseFloat(calculatedMargin) - this._scrollbarWidth}px`)\n        })\n\n        // Adjust navbar-toggler margin\n        $(Selector.NAVBAR_TOGGLER).each((index, element) => {\n          const actualMargin = $(element)[0].style.marginRight\n          const calculatedMargin = $(element).css('margin-right')\n          $(element).data('margin-right', actualMargin).css('margin-right', `${parseFloat(calculatedMargin) + this._scrollbarWidth}px`)\n        })\n\n        // Adjust body padding\n        const actualPadding = document.body.style.paddingRight\n        const calculatedPadding = $('body').css('padding-right')\n        $('body').data('padding-right', actualPadding).css('padding-right', `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`)\n      }\n    }\n\n    _resetScrollbar() {\n      // Restore fixed content padding\n      $(Selector.FIXED_CONTENT).each((index, element) => {\n        const padding = $(element).data('padding-right')\n        if (typeof padding !== 'undefined') {\n          $(element).css('padding-right', padding).removeData('padding-right')\n        }\n      })\n\n      // Restore sticky content and navbar-toggler margin\n      $(`${Selector.STICKY_CONTENT}, ${Selector.NAVBAR_TOGGLER}`).each((index, element) => {\n        const margin = $(element).data('margin-right')\n        if (typeof margin !== 'undefined') {\n          $(element).css('margin-right', margin).removeData('margin-right')\n        }\n      })\n\n      // Restore body padding\n      const padding = $('body').data('padding-right')\n      if (typeof padding !== 'undefined') {\n        $('body').css('padding-right', padding).removeData('padding-right')\n      }\n    }\n\n    _getScrollbarWidth() { // thx d.walsh\n      const scrollDiv = document.createElement('div')\n      scrollDiv.className = ClassName.SCROLLBAR_MEASURER\n      document.body.appendChild(scrollDiv)\n      const scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth\n      document.body.removeChild(scrollDiv)\n      return scrollbarWidth\n    }\n\n\n    // static\n\n    static _jQueryInterface(config, relatedTarget) {\n      return this.each(function () {\n        let data      = $(this).data(DATA_KEY)\n        const _config = {\n          ...Modal.Default,\n          ...$(this).data(),\n          ...typeof config === 'object' && config\n        }\n\n        if (!data) {\n          data = new Modal(this, _config)\n          $(this).data(DATA_KEY, data)\n        }\n\n        if (typeof config === 'string') {\n          if (typeof data[config] === 'undefined') {\n            throw new Error(`No method named \"${config}\"`)\n          }\n          data[config](relatedTarget)\n        } else if (_config.show) {\n          data.show(relatedTarget)\n        }\n      })\n    }\n\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n  $(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n    let target\n    const selector = Util.getSelectorFromElement(this)\n\n    if (selector) {\n      target = $(selector)[0]\n    }\n\n    const config = $(target).data(DATA_KEY) ?\n      'toggle' : {\n        ...$(target).data(),\n        ...$(this).data()\n      }\n\n    if (this.tagName === 'A' || this.tagName === 'AREA') {\n      event.preventDefault()\n    }\n\n    const $target = $(target).one(Event.SHOW, (showEvent) => {\n      if (showEvent.isDefaultPrevented()) {\n        // only register focus restorer if modal will actually get shown\n        return\n      }\n\n      $target.one(Event.HIDDEN, () => {\n        if ($(this).is(':visible')) {\n          this.focus()\n        }\n      })\n    })\n\n    Modal._jQueryInterface.call($(target), config, this)\n  })\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $.fn[NAME]             = Modal._jQueryInterface\n  $.fn[NAME].Constructor = Modal\n  $.fn[NAME].noConflict  = function () {\n    $.fn[NAME] = JQUERY_NO_CONFLICT\n    return Modal._jQueryInterface\n  }\n\n  return Modal\n\n})($)\n\nexport default Modal\n","import $ from 'jquery'\nimport Popper from 'popper.js'\nimport Util from './util'\n\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-beta.3): tooltip.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Tooltip = (($) => {\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  const NAME                = 'tooltip'\n  const VERSION             = '4.0.0-beta.3'\n  const DATA_KEY            = 'bs.tooltip'\n  const EVENT_KEY           = `.${DATA_KEY}`\n  const JQUERY_NO_CONFLICT  = $.fn[NAME]\n  const TRANSITION_DURATION = 150\n  const CLASS_PREFIX        = 'bs-tooltip'\n  const BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\n\n  const DefaultType = {\n    animation           : 'boolean',\n    template            : 'string',\n    title               : '(string|element|function)',\n    trigger             : 'string',\n    delay               : '(number|object)',\n    html                : 'boolean',\n    selector            : '(string|boolean)',\n    placement           : '(string|function)',\n    offset              : '(number|string)',\n    container           : '(string|element|boolean)',\n    fallbackPlacement   : '(string|array)',\n    boundary            : '(string|element)'\n  }\n\n  const AttachmentMap = {\n    AUTO   : 'auto',\n    TOP    : 'top',\n    RIGHT  : 'right',\n    BOTTOM : 'bottom',\n    LEFT   : 'left'\n  }\n\n  const Default = {\n    animation           : true,\n    template            : '<div class=\"tooltip\" role=\"tooltip\">'\n                        + '<div class=\"arrow\"></div>'\n                        + '<div class=\"tooltip-inner\"></div></div>',\n    trigger             : 'hover focus',\n    title               : '',\n    delay               : 0,\n    html                : false,\n    selector            : false,\n    placement           : 'top',\n    offset              : 0,\n    container           : false,\n    fallbackPlacement   : 'flip',\n    boundary            : 'scrollParent'\n  }\n\n  const HoverState = {\n    SHOW : 'show',\n    OUT  : 'out'\n  }\n\n  const Event = {\n    HIDE       : `hide${EVENT_KEY}`,\n    HIDDEN     : `hidden${EVENT_KEY}`,\n    SHOW       : `show${EVENT_KEY}`,\n    SHOWN      : `shown${EVENT_KEY}`,\n    INSERTED   : `inserted${EVENT_KEY}`,\n    CLICK      : `click${EVENT_KEY}`,\n    FOCUSIN    : `focusin${EVENT_KEY}`,\n    FOCUSOUT   : `focusout${EVENT_KEY}`,\n    MOUSEENTER : `mouseenter${EVENT_KEY}`,\n    MOUSELEAVE : `mouseleave${EVENT_KEY}`\n  }\n\n  const ClassName = {\n    FADE : 'fade',\n    SHOW : 'show'\n  }\n\n  const Selector = {\n    TOOLTIP       : '.tooltip',\n    TOOLTIP_INNER : '.tooltip-inner',\n    ARROW         : '.arrow'\n  }\n\n  const Trigger = {\n    HOVER  : 'hover',\n    FOCUS  : 'focus',\n    CLICK  : 'click',\n    MANUAL : 'manual'\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  class Tooltip {\n\n    constructor(element, config) {\n      /**\n       * Check for Popper dependency\n       * Popper - https://popper.js.org\n       */\n      if (typeof Popper === 'undefined') {\n        throw new Error('Bootstrap tooltips require Popper.js (https://popper.js.org)')\n      }\n\n      // private\n      this._isEnabled     = true\n      this._timeout       = 0\n      this._hoverState    = ''\n      this._activeTrigger = {}\n      this._popper        = null\n\n      // protected\n      this.element = element\n      this.config  = this._getConfig(config)\n      this.tip     = null\n\n      this._setListeners()\n\n    }\n\n\n    // getters\n\n    static get VERSION() {\n      return VERSION\n    }\n\n    static get Default() {\n      return Default\n    }\n\n    static get NAME() {\n      return NAME\n    }\n\n    static get DATA_KEY() {\n      return DATA_KEY\n    }\n\n    static get Event() {\n      return Event\n    }\n\n    static get EVENT_KEY() {\n      return EVENT_KEY\n    }\n\n    static get DefaultType() {\n      return DefaultType\n    }\n\n\n    // public\n\n    enable() {\n      this._isEnabled = true\n    }\n\n    disable() {\n      this._isEnabled = false\n    }\n\n    toggleEnabled() {\n      this._isEnabled = !this._isEnabled\n    }\n\n    toggle(event) {\n      if (!this._isEnabled) {\n        return\n      }\n\n      if (event) {\n        const dataKey = this.constructor.DATA_KEY\n        let context = $(event.currentTarget).data(dataKey)\n\n        if (!context) {\n          context = new this.constructor(\n            event.currentTarget,\n            this._getDelegateConfig()\n          )\n          $(event.currentTarget).data(dataKey, context)\n        }\n\n        context._activeTrigger.click = !context._activeTrigger.click\n\n        if (context._isWithActiveTrigger()) {\n          context._enter(null, context)\n        } else {\n          context._leave(null, context)\n        }\n\n      } else {\n\n        if ($(this.getTipElement()).hasClass(ClassName.SHOW)) {\n          this._leave(null, this)\n          return\n        }\n\n        this._enter(null, this)\n      }\n    }\n\n    dispose() {\n      clearTimeout(this._timeout)\n\n      $.removeData(this.element, this.constructor.DATA_KEY)\n\n      $(this.element).off(this.constructor.EVENT_KEY)\n      $(this.element).closest('.modal').off('hide.bs.modal')\n\n      if (this.tip) {\n        $(this.tip).remove()\n      }\n\n      this._isEnabled     = null\n      this._timeout       = null\n      this._hoverState    = null\n      this._activeTrigger = null\n      if (this._popper !== null) {\n        this._popper.destroy()\n      }\n\n      this._popper = null\n      this.element = null\n      this.config  = null\n      this.tip     = null\n    }\n\n    show() {\n      if ($(this.element).css('display') === 'none') {\n        throw new Error('Please use show on visible elements')\n      }\n\n      const showEvent = $.Event(this.constructor.Event.SHOW)\n      if (this.isWithContent() && this._isEnabled) {\n        $(this.element).trigger(showEvent)\n\n        const isInTheDom = $.contains(\n          this.element.ownerDocument.documentElement,\n          this.element\n        )\n\n        if (showEvent.isDefaultPrevented() || !isInTheDom) {\n          return\n        }\n\n        const tip   = this.getTipElement()\n        const tipId = Util.getUID(this.constructor.NAME)\n\n        tip.setAttribute('id', tipId)\n        this.element.setAttribute('aria-describedby', tipId)\n\n        this.setContent()\n\n        if (this.config.animation) {\n          $(tip).addClass(ClassName.FADE)\n        }\n\n        const placement  = typeof this.config.placement === 'function' ?\n          this.config.placement.call(this, tip, this.element) :\n          this.config.placement\n\n        const attachment = this._getAttachment(placement)\n        this.addAttachmentClass(attachment)\n\n        const container = this.config.container === false ? document.body : $(this.config.container)\n\n        $(tip).data(this.constructor.DATA_KEY, this)\n\n        if (!$.contains(this.element.ownerDocument.documentElement, this.tip)) {\n          $(tip).appendTo(container)\n        }\n\n        $(this.element).trigger(this.constructor.Event.INSERTED)\n\n        this._popper = new Popper(this.element, tip, {\n          placement: attachment,\n          modifiers: {\n            offset: {\n              offset: this.config.offset\n            },\n            flip: {\n              behavior: this.config.fallbackPlacement\n            },\n            arrow: {\n              element: Selector.ARROW\n            },\n            preventOverflow: {\n              boundariesElement: this.config.boundary\n            }\n          },\n          onCreate: (data) => {\n            if (data.originalPlacement !== data.placement) {\n              this._handlePopperPlacementChange(data)\n            }\n          },\n          onUpdate : (data) => {\n            this._handlePopperPlacementChange(data)\n          }\n        })\n\n        $(tip).addClass(ClassName.SHOW)\n\n        // if this is a touch-enabled device we add extra\n        // empty mouseover listeners to the body's immediate children;\n        // only needed because of broken event delegation on iOS\n        // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n        if ('ontouchstart' in document.documentElement) {\n          $('body').children().on('mouseover', null, $.noop)\n        }\n\n        const complete = () => {\n          if (this.config.animation) {\n            this._fixTransition()\n          }\n          const prevHoverState = this._hoverState\n          this._hoverState     = null\n\n          $(this.element).trigger(this.constructor.Event.SHOWN)\n\n          if (prevHoverState === HoverState.OUT) {\n            this._leave(null, this)\n          }\n        }\n\n        if (Util.supportsTransitionEnd() && $(this.tip).hasClass(ClassName.FADE)) {\n          $(this.tip)\n            .one(Util.TRANSITION_END, complete)\n            .emulateTransitionEnd(Tooltip._TRANSITION_DURATION)\n        } else {\n          complete()\n        }\n      }\n    }\n\n    hide(callback) {\n      const tip       = this.getTipElement()\n      const hideEvent = $.Event(this.constructor.Event.HIDE)\n      const complete  = () => {\n        if (this._hoverState !== HoverState.SHOW && tip.parentNode) {\n          tip.parentNode.removeChild(tip)\n        }\n\n        this._cleanTipClass()\n        this.element.removeAttribute('aria-describedby')\n        $(this.element).trigger(this.constructor.Event.HIDDEN)\n        if (this._popper !== null) {\n          this._popper.destroy()\n        }\n\n        if (callback) {\n          callback()\n        }\n      }\n\n      $(this.element).trigger(hideEvent)\n\n      if (hideEvent.isDefaultPrevented()) {\n        return\n      }\n\n      $(tip).removeClass(ClassName.SHOW)\n\n      // if this is a touch-enabled device we remove the extra\n      // empty mouseover listeners we added for iOS support\n      if ('ontouchstart' in document.documentElement) {\n        $('body').children().off('mouseover', null, $.noop)\n      }\n\n      this._activeTrigger[Trigger.CLICK] = false\n      this._activeTrigger[Trigger.FOCUS] = false\n      this._activeTrigger[Trigger.HOVER] = false\n\n      if (Util.supportsTransitionEnd() &&\n          $(this.tip).hasClass(ClassName.FADE)) {\n\n        $(tip)\n          .one(Util.TRANSITION_END, complete)\n          .emulateTransitionEnd(TRANSITION_DURATION)\n\n      } else {\n        complete()\n      }\n\n      this._hoverState = ''\n\n    }\n\n    update() {\n      if (this._popper !== null) {\n        this._popper.scheduleUpdate()\n      }\n    }\n\n    // protected\n\n    isWithContent() {\n      return Boolean(this.getTitle())\n    }\n\n    addAttachmentClass(attachment) {\n      $(this.getTipElement()).addClass(`${CLASS_PREFIX}-${attachment}`)\n    }\n\n    getTipElement() {\n      this.tip = this.tip || $(this.config.template)[0]\n      return this.tip\n    }\n\n    setContent() {\n      const $tip = $(this.getTipElement())\n      this.setElementContent($tip.find(Selector.TOOLTIP_INNER), this.getTitle())\n      $tip.removeClass(`${ClassName.FADE} ${ClassName.SHOW}`)\n    }\n\n    setElementContent($element, content) {\n      const html = this.config.html\n      if (typeof content === 'object' && (content.nodeType || content.jquery)) {\n        // content is a DOM node or a jQuery\n        if (html) {\n          if (!$(content).parent().is($element)) {\n            $element.empty().append(content)\n          }\n        } else {\n          $element.text($(content).text())\n        }\n      } else {\n        $element[html ? 'html' : 'text'](content)\n      }\n    }\n\n    getTitle() {\n      let title = this.element.getAttribute('data-original-title')\n\n      if (!title) {\n        title = typeof this.config.title === 'function' ?\n          this.config.title.call(this.element) :\n          this.config.title\n      }\n\n      return title\n    }\n\n\n    // private\n\n    _getAttachment(placement) {\n      return AttachmentMap[placement.toUpperCase()]\n    }\n\n    _setListeners() {\n      const triggers = this.config.trigger.split(' ')\n\n      triggers.forEach((trigger) => {\n        if (trigger === 'click') {\n          $(this.element).on(\n            this.constructor.Event.CLICK,\n            this.config.selector,\n            (event) => this.toggle(event)\n          )\n\n        } else if (trigger !== Trigger.MANUAL) {\n          const eventIn  = trigger === Trigger.HOVER ?\n            this.constructor.Event.MOUSEENTER :\n            this.constructor.Event.FOCUSIN\n          const eventOut = trigger === Trigger.HOVER ?\n            this.constructor.Event.MOUSELEAVE :\n            this.constructor.Event.FOCUSOUT\n\n          $(this.element)\n            .on(\n              eventIn,\n              this.config.selector,\n              (event) => this._enter(event)\n            )\n            .on(\n              eventOut,\n              this.config.selector,\n              (event) => this._leave(event)\n            )\n        }\n\n        $(this.element).closest('.modal').on(\n          'hide.bs.modal',\n          () => this.hide()\n        )\n      })\n\n      if (this.config.selector) {\n        this.config = {\n          ...this.config,\n          trigger  : 'manual',\n          selector : ''\n        }\n      } else {\n        this._fixTitle()\n      }\n    }\n\n    _fixTitle() {\n      const titleType = typeof this.element.getAttribute('data-original-title')\n      if (this.element.getAttribute('title') ||\n         titleType !== 'string') {\n        this.element.setAttribute(\n          'data-original-title',\n          this.element.getAttribute('title') || ''\n        )\n        this.element.setAttribute('title', '')\n      }\n    }\n\n    _enter(event, context) {\n      const dataKey = this.constructor.DATA_KEY\n\n      context = context || $(event.currentTarget).data(dataKey)\n\n      if (!context) {\n        context = new this.constructor(\n          event.currentTarget,\n          this._getDelegateConfig()\n        )\n        $(event.currentTarget).data(dataKey, context)\n      }\n\n      if (event) {\n        context._activeTrigger[\n          event.type === 'focusin' ? Trigger.FOCUS : Trigger.HOVER\n        ] = true\n      }\n\n      if ($(context.getTipElement()).hasClass(ClassName.SHOW) ||\n         context._hoverState === HoverState.SHOW) {\n        context._hoverState = HoverState.SHOW\n        return\n      }\n\n      clearTimeout(context._timeout)\n\n      context._hoverState = HoverState.SHOW\n\n      if (!context.config.delay || !context.config.delay.show) {\n        context.show()\n        return\n      }\n\n      context._timeout = setTimeout(() => {\n        if (context._hoverState === HoverState.SHOW) {\n          context.show()\n        }\n      }, context.config.delay.show)\n    }\n\n    _leave(event, context) {\n      const dataKey = this.constructor.DATA_KEY\n\n      context = context || $(event.currentTarget).data(dataKey)\n\n      if (!context) {\n        context = new this.constructor(\n          event.currentTarget,\n          this._getDelegateConfig()\n        )\n        $(event.currentTarget).data(dataKey, context)\n      }\n\n      if (event) {\n        context._activeTrigger[\n          event.type === 'focusout' ? Trigger.FOCUS : Trigger.HOVER\n        ] = false\n      }\n\n      if (context._isWithActiveTrigger()) {\n        return\n      }\n\n      clearTimeout(context._timeout)\n\n      context._hoverState = HoverState.OUT\n\n      if (!context.config.delay || !context.config.delay.hide) {\n        context.hide()\n        return\n      }\n\n      context._timeout = setTimeout(() => {\n        if (context._hoverState === HoverState.OUT) {\n          context.hide()\n        }\n      }, context.config.delay.hide)\n    }\n\n    _isWithActiveTrigger() {\n      for (const trigger in this._activeTrigger) {\n        if (this._activeTrigger[trigger]) {\n          return true\n        }\n      }\n\n      return false\n    }\n\n    _getConfig(config) {\n      config = {\n        ...this.constructor.Default,\n        ...$(this.element).data(),\n        ...config\n      }\n\n      if (typeof config.delay === 'number') {\n        config.delay = {\n          show : config.delay,\n          hide : config.delay\n        }\n      }\n\n      if (typeof config.title === 'number') {\n        config.title = config.title.toString()\n      }\n\n      if (typeof config.content === 'number') {\n        config.content = config.content.toString()\n      }\n\n      Util.typeCheckConfig(\n        NAME,\n        config,\n        this.constructor.DefaultType\n      )\n\n      return config\n    }\n\n    _getDelegateConfig() {\n      const config = {}\n\n      if (this.config) {\n        for (const key in this.config) {\n          if (this.constructor.Default[key] !== this.config[key]) {\n            config[key] = this.config[key]\n          }\n        }\n      }\n\n      return config\n    }\n\n    _cleanTipClass() {\n      const $tip = $(this.getTipElement())\n      const tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX)\n      if (tabClass !== null && tabClass.length > 0) {\n        $tip.removeClass(tabClass.join(''))\n      }\n    }\n\n    _handlePopperPlacementChange(data) {\n      this._cleanTipClass()\n      this.addAttachmentClass(this._getAttachment(data.placement))\n    }\n\n    _fixTransition() {\n      const tip                 = this.getTipElement()\n      const initConfigAnimation = this.config.animation\n      if (tip.getAttribute('x-placement') !== null) {\n        return\n      }\n      $(tip).removeClass(ClassName.FADE)\n      this.config.animation = false\n      this.hide()\n      this.show()\n      this.config.animation = initConfigAnimation\n    }\n\n    // static\n\n    static _jQueryInterface(config) {\n      return this.each(function () {\n        let data      = $(this).data(DATA_KEY)\n        const _config = typeof config === 'object' && config\n\n        if (!data && /dispose|hide/.test(config)) {\n          return\n        }\n\n        if (!data) {\n          data = new Tooltip(this, _config)\n          $(this).data(DATA_KEY, data)\n        }\n\n        if (typeof config === 'string') {\n          if (typeof data[config] === 'undefined') {\n            throw new Error(`No method named \"${config}\"`)\n          }\n          data[config]()\n        }\n      })\n    }\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $.fn[NAME]             = Tooltip._jQueryInterface\n  $.fn[NAME].Constructor = Tooltip\n  $.fn[NAME].noConflict  = function () {\n    $.fn[NAME] = JQUERY_NO_CONFLICT\n    return Tooltip._jQueryInterface\n  }\n\n  return Tooltip\n\n})($, Popper)\n\nexport default Tooltip\n","import $ from 'jquery'\nimport Tooltip from './tooltip'\n\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-beta.3): popover.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Popover = (($) => {\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  const NAME                = 'popover'\n  const VERSION             = '4.0.0-beta.3'\n  const DATA_KEY            = 'bs.popover'\n  const EVENT_KEY           = `.${DATA_KEY}`\n  const JQUERY_NO_CONFLICT  = $.fn[NAME]\n  const CLASS_PREFIX        = 'bs-popover'\n  const BSCLS_PREFIX_REGEX  = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\n\n  const Default = {\n    ...Tooltip.Default,\n    placement : 'right',\n    trigger   : 'click',\n    content   : '',\n    template  : '<div class=\"popover\" role=\"tooltip\">'\n              + '<div class=\"arrow\"></div>'\n              + '<h3 class=\"popover-header\"></h3>'\n              + '<div class=\"popover-body\"></div></div>'\n  }\n\n  const DefaultType = {\n    ...Tooltip.DefaultType,\n    content : '(string|element|function)'\n  }\n\n  const ClassName = {\n    FADE : 'fade',\n    SHOW : 'show'\n  }\n\n  const Selector = {\n    TITLE   : '.popover-header',\n    CONTENT : '.popover-body'\n  }\n\n  const Event = {\n    HIDE       : `hide${EVENT_KEY}`,\n    HIDDEN     : `hidden${EVENT_KEY}`,\n    SHOW       : `show${EVENT_KEY}`,\n    SHOWN      : `shown${EVENT_KEY}`,\n    INSERTED   : `inserted${EVENT_KEY}`,\n    CLICK      : `click${EVENT_KEY}`,\n    FOCUSIN    : `focusin${EVENT_KEY}`,\n    FOCUSOUT   : `focusout${EVENT_KEY}`,\n    MOUSEENTER : `mouseenter${EVENT_KEY}`,\n    MOUSELEAVE : `mouseleave${EVENT_KEY}`\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  class Popover extends Tooltip {\n\n\n    // getters\n\n    static get VERSION() {\n      return VERSION\n    }\n\n    static get Default() {\n      return Default\n    }\n\n    static get NAME() {\n      return NAME\n    }\n\n    static get DATA_KEY() {\n      return DATA_KEY\n    }\n\n    static get Event() {\n      return Event\n    }\n\n    static get EVENT_KEY() {\n      return EVENT_KEY\n    }\n\n    static get DefaultType() {\n      return DefaultType\n    }\n\n\n    // overrides\n\n    isWithContent() {\n      return this.getTitle() || this._getContent()\n    }\n\n    addAttachmentClass(attachment) {\n      $(this.getTipElement()).addClass(`${CLASS_PREFIX}-${attachment}`)\n    }\n\n    getTipElement() {\n      this.tip = this.tip || $(this.config.template)[0]\n      return this.tip\n    }\n\n    setContent() {\n      const $tip = $(this.getTipElement())\n\n      // we use append for html objects to maintain js events\n      this.setElementContent($tip.find(Selector.TITLE), this.getTitle())\n      let content = this._getContent()\n      if (typeof content === 'function') {\n        content = content.call(this.element)\n      }\n      this.setElementContent($tip.find(Selector.CONTENT), content)\n\n      $tip.removeClass(`${ClassName.FADE} ${ClassName.SHOW}`)\n    }\n\n    // private\n\n    _getContent() {\n      return this.element.getAttribute('data-content')\n        || this.config.content\n    }\n\n    _cleanTipClass() {\n      const $tip = $(this.getTipElement())\n      const tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX)\n      if (tabClass !== null && tabClass.length > 0) {\n        $tip.removeClass(tabClass.join(''))\n      }\n    }\n\n\n    // static\n\n    static _jQueryInterface(config) {\n      return this.each(function () {\n        let data      = $(this).data(DATA_KEY)\n        const _config = typeof config === 'object' ? config : null\n\n        if (!data && /destroy|hide/.test(config)) {\n          return\n        }\n\n        if (!data) {\n          data = new Popover(this, _config)\n          $(this).data(DATA_KEY, data)\n        }\n\n        if (typeof config === 'string') {\n          if (typeof data[config] === 'undefined') {\n            throw new Error(`No method named \"${config}\"`)\n          }\n          data[config]()\n        }\n      })\n    }\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $.fn[NAME]             = Popover._jQueryInterface\n  $.fn[NAME].Constructor = Popover\n  $.fn[NAME].noConflict  = function () {\n    $.fn[NAME] = JQUERY_NO_CONFLICT\n    return Popover._jQueryInterface\n  }\n\n  return Popover\n\n})($)\n\nexport default Popover\n","import $ from 'jquery'\nimport Util from './util'\n\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-beta.3): scrollspy.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst ScrollSpy = (($) => {\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  const NAME               = 'scrollspy'\n  const VERSION            = '4.0.0-beta.3'\n  const DATA_KEY           = 'bs.scrollspy'\n  const EVENT_KEY          = `.${DATA_KEY}`\n  const DATA_API_KEY       = '.data-api'\n  const JQUERY_NO_CONFLICT = $.fn[NAME]\n\n  const Default = {\n    offset : 10,\n    method : 'auto',\n    target : ''\n  }\n\n  const DefaultType = {\n    offset : 'number',\n    method : 'string',\n    target : '(string|element)'\n  }\n\n  const Event = {\n    ACTIVATE      : `activate${EVENT_KEY}`,\n    SCROLL        : `scroll${EVENT_KEY}`,\n    LOAD_DATA_API : `load${EVENT_KEY}${DATA_API_KEY}`\n  }\n\n  const ClassName = {\n    DROPDOWN_ITEM : 'dropdown-item',\n    DROPDOWN_MENU : 'dropdown-menu',\n    ACTIVE        : 'active'\n  }\n\n  const Selector = {\n    DATA_SPY        : '[data-spy=\"scroll\"]',\n    ACTIVE          : '.active',\n    NAV_LIST_GROUP  : '.nav, .list-group',\n    NAV_LINKS       : '.nav-link',\n    NAV_ITEMS       : '.nav-item',\n    LIST_ITEMS      : '.list-group-item',\n    DROPDOWN        : '.dropdown',\n    DROPDOWN_ITEMS  : '.dropdown-item',\n    DROPDOWN_TOGGLE : '.dropdown-toggle'\n  }\n\n  const OffsetMethod = {\n    OFFSET   : 'offset',\n    POSITION : 'position'\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  class ScrollSpy {\n\n    constructor(element, config) {\n      this._element       = element\n      this._scrollElement = element.tagName === 'BODY' ? window : element\n      this._config        = this._getConfig(config)\n      this._selector      = `${this._config.target} ${Selector.NAV_LINKS},`\n                          + `${this._config.target} ${Selector.LIST_ITEMS},`\n                          + `${this._config.target} ${Selector.DROPDOWN_ITEMS}`\n      this._offsets       = []\n      this._targets       = []\n      this._activeTarget  = null\n      this._scrollHeight  = 0\n\n      $(this._scrollElement).on(Event.SCROLL, (event) => this._process(event))\n\n      this.refresh()\n      this._process()\n    }\n\n\n    // getters\n\n    static get VERSION() {\n      return VERSION\n    }\n\n    static get Default() {\n      return Default\n    }\n\n\n    // public\n\n    refresh() {\n      const autoMethod = this._scrollElement !== this._scrollElement.window ?\n        OffsetMethod.POSITION : OffsetMethod.OFFSET\n\n      const offsetMethod = this._config.method === 'auto' ?\n        autoMethod : this._config.method\n\n      const offsetBase = offsetMethod === OffsetMethod.POSITION ?\n        this._getScrollTop() : 0\n\n      this._offsets = []\n      this._targets = []\n\n      this._scrollHeight = this._getScrollHeight()\n\n      const targets = $.makeArray($(this._selector))\n\n      targets\n        .map((element) => {\n          let target\n          const targetSelector = Util.getSelectorFromElement(element)\n\n          if (targetSelector) {\n            target = $(targetSelector)[0]\n          }\n\n          if (target) {\n            const targetBCR = target.getBoundingClientRect()\n            if (targetBCR.width || targetBCR.height) {\n              // todo (fat): remove sketch reliance on jQuery position/offset\n              return [\n                $(target)[offsetMethod]().top + offsetBase,\n                targetSelector\n              ]\n            }\n          }\n          return null\n        })\n        .filter((item)  => item)\n        .sort((a, b)    => a[0] - b[0])\n        .forEach((item) => {\n          this._offsets.push(item[0])\n          this._targets.push(item[1])\n        })\n    }\n\n    dispose() {\n      $.removeData(this._element, DATA_KEY)\n      $(this._scrollElement).off(EVENT_KEY)\n\n      this._element       = null\n      this._scrollElement = null\n      this._config        = null\n      this._selector      = null\n      this._offsets       = null\n      this._targets       = null\n      this._activeTarget  = null\n      this._scrollHeight  = null\n    }\n\n\n    // private\n\n    _getConfig(config) {\n      config = {\n        ...Default,\n        ...config\n      }\n\n      if (typeof config.target !== 'string') {\n        let id = $(config.target).attr('id')\n        if (!id) {\n          id = Util.getUID(NAME)\n          $(config.target).attr('id', id)\n        }\n        config.target = `#${id}`\n      }\n\n      Util.typeCheckConfig(NAME, config, DefaultType)\n\n      return config\n    }\n\n    _getScrollTop() {\n      return this._scrollElement === window ?\n          this._scrollElement.pageYOffset : this._scrollElement.scrollTop\n    }\n\n    _getScrollHeight() {\n      return this._scrollElement.scrollHeight || Math.max(\n        document.body.scrollHeight,\n        document.documentElement.scrollHeight\n      )\n    }\n\n    _getOffsetHeight() {\n      return this._scrollElement === window ?\n          window.innerHeight : this._scrollElement.getBoundingClientRect().height\n    }\n\n    _process() {\n      const scrollTop    = this._getScrollTop() + this._config.offset\n      const scrollHeight = this._getScrollHeight()\n      const maxScroll    = this._config.offset\n        + scrollHeight\n        - this._getOffsetHeight()\n\n      if (this._scrollHeight !== scrollHeight) {\n        this.refresh()\n      }\n\n      if (scrollTop >= maxScroll) {\n        const target = this._targets[this._targets.length - 1]\n\n        if (this._activeTarget !== target) {\n          this._activate(target)\n        }\n        return\n      }\n\n      if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) {\n        this._activeTarget = null\n        this._clear()\n        return\n      }\n\n      for (let i = this._offsets.length; i--;) {\n        const isActiveTarget = this._activeTarget !== this._targets[i]\n            && scrollTop >= this._offsets[i]\n            && (typeof this._offsets[i + 1] === 'undefined' ||\n                scrollTop < this._offsets[i + 1])\n\n        if (isActiveTarget) {\n          this._activate(this._targets[i])\n        }\n      }\n    }\n\n    _activate(target) {\n      this._activeTarget = target\n\n      this._clear()\n\n      let queries = this._selector.split(',')\n      // eslint-disable-next-line arrow-body-style\n      queries     = queries.map((selector) => {\n        return `${selector}[data-target=\"${target}\"],` +\n               `${selector}[href=\"${target}\"]`\n      })\n\n      const $link = $(queries.join(','))\n\n      if ($link.hasClass(ClassName.DROPDOWN_ITEM)) {\n        $link.closest(Selector.DROPDOWN).find(Selector.DROPDOWN_TOGGLE).addClass(ClassName.ACTIVE)\n        $link.addClass(ClassName.ACTIVE)\n      } else {\n        // Set triggered link as active\n        $link.addClass(ClassName.ACTIVE)\n        // Set triggered links parents as active\n        // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor\n        $link.parents(Selector.NAV_LIST_GROUP).prev(`${Selector.NAV_LINKS}, ${Selector.LIST_ITEMS}`).addClass(ClassName.ACTIVE)\n        // Handle special case when .nav-link is inside .nav-item\n        $link.parents(Selector.NAV_LIST_GROUP).prev(Selector.NAV_ITEMS).children(Selector.NAV_LINKS).addClass(ClassName.ACTIVE)\n      }\n\n      $(this._scrollElement).trigger(Event.ACTIVATE, {\n        relatedTarget: target\n      })\n    }\n\n    _clear() {\n      $(this._selector).filter(Selector.ACTIVE).removeClass(ClassName.ACTIVE)\n    }\n\n\n    // static\n\n    static _jQueryInterface(config) {\n      return this.each(function () {\n        let data      = $(this).data(DATA_KEY)\n        const _config = typeof config === 'object' && config\n\n        if (!data) {\n          data = new ScrollSpy(this, _config)\n          $(this).data(DATA_KEY, data)\n        }\n\n        if (typeof config === 'string') {\n          if (typeof data[config] === 'undefined') {\n            throw new Error(`No method named \"${config}\"`)\n          }\n          data[config]()\n        }\n      })\n    }\n\n\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n  $(window).on(Event.LOAD_DATA_API, () => {\n    const scrollSpys = $.makeArray($(Selector.DATA_SPY))\n\n    for (let i = scrollSpys.length; i--;) {\n      const $spy = $(scrollSpys[i])\n      ScrollSpy._jQueryInterface.call($spy, $spy.data())\n    }\n  })\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $.fn[NAME]             = ScrollSpy._jQueryInterface\n  $.fn[NAME].Constructor = ScrollSpy\n  $.fn[NAME].noConflict  = function () {\n    $.fn[NAME] = JQUERY_NO_CONFLICT\n    return ScrollSpy._jQueryInterface\n  }\n\n  return ScrollSpy\n\n})($)\n\nexport default ScrollSpy\n","import $ from 'jquery'\nimport Util from './util'\n\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-beta.3): tab.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Tab = (($) => {\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  const NAME                = 'tab'\n  const VERSION             = '4.0.0-beta.3'\n  const DATA_KEY            = 'bs.tab'\n  const EVENT_KEY           = `.${DATA_KEY}`\n  const DATA_API_KEY        = '.data-api'\n  const JQUERY_NO_CONFLICT  = $.fn[NAME]\n  const TRANSITION_DURATION = 150\n\n  const Event = {\n    HIDE           : `hide${EVENT_KEY}`,\n    HIDDEN         : `hidden${EVENT_KEY}`,\n    SHOW           : `show${EVENT_KEY}`,\n    SHOWN          : `shown${EVENT_KEY}`,\n    CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n  }\n\n  const ClassName = {\n    DROPDOWN_MENU : 'dropdown-menu',\n    ACTIVE        : 'active',\n    DISABLED      : 'disabled',\n    FADE          : 'fade',\n    SHOW          : 'show'\n  }\n\n  const Selector = {\n    DROPDOWN              : '.dropdown',\n    NAV_LIST_GROUP        : '.nav, .list-group',\n    ACTIVE                : '.active',\n    ACTIVE_UL             : '> li > .active',\n    DATA_TOGGLE           : '[data-toggle=\"tab\"], [data-toggle=\"pill\"], [data-toggle=\"list\"]',\n    DROPDOWN_TOGGLE       : '.dropdown-toggle',\n    DROPDOWN_ACTIVE_CHILD : '> .dropdown-menu .active'\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  class Tab {\n\n    constructor(element) {\n      this._element = element\n    }\n\n\n    // getters\n\n    static get VERSION() {\n      return VERSION\n    }\n\n\n    // public\n\n    show() {\n      if (this._element.parentNode &&\n          this._element.parentNode.nodeType === Node.ELEMENT_NODE &&\n          $(this._element).hasClass(ClassName.ACTIVE) ||\n          $(this._element).hasClass(ClassName.DISABLED)) {\n        return\n      }\n\n      let target\n      let previous\n      const listElement = $(this._element).closest(Selector.NAV_LIST_GROUP)[0]\n      const selector    = Util.getSelectorFromElement(this._element)\n\n      if (listElement) {\n        const itemSelector = listElement.nodeName === 'UL' ? Selector.ACTIVE_UL : Selector.ACTIVE\n        previous = $.makeArray($(listElement).find(itemSelector))\n        previous = previous[previous.length - 1]\n      }\n\n      const hideEvent = $.Event(Event.HIDE, {\n        relatedTarget: this._element\n      })\n\n      const showEvent = $.Event(Event.SHOW, {\n        relatedTarget: previous\n      })\n\n      if (previous) {\n        $(previous).trigger(hideEvent)\n      }\n\n      $(this._element).trigger(showEvent)\n\n      if (showEvent.isDefaultPrevented() ||\n         hideEvent.isDefaultPrevented()) {\n        return\n      }\n\n      if (selector) {\n        target = $(selector)[0]\n      }\n\n      this._activate(\n        this._element,\n        listElement\n      )\n\n      const complete = () => {\n        const hiddenEvent = $.Event(Event.HIDDEN, {\n          relatedTarget: this._element\n        })\n\n        const shownEvent = $.Event(Event.SHOWN, {\n          relatedTarget: previous\n        })\n\n        $(previous).trigger(hiddenEvent)\n        $(this._element).trigger(shownEvent)\n      }\n\n      if (target) {\n        this._activate(target, target.parentNode, complete)\n      } else {\n        complete()\n      }\n    }\n\n    dispose() {\n      $.removeData(this._element, DATA_KEY)\n      this._element = null\n    }\n\n\n    // private\n\n    _activate(element, container, callback) {\n      let activeElements\n      if (container.nodeName === 'UL') {\n        activeElements = $(container).find(Selector.ACTIVE_UL)\n      } else {\n        activeElements = $(container).children(Selector.ACTIVE)\n      }\n\n      const active          = activeElements[0]\n      const isTransitioning = callback\n        && Util.supportsTransitionEnd()\n        && (active && $(active).hasClass(ClassName.FADE))\n\n      const complete = () => this._transitionComplete(\n        element,\n        active,\n        callback\n      )\n\n      if (active && isTransitioning) {\n        $(active)\n          .one(Util.TRANSITION_END, complete)\n          .emulateTransitionEnd(TRANSITION_DURATION)\n      } else {\n        complete()\n      }\n    }\n\n    _transitionComplete(element, active, callback) {\n      if (active) {\n        $(active).removeClass(`${ClassName.SHOW} ${ClassName.ACTIVE}`)\n\n        const dropdownChild = $(active.parentNode).find(\n          Selector.DROPDOWN_ACTIVE_CHILD\n        )[0]\n\n        if (dropdownChild) {\n          $(dropdownChild).removeClass(ClassName.ACTIVE)\n        }\n\n        if (active.getAttribute('role') === 'tab') {\n          active.setAttribute('aria-selected', false)\n        }\n      }\n\n      $(element).addClass(ClassName.ACTIVE)\n      if (element.getAttribute('role') === 'tab') {\n        element.setAttribute('aria-selected', true)\n      }\n\n      Util.reflow(element)\n      $(element).addClass(ClassName.SHOW)\n\n      if (element.parentNode &&\n          $(element.parentNode).hasClass(ClassName.DROPDOWN_MENU)) {\n\n        const dropdownElement = $(element).closest(Selector.DROPDOWN)[0]\n        if (dropdownElement) {\n          $(dropdownElement).find(Selector.DROPDOWN_TOGGLE).addClass(ClassName.ACTIVE)\n        }\n\n        element.setAttribute('aria-expanded', true)\n      }\n\n      if (callback) {\n        callback()\n      }\n    }\n\n\n    // static\n\n    static _jQueryInterface(config) {\n      return this.each(function () {\n        const $this = $(this)\n        let data    = $this.data(DATA_KEY)\n\n        if (!data) {\n          data = new Tab(this)\n          $this.data(DATA_KEY, data)\n        }\n\n        if (typeof config === 'string') {\n          if (typeof data[config] === 'undefined') {\n            throw new Error(`No method named \"${config}\"`)\n          }\n          data[config]()\n        }\n      })\n    }\n\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n  $(document)\n    .on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n      event.preventDefault()\n      Tab._jQueryInterface.call($(this), 'show')\n    })\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $.fn[NAME]             = Tab._jQueryInterface\n  $.fn[NAME].Constructor = Tab\n  $.fn[NAME].noConflict  = function () {\n    $.fn[NAME] = JQUERY_NO_CONFLICT\n    return Tab._jQueryInterface\n  }\n\n  return Tab\n\n})($)\n\nexport default Tab\n","import $ from 'jquery'\nimport Alert from './alert'\nimport Button from './button'\nimport Carousel from './carousel'\nimport Collapse from './collapse'\nimport Dropdown from './dropdown'\nimport Modal from './modal'\nimport Popover from './popover'\nimport Scrollspy from './scrollspy'\nimport Tab from './tab'\nimport Tooltip from './tooltip'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-alpha.6): index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n(($) => {\n  if (typeof $ === 'undefined') {\n    throw new Error('Bootstrap\\'s JavaScript requires jQuery. jQuery must be included before Bootstrap\\'s JavaScript.')\n  }\n\n  const version = $.fn.jquery.split(' ')[0].split('.')\n  const minMajor = 1\n  const ltMajor  = 2\n  const minMinor = 9\n  const minPatch = 1\n  const maxMajor = 4\n\n  if (version[0] < ltMajor && version[1] < minMinor || version[0] === minMajor && version[1] === minMinor && version[2] < minPatch || version[0] >= maxMajor) {\n    throw new Error('Bootstrap\\'s JavaScript requires at least jQuery v1.9.1 but less than v4.0.0')\n  }\n})($)\n\nexport {\n  Util,\n  Alert,\n  Button,\n  Carousel,\n  Collapse,\n  Dropdown,\n  Modal,\n  Popover,\n  Scrollspy,\n  Tab,\n  Tooltip\n}\n"],"names":["Util","$","transition","MAX_UID","toType","obj","toString","call","match","toLowerCase","getSpecialTransitionEndEvent","end","event","target","is","handleObj","handler","apply","arguments","undefined","transitionEndTest","window","QUnit","transitionEndEmulator","duration","called","one","TRANSITION_END","triggerTransitionEnd","setTransitionEndSupport","fn","emulateTransitionEnd","supportsTransitionEnd","special","escapeId","selector","escapeSelector","substr","replace","prefix","Math","random","document","getElementById","element","getAttribute","charAt","$selector","find","length","error","offsetHeight","trigger","Boolean","nodeType","componentName","config","configTypes","property","Object","prototype","hasOwnProperty","expectedTypes","value","valueType","isElement","RegExp","test","Error","toUpperCase","Alert","NAME","VERSION","DATA_KEY","EVENT_KEY","DATA_API_KEY","JQUERY_NO_CONFLICT","TRANSITION_DURATION","Selector","Event","ClassName","_element","close","rootElement","_getRootElement","customEvent","_triggerCloseEvent","isDefaultPrevented","_removeElement","dispose","removeData","getSelectorFromElement","parent","closest","ALERT","closeEvent","CLOSE","removeClass","SHOW","hasClass","FADE","_destroyElement","detach","CLOSED","remove","_jQueryInterface","each","$element","data","_handleDismiss","alertInstance","preventDefault","on","CLICK_DATA_API","DISMISS","Constructor","noConflict","Button","toggle","triggerChangeEvent","addAriaPressed","DATA_TOGGLE","input","INPUT","type","checked","ACTIVE","activeElement","hasAttribute","classList","contains","focus","setAttribute","toggleClass","DATA_TOGGLE_CARROT","button","BUTTON","FOCUS_BLUR_DATA_API","FOCUS","Carousel","ARROW_LEFT_KEYCODE","ARROW_RIGHT_KEYCODE","TOUCHEVENT_COMPAT_WAIT","Default","DefaultType","Direction","_items","_interval","_activeElement","_isPaused","_isSliding","touchTimeout","_config","_getConfig","_indicatorsElement","INDICATORS","_addEventListeners","next","_slide","NEXT","nextWhenVisible","hidden","css","prev","PREV","pause","NEXT_PREV","cycle","interval","setInterval","visibilityState","bind","to","index","ACTIVE_ITEM","activeIndex","_getItemIndex","SLID","direction","off","typeCheckConfig","keyboard","KEYDOWN","_keydown","MOUSEENTER","MOUSELEAVE","documentElement","TOUCHEND","setTimeout","tagName","which","makeArray","ITEM","indexOf","_getItemByDirection","isNextDirection","isPrevDirection","lastItemIndex","isGoingToWrap","wrap","delta","itemIndex","_triggerSlideEvent","relatedTarget","eventDirectionName","targetIndex","fromIndex","slideEvent","SLIDE","_setActiveIndicatorElement","nextIndicator","children","addClass","activeElementIndex","nextElement","nextElementIndex","isCycling","directionalClassName","orderClassName","LEFT","RIGHT","slidEvent","reflow","action","slide","_dataApiClickHandler","CAROUSEL","slideIndex","DATA_SLIDE","LOAD_DATA_API","DATA_RIDE","$carousel","Collapse","Dimension","_isTransitioning","_triggerArray","id","tabToggles","i","elem","filter","push","_parent","_getParent","_addAriaAndCollapsedClass","hide","show","actives","activesData","ACTIVES","startEvent","dimension","_getDimension","COLLAPSE","COLLAPSING","style","COLLAPSED","attr","setTransitioning","complete","SHOWN","capitalizedDimension","slice","scrollSize","HIDE","getBoundingClientRect","$elem","HIDDEN","isTransitioning","hasWidth","WIDTH","HEIGHT","jquery","_getTargetFromElement","triggerArray","isOpen","$this","currentTarget","$trigger","$target","_extends","Dropdown","ESCAPE_KEYCODE","SPACE_KEYCODE","TAB_KEYCODE","ARROW_UP_KEYCODE","ARROW_DOWN_KEYCODE","RIGHT_MOUSE_BUTTON_WHICH","REGEXP_KEYDOWN","AttachmentMap","_popper","_menu","_getMenuElement","_inNavbar","_detectNavbar","disabled","DISABLED","_getParentFromElement","isActive","_clearMenus","showEvent","Popper","DROPUP","MENULEFT","MENURIGHT","boundary","POSITION_STATIC","_getPopperConfig","NAVBAR_NAV","noop","destroy","update","scheduleUpdate","CLICK","stopPropagation","constructor","MENU","_getPlacement","$parentDropdown","placement","BOTTOM","TOP","TOPEND","DROPRIGHT","DROPLEFT","BOTTOMEND","offsetConf","offset","offsets","popperConfig","flip","toggles","context","dropdownMenu","hideEvent","parentNode","_dataApiKeydownHandler","items","VISIBLE_ITEMS","get","KEYDOWN_DATA_API","KEYUP_DATA_API","FORM_CHILD","e","Modal","BACKDROP_TRANSITION_DURATION","_dialog","DIALOG","_backdrop","_isShown","_isBodyOverflowing","_ignoreBackdropClick","_originalBodyPadding","_scrollbarWidth","_checkScrollbar","_setScrollbar","_adjustDialog","body","OPEN","_setEscapeEvent","_setResizeEvent","CLICK_DISMISS","DATA_DISMISS","MOUSEDOWN_DISMISS","MOUSEUP_DISMISS","_showBackdrop","_showElement","FOCUSIN","_hideModal","handleUpdate","Node","ELEMENT_NODE","appendChild","display","removeAttribute","scrollTop","_enforceFocus","shownEvent","transitionComplete","has","KEYDOWN_DISMISS","RESIZE","_resetAdjustments","_resetScrollbar","_removeBackdrop","callback","animate","backdrop","doAnimate","createElement","className","BACKDROP","appendTo","callbackRemove","isModalOverflowing","scrollHeight","clientHeight","paddingLeft","paddingRight","rect","left","right","innerWidth","_getScrollbarWidth","FIXED_CONTENT","actualPadding","calculatedPadding","parseFloat","STICKY_CONTENT","actualMargin","marginRight","calculatedMargin","NAVBAR_TOGGLER","padding","margin","scrollDiv","SCROLLBAR_MEASURER","scrollbarWidth","width","clientWidth","removeChild","Tooltip","CLASS_PREFIX","BSCLS_PREFIX_REGEX","HoverState","Trigger","_isEnabled","_timeout","_hoverState","_activeTrigger","tip","_setListeners","enable","disable","toggleEnabled","dataKey","_getDelegateConfig","click","_isWithActiveTrigger","_enter","_leave","getTipElement","isWithContent","isInTheDom","ownerDocument","tipId","getUID","setContent","animation","attachment","_getAttachment","addAttachmentClass","container","INSERTED","fallbackPlacement","ARROW","originalPlacement","_handlePopperPlacementChange","_fixTransition","prevHoverState","OUT","_TRANSITION_DURATION","_cleanTipClass","HOVER","getTitle","template","$tip","setElementContent","TOOLTIP_INNER","content","html","empty","append","text","title","triggers","split","forEach","MANUAL","eventIn","eventOut","FOCUSOUT","_fixTitle","titleType","delay","key","tabClass","join","initConfigAnimation","Popover","_getContent","TITLE","CONTENT","ScrollSpy","OffsetMethod","_scrollElement","_selector","NAV_LINKS","LIST_ITEMS","DROPDOWN_ITEMS","_offsets","_targets","_activeTarget","_scrollHeight","SCROLL","_process","refresh","autoMethod","POSITION","OFFSET","offsetMethod","method","offsetBase","_getScrollTop","_getScrollHeight","targets","map","targetSelector","targetBCR","height","top","item","sort","a","b","pageYOffset","max","_getOffsetHeight","innerHeight","maxScroll","_activate","_clear","isActiveTarget","queries","$link","DROPDOWN_ITEM","DROPDOWN","DROPDOWN_TOGGLE","parents","NAV_LIST_GROUP","NAV_ITEMS","ACTIVATE","scrollSpys","DATA_SPY","$spy","Tab","previous","listElement","itemSelector","nodeName","ACTIVE_UL","hiddenEvent","activeElements","active","_transitionComplete","dropdownChild","DROPDOWN_ACTIVE_CHILD","DROPDOWN_MENU","dropdownElement","version","minMajor","ltMajor","minMinor","minPatch","maxMajor"],"mappings":"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"}
\ No newline at end of file
index 2ea49e37e1bf23c1241dbf058d88699e807deea1..dd3645a137b0a9e674876427880d1c5d08ada0d1 100644 (file)
@@ -1,6 +1,6 @@
 /*!
   * Bootstrap v4.0.0-beta.3 (https://getbootstrap.com)
-  * Copyright 2011-2017 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
+  * Copyright 2011-2018 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
   * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
   */
 (function (global, factory) {
@@ -1136,7 +1136,7 @@ var Collapse = function ($$$1) {
       var activesData;
 
       if (this._parent) {
-        actives = $$$1.makeArray($$$1(this._parent).children().children(Selector.ACTIVES));
+        actives = $$$1.makeArray($$$1(this._parent).find(Selector.ACTIVES).filter("[data-parent=\"" + this._config.parent + "\"]"));
 
         if (!actives.length) {
           actives = null;
index 5185d67355cf5ba9f37477c3146f0ea663c364c4..67a63c1ec59c6ab107cde4a484c2b82b6423c745 100644 (file)
@@ -1 +1 @@
-{"version":3,"file":"bootstrap.js","sources":["../../rollupPluginBabelHelpers","../../js/src/util.js","../../js/src/alert.js","../../js/src/button.js","../../js/src/carousel.js","../../js/src/collapse.js","../../js/src/dropdown.js","../../js/src/modal.js","../../js/src/tooltip.js","../../js/src/popover.js","../../js/src/scrollspy.js","../../js/src/tab.js","../../js/src/index.js"],"sourcesContent":["export { _createClass as createClass, _extends as extends, _inheritsLoose as inheritsLoose };\n\nfunction _defineProperties(target, props) {\n  for (var i = 0; i < props.length; i++) {\n    var descriptor = props[i];\n    descriptor.enumerable = descriptor.enumerable || false;\n    descriptor.configurable = true;\n    if (\"value\" in descriptor) descriptor.writable = true;\n    Object.defineProperty(target, descriptor.key, descriptor);\n  }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n  if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n  if (staticProps) _defineProperties(Constructor, staticProps);\n  return Constructor;\n}\n\nfunction _extends() {\n  _extends = Object.assign || function (target) {\n    for (var i = 1; i < arguments.length; i++) {\n      var source = arguments[i];\n\n      for (var key in source) {\n        if (Object.prototype.hasOwnProperty.call(source, key)) {\n          target[key] = source[key];\n        }\n      }\n    }\n\n    return target;\n  };\n\n  return _extends.apply(this, arguments);\n}\n\nfunction _inheritsLoose(subClass, superClass) {\n  subClass.prototype = Object.create(superClass.prototype);\n  subClass.prototype.constructor = subClass;\n  subClass.__proto__ = superClass;\n}","import $ from 'jquery'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-beta.3): util.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Util = (($) => {\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Private TransitionEnd Helpers\n   * ------------------------------------------------------------------------\n   */\n\n  let transition = false\n\n  const MAX_UID = 1000000\n\n  // shoutout AngusCroll (https://goo.gl/pxwQGp)\n  function toType(obj) {\n    return {}.toString.call(obj).match(/\\s([a-zA-Z]+)/)[1].toLowerCase()\n  }\n\n  function getSpecialTransitionEndEvent() {\n    return {\n      bindType: transition.end,\n      delegateType: transition.end,\n      handle(event) {\n        if ($(event.target).is(this)) {\n          return event.handleObj.handler.apply(this, arguments) // eslint-disable-line prefer-rest-params\n        }\n        return undefined // eslint-disable-line no-undefined\n      }\n    }\n  }\n\n  function transitionEndTest() {\n    if (window.QUnit) {\n      return false\n    }\n\n    return {\n      end: 'transitionend'\n    }\n  }\n\n  function transitionEndEmulator(duration) {\n    let called = false\n\n    $(this).one(Util.TRANSITION_END, () => {\n      called = true\n    })\n\n    setTimeout(() => {\n      if (!called) {\n        Util.triggerTransitionEnd(this)\n      }\n    }, duration)\n\n    return this\n  }\n\n  function setTransitionEndSupport() {\n    transition = transitionEndTest()\n\n    $.fn.emulateTransitionEnd = transitionEndEmulator\n\n    if (Util.supportsTransitionEnd()) {\n      $.event.special[Util.TRANSITION_END] = getSpecialTransitionEndEvent()\n    }\n  }\n\n  function escapeId(selector) {\n    // we escape IDs in case of special selectors (selector = '#myId:something')\n    // $.escapeSelector does not exist in jQuery < 3\n    selector = typeof $.escapeSelector === 'function' ? $.escapeSelector(selector).substr(1) :\n      selector.replace(/(:|\\.|\\[|\\]|,|=|@)/g, '\\\\$1')\n\n    return selector\n  }\n\n  /**\n   * --------------------------------------------------------------------------\n   * Public Util Api\n   * --------------------------------------------------------------------------\n   */\n\n  const Util = {\n\n    TRANSITION_END: 'bsTransitionEnd',\n\n    getUID(prefix) {\n      do {\n        // eslint-disable-next-line no-bitwise\n        prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n      } while (document.getElementById(prefix))\n      return prefix\n    },\n\n    getSelectorFromElement(element) {\n      let selector = element.getAttribute('data-target')\n      if (!selector || selector === '#') {\n        selector = element.getAttribute('href') || ''\n      }\n\n      // if it's an ID\n      if (selector.charAt(0) === '#') {\n        selector = escapeId(selector)\n      }\n\n      try {\n        const $selector = $(document).find(selector)\n        return $selector.length > 0 ? selector : null\n      } catch (error) {\n        return null\n      }\n    },\n\n    reflow(element) {\n      return element.offsetHeight\n    },\n\n    triggerTransitionEnd(element) {\n      $(element).trigger(transition.end)\n    },\n\n    supportsTransitionEnd() {\n      return Boolean(transition)\n    },\n\n    isElement(obj) {\n      return (obj[0] || obj).nodeType\n    },\n\n    typeCheckConfig(componentName, config, configTypes) {\n      for (const property in configTypes) {\n        if (Object.prototype.hasOwnProperty.call(configTypes, property)) {\n          const expectedTypes = configTypes[property]\n          const value         = config[property]\n          const valueType     = value && Util.isElement(value) ?\n                                'element' : toType(value)\n\n          if (!new RegExp(expectedTypes).test(valueType)) {\n            throw new Error(\n              `${componentName.toUpperCase()}: ` +\n              `Option \"${property}\" provided type \"${valueType}\" ` +\n              `but expected type \"${expectedTypes}\".`)\n          }\n        }\n      }\n    }\n  }\n\n  setTransitionEndSupport()\n\n  return Util\n\n})($)\n\nexport default Util\n","import $ from 'jquery'\nimport Util from './util'\n\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-beta.3): alert.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Alert = (($) => {\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  const NAME                = 'alert'\n  const VERSION             = '4.0.0-beta.3'\n  const DATA_KEY            = 'bs.alert'\n  const EVENT_KEY           = `.${DATA_KEY}`\n  const DATA_API_KEY        = '.data-api'\n  const JQUERY_NO_CONFLICT  = $.fn[NAME]\n  const TRANSITION_DURATION = 150\n\n  const Selector = {\n    DISMISS : '[data-dismiss=\"alert\"]'\n  }\n\n  const Event = {\n    CLOSE          : `close${EVENT_KEY}`,\n    CLOSED         : `closed${EVENT_KEY}`,\n    CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n  }\n\n  const ClassName = {\n    ALERT : 'alert',\n    FADE  : 'fade',\n    SHOW  : 'show'\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  class Alert {\n\n    constructor(element) {\n      this._element = element\n    }\n\n\n    // getters\n\n    static get VERSION() {\n      return VERSION\n    }\n\n\n    // public\n\n    close(element) {\n      element = element || this._element\n\n      const rootElement = this._getRootElement(element)\n      const customEvent = this._triggerCloseEvent(rootElement)\n\n      if (customEvent.isDefaultPrevented()) {\n        return\n      }\n\n      this._removeElement(rootElement)\n    }\n\n    dispose() {\n      $.removeData(this._element, DATA_KEY)\n      this._element = null\n    }\n\n\n    // private\n\n    _getRootElement(element) {\n      const selector = Util.getSelectorFromElement(element)\n      let parent     = false\n\n      if (selector) {\n        parent = $(selector)[0]\n      }\n\n      if (!parent) {\n        parent = $(element).closest(`.${ClassName.ALERT}`)[0]\n      }\n\n      return parent\n    }\n\n    _triggerCloseEvent(element) {\n      const closeEvent = $.Event(Event.CLOSE)\n\n      $(element).trigger(closeEvent)\n      return closeEvent\n    }\n\n    _removeElement(element) {\n      $(element).removeClass(ClassName.SHOW)\n\n      if (!Util.supportsTransitionEnd() ||\n          !$(element).hasClass(ClassName.FADE)) {\n        this._destroyElement(element)\n        return\n      }\n\n      $(element)\n        .one(Util.TRANSITION_END, (event) => this._destroyElement(element, event))\n        .emulateTransitionEnd(TRANSITION_DURATION)\n    }\n\n    _destroyElement(element) {\n      $(element)\n        .detach()\n        .trigger(Event.CLOSED)\n        .remove()\n    }\n\n\n    // static\n\n    static _jQueryInterface(config) {\n      return this.each(function () {\n        const $element = $(this)\n        let data       = $element.data(DATA_KEY)\n\n        if (!data) {\n          data = new Alert(this)\n          $element.data(DATA_KEY, data)\n        }\n\n        if (config === 'close') {\n          data[config](this)\n        }\n      })\n    }\n\n    static _handleDismiss(alertInstance) {\n      return function (event) {\n        if (event) {\n          event.preventDefault()\n        }\n\n        alertInstance.close(this)\n      }\n    }\n\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n  $(document).on(\n    Event.CLICK_DATA_API,\n    Selector.DISMISS,\n    Alert._handleDismiss(new Alert())\n  )\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $.fn[NAME]             = Alert._jQueryInterface\n  $.fn[NAME].Constructor = Alert\n  $.fn[NAME].noConflict  = function () {\n    $.fn[NAME] = JQUERY_NO_CONFLICT\n    return Alert._jQueryInterface\n  }\n\n  return Alert\n\n})($)\n\nexport default Alert\n","import $ from 'jquery'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-beta.3): button.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Button = (($) => {\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  const NAME                = 'button'\n  const VERSION             = '4.0.0-beta.3'\n  const DATA_KEY            = 'bs.button'\n  const EVENT_KEY           = `.${DATA_KEY}`\n  const DATA_API_KEY        = '.data-api'\n  const JQUERY_NO_CONFLICT  = $.fn[NAME]\n\n  const ClassName = {\n    ACTIVE : 'active',\n    BUTTON : 'btn',\n    FOCUS  : 'focus'\n  }\n\n  const Selector = {\n    DATA_TOGGLE_CARROT : '[data-toggle^=\"button\"]',\n    DATA_TOGGLE        : '[data-toggle=\"buttons\"]',\n    INPUT              : 'input',\n    ACTIVE             : '.active',\n    BUTTON             : '.btn'\n  }\n\n  const Event = {\n    CLICK_DATA_API      : `click${EVENT_KEY}${DATA_API_KEY}`,\n    FOCUS_BLUR_DATA_API : `focus${EVENT_KEY}${DATA_API_KEY} `\n                        + `blur${EVENT_KEY}${DATA_API_KEY}`\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  class Button {\n\n    constructor(element) {\n      this._element = element\n    }\n\n\n    // getters\n\n    static get VERSION() {\n      return VERSION\n    }\n\n\n    // public\n\n    toggle() {\n      let triggerChangeEvent = true\n      let addAriaPressed = true\n      const rootElement      = $(this._element).closest(\n        Selector.DATA_TOGGLE\n      )[0]\n\n      if (rootElement) {\n        const input = $(this._element).find(Selector.INPUT)[0]\n\n        if (input) {\n          if (input.type === 'radio') {\n            if (input.checked &&\n              $(this._element).hasClass(ClassName.ACTIVE)) {\n              triggerChangeEvent = false\n\n            } else {\n              const activeElement = $(rootElement).find(Selector.ACTIVE)[0]\n\n              if (activeElement) {\n                $(activeElement).removeClass(ClassName.ACTIVE)\n              }\n            }\n          }\n\n          if (triggerChangeEvent) {\n            if (input.hasAttribute('disabled') ||\n              rootElement.hasAttribute('disabled') ||\n              input.classList.contains('disabled') ||\n              rootElement.classList.contains('disabled')) {\n              return\n            }\n            input.checked = !$(this._element).hasClass(ClassName.ACTIVE)\n            $(input).trigger('change')\n          }\n\n          input.focus()\n          addAriaPressed = false\n        }\n\n      }\n\n      if (addAriaPressed) {\n        this._element.setAttribute('aria-pressed',\n          !$(this._element).hasClass(ClassName.ACTIVE))\n      }\n\n      if (triggerChangeEvent) {\n        $(this._element).toggleClass(ClassName.ACTIVE)\n      }\n    }\n\n    dispose() {\n      $.removeData(this._element, DATA_KEY)\n      this._element = null\n    }\n\n\n    // static\n\n    static _jQueryInterface(config) {\n      return this.each(function () {\n        let data = $(this).data(DATA_KEY)\n\n        if (!data) {\n          data = new Button(this)\n          $(this).data(DATA_KEY, data)\n        }\n\n        if (config === 'toggle') {\n          data[config]()\n        }\n      })\n    }\n\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n  $(document)\n    .on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE_CARROT, (event) => {\n      event.preventDefault()\n\n      let button = event.target\n\n      if (!$(button).hasClass(ClassName.BUTTON)) {\n        button = $(button).closest(Selector.BUTTON)\n      }\n\n      Button._jQueryInterface.call($(button), 'toggle')\n    })\n    .on(Event.FOCUS_BLUR_DATA_API, Selector.DATA_TOGGLE_CARROT, (event) => {\n      const button = $(event.target).closest(Selector.BUTTON)[0]\n      $(button).toggleClass(ClassName.FOCUS, /^focus(in)?$/.test(event.type))\n    })\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $.fn[NAME]             = Button._jQueryInterface\n  $.fn[NAME].Constructor = Button\n  $.fn[NAME].noConflict  = function () {\n    $.fn[NAME] = JQUERY_NO_CONFLICT\n    return Button._jQueryInterface\n  }\n\n  return Button\n\n})($)\n\nexport default Button\n","import $ from 'jquery'\nimport Util from './util'\n\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-beta.3): carousel.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Carousel = (($) => {\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  const NAME                   = 'carousel'\n  const VERSION                = '4.0.0-beta.3'\n  const DATA_KEY               = 'bs.carousel'\n  const EVENT_KEY              = `.${DATA_KEY}`\n  const DATA_API_KEY           = '.data-api'\n  const JQUERY_NO_CONFLICT     = $.fn[NAME]\n  const TRANSITION_DURATION    = 600\n  const ARROW_LEFT_KEYCODE     = 37 // KeyboardEvent.which value for left arrow key\n  const ARROW_RIGHT_KEYCODE    = 39 // KeyboardEvent.which value for right arrow key\n  const TOUCHEVENT_COMPAT_WAIT = 500 // Time for mouse compat events to fire after touch\n\n  const Default = {\n    interval : 5000,\n    keyboard : true,\n    slide    : false,\n    pause    : 'hover',\n    wrap     : true\n  }\n\n  const DefaultType = {\n    interval : '(number|boolean)',\n    keyboard : 'boolean',\n    slide    : '(boolean|string)',\n    pause    : '(string|boolean)',\n    wrap     : 'boolean'\n  }\n\n  const Direction = {\n    NEXT     : 'next',\n    PREV     : 'prev',\n    LEFT     : 'left',\n    RIGHT    : 'right'\n  }\n\n  const Event = {\n    SLIDE          : `slide${EVENT_KEY}`,\n    SLID           : `slid${EVENT_KEY}`,\n    KEYDOWN        : `keydown${EVENT_KEY}`,\n    MOUSEENTER     : `mouseenter${EVENT_KEY}`,\n    MOUSELEAVE     : `mouseleave${EVENT_KEY}`,\n    TOUCHEND       : `touchend${EVENT_KEY}`,\n    LOAD_DATA_API  : `load${EVENT_KEY}${DATA_API_KEY}`,\n    CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n  }\n\n  const ClassName = {\n    CAROUSEL : 'carousel',\n    ACTIVE   : 'active',\n    SLIDE    : 'slide',\n    RIGHT    : 'carousel-item-right',\n    LEFT     : 'carousel-item-left',\n    NEXT     : 'carousel-item-next',\n    PREV     : 'carousel-item-prev',\n    ITEM     : 'carousel-item'\n  }\n\n  const Selector = {\n    ACTIVE      : '.active',\n    ACTIVE_ITEM : '.active.carousel-item',\n    ITEM        : '.carousel-item',\n    NEXT_PREV   : '.carousel-item-next, .carousel-item-prev',\n    INDICATORS  : '.carousel-indicators',\n    DATA_SLIDE  : '[data-slide], [data-slide-to]',\n    DATA_RIDE   : '[data-ride=\"carousel\"]'\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  class Carousel {\n\n    constructor(element, config) {\n      this._items             = null\n      this._interval          = null\n      this._activeElement     = null\n\n      this._isPaused          = false\n      this._isSliding         = false\n\n      this.touchTimeout       = null\n\n      this._config            = this._getConfig(config)\n      this._element           = $(element)[0]\n      this._indicatorsElement = $(this._element).find(Selector.INDICATORS)[0]\n\n      this._addEventListeners()\n    }\n\n\n    // getters\n\n    static get VERSION() {\n      return VERSION\n    }\n\n    static get Default() {\n      return Default\n    }\n\n\n    // public\n\n    next() {\n      if (!this._isSliding) {\n        this._slide(Direction.NEXT)\n      }\n    }\n\n    nextWhenVisible() {\n      // Don't call next when the page isn't visible\n      // or the carousel or its parent isn't visible\n      if (!document.hidden &&\n        ($(this._element).is(':visible') && $(this._element).css('visibility') !== 'hidden')) {\n        this.next()\n      }\n    }\n\n    prev() {\n      if (!this._isSliding) {\n        this._slide(Direction.PREV)\n      }\n    }\n\n    pause(event) {\n      if (!event) {\n        this._isPaused = true\n      }\n\n      if ($(this._element).find(Selector.NEXT_PREV)[0] &&\n        Util.supportsTransitionEnd()) {\n        Util.triggerTransitionEnd(this._element)\n        this.cycle(true)\n      }\n\n      clearInterval(this._interval)\n      this._interval = null\n    }\n\n    cycle(event) {\n      if (!event) {\n        this._isPaused = false\n      }\n\n      if (this._interval) {\n        clearInterval(this._interval)\n        this._interval = null\n      }\n\n      if (this._config.interval && !this._isPaused) {\n        this._interval = setInterval(\n          (document.visibilityState ? this.nextWhenVisible : this.next).bind(this),\n          this._config.interval\n        )\n      }\n    }\n\n    to(index) {\n      this._activeElement = $(this._element).find(Selector.ACTIVE_ITEM)[0]\n\n      const activeIndex = this._getItemIndex(this._activeElement)\n\n      if (index > this._items.length - 1 || index < 0) {\n        return\n      }\n\n      if (this._isSliding) {\n        $(this._element).one(Event.SLID, () => this.to(index))\n        return\n      }\n\n      if (activeIndex === index) {\n        this.pause()\n        this.cycle()\n        return\n      }\n\n      const direction = index > activeIndex ?\n        Direction.NEXT :\n        Direction.PREV\n\n      this._slide(direction, this._items[index])\n    }\n\n    dispose() {\n      $(this._element).off(EVENT_KEY)\n      $.removeData(this._element, DATA_KEY)\n\n      this._items             = null\n      this._config            = null\n      this._element           = null\n      this._interval          = null\n      this._isPaused          = null\n      this._isSliding         = null\n      this._activeElement     = null\n      this._indicatorsElement = null\n    }\n\n\n    // private\n\n    _getConfig(config) {\n      config = {\n        ...Default,\n        ...config\n      }\n      Util.typeCheckConfig(NAME, config, DefaultType)\n      return config\n    }\n\n    _addEventListeners() {\n      if (this._config.keyboard) {\n        $(this._element)\n          .on(Event.KEYDOWN, (event) => this._keydown(event))\n      }\n\n      if (this._config.pause === 'hover') {\n        $(this._element)\n          .on(Event.MOUSEENTER, (event) => this.pause(event))\n          .on(Event.MOUSELEAVE, (event) => this.cycle(event))\n        if ('ontouchstart' in document.documentElement) {\n          // if it's a touch-enabled device, mouseenter/leave are fired as\n          // part of the mouse compatibility events on first tap - the carousel\n          // would stop cycling until user tapped out of it;\n          // here, we listen for touchend, explicitly pause the carousel\n          // (as if it's the second time we tap on it, mouseenter compat event\n          // is NOT fired) and after a timeout (to allow for mouse compatibility\n          // events to fire) we explicitly restart cycling\n          $(this._element).on(Event.TOUCHEND, () => {\n            this.pause()\n            if (this.touchTimeout) {\n              clearTimeout(this.touchTimeout)\n            }\n            this.touchTimeout = setTimeout((event) => this.cycle(event), TOUCHEVENT_COMPAT_WAIT + this._config.interval)\n          })\n        }\n      }\n    }\n\n    _keydown(event) {\n      if (/input|textarea/i.test(event.target.tagName)) {\n        return\n      }\n\n      switch (event.which) {\n        case ARROW_LEFT_KEYCODE:\n          event.preventDefault()\n          this.prev()\n          break\n        case ARROW_RIGHT_KEYCODE:\n          event.preventDefault()\n          this.next()\n          break\n        default:\n          return\n      }\n    }\n\n    _getItemIndex(element) {\n      this._items = $.makeArray($(element).parent().find(Selector.ITEM))\n      return this._items.indexOf(element)\n    }\n\n    _getItemByDirection(direction, activeElement) {\n      const isNextDirection = direction === Direction.NEXT\n      const isPrevDirection = direction === Direction.PREV\n      const activeIndex     = this._getItemIndex(activeElement)\n      const lastItemIndex   = this._items.length - 1\n      const isGoingToWrap   = isPrevDirection && activeIndex === 0 ||\n                              isNextDirection && activeIndex === lastItemIndex\n\n      if (isGoingToWrap && !this._config.wrap) {\n        return activeElement\n      }\n\n      const delta     = direction === Direction.PREV ? -1 : 1\n      const itemIndex = (activeIndex + delta) % this._items.length\n\n      return itemIndex === -1 ?\n        this._items[this._items.length - 1] : this._items[itemIndex]\n    }\n\n\n    _triggerSlideEvent(relatedTarget, eventDirectionName) {\n      const targetIndex = this._getItemIndex(relatedTarget)\n      const fromIndex = this._getItemIndex($(this._element).find(Selector.ACTIVE_ITEM)[0])\n      const slideEvent = $.Event(Event.SLIDE, {\n        relatedTarget,\n        direction: eventDirectionName,\n        from: fromIndex,\n        to: targetIndex\n      })\n\n      $(this._element).trigger(slideEvent)\n\n      return slideEvent\n    }\n\n    _setActiveIndicatorElement(element) {\n      if (this._indicatorsElement) {\n        $(this._indicatorsElement)\n          .find(Selector.ACTIVE)\n          .removeClass(ClassName.ACTIVE)\n\n        const nextIndicator = this._indicatorsElement.children[\n          this._getItemIndex(element)\n        ]\n\n        if (nextIndicator) {\n          $(nextIndicator).addClass(ClassName.ACTIVE)\n        }\n      }\n    }\n\n    _slide(direction, element) {\n      const activeElement = $(this._element).find(Selector.ACTIVE_ITEM)[0]\n      const activeElementIndex = this._getItemIndex(activeElement)\n      const nextElement   = element || activeElement &&\n        this._getItemByDirection(direction, activeElement)\n      const nextElementIndex = this._getItemIndex(nextElement)\n      const isCycling = Boolean(this._interval)\n\n      let directionalClassName\n      let orderClassName\n      let eventDirectionName\n\n      if (direction === Direction.NEXT) {\n        directionalClassName = ClassName.LEFT\n        orderClassName = ClassName.NEXT\n        eventDirectionName = Direction.LEFT\n      } else {\n        directionalClassName = ClassName.RIGHT\n        orderClassName = ClassName.PREV\n        eventDirectionName = Direction.RIGHT\n      }\n\n      if (nextElement && $(nextElement).hasClass(ClassName.ACTIVE)) {\n        this._isSliding = false\n        return\n      }\n\n      const slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName)\n      if (slideEvent.isDefaultPrevented()) {\n        return\n      }\n\n      if (!activeElement || !nextElement) {\n        // some weirdness is happening, so we bail\n        return\n      }\n\n      this._isSliding = true\n\n      if (isCycling) {\n        this.pause()\n      }\n\n      this._setActiveIndicatorElement(nextElement)\n\n      const slidEvent = $.Event(Event.SLID, {\n        relatedTarget: nextElement,\n        direction: eventDirectionName,\n        from: activeElementIndex,\n        to: nextElementIndex\n      })\n\n      if (Util.supportsTransitionEnd() &&\n        $(this._element).hasClass(ClassName.SLIDE)) {\n\n        $(nextElement).addClass(orderClassName)\n\n        Util.reflow(nextElement)\n\n        $(activeElement).addClass(directionalClassName)\n        $(nextElement).addClass(directionalClassName)\n\n        $(activeElement)\n          .one(Util.TRANSITION_END, () => {\n            $(nextElement)\n              .removeClass(`${directionalClassName} ${orderClassName}`)\n              .addClass(ClassName.ACTIVE)\n\n            $(activeElement).removeClass(`${ClassName.ACTIVE} ${orderClassName} ${directionalClassName}`)\n\n            this._isSliding = false\n\n            setTimeout(() => $(this._element).trigger(slidEvent), 0)\n\n          })\n          .emulateTransitionEnd(TRANSITION_DURATION)\n\n      } else {\n        $(activeElement).removeClass(ClassName.ACTIVE)\n        $(nextElement).addClass(ClassName.ACTIVE)\n\n        this._isSliding = false\n        $(this._element).trigger(slidEvent)\n      }\n\n      if (isCycling) {\n        this.cycle()\n      }\n    }\n\n\n    // static\n\n    static _jQueryInterface(config) {\n      return this.each(function () {\n        let data      = $(this).data(DATA_KEY)\n        let _config = {\n          ...Default,\n          ...$(this).data()\n        }\n\n        if (typeof config === 'object') {\n          _config = {\n            ..._config,\n            ...config\n          }\n        }\n\n        const action = typeof config === 'string' ? config : _config.slide\n\n        if (!data) {\n          data = new Carousel(this, _config)\n          $(this).data(DATA_KEY, data)\n        }\n\n        if (typeof config === 'number') {\n          data.to(config)\n        } else if (typeof action === 'string') {\n          if (typeof data[action] === 'undefined') {\n            throw new Error(`No method named \"${action}\"`)\n          }\n          data[action]()\n        } else if (_config.interval) {\n          data.pause()\n          data.cycle()\n        }\n      })\n    }\n\n    static _dataApiClickHandler(event) {\n      const selector = Util.getSelectorFromElement(this)\n\n      if (!selector) {\n        return\n      }\n\n      const target = $(selector)[0]\n\n      if (!target || !$(target).hasClass(ClassName.CAROUSEL)) {\n        return\n      }\n\n      const config = {\n        ...$(target).data(),\n        ...$(this).data()\n      }\n      const slideIndex = this.getAttribute('data-slide-to')\n\n      if (slideIndex) {\n        config.interval = false\n      }\n\n      Carousel._jQueryInterface.call($(target), config)\n\n      if (slideIndex) {\n        $(target).data(DATA_KEY).to(slideIndex)\n      }\n\n      event.preventDefault()\n    }\n\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n  $(document)\n    .on(Event.CLICK_DATA_API, Selector.DATA_SLIDE, Carousel._dataApiClickHandler)\n\n  $(window).on(Event.LOAD_DATA_API, () => {\n    $(Selector.DATA_RIDE).each(function () {\n      const $carousel = $(this)\n      Carousel._jQueryInterface.call($carousel, $carousel.data())\n    })\n  })\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $.fn[NAME]             = Carousel._jQueryInterface\n  $.fn[NAME].Constructor = Carousel\n  $.fn[NAME].noConflict  = function () {\n    $.fn[NAME] = JQUERY_NO_CONFLICT\n    return Carousel._jQueryInterface\n  }\n\n  return Carousel\n\n})($)\n\nexport default Carousel\n","import $ from 'jquery'\nimport Util from './util'\n\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-beta.3): collapse.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Collapse = (($) => {\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  const NAME                = 'collapse'\n  const VERSION             = '4.0.0-beta.3'\n  const DATA_KEY            = 'bs.collapse'\n  const EVENT_KEY           = `.${DATA_KEY}`\n  const DATA_API_KEY        = '.data-api'\n  const JQUERY_NO_CONFLICT  = $.fn[NAME]\n  const TRANSITION_DURATION = 600\n\n  const Default = {\n    toggle : true,\n    parent : ''\n  }\n\n  const DefaultType = {\n    toggle : 'boolean',\n    parent : '(string|element)'\n  }\n\n  const Event = {\n    SHOW           : `show${EVENT_KEY}`,\n    SHOWN          : `shown${EVENT_KEY}`,\n    HIDE           : `hide${EVENT_KEY}`,\n    HIDDEN         : `hidden${EVENT_KEY}`,\n    CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n  }\n\n  const ClassName = {\n    SHOW       : 'show',\n    COLLAPSE   : 'collapse',\n    COLLAPSING : 'collapsing',\n    COLLAPSED  : 'collapsed'\n  }\n\n  const Dimension = {\n    WIDTH  : 'width',\n    HEIGHT : 'height'\n  }\n\n  const Selector = {\n    ACTIVES     : '.show, .collapsing',\n    DATA_TOGGLE : '[data-toggle=\"collapse\"]'\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  class Collapse {\n\n    constructor(element, config) {\n      this._isTransitioning = false\n      this._element         = element\n      this._config          = this._getConfig(config)\n      this._triggerArray    = $.makeArray($(\n        `[data-toggle=\"collapse\"][href=\"#${element.id}\"],` +\n        `[data-toggle=\"collapse\"][data-target=\"#${element.id}\"]`\n      ))\n      const tabToggles = $(Selector.DATA_TOGGLE)\n      for (let i = 0; i < tabToggles.length; i++) {\n        const elem = tabToggles[i]\n        const selector = Util.getSelectorFromElement(elem)\n        if (selector !== null && $(selector).filter(element).length > 0) {\n          this._triggerArray.push(elem)\n        }\n      }\n\n      this._parent = this._config.parent ? this._getParent() : null\n\n      if (!this._config.parent) {\n        this._addAriaAndCollapsedClass(this._element, this._triggerArray)\n      }\n\n      if (this._config.toggle) {\n        this.toggle()\n      }\n    }\n\n\n    // getters\n\n    static get VERSION() {\n      return VERSION\n    }\n\n    static get Default() {\n      return Default\n    }\n\n\n    // public\n\n    toggle() {\n      if ($(this._element).hasClass(ClassName.SHOW)) {\n        this.hide()\n      } else {\n        this.show()\n      }\n    }\n\n    show() {\n      if (this._isTransitioning ||\n        $(this._element).hasClass(ClassName.SHOW)) {\n        return\n      }\n\n      let actives\n      let activesData\n\n      if (this._parent) {\n        actives = $.makeArray($(this._parent).children().children(Selector.ACTIVES))\n        if (!actives.length) {\n          actives = null\n        }\n      }\n\n      if (actives) {\n        activesData = $(actives).data(DATA_KEY)\n        if (activesData && activesData._isTransitioning) {\n          return\n        }\n      }\n\n      const startEvent = $.Event(Event.SHOW)\n      $(this._element).trigger(startEvent)\n      if (startEvent.isDefaultPrevented()) {\n        return\n      }\n\n      if (actives) {\n        Collapse._jQueryInterface.call($(actives), 'hide')\n        if (!activesData) {\n          $(actives).data(DATA_KEY, null)\n        }\n      }\n\n      const dimension = this._getDimension()\n\n      $(this._element)\n        .removeClass(ClassName.COLLAPSE)\n        .addClass(ClassName.COLLAPSING)\n\n      this._element.style[dimension] = 0\n\n      if (this._triggerArray.length) {\n        $(this._triggerArray)\n          .removeClass(ClassName.COLLAPSED)\n          .attr('aria-expanded', true)\n      }\n\n      this.setTransitioning(true)\n\n      const complete = () => {\n        $(this._element)\n          .removeClass(ClassName.COLLAPSING)\n          .addClass(ClassName.COLLAPSE)\n          .addClass(ClassName.SHOW)\n\n        this._element.style[dimension] = ''\n\n        this.setTransitioning(false)\n\n        $(this._element).trigger(Event.SHOWN)\n      }\n\n      if (!Util.supportsTransitionEnd()) {\n        complete()\n        return\n      }\n\n      const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1)\n      const scrollSize           = `scroll${capitalizedDimension}`\n\n      $(this._element)\n        .one(Util.TRANSITION_END, complete)\n        .emulateTransitionEnd(TRANSITION_DURATION)\n\n      this._element.style[dimension] = `${this._element[scrollSize]}px`\n    }\n\n    hide() {\n      if (this._isTransitioning ||\n        !$(this._element).hasClass(ClassName.SHOW)) {\n        return\n      }\n\n      const startEvent = $.Event(Event.HIDE)\n      $(this._element).trigger(startEvent)\n      if (startEvent.isDefaultPrevented()) {\n        return\n      }\n\n      const dimension       = this._getDimension()\n\n      this._element.style[dimension] = `${this._element.getBoundingClientRect()[dimension]}px`\n\n      Util.reflow(this._element)\n\n      $(this._element)\n        .addClass(ClassName.COLLAPSING)\n        .removeClass(ClassName.COLLAPSE)\n        .removeClass(ClassName.SHOW)\n\n      if (this._triggerArray.length) {\n        for (let i = 0; i < this._triggerArray.length; i++) {\n          const trigger = this._triggerArray[i]\n          const selector = Util.getSelectorFromElement(trigger)\n          if (selector !== null) {\n            const $elem = $(selector)\n            if (!$elem.hasClass(ClassName.SHOW)) {\n              $(trigger).addClass(ClassName.COLLAPSED)\n                   .attr('aria-expanded', false)\n            }\n          }\n        }\n      }\n\n      this.setTransitioning(true)\n\n      const complete = () => {\n        this.setTransitioning(false)\n        $(this._element)\n          .removeClass(ClassName.COLLAPSING)\n          .addClass(ClassName.COLLAPSE)\n          .trigger(Event.HIDDEN)\n      }\n\n      this._element.style[dimension] = ''\n\n      if (!Util.supportsTransitionEnd()) {\n        complete()\n        return\n      }\n\n      $(this._element)\n        .one(Util.TRANSITION_END, complete)\n        .emulateTransitionEnd(TRANSITION_DURATION)\n    }\n\n    setTransitioning(isTransitioning) {\n      this._isTransitioning = isTransitioning\n    }\n\n    dispose() {\n      $.removeData(this._element, DATA_KEY)\n\n      this._config          = null\n      this._parent          = null\n      this._element         = null\n      this._triggerArray    = null\n      this._isTransitioning = null\n    }\n\n\n    // private\n\n    _getConfig(config) {\n      config = {\n        ...Default,\n        ...config\n      }\n      config.toggle = Boolean(config.toggle) // coerce string values\n      Util.typeCheckConfig(NAME, config, DefaultType)\n      return config\n    }\n\n    _getDimension() {\n      const hasWidth = $(this._element).hasClass(Dimension.WIDTH)\n      return hasWidth ? Dimension.WIDTH : Dimension.HEIGHT\n    }\n\n    _getParent() {\n      let parent = null\n      if (Util.isElement(this._config.parent)) {\n        parent = this._config.parent\n\n        // it's a jQuery object\n        if (typeof this._config.parent.jquery !== 'undefined') {\n          parent = this._config.parent[0]\n        }\n      } else {\n        parent = $(this._config.parent)[0]\n      }\n\n      const selector =\n        `[data-toggle=\"collapse\"][data-parent=\"${this._config.parent}\"]`\n\n      $(parent).find(selector).each((i, element) => {\n        this._addAriaAndCollapsedClass(\n          Collapse._getTargetFromElement(element),\n          [element]\n        )\n      })\n\n      return parent\n    }\n\n    _addAriaAndCollapsedClass(element, triggerArray) {\n      if (element) {\n        const isOpen = $(element).hasClass(ClassName.SHOW)\n\n        if (triggerArray.length) {\n          $(triggerArray)\n            .toggleClass(ClassName.COLLAPSED, !isOpen)\n            .attr('aria-expanded', isOpen)\n        }\n      }\n    }\n\n\n    // static\n\n    static _getTargetFromElement(element) {\n      const selector = Util.getSelectorFromElement(element)\n      return selector ? $(selector)[0] : null\n    }\n\n    static _jQueryInterface(config) {\n      return this.each(function () {\n        const $this   = $(this)\n        let data      = $this.data(DATA_KEY)\n        const _config = {\n          ...Default,\n          ...$this.data(),\n          ...typeof config === 'object' && config\n        }\n\n        if (!data && _config.toggle && /show|hide/.test(config)) {\n          _config.toggle = false\n        }\n\n        if (!data) {\n          data = new Collapse(this, _config)\n          $this.data(DATA_KEY, data)\n        }\n\n        if (typeof config === 'string') {\n          if (typeof data[config] === 'undefined') {\n            throw new Error(`No method named \"${config}\"`)\n          }\n          data[config]()\n        }\n      })\n    }\n\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n  $(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n    // preventDefault only for <a> elements (which change the URL) not inside the collapsible element\n    if (event.currentTarget.tagName === 'A') {\n      event.preventDefault()\n    }\n\n    const $trigger = $(this)\n    const selector = Util.getSelectorFromElement(this)\n    $(selector).each(function () {\n      const $target = $(this)\n      const data    = $target.data(DATA_KEY)\n      const config  = data ? 'toggle' : $trigger.data()\n      Collapse._jQueryInterface.call($target, config)\n    })\n  })\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $.fn[NAME]             = Collapse._jQueryInterface\n  $.fn[NAME].Constructor = Collapse\n  $.fn[NAME].noConflict  = function () {\n    $.fn[NAME] = JQUERY_NO_CONFLICT\n    return Collapse._jQueryInterface\n  }\n\n  return Collapse\n\n})($)\n\nexport default Collapse\n","import $ from 'jquery'\nimport Popper from 'popper.js'\nimport Util from './util'\n\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-beta.3): dropdown.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Dropdown = (($) => {\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  const NAME                     = 'dropdown'\n  const VERSION                  = '4.0.0-beta.3'\n  const DATA_KEY                 = 'bs.dropdown'\n  const EVENT_KEY                = `.${DATA_KEY}`\n  const DATA_API_KEY             = '.data-api'\n  const JQUERY_NO_CONFLICT       = $.fn[NAME]\n  const ESCAPE_KEYCODE           = 27 // KeyboardEvent.which value for Escape (Esc) key\n  const SPACE_KEYCODE            = 32 // KeyboardEvent.which value for space key\n  const TAB_KEYCODE              = 9 // KeyboardEvent.which value for tab key\n  const ARROW_UP_KEYCODE         = 38 // KeyboardEvent.which value for up arrow key\n  const ARROW_DOWN_KEYCODE       = 40 // KeyboardEvent.which value for down arrow key\n  const RIGHT_MOUSE_BUTTON_WHICH = 3 // MouseEvent.which value for the right button (assuming a right-handed mouse)\n  const REGEXP_KEYDOWN           = new RegExp(`${ARROW_UP_KEYCODE}|${ARROW_DOWN_KEYCODE}|${ESCAPE_KEYCODE}`)\n\n  const Event = {\n    HIDE             : `hide${EVENT_KEY}`,\n    HIDDEN           : `hidden${EVENT_KEY}`,\n    SHOW             : `show${EVENT_KEY}`,\n    SHOWN            : `shown${EVENT_KEY}`,\n    CLICK            : `click${EVENT_KEY}`,\n    CLICK_DATA_API   : `click${EVENT_KEY}${DATA_API_KEY}`,\n    KEYDOWN_DATA_API : `keydown${EVENT_KEY}${DATA_API_KEY}`,\n    KEYUP_DATA_API   : `keyup${EVENT_KEY}${DATA_API_KEY}`\n  }\n\n  const ClassName = {\n    DISABLED  : 'disabled',\n    SHOW      : 'show',\n    DROPUP    : 'dropup',\n    DROPRIGHT : 'dropright',\n    DROPLEFT  : 'dropleft',\n    MENURIGHT : 'dropdown-menu-right',\n    MENULEFT  : 'dropdown-menu-left',\n    POSITION_STATIC : 'position-static'\n  }\n\n  const Selector = {\n    DATA_TOGGLE   : '[data-toggle=\"dropdown\"]',\n    FORM_CHILD    : '.dropdown form',\n    MENU          : '.dropdown-menu',\n    NAVBAR_NAV    : '.navbar-nav',\n    VISIBLE_ITEMS : '.dropdown-menu .dropdown-item:not(.disabled)'\n  }\n\n  const AttachmentMap = {\n    TOP       : 'top-start',\n    TOPEND    : 'top-end',\n    BOTTOM    : 'bottom-start',\n    BOTTOMEND : 'bottom-end',\n    RIGHT     : 'right-start',\n    RIGHTEND  : 'right-end',\n    LEFT      : 'left-start',\n    LEFTEND   : 'left-end'\n  }\n\n  const Default = {\n    offset      : 0,\n    flip        : true,\n    boundary    : 'scrollParent'\n  }\n\n  const DefaultType = {\n    offset      : '(number|string|function)',\n    flip        : 'boolean',\n    boundary    : '(string|element)'\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  class Dropdown {\n\n    constructor(element, config) {\n      this._element  = element\n      this._popper   = null\n      this._config   = this._getConfig(config)\n      this._menu     = this._getMenuElement()\n      this._inNavbar = this._detectNavbar()\n\n      this._addEventListeners()\n    }\n\n\n    // getters\n\n    static get VERSION() {\n      return VERSION\n    }\n\n    static get Default() {\n      return Default\n    }\n\n    static get DefaultType() {\n      return DefaultType\n    }\n\n    // public\n\n    toggle() {\n      if (this._element.disabled || $(this._element).hasClass(ClassName.DISABLED)) {\n        return\n      }\n\n      const parent   = Dropdown._getParentFromElement(this._element)\n      const isActive = $(this._menu).hasClass(ClassName.SHOW)\n\n      Dropdown._clearMenus()\n\n      if (isActive) {\n        return\n      }\n\n      const relatedTarget = {\n        relatedTarget : this._element\n      }\n      const showEvent = $.Event(Event.SHOW, relatedTarget)\n\n      $(parent).trigger(showEvent)\n\n      if (showEvent.isDefaultPrevented()) {\n        return\n      }\n\n      // Disable totally Popper.js for Dropdown in Navbar\n      if (!this._inNavbar) {\n        /**\n         * Check for Popper dependency\n         * Popper - https://popper.js.org\n         */\n        if (typeof Popper === 'undefined') {\n          throw new Error('Bootstrap dropdown require Popper.js (https://popper.js.org)')\n        }\n        let element = this._element\n        // for dropup with alignment we use the parent as popper container\n        if ($(parent).hasClass(ClassName.DROPUP)) {\n          if ($(this._menu).hasClass(ClassName.MENULEFT) || $(this._menu).hasClass(ClassName.MENURIGHT)) {\n            element = parent\n          }\n        }\n        // If boundary is not `scrollParent`, then set position to `static`\n        // to allow the menu to \"escape\" the scroll parent's boundaries\n        // https://github.com/twbs/bootstrap/issues/24251\n        if (this._config.boundary !== 'scrollParent') {\n          $(parent).addClass(ClassName.POSITION_STATIC)\n        }\n        this._popper = new Popper(element, this._menu, this._getPopperConfig())\n      }\n\n\n      // if this is a touch-enabled device we add extra\n      // empty mouseover listeners to the body's immediate children;\n      // only needed because of broken event delegation on iOS\n      // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n      if ('ontouchstart' in document.documentElement &&\n         !$(parent).closest(Selector.NAVBAR_NAV).length) {\n        $('body').children().on('mouseover', null, $.noop)\n      }\n\n      this._element.focus()\n      this._element.setAttribute('aria-expanded', true)\n\n      $(this._menu).toggleClass(ClassName.SHOW)\n      $(parent)\n        .toggleClass(ClassName.SHOW)\n        .trigger($.Event(Event.SHOWN, relatedTarget))\n    }\n\n    dispose() {\n      $.removeData(this._element, DATA_KEY)\n      $(this._element).off(EVENT_KEY)\n      this._element = null\n      this._menu = null\n      if (this._popper !== null) {\n        this._popper.destroy()\n        this._popper = null\n      }\n    }\n\n    update() {\n      this._inNavbar = this._detectNavbar()\n      if (this._popper !== null) {\n        this._popper.scheduleUpdate()\n      }\n    }\n\n    // private\n\n    _addEventListeners() {\n      $(this._element).on(Event.CLICK, (event) => {\n        event.preventDefault()\n        event.stopPropagation()\n        this.toggle()\n      })\n    }\n\n    _getConfig(config) {\n      config = {\n        ...this.constructor.Default,\n        ...$(this._element).data(),\n        ...config\n      }\n\n      Util.typeCheckConfig(\n        NAME,\n        config,\n        this.constructor.DefaultType\n      )\n\n      return config\n    }\n\n    _getMenuElement() {\n      if (!this._menu) {\n        const parent = Dropdown._getParentFromElement(this._element)\n        this._menu = $(parent).find(Selector.MENU)[0]\n      }\n      return this._menu\n    }\n\n    _getPlacement() {\n      const $parentDropdown = $(this._element).parent()\n      let placement         = AttachmentMap.BOTTOM\n\n      // Handle dropup\n      if ($parentDropdown.hasClass(ClassName.DROPUP)) {\n        placement = AttachmentMap.TOP\n        if ($(this._menu).hasClass(ClassName.MENURIGHT)) {\n          placement = AttachmentMap.TOPEND\n        }\n      } else if ($parentDropdown.hasClass(ClassName.DROPRIGHT)) {\n        placement = AttachmentMap.RIGHT\n      } else if ($parentDropdown.hasClass(ClassName.DROPLEFT)) {\n        placement = AttachmentMap.LEFT\n      } else if ($(this._menu).hasClass(ClassName.MENURIGHT)) {\n        placement = AttachmentMap.BOTTOMEND\n      }\n      return placement\n    }\n\n    _detectNavbar() {\n      return $(this._element).closest('.navbar').length > 0\n    }\n\n    _getPopperConfig() {\n      const offsetConf = {}\n      if (typeof this._config.offset === 'function') {\n        offsetConf.fn = (data) => {\n          data.offsets = {\n            ...data.offsets,\n            ...this._config.offset(data.offsets) || {}\n          }\n          return data\n        }\n      } else {\n        offsetConf.offset = this._config.offset\n      }\n      const popperConfig = {\n        placement : this._getPlacement(),\n        modifiers : {\n          offset : offsetConf,\n          flip : {\n            enabled : this._config.flip\n          },\n          preventOverflow : {\n            boundariesElement : this._config.boundary\n          }\n        }\n      }\n\n      return popperConfig\n    }\n\n    // static\n\n    static _jQueryInterface(config) {\n      return this.each(function () {\n        let data = $(this).data(DATA_KEY)\n        const _config = typeof config === 'object' ? config : null\n\n        if (!data) {\n          data = new Dropdown(this, _config)\n          $(this).data(DATA_KEY, data)\n        }\n\n        if (typeof config === 'string') {\n          if (typeof data[config] === 'undefined') {\n            throw new Error(`No method named \"${config}\"`)\n          }\n          data[config]()\n        }\n      })\n    }\n\n    static _clearMenus(event) {\n      if (event && (event.which === RIGHT_MOUSE_BUTTON_WHICH ||\n        event.type === 'keyup' && event.which !== TAB_KEYCODE)) {\n        return\n      }\n\n      const toggles = $.makeArray($(Selector.DATA_TOGGLE))\n      for (let i = 0; i < toggles.length; i++) {\n        const parent        = Dropdown._getParentFromElement(toggles[i])\n        const context       = $(toggles[i]).data(DATA_KEY)\n        const relatedTarget = {\n          relatedTarget : toggles[i]\n        }\n\n        if (!context) {\n          continue\n        }\n\n        const dropdownMenu = context._menu\n        if (!$(parent).hasClass(ClassName.SHOW)) {\n          continue\n        }\n\n        if (event && (event.type === 'click' &&\n            /input|textarea/i.test(event.target.tagName) || event.type === 'keyup' && event.which === TAB_KEYCODE)\n            && $.contains(parent, event.target)) {\n          continue\n        }\n\n        const hideEvent = $.Event(Event.HIDE, relatedTarget)\n        $(parent).trigger(hideEvent)\n        if (hideEvent.isDefaultPrevented()) {\n          continue\n        }\n\n        // if this is a touch-enabled device we remove the extra\n        // empty mouseover listeners we added for iOS support\n        if ('ontouchstart' in document.documentElement) {\n          $('body').children().off('mouseover', null, $.noop)\n        }\n\n        toggles[i].setAttribute('aria-expanded', 'false')\n\n        $(dropdownMenu).removeClass(ClassName.SHOW)\n        $(parent)\n          .removeClass(ClassName.SHOW)\n          .trigger($.Event(Event.HIDDEN, relatedTarget))\n      }\n    }\n\n    static _getParentFromElement(element) {\n      let parent\n      const selector = Util.getSelectorFromElement(element)\n\n      if (selector) {\n        parent = $(selector)[0]\n      }\n\n      return parent || element.parentNode\n    }\n\n    // eslint-disable-next-line complexity\n    static _dataApiKeydownHandler(event) {\n      // If not input/textarea:\n      //  - And not a key in REGEXP_KEYDOWN => not a dropdown command\n      // If input/textarea:\n      //  - If space key => not a dropdown command\n      //  - If key is other than escape\n      //    - If key is not up or down => not a dropdown command\n      //    - If trigger inside the menu => not a dropdown command\n      if (/input|textarea/i.test(event.target.tagName) ?\n        event.which === SPACE_KEYCODE || event.which !== ESCAPE_KEYCODE &&\n        (event.which !== ARROW_DOWN_KEYCODE && event.which !== ARROW_UP_KEYCODE ||\n          $(event.target).closest(Selector.MENU).length) : !REGEXP_KEYDOWN.test(event.which)) {\n        return\n      }\n\n      event.preventDefault()\n      event.stopPropagation()\n\n      if (this.disabled || $(this).hasClass(ClassName.DISABLED)) {\n        return\n      }\n\n      const parent   = Dropdown._getParentFromElement(this)\n      const isActive = $(parent).hasClass(ClassName.SHOW)\n\n      if (!isActive && (event.which !== ESCAPE_KEYCODE || event.which !== SPACE_KEYCODE) ||\n           isActive && (event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE)) {\n\n        if (event.which === ESCAPE_KEYCODE) {\n          const toggle = $(parent).find(Selector.DATA_TOGGLE)[0]\n          $(toggle).trigger('focus')\n        }\n\n        $(this).trigger('click')\n        return\n      }\n\n      const items = $(parent).find(Selector.VISIBLE_ITEMS).get()\n\n      if (!items.length) {\n        return\n      }\n\n      let index = items.indexOf(event.target)\n\n      if (event.which === ARROW_UP_KEYCODE && index > 0) { // up\n        index--\n      }\n\n      if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) { // down\n        index++\n      }\n\n      if (index < 0) {\n        index = 0\n      }\n\n      items[index].focus()\n    }\n\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n  $(document)\n    .on(Event.KEYDOWN_DATA_API, Selector.DATA_TOGGLE,  Dropdown._dataApiKeydownHandler)\n    .on(Event.KEYDOWN_DATA_API, Selector.MENU, Dropdown._dataApiKeydownHandler)\n    .on(`${Event.CLICK_DATA_API} ${Event.KEYUP_DATA_API}`, Dropdown._clearMenus)\n    .on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n      event.preventDefault()\n      event.stopPropagation()\n      Dropdown._jQueryInterface.call($(this), 'toggle')\n    })\n    .on(Event.CLICK_DATA_API, Selector.FORM_CHILD, (e) => {\n      e.stopPropagation()\n    })\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $.fn[NAME]             = Dropdown._jQueryInterface\n  $.fn[NAME].Constructor = Dropdown\n  $.fn[NAME].noConflict  = function () {\n    $.fn[NAME] = JQUERY_NO_CONFLICT\n    return Dropdown._jQueryInterface\n  }\n\n  return Dropdown\n\n})($, Popper)\n\nexport default Dropdown\n","import $ from 'jquery'\nimport Util from './util'\n\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-beta.3): modal.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Modal = (($) => {\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  const NAME                         = 'modal'\n  const VERSION                      = '4.0.0-beta.3'\n  const DATA_KEY                     = 'bs.modal'\n  const EVENT_KEY                    = `.${DATA_KEY}`\n  const DATA_API_KEY                 = '.data-api'\n  const JQUERY_NO_CONFLICT           = $.fn[NAME]\n  const TRANSITION_DURATION          = 300\n  const BACKDROP_TRANSITION_DURATION = 150\n  const ESCAPE_KEYCODE               = 27 // KeyboardEvent.which value for Escape (Esc) key\n\n  const Default = {\n    backdrop : true,\n    keyboard : true,\n    focus    : true,\n    show     : true\n  }\n\n  const DefaultType = {\n    backdrop : '(boolean|string)',\n    keyboard : 'boolean',\n    focus    : 'boolean',\n    show     : 'boolean'\n  }\n\n  const Event = {\n    HIDE              : `hide${EVENT_KEY}`,\n    HIDDEN            : `hidden${EVENT_KEY}`,\n    SHOW              : `show${EVENT_KEY}`,\n    SHOWN             : `shown${EVENT_KEY}`,\n    FOCUSIN           : `focusin${EVENT_KEY}`,\n    RESIZE            : `resize${EVENT_KEY}`,\n    CLICK_DISMISS     : `click.dismiss${EVENT_KEY}`,\n    KEYDOWN_DISMISS   : `keydown.dismiss${EVENT_KEY}`,\n    MOUSEUP_DISMISS   : `mouseup.dismiss${EVENT_KEY}`,\n    MOUSEDOWN_DISMISS : `mousedown.dismiss${EVENT_KEY}`,\n    CLICK_DATA_API    : `click${EVENT_KEY}${DATA_API_KEY}`\n  }\n\n  const ClassName = {\n    SCROLLBAR_MEASURER : 'modal-scrollbar-measure',\n    BACKDROP           : 'modal-backdrop',\n    OPEN               : 'modal-open',\n    FADE               : 'fade',\n    SHOW               : 'show'\n  }\n\n  const Selector = {\n    DIALOG             : '.modal-dialog',\n    DATA_TOGGLE        : '[data-toggle=\"modal\"]',\n    DATA_DISMISS       : '[data-dismiss=\"modal\"]',\n    FIXED_CONTENT      : '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top',\n    STICKY_CONTENT     : '.sticky-top',\n    NAVBAR_TOGGLER     : '.navbar-toggler'\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  class Modal {\n\n    constructor(element, config) {\n      this._config              = this._getConfig(config)\n      this._element             = element\n      this._dialog              = $(element).find(Selector.DIALOG)[0]\n      this._backdrop            = null\n      this._isShown             = false\n      this._isBodyOverflowing   = false\n      this._ignoreBackdropClick = false\n      this._originalBodyPadding = 0\n      this._scrollbarWidth      = 0\n    }\n\n\n    // getters\n\n    static get VERSION() {\n      return VERSION\n    }\n\n    static get Default() {\n      return Default\n    }\n\n\n    // public\n\n    toggle(relatedTarget) {\n      return this._isShown ? this.hide() : this.show(relatedTarget)\n    }\n\n    show(relatedTarget) {\n      if (this._isTransitioning || this._isShown) {\n        return\n      }\n\n      if (Util.supportsTransitionEnd() && $(this._element).hasClass(ClassName.FADE)) {\n        this._isTransitioning = true\n      }\n\n      const showEvent = $.Event(Event.SHOW, {\n        relatedTarget\n      })\n\n      $(this._element).trigger(showEvent)\n\n      if (this._isShown || showEvent.isDefaultPrevented()) {\n        return\n      }\n\n      this._isShown = true\n\n      this._checkScrollbar()\n      this._setScrollbar()\n\n      this._adjustDialog()\n\n      $(document.body).addClass(ClassName.OPEN)\n\n      this._setEscapeEvent()\n      this._setResizeEvent()\n\n      $(this._element).on(\n        Event.CLICK_DISMISS,\n        Selector.DATA_DISMISS,\n        (event) => this.hide(event)\n      )\n\n      $(this._dialog).on(Event.MOUSEDOWN_DISMISS, () => {\n        $(this._element).one(Event.MOUSEUP_DISMISS, (event) => {\n          if ($(event.target).is(this._element)) {\n            this._ignoreBackdropClick = true\n          }\n        })\n      })\n\n      this._showBackdrop(() => this._showElement(relatedTarget))\n    }\n\n    hide(event) {\n      if (event) {\n        event.preventDefault()\n      }\n\n      if (this._isTransitioning || !this._isShown) {\n        return\n      }\n\n      const hideEvent = $.Event(Event.HIDE)\n\n      $(this._element).trigger(hideEvent)\n\n      if (!this._isShown || hideEvent.isDefaultPrevented()) {\n        return\n      }\n\n      this._isShown = false\n\n      const transition = Util.supportsTransitionEnd() && $(this._element).hasClass(ClassName.FADE)\n\n      if (transition) {\n        this._isTransitioning = true\n      }\n\n      this._setEscapeEvent()\n      this._setResizeEvent()\n\n      $(document).off(Event.FOCUSIN)\n\n      $(this._element).removeClass(ClassName.SHOW)\n\n      $(this._element).off(Event.CLICK_DISMISS)\n      $(this._dialog).off(Event.MOUSEDOWN_DISMISS)\n\n      if (transition) {\n\n        $(this._element)\n          .one(Util.TRANSITION_END, (event) => this._hideModal(event))\n          .emulateTransitionEnd(TRANSITION_DURATION)\n      } else {\n        this._hideModal()\n      }\n    }\n\n    dispose() {\n      $.removeData(this._element, DATA_KEY)\n\n      $(window, document, this._element, this._backdrop).off(EVENT_KEY)\n\n      this._config              = null\n      this._element             = null\n      this._dialog              = null\n      this._backdrop            = null\n      this._isShown             = null\n      this._isBodyOverflowing   = null\n      this._ignoreBackdropClick = null\n      this._scrollbarWidth      = null\n    }\n\n    handleUpdate() {\n      this._adjustDialog()\n    }\n\n    // private\n\n    _getConfig(config) {\n      config = {\n        ...Default,\n        ...config\n      }\n      Util.typeCheckConfig(NAME, config, DefaultType)\n      return config\n    }\n\n    _showElement(relatedTarget) {\n      const transition = Util.supportsTransitionEnd() &&\n        $(this._element).hasClass(ClassName.FADE)\n\n      if (!this._element.parentNode ||\n         this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {\n        // don't move modals dom position\n        document.body.appendChild(this._element)\n      }\n\n      this._element.style.display = 'block'\n      this._element.removeAttribute('aria-hidden')\n      this._element.scrollTop = 0\n\n      if (transition) {\n        Util.reflow(this._element)\n      }\n\n      $(this._element).addClass(ClassName.SHOW)\n\n      if (this._config.focus) {\n        this._enforceFocus()\n      }\n\n      const shownEvent = $.Event(Event.SHOWN, {\n        relatedTarget\n      })\n\n      const transitionComplete = () => {\n        if (this._config.focus) {\n          this._element.focus()\n        }\n        this._isTransitioning = false\n        $(this._element).trigger(shownEvent)\n      }\n\n      if (transition) {\n        $(this._dialog)\n          .one(Util.TRANSITION_END, transitionComplete)\n          .emulateTransitionEnd(TRANSITION_DURATION)\n      } else {\n        transitionComplete()\n      }\n    }\n\n    _enforceFocus() {\n      $(document)\n        .off(Event.FOCUSIN) // guard against infinite focus loop\n        .on(Event.FOCUSIN, (event) => {\n          if (document !== event.target &&\n              this._element !== event.target &&\n              !$(this._element).has(event.target).length) {\n            this._element.focus()\n          }\n        })\n    }\n\n    _setEscapeEvent() {\n      if (this._isShown && this._config.keyboard) {\n        $(this._element).on(Event.KEYDOWN_DISMISS, (event) => {\n          if (event.which === ESCAPE_KEYCODE) {\n            event.preventDefault()\n            this.hide()\n          }\n        })\n\n      } else if (!this._isShown) {\n        $(this._element).off(Event.KEYDOWN_DISMISS)\n      }\n    }\n\n    _setResizeEvent() {\n      if (this._isShown) {\n        $(window).on(Event.RESIZE, (event) => this.handleUpdate(event))\n      } else {\n        $(window).off(Event.RESIZE)\n      }\n    }\n\n    _hideModal() {\n      this._element.style.display = 'none'\n      this._element.setAttribute('aria-hidden', true)\n      this._isTransitioning = false\n      this._showBackdrop(() => {\n        $(document.body).removeClass(ClassName.OPEN)\n        this._resetAdjustments()\n        this._resetScrollbar()\n        $(this._element).trigger(Event.HIDDEN)\n      })\n    }\n\n    _removeBackdrop() {\n      if (this._backdrop) {\n        $(this._backdrop).remove()\n        this._backdrop = null\n      }\n    }\n\n    _showBackdrop(callback) {\n      const animate = $(this._element).hasClass(ClassName.FADE) ?\n        ClassName.FADE : ''\n\n      if (this._isShown && this._config.backdrop) {\n        const doAnimate = Util.supportsTransitionEnd() && animate\n\n        this._backdrop = document.createElement('div')\n        this._backdrop.className = ClassName.BACKDROP\n\n        if (animate) {\n          $(this._backdrop).addClass(animate)\n        }\n\n        $(this._backdrop).appendTo(document.body)\n\n        $(this._element).on(Event.CLICK_DISMISS, (event) => {\n          if (this._ignoreBackdropClick) {\n            this._ignoreBackdropClick = false\n            return\n          }\n          if (event.target !== event.currentTarget) {\n            return\n          }\n          if (this._config.backdrop === 'static') {\n            this._element.focus()\n          } else {\n            this.hide()\n          }\n        })\n\n        if (doAnimate) {\n          Util.reflow(this._backdrop)\n        }\n\n        $(this._backdrop).addClass(ClassName.SHOW)\n\n        if (!callback) {\n          return\n        }\n\n        if (!doAnimate) {\n          callback()\n          return\n        }\n\n        $(this._backdrop)\n          .one(Util.TRANSITION_END, callback)\n          .emulateTransitionEnd(BACKDROP_TRANSITION_DURATION)\n\n      } else if (!this._isShown && this._backdrop) {\n        $(this._backdrop).removeClass(ClassName.SHOW)\n\n        const callbackRemove = () => {\n          this._removeBackdrop()\n          if (callback) {\n            callback()\n          }\n        }\n\n        if (Util.supportsTransitionEnd() &&\n           $(this._element).hasClass(ClassName.FADE)) {\n          $(this._backdrop)\n            .one(Util.TRANSITION_END, callbackRemove)\n            .emulateTransitionEnd(BACKDROP_TRANSITION_DURATION)\n        } else {\n          callbackRemove()\n        }\n\n      } else if (callback) {\n        callback()\n      }\n    }\n\n\n    // ----------------------------------------------------------------------\n    // the following methods are used to handle overflowing modals\n    // todo (fat): these should probably be refactored out of modal.js\n    // ----------------------------------------------------------------------\n\n    _adjustDialog() {\n      const isModalOverflowing =\n        this._element.scrollHeight > document.documentElement.clientHeight\n\n      if (!this._isBodyOverflowing && isModalOverflowing) {\n        this._element.style.paddingLeft = `${this._scrollbarWidth}px`\n      }\n\n      if (this._isBodyOverflowing && !isModalOverflowing) {\n        this._element.style.paddingRight = `${this._scrollbarWidth}px`\n      }\n    }\n\n    _resetAdjustments() {\n      this._element.style.paddingLeft = ''\n      this._element.style.paddingRight = ''\n    }\n\n    _checkScrollbar() {\n      const rect = document.body.getBoundingClientRect()\n      this._isBodyOverflowing = rect.left + rect.right < window.innerWidth\n      this._scrollbarWidth = this._getScrollbarWidth()\n    }\n\n    _setScrollbar() {\n      if (this._isBodyOverflowing) {\n        // Note: DOMNode.style.paddingRight returns the actual value or '' if not set\n        //   while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set\n\n        // Adjust fixed content padding\n        $(Selector.FIXED_CONTENT).each((index, element) => {\n          const actualPadding = $(element)[0].style.paddingRight\n          const calculatedPadding = $(element).css('padding-right')\n          $(element).data('padding-right', actualPadding).css('padding-right', `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`)\n        })\n\n        // Adjust sticky content margin\n        $(Selector.STICKY_CONTENT).each((index, element) => {\n          const actualMargin = $(element)[0].style.marginRight\n          const calculatedMargin = $(element).css('margin-right')\n          $(element).data('margin-right', actualMargin).css('margin-right', `${parseFloat(calculatedMargin) - this._scrollbarWidth}px`)\n        })\n\n        // Adjust navbar-toggler margin\n        $(Selector.NAVBAR_TOGGLER).each((index, element) => {\n          const actualMargin = $(element)[0].style.marginRight\n          const calculatedMargin = $(element).css('margin-right')\n          $(element).data('margin-right', actualMargin).css('margin-right', `${parseFloat(calculatedMargin) + this._scrollbarWidth}px`)\n        })\n\n        // Adjust body padding\n        const actualPadding = document.body.style.paddingRight\n        const calculatedPadding = $('body').css('padding-right')\n        $('body').data('padding-right', actualPadding).css('padding-right', `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`)\n      }\n    }\n\n    _resetScrollbar() {\n      // Restore fixed content padding\n      $(Selector.FIXED_CONTENT).each((index, element) => {\n        const padding = $(element).data('padding-right')\n        if (typeof padding !== 'undefined') {\n          $(element).css('padding-right', padding).removeData('padding-right')\n        }\n      })\n\n      // Restore sticky content and navbar-toggler margin\n      $(`${Selector.STICKY_CONTENT}, ${Selector.NAVBAR_TOGGLER}`).each((index, element) => {\n        const margin = $(element).data('margin-right')\n        if (typeof margin !== 'undefined') {\n          $(element).css('margin-right', margin).removeData('margin-right')\n        }\n      })\n\n      // Restore body padding\n      const padding = $('body').data('padding-right')\n      if (typeof padding !== 'undefined') {\n        $('body').css('padding-right', padding).removeData('padding-right')\n      }\n    }\n\n    _getScrollbarWidth() { // thx d.walsh\n      const scrollDiv = document.createElement('div')\n      scrollDiv.className = ClassName.SCROLLBAR_MEASURER\n      document.body.appendChild(scrollDiv)\n      const scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth\n      document.body.removeChild(scrollDiv)\n      return scrollbarWidth\n    }\n\n\n    // static\n\n    static _jQueryInterface(config, relatedTarget) {\n      return this.each(function () {\n        let data      = $(this).data(DATA_KEY)\n        const _config = {\n          ...Modal.Default,\n          ...$(this).data(),\n          ...typeof config === 'object' && config\n        }\n\n        if (!data) {\n          data = new Modal(this, _config)\n          $(this).data(DATA_KEY, data)\n        }\n\n        if (typeof config === 'string') {\n          if (typeof data[config] === 'undefined') {\n            throw new Error(`No method named \"${config}\"`)\n          }\n          data[config](relatedTarget)\n        } else if (_config.show) {\n          data.show(relatedTarget)\n        }\n      })\n    }\n\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n  $(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n    let target\n    const selector = Util.getSelectorFromElement(this)\n\n    if (selector) {\n      target = $(selector)[0]\n    }\n\n    const config = $(target).data(DATA_KEY) ?\n      'toggle' : {\n        ...$(target).data(),\n        ...$(this).data()\n      }\n\n    if (this.tagName === 'A' || this.tagName === 'AREA') {\n      event.preventDefault()\n    }\n\n    const $target = $(target).one(Event.SHOW, (showEvent) => {\n      if (showEvent.isDefaultPrevented()) {\n        // only register focus restorer if modal will actually get shown\n        return\n      }\n\n      $target.one(Event.HIDDEN, () => {\n        if ($(this).is(':visible')) {\n          this.focus()\n        }\n      })\n    })\n\n    Modal._jQueryInterface.call($(target), config, this)\n  })\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $.fn[NAME]             = Modal._jQueryInterface\n  $.fn[NAME].Constructor = Modal\n  $.fn[NAME].noConflict  = function () {\n    $.fn[NAME] = JQUERY_NO_CONFLICT\n    return Modal._jQueryInterface\n  }\n\n  return Modal\n\n})($)\n\nexport default Modal\n","import $ from 'jquery'\nimport Popper from 'popper.js'\nimport Util from './util'\n\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-beta.3): tooltip.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Tooltip = (($) => {\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  const NAME                = 'tooltip'\n  const VERSION             = '4.0.0-beta.3'\n  const DATA_KEY            = 'bs.tooltip'\n  const EVENT_KEY           = `.${DATA_KEY}`\n  const JQUERY_NO_CONFLICT  = $.fn[NAME]\n  const TRANSITION_DURATION = 150\n  const CLASS_PREFIX        = 'bs-tooltip'\n  const BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\n\n  const DefaultType = {\n    animation           : 'boolean',\n    template            : 'string',\n    title               : '(string|element|function)',\n    trigger             : 'string',\n    delay               : '(number|object)',\n    html                : 'boolean',\n    selector            : '(string|boolean)',\n    placement           : '(string|function)',\n    offset              : '(number|string)',\n    container           : '(string|element|boolean)',\n    fallbackPlacement   : '(string|array)',\n    boundary            : '(string|element)'\n  }\n\n  const AttachmentMap = {\n    AUTO   : 'auto',\n    TOP    : 'top',\n    RIGHT  : 'right',\n    BOTTOM : 'bottom',\n    LEFT   : 'left'\n  }\n\n  const Default = {\n    animation           : true,\n    template            : '<div class=\"tooltip\" role=\"tooltip\">'\n                        + '<div class=\"arrow\"></div>'\n                        + '<div class=\"tooltip-inner\"></div></div>',\n    trigger             : 'hover focus',\n    title               : '',\n    delay               : 0,\n    html                : false,\n    selector            : false,\n    placement           : 'top',\n    offset              : 0,\n    container           : false,\n    fallbackPlacement   : 'flip',\n    boundary            : 'scrollParent'\n  }\n\n  const HoverState = {\n    SHOW : 'show',\n    OUT  : 'out'\n  }\n\n  const Event = {\n    HIDE       : `hide${EVENT_KEY}`,\n    HIDDEN     : `hidden${EVENT_KEY}`,\n    SHOW       : `show${EVENT_KEY}`,\n    SHOWN      : `shown${EVENT_KEY}`,\n    INSERTED   : `inserted${EVENT_KEY}`,\n    CLICK      : `click${EVENT_KEY}`,\n    FOCUSIN    : `focusin${EVENT_KEY}`,\n    FOCUSOUT   : `focusout${EVENT_KEY}`,\n    MOUSEENTER : `mouseenter${EVENT_KEY}`,\n    MOUSELEAVE : `mouseleave${EVENT_KEY}`\n  }\n\n  const ClassName = {\n    FADE : 'fade',\n    SHOW : 'show'\n  }\n\n  const Selector = {\n    TOOLTIP       : '.tooltip',\n    TOOLTIP_INNER : '.tooltip-inner',\n    ARROW         : '.arrow'\n  }\n\n  const Trigger = {\n    HOVER  : 'hover',\n    FOCUS  : 'focus',\n    CLICK  : 'click',\n    MANUAL : 'manual'\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  class Tooltip {\n\n    constructor(element, config) {\n      /**\n       * Check for Popper dependency\n       * Popper - https://popper.js.org\n       */\n      if (typeof Popper === 'undefined') {\n        throw new Error('Bootstrap tooltips require Popper.js (https://popper.js.org)')\n      }\n\n      // private\n      this._isEnabled     = true\n      this._timeout       = 0\n      this._hoverState    = ''\n      this._activeTrigger = {}\n      this._popper        = null\n\n      // protected\n      this.element = element\n      this.config  = this._getConfig(config)\n      this.tip     = null\n\n      this._setListeners()\n\n    }\n\n\n    // getters\n\n    static get VERSION() {\n      return VERSION\n    }\n\n    static get Default() {\n      return Default\n    }\n\n    static get NAME() {\n      return NAME\n    }\n\n    static get DATA_KEY() {\n      return DATA_KEY\n    }\n\n    static get Event() {\n      return Event\n    }\n\n    static get EVENT_KEY() {\n      return EVENT_KEY\n    }\n\n    static get DefaultType() {\n      return DefaultType\n    }\n\n\n    // public\n\n    enable() {\n      this._isEnabled = true\n    }\n\n    disable() {\n      this._isEnabled = false\n    }\n\n    toggleEnabled() {\n      this._isEnabled = !this._isEnabled\n    }\n\n    toggle(event) {\n      if (!this._isEnabled) {\n        return\n      }\n\n      if (event) {\n        const dataKey = this.constructor.DATA_KEY\n        let context = $(event.currentTarget).data(dataKey)\n\n        if (!context) {\n          context = new this.constructor(\n            event.currentTarget,\n            this._getDelegateConfig()\n          )\n          $(event.currentTarget).data(dataKey, context)\n        }\n\n        context._activeTrigger.click = !context._activeTrigger.click\n\n        if (context._isWithActiveTrigger()) {\n          context._enter(null, context)\n        } else {\n          context._leave(null, context)\n        }\n\n      } else {\n\n        if ($(this.getTipElement()).hasClass(ClassName.SHOW)) {\n          this._leave(null, this)\n          return\n        }\n\n        this._enter(null, this)\n      }\n    }\n\n    dispose() {\n      clearTimeout(this._timeout)\n\n      $.removeData(this.element, this.constructor.DATA_KEY)\n\n      $(this.element).off(this.constructor.EVENT_KEY)\n      $(this.element).closest('.modal').off('hide.bs.modal')\n\n      if (this.tip) {\n        $(this.tip).remove()\n      }\n\n      this._isEnabled     = null\n      this._timeout       = null\n      this._hoverState    = null\n      this._activeTrigger = null\n      if (this._popper !== null) {\n        this._popper.destroy()\n      }\n\n      this._popper = null\n      this.element = null\n      this.config  = null\n      this.tip     = null\n    }\n\n    show() {\n      if ($(this.element).css('display') === 'none') {\n        throw new Error('Please use show on visible elements')\n      }\n\n      const showEvent = $.Event(this.constructor.Event.SHOW)\n      if (this.isWithContent() && this._isEnabled) {\n        $(this.element).trigger(showEvent)\n\n        const isInTheDom = $.contains(\n          this.element.ownerDocument.documentElement,\n          this.element\n        )\n\n        if (showEvent.isDefaultPrevented() || !isInTheDom) {\n          return\n        }\n\n        const tip   = this.getTipElement()\n        const tipId = Util.getUID(this.constructor.NAME)\n\n        tip.setAttribute('id', tipId)\n        this.element.setAttribute('aria-describedby', tipId)\n\n        this.setContent()\n\n        if (this.config.animation) {\n          $(tip).addClass(ClassName.FADE)\n        }\n\n        const placement  = typeof this.config.placement === 'function' ?\n          this.config.placement.call(this, tip, this.element) :\n          this.config.placement\n\n        const attachment = this._getAttachment(placement)\n        this.addAttachmentClass(attachment)\n\n        const container = this.config.container === false ? document.body : $(this.config.container)\n\n        $(tip).data(this.constructor.DATA_KEY, this)\n\n        if (!$.contains(this.element.ownerDocument.documentElement, this.tip)) {\n          $(tip).appendTo(container)\n        }\n\n        $(this.element).trigger(this.constructor.Event.INSERTED)\n\n        this._popper = new Popper(this.element, tip, {\n          placement: attachment,\n          modifiers: {\n            offset: {\n              offset: this.config.offset\n            },\n            flip: {\n              behavior: this.config.fallbackPlacement\n            },\n            arrow: {\n              element: Selector.ARROW\n            },\n            preventOverflow: {\n              boundariesElement: this.config.boundary\n            }\n          },\n          onCreate: (data) => {\n            if (data.originalPlacement !== data.placement) {\n              this._handlePopperPlacementChange(data)\n            }\n          },\n          onUpdate : (data) => {\n            this._handlePopperPlacementChange(data)\n          }\n        })\n\n        $(tip).addClass(ClassName.SHOW)\n\n        // if this is a touch-enabled device we add extra\n        // empty mouseover listeners to the body's immediate children;\n        // only needed because of broken event delegation on iOS\n        // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n        if ('ontouchstart' in document.documentElement) {\n          $('body').children().on('mouseover', null, $.noop)\n        }\n\n        const complete = () => {\n          if (this.config.animation) {\n            this._fixTransition()\n          }\n          const prevHoverState = this._hoverState\n          this._hoverState     = null\n\n          $(this.element).trigger(this.constructor.Event.SHOWN)\n\n          if (prevHoverState === HoverState.OUT) {\n            this._leave(null, this)\n          }\n        }\n\n        if (Util.supportsTransitionEnd() && $(this.tip).hasClass(ClassName.FADE)) {\n          $(this.tip)\n            .one(Util.TRANSITION_END, complete)\n            .emulateTransitionEnd(Tooltip._TRANSITION_DURATION)\n        } else {\n          complete()\n        }\n      }\n    }\n\n    hide(callback) {\n      const tip       = this.getTipElement()\n      const hideEvent = $.Event(this.constructor.Event.HIDE)\n      const complete  = () => {\n        if (this._hoverState !== HoverState.SHOW && tip.parentNode) {\n          tip.parentNode.removeChild(tip)\n        }\n\n        this._cleanTipClass()\n        this.element.removeAttribute('aria-describedby')\n        $(this.element).trigger(this.constructor.Event.HIDDEN)\n        if (this._popper !== null) {\n          this._popper.destroy()\n        }\n\n        if (callback) {\n          callback()\n        }\n      }\n\n      $(this.element).trigger(hideEvent)\n\n      if (hideEvent.isDefaultPrevented()) {\n        return\n      }\n\n      $(tip).removeClass(ClassName.SHOW)\n\n      // if this is a touch-enabled device we remove the extra\n      // empty mouseover listeners we added for iOS support\n      if ('ontouchstart' in document.documentElement) {\n        $('body').children().off('mouseover', null, $.noop)\n      }\n\n      this._activeTrigger[Trigger.CLICK] = false\n      this._activeTrigger[Trigger.FOCUS] = false\n      this._activeTrigger[Trigger.HOVER] = false\n\n      if (Util.supportsTransitionEnd() &&\n          $(this.tip).hasClass(ClassName.FADE)) {\n\n        $(tip)\n          .one(Util.TRANSITION_END, complete)\n          .emulateTransitionEnd(TRANSITION_DURATION)\n\n      } else {\n        complete()\n      }\n\n      this._hoverState = ''\n\n    }\n\n    update() {\n      if (this._popper !== null) {\n        this._popper.scheduleUpdate()\n      }\n    }\n\n    // protected\n\n    isWithContent() {\n      return Boolean(this.getTitle())\n    }\n\n    addAttachmentClass(attachment) {\n      $(this.getTipElement()).addClass(`${CLASS_PREFIX}-${attachment}`)\n    }\n\n    getTipElement() {\n      this.tip = this.tip || $(this.config.template)[0]\n      return this.tip\n    }\n\n    setContent() {\n      const $tip = $(this.getTipElement())\n      this.setElementContent($tip.find(Selector.TOOLTIP_INNER), this.getTitle())\n      $tip.removeClass(`${ClassName.FADE} ${ClassName.SHOW}`)\n    }\n\n    setElementContent($element, content) {\n      const html = this.config.html\n      if (typeof content === 'object' && (content.nodeType || content.jquery)) {\n        // content is a DOM node or a jQuery\n        if (html) {\n          if (!$(content).parent().is($element)) {\n            $element.empty().append(content)\n          }\n        } else {\n          $element.text($(content).text())\n        }\n      } else {\n        $element[html ? 'html' : 'text'](content)\n      }\n    }\n\n    getTitle() {\n      let title = this.element.getAttribute('data-original-title')\n\n      if (!title) {\n        title = typeof this.config.title === 'function' ?\n          this.config.title.call(this.element) :\n          this.config.title\n      }\n\n      return title\n    }\n\n\n    // private\n\n    _getAttachment(placement) {\n      return AttachmentMap[placement.toUpperCase()]\n    }\n\n    _setListeners() {\n      const triggers = this.config.trigger.split(' ')\n\n      triggers.forEach((trigger) => {\n        if (trigger === 'click') {\n          $(this.element).on(\n            this.constructor.Event.CLICK,\n            this.config.selector,\n            (event) => this.toggle(event)\n          )\n\n        } else if (trigger !== Trigger.MANUAL) {\n          const eventIn  = trigger === Trigger.HOVER ?\n            this.constructor.Event.MOUSEENTER :\n            this.constructor.Event.FOCUSIN\n          const eventOut = trigger === Trigger.HOVER ?\n            this.constructor.Event.MOUSELEAVE :\n            this.constructor.Event.FOCUSOUT\n\n          $(this.element)\n            .on(\n              eventIn,\n              this.config.selector,\n              (event) => this._enter(event)\n            )\n            .on(\n              eventOut,\n              this.config.selector,\n              (event) => this._leave(event)\n            )\n        }\n\n        $(this.element).closest('.modal').on(\n          'hide.bs.modal',\n          () => this.hide()\n        )\n      })\n\n      if (this.config.selector) {\n        this.config = {\n          ...this.config,\n          trigger  : 'manual',\n          selector : ''\n        }\n      } else {\n        this._fixTitle()\n      }\n    }\n\n    _fixTitle() {\n      const titleType = typeof this.element.getAttribute('data-original-title')\n      if (this.element.getAttribute('title') ||\n         titleType !== 'string') {\n        this.element.setAttribute(\n          'data-original-title',\n          this.element.getAttribute('title') || ''\n        )\n        this.element.setAttribute('title', '')\n      }\n    }\n\n    _enter(event, context) {\n      const dataKey = this.constructor.DATA_KEY\n\n      context = context || $(event.currentTarget).data(dataKey)\n\n      if (!context) {\n        context = new this.constructor(\n          event.currentTarget,\n          this._getDelegateConfig()\n        )\n        $(event.currentTarget).data(dataKey, context)\n      }\n\n      if (event) {\n        context._activeTrigger[\n          event.type === 'focusin' ? Trigger.FOCUS : Trigger.HOVER\n        ] = true\n      }\n\n      if ($(context.getTipElement()).hasClass(ClassName.SHOW) ||\n         context._hoverState === HoverState.SHOW) {\n        context._hoverState = HoverState.SHOW\n        return\n      }\n\n      clearTimeout(context._timeout)\n\n      context._hoverState = HoverState.SHOW\n\n      if (!context.config.delay || !context.config.delay.show) {\n        context.show()\n        return\n      }\n\n      context._timeout = setTimeout(() => {\n        if (context._hoverState === HoverState.SHOW) {\n          context.show()\n        }\n      }, context.config.delay.show)\n    }\n\n    _leave(event, context) {\n      const dataKey = this.constructor.DATA_KEY\n\n      context = context || $(event.currentTarget).data(dataKey)\n\n      if (!context) {\n        context = new this.constructor(\n          event.currentTarget,\n          this._getDelegateConfig()\n        )\n        $(event.currentTarget).data(dataKey, context)\n      }\n\n      if (event) {\n        context._activeTrigger[\n          event.type === 'focusout' ? Trigger.FOCUS : Trigger.HOVER\n        ] = false\n      }\n\n      if (context._isWithActiveTrigger()) {\n        return\n      }\n\n      clearTimeout(context._timeout)\n\n      context._hoverState = HoverState.OUT\n\n      if (!context.config.delay || !context.config.delay.hide) {\n        context.hide()\n        return\n      }\n\n      context._timeout = setTimeout(() => {\n        if (context._hoverState === HoverState.OUT) {\n          context.hide()\n        }\n      }, context.config.delay.hide)\n    }\n\n    _isWithActiveTrigger() {\n      for (const trigger in this._activeTrigger) {\n        if (this._activeTrigger[trigger]) {\n          return true\n        }\n      }\n\n      return false\n    }\n\n    _getConfig(config) {\n      config = {\n        ...this.constructor.Default,\n        ...$(this.element).data(),\n        ...config\n      }\n\n      if (typeof config.delay === 'number') {\n        config.delay = {\n          show : config.delay,\n          hide : config.delay\n        }\n      }\n\n      if (typeof config.title === 'number') {\n        config.title = config.title.toString()\n      }\n\n      if (typeof config.content === 'number') {\n        config.content = config.content.toString()\n      }\n\n      Util.typeCheckConfig(\n        NAME,\n        config,\n        this.constructor.DefaultType\n      )\n\n      return config\n    }\n\n    _getDelegateConfig() {\n      const config = {}\n\n      if (this.config) {\n        for (const key in this.config) {\n          if (this.constructor.Default[key] !== this.config[key]) {\n            config[key] = this.config[key]\n          }\n        }\n      }\n\n      return config\n    }\n\n    _cleanTipClass() {\n      const $tip = $(this.getTipElement())\n      const tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX)\n      if (tabClass !== null && tabClass.length > 0) {\n        $tip.removeClass(tabClass.join(''))\n      }\n    }\n\n    _handlePopperPlacementChange(data) {\n      this._cleanTipClass()\n      this.addAttachmentClass(this._getAttachment(data.placement))\n    }\n\n    _fixTransition() {\n      const tip                 = this.getTipElement()\n      const initConfigAnimation = this.config.animation\n      if (tip.getAttribute('x-placement') !== null) {\n        return\n      }\n      $(tip).removeClass(ClassName.FADE)\n      this.config.animation = false\n      this.hide()\n      this.show()\n      this.config.animation = initConfigAnimation\n    }\n\n    // static\n\n    static _jQueryInterface(config) {\n      return this.each(function () {\n        let data      = $(this).data(DATA_KEY)\n        const _config = typeof config === 'object' && config\n\n        if (!data && /dispose|hide/.test(config)) {\n          return\n        }\n\n        if (!data) {\n          data = new Tooltip(this, _config)\n          $(this).data(DATA_KEY, data)\n        }\n\n        if (typeof config === 'string') {\n          if (typeof data[config] === 'undefined') {\n            throw new Error(`No method named \"${config}\"`)\n          }\n          data[config]()\n        }\n      })\n    }\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $.fn[NAME]             = Tooltip._jQueryInterface\n  $.fn[NAME].Constructor = Tooltip\n  $.fn[NAME].noConflict  = function () {\n    $.fn[NAME] = JQUERY_NO_CONFLICT\n    return Tooltip._jQueryInterface\n  }\n\n  return Tooltip\n\n})($, Popper)\n\nexport default Tooltip\n","import $ from 'jquery'\nimport Tooltip from './tooltip'\n\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-beta.3): popover.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Popover = (($) => {\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  const NAME                = 'popover'\n  const VERSION             = '4.0.0-beta.3'\n  const DATA_KEY            = 'bs.popover'\n  const EVENT_KEY           = `.${DATA_KEY}`\n  const JQUERY_NO_CONFLICT  = $.fn[NAME]\n  const CLASS_PREFIX        = 'bs-popover'\n  const BSCLS_PREFIX_REGEX  = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\n\n  const Default = {\n    ...Tooltip.Default,\n    placement : 'right',\n    trigger   : 'click',\n    content   : '',\n    template  : '<div class=\"popover\" role=\"tooltip\">'\n              + '<div class=\"arrow\"></div>'\n              + '<h3 class=\"popover-header\"></h3>'\n              + '<div class=\"popover-body\"></div></div>'\n  }\n\n  const DefaultType = {\n    ...Tooltip.DefaultType,\n    content : '(string|element|function)'\n  }\n\n  const ClassName = {\n    FADE : 'fade',\n    SHOW : 'show'\n  }\n\n  const Selector = {\n    TITLE   : '.popover-header',\n    CONTENT : '.popover-body'\n  }\n\n  const Event = {\n    HIDE       : `hide${EVENT_KEY}`,\n    HIDDEN     : `hidden${EVENT_KEY}`,\n    SHOW       : `show${EVENT_KEY}`,\n    SHOWN      : `shown${EVENT_KEY}`,\n    INSERTED   : `inserted${EVENT_KEY}`,\n    CLICK      : `click${EVENT_KEY}`,\n    FOCUSIN    : `focusin${EVENT_KEY}`,\n    FOCUSOUT   : `focusout${EVENT_KEY}`,\n    MOUSEENTER : `mouseenter${EVENT_KEY}`,\n    MOUSELEAVE : `mouseleave${EVENT_KEY}`\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  class Popover extends Tooltip {\n\n\n    // getters\n\n    static get VERSION() {\n      return VERSION\n    }\n\n    static get Default() {\n      return Default\n    }\n\n    static get NAME() {\n      return NAME\n    }\n\n    static get DATA_KEY() {\n      return DATA_KEY\n    }\n\n    static get Event() {\n      return Event\n    }\n\n    static get EVENT_KEY() {\n      return EVENT_KEY\n    }\n\n    static get DefaultType() {\n      return DefaultType\n    }\n\n\n    // overrides\n\n    isWithContent() {\n      return this.getTitle() || this._getContent()\n    }\n\n    addAttachmentClass(attachment) {\n      $(this.getTipElement()).addClass(`${CLASS_PREFIX}-${attachment}`)\n    }\n\n    getTipElement() {\n      this.tip = this.tip || $(this.config.template)[0]\n      return this.tip\n    }\n\n    setContent() {\n      const $tip = $(this.getTipElement())\n\n      // we use append for html objects to maintain js events\n      this.setElementContent($tip.find(Selector.TITLE), this.getTitle())\n      let content = this._getContent()\n      if (typeof content === 'function') {\n        content = content.call(this.element)\n      }\n      this.setElementContent($tip.find(Selector.CONTENT), content)\n\n      $tip.removeClass(`${ClassName.FADE} ${ClassName.SHOW}`)\n    }\n\n    // private\n\n    _getContent() {\n      return this.element.getAttribute('data-content')\n        || this.config.content\n    }\n\n    _cleanTipClass() {\n      const $tip = $(this.getTipElement())\n      const tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX)\n      if (tabClass !== null && tabClass.length > 0) {\n        $tip.removeClass(tabClass.join(''))\n      }\n    }\n\n\n    // static\n\n    static _jQueryInterface(config) {\n      return this.each(function () {\n        let data      = $(this).data(DATA_KEY)\n        const _config = typeof config === 'object' ? config : null\n\n        if (!data && /destroy|hide/.test(config)) {\n          return\n        }\n\n        if (!data) {\n          data = new Popover(this, _config)\n          $(this).data(DATA_KEY, data)\n        }\n\n        if (typeof config === 'string') {\n          if (typeof data[config] === 'undefined') {\n            throw new Error(`No method named \"${config}\"`)\n          }\n          data[config]()\n        }\n      })\n    }\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $.fn[NAME]             = Popover._jQueryInterface\n  $.fn[NAME].Constructor = Popover\n  $.fn[NAME].noConflict  = function () {\n    $.fn[NAME] = JQUERY_NO_CONFLICT\n    return Popover._jQueryInterface\n  }\n\n  return Popover\n\n})($)\n\nexport default Popover\n","import $ from 'jquery'\nimport Util from './util'\n\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-beta.3): scrollspy.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst ScrollSpy = (($) => {\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  const NAME               = 'scrollspy'\n  const VERSION            = '4.0.0-beta.3'\n  const DATA_KEY           = 'bs.scrollspy'\n  const EVENT_KEY          = `.${DATA_KEY}`\n  const DATA_API_KEY       = '.data-api'\n  const JQUERY_NO_CONFLICT = $.fn[NAME]\n\n  const Default = {\n    offset : 10,\n    method : 'auto',\n    target : ''\n  }\n\n  const DefaultType = {\n    offset : 'number',\n    method : 'string',\n    target : '(string|element)'\n  }\n\n  const Event = {\n    ACTIVATE      : `activate${EVENT_KEY}`,\n    SCROLL        : `scroll${EVENT_KEY}`,\n    LOAD_DATA_API : `load${EVENT_KEY}${DATA_API_KEY}`\n  }\n\n  const ClassName = {\n    DROPDOWN_ITEM : 'dropdown-item',\n    DROPDOWN_MENU : 'dropdown-menu',\n    ACTIVE        : 'active'\n  }\n\n  const Selector = {\n    DATA_SPY        : '[data-spy=\"scroll\"]',\n    ACTIVE          : '.active',\n    NAV_LIST_GROUP  : '.nav, .list-group',\n    NAV_LINKS       : '.nav-link',\n    NAV_ITEMS       : '.nav-item',\n    LIST_ITEMS      : '.list-group-item',\n    DROPDOWN        : '.dropdown',\n    DROPDOWN_ITEMS  : '.dropdown-item',\n    DROPDOWN_TOGGLE : '.dropdown-toggle'\n  }\n\n  const OffsetMethod = {\n    OFFSET   : 'offset',\n    POSITION : 'position'\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  class ScrollSpy {\n\n    constructor(element, config) {\n      this._element       = element\n      this._scrollElement = element.tagName === 'BODY' ? window : element\n      this._config        = this._getConfig(config)\n      this._selector      = `${this._config.target} ${Selector.NAV_LINKS},`\n                          + `${this._config.target} ${Selector.LIST_ITEMS},`\n                          + `${this._config.target} ${Selector.DROPDOWN_ITEMS}`\n      this._offsets       = []\n      this._targets       = []\n      this._activeTarget  = null\n      this._scrollHeight  = 0\n\n      $(this._scrollElement).on(Event.SCROLL, (event) => this._process(event))\n\n      this.refresh()\n      this._process()\n    }\n\n\n    // getters\n\n    static get VERSION() {\n      return VERSION\n    }\n\n    static get Default() {\n      return Default\n    }\n\n\n    // public\n\n    refresh() {\n      const autoMethod = this._scrollElement !== this._scrollElement.window ?\n        OffsetMethod.POSITION : OffsetMethod.OFFSET\n\n      const offsetMethod = this._config.method === 'auto' ?\n        autoMethod : this._config.method\n\n      const offsetBase = offsetMethod === OffsetMethod.POSITION ?\n        this._getScrollTop() : 0\n\n      this._offsets = []\n      this._targets = []\n\n      this._scrollHeight = this._getScrollHeight()\n\n      const targets = $.makeArray($(this._selector))\n\n      targets\n        .map((element) => {\n          let target\n          const targetSelector = Util.getSelectorFromElement(element)\n\n          if (targetSelector) {\n            target = $(targetSelector)[0]\n          }\n\n          if (target) {\n            const targetBCR = target.getBoundingClientRect()\n            if (targetBCR.width || targetBCR.height) {\n              // todo (fat): remove sketch reliance on jQuery position/offset\n              return [\n                $(target)[offsetMethod]().top + offsetBase,\n                targetSelector\n              ]\n            }\n          }\n          return null\n        })\n        .filter((item)  => item)\n        .sort((a, b)    => a[0] - b[0])\n        .forEach((item) => {\n          this._offsets.push(item[0])\n          this._targets.push(item[1])\n        })\n    }\n\n    dispose() {\n      $.removeData(this._element, DATA_KEY)\n      $(this._scrollElement).off(EVENT_KEY)\n\n      this._element       = null\n      this._scrollElement = null\n      this._config        = null\n      this._selector      = null\n      this._offsets       = null\n      this._targets       = null\n      this._activeTarget  = null\n      this._scrollHeight  = null\n    }\n\n\n    // private\n\n    _getConfig(config) {\n      config = {\n        ...Default,\n        ...config\n      }\n\n      if (typeof config.target !== 'string') {\n        let id = $(config.target).attr('id')\n        if (!id) {\n          id = Util.getUID(NAME)\n          $(config.target).attr('id', id)\n        }\n        config.target = `#${id}`\n      }\n\n      Util.typeCheckConfig(NAME, config, DefaultType)\n\n      return config\n    }\n\n    _getScrollTop() {\n      return this._scrollElement === window ?\n          this._scrollElement.pageYOffset : this._scrollElement.scrollTop\n    }\n\n    _getScrollHeight() {\n      return this._scrollElement.scrollHeight || Math.max(\n        document.body.scrollHeight,\n        document.documentElement.scrollHeight\n      )\n    }\n\n    _getOffsetHeight() {\n      return this._scrollElement === window ?\n          window.innerHeight : this._scrollElement.getBoundingClientRect().height\n    }\n\n    _process() {\n      const scrollTop    = this._getScrollTop() + this._config.offset\n      const scrollHeight = this._getScrollHeight()\n      const maxScroll    = this._config.offset\n        + scrollHeight\n        - this._getOffsetHeight()\n\n      if (this._scrollHeight !== scrollHeight) {\n        this.refresh()\n      }\n\n      if (scrollTop >= maxScroll) {\n        const target = this._targets[this._targets.length - 1]\n\n        if (this._activeTarget !== target) {\n          this._activate(target)\n        }\n        return\n      }\n\n      if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) {\n        this._activeTarget = null\n        this._clear()\n        return\n      }\n\n      for (let i = this._offsets.length; i--;) {\n        const isActiveTarget = this._activeTarget !== this._targets[i]\n            && scrollTop >= this._offsets[i]\n            && (typeof this._offsets[i + 1] === 'undefined' ||\n                scrollTop < this._offsets[i + 1])\n\n        if (isActiveTarget) {\n          this._activate(this._targets[i])\n        }\n      }\n    }\n\n    _activate(target) {\n      this._activeTarget = target\n\n      this._clear()\n\n      let queries = this._selector.split(',')\n      // eslint-disable-next-line arrow-body-style\n      queries     = queries.map((selector) => {\n        return `${selector}[data-target=\"${target}\"],` +\n               `${selector}[href=\"${target}\"]`\n      })\n\n      const $link = $(queries.join(','))\n\n      if ($link.hasClass(ClassName.DROPDOWN_ITEM)) {\n        $link.closest(Selector.DROPDOWN).find(Selector.DROPDOWN_TOGGLE).addClass(ClassName.ACTIVE)\n        $link.addClass(ClassName.ACTIVE)\n      } else {\n        // Set triggered link as active\n        $link.addClass(ClassName.ACTIVE)\n        // Set triggered links parents as active\n        // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor\n        $link.parents(Selector.NAV_LIST_GROUP).prev(`${Selector.NAV_LINKS}, ${Selector.LIST_ITEMS}`).addClass(ClassName.ACTIVE)\n        // Handle special case when .nav-link is inside .nav-item\n        $link.parents(Selector.NAV_LIST_GROUP).prev(Selector.NAV_ITEMS).children(Selector.NAV_LINKS).addClass(ClassName.ACTIVE)\n      }\n\n      $(this._scrollElement).trigger(Event.ACTIVATE, {\n        relatedTarget: target\n      })\n    }\n\n    _clear() {\n      $(this._selector).filter(Selector.ACTIVE).removeClass(ClassName.ACTIVE)\n    }\n\n\n    // static\n\n    static _jQueryInterface(config) {\n      return this.each(function () {\n        let data      = $(this).data(DATA_KEY)\n        const _config = typeof config === 'object' && config\n\n        if (!data) {\n          data = new ScrollSpy(this, _config)\n          $(this).data(DATA_KEY, data)\n        }\n\n        if (typeof config === 'string') {\n          if (typeof data[config] === 'undefined') {\n            throw new Error(`No method named \"${config}\"`)\n          }\n          data[config]()\n        }\n      })\n    }\n\n\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n  $(window).on(Event.LOAD_DATA_API, () => {\n    const scrollSpys = $.makeArray($(Selector.DATA_SPY))\n\n    for (let i = scrollSpys.length; i--;) {\n      const $spy = $(scrollSpys[i])\n      ScrollSpy._jQueryInterface.call($spy, $spy.data())\n    }\n  })\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $.fn[NAME]             = ScrollSpy._jQueryInterface\n  $.fn[NAME].Constructor = ScrollSpy\n  $.fn[NAME].noConflict  = function () {\n    $.fn[NAME] = JQUERY_NO_CONFLICT\n    return ScrollSpy._jQueryInterface\n  }\n\n  return ScrollSpy\n\n})($)\n\nexport default ScrollSpy\n","import $ from 'jquery'\nimport Util from './util'\n\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-beta.3): tab.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Tab = (($) => {\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  const NAME                = 'tab'\n  const VERSION             = '4.0.0-beta.3'\n  const DATA_KEY            = 'bs.tab'\n  const EVENT_KEY           = `.${DATA_KEY}`\n  const DATA_API_KEY        = '.data-api'\n  const JQUERY_NO_CONFLICT  = $.fn[NAME]\n  const TRANSITION_DURATION = 150\n\n  const Event = {\n    HIDE           : `hide${EVENT_KEY}`,\n    HIDDEN         : `hidden${EVENT_KEY}`,\n    SHOW           : `show${EVENT_KEY}`,\n    SHOWN          : `shown${EVENT_KEY}`,\n    CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n  }\n\n  const ClassName = {\n    DROPDOWN_MENU : 'dropdown-menu',\n    ACTIVE        : 'active',\n    DISABLED      : 'disabled',\n    FADE          : 'fade',\n    SHOW          : 'show'\n  }\n\n  const Selector = {\n    DROPDOWN              : '.dropdown',\n    NAV_LIST_GROUP        : '.nav, .list-group',\n    ACTIVE                : '.active',\n    ACTIVE_UL             : '> li > .active',\n    DATA_TOGGLE           : '[data-toggle=\"tab\"], [data-toggle=\"pill\"], [data-toggle=\"list\"]',\n    DROPDOWN_TOGGLE       : '.dropdown-toggle',\n    DROPDOWN_ACTIVE_CHILD : '> .dropdown-menu .active'\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  class Tab {\n\n    constructor(element) {\n      this._element = element\n    }\n\n\n    // getters\n\n    static get VERSION() {\n      return VERSION\n    }\n\n\n    // public\n\n    show() {\n      if (this._element.parentNode &&\n          this._element.parentNode.nodeType === Node.ELEMENT_NODE &&\n          $(this._element).hasClass(ClassName.ACTIVE) ||\n          $(this._element).hasClass(ClassName.DISABLED)) {\n        return\n      }\n\n      let target\n      let previous\n      const listElement = $(this._element).closest(Selector.NAV_LIST_GROUP)[0]\n      const selector    = Util.getSelectorFromElement(this._element)\n\n      if (listElement) {\n        const itemSelector = listElement.nodeName === 'UL' ? Selector.ACTIVE_UL : Selector.ACTIVE\n        previous = $.makeArray($(listElement).find(itemSelector))\n        previous = previous[previous.length - 1]\n      }\n\n      const hideEvent = $.Event(Event.HIDE, {\n        relatedTarget: this._element\n      })\n\n      const showEvent = $.Event(Event.SHOW, {\n        relatedTarget: previous\n      })\n\n      if (previous) {\n        $(previous).trigger(hideEvent)\n      }\n\n      $(this._element).trigger(showEvent)\n\n      if (showEvent.isDefaultPrevented() ||\n         hideEvent.isDefaultPrevented()) {\n        return\n      }\n\n      if (selector) {\n        target = $(selector)[0]\n      }\n\n      this._activate(\n        this._element,\n        listElement\n      )\n\n      const complete = () => {\n        const hiddenEvent = $.Event(Event.HIDDEN, {\n          relatedTarget: this._element\n        })\n\n        const shownEvent = $.Event(Event.SHOWN, {\n          relatedTarget: previous\n        })\n\n        $(previous).trigger(hiddenEvent)\n        $(this._element).trigger(shownEvent)\n      }\n\n      if (target) {\n        this._activate(target, target.parentNode, complete)\n      } else {\n        complete()\n      }\n    }\n\n    dispose() {\n      $.removeData(this._element, DATA_KEY)\n      this._element = null\n    }\n\n\n    // private\n\n    _activate(element, container, callback) {\n      let activeElements\n      if (container.nodeName === 'UL') {\n        activeElements = $(container).find(Selector.ACTIVE_UL)\n      } else {\n        activeElements = $(container).children(Selector.ACTIVE)\n      }\n\n      const active          = activeElements[0]\n      const isTransitioning = callback\n        && Util.supportsTransitionEnd()\n        && (active && $(active).hasClass(ClassName.FADE))\n\n      const complete = () => this._transitionComplete(\n        element,\n        active,\n        callback\n      )\n\n      if (active && isTransitioning) {\n        $(active)\n          .one(Util.TRANSITION_END, complete)\n          .emulateTransitionEnd(TRANSITION_DURATION)\n      } else {\n        complete()\n      }\n    }\n\n    _transitionComplete(element, active, callback) {\n      if (active) {\n        $(active).removeClass(`${ClassName.SHOW} ${ClassName.ACTIVE}`)\n\n        const dropdownChild = $(active.parentNode).find(\n          Selector.DROPDOWN_ACTIVE_CHILD\n        )[0]\n\n        if (dropdownChild) {\n          $(dropdownChild).removeClass(ClassName.ACTIVE)\n        }\n\n        if (active.getAttribute('role') === 'tab') {\n          active.setAttribute('aria-selected', false)\n        }\n      }\n\n      $(element).addClass(ClassName.ACTIVE)\n      if (element.getAttribute('role') === 'tab') {\n        element.setAttribute('aria-selected', true)\n      }\n\n      Util.reflow(element)\n      $(element).addClass(ClassName.SHOW)\n\n      if (element.parentNode &&\n          $(element.parentNode).hasClass(ClassName.DROPDOWN_MENU)) {\n\n        const dropdownElement = $(element).closest(Selector.DROPDOWN)[0]\n        if (dropdownElement) {\n          $(dropdownElement).find(Selector.DROPDOWN_TOGGLE).addClass(ClassName.ACTIVE)\n        }\n\n        element.setAttribute('aria-expanded', true)\n      }\n\n      if (callback) {\n        callback()\n      }\n    }\n\n\n    // static\n\n    static _jQueryInterface(config) {\n      return this.each(function () {\n        const $this = $(this)\n        let data    = $this.data(DATA_KEY)\n\n        if (!data) {\n          data = new Tab(this)\n          $this.data(DATA_KEY, data)\n        }\n\n        if (typeof config === 'string') {\n          if (typeof data[config] === 'undefined') {\n            throw new Error(`No method named \"${config}\"`)\n          }\n          data[config]()\n        }\n      })\n    }\n\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n  $(document)\n    .on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n      event.preventDefault()\n      Tab._jQueryInterface.call($(this), 'show')\n    })\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $.fn[NAME]             = Tab._jQueryInterface\n  $.fn[NAME].Constructor = Tab\n  $.fn[NAME].noConflict  = function () {\n    $.fn[NAME] = JQUERY_NO_CONFLICT\n    return Tab._jQueryInterface\n  }\n\n  return Tab\n\n})($)\n\nexport default Tab\n","import $ from 'jquery'\nimport Alert from './alert'\nimport Button from './button'\nimport Carousel from './carousel'\nimport Collapse from './collapse'\nimport Dropdown from './dropdown'\nimport Modal from './modal'\nimport Popover from './popover'\nimport Scrollspy from './scrollspy'\nimport Tab from './tab'\nimport Tooltip from './tooltip'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-alpha.6): index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n(($) => {\n  if (typeof $ === 'undefined') {\n    throw new Error('Bootstrap\\'s JavaScript requires jQuery. jQuery must be included before Bootstrap\\'s JavaScript.')\n  }\n\n  const version = $.fn.jquery.split(' ')[0].split('.')\n  const minMajor = 1\n  const ltMajor  = 2\n  const minMinor = 9\n  const minPatch = 1\n  const maxMajor = 4\n\n  if (version[0] < ltMajor && version[1] < minMinor || version[0] === minMajor && version[1] === minMinor && version[2] < minPatch || version[0] >= maxMajor) {\n    throw new Error('Bootstrap\\'s JavaScript requires at least jQuery v1.9.1 but less than v4.0.0')\n  }\n})($)\n\nexport {\n  Util,\n  Alert,\n  Button,\n  Carousel,\n  Collapse,\n  Dropdown,\n  Modal,\n  Popover,\n  Scrollspy,\n  Tab,\n  Tooltip\n}\n"],"names":["Util","$","transition","MAX_UID","toType","obj","toString","call","match","toLowerCase","getSpecialTransitionEndEvent","end","event","target","is","handleObj","handler","apply","arguments","undefined","transitionEndTest","window","QUnit","transitionEndEmulator","duration","called","one","TRANSITION_END","triggerTransitionEnd","setTransitionEndSupport","fn","emulateTransitionEnd","supportsTransitionEnd","special","escapeId","selector","escapeSelector","substr","replace","prefix","Math","random","document","getElementById","element","getAttribute","charAt","$selector","find","length","error","offsetHeight","trigger","Boolean","nodeType","componentName","config","configTypes","property","Object","prototype","hasOwnProperty","expectedTypes","value","valueType","isElement","RegExp","test","Error","toUpperCase","Alert","NAME","VERSION","DATA_KEY","EVENT_KEY","DATA_API_KEY","JQUERY_NO_CONFLICT","TRANSITION_DURATION","Selector","Event","ClassName","_element","close","rootElement","_getRootElement","customEvent","_triggerCloseEvent","isDefaultPrevented","_removeElement","dispose","removeData","getSelectorFromElement","parent","closest","ALERT","closeEvent","CLOSE","removeClass","SHOW","hasClass","FADE","_destroyElement","detach","CLOSED","remove","_jQueryInterface","each","$element","data","_handleDismiss","alertInstance","preventDefault","on","CLICK_DATA_API","DISMISS","Constructor","noConflict","Button","toggle","triggerChangeEvent","addAriaPressed","DATA_TOGGLE","input","INPUT","type","checked","ACTIVE","activeElement","hasAttribute","classList","contains","focus","setAttribute","toggleClass","DATA_TOGGLE_CARROT","button","BUTTON","FOCUS_BLUR_DATA_API","FOCUS","Carousel","ARROW_LEFT_KEYCODE","ARROW_RIGHT_KEYCODE","TOUCHEVENT_COMPAT_WAIT","Default","DefaultType","Direction","_items","_interval","_activeElement","_isPaused","_isSliding","touchTimeout","_config","_getConfig","_indicatorsElement","INDICATORS","_addEventListeners","next","_slide","NEXT","nextWhenVisible","hidden","css","prev","PREV","pause","NEXT_PREV","cycle","interval","setInterval","visibilityState","bind","to","index","ACTIVE_ITEM","activeIndex","_getItemIndex","SLID","direction","off","typeCheckConfig","keyboard","KEYDOWN","_keydown","MOUSEENTER","MOUSELEAVE","documentElement","TOUCHEND","setTimeout","tagName","which","makeArray","ITEM","indexOf","_getItemByDirection","isNextDirection","isPrevDirection","lastItemIndex","isGoingToWrap","wrap","delta","itemIndex","_triggerSlideEvent","relatedTarget","eventDirectionName","targetIndex","fromIndex","slideEvent","SLIDE","_setActiveIndicatorElement","nextIndicator","children","addClass","activeElementIndex","nextElement","nextElementIndex","isCycling","directionalClassName","orderClassName","LEFT","RIGHT","slidEvent","reflow","action","slide","_dataApiClickHandler","CAROUSEL","slideIndex","DATA_SLIDE","LOAD_DATA_API","DATA_RIDE","$carousel","Collapse","Dimension","_isTransitioning","_triggerArray","id","tabToggles","i","elem","filter","push","_parent","_getParent","_addAriaAndCollapsedClass","hide","show","actives","activesData","ACTIVES","startEvent","dimension","_getDimension","COLLAPSE","COLLAPSING","style","COLLAPSED","attr","setTransitioning","complete","SHOWN","capitalizedDimension","slice","scrollSize","HIDE","getBoundingClientRect","$elem","HIDDEN","isTransitioning","hasWidth","WIDTH","HEIGHT","jquery","_getTargetFromElement","triggerArray","isOpen","$this","currentTarget","$trigger","$target","Dropdown","ESCAPE_KEYCODE","SPACE_KEYCODE","TAB_KEYCODE","ARROW_UP_KEYCODE","ARROW_DOWN_KEYCODE","RIGHT_MOUSE_BUTTON_WHICH","REGEXP_KEYDOWN","AttachmentMap","_popper","_menu","_getMenuElement","_inNavbar","_detectNavbar","disabled","DISABLED","_getParentFromElement","isActive","_clearMenus","showEvent","Popper","DROPUP","MENULEFT","MENURIGHT","boundary","POSITION_STATIC","_getPopperConfig","NAVBAR_NAV","noop","destroy","update","scheduleUpdate","CLICK","stopPropagation","constructor","MENU","_getPlacement","$parentDropdown","placement","BOTTOM","TOP","TOPEND","DROPRIGHT","DROPLEFT","BOTTOMEND","offsetConf","offset","offsets","popperConfig","flip","toggles","context","dropdownMenu","hideEvent","parentNode","_dataApiKeydownHandler","items","VISIBLE_ITEMS","get","KEYDOWN_DATA_API","KEYUP_DATA_API","FORM_CHILD","e","Modal","BACKDROP_TRANSITION_DURATION","_dialog","DIALOG","_backdrop","_isShown","_isBodyOverflowing","_ignoreBackdropClick","_originalBodyPadding","_scrollbarWidth","_checkScrollbar","_setScrollbar","_adjustDialog","body","OPEN","_setEscapeEvent","_setResizeEvent","CLICK_DISMISS","DATA_DISMISS","MOUSEDOWN_DISMISS","MOUSEUP_DISMISS","_showBackdrop","_showElement","FOCUSIN","_hideModal","handleUpdate","Node","ELEMENT_NODE","appendChild","display","removeAttribute","scrollTop","_enforceFocus","shownEvent","transitionComplete","has","KEYDOWN_DISMISS","RESIZE","_resetAdjustments","_resetScrollbar","_removeBackdrop","callback","animate","backdrop","doAnimate","createElement","className","BACKDROP","appendTo","callbackRemove","isModalOverflowing","scrollHeight","clientHeight","paddingLeft","paddingRight","rect","left","right","innerWidth","_getScrollbarWidth","FIXED_CONTENT","actualPadding","calculatedPadding","parseFloat","STICKY_CONTENT","actualMargin","marginRight","calculatedMargin","NAVBAR_TOGGLER","padding","margin","scrollDiv","SCROLLBAR_MEASURER","scrollbarWidth","width","clientWidth","removeChild","Tooltip","CLASS_PREFIX","BSCLS_PREFIX_REGEX","HoverState","Trigger","_isEnabled","_timeout","_hoverState","_activeTrigger","tip","_setListeners","enable","disable","toggleEnabled","dataKey","_getDelegateConfig","click","_isWithActiveTrigger","_enter","_leave","getTipElement","isWithContent","isInTheDom","ownerDocument","tipId","getUID","setContent","animation","attachment","_getAttachment","addAttachmentClass","container","INSERTED","fallbackPlacement","ARROW","originalPlacement","_handlePopperPlacementChange","_fixTransition","prevHoverState","OUT","_TRANSITION_DURATION","_cleanTipClass","HOVER","getTitle","template","$tip","setElementContent","TOOLTIP_INNER","content","html","empty","append","text","title","triggers","split","forEach","MANUAL","eventIn","eventOut","FOCUSOUT","_fixTitle","titleType","delay","key","tabClass","join","initConfigAnimation","Popover","_getContent","TITLE","CONTENT","ScrollSpy","OffsetMethod","_scrollElement","_selector","NAV_LINKS","LIST_ITEMS","DROPDOWN_ITEMS","_offsets","_targets","_activeTarget","_scrollHeight","SCROLL","_process","refresh","autoMethod","POSITION","OFFSET","offsetMethod","method","offsetBase","_getScrollTop","_getScrollHeight","targets","map","targetSelector","targetBCR","height","top","item","sort","a","b","pageYOffset","max","_getOffsetHeight","innerHeight","maxScroll","_activate","_clear","isActiveTarget","queries","$link","DROPDOWN_ITEM","DROPDOWN","DROPDOWN_TOGGLE","parents","NAV_LIST_GROUP","NAV_ITEMS","ACTIVATE","scrollSpys","DATA_SPY","$spy","Tab","previous","listElement","itemSelector","nodeName","ACTIVE_UL","hiddenEvent","activeElements","active","_transitionComplete","dropdownChild","DROPDOWN_ACTIVE_CHILD","DROPDOWN_MENU","dropdownElement","version","minMajor","ltMajor","minMinor","minPatch","maxMajor"],"mappings":";;;;;;;;;;;;;;AAEA,SAAS,iBAAiB,CAAC,MAAM,EAAE,KAAK,EAAE;EACxC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;IACrC,IAAI,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IAC1B,UAAU,CAAC,UAAU,GAAG,UAAU,CAAC,UAAU,IAAI,KAAK,CAAC;IACvD,UAAU,CAAC,YAAY,GAAG,IAAI,CAAC;IAC/B,IAAI,OAAO,IAAI,UAAU,EAAE,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC;IACtD,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,UAAU,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;GAC3D;CACF;;AAED,SAAS,YAAY,CAAC,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE;EAC1D,IAAI,UAAU,EAAE,iBAAiB,CAAC,WAAW,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;EACrE,IAAI,WAAW,EAAE,iBAAiB,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;EAC7D,OAAO,WAAW,CAAC;CACpB;;AAED,SAAS,QAAQ,GAAG;EAClB,QAAQ,GAAG,MAAM,CAAC,MAAM,IAAI,UAAU,MAAM,EAAE;IAC5C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;MACzC,IAAI,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;;MAE1B,KAAK,IAAI,GAAG,IAAI,MAAM,EAAE;QACtB,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE;UACrD,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;SAC3B;OACF;KACF;;IAED,OAAO,MAAM,CAAC;GACf,CAAC;;EAEF,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;CACxC;;AAED,SAAS,cAAc,CAAC,QAAQ,EAAE,UAAU,EAAE;EAC5C,QAAQ,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;EACzD,QAAQ,CAAC,SAAS,CAAC,WAAW,GAAG,QAAQ,CAAC;EAC1C,QAAQ,CAAC,SAAS,GAAG,UAAU,CAAC;;;CACjC,DCtCD;;;;;;;AAOA,IAAMA,OAAQ,UAACC,IAAD,EAAO;;;;;;MASfC,aAAa,KAAjB;MAEMC,UAAU,OAAhB,CAXmB;;WAcVC,MAAT,CAAgBC,GAAhB,EAAqB;WACZ,GAAGC,QAAH,CAAYC,IAAZ,CAAiBF,GAAjB,EAAsBG,KAAtB,CAA4B,eAA5B,EAA6C,CAA7C,EAAgDC,WAAhD,EAAP;;;WAGOC,4BAAT,GAAwC;WAC/B;gBACKR,WAAWS,GADhB;oBAEST,WAAWS,GAFpB;YAAA,kBAGEC,KAHF,EAGS;YACRX,KAAEW,MAAMC,MAAR,EAAgBC,EAAhB,CAAmB,IAAnB,CAAJ,EAA8B;iBACrBF,MAAMG,SAAN,CAAgBC,OAAhB,CAAwBC,KAAxB,CAA8B,IAA9B,EAAoCC,SAApC,CAAP,CAD4B;;;eAGvBC,SAAP,CAJY;;KAHhB;;;WAYOC,iBAAT,GAA6B;QACvBC,OAAOC,KAAX,EAAkB;aACT,KAAP;;;WAGK;WACA;KADP;;;WAKOC,qBAAT,CAA+BC,QAA/B,EAAyC;;;QACnCC,SAAS,KAAb;SAEE,IAAF,EAAQC,GAAR,CAAY1B,KAAK2B,cAAjB,EAAiC,YAAM;eAC5B,IAAT;KADF;eAIW,YAAM;UACX,CAACF,MAAL,EAAa;aACNG,oBAAL;;KAFJ,EAIGJ,QAJH;WAMO,IAAP;;;WAGOK,uBAAT,GAAmC;iBACpBT,mBAAb;SAEEU,EAAF,CAAKC,oBAAL,GAA4BR,qBAA5B;;QAEIvB,KAAKgC,qBAAL,EAAJ,EAAkC;WAC9BpB,KAAF,CAAQqB,OAAR,CAAgBjC,KAAK2B,cAArB,IAAuCjB,8BAAvC;;;;WAIKwB,QAAT,CAAkBC,QAAlB,EAA4B;;;eAGf,OAAOlC,KAAEmC,cAAT,KAA4B,UAA5B,GAAyCnC,KAAEmC,cAAF,CAAiBD,QAAjB,EAA2BE,MAA3B,CAAkC,CAAlC,CAAzC,GACTF,SAASG,OAAT,CAAiB,qBAAjB,EAAwC,MAAxC,CADF;WAGOH,QAAP;;;;;;;;;MASInC,OAAO;oBAEK,iBAFL;UAAA,kBAIJuC,MAJI,EAII;SACV;;kBAES,CAAC,EAAEC,KAAKC,MAAL,KAAgBtC,OAAlB,CAAX,CAFC;OAAH,QAGSuC,SAASC,cAAT,CAAwBJ,MAAxB,CAHT;;aAIOA,MAAP;KATS;0BAAA,kCAYYK,OAZZ,EAYqB;UAC1BT,WAAWS,QAAQC,YAAR,CAAqB,aAArB,CAAf;;UACI,CAACV,QAAD,IAAaA,aAAa,GAA9B,EAAmC;mBACtBS,QAAQC,YAAR,CAAqB,MAArB,KAAgC,EAA3C;OAH4B;;;UAO1BV,SAASW,MAAT,CAAgB,CAAhB,MAAuB,GAA3B,EAAgC;mBACnBZ,SAASC,QAAT,CAAX;;;UAGE;YACIY,YAAY9C,KAAEyC,QAAF,EAAYM,IAAZ,CAAiBb,QAAjB,CAAlB;eACOY,UAAUE,MAAV,GAAmB,CAAnB,GAAuBd,QAAvB,GAAkC,IAAzC;OAFF,CAGE,OAAOe,KAAP,EAAc;eACP,IAAP;;KA3BO;UAAA,kBA+BJN,OA/BI,EA+BK;aACPA,QAAQO,YAAf;KAhCS;wBAAA,gCAmCUP,OAnCV,EAmCmB;WAC1BA,OAAF,EAAWQ,OAAX,CAAmBlD,WAAWS,GAA9B;KApCS;yBAAA,mCAuCa;aACf0C,QAAQnD,UAAR,CAAP;KAxCS;aAAA,qBA2CDG,GA3CC,EA2CI;aACN,CAACA,IAAI,CAAJ,KAAUA,GAAX,EAAgBiD,QAAvB;KA5CS;mBAAA,2BA+CKC,aA/CL,EA+CoBC,MA/CpB,EA+C4BC,WA/C5B,EA+CyC;WAC7C,IAAMC,QAAX,IAAuBD,WAAvB,EAAoC;YAC9BE,OAAOC,SAAP,CAAiBC,cAAjB,CAAgCtD,IAAhC,CAAqCkD,WAArC,EAAkDC,QAAlD,CAAJ,EAAiE;cACzDI,gBAAgBL,YAAYC,QAAZ,CAAtB;cACMK,QAAgBP,OAAOE,QAAP,CAAtB;cACMM,YAAgBD,SAAS/D,KAAKiE,SAAL,CAAeF,KAAf,CAAT,GACA,SADA,GACY3D,OAAO2D,KAAP,CADlC;;cAGI,CAAC,IAAIG,MAAJ,CAAWJ,aAAX,EAA0BK,IAA1B,CAA+BH,SAA/B,CAAL,EAAgD;kBACxC,IAAII,KAAJ,CACDb,cAAcc,WAAd,EAAH,yBACWX,QADX,2BACuCM,SADvC,sCAEsBF,aAFtB,SADI,CAAN;;;;;GAxDV;;SAoEO9D,IAAP;CAtJW,CAwJVC,CAxJU,CAAb;;ACLA;;;;;;;AAOA,IAAMqE,QAAS,UAACrE,IAAD,EAAO;;;;;;MASdsE,OAAsB,OAA5B;MACMC,UAAsB,cAA5B;MACMC,WAAsB,UAA5B;MACMC,kBAA0BD,QAAhC;MACME,eAAsB,WAA5B;MACMC,qBAAsB3E,KAAE6B,EAAF,CAAKyC,IAAL,CAA5B;MACMM,sBAAsB,GAA5B;MAEMC,WAAW;aACL;GADZ;MAIMC,QAAQ;qBACaL,SADb;uBAEcA,SAFd;8BAGaA,SAAzB,GAAqCC;GAHvC;MAMMK,YAAY;WACR,OADQ;UAER,MAFQ;UAGR;;;;;;;GAHV;;MAaMV,KAxCc;;;mBA0CN1B,OAAZ,EAAqB;WACdqC,QAAL,GAAgBrC,OAAhB;KA3CgB;;;;;;WAwDlBsC,KAxDkB,kBAwDZtC,OAxDY,EAwDH;gBACHA,WAAW,KAAKqC,QAA1B;;UAEME,cAAc,KAAKC,eAAL,CAAqBxC,OAArB,CAApB;;UACMyC,cAAc,KAAKC,kBAAL,CAAwBH,WAAxB,CAApB;;UAEIE,YAAYE,kBAAZ,EAAJ,EAAsC;;;;WAIjCC,cAAL,CAAoBL,WAApB;KAlEgB;;WAqElBM,OArEkB,sBAqER;WACNC,UAAF,CAAa,KAAKT,QAAlB,EAA4BR,QAA5B;WACKQ,QAAL,GAAgB,IAAhB;KAvEgB;;;WA6ElBG,eA7EkB,4BA6EFxC,OA7EE,EA6EO;UACjBT,WAAWnC,KAAK2F,sBAAL,CAA4B/C,OAA5B,CAAjB;UACIgD,SAAa,KAAjB;;UAEIzD,QAAJ,EAAc;iBACHlC,KAAEkC,QAAF,EAAY,CAAZ,CAAT;;;UAGE,CAACyD,MAAL,EAAa;iBACF3F,KAAE2C,OAAF,EAAWiD,OAAX,OAAuBb,UAAUc,KAAjC,EAA0C,CAA1C,CAAT;;;aAGKF,MAAP;KAzFgB;;WA4FlBN,kBA5FkB,+BA4FC1C,OA5FD,EA4FU;UACpBmD,aAAa9F,KAAE8E,KAAF,CAAQA,MAAMiB,KAAd,CAAnB;WAEEpD,OAAF,EAAWQ,OAAX,CAAmB2C,UAAnB;aACOA,UAAP;KAhGgB;;WAmGlBP,cAnGkB,2BAmGH5C,OAnGG,EAmGM;;;WACpBA,OAAF,EAAWqD,WAAX,CAAuBjB,UAAUkB,IAAjC;;UAEI,CAAClG,KAAKgC,qBAAL,EAAD,IACA,CAAC/B,KAAE2C,OAAF,EAAWuD,QAAX,CAAoBnB,UAAUoB,IAA9B,CADL,EAC0C;aACnCC,eAAL,CAAqBzD,OAArB;;;;;WAIAA,OAAF,EACGlB,GADH,CACO1B,KAAK2B,cADZ,EAC4B,UAACf,KAAD;eAAW,MAAKyF,eAAL,CAAqBzD,OAArB,EAA8BhC,KAA9B,CAAX;OAD5B,EAEGmB,oBAFH,CAEwB8C,mBAFxB;KA5GgB;;WAiHlBwB,eAjHkB,4BAiHFzD,OAjHE,EAiHO;WACrBA,OAAF,EACG0D,MADH,GAEGlD,OAFH,CAEW2B,MAAMwB,MAFjB,EAGGC,MAHH;KAlHgB;;;UA2HXC,gBA3HW,6BA2HMjD,MA3HN,EA2Hc;aACvB,KAAKkD,IAAL,CAAU,YAAY;YACrBC,WAAW1G,KAAE,IAAF,CAAjB;YACI2G,OAAaD,SAASC,IAAT,CAAcnC,QAAd,CAAjB;;YAEI,CAACmC,IAAL,EAAW;iBACF,IAAItC,KAAJ,CAAU,IAAV,CAAP;mBACSsC,IAAT,CAAcnC,QAAd,EAAwBmC,IAAxB;;;YAGEpD,WAAW,OAAf,EAAwB;eACjBA,MAAL,EAAa,IAAb;;OAVG,CAAP;KA5HgB;;UA2IXqD,cA3IW,2BA2IIC,aA3IJ,EA2ImB;aAC5B,UAAUlG,KAAV,EAAiB;YAClBA,KAAJ,EAAW;gBACHmG,cAAN;;;sBAGY7B,KAAd,CAAoB,IAApB;OALF;KA5IgB;;;;0BAiDG;eACZV,OAAP;;;;;;;;;;;;OA4GF9B,QAAF,EAAYsE,EAAZ,CACEjC,MAAMkC,cADR,EAEEnC,SAASoC,OAFX,EAGE5C,MAAMuC,cAAN,CAAqB,IAAIvC,KAAJ,EAArB,CAHF;;;;;;;OAaExC,EAAF,CAAKyC,IAAL,IAAyBD,MAAMmC,gBAA/B;OACE3E,EAAF,CAAKyC,IAAL,EAAW4C,WAAX,GAAyB7C,KAAzB;;OACExC,EAAF,CAAKyC,IAAL,EAAW6C,UAAX,GAAyB,YAAY;SACjCtF,EAAF,CAAKyC,IAAL,IAAaK,kBAAb;WACON,MAAMmC,gBAAb;GAFF;;SAKOnC,KAAP;CAlLY,CAoLXrE,CApLW,CAAd;;ACTA;;;;;;;AAOA,IAAMoH,SAAU,UAACpH,IAAD,EAAO;;;;;;MASfsE,OAAsB,QAA5B;MACMC,UAAsB,cAA5B;MACMC,WAAsB,WAA5B;MACMC,kBAA0BD,QAAhC;MACME,eAAsB,WAA5B;MACMC,qBAAsB3E,KAAE6B,EAAF,CAAKyC,IAAL,CAA5B;MAEMS,YAAY;YACP,QADO;YAEP,KAFO;WAGP;GAHX;MAMMF,WAAW;wBACM,yBADN;iBAEM,yBAFN;WAGM,OAHN;YAIM,SAJN;YAKM;GALvB;MAQMC,QAAQ;8BACkBL,SAA9B,GAA0CC,YAD9B;yBAEU,UAAQD,SAAR,GAAoBC,YAApB,mBACOD,SADP,GACmBC,YADnB;;;;;;;GAFxB;;MAaM0C,MA3Ce;;;oBA6CPzE,OAAZ,EAAqB;WACdqC,QAAL,GAAgBrC,OAAhB;KA9CiB;;;;;;WA2DnB0E,MA3DmB,qBA2DV;UACHC,qBAAqB,IAAzB;UACIC,iBAAiB,IAArB;UACMrC,cAAmBlF,KAAE,KAAKgF,QAAP,EAAiBY,OAAjB,CACvBf,SAAS2C,WADc,EAEvB,CAFuB,CAAzB;;UAIItC,WAAJ,EAAiB;YACTuC,QAAQzH,KAAE,KAAKgF,QAAP,EAAiBjC,IAAjB,CAAsB8B,SAAS6C,KAA/B,EAAsC,CAAtC,CAAd;;YAEID,KAAJ,EAAW;cACLA,MAAME,IAAN,KAAe,OAAnB,EAA4B;gBACtBF,MAAMG,OAAN,IACF5H,KAAE,KAAKgF,QAAP,EAAiBkB,QAAjB,CAA0BnB,UAAU8C,MAApC,CADF,EAC+C;mCACxB,KAArB;aAFF,MAIO;kBACCC,gBAAgB9H,KAAEkF,WAAF,EAAenC,IAAf,CAAoB8B,SAASgD,MAA7B,EAAqC,CAArC,CAAtB;;kBAEIC,aAAJ,EAAmB;qBACfA,aAAF,EAAiB9B,WAAjB,CAA6BjB,UAAU8C,MAAvC;;;;;cAKFP,kBAAJ,EAAwB;gBAClBG,MAAMM,YAAN,CAAmB,UAAnB,KACF7C,YAAY6C,YAAZ,CAAyB,UAAzB,CADE,IAEFN,MAAMO,SAAN,CAAgBC,QAAhB,CAAyB,UAAzB,CAFE,IAGF/C,YAAY8C,SAAZ,CAAsBC,QAAtB,CAA+B,UAA/B,CAHF,EAG8C;;;;kBAGxCL,OAAN,GAAgB,CAAC5H,KAAE,KAAKgF,QAAP,EAAiBkB,QAAjB,CAA0BnB,UAAU8C,MAApC,CAAjB;iBACEJ,KAAF,EAAStE,OAAT,CAAiB,QAAjB;;;gBAGI+E,KAAN;2BACiB,KAAjB;;;;UAKAX,cAAJ,EAAoB;aACbvC,QAAL,CAAcmD,YAAd,CAA2B,cAA3B,EACE,CAACnI,KAAE,KAAKgF,QAAP,EAAiBkB,QAAjB,CAA0BnB,UAAU8C,MAApC,CADH;;;UAIEP,kBAAJ,EAAwB;aACpB,KAAKtC,QAAP,EAAiBoD,WAAjB,CAA6BrD,UAAU8C,MAAvC;;KA3Ge;;WA+GnBrC,OA/GmB,sBA+GT;WACNC,UAAF,CAAa,KAAKT,QAAlB,EAA4BR,QAA5B;WACKQ,QAAL,GAAgB,IAAhB;KAjHiB;;;WAuHZwB,gBAvHY,6BAuHKjD,MAvHL,EAuHa;aACvB,KAAKkD,IAAL,CAAU,YAAY;YACvBE,OAAO3G,KAAE,IAAF,EAAQ2G,IAAR,CAAanC,QAAb,CAAX;;YAEI,CAACmC,IAAL,EAAW;iBACF,IAAIS,MAAJ,CAAW,IAAX,CAAP;eACE,IAAF,EAAQT,IAAR,CAAanC,QAAb,EAAuBmC,IAAvB;;;YAGEpD,WAAW,QAAf,EAAyB;eAClBA,MAAL;;OATG,CAAP;KAxHiB;;;;0BAoDE;eACZgB,OAAP;;;;;;;;;;;;OA0FF9B,QAAF,EACGsE,EADH,CACMjC,MAAMkC,cADZ,EAC4BnC,SAASwD,kBADrC,EACyD,UAAC1H,KAAD,EAAW;UAC1DmG,cAAN;QAEIwB,SAAS3H,MAAMC,MAAnB;;QAEI,CAACZ,KAAEsI,MAAF,EAAUpC,QAAV,CAAmBnB,UAAUwD,MAA7B,CAAL,EAA2C;eAChCvI,KAAEsI,MAAF,EAAU1C,OAAV,CAAkBf,SAAS0D,MAA3B,CAAT;;;WAGK/B,gBAAP,CAAwBlG,IAAxB,CAA6BN,KAAEsI,MAAF,CAA7B,EAAwC,QAAxC;GAVJ,EAYGvB,EAZH,CAYMjC,MAAM0D,mBAZZ,EAYiC3D,SAASwD,kBAZ1C,EAY8D,UAAC1H,KAAD,EAAW;QAC/D2H,SAAStI,KAAEW,MAAMC,MAAR,EAAgBgF,OAAhB,CAAwBf,SAAS0D,MAAjC,EAAyC,CAAzC,CAAf;SACED,MAAF,EAAUF,WAAV,CAAsBrD,UAAU0D,KAAhC,EAAuC,eAAevE,IAAf,CAAoBvD,MAAMgH,IAA1B,CAAvC;GAdJ;;;;;;;OAwBE9F,EAAF,CAAKyC,IAAL,IAAyB8C,OAAOZ,gBAAhC;OACE3E,EAAF,CAAKyC,IAAL,EAAW4C,WAAX,GAAyBE,MAAzB;;OACEvF,EAAF,CAAKyC,IAAL,EAAW6C,UAAX,GAAyB,YAAY;SACjCtF,EAAF,CAAKyC,IAAL,IAAaK,kBAAb;WACOyC,OAAOZ,gBAAd;GAFF;;SAKOY,MAAP;CA9Ka,CAgLZpH,CAhLY,CAAf;;ACLA;;;;;;;AAOA,IAAM0I,WAAY,UAAC1I,IAAD,EAAO;;;;;;MASjBsE,OAAyB,UAA/B;MACMC,UAAyB,cAA/B;MACMC,WAAyB,aAA/B;MACMC,kBAA6BD,QAAnC;MACME,eAAyB,WAA/B;MACMC,qBAAyB3E,KAAE6B,EAAF,CAAKyC,IAAL,CAA/B;MACMM,sBAAyB,GAA/B;MACM+D,qBAAyB,EAA/B,CAhBuB;;MAiBjBC,sBAAyB,EAA/B,CAjBuB;;MAkBjBC,yBAAyB,GAA/B,CAlBuB;;MAoBjBC,UAAU;cACH,IADG;cAEH,IAFG;WAGH,KAHG;WAIH,OAJG;UAKH;GALb;MAQMC,cAAc;cACP,kBADO;cAEP,SAFO;WAGP,kBAHO;WAIP,kBAJO;UAKP;GALb;MAQMC,YAAY;UACL,MADK;UAEL,MAFK;UAGL,MAHK;WAIL;GAJb;MAOMlE,QAAQ;qBACaL,SADb;mBAEYA,SAFZ;yBAGeA,SAHf;+BAIkBA,SAJlB;+BAKkBA,SALlB;2BAMgBA,SANhB;4BAOYA,SAAxB,GAAoCC,YAPxB;8BAQaD,SAAzB,GAAqCC;GARvC;MAWMK,YAAY;cACL,UADK;YAEL,QAFK;WAGL,OAHK;WAIL,qBAJK;UAKL,oBALK;UAML,oBANK;UAOL,oBAPK;UAQL;GARb;MAWMF,WAAW;YACD,SADC;iBAED,uBAFC;UAGD,gBAHC;eAID,0CAJC;gBAKD,sBALC;gBAMD,+BANC;eAOD;;;;;;;GAPhB;;MAiBM6D,QAlFiB;;;sBAoFT/F,OAAZ,EAAqBY,MAArB,EAA6B;WACtB0F,MAAL,GAA0B,IAA1B;WACKC,SAAL,GAA0B,IAA1B;WACKC,cAAL,GAA0B,IAA1B;WAEKC,SAAL,GAA0B,KAA1B;WACKC,UAAL,GAA0B,KAA1B;WAEKC,YAAL,GAA0B,IAA1B;WAEKC,OAAL,GAA0B,KAAKC,UAAL,CAAgBjG,MAAhB,CAA1B;WACKyB,QAAL,GAA0BhF,KAAE2C,OAAF,EAAW,CAAX,CAA1B;WACK8G,kBAAL,GAA0BzJ,KAAE,KAAKgF,QAAP,EAAiBjC,IAAjB,CAAsB8B,SAAS6E,UAA/B,EAA2C,CAA3C,CAA1B;;WAEKC,kBAAL;KAlGmB;;;;;;WAmHrBC,IAnHqB,mBAmHd;UACD,CAAC,KAAKP,UAAV,EAAsB;aACfQ,MAAL,CAAYb,UAAUc,IAAtB;;KArHiB;;WAyHrBC,eAzHqB,8BAyHH;;;UAGZ,CAACtH,SAASuH,MAAV,IACDhK,KAAE,KAAKgF,QAAP,EAAiBnE,EAAjB,CAAoB,UAApB,KAAmCb,KAAE,KAAKgF,QAAP,EAAiBiF,GAAjB,CAAqB,YAArB,MAAuC,QAD7E,EACwF;aACjFL,IAAL;;KA9HiB;;WAkIrBM,IAlIqB,mBAkId;UACD,CAAC,KAAKb,UAAV,EAAsB;aACfQ,MAAL,CAAYb,UAAUmB,IAAtB;;KApIiB;;WAwIrBC,KAxIqB,kBAwIfzJ,KAxIe,EAwIR;UACP,CAACA,KAAL,EAAY;aACLyI,SAAL,GAAiB,IAAjB;;;UAGEpJ,KAAE,KAAKgF,QAAP,EAAiBjC,IAAjB,CAAsB8B,SAASwF,SAA/B,EAA0C,CAA1C,KACFtK,KAAKgC,qBAAL,EADF,EACgC;aACzBJ,oBAAL,CAA0B,KAAKqD,QAA/B;aACKsF,KAAL,CAAW,IAAX;;;oBAGY,KAAKpB,SAAnB;WACKA,SAAL,GAAiB,IAAjB;KApJmB;;WAuJrBoB,KAvJqB,kBAuJf3J,KAvJe,EAuJR;UACP,CAACA,KAAL,EAAY;aACLyI,SAAL,GAAiB,KAAjB;;;UAGE,KAAKF,SAAT,EAAoB;sBACJ,KAAKA,SAAnB;aACKA,SAAL,GAAiB,IAAjB;;;UAGE,KAAKK,OAAL,CAAagB,QAAb,IAAyB,CAAC,KAAKnB,SAAnC,EAA8C;aACvCF,SAAL,GAAiBsB,YACf,CAAC/H,SAASgI,eAAT,GAA2B,KAAKV,eAAhC,GAAkD,KAAKH,IAAxD,EAA8Dc,IAA9D,CAAmE,IAAnE,CADe,EAEf,KAAKnB,OAAL,CAAagB,QAFE,CAAjB;;KAlKiB;;WAyKrBI,EAzKqB,eAyKlBC,KAzKkB,EAyKX;;;WACHzB,cAAL,GAAsBnJ,KAAE,KAAKgF,QAAP,EAAiBjC,IAAjB,CAAsB8B,SAASgG,WAA/B,EAA4C,CAA5C,CAAtB;;UAEMC,cAAc,KAAKC,aAAL,CAAmB,KAAK5B,cAAxB,CAApB;;UAEIyB,QAAQ,KAAK3B,MAAL,CAAYjG,MAAZ,GAAqB,CAA7B,IAAkC4H,QAAQ,CAA9C,EAAiD;;;;UAI7C,KAAKvB,UAAT,EAAqB;aACjB,KAAKrE,QAAP,EAAiBvD,GAAjB,CAAqBqD,MAAMkG,IAA3B,EAAiC;iBAAM,MAAKL,EAAL,CAAQC,KAAR,CAAN;SAAjC;;;;UAIEE,gBAAgBF,KAApB,EAA2B;aACpBR,KAAL;aACKE,KAAL;;;;UAIIW,YAAYL,QAAQE,WAAR,GAChB9B,UAAUc,IADM,GAEhBd,UAAUmB,IAFZ;;WAIKN,MAAL,CAAYoB,SAAZ,EAAuB,KAAKhC,MAAL,CAAY2B,KAAZ,CAAvB;KAjMmB;;WAoMrBpF,OApMqB,sBAoMX;WACN,KAAKR,QAAP,EAAiBkG,GAAjB,CAAqBzG,SAArB;WACEgB,UAAF,CAAa,KAAKT,QAAlB,EAA4BR,QAA5B;WAEKyE,MAAL,GAA0B,IAA1B;WACKM,OAAL,GAA0B,IAA1B;WACKvE,QAAL,GAA0B,IAA1B;WACKkE,SAAL,GAA0B,IAA1B;WACKE,SAAL,GAA0B,IAA1B;WACKC,UAAL,GAA0B,IAA1B;WACKF,cAAL,GAA0B,IAA1B;WACKM,kBAAL,GAA0B,IAA1B;KA/MmB;;;WAqNrBD,UArNqB,uBAqNVjG,MArNU,EAqNF;4BAEZuF,OADL,EAEKvF,MAFL;WAIK4H,eAAL,CAAqB7G,IAArB,EAA2Bf,MAA3B,EAAmCwF,WAAnC;aACOxF,MAAP;KA3NmB;;WA8NrBoG,kBA9NqB,iCA8NA;;;UACf,KAAKJ,OAAL,CAAa6B,QAAjB,EAA2B;aACvB,KAAKpG,QAAP,EACG+B,EADH,CACMjC,MAAMuG,OADZ,EACqB,UAAC1K,KAAD;iBAAW,OAAK2K,QAAL,CAAc3K,KAAd,CAAX;SADrB;;;UAIE,KAAK4I,OAAL,CAAaa,KAAb,KAAuB,OAA3B,EAAoC;aAChC,KAAKpF,QAAP,EACG+B,EADH,CACMjC,MAAMyG,UADZ,EACwB,UAAC5K,KAAD;iBAAW,OAAKyJ,KAAL,CAAWzJ,KAAX,CAAX;SADxB,EAEGoG,EAFH,CAEMjC,MAAM0G,UAFZ,EAEwB,UAAC7K,KAAD;iBAAW,OAAK2J,KAAL,CAAW3J,KAAX,CAAX;SAFxB;;YAGI,kBAAkB8B,SAASgJ,eAA/B,EAAgD;;;;;;;;eAQ5C,KAAKzG,QAAP,EAAiB+B,EAAjB,CAAoBjC,MAAM4G,QAA1B,EAAoC,YAAM;mBACnCtB,KAAL;;gBACI,OAAKd,YAAT,EAAuB;2BACR,OAAKA,YAAlB;;;mBAEGA,YAAL,GAAoBqC,WAAW,UAAChL,KAAD;qBAAW,OAAK2J,KAAL,CAAW3J,KAAX,CAAX;aAAX,EAAyCkI,yBAAyB,OAAKU,OAAL,CAAagB,QAA/E,CAApB;WALF;;;KAhPe;;WA2PrBe,QA3PqB,qBA2PZ3K,KA3PY,EA2PL;UACV,kBAAkBuD,IAAlB,CAAuBvD,MAAMC,MAAN,CAAagL,OAApC,CAAJ,EAAkD;;;;cAI1CjL,MAAMkL,KAAd;aACOlD,kBAAL;gBACQ7B,cAAN;eACKoD,IAAL;;;aAEGtB,mBAAL;gBACQ9B,cAAN;eACK8C,IAAL;;;;;;KAvQe;;WA8QrBmB,aA9QqB,0BA8QPpI,OA9QO,EA8QE;WAChBsG,MAAL,GAAcjJ,KAAE8L,SAAF,CAAY9L,KAAE2C,OAAF,EAAWgD,MAAX,GAAoB5C,IAApB,CAAyB8B,SAASkH,IAAlC,CAAZ,CAAd;aACO,KAAK9C,MAAL,CAAY+C,OAAZ,CAAoBrJ,OAApB,CAAP;KAhRmB;;WAmRrBsJ,mBAnRqB,gCAmRDhB,SAnRC,EAmRUnD,aAnRV,EAmRyB;UACtCoE,kBAAkBjB,cAAcjC,UAAUc,IAAhD;UACMqC,kBAAkBlB,cAAcjC,UAAUmB,IAAhD;;UACMW,cAAkB,KAAKC,aAAL,CAAmBjD,aAAnB,CAAxB;;UACMsE,gBAAkB,KAAKnD,MAAL,CAAYjG,MAAZ,GAAqB,CAA7C;UACMqJ,gBAAkBF,mBAAmBrB,gBAAgB,CAAnC,IACAoB,mBAAmBpB,gBAAgBsB,aAD3D;;UAGIC,iBAAiB,CAAC,KAAK9C,OAAL,CAAa+C,IAAnC,EAAyC;eAChCxE,aAAP;;;UAGIyE,QAAYtB,cAAcjC,UAAUmB,IAAxB,GAA+B,CAAC,CAAhC,GAAoC,CAAtD;UACMqC,YAAY,CAAC1B,cAAcyB,KAAf,IAAwB,KAAKtD,MAAL,CAAYjG,MAAtD;aAEOwJ,cAAc,CAAC,CAAf,GACL,KAAKvD,MAAL,CAAY,KAAKA,MAAL,CAAYjG,MAAZ,GAAqB,CAAjC,CADK,GACiC,KAAKiG,MAAL,CAAYuD,SAAZ,CADxC;KAlSmB;;WAuSrBC,kBAvSqB,+BAuSFC,aAvSE,EAuSaC,kBAvSb,EAuSiC;UAC9CC,cAAc,KAAK7B,aAAL,CAAmB2B,aAAnB,CAApB;;UACMG,YAAY,KAAK9B,aAAL,CAAmB/K,KAAE,KAAKgF,QAAP,EAAiBjC,IAAjB,CAAsB8B,SAASgG,WAA/B,EAA4C,CAA5C,CAAnB,CAAlB;;UACMiC,aAAa9M,KAAE8E,KAAF,CAAQA,MAAMiI,KAAd,EAAqB;oCAAA;mBAE3BJ,kBAF2B;cAGhCE,SAHgC;YAIlCD;OAJa,CAAnB;WAOE,KAAK5H,QAAP,EAAiB7B,OAAjB,CAAyB2J,UAAzB;aAEOA,UAAP;KAnTmB;;WAsTrBE,0BAtTqB,uCAsTMrK,OAtTN,EAsTe;UAC9B,KAAK8G,kBAAT,EAA6B;aACzB,KAAKA,kBAAP,EACG1G,IADH,CACQ8B,SAASgD,MADjB,EAEG7B,WAFH,CAEejB,UAAU8C,MAFzB;;YAIMoF,gBAAgB,KAAKxD,kBAAL,CAAwByD,QAAxB,CACpB,KAAKnC,aAAL,CAAmBpI,OAAnB,CADoB,CAAtB;;YAIIsK,aAAJ,EAAmB;eACfA,aAAF,EAAiBE,QAAjB,CAA0BpI,UAAU8C,MAApC;;;KAjUe;;WAsUrBgC,MAtUqB,mBAsUdoB,SAtUc,EAsUHtI,OAtUG,EAsUM;;;UACnBmF,gBAAgB9H,KAAE,KAAKgF,QAAP,EAAiBjC,IAAjB,CAAsB8B,SAASgG,WAA/B,EAA4C,CAA5C,CAAtB;;UACMuC,qBAAqB,KAAKrC,aAAL,CAAmBjD,aAAnB,CAA3B;;UACMuF,cAAgB1K,WAAWmF,iBAC/B,KAAKmE,mBAAL,CAAyBhB,SAAzB,EAAoCnD,aAApC,CADF;;UAEMwF,mBAAmB,KAAKvC,aAAL,CAAmBsC,WAAnB,CAAzB;;UACME,YAAYnK,QAAQ,KAAK8F,SAAb,CAAlB;UAEIsE,oBAAJ;UACIC,cAAJ;UACId,kBAAJ;;UAEI1B,cAAcjC,UAAUc,IAA5B,EAAkC;+BACT/E,UAAU2I,IAAjC;yBACiB3I,UAAU+E,IAA3B;6BACqBd,UAAU0E,IAA/B;OAHF,MAIO;+BACkB3I,UAAU4I,KAAjC;yBACiB5I,UAAUoF,IAA3B;6BACqBnB,UAAU2E,KAA/B;;;UAGEN,eAAerN,KAAEqN,WAAF,EAAenH,QAAf,CAAwBnB,UAAU8C,MAAlC,CAAnB,EAA8D;aACvDwB,UAAL,GAAkB,KAAlB;;;;UAIIyD,aAAa,KAAKL,kBAAL,CAAwBY,WAAxB,EAAqCV,kBAArC,CAAnB;;UACIG,WAAWxH,kBAAX,EAAJ,EAAqC;;;;UAIjC,CAACwC,aAAD,IAAkB,CAACuF,WAAvB,EAAoC;;;;;WAK/BhE,UAAL,GAAkB,IAAlB;;UAEIkE,SAAJ,EAAe;aACRnD,KAAL;;;WAGG4C,0BAAL,CAAgCK,WAAhC;;UAEMO,YAAY5N,KAAE8E,KAAF,CAAQA,MAAMkG,IAAd,EAAoB;uBACrBqC,WADqB;mBAEzBV,kBAFyB;cAG9BS,kBAH8B;YAIhCE;OAJY,CAAlB;;UAOIvN,KAAKgC,qBAAL,MACF/B,KAAE,KAAKgF,QAAP,EAAiBkB,QAAjB,CAA0BnB,UAAUgI,KAApC,CADF,EAC8C;aAE1CM,WAAF,EAAeF,QAAf,CAAwBM,cAAxB;aAEKI,MAAL,CAAYR,WAAZ;aAEEvF,aAAF,EAAiBqF,QAAjB,CAA0BK,oBAA1B;aACEH,WAAF,EAAeF,QAAf,CAAwBK,oBAAxB;aAEE1F,aAAF,EACGrG,GADH,CACO1B,KAAK2B,cADZ,EAC4B,YAAM;eAC5B2L,WAAF,EACGrH,WADH,CACkBwH,oBADlB,SAC0CC,cAD1C,EAEGN,QAFH,CAEYpI,UAAU8C,MAFtB;eAIEC,aAAF,EAAiB9B,WAAjB,CAAgCjB,UAAU8C,MAA1C,SAAoD4F,cAApD,SAAsED,oBAAtE;iBAEKnE,UAAL,GAAkB,KAAlB;qBAEW;mBAAMrJ,KAAE,OAAKgF,QAAP,EAAiB7B,OAAjB,CAAyByK,SAAzB,CAAN;WAAX,EAAsD,CAAtD;SAVJ,EAaG9L,oBAbH,CAawB8C,mBAbxB;OAVF,MAyBO;aACHkD,aAAF,EAAiB9B,WAAjB,CAA6BjB,UAAU8C,MAAvC;aACEwF,WAAF,EAAeF,QAAf,CAAwBpI,UAAU8C,MAAlC;aAEKwB,UAAL,GAAkB,KAAlB;aACE,KAAKrE,QAAP,EAAiB7B,OAAjB,CAAyByK,SAAzB;;;UAGEL,SAAJ,EAAe;aACRjD,KAAL;;KA5ZiB;;;aAmad9D,gBAnac,6BAmaGjD,MAnaH,EAmaW;aACvB,KAAKkD,IAAL,CAAU,YAAY;YACvBE,OAAY3G,KAAE,IAAF,EAAQ2G,IAAR,CAAanC,QAAb,CAAhB;;YACI+E,uBACCT,OADD,EAEC9I,KAAE,IAAF,EAAQ2G,IAAR,EAFD,CAAJ;;YAKI,OAAOpD,MAAP,KAAkB,QAAtB,EAAgC;iCAEzBgG,OADL,EAEKhG,MAFL;;;YAMIuK,SAAS,OAAOvK,MAAP,KAAkB,QAAlB,GAA6BA,MAA7B,GAAsCgG,QAAQwE,KAA7D;;YAEI,CAACpH,IAAL,EAAW;iBACF,IAAI+B,QAAJ,CAAa,IAAb,EAAmBa,OAAnB,CAAP;eACE,IAAF,EAAQ5C,IAAR,CAAanC,QAAb,EAAuBmC,IAAvB;;;YAGE,OAAOpD,MAAP,KAAkB,QAAtB,EAAgC;eACzBoH,EAAL,CAAQpH,MAAR;SADF,MAEO,IAAI,OAAOuK,MAAP,KAAkB,QAAtB,EAAgC;cACjC,OAAOnH,KAAKmH,MAAL,CAAP,KAAwB,WAA5B,EAAyC;kBACjC,IAAI3J,KAAJ,wBAA8B2J,MAA9B,QAAN;;;eAEGA,MAAL;SAJK,MAKA,IAAIvE,QAAQgB,QAAZ,EAAsB;eACtBH,KAAL;eACKE,KAAL;;OA9BG,CAAP;KApamB;;aAucd0D,oBAvcc,iCAucOrN,KAvcP,EAucc;UAC3BuB,WAAWnC,KAAK2F,sBAAL,CAA4B,IAA5B,CAAjB;;UAEI,CAACxD,QAAL,EAAe;;;;UAITtB,SAASZ,KAAEkC,QAAF,EAAY,CAAZ,CAAf;;UAEI,CAACtB,MAAD,IAAW,CAACZ,KAAEY,MAAF,EAAUsF,QAAV,CAAmBnB,UAAUkJ,QAA7B,CAAhB,EAAwD;;;;UAIlD1K,sBACDvD,KAAEY,MAAF,EAAU+F,IAAV,EADC,EAED3G,KAAE,IAAF,EAAQ2G,IAAR,EAFC,CAAN;UAIMuH,aAAa,KAAKtL,YAAL,CAAkB,eAAlB,CAAnB;;UAEIsL,UAAJ,EAAgB;eACP3D,QAAP,GAAkB,KAAlB;;;eAGO/D,gBAAT,CAA0BlG,IAA1B,CAA+BN,KAAEY,MAAF,CAA/B,EAA0C2C,MAA1C;;UAEI2K,UAAJ,EAAgB;aACZtN,MAAF,EAAU+F,IAAV,CAAenC,QAAf,EAAyBmG,EAAzB,CAA4BuD,UAA5B;;;YAGIpH,cAAN;KApemB;;;;0BAwGA;eACZvC,OAAP;;;;0BAGmB;eACZuE,OAAP;;;;;;;;;;;;OAmYFrG,QAAF,EACGsE,EADH,CACMjC,MAAMkC,cADZ,EAC4BnC,SAASsJ,UADrC,EACiDzF,SAASsF,oBAD1D;OAGE5M,MAAF,EAAU2F,EAAV,CAAajC,MAAMsJ,aAAnB,EAAkC,YAAM;SACpCvJ,SAASwJ,SAAX,EAAsB5H,IAAtB,CAA2B,YAAY;UAC/B6H,YAAYtO,KAAE,IAAF,CAAlB;;eACSwG,gBAAT,CAA0BlG,IAA1B,CAA+BgO,SAA/B,EAA0CA,UAAU3H,IAAV,EAA1C;KAFF;GADF;;;;;;;OAcE9E,EAAF,CAAKyC,IAAL,IAAyBoE,SAASlC,gBAAlC;OACE3E,EAAF,CAAKyC,IAAL,EAAW4C,WAAX,GAAyBwB,QAAzB;;OACE7G,EAAF,CAAKyC,IAAL,EAAW6C,UAAX,GAAyB,YAAY;SACjCtF,EAAF,CAAKyC,IAAL,IAAaK,kBAAb;WACO+D,SAASlC,gBAAhB;GAFF;;SAKOkC,QAAP;CAxgBe,CA0gBd1I,CA1gBc,CAAjB;;ACPA;;;;;;;AAOA,IAAMuO,WAAY,UAACvO,IAAD,EAAO;;;;;;MASjBsE,OAAsB,UAA5B;MACMC,UAAsB,cAA5B;MACMC,WAAsB,aAA5B;MACMC,kBAA0BD,QAAhC;MACME,eAAsB,WAA5B;MACMC,qBAAsB3E,KAAE6B,EAAF,CAAKyC,IAAL,CAA5B;MACMM,sBAAsB,GAA5B;MAEMkE,UAAU;YACL,IADK;YAEL;GAFX;MAKMC,cAAc;YACT,SADS;YAET;GAFX;MAKMjE,QAAQ;mBACYL,SADZ;qBAEaA,SAFb;mBAGYA,SAHZ;uBAIcA,SAJd;8BAKaA,SAAzB,GAAqCC;GALvC;MAQMK,YAAY;UACH,MADG;cAEH,UAFG;gBAGH,YAHG;eAIH;GAJf;MAOMyJ,YAAY;WACP,OADO;YAEP;GAFX;MAKM3J,WAAW;aACD,oBADC;iBAED;;;;;;;GAFhB;;MAYM0J,QA3DiB;;;sBA6DT5L,OAAZ,EAAqBY,MAArB,EAA6B;WACtBkL,gBAAL,GAAwB,KAAxB;WACKzJ,QAAL,GAAwBrC,OAAxB;WACK4G,OAAL,GAAwB,KAAKC,UAAL,CAAgBjG,MAAhB,CAAxB;WACKmL,aAAL,GAAwB1O,KAAE8L,SAAF,CAAY9L,KAClC,wCAAmC2C,QAAQgM,EAA3C,4DAC0ChM,QAAQgM,EADlD,SADkC,CAAZ,CAAxB;UAIMC,aAAa5O,KAAE6E,SAAS2C,WAAX,CAAnB;;WACK,IAAIqH,IAAI,CAAb,EAAgBA,IAAID,WAAW5L,MAA/B,EAAuC6L,GAAvC,EAA4C;YACpCC,OAAOF,WAAWC,CAAX,CAAb;YACM3M,WAAWnC,KAAK2F,sBAAL,CAA4BoJ,IAA5B,CAAjB;;YACI5M,aAAa,IAAb,IAAqBlC,KAAEkC,QAAF,EAAY6M,MAAZ,CAAmBpM,OAAnB,EAA4BK,MAA5B,GAAqC,CAA9D,EAAiE;eAC1D0L,aAAL,CAAmBM,IAAnB,CAAwBF,IAAxB;;;;WAICG,OAAL,GAAe,KAAK1F,OAAL,CAAa5D,MAAb,GAAsB,KAAKuJ,UAAL,EAAtB,GAA0C,IAAzD;;UAEI,CAAC,KAAK3F,OAAL,CAAa5D,MAAlB,EAA0B;aACnBwJ,yBAAL,CAA+B,KAAKnK,QAApC,EAA8C,KAAK0J,aAAnD;;;UAGE,KAAKnF,OAAL,CAAalC,MAAjB,EAAyB;aAClBA,MAAL;;KArFiB;;;;;;WAuGrBA,MAvGqB,qBAuGZ;UACHrH,KAAE,KAAKgF,QAAP,EAAiBkB,QAAjB,CAA0BnB,UAAUkB,IAApC,CAAJ,EAA+C;aACxCmJ,IAAL;OADF,MAEO;aACAC,IAAL;;KA3GiB;;WA+GrBA,IA/GqB,mBA+Gd;;;UACD,KAAKZ,gBAAL,IACFzO,KAAE,KAAKgF,QAAP,EAAiBkB,QAAjB,CAA0BnB,UAAUkB,IAApC,CADF,EAC6C;;;;UAIzCqJ,OAAJ;UACIC,WAAJ;;UAEI,KAAKN,OAAT,EAAkB;kBACNjP,KAAE8L,SAAF,CAAY9L,KAAE,KAAKiP,OAAP,EAAgB/B,QAAhB,GAA2BA,QAA3B,CAAoCrI,SAAS2K,OAA7C,CAAZ,CAAV;;YACI,CAACF,QAAQtM,MAAb,EAAqB;oBACT,IAAV;;;;UAIAsM,OAAJ,EAAa;sBACGtP,KAAEsP,OAAF,EAAW3I,IAAX,CAAgBnC,QAAhB,CAAd;;YACI+K,eAAeA,YAAYd,gBAA/B,EAAiD;;;;;UAK7CgB,aAAazP,KAAE8E,KAAF,CAAQA,MAAMmB,IAAd,CAAnB;WACE,KAAKjB,QAAP,EAAiB7B,OAAjB,CAAyBsM,UAAzB;;UACIA,WAAWnK,kBAAX,EAAJ,EAAqC;;;;UAIjCgK,OAAJ,EAAa;iBACF9I,gBAAT,CAA0BlG,IAA1B,CAA+BN,KAAEsP,OAAF,CAA/B,EAA2C,MAA3C;;YACI,CAACC,WAAL,EAAkB;eACdD,OAAF,EAAW3I,IAAX,CAAgBnC,QAAhB,EAA0B,IAA1B;;;;UAIEkL,YAAY,KAAKC,aAAL,EAAlB;;WAEE,KAAK3K,QAAP,EACGgB,WADH,CACejB,UAAU6K,QADzB,EAEGzC,QAFH,CAEYpI,UAAU8K,UAFtB;WAIK7K,QAAL,CAAc8K,KAAd,CAAoBJ,SAApB,IAAiC,CAAjC;;UAEI,KAAKhB,aAAL,CAAmB1L,MAAvB,EAA+B;aAC3B,KAAK0L,aAAP,EACG1I,WADH,CACejB,UAAUgL,SADzB,EAEGC,IAFH,CAEQ,eAFR,EAEyB,IAFzB;;;WAKGC,gBAAL,CAAsB,IAAtB;;UAEMC,WAAW,SAAXA,QAAW,GAAM;aACnB,MAAKlL,QAAP,EACGgB,WADH,CACejB,UAAU8K,UADzB,EAEG1C,QAFH,CAEYpI,UAAU6K,QAFtB,EAGGzC,QAHH,CAGYpI,UAAUkB,IAHtB;cAKKjB,QAAL,CAAc8K,KAAd,CAAoBJ,SAApB,IAAiC,EAAjC;;cAEKO,gBAAL,CAAsB,KAAtB;;aAEE,MAAKjL,QAAP,EAAiB7B,OAAjB,CAAyB2B,MAAMqL,KAA/B;OAVF;;UAaI,CAACpQ,KAAKgC,qBAAL,EAAL,EAAmC;;;;;UAK7BqO,uBAAuBV,UAAU,CAAV,EAAatL,WAAb,KAA6BsL,UAAUW,KAAV,CAAgB,CAAhB,CAA1D;UACMC,wBAAgCF,oBAAtC;WAEE,KAAKpL,QAAP,EACGvD,GADH,CACO1B,KAAK2B,cADZ,EAC4BwO,QAD5B,EAEGpO,oBAFH,CAEwB8C,mBAFxB;WAIKI,QAAL,CAAc8K,KAAd,CAAoBJ,SAApB,IAAoC,KAAK1K,QAAL,CAAcsL,UAAd,CAApC;KA5LmB;;WA+LrBlB,IA/LqB,mBA+Ld;;;UACD,KAAKX,gBAAL,IACF,CAACzO,KAAE,KAAKgF,QAAP,EAAiBkB,QAAjB,CAA0BnB,UAAUkB,IAApC,CADH,EAC8C;;;;UAIxCwJ,aAAazP,KAAE8E,KAAF,CAAQA,MAAMyL,IAAd,CAAnB;WACE,KAAKvL,QAAP,EAAiB7B,OAAjB,CAAyBsM,UAAzB;;UACIA,WAAWnK,kBAAX,EAAJ,EAAqC;;;;UAI/BoK,YAAkB,KAAKC,aAAL,EAAxB;;WAEK3K,QAAL,CAAc8K,KAAd,CAAoBJ,SAApB,IAAoC,KAAK1K,QAAL,CAAcwL,qBAAd,GAAsCd,SAAtC,CAApC;WAEK7B,MAAL,CAAY,KAAK7I,QAAjB;WAEE,KAAKA,QAAP,EACGmI,QADH,CACYpI,UAAU8K,UADtB,EAEG7J,WAFH,CAEejB,UAAU6K,QAFzB,EAGG5J,WAHH,CAGejB,UAAUkB,IAHzB;;UAKI,KAAKyI,aAAL,CAAmB1L,MAAvB,EAA+B;aACxB,IAAI6L,IAAI,CAAb,EAAgBA,IAAI,KAAKH,aAAL,CAAmB1L,MAAvC,EAA+C6L,GAA/C,EAAoD;cAC5C1L,UAAU,KAAKuL,aAAL,CAAmBG,CAAnB,CAAhB;cACM3M,WAAWnC,KAAK2F,sBAAL,CAA4BvC,OAA5B,CAAjB;;cACIjB,aAAa,IAAjB,EAAuB;gBACfuO,QAAQzQ,KAAEkC,QAAF,CAAd;;gBACI,CAACuO,MAAMvK,QAAN,CAAenB,UAAUkB,IAAzB,CAAL,EAAqC;mBACjC9C,OAAF,EAAWgK,QAAX,CAAoBpI,UAAUgL,SAA9B,EACMC,IADN,CACW,eADX,EAC4B,KAD5B;;;;;;WAOHC,gBAAL,CAAsB,IAAtB;;UAEMC,WAAW,SAAXA,QAAW,GAAM;eAChBD,gBAAL,CAAsB,KAAtB;;aACE,OAAKjL,QAAP,EACGgB,WADH,CACejB,UAAU8K,UADzB,EAEG1C,QAFH,CAEYpI,UAAU6K,QAFtB,EAGGzM,OAHH,CAGW2B,MAAM4L,MAHjB;OAFF;;WAQK1L,QAAL,CAAc8K,KAAd,CAAoBJ,SAApB,IAAiC,EAAjC;;UAEI,CAAC3P,KAAKgC,qBAAL,EAAL,EAAmC;;;;;WAKjC,KAAKiD,QAAP,EACGvD,GADH,CACO1B,KAAK2B,cADZ,EAC4BwO,QAD5B,EAEGpO,oBAFH,CAEwB8C,mBAFxB;KArPmB;;WA0PrBqL,gBA1PqB,6BA0PJU,eA1PI,EA0Pa;WAC3BlC,gBAAL,GAAwBkC,eAAxB;KA3PmB;;WA8PrBnL,OA9PqB,sBA8PX;WACNC,UAAF,CAAa,KAAKT,QAAlB,EAA4BR,QAA5B;WAEK+E,OAAL,GAAwB,IAAxB;WACK0F,OAAL,GAAwB,IAAxB;WACKjK,QAAL,GAAwB,IAAxB;WACK0J,aAAL,GAAwB,IAAxB;WACKD,gBAAL,GAAwB,IAAxB;KArQmB;;;WA2QrBjF,UA3QqB,uBA2QVjG,MA3QU,EA2QF;4BAEZuF,OADL,EAEKvF,MAFL;aAIO8D,MAAP,GAAgBjE,QAAQG,OAAO8D,MAAf,CAAhB,CALiB;;WAMZ8D,eAAL,CAAqB7G,IAArB,EAA2Bf,MAA3B,EAAmCwF,WAAnC;aACOxF,MAAP;KAlRmB;;WAqRrBoM,aArRqB,4BAqRL;UACRiB,WAAW5Q,KAAE,KAAKgF,QAAP,EAAiBkB,QAAjB,CAA0BsI,UAAUqC,KAApC,CAAjB;aACOD,WAAWpC,UAAUqC,KAArB,GAA6BrC,UAAUsC,MAA9C;KAvRmB;;WA0RrB5B,UA1RqB,yBA0RR;;;UACPvJ,SAAS,IAAb;;UACI5F,KAAKiE,SAAL,CAAe,KAAKuF,OAAL,CAAa5D,MAA5B,CAAJ,EAAyC;iBAC9B,KAAK4D,OAAL,CAAa5D,MAAtB,CADuC;;YAInC,OAAO,KAAK4D,OAAL,CAAa5D,MAAb,CAAoBoL,MAA3B,KAAsC,WAA1C,EAAuD;mBAC5C,KAAKxH,OAAL,CAAa5D,MAAb,CAAoB,CAApB,CAAT;;OALJ,MAOO;iBACI3F,KAAE,KAAKuJ,OAAL,CAAa5D,MAAf,EAAuB,CAAvB,CAAT;;;UAGIzD,yDACqC,KAAKqH,OAAL,CAAa5D,MADlD,QAAN;WAGEA,MAAF,EAAU5C,IAAV,CAAeb,QAAf,EAAyBuE,IAAzB,CAA8B,UAACoI,CAAD,EAAIlM,OAAJ,EAAgB;eACvCwM,yBAAL,CACEZ,SAASyC,qBAAT,CAA+BrO,OAA/B,CADF,EAEE,CAACA,OAAD,CAFF;OADF;aAOOgD,MAAP;KAjTmB;;WAoTrBwJ,yBApTqB,sCAoTKxM,OApTL,EAoTcsO,YApTd,EAoT4B;UAC3CtO,OAAJ,EAAa;YACLuO,SAASlR,KAAE2C,OAAF,EAAWuD,QAAX,CAAoBnB,UAAUkB,IAA9B,CAAf;;YAEIgL,aAAajO,MAAjB,EAAyB;eACrBiO,YAAF,EACG7I,WADH,CACerD,UAAUgL,SADzB,EACoC,CAACmB,MADrC,EAEGlB,IAFH,CAEQ,eAFR,EAEyBkB,MAFzB;;;KAzTe;;;aAmUdF,qBAnUc,kCAmUQrO,OAnUR,EAmUiB;UAC9BT,WAAWnC,KAAK2F,sBAAL,CAA4B/C,OAA5B,CAAjB;aACOT,WAAWlC,KAAEkC,QAAF,EAAY,CAAZ,CAAX,GAA4B,IAAnC;KArUmB;;aAwUdsE,gBAxUc,6BAwUGjD,MAxUH,EAwUW;aACvB,KAAKkD,IAAL,CAAU,YAAY;YACrB0K,QAAUnR,KAAE,IAAF,CAAhB;YACI2G,OAAYwK,MAAMxK,IAAN,CAAWnC,QAAX,CAAhB;;YACM+E,uBACDT,OADC,EAEDqI,MAAMxK,IAAN,EAFC,EAGD,OAAOpD,MAAP,KAAkB,QAAlB,IAA8BA,MAH7B,CAAN;;YAMI,CAACoD,IAAD,IAAS4C,QAAQlC,MAAjB,IAA2B,YAAYnD,IAAZ,CAAiBX,MAAjB,CAA/B,EAAyD;kBAC/C8D,MAAR,GAAiB,KAAjB;;;YAGE,CAACV,IAAL,EAAW;iBACF,IAAI4H,QAAJ,CAAa,IAAb,EAAmBhF,OAAnB,CAAP;gBACM5C,IAAN,CAAWnC,QAAX,EAAqBmC,IAArB;;;YAGE,OAAOpD,MAAP,KAAkB,QAAtB,EAAgC;cAC1B,OAAOoD,KAAKpD,MAAL,CAAP,KAAwB,WAA5B,EAAyC;kBACjC,IAAIY,KAAJ,wBAA8BZ,MAA9B,QAAN;;;eAEGA,MAAL;;OAtBG,CAAP;KAzUmB;;;;0BA4FA;eACZgB,OAAP;;;;0BAGmB;eACZuE,OAAP;;;;;;;;;;;;OA4QFrG,QAAF,EAAYsE,EAAZ,CAAejC,MAAMkC,cAArB,EAAqCnC,SAAS2C,WAA9C,EAA2D,UAAU7G,KAAV,EAAiB;;QAEtEA,MAAMyQ,aAAN,CAAoBxF,OAApB,KAAgC,GAApC,EAAyC;YACjC9E,cAAN;;;QAGIuK,WAAWrR,KAAE,IAAF,CAAjB;QACMkC,WAAWnC,KAAK2F,sBAAL,CAA4B,IAA5B,CAAjB;SACExD,QAAF,EAAYuE,IAAZ,CAAiB,YAAY;UACrB6K,UAAUtR,KAAE,IAAF,CAAhB;UACM2G,OAAU2K,QAAQ3K,IAAR,CAAanC,QAAb,CAAhB;UACMjB,SAAUoD,OAAO,QAAP,GAAkB0K,SAAS1K,IAAT,EAAlC;;eACSH,gBAAT,CAA0BlG,IAA1B,CAA+BgR,OAA/B,EAAwC/N,MAAxC;KAJF;GARF;;;;;;;OAuBE1B,EAAF,CAAKyC,IAAL,IAAyBiK,SAAS/H,gBAAlC;OACE3E,EAAF,CAAKyC,IAAL,EAAW4C,WAAX,GAAyBqH,QAAzB;;OACE1M,EAAF,CAAKyC,IAAL,EAAW6C,UAAX,GAAyB,YAAY;SACjCtF,EAAF,CAAKyC,IAAL,IAAaK,kBAAb;WACO4J,SAAS/H,gBAAhB;GAFF;;SAKO+H,QAAP;CA3Ye,CA6YdvO,CA7Yc,CAAjB;;ACNA;;;;;;;AAOA,IAAMuR,WAAY,UAACvR,IAAD,EAAO;;;;;;MAQjBsE,OAA2B,UAAjC;MACMC,UAA2B,cAAjC;MACMC,WAA2B,aAAjC;MACMC,kBAA+BD,QAArC;MACME,eAA2B,WAAjC;MACMC,qBAA2B3E,KAAE6B,EAAF,CAAKyC,IAAL,CAAjC;MACMkN,iBAA2B,EAAjC,CAduB;;MAejBC,gBAA2B,EAAjC,CAfuB;;MAgBjBC,cAA2B,CAAjC,CAhBuB;;MAiBjBC,mBAA2B,EAAjC,CAjBuB;;MAkBjBC,qBAA2B,EAAjC,CAlBuB;;MAmBjBC,2BAA2B,CAAjC,CAnBuB;;MAoBjBC,iBAA2B,IAAI7N,MAAJ,CAAc0N,gBAAd,SAAkCC,kBAAlC,SAAwDJ,cAAxD,CAAjC;MAEM1M,QAAQ;mBACcL,SADd;uBAEgBA,SAFhB;mBAGcA,SAHd;qBAIeA,SAJf;qBAKeA,SALf;8BAMeA,SAA3B,GAAuCC,YAN3B;kCAOiBD,SAA7B,GAAyCC,YAP7B;8BAQeD,SAA3B,GAAuCC;GARzC;MAWMK,YAAY;cACJ,UADI;UAEJ,MAFI;YAGJ,QAHI;eAIJ,WAJI;cAKJ,UALI;eAMJ,qBANI;cAOJ,oBAPI;qBAQE;GARpB;MAWMF,WAAW;iBACC,0BADD;gBAEC,gBAFD;UAGC,gBAHD;gBAIC,aAJD;mBAKC;GALlB;MAQMkN,gBAAgB;SACR,WADQ;YAER,SAFQ;YAGR,cAHQ;eAIR,YAJQ;WAKR,aALQ;cAMR,WANQ;UAOR,YAPQ;aAQR;GARd;MAWMjJ,UAAU;YACA,CADA;UAEA,IAFA;cAGA;GAHhB;MAMMC,cAAc;YACJ,0BADI;UAEJ,SAFI;cAGJ;;;;;;;GAHhB;;MAaMwI,QAlFiB;;;sBAoFT5O,OAAZ,EAAqBY,MAArB,EAA6B;WACtByB,QAAL,GAAiBrC,OAAjB;WACKqP,OAAL,GAAiB,IAAjB;WACKzI,OAAL,GAAiB,KAAKC,UAAL,CAAgBjG,MAAhB,CAAjB;WACK0O,KAAL,GAAiB,KAAKC,eAAL,EAAjB;WACKC,SAAL,GAAiB,KAAKC,aAAL,EAAjB;;WAEKzI,kBAAL;KA3FmB;;;;;;WA+GrBtC,MA/GqB,qBA+GZ;UACH,KAAKrC,QAAL,CAAcqN,QAAd,IAA0BrS,KAAE,KAAKgF,QAAP,EAAiBkB,QAAjB,CAA0BnB,UAAUuN,QAApC,CAA9B,EAA6E;;;;UAIvE3M,SAAW4L,SAASgB,qBAAT,CAA+B,KAAKvN,QAApC,CAAjB;;UACMwN,WAAWxS,KAAE,KAAKiS,KAAP,EAAc/L,QAAd,CAAuBnB,UAAUkB,IAAjC,CAAjB;;eAESwM,WAAT;;UAEID,QAAJ,EAAc;;;;UAIR9F,gBAAgB;uBACJ,KAAK1H;OADvB;UAGM0N,YAAY1S,KAAE8E,KAAF,CAAQA,MAAMmB,IAAd,EAAoByG,aAApB,CAAlB;WAEE/G,MAAF,EAAUxC,OAAV,CAAkBuP,SAAlB;;UAEIA,UAAUpN,kBAAV,EAAJ,EAAoC;;OArB7B;;;UA0BH,CAAC,KAAK6M,SAAV,EAAqB;;;;;YAKf,OAAOQ,MAAP,KAAkB,WAAtB,EAAmC;gBAC3B,IAAIxO,KAAJ,CAAU,8DAAV,CAAN;;;YAEExB,UAAU,KAAKqC,QAAnB,CARmB;;YAUfhF,KAAE2F,MAAF,EAAUO,QAAV,CAAmBnB,UAAU6N,MAA7B,CAAJ,EAA0C;cACpC5S,KAAE,KAAKiS,KAAP,EAAc/L,QAAd,CAAuBnB,UAAU8N,QAAjC,KAA8C7S,KAAE,KAAKiS,KAAP,EAAc/L,QAAd,CAAuBnB,UAAU+N,SAAjC,CAAlD,EAA+F;sBACnFnN,MAAV;;SAZe;;;;;YAkBf,KAAK4D,OAAL,CAAawJ,QAAb,KAA0B,cAA9B,EAA8C;eAC1CpN,MAAF,EAAUwH,QAAV,CAAmBpI,UAAUiO,eAA7B;;;aAEGhB,OAAL,GAAe,IAAIW,MAAJ,CAAWhQ,OAAX,EAAoB,KAAKsP,KAAzB,EAAgC,KAAKgB,gBAAL,EAAhC,CAAf;OA/CK;;;;;;UAuDH,kBAAkBxQ,SAASgJ,eAA3B,IACD,CAACzL,KAAE2F,MAAF,EAAUC,OAAV,CAAkBf,SAASqO,UAA3B,EAAuClQ,MAD3C,EACmD;aAC/C,MAAF,EAAUkK,QAAV,GAAqBnG,EAArB,CAAwB,WAAxB,EAAqC,IAArC,EAA2C/G,KAAEmT,IAA7C;;;WAGGnO,QAAL,CAAckD,KAAd;;WACKlD,QAAL,CAAcmD,YAAd,CAA2B,eAA3B,EAA4C,IAA5C;;WAEE,KAAK8J,KAAP,EAAc7J,WAAd,CAA0BrD,UAAUkB,IAApC;WACEN,MAAF,EACGyC,WADH,CACerD,UAAUkB,IADzB,EAEG9C,OAFH,CAEWnD,KAAE8E,KAAF,CAAQA,MAAMqL,KAAd,EAAqBzD,aAArB,CAFX;KA/KmB;;WAoLrBlH,OApLqB,sBAoLX;WACNC,UAAF,CAAa,KAAKT,QAAlB,EAA4BR,QAA5B;WACE,KAAKQ,QAAP,EAAiBkG,GAAjB,CAAqBzG,SAArB;WACKO,QAAL,GAAgB,IAAhB;WACKiN,KAAL,GAAa,IAAb;;UACI,KAAKD,OAAL,KAAiB,IAArB,EAA2B;aACpBA,OAAL,CAAaoB,OAAb;;aACKpB,OAAL,GAAe,IAAf;;KA3LiB;;WA+LrBqB,MA/LqB,qBA+LZ;WACFlB,SAAL,GAAiB,KAAKC,aAAL,EAAjB;;UACI,KAAKJ,OAAL,KAAiB,IAArB,EAA2B;aACpBA,OAAL,CAAasB,cAAb;;KAlMiB;;;WAwMrB3J,kBAxMqB,iCAwMA;;;WACjB,KAAK3E,QAAP,EAAiB+B,EAAjB,CAAoBjC,MAAMyO,KAA1B,EAAiC,UAAC5S,KAAD,EAAW;cACpCmG,cAAN;cACM0M,eAAN;;cACKnM,MAAL;OAHF;KAzMmB;;WAgNrBmC,UAhNqB,uBAgNVjG,MAhNU,EAgNF;4BAEZ,KAAKkQ,WAAL,CAAiB3K,OADtB,EAEK9I,KAAE,KAAKgF,QAAP,EAAiB2B,IAAjB,EAFL,EAGKpD,MAHL;WAMK4H,eAAL,CACE7G,IADF,EAEEf,MAFF,EAGE,KAAKkQ,WAAL,CAAiB1K,WAHnB;aAMOxF,MAAP;KA7NmB;;WAgOrB2O,eAhOqB,8BAgOH;UACZ,CAAC,KAAKD,KAAV,EAAiB;YACTtM,SAAS4L,SAASgB,qBAAT,CAA+B,KAAKvN,QAApC,CAAf;;aACKiN,KAAL,GAAajS,KAAE2F,MAAF,EAAU5C,IAAV,CAAe8B,SAAS6O,IAAxB,EAA8B,CAA9B,CAAb;;;aAEK,KAAKzB,KAAZ;KArOmB;;WAwOrB0B,aAxOqB,4BAwOL;UACRC,kBAAkB5T,KAAE,KAAKgF,QAAP,EAAiBW,MAAjB,EAAxB;UACIkO,YAAoB9B,cAAc+B,MAAtC,CAFc;;UAKVF,gBAAgB1N,QAAhB,CAAyBnB,UAAU6N,MAAnC,CAAJ,EAAgD;oBAClCb,cAAcgC,GAA1B;;YACI/T,KAAE,KAAKiS,KAAP,EAAc/L,QAAd,CAAuBnB,UAAU+N,SAAjC,CAAJ,EAAiD;sBACnCf,cAAciC,MAA1B;;OAHJ,MAKO,IAAIJ,gBAAgB1N,QAAhB,CAAyBnB,UAAUkP,SAAnC,CAAJ,EAAmD;oBAC5ClC,cAAcpE,KAA1B;OADK,MAEA,IAAIiG,gBAAgB1N,QAAhB,CAAyBnB,UAAUmP,QAAnC,CAAJ,EAAkD;oBAC3CnC,cAAcrE,IAA1B;OADK,MAEA,IAAI1N,KAAE,KAAKiS,KAAP,EAAc/L,QAAd,CAAuBnB,UAAU+N,SAAjC,CAAJ,EAAiD;oBAC1Cf,cAAcoC,SAA1B;;;aAEKN,SAAP;KAzPmB;;WA4PrBzB,aA5PqB,4BA4PL;aACPpS,KAAE,KAAKgF,QAAP,EAAiBY,OAAjB,CAAyB,SAAzB,EAAoC5C,MAApC,GAA6C,CAApD;KA7PmB;;WAgQrBiQ,gBAhQqB,+BAgQF;;;UACXmB,aAAa,EAAnB;;UACI,OAAO,KAAK7K,OAAL,CAAa8K,MAApB,KAA+B,UAAnC,EAA+C;mBAClCxS,EAAX,GAAgB,UAAC8E,IAAD,EAAU;eACnB2N,OAAL,gBACK3N,KAAK2N,OADV,EAEK,OAAK/K,OAAL,CAAa8K,MAAb,CAAoB1N,KAAK2N,OAAzB,KAAqC,EAF1C;iBAIO3N,IAAP;SALF;OADF,MAQO;mBACM0N,MAAX,GAAoB,KAAK9K,OAAL,CAAa8K,MAAjC;;;UAEIE,eAAe;mBACP,KAAKZ,aAAL,EADO;mBAEP;kBACDS,UADC;gBAEH;qBACK,KAAK7K,OAAL,CAAaiL;WAHf;2BAKQ;+BACI,KAAKjL,OAAL,CAAawJ;;;OARvC;aAaOwB,YAAP;KA1RmB;;;aA+Rd/N,gBA/Rc,6BA+RGjD,MA/RH,EA+RW;aACvB,KAAKkD,IAAL,CAAU,YAAY;YACvBE,OAAO3G,KAAE,IAAF,EAAQ2G,IAAR,CAAanC,QAAb,CAAX;;YACM+E,UAAU,OAAOhG,MAAP,KAAkB,QAAlB,GAA6BA,MAA7B,GAAsC,IAAtD;;YAEI,CAACoD,IAAL,EAAW;iBACF,IAAI4K,QAAJ,CAAa,IAAb,EAAmBhI,OAAnB,CAAP;eACE,IAAF,EAAQ5C,IAAR,CAAanC,QAAb,EAAuBmC,IAAvB;;;YAGE,OAAOpD,MAAP,KAAkB,QAAtB,EAAgC;cAC1B,OAAOoD,KAAKpD,MAAL,CAAP,KAAwB,WAA5B,EAAyC;kBACjC,IAAIY,KAAJ,wBAA8BZ,MAA9B,QAAN;;;eAEGA,MAAL;;OAbG,CAAP;KAhSmB;;aAkTdkP,WAlTc,wBAkTF9R,KAlTE,EAkTK;UACpBA,UAAUA,MAAMkL,KAAN,KAAgBgG,wBAAhB,IACZlR,MAAMgH,IAAN,KAAe,OAAf,IAA0BhH,MAAMkL,KAAN,KAAgB6F,WADxC,CAAJ,EAC0D;;;;UAIpD+C,UAAUzU,KAAE8L,SAAF,CAAY9L,KAAE6E,SAAS2C,WAAX,CAAZ,CAAhB;;WACK,IAAIqH,IAAI,CAAb,EAAgBA,IAAI4F,QAAQzR,MAA5B,EAAoC6L,GAApC,EAAyC;YACjClJ,SAAgB4L,SAASgB,qBAAT,CAA+BkC,QAAQ5F,CAAR,CAA/B,CAAtB;;YACM6F,UAAgB1U,KAAEyU,QAAQ5F,CAAR,CAAF,EAAclI,IAAd,CAAmBnC,QAAnB,CAAtB;YACMkI,gBAAgB;yBACJ+H,QAAQ5F,CAAR;SADlB;;YAII,CAAC6F,OAAL,EAAc;;;;YAIRC,eAAeD,QAAQzC,KAA7B;;YACI,CAACjS,KAAE2F,MAAF,EAAUO,QAAV,CAAmBnB,UAAUkB,IAA7B,CAAL,EAAyC;;;;YAIrCtF,UAAUA,MAAMgH,IAAN,KAAe,OAAf,IACV,kBAAkBzD,IAAlB,CAAuBvD,MAAMC,MAAN,CAAagL,OAApC,CADU,IACsCjL,MAAMgH,IAAN,KAAe,OAAf,IAA0BhH,MAAMkL,KAAN,KAAgB6F,WAD1F,KAEG1R,KAAEiI,QAAF,CAAWtC,MAAX,EAAmBhF,MAAMC,MAAzB,CAFP,EAEyC;;;;YAInCgU,YAAY5U,KAAE8E,KAAF,CAAQA,MAAMyL,IAAd,EAAoB7D,aAApB,CAAlB;aACE/G,MAAF,EAAUxC,OAAV,CAAkByR,SAAlB;;YACIA,UAAUtP,kBAAV,EAAJ,EAAoC;;SAxBG;;;;YA8BnC,kBAAkB7C,SAASgJ,eAA/B,EAAgD;eAC5C,MAAF,EAAUyB,QAAV,GAAqBhC,GAArB,CAAyB,WAAzB,EAAsC,IAAtC,EAA4ClL,KAAEmT,IAA9C;;;gBAGMtE,CAAR,EAAW1G,YAAX,CAAwB,eAAxB,EAAyC,OAAzC;aAEEwM,YAAF,EAAgB3O,WAAhB,CAA4BjB,UAAUkB,IAAtC;aACEN,MAAF,EACGK,WADH,CACejB,UAAUkB,IADzB,EAEG9C,OAFH,CAEWnD,KAAE8E,KAAF,CAAQA,MAAM4L,MAAd,EAAsBhE,aAAtB,CAFX;;KA9ViB;;aAoWd6F,qBApWc,kCAoWQ5P,OApWR,EAoWiB;UAChCgD,MAAJ;UACMzD,WAAWnC,KAAK2F,sBAAL,CAA4B/C,OAA5B,CAAjB;;UAEIT,QAAJ,EAAc;iBACHlC,KAAEkC,QAAF,EAAY,CAAZ,CAAT;;;aAGKyD,UAAUhD,QAAQkS,UAAzB;KA5WmB;;;aAgXdC,sBAhXc,mCAgXSnU,KAhXT,EAgXgB;;;;;;;;UAQ/B,kBAAkBuD,IAAlB,CAAuBvD,MAAMC,MAAN,CAAagL,OAApC,IACFjL,MAAMkL,KAAN,KAAgB4F,aAAhB,IAAiC9Q,MAAMkL,KAAN,KAAgB2F,cAAhB,KAChC7Q,MAAMkL,KAAN,KAAgB+F,kBAAhB,IAAsCjR,MAAMkL,KAAN,KAAgB8F,gBAAtD,IACC3R,KAAEW,MAAMC,MAAR,EAAgBgF,OAAhB,CAAwBf,SAAS6O,IAAjC,EAAuC1Q,MAFR,CAD/B,GAGiD,CAAC8O,eAAe5N,IAAf,CAAoBvD,MAAMkL,KAA1B,CAHtD,EAGwF;;;;YAIlF/E,cAAN;YACM0M,eAAN;;UAEI,KAAKnB,QAAL,IAAiBrS,KAAE,IAAF,EAAQkG,QAAR,CAAiBnB,UAAUuN,QAA3B,CAArB,EAA2D;;;;UAIrD3M,SAAW4L,SAASgB,qBAAT,CAA+B,IAA/B,CAAjB;;UACMC,WAAWxS,KAAE2F,MAAF,EAAUO,QAAV,CAAmBnB,UAAUkB,IAA7B,CAAjB;;UAEI,CAACuM,QAAD,KAAc7R,MAAMkL,KAAN,KAAgB2F,cAAhB,IAAkC7Q,MAAMkL,KAAN,KAAgB4F,aAAhE,KACCe,aAAa7R,MAAMkL,KAAN,KAAgB2F,cAAhB,IAAkC7Q,MAAMkL,KAAN,KAAgB4F,aAA/D,CADL,EACoF;YAE9E9Q,MAAMkL,KAAN,KAAgB2F,cAApB,EAAoC;cAC5BnK,SAASrH,KAAE2F,MAAF,EAAU5C,IAAV,CAAe8B,SAAS2C,WAAxB,EAAqC,CAArC,CAAf;eACEH,MAAF,EAAUlE,OAAV,CAAkB,OAAlB;;;aAGA,IAAF,EAAQA,OAAR,CAAgB,OAAhB;;;;UAII4R,QAAQ/U,KAAE2F,MAAF,EAAU5C,IAAV,CAAe8B,SAASmQ,aAAxB,EAAuCC,GAAvC,EAAd;;UAEI,CAACF,MAAM/R,MAAX,EAAmB;;;;UAIf4H,QAAQmK,MAAM/I,OAAN,CAAcrL,MAAMC,MAApB,CAAZ;;UAEID,MAAMkL,KAAN,KAAgB8F,gBAAhB,IAAoC/G,QAAQ,CAAhD,EAAmD;;;;;UAI/CjK,MAAMkL,KAAN,KAAgB+F,kBAAhB,IAAsChH,QAAQmK,MAAM/R,MAAN,GAAe,CAAjE,EAAoE;;;;;UAIhE4H,QAAQ,CAAZ,EAAe;gBACL,CAAR;;;YAGIA,KAAN,EAAa1C,KAAb;KAzamB;;;;0BAiGA;eACZ3D,OAAP;;;;0BAGmB;eACZuE,OAAP;;;;0BAGuB;eAChBC,WAAP;;;;;;;;;;;;OA2UFtG,QAAF,EACGsE,EADH,CACMjC,MAAMoQ,gBADZ,EAC8BrQ,SAAS2C,WADvC,EACqD+J,SAASuD,sBAD9D,EAEG/N,EAFH,CAEMjC,MAAMoQ,gBAFZ,EAE8BrQ,SAAS6O,IAFvC,EAE6CnC,SAASuD,sBAFtD,EAGG/N,EAHH,CAGSjC,MAAMkC,cAHf,SAGiClC,MAAMqQ,cAHvC,EAGyD5D,SAASkB,WAHlE,EAIG1L,EAJH,CAIMjC,MAAMkC,cAJZ,EAI4BnC,SAAS2C,WAJrC,EAIkD,UAAU7G,KAAV,EAAiB;UACzDmG,cAAN;UACM0M,eAAN;;aACShN,gBAAT,CAA0BlG,IAA1B,CAA+BN,KAAE,IAAF,CAA/B,EAAwC,QAAxC;GAPJ,EASG+G,EATH,CASMjC,MAAMkC,cATZ,EAS4BnC,SAASuQ,UATrC,EASiD,UAACC,CAAD,EAAO;MAClD7B,eAAF;GAVJ;;;;;;;OAoBE3R,EAAF,CAAKyC,IAAL,IAAyBiN,SAAS/K,gBAAlC;OACE3E,EAAF,CAAKyC,IAAL,EAAW4C,WAAX,GAAyBqK,QAAzB;;OACE1P,EAAF,CAAKyC,IAAL,EAAW6C,UAAX,GAAyB,YAAY;SACjCtF,EAAF,CAAKyC,IAAL,IAAaK,kBAAb;WACO4M,SAAS/K,gBAAhB;GAFF;;SAKO+K,QAAP;CAhde,CAkddvR,CAldc,EAkdX2S,MAldW,CAAjB;;ACRA;;;;;;;AAOA,IAAM2C,QAAS,UAACtV,IAAD,EAAO;;;;;;MASdsE,OAA+B,OAArC;MACMC,UAA+B,cAArC;MACMC,WAA+B,UAArC;MACMC,kBAAmCD,QAAzC;MACME,eAA+B,WAArC;MACMC,qBAA+B3E,KAAE6B,EAAF,CAAKyC,IAAL,CAArC;MACMM,sBAA+B,GAArC;MACM2Q,+BAA+B,GAArC;MACM/D,iBAA+B,EAArC,CAjBoB;;MAmBd1I,UAAU;cACH,IADG;cAEH,IAFG;WAGH,IAHG;UAIH;GAJb;MAOMC,cAAc;cACP,kBADO;cAEP,SAFO;WAGP,SAHO;UAIP;GAJb;MAOMjE,QAAQ;mBACeL,SADf;uBAEiBA,SAFjB;mBAGeA,SAHf;qBAIgBA,SAJhB;yBAKkBA,SALlB;uBAMiBA,SANjB;qCAOwBA,SAPxB;yCAQ0BA,SAR1B;yCAS0BA,SAT1B;6CAU4BA,SAV5B;8BAWgBA,SAA5B,GAAwCC;GAX1C;MAcMK,YAAY;wBACK,yBADL;cAEK,gBAFL;UAGK,YAHL;UAIK,MAJL;UAKK;GALvB;MAQMF,WAAW;YACM,eADN;iBAEM,uBAFN;kBAGM,wBAHN;mBAIM,mDAJN;oBAKM,aALN;oBAMM;;;;;;;GANvB;;MAgBMyQ,KAvEc;;;mBAyEN3S,OAAZ,EAAqBY,MAArB,EAA6B;WACtBgG,OAAL,GAA4B,KAAKC,UAAL,CAAgBjG,MAAhB,CAA5B;WACKyB,QAAL,GAA4BrC,OAA5B;WACK6S,OAAL,GAA4BxV,KAAE2C,OAAF,EAAWI,IAAX,CAAgB8B,SAAS4Q,MAAzB,EAAiC,CAAjC,CAA5B;WACKC,SAAL,GAA4B,IAA5B;WACKC,QAAL,GAA4B,KAA5B;WACKC,kBAAL,GAA4B,KAA5B;WACKC,oBAAL,GAA4B,KAA5B;WACKC,oBAAL,GAA4B,CAA5B;WACKC,eAAL,GAA4B,CAA5B;KAlFgB;;;;;;WAmGlB1O,MAnGkB,mBAmGXqF,aAnGW,EAmGI;aACb,KAAKiJ,QAAL,GAAgB,KAAKvG,IAAL,EAAhB,GAA8B,KAAKC,IAAL,CAAU3C,aAAV,CAArC;KApGgB;;WAuGlB2C,IAvGkB,iBAuGb3C,aAvGa,EAuGE;;;UACd,KAAK+B,gBAAL,IAAyB,KAAKkH,QAAlC,EAA4C;;;;UAIxC5V,KAAKgC,qBAAL,MAAgC/B,KAAE,KAAKgF,QAAP,EAAiBkB,QAAjB,CAA0BnB,UAAUoB,IAApC,CAApC,EAA+E;aACxEsI,gBAAL,GAAwB,IAAxB;;;UAGIiE,YAAY1S,KAAE8E,KAAF,CAAQA,MAAMmB,IAAd,EAAoB;;OAApB,CAAlB;WAIE,KAAKjB,QAAP,EAAiB7B,OAAjB,CAAyBuP,SAAzB;;UAEI,KAAKiD,QAAL,IAAiBjD,UAAUpN,kBAAV,EAArB,EAAqD;;;;WAIhDqQ,QAAL,GAAgB,IAAhB;;WAEKK,eAAL;;WACKC,aAAL;;WAEKC,aAAL;;WAEEzT,SAAS0T,IAAX,EAAiBhJ,QAAjB,CAA0BpI,UAAUqR,IAApC;;WAEKC,eAAL;;WACKC,eAAL;;WAEE,KAAKtR,QAAP,EAAiB+B,EAAjB,CACEjC,MAAMyR,aADR,EAEE1R,SAAS2R,YAFX,EAGE,UAAC7V,KAAD;eAAW,MAAKyO,IAAL,CAAUzO,KAAV,CAAX;OAHF;WAME,KAAK6U,OAAP,EAAgBzO,EAAhB,CAAmBjC,MAAM2R,iBAAzB,EAA4C,YAAM;aAC9C,MAAKzR,QAAP,EAAiBvD,GAAjB,CAAqBqD,MAAM4R,eAA3B,EAA4C,UAAC/V,KAAD,EAAW;cACjDX,KAAEW,MAAMC,MAAR,EAAgBC,EAAhB,CAAmB,MAAKmE,QAAxB,CAAJ,EAAuC;kBAChC6Q,oBAAL,GAA4B,IAA5B;;SAFJ;OADF;;WAQKc,aAAL,CAAmB;eAAM,MAAKC,YAAL,CAAkBlK,aAAlB,CAAN;OAAnB;KApJgB;;WAuJlB0C,IAvJkB,iBAuJbzO,KAvJa,EAuJN;;;UACNA,KAAJ,EAAW;cACHmG,cAAN;;;UAGE,KAAK2H,gBAAL,IAAyB,CAAC,KAAKkH,QAAnC,EAA6C;;;;UAIvCf,YAAY5U,KAAE8E,KAAF,CAAQA,MAAMyL,IAAd,CAAlB;WAEE,KAAKvL,QAAP,EAAiB7B,OAAjB,CAAyByR,SAAzB;;UAEI,CAAC,KAAKe,QAAN,IAAkBf,UAAUtP,kBAAV,EAAtB,EAAsD;;;;WAIjDqQ,QAAL,GAAgB,KAAhB;UAEM1V,aAAaF,KAAKgC,qBAAL,MAAgC/B,KAAE,KAAKgF,QAAP,EAAiBkB,QAAjB,CAA0BnB,UAAUoB,IAApC,CAAnD;;UAEIlG,UAAJ,EAAgB;aACTwO,gBAAL,GAAwB,IAAxB;;;WAGG4H,eAAL;;WACKC,eAAL;;WAEE7T,QAAF,EAAYyI,GAAZ,CAAgBpG,MAAM+R,OAAtB;WAEE,KAAK7R,QAAP,EAAiBgB,WAAjB,CAA6BjB,UAAUkB,IAAvC;WAEE,KAAKjB,QAAP,EAAiBkG,GAAjB,CAAqBpG,MAAMyR,aAA3B;WACE,KAAKf,OAAP,EAAgBtK,GAAhB,CAAoBpG,MAAM2R,iBAA1B;;UAEIxW,UAAJ,EAAgB;aAEZ,KAAK+E,QAAP,EACGvD,GADH,CACO1B,KAAK2B,cADZ,EAC4B,UAACf,KAAD;iBAAW,OAAKmW,UAAL,CAAgBnW,KAAhB,CAAX;SAD5B,EAEGmB,oBAFH,CAEwB8C,mBAFxB;OAFF,MAKO;aACAkS,UAAL;;KAhMc;;WAoMlBtR,OApMkB,sBAoMR;WACNC,UAAF,CAAa,KAAKT,QAAlB,EAA4BR,QAA5B;WAEEpD,MAAF,EAAUqB,QAAV,EAAoB,KAAKuC,QAAzB,EAAmC,KAAK0Q,SAAxC,EAAmDxK,GAAnD,CAAuDzG,SAAvD;WAEK8E,OAAL,GAA4B,IAA5B;WACKvE,QAAL,GAA4B,IAA5B;WACKwQ,OAAL,GAA4B,IAA5B;WACKE,SAAL,GAA4B,IAA5B;WACKC,QAAL,GAA4B,IAA5B;WACKC,kBAAL,GAA4B,IAA5B;WACKC,oBAAL,GAA4B,IAA5B;WACKE,eAAL,GAA4B,IAA5B;KAhNgB;;WAmNlBgB,YAnNkB,2BAmNH;WACRb,aAAL;KApNgB;;;WAyNlB1M,UAzNkB,uBAyNPjG,MAzNO,EAyNC;4BAEZuF,OADL,EAEKvF,MAFL;WAIK4H,eAAL,CAAqB7G,IAArB,EAA2Bf,MAA3B,EAAmCwF,WAAnC;aACOxF,MAAP;KA/NgB;;WAkOlBqT,YAlOkB,yBAkOLlK,aAlOK,EAkOU;;;UACpBzM,aAAaF,KAAKgC,qBAAL,MACjB/B,KAAE,KAAKgF,QAAP,EAAiBkB,QAAjB,CAA0BnB,UAAUoB,IAApC,CADF;;UAGI,CAAC,KAAKnB,QAAL,CAAc6P,UAAf,IACD,KAAK7P,QAAL,CAAc6P,UAAd,CAAyBxR,QAAzB,KAAsC2T,KAAKC,YAD9C,EAC4D;;iBAEjDd,IAAT,CAAce,WAAd,CAA0B,KAAKlS,QAA/B;;;WAGGA,QAAL,CAAc8K,KAAd,CAAoBqH,OAApB,GAA8B,OAA9B;;WACKnS,QAAL,CAAcoS,eAAd,CAA8B,aAA9B;;WACKpS,QAAL,CAAcqS,SAAd,GAA0B,CAA1B;;UAEIpX,UAAJ,EAAgB;aACT4N,MAAL,CAAY,KAAK7I,QAAjB;;;WAGA,KAAKA,QAAP,EAAiBmI,QAAjB,CAA0BpI,UAAUkB,IAApC;;UAEI,KAAKsD,OAAL,CAAarB,KAAjB,EAAwB;aACjBoP,aAAL;;;UAGIC,aAAavX,KAAE8E,KAAF,CAAQA,MAAMqL,KAAd,EAAqB;;OAArB,CAAnB;;UAIMqH,qBAAqB,SAArBA,kBAAqB,GAAM;YAC3B,OAAKjO,OAAL,CAAarB,KAAjB,EAAwB;iBACjBlD,QAAL,CAAckD,KAAd;;;eAEGuG,gBAAL,GAAwB,KAAxB;aACE,OAAKzJ,QAAP,EAAiB7B,OAAjB,CAAyBoU,UAAzB;OALF;;UAQItX,UAAJ,EAAgB;aACZ,KAAKuV,OAAP,EACG/T,GADH,CACO1B,KAAK2B,cADZ,EAC4B8V,kBAD5B,EAEG1V,oBAFH,CAEwB8C,mBAFxB;OADF,MAIO;;;KA1QS;;WA+QlB0S,aA/QkB,4BA+QF;;;WACZ7U,QAAF,EACGyI,GADH,CACOpG,MAAM+R,OADb;OAEG9P,EAFH,CAEMjC,MAAM+R,OAFZ,EAEqB,UAAClW,KAAD,EAAW;YACxB8B,aAAa9B,MAAMC,MAAnB,IACA,OAAKoE,QAAL,KAAkBrE,MAAMC,MADxB,IAEA,CAACZ,KAAE,OAAKgF,QAAP,EAAiByS,GAAjB,CAAqB9W,MAAMC,MAA3B,EAAmCoC,MAFxC,EAEgD;iBACzCgC,QAAL,CAAckD,KAAd;;OANN;KAhRgB;;WA2RlBmO,eA3RkB,8BA2RA;;;UACZ,KAAKV,QAAL,IAAiB,KAAKpM,OAAL,CAAa6B,QAAlC,EAA4C;aACxC,KAAKpG,QAAP,EAAiB+B,EAAjB,CAAoBjC,MAAM4S,eAA1B,EAA2C,UAAC/W,KAAD,EAAW;cAChDA,MAAMkL,KAAN,KAAgB2F,cAApB,EAAoC;kBAC5B1K,cAAN;;mBACKsI,IAAL;;SAHJ;OADF,MAQO,IAAI,CAAC,KAAKuG,QAAV,EAAoB;aACvB,KAAK3Q,QAAP,EAAiBkG,GAAjB,CAAqBpG,MAAM4S,eAA3B;;KArSc;;WAySlBpB,eAzSkB,8BAySA;;;UACZ,KAAKX,QAAT,EAAmB;aACfvU,MAAF,EAAU2F,EAAV,CAAajC,MAAM6S,MAAnB,EAA2B,UAAChX,KAAD;iBAAW,OAAKoW,YAAL,CAAkBpW,KAAlB,CAAX;SAA3B;OADF,MAEO;aACHS,MAAF,EAAU8J,GAAV,CAAcpG,MAAM6S,MAApB;;KA7Sc;;WAiTlBb,UAjTkB,yBAiTL;;;WACN9R,QAAL,CAAc8K,KAAd,CAAoBqH,OAApB,GAA8B,MAA9B;;WACKnS,QAAL,CAAcmD,YAAd,CAA2B,aAA3B,EAA0C,IAA1C;;WACKsG,gBAAL,GAAwB,KAAxB;;WACKkI,aAAL,CAAmB,YAAM;aACrBlU,SAAS0T,IAAX,EAAiBnQ,WAAjB,CAA6BjB,UAAUqR,IAAvC;;eACKwB,iBAAL;;eACKC,eAAL;;aACE,OAAK7S,QAAP,EAAiB7B,OAAjB,CAAyB2B,MAAM4L,MAA/B;OAJF;KArTgB;;WA6TlBoH,eA7TkB,8BA6TA;UACZ,KAAKpC,SAAT,EAAoB;aAChB,KAAKA,SAAP,EAAkBnP,MAAlB;aACKmP,SAAL,GAAiB,IAAjB;;KAhUc;;WAoUlBiB,aApUkB,0BAoUJoB,QApUI,EAoUM;;;UAChBC,UAAUhY,KAAE,KAAKgF,QAAP,EAAiBkB,QAAjB,CAA0BnB,UAAUoB,IAApC,IACdpB,UAAUoB,IADI,GACG,EADnB;;UAGI,KAAKwP,QAAL,IAAiB,KAAKpM,OAAL,CAAa0O,QAAlC,EAA4C;YACpCC,YAAYnY,KAAKgC,qBAAL,MAAgCiW,OAAlD;aAEKtC,SAAL,GAAiBjT,SAAS0V,aAAT,CAAuB,KAAvB,CAAjB;aACKzC,SAAL,CAAe0C,SAAf,GAA2BrT,UAAUsT,QAArC;;YAEIL,OAAJ,EAAa;eACT,KAAKtC,SAAP,EAAkBvI,QAAlB,CAA2B6K,OAA3B;;;aAGA,KAAKtC,SAAP,EAAkB4C,QAAlB,CAA2B7V,SAAS0T,IAApC;aAEE,KAAKnR,QAAP,EAAiB+B,EAAjB,CAAoBjC,MAAMyR,aAA1B,EAAyC,UAAC5V,KAAD,EAAW;cAC9C,OAAKkV,oBAAT,EAA+B;mBACxBA,oBAAL,GAA4B,KAA5B;;;;cAGElV,MAAMC,MAAN,KAAiBD,MAAMyQ,aAA3B,EAA0C;;;;cAGtC,OAAK7H,OAAL,CAAa0O,QAAb,KAA0B,QAA9B,EAAwC;mBACjCjT,QAAL,CAAckD,KAAd;WADF,MAEO;mBACAkH,IAAL;;SAXJ;;YAeI8I,SAAJ,EAAe;eACRrK,MAAL,CAAY,KAAK6H,SAAjB;;;aAGA,KAAKA,SAAP,EAAkBvI,QAAlB,CAA2BpI,UAAUkB,IAArC;;YAEI,CAAC8R,QAAL,EAAe;;;;YAIX,CAACG,SAAL,EAAgB;;;;;aAKd,KAAKxC,SAAP,EACGjU,GADH,CACO1B,KAAK2B,cADZ,EAC4BqW,QAD5B,EAEGjW,oBAFH,CAEwByT,4BAFxB;OA1CF,MA8CO,IAAI,CAAC,KAAKI,QAAN,IAAkB,KAAKD,SAA3B,EAAsC;aACzC,KAAKA,SAAP,EAAkB1P,WAAlB,CAA8BjB,UAAUkB,IAAxC;;YAEMsS,iBAAiB,SAAjBA,cAAiB,GAAM;iBACtBT,eAAL;;cACIC,QAAJ,EAAc;;;SAFhB;;YAOIhY,KAAKgC,qBAAL,MACD/B,KAAE,KAAKgF,QAAP,EAAiBkB,QAAjB,CAA0BnB,UAAUoB,IAApC,CADH,EAC8C;eAC1C,KAAKuP,SAAP,EACGjU,GADH,CACO1B,KAAK2B,cADZ,EAC4B6W,cAD5B,EAEGzW,oBAFH,CAEwByT,4BAFxB;SAFF,MAKO;;;OAfF,MAmBA,IAAIwC,QAAJ,EAAc;;;KAzYL;;;;;;WAoZlB7B,aApZkB,4BAoZF;UACRsC,qBACJ,KAAKxT,QAAL,CAAcyT,YAAd,GAA6BhW,SAASgJ,eAAT,CAAyBiN,YADxD;;UAGI,CAAC,KAAK9C,kBAAN,IAA4B4C,kBAAhC,EAAoD;aAC7CxT,QAAL,CAAc8K,KAAd,CAAoB6I,WAApB,GAAqC,KAAK5C,eAA1C;;;UAGE,KAAKH,kBAAL,IAA2B,CAAC4C,kBAAhC,EAAoD;aAC7CxT,QAAL,CAAc8K,KAAd,CAAoB8I,YAApB,GAAsC,KAAK7C,eAA3C;;KA7Zc;;WAialB6B,iBAjakB,gCAiaE;WACb5S,QAAL,CAAc8K,KAAd,CAAoB6I,WAApB,GAAkC,EAAlC;WACK3T,QAAL,CAAc8K,KAAd,CAAoB8I,YAApB,GAAmC,EAAnC;KAnagB;;WAsalB5C,eAtakB,8BAsaA;UACV6C,OAAOpW,SAAS0T,IAAT,CAAc3F,qBAAd,EAAb;WACKoF,kBAAL,GAA0BiD,KAAKC,IAAL,GAAYD,KAAKE,KAAjB,GAAyB3X,OAAO4X,UAA1D;WACKjD,eAAL,GAAuB,KAAKkD,kBAAL,EAAvB;KAzagB;;WA4alBhD,aA5akB,4BA4aF;;;UACV,KAAKL,kBAAT,EAA6B;;;;aAKzB/Q,SAASqU,aAAX,EAA0BzS,IAA1B,CAA+B,UAACmE,KAAD,EAAQjI,OAAR,EAAoB;cAC3CwW,gBAAgBnZ,KAAE2C,OAAF,EAAW,CAAX,EAAcmN,KAAd,CAAoB8I,YAA1C;cACMQ,oBAAoBpZ,KAAE2C,OAAF,EAAWsH,GAAX,CAAe,eAAf,CAA1B;eACEtH,OAAF,EAAWgE,IAAX,CAAgB,eAAhB,EAAiCwS,aAAjC,EAAgDlP,GAAhD,CAAoD,eAApD,EAAwEoP,WAAWD,iBAAX,IAAgC,OAAKrD,eAA7G;SAHF,EAL2B;;aAYzBlR,SAASyU,cAAX,EAA2B7S,IAA3B,CAAgC,UAACmE,KAAD,EAAQjI,OAAR,EAAoB;cAC5C4W,eAAevZ,KAAE2C,OAAF,EAAW,CAAX,EAAcmN,KAAd,CAAoB0J,WAAzC;cACMC,mBAAmBzZ,KAAE2C,OAAF,EAAWsH,GAAX,CAAe,cAAf,CAAzB;eACEtH,OAAF,EAAWgE,IAAX,CAAgB,cAAhB,EAAgC4S,YAAhC,EAA8CtP,GAA9C,CAAkD,cAAlD,EAAqEoP,WAAWI,gBAAX,IAA+B,OAAK1D,eAAzG;SAHF,EAZ2B;;aAmBzBlR,SAAS6U,cAAX,EAA2BjT,IAA3B,CAAgC,UAACmE,KAAD,EAAQjI,OAAR,EAAoB;cAC5C4W,eAAevZ,KAAE2C,OAAF,EAAW,CAAX,EAAcmN,KAAd,CAAoB0J,WAAzC;cACMC,mBAAmBzZ,KAAE2C,OAAF,EAAWsH,GAAX,CAAe,cAAf,CAAzB;eACEtH,OAAF,EAAWgE,IAAX,CAAgB,cAAhB,EAAgC4S,YAAhC,EAA8CtP,GAA9C,CAAkD,cAAlD,EAAqEoP,WAAWI,gBAAX,IAA+B,OAAK1D,eAAzG;SAHF,EAnB2B;;YA0BrBoD,gBAAgB1W,SAAS0T,IAAT,CAAcrG,KAAd,CAAoB8I,YAA1C;YACMQ,oBAAoBpZ,KAAE,MAAF,EAAUiK,GAAV,CAAc,eAAd,CAA1B;aACE,MAAF,EAAUtD,IAAV,CAAe,eAAf,EAAgCwS,aAAhC,EAA+ClP,GAA/C,CAAmD,eAAnD,EAAuEoP,WAAWD,iBAAX,IAAgC,KAAKrD,eAA5G;;KAzcc;;WA6clB8B,eA7ckB,8BA6cA;;WAEdhT,SAASqU,aAAX,EAA0BzS,IAA1B,CAA+B,UAACmE,KAAD,EAAQjI,OAAR,EAAoB;YAC3CgX,UAAU3Z,KAAE2C,OAAF,EAAWgE,IAAX,CAAgB,eAAhB,CAAhB;;YACI,OAAOgT,OAAP,KAAmB,WAAvB,EAAoC;eAChChX,OAAF,EAAWsH,GAAX,CAAe,eAAf,EAAgC0P,OAAhC,EAAyClU,UAAzC,CAAoD,eAApD;;OAHJ,EAFgB;;WAUXZ,SAASyU,cAAd,UAAiCzU,SAAS6U,cAA1C,EAA4DjT,IAA5D,CAAiE,UAACmE,KAAD,EAAQjI,OAAR,EAAoB;YAC7EiX,SAAS5Z,KAAE2C,OAAF,EAAWgE,IAAX,CAAgB,cAAhB,CAAf;;YACI,OAAOiT,MAAP,KAAkB,WAAtB,EAAmC;eAC/BjX,OAAF,EAAWsH,GAAX,CAAe,cAAf,EAA+B2P,MAA/B,EAAuCnU,UAAvC,CAAkD,cAAlD;;OAHJ,EAVgB;;UAkBVkU,UAAU3Z,KAAE,MAAF,EAAU2G,IAAV,CAAe,eAAf,CAAhB;;UACI,OAAOgT,OAAP,KAAmB,WAAvB,EAAoC;aAChC,MAAF,EAAU1P,GAAV,CAAc,eAAd,EAA+B0P,OAA/B,EAAwClU,UAAxC,CAAmD,eAAnD;;KAjec;;WAqelBwT,kBArekB,iCAqeG;;UACbY,YAAYpX,SAAS0V,aAAT,CAAuB,KAAvB,CAAlB;gBACUC,SAAV,GAAsBrT,UAAU+U,kBAAhC;eACS3D,IAAT,CAAce,WAAd,CAA0B2C,SAA1B;UACME,iBAAiBF,UAAUrJ,qBAAV,GAAkCwJ,KAAlC,GAA0CH,UAAUI,WAA3E;eACS9D,IAAT,CAAc+D,WAAd,CAA0BL,SAA1B;aACOE,cAAP;KA3egB;;;UAifXvT,gBAjfW,6BAifMjD,MAjfN,EAifcmJ,aAjfd,EAif6B;aACtC,KAAKjG,IAAL,CAAU,YAAY;YACvBE,OAAY3G,KAAE,IAAF,EAAQ2G,IAAR,CAAanC,QAAb,CAAhB;;YACM+E,uBACD+L,MAAMxM,OADL,EAED9I,KAAE,IAAF,EAAQ2G,IAAR,EAFC,EAGD,OAAOpD,MAAP,KAAkB,QAAlB,IAA8BA,MAH7B,CAAN;;YAMI,CAACoD,IAAL,EAAW;iBACF,IAAI2O,KAAJ,CAAU,IAAV,EAAgB/L,OAAhB,CAAP;eACE,IAAF,EAAQ5C,IAAR,CAAanC,QAAb,EAAuBmC,IAAvB;;;YAGE,OAAOpD,MAAP,KAAkB,QAAtB,EAAgC;cAC1B,OAAOoD,KAAKpD,MAAL,CAAP,KAAwB,WAA5B,EAAyC;kBACjC,IAAIY,KAAJ,wBAA8BZ,MAA9B,QAAN;;;eAEGA,MAAL,EAAamJ,aAAb;SAJF,MAKO,IAAInD,QAAQ8F,IAAZ,EAAkB;eAClBA,IAAL,CAAU3C,aAAV;;OAnBG,CAAP;KAlfgB;;;;0BAwFG;eACZnI,OAAP;;;;0BAGmB;eACZuE,OAAP;;;;;;;;;;;;OAsbFrG,QAAF,EAAYsE,EAAZ,CAAejC,MAAMkC,cAArB,EAAqCnC,SAAS2C,WAA9C,EAA2D,UAAU7G,KAAV,EAAiB;;;QACtEC,MAAJ;QACMsB,WAAWnC,KAAK2F,sBAAL,CAA4B,IAA5B,CAAjB;;QAEIxD,QAAJ,EAAc;eACHlC,KAAEkC,QAAF,EAAY,CAAZ,CAAT;;;QAGIqB,SAASvD,KAAEY,MAAF,EAAU+F,IAAV,CAAenC,QAAf,IACb,QADa,gBAERxE,KAAEY,MAAF,EAAU+F,IAAV,EAFQ,EAGR3G,KAAE,IAAF,EAAQ2G,IAAR,EAHQ,CAAf;;QAMI,KAAKiF,OAAL,KAAiB,GAAjB,IAAwB,KAAKA,OAAL,KAAiB,MAA7C,EAAqD;YAC7C9E,cAAN;;;QAGIwK,UAAUtR,KAAEY,MAAF,EAAUa,GAAV,CAAcqD,MAAMmB,IAApB,EAA0B,UAACyM,SAAD,EAAe;UACnDA,UAAUpN,kBAAV,EAAJ,EAAoC;;;;;cAK5B7D,GAAR,CAAYqD,MAAM4L,MAAlB,EAA0B,YAAM;YAC1B1Q,cAAQa,EAAR,CAAW,UAAX,CAAJ,EAA4B;kBACrBqH,KAAL;;OAFJ;KANc,CAAhB;;UAaM1B,gBAAN,CAAuBlG,IAAvB,CAA4BN,KAAEY,MAAF,CAA5B,EAAuC2C,MAAvC,EAA+C,IAA/C;GA/BF;;;;;;;OAyCE1B,EAAF,CAAKyC,IAAL,IAAyBgR,MAAM9O,gBAA/B;OACE3E,EAAF,CAAKyC,IAAL,EAAW4C,WAAX,GAAyBoO,KAAzB;;OACEzT,EAAF,CAAKyC,IAAL,EAAW6C,UAAX,GAAyB,YAAY;SACjCtF,EAAF,CAAKyC,IAAL,IAAaK,kBAAb;WACO2Q,MAAM9O,gBAAb;GAFF;;SAKO8O,KAAP;CAnkBY,CAqkBXtV,CArkBW,CAAd;;ACNA;;;;;;;AAOA,IAAMma,UAAW,UAACna,IAAD,EAAO;;;;;;MAQhBsE,OAAsB,SAA5B;MACMC,UAAsB,cAA5B;MACMC,WAAsB,YAA5B;MACMC,kBAA0BD,QAAhC;MACMG,qBAAsB3E,KAAE6B,EAAF,CAAKyC,IAAL,CAA5B;MACMM,sBAAsB,GAA5B;MACMwV,eAAsB,YAA5B;MACMC,qBAAqB,IAAIpW,MAAJ,aAAqBmW,YAArB,WAAyC,GAAzC,CAA3B;MAEMrR,cAAc;eACI,SADJ;cAEI,QAFJ;WAGI,2BAHJ;aAII,QAJJ;WAKI,iBALJ;UAMI,SANJ;cAOI,kBAPJ;eAQI,mBARJ;YASI,iBATJ;eAUI,0BAVJ;uBAWI,gBAXJ;cAYI;GAZxB;MAeMgJ,gBAAgB;UACX,MADW;SAEX,KAFW;WAGX,OAHW;YAIX,QAJW;UAKX;GALX;MAQMjJ,UAAU;eACQ,IADR;cAEQ,yCACA,2BADA,GAEA,yCAJR;aAKQ,aALR;WAMQ,EANR;WAOQ,CAPR;UAQQ,KARR;cASQ,KATR;eAUQ,KAVR;YAWQ,CAXR;eAYQ,KAZR;uBAaQ,MAbR;cAcQ;GAdxB;MAiBMwR,aAAa;UACV,MADU;SAEV;GAFT;MAKMxV,QAAQ;mBACQL,SADR;uBAEUA,SAFV;mBAGQA,SAHR;qBAISA,SAJT;2BAKYA,SALZ;qBAMSA,SANT;yBAOWA,SAPX;2BAQYA,SARZ;+BAScA,SATd;+BAUcA;GAV5B;MAaMM,YAAY;UACT,MADS;UAET;GAFT;MAKMF,WAAW;aACC,UADD;mBAEC,gBAFD;WAGC;GAHlB;MAMM0V,UAAU;WACL,OADK;WAEL,OAFK;WAGL,OAHK;YAIL;;;;;;;GAJX;;MAcMJ,OApGgB;;;qBAsGRxX,OAAZ,EAAqBY,MAArB,EAA6B;;;;;UAKvB,OAAOoP,MAAP,KAAkB,WAAtB,EAAmC;cAC3B,IAAIxO,KAAJ,CAAU,8DAAV,CAAN;OANyB;;;WAUtBqW,UAAL,GAAsB,IAAtB;WACKC,QAAL,GAAsB,CAAtB;WACKC,WAAL,GAAsB,EAAtB;WACKC,cAAL,GAAsB,EAAtB;WACK3I,OAAL,GAAsB,IAAtB,CAd2B;;WAiBtBrP,OAAL,GAAeA,OAAf;WACKY,MAAL,GAAe,KAAKiG,UAAL,CAAgBjG,MAAhB,CAAf;WACKqX,GAAL,GAAe,IAAf;;WAEKC,aAAL;KA3HkB;;;;;;WAiKpBC,MAjKoB,qBAiKX;WACFN,UAAL,GAAkB,IAAlB;KAlKkB;;WAqKpBO,OArKoB,sBAqKV;WACHP,UAAL,GAAkB,KAAlB;KAtKkB;;WAyKpBQ,aAzKoB,4BAyKJ;WACTR,UAAL,GAAkB,CAAC,KAAKA,UAAxB;KA1KkB;;WA6KpBnT,MA7KoB,mBA6Kb1G,KA7Ka,EA6KN;UACR,CAAC,KAAK6Z,UAAV,EAAsB;;;;UAIlB7Z,KAAJ,EAAW;YACHsa,UAAU,KAAKxH,WAAL,CAAiBjP,QAAjC;YACIkQ,UAAU1U,KAAEW,MAAMyQ,aAAR,EAAuBzK,IAAvB,CAA4BsU,OAA5B,CAAd;;YAEI,CAACvG,OAAL,EAAc;oBACF,IAAI,KAAKjB,WAAT,CACR9S,MAAMyQ,aADE,EAER,KAAK8J,kBAAL,EAFQ,CAAV;eAIEva,MAAMyQ,aAAR,EAAuBzK,IAAvB,CAA4BsU,OAA5B,EAAqCvG,OAArC;;;gBAGMiG,cAAR,CAAuBQ,KAAvB,GAA+B,CAACzG,QAAQiG,cAAR,CAAuBQ,KAAvD;;YAEIzG,QAAQ0G,oBAAR,EAAJ,EAAoC;kBAC1BC,MAAR,CAAe,IAAf,EAAqB3G,OAArB;SADF,MAEO;kBACG4G,MAAR,CAAe,IAAf,EAAqB5G,OAArB;;OAjBJ,MAoBO;YAED1U,KAAE,KAAKub,aAAL,EAAF,EAAwBrV,QAAxB,CAAiCnB,UAAUkB,IAA3C,CAAJ,EAAsD;eAC/CqV,MAAL,CAAY,IAAZ,EAAkB,IAAlB;;;;;aAIGD,MAAL,CAAY,IAAZ,EAAkB,IAAlB;;KA7MgB;;WAiNpB7V,OAjNoB,sBAiNV;mBACK,KAAKiV,QAAlB;WAEEhV,UAAF,CAAa,KAAK9C,OAAlB,EAA2B,KAAK8Q,WAAL,CAAiBjP,QAA5C;WAEE,KAAK7B,OAAP,EAAgBuI,GAAhB,CAAoB,KAAKuI,WAAL,CAAiBhP,SAArC;WACE,KAAK9B,OAAP,EAAgBiD,OAAhB,CAAwB,QAAxB,EAAkCsF,GAAlC,CAAsC,eAAtC;;UAEI,KAAK0P,GAAT,EAAc;aACV,KAAKA,GAAP,EAAYrU,MAAZ;;;WAGGiU,UAAL,GAAsB,IAAtB;WACKC,QAAL,GAAsB,IAAtB;WACKC,WAAL,GAAsB,IAAtB;WACKC,cAAL,GAAsB,IAAtB;;UACI,KAAK3I,OAAL,KAAiB,IAArB,EAA2B;aACpBA,OAAL,CAAaoB,OAAb;;;WAGGpB,OAAL,GAAe,IAAf;WACKrP,OAAL,GAAe,IAAf;WACKY,MAAL,GAAe,IAAf;WACKqX,GAAL,GAAe,IAAf;KAxOkB;;WA2OpBvL,IA3OoB,mBA2Ob;;;UACDrP,KAAE,KAAK2C,OAAP,EAAgBsH,GAAhB,CAAoB,SAApB,MAAmC,MAAvC,EAA+C;cACvC,IAAI9F,KAAJ,CAAU,qCAAV,CAAN;;;UAGIuO,YAAY1S,KAAE8E,KAAF,CAAQ,KAAK2O,WAAL,CAAiB3O,KAAjB,CAAuBmB,IAA/B,CAAlB;;UACI,KAAKuV,aAAL,MAAwB,KAAKhB,UAAjC,EAA6C;aACzC,KAAK7X,OAAP,EAAgBQ,OAAhB,CAAwBuP,SAAxB;YAEM+I,aAAazb,KAAEiI,QAAF,CACjB,KAAKtF,OAAL,CAAa+Y,aAAb,CAA2BjQ,eADV,EAEjB,KAAK9I,OAFY,CAAnB;;YAKI+P,UAAUpN,kBAAV,MAAkC,CAACmW,UAAvC,EAAmD;;;;YAI7Cb,MAAQ,KAAKW,aAAL,EAAd;YACMI,QAAQ5b,KAAK6b,MAAL,CAAY,KAAKnI,WAAL,CAAiBnP,IAA7B,CAAd;YAEI6D,YAAJ,CAAiB,IAAjB,EAAuBwT,KAAvB;aACKhZ,OAAL,CAAawF,YAAb,CAA0B,kBAA1B,EAA8CwT,KAA9C;aAEKE,UAAL;;YAEI,KAAKtY,MAAL,CAAYuY,SAAhB,EAA2B;eACvBlB,GAAF,EAAOzN,QAAP,CAAgBpI,UAAUoB,IAA1B;;;YAGI0N,YAAa,OAAO,KAAKtQ,MAAL,CAAYsQ,SAAnB,KAAiC,UAAjC,GACjB,KAAKtQ,MAAL,CAAYsQ,SAAZ,CAAsBvT,IAAtB,CAA2B,IAA3B,EAAiCsa,GAAjC,EAAsC,KAAKjY,OAA3C,CADiB,GAEjB,KAAKY,MAAL,CAAYsQ,SAFd;;YAIMkI,aAAa,KAAKC,cAAL,CAAoBnI,SAApB,CAAnB;;aACKoI,kBAAL,CAAwBF,UAAxB;YAEMG,YAAY,KAAK3Y,MAAL,CAAY2Y,SAAZ,KAA0B,KAA1B,GAAkCzZ,SAAS0T,IAA3C,GAAkDnW,KAAE,KAAKuD,MAAL,CAAY2Y,SAAd,CAApE;aAEEtB,GAAF,EAAOjU,IAAP,CAAY,KAAK8M,WAAL,CAAiBjP,QAA7B,EAAuC,IAAvC;;YAEI,CAACxE,KAAEiI,QAAF,CAAW,KAAKtF,OAAL,CAAa+Y,aAAb,CAA2BjQ,eAAtC,EAAuD,KAAKmP,GAA5D,CAAL,EAAuE;eACnEA,GAAF,EAAOtC,QAAP,CAAgB4D,SAAhB;;;aAGA,KAAKvZ,OAAP,EAAgBQ,OAAhB,CAAwB,KAAKsQ,WAAL,CAAiB3O,KAAjB,CAAuBqX,QAA/C;aAEKnK,OAAL,GAAe,IAAIW,MAAJ,CAAW,KAAKhQ,OAAhB,EAAyBiY,GAAzB,EAA8B;qBAChCmB,UADgC;qBAEhC;oBACD;sBACE,KAAKxY,MAAL,CAAY8Q;aAFb;kBAIH;wBACM,KAAK9Q,MAAL,CAAY6Y;aALf;mBAOF;uBACIvX,SAASwX;aARX;6BAUQ;iCACI,KAAK9Y,MAAL,CAAYwP;;WAbQ;oBAgBjC,kBAACpM,IAAD,EAAU;gBACdA,KAAK2V,iBAAL,KAA2B3V,KAAKkN,SAApC,EAA+C;oBACxC0I,4BAAL,CAAkC5V,IAAlC;;WAlBuC;oBAqBhC,kBAACA,IAAD,EAAU;kBACd4V,4BAAL,CAAkC5V,IAAlC;;SAtBW,CAAf;aA0BEiU,GAAF,EAAOzN,QAAP,CAAgBpI,UAAUkB,IAA1B,EAnE2C;;;;;YAyEvC,kBAAkBxD,SAASgJ,eAA/B,EAAgD;eAC5C,MAAF,EAAUyB,QAAV,GAAqBnG,EAArB,CAAwB,WAAxB,EAAqC,IAArC,EAA2C/G,KAAEmT,IAA7C;;;YAGIjD,WAAW,SAAXA,QAAW,GAAM;cACjB,MAAK3M,MAAL,CAAYuY,SAAhB,EAA2B;kBACpBU,cAAL;;;cAEIC,iBAAiB,MAAK/B,WAA5B;gBACKA,WAAL,GAAuB,IAAvB;eAEE,MAAK/X,OAAP,EAAgBQ,OAAhB,CAAwB,MAAKsQ,WAAL,CAAiB3O,KAAjB,CAAuBqL,KAA/C;;cAEIsM,mBAAmBnC,WAAWoC,GAAlC,EAAuC;kBAChCpB,MAAL,CAAY,IAAZ;;SAVJ;;YAcIvb,KAAKgC,qBAAL,MAAgC/B,KAAE,KAAK4a,GAAP,EAAY1U,QAAZ,CAAqBnB,UAAUoB,IAA/B,CAApC,EAA0E;eACtE,KAAKyU,GAAP,EACGnZ,GADH,CACO1B,KAAK2B,cADZ,EAC4BwO,QAD5B,EAEGpO,oBAFH,CAEwBqY,QAAQwC,oBAFhC;SADF,MAIO;;;;KAhVS;;WAsVpBvN,IAtVoB,iBAsVf2I,QAtVe,EAsVL;;;UACP6C,MAAY,KAAKW,aAAL,EAAlB;UACM3G,YAAY5U,KAAE8E,KAAF,CAAQ,KAAK2O,WAAL,CAAiB3O,KAAjB,CAAuByL,IAA/B,CAAlB;;UACML,WAAY,SAAZA,QAAY,GAAM;YAClB,OAAKwK,WAAL,KAAqBJ,WAAWrU,IAAhC,IAAwC2U,IAAI/F,UAAhD,EAA4D;cACtDA,UAAJ,CAAeqF,WAAf,CAA2BU,GAA3B;;;eAGGgC,cAAL;;eACKja,OAAL,CAAayU,eAAb,CAA6B,kBAA7B;;aACE,OAAKzU,OAAP,EAAgBQ,OAAhB,CAAwB,OAAKsQ,WAAL,CAAiB3O,KAAjB,CAAuB4L,MAA/C;;YACI,OAAKsB,OAAL,KAAiB,IAArB,EAA2B;iBACpBA,OAAL,CAAaoB,OAAb;;;YAGE2E,QAAJ,EAAc;;;OAZhB;;WAiBE,KAAKpV,OAAP,EAAgBQ,OAAhB,CAAwByR,SAAxB;;UAEIA,UAAUtP,kBAAV,EAAJ,EAAoC;;;;WAIlCsV,GAAF,EAAO5U,WAAP,CAAmBjB,UAAUkB,IAA7B,EA1Ba;;;UA8BT,kBAAkBxD,SAASgJ,eAA/B,EAAgD;aAC5C,MAAF,EAAUyB,QAAV,GAAqBhC,GAArB,CAAyB,WAAzB,EAAsC,IAAtC,EAA4ClL,KAAEmT,IAA9C;;;WAGGwH,cAAL,CAAoBJ,QAAQhH,KAA5B,IAAqC,KAArC;WACKoH,cAAL,CAAoBJ,QAAQ9R,KAA5B,IAAqC,KAArC;WACKkS,cAAL,CAAoBJ,QAAQsC,KAA5B,IAAqC,KAArC;;UAEI9c,KAAKgC,qBAAL,MACA/B,KAAE,KAAK4a,GAAP,EAAY1U,QAAZ,CAAqBnB,UAAUoB,IAA/B,CADJ,EAC0C;aAEtCyU,GAAF,EACGnZ,GADH,CACO1B,KAAK2B,cADZ,EAC4BwO,QAD5B,EAEGpO,oBAFH,CAEwB8C,mBAFxB;OAHF,MAOO;;;;WAIF8V,WAAL,GAAmB,EAAnB;KAvYkB;;WA2YpBrH,MA3YoB,qBA2YX;UACH,KAAKrB,OAAL,KAAiB,IAArB,EAA2B;aACpBA,OAAL,CAAasB,cAAb;;KA7YgB;;;WAmZpBkI,aAnZoB,4BAmZJ;aACPpY,QAAQ,KAAK0Z,QAAL,EAAR,CAAP;KApZkB;;WAuZpBb,kBAvZoB,+BAuZDF,UAvZC,EAuZW;WAC3B,KAAKR,aAAL,EAAF,EAAwBpO,QAAxB,CAAoCiN,YAApC,SAAoD2B,UAApD;KAxZkB;;WA2ZpBR,aA3ZoB,4BA2ZJ;WACTX,GAAL,GAAW,KAAKA,GAAL,IAAY5a,KAAE,KAAKuD,MAAL,CAAYwZ,QAAd,EAAwB,CAAxB,CAAvB;aACO,KAAKnC,GAAZ;KA7ZkB;;WAgapBiB,UAhaoB,yBAgaP;UACLmB,OAAOhd,KAAE,KAAKub,aAAL,EAAF,CAAb;WACK0B,iBAAL,CAAuBD,KAAKja,IAAL,CAAU8B,SAASqY,aAAnB,CAAvB,EAA0D,KAAKJ,QAAL,EAA1D;WACK9W,WAAL,CAAoBjB,UAAUoB,IAA9B,SAAsCpB,UAAUkB,IAAhD;KAnakB;;WAsapBgX,iBAtaoB,8BAsaFvW,QAtaE,EAsaQyW,OAtaR,EAsaiB;UAC7BC,OAAO,KAAK7Z,MAAL,CAAY6Z,IAAzB;;UACI,OAAOD,OAAP,KAAmB,QAAnB,KAAgCA,QAAQ9Z,QAAR,IAAoB8Z,QAAQpM,MAA5D,CAAJ,EAAyE;;YAEnEqM,IAAJ,EAAU;cACJ,CAACpd,KAAEmd,OAAF,EAAWxX,MAAX,GAAoB9E,EAApB,CAAuB6F,QAAvB,CAAL,EAAuC;qBAC5B2W,KAAT,GAAiBC,MAAjB,CAAwBH,OAAxB;;SAFJ,MAIO;mBACII,IAAT,CAAcvd,KAAEmd,OAAF,EAAWI,IAAX,EAAd;;OAPJ,MASO;iBACIH,OAAO,MAAP,GAAgB,MAAzB,EAAiCD,OAAjC;;KAlbgB;;WAsbpBL,QAtboB,uBAsbT;UACLU,QAAQ,KAAK7a,OAAL,CAAaC,YAAb,CAA0B,qBAA1B,CAAZ;;UAEI,CAAC4a,KAAL,EAAY;gBACF,OAAO,KAAKja,MAAL,CAAYia,KAAnB,KAA6B,UAA7B,GACN,KAAKja,MAAL,CAAYia,KAAZ,CAAkBld,IAAlB,CAAuB,KAAKqC,OAA5B,CADM,GAEN,KAAKY,MAAL,CAAYia,KAFd;;;aAKKA,KAAP;KA/bkB;;;WAqcpBxB,cArcoB,2BAqcLnI,SArcK,EAqcM;aACjB9B,cAAc8B,UAAUzP,WAAV,EAAd,CAAP;KAtckB;;WAycpByW,aAzcoB,4BAycJ;;;UACR4C,WAAW,KAAKla,MAAL,CAAYJ,OAAZ,CAAoBua,KAApB,CAA0B,GAA1B,CAAjB;eAESC,OAAT,CAAiB,UAACxa,OAAD,EAAa;YACxBA,YAAY,OAAhB,EAAyB;eACrB,OAAKR,OAAP,EAAgBoE,EAAhB,CACE,OAAK0M,WAAL,CAAiB3O,KAAjB,CAAuByO,KADzB,EAEE,OAAKhQ,MAAL,CAAYrB,QAFd,EAGE,UAACvB,KAAD;mBAAW,OAAK0G,MAAL,CAAY1G,KAAZ,CAAX;WAHF;SADF,MAOO,IAAIwC,YAAYoX,QAAQqD,MAAxB,EAAgC;cAC/BC,UAAW1a,YAAYoX,QAAQsC,KAApB,GACf,OAAKpJ,WAAL,CAAiB3O,KAAjB,CAAuByG,UADR,GAEf,OAAKkI,WAAL,CAAiB3O,KAAjB,CAAuB+R,OAFzB;cAGMiH,WAAW3a,YAAYoX,QAAQsC,KAApB,GACf,OAAKpJ,WAAL,CAAiB3O,KAAjB,CAAuB0G,UADR,GAEf,OAAKiI,WAAL,CAAiB3O,KAAjB,CAAuBiZ,QAFzB;eAIE,OAAKpb,OAAP,EACGoE,EADH,CAEI8W,OAFJ,EAGI,OAAKta,MAAL,CAAYrB,QAHhB,EAII,UAACvB,KAAD;mBAAW,OAAK0a,MAAL,CAAY1a,KAAZ,CAAX;WAJJ,EAMGoG,EANH,CAOI+W,QAPJ,EAQI,OAAKva,MAAL,CAAYrB,QARhB,EASI,UAACvB,KAAD;mBAAW,OAAK2a,MAAL,CAAY3a,KAAZ,CAAX;WATJ;;;aAaA,OAAKgC,OAAP,EAAgBiD,OAAhB,CAAwB,QAAxB,EAAkCmB,EAAlC,CACE,eADF,EAEE;iBAAM,OAAKqI,IAAL,EAAN;SAFF;OA7BF;;UAmCI,KAAK7L,MAAL,CAAYrB,QAAhB,EAA0B;aACnBqB,MAAL,gBACK,KAAKA,MADV;mBAEa,QAFb;oBAGa;;OAJf,MAMO;aACAya,SAAL;;KAtfgB;;WA0fpBA,SA1foB,wBA0fR;UACJC,YAAY,OAAO,KAAKtb,OAAL,CAAaC,YAAb,CAA0B,qBAA1B,CAAzB;;UACI,KAAKD,OAAL,CAAaC,YAAb,CAA0B,OAA1B,KACDqb,cAAc,QADjB,EAC2B;aACpBtb,OAAL,CAAawF,YAAb,CACE,qBADF,EAEE,KAAKxF,OAAL,CAAaC,YAAb,CAA0B,OAA1B,KAAsC,EAFxC;aAIKD,OAAL,CAAawF,YAAb,CAA0B,OAA1B,EAAmC,EAAnC;;KAlgBgB;;WAsgBpBkT,MAtgBoB,mBAsgBb1a,KAtgBa,EAsgBN+T,OAtgBM,EAsgBG;UACfuG,UAAU,KAAKxH,WAAL,CAAiBjP,QAAjC;gBAEUkQ,WAAW1U,KAAEW,MAAMyQ,aAAR,EAAuBzK,IAAvB,CAA4BsU,OAA5B,CAArB;;UAEI,CAACvG,OAAL,EAAc;kBACF,IAAI,KAAKjB,WAAT,CACR9S,MAAMyQ,aADE,EAER,KAAK8J,kBAAL,EAFQ,CAAV;aAIEva,MAAMyQ,aAAR,EAAuBzK,IAAvB,CAA4BsU,OAA5B,EAAqCvG,OAArC;;;UAGE/T,KAAJ,EAAW;gBACDga,cAAR,CACEha,MAAMgH,IAAN,KAAe,SAAf,GAA2B4S,QAAQ9R,KAAnC,GAA2C8R,QAAQsC,KADrD,IAEI,IAFJ;;;UAKE7c,KAAE0U,QAAQ6G,aAAR,EAAF,EAA2BrV,QAA3B,CAAoCnB,UAAUkB,IAA9C,KACDyO,QAAQgG,WAAR,KAAwBJ,WAAWrU,IADtC,EAC4C;gBAClCyU,WAAR,GAAsBJ,WAAWrU,IAAjC;;;;mBAIWyO,QAAQ+F,QAArB;cAEQC,WAAR,GAAsBJ,WAAWrU,IAAjC;;UAEI,CAACyO,QAAQnR,MAAR,CAAe2a,KAAhB,IAAyB,CAACxJ,QAAQnR,MAAR,CAAe2a,KAAf,CAAqB7O,IAAnD,EAAyD;gBAC/CA,IAAR;;;;cAIMoL,QAAR,GAAmB9O,WAAW,YAAM;YAC9B+I,QAAQgG,WAAR,KAAwBJ,WAAWrU,IAAvC,EAA6C;kBACnCoJ,IAAR;;OAFe,EAIhBqF,QAAQnR,MAAR,CAAe2a,KAAf,CAAqB7O,IAJL,CAAnB;KAxiBkB;;WA+iBpBiM,MA/iBoB,mBA+iBb3a,KA/iBa,EA+iBN+T,OA/iBM,EA+iBG;UACfuG,UAAU,KAAKxH,WAAL,CAAiBjP,QAAjC;gBAEUkQ,WAAW1U,KAAEW,MAAMyQ,aAAR,EAAuBzK,IAAvB,CAA4BsU,OAA5B,CAArB;;UAEI,CAACvG,OAAL,EAAc;kBACF,IAAI,KAAKjB,WAAT,CACR9S,MAAMyQ,aADE,EAER,KAAK8J,kBAAL,EAFQ,CAAV;aAIEva,MAAMyQ,aAAR,EAAuBzK,IAAvB,CAA4BsU,OAA5B,EAAqCvG,OAArC;;;UAGE/T,KAAJ,EAAW;gBACDga,cAAR,CACEha,MAAMgH,IAAN,KAAe,UAAf,GAA4B4S,QAAQ9R,KAApC,GAA4C8R,QAAQsC,KADtD,IAEI,KAFJ;;;UAKEnI,QAAQ0G,oBAAR,EAAJ,EAAoC;;;;mBAIvB1G,QAAQ+F,QAArB;cAEQC,WAAR,GAAsBJ,WAAWoC,GAAjC;;UAEI,CAAChI,QAAQnR,MAAR,CAAe2a,KAAhB,IAAyB,CAACxJ,QAAQnR,MAAR,CAAe2a,KAAf,CAAqB9O,IAAnD,EAAyD;gBAC/CA,IAAR;;;;cAIMqL,QAAR,GAAmB9O,WAAW,YAAM;YAC9B+I,QAAQgG,WAAR,KAAwBJ,WAAWoC,GAAvC,EAA4C;kBAClCtN,IAAR;;OAFe,EAIhBsF,QAAQnR,MAAR,CAAe2a,KAAf,CAAqB9O,IAJL,CAAnB;KA/kBkB;;WAslBpBgM,oBAtlBoB,mCAslBG;WAChB,IAAMjY,OAAX,IAAsB,KAAKwX,cAA3B,EAA2C;YACrC,KAAKA,cAAL,CAAoBxX,OAApB,CAAJ,EAAkC;iBACzB,IAAP;;;;aAIG,KAAP;KA7lBkB;;WAgmBpBqG,UAhmBoB,uBAgmBTjG,MAhmBS,EAgmBD;4BAEZ,KAAKkQ,WAAL,CAAiB3K,OADtB,EAEK9I,KAAE,KAAK2C,OAAP,EAAgBgE,IAAhB,EAFL,EAGKpD,MAHL;;UAMI,OAAOA,OAAO2a,KAAd,KAAwB,QAA5B,EAAsC;eAC7BA,KAAP,GAAe;gBACN3a,OAAO2a,KADD;gBAEN3a,OAAO2a;SAFhB;;;UAME,OAAO3a,OAAOia,KAAd,KAAwB,QAA5B,EAAsC;eAC7BA,KAAP,GAAeja,OAAOia,KAAP,CAAand,QAAb,EAAf;;;UAGE,OAAOkD,OAAO4Z,OAAd,KAA0B,QAA9B,EAAwC;eAC/BA,OAAP,GAAiB5Z,OAAO4Z,OAAP,CAAe9c,QAAf,EAAjB;;;WAGG8K,eAAL,CACE7G,IADF,EAEEf,MAFF,EAGE,KAAKkQ,WAAL,CAAiB1K,WAHnB;aAMOxF,MAAP;KA5nBkB;;WA+nBpB2X,kBA/nBoB,iCA+nBC;UACb3X,SAAS,EAAf;;UAEI,KAAKA,MAAT,EAAiB;aACV,IAAM4a,GAAX,IAAkB,KAAK5a,MAAvB,EAA+B;cACzB,KAAKkQ,WAAL,CAAiB3K,OAAjB,CAAyBqV,GAAzB,MAAkC,KAAK5a,MAAL,CAAY4a,GAAZ,CAAtC,EAAwD;mBAC/CA,GAAP,IAAc,KAAK5a,MAAL,CAAY4a,GAAZ,CAAd;;;;;aAKC5a,MAAP;KA1oBkB;;WA6oBpBqZ,cA7oBoB,6BA6oBH;UACTI,OAAOhd,KAAE,KAAKub,aAAL,EAAF,CAAb;UACM6C,WAAWpB,KAAKhN,IAAL,CAAU,OAAV,EAAmBzP,KAAnB,CAAyB8Z,kBAAzB,CAAjB;;UACI+D,aAAa,IAAb,IAAqBA,SAASpb,MAAT,GAAkB,CAA3C,EAA8C;aACvCgD,WAAL,CAAiBoY,SAASC,IAAT,CAAc,EAAd,CAAjB;;KAjpBgB;;WAqpBpB9B,4BArpBoB,yCAqpBS5V,IArpBT,EAqpBe;WAC5BiW,cAAL;;WACKX,kBAAL,CAAwB,KAAKD,cAAL,CAAoBrV,KAAKkN,SAAzB,CAAxB;KAvpBkB;;WA0pBpB2I,cA1pBoB,6BA0pBH;UACT5B,MAAsB,KAAKW,aAAL,EAA5B;UACM+C,sBAAsB,KAAK/a,MAAL,CAAYuY,SAAxC;;UACIlB,IAAIhY,YAAJ,CAAiB,aAAjB,MAAoC,IAAxC,EAA8C;;;;WAG5CgY,GAAF,EAAO5U,WAAP,CAAmBjB,UAAUoB,IAA7B;WACK5C,MAAL,CAAYuY,SAAZ,GAAwB,KAAxB;WACK1M,IAAL;WACKC,IAAL;WACK9L,MAAL,CAAYuY,SAAZ,GAAwBwC,mBAAxB;KApqBkB;;;YAyqBb9X,gBAzqBa,6BAyqBIjD,MAzqBJ,EAyqBY;aACvB,KAAKkD,IAAL,CAAU,YAAY;YACvBE,OAAY3G,KAAE,IAAF,EAAQ2G,IAAR,CAAanC,QAAb,CAAhB;;YACM+E,UAAU,OAAOhG,MAAP,KAAkB,QAAlB,IAA8BA,MAA9C;;YAEI,CAACoD,IAAD,IAAS,eAAezC,IAAf,CAAoBX,MAApB,CAAb,EAA0C;;;;YAItC,CAACoD,IAAL,EAAW;iBACF,IAAIwT,OAAJ,CAAY,IAAZ,EAAkB5Q,OAAlB,CAAP;eACE,IAAF,EAAQ5C,IAAR,CAAanC,QAAb,EAAuBmC,IAAvB;;;YAGE,OAAOpD,MAAP,KAAkB,QAAtB,EAAgC;cAC1B,OAAOoD,KAAKpD,MAAL,CAAP,KAAwB,WAA5B,EAAyC;kBACjC,IAAIY,KAAJ,wBAA8BZ,MAA9B,QAAN;;;eAEGA,MAAL;;OAjBG,CAAP;KA1qBkB;;;;0BAkIC;eACZgB,OAAP;;;;0BAGmB;eACZuE,OAAP;;;;0BAGgB;eACTxE,IAAP;;;;0BAGoB;eACbE,QAAP;;;;0BAGiB;eACVM,KAAP;;;;0BAGqB;eACdL,SAAP;;;;0BAGuB;eAChBsE,WAAP;;;;;;;;;;;;OA6iBFlH,EAAF,CAAKyC,IAAL,IAAyB6V,QAAQ3T,gBAAjC;OACE3E,EAAF,CAAKyC,IAAL,EAAW4C,WAAX,GAAyBiT,OAAzB;;OACEtY,EAAF,CAAKyC,IAAL,EAAW6C,UAAX,GAAyB,YAAY;SACjCtF,EAAF,CAAKyC,IAAL,IAAaK,kBAAb;WACOwV,QAAQ3T,gBAAf;GAFF;;SAKO2T,OAAP;CA/sBc,CAitBbna,CAjtBa,EAitBV2S,MAjtBU,CAAhB;;ACRA;;;;;;;AAOA,IAAM4L,UAAW,UAACve,IAAD,EAAO;;;;;;MAShBsE,OAAsB,SAA5B;MACMC,UAAsB,cAA5B;MACMC,WAAsB,YAA5B;MACMC,kBAA0BD,QAAhC;MACMG,qBAAsB3E,KAAE6B,EAAF,CAAKyC,IAAL,CAA5B;MACM8V,eAAsB,YAA5B;MACMC,qBAAsB,IAAIpW,MAAJ,aAAqBmW,YAArB,WAAyC,GAAzC,CAA5B;MAEMtR,uBACDqR,QAAQrR,OADP;eAEQ,OAFR;aAGQ,OAHR;aAIQ,EAJR;cAKQ,yCACA,2BADA,GAEA,kCAFA,GAGA;IARd;MAWMC,2BACDoR,QAAQpR,WADP;aAEM;IAFZ;MAKMhE,YAAY;UACT,MADS;UAET;GAFT;MAKMF,WAAW;WACL,iBADK;aAEL;GAFZ;MAKMC,QAAQ;mBACQL,SADR;uBAEUA,SAFV;mBAGQA,SAHR;qBAISA,SAJT;2BAKYA,SALZ;qBAMSA,SANT;yBAOWA,SAPX;2BAQYA,SARZ;+BAScA,SATd;+BAUcA;;;;;;;GAV5B;;MAoBM8Z,OA/DgB;;;;;;;;;;;;WAmGpB/C,aAnGoB,4BAmGJ;aACP,KAAKsB,QAAL,MAAmB,KAAK0B,WAAL,EAA1B;KApGkB;;WAuGpBvC,kBAvGoB,+BAuGDF,UAvGC,EAuGW;WAC3B,KAAKR,aAAL,EAAF,EAAwBpO,QAAxB,CAAoCiN,YAApC,SAAoD2B,UAApD;KAxGkB;;WA2GpBR,aA3GoB,4BA2GJ;WACTX,GAAL,GAAW,KAAKA,GAAL,IAAY5a,KAAE,KAAKuD,MAAL,CAAYwZ,QAAd,EAAwB,CAAxB,CAAvB;aACO,KAAKnC,GAAZ;KA7GkB;;WAgHpBiB,UAhHoB,yBAgHP;UACLmB,OAAOhd,KAAE,KAAKub,aAAL,EAAF,CAAb,CADW;;WAIN0B,iBAAL,CAAuBD,KAAKja,IAAL,CAAU8B,SAAS4Z,KAAnB,CAAvB,EAAkD,KAAK3B,QAAL,EAAlD;;UACIK,UAAU,KAAKqB,WAAL,EAAd;;UACI,OAAOrB,OAAP,KAAmB,UAAvB,EAAmC;kBACvBA,QAAQ7c,IAAR,CAAa,KAAKqC,OAAlB,CAAV;;;WAEGsa,iBAAL,CAAuBD,KAAKja,IAAL,CAAU8B,SAAS6Z,OAAnB,CAAvB,EAAoDvB,OAApD;WAEKnX,WAAL,CAAoBjB,UAAUoB,IAA9B,SAAsCpB,UAAUkB,IAAhD;KA3HkB;;;WAgIpBuY,WAhIoB,0BAgIN;aACL,KAAK7b,OAAL,CAAaC,YAAb,CAA0B,cAA1B,KACF,KAAKW,MAAL,CAAY4Z,OADjB;KAjIkB;;WAqIpBP,cArIoB,6BAqIH;UACTI,OAAOhd,KAAE,KAAKub,aAAL,EAAF,CAAb;UACM6C,WAAWpB,KAAKhN,IAAL,CAAU,OAAV,EAAmBzP,KAAnB,CAAyB8Z,kBAAzB,CAAjB;;UACI+D,aAAa,IAAb,IAAqBA,SAASpb,MAAT,GAAkB,CAA3C,EAA8C;aACvCgD,WAAL,CAAiBoY,SAASC,IAAT,CAAc,EAAd,CAAjB;;KAzIgB;;;YAgJb7X,gBAhJa,6BAgJIjD,MAhJJ,EAgJY;aACvB,KAAKkD,IAAL,CAAU,YAAY;YACvBE,OAAY3G,KAAE,IAAF,EAAQ2G,IAAR,CAAanC,QAAb,CAAhB;;YACM+E,UAAU,OAAOhG,MAAP,KAAkB,QAAlB,GAA6BA,MAA7B,GAAsC,IAAtD;;YAEI,CAACoD,IAAD,IAAS,eAAezC,IAAf,CAAoBX,MAApB,CAAb,EAA0C;;;;YAItC,CAACoD,IAAL,EAAW;iBACF,IAAI4X,OAAJ,CAAY,IAAZ,EAAkBhV,OAAlB,CAAP;eACE,IAAF,EAAQ5C,IAAR,CAAanC,QAAb,EAAuBmC,IAAvB;;;YAGE,OAAOpD,MAAP,KAAkB,QAAtB,EAAgC;cAC1B,OAAOoD,KAAKpD,MAAL,CAAP,KAAwB,WAA5B,EAAyC;kBACjC,IAAIY,KAAJ,wBAA8BZ,MAA9B,QAAN;;;eAEGA,MAAL;;OAjBG,CAAP;KAjJkB;;;;;0BAoEC;eACZgB,OAAP;;;;0BAGmB;eACZuE,OAAP;;;;0BAGgB;eACTxE,IAAP;;;;0BAGoB;eACbE,QAAP;;;;0BAGiB;eACVM,KAAP;;;;0BAGqB;eACdL,SAAP;;;;0BAGuB;eAChBsE,WAAP;;;;IA9BkBoR,OA/DA;;;;;;;;OA+KpBtY,EAAF,CAAKyC,IAAL,IAAyBia,QAAQ/X,gBAAjC;OACE3E,EAAF,CAAKyC,IAAL,EAAW4C,WAAX,GAAyBqX,OAAzB;;OACE1c,EAAF,CAAKyC,IAAL,EAAW6C,UAAX,GAAyB,YAAY;SACjCtF,EAAF,CAAKyC,IAAL,IAAaK,kBAAb;WACO4Z,QAAQ/X,gBAAf;GAFF;;SAKO+X,OAAP;CAtLc,CAwLbve,CAxLa,CAAhB;;ACPA;;;;;;;AAOA,IAAM2e,YAAa,UAAC3e,IAAD,EAAO;;;;;;MASlBsE,OAAqB,WAA3B;MACMC,UAAqB,cAA3B;MACMC,WAAqB,cAA3B;MACMC,kBAAyBD,QAA/B;MACME,eAAqB,WAA3B;MACMC,qBAAqB3E,KAAE6B,EAAF,CAAKyC,IAAL,CAA3B;MAEMwE,UAAU;YACL,EADK;YAEL,MAFK;YAGL;GAHX;MAMMC,cAAc;YACT,QADS;YAET,QAFS;YAGT;GAHX;MAMMjE,QAAQ;2BACeL,SADf;uBAEaA,SAFb;4BAGWA,SAAvB,GAAmCC;GAHrC;MAMMK,YAAY;mBACA,eADA;mBAEA,eAFA;YAGA;GAHlB;MAMMF,WAAW;cACG,qBADH;YAEG,SAFH;oBAGG,mBAHH;eAIG,WAJH;eAKG,WALH;gBAMG,kBANH;cAOG,WAPH;oBAQG,gBARH;qBASG;GATpB;MAYM+Z,eAAe;YACR,QADQ;cAER;;;;;;;GAFb;;MAYMD,SAhEkB;;;uBAkEVhc,OAAZ,EAAqBY,MAArB,EAA6B;;;WACtByB,QAAL,GAAsBrC,OAAtB;WACKkc,cAAL,GAAsBlc,QAAQiJ,OAAR,KAAoB,MAApB,GAA6BxK,MAA7B,GAAsCuB,OAA5D;WACK4G,OAAL,GAAsB,KAAKC,UAAL,CAAgBjG,MAAhB,CAAtB;WACKub,SAAL,GAAyB,KAAKvV,OAAL,CAAa3I,MAAhB,SAA0BiE,SAASka,SAAnC,UACG,KAAKxV,OAAL,CAAa3I,MADhB,SAC0BiE,SAASma,UADnC,WAEG,KAAKzV,OAAL,CAAa3I,MAFhB,SAE0BiE,SAASoa,cAFnC,CAAtB;WAGKC,QAAL,GAAsB,EAAtB;WACKC,QAAL,GAAsB,EAAtB;WACKC,aAAL,GAAsB,IAAtB;WACKC,aAAL,GAAsB,CAAtB;WAEE,KAAKR,cAAP,EAAuB9X,EAAvB,CAA0BjC,MAAMwa,MAAhC,EAAwC,UAAC3e,KAAD;eAAW,MAAK4e,QAAL,CAAc5e,KAAd,CAAX;OAAxC;WAEK6e,OAAL;;WACKD,QAAL;KAjFoB;;;;;;WAkGtBC,OAlGsB,sBAkGZ;;;UACFC,aAAa,KAAKZ,cAAL,KAAwB,KAAKA,cAAL,CAAoBzd,MAA5C,GACjBwd,aAAac,QADI,GACOd,aAAae,MADvC;UAGMC,eAAe,KAAKrW,OAAL,CAAasW,MAAb,KAAwB,MAAxB,GACnBJ,UADmB,GACN,KAAKlW,OAAL,CAAasW,MAD5B;UAGMC,aAAaF,iBAAiBhB,aAAac,QAA9B,GACjB,KAAKK,aAAL,EADiB,GACM,CADzB;WAGKb,QAAL,GAAgB,EAAhB;WACKC,QAAL,GAAgB,EAAhB;WAEKE,aAAL,GAAqB,KAAKW,gBAAL,EAArB;UAEMC,UAAUjgB,KAAE8L,SAAF,CAAY9L,KAAE,KAAK8e,SAAP,CAAZ,CAAhB;cAGGoB,GADH,CACO,UAACvd,OAAD,EAAa;YACZ/B,MAAJ;YACMuf,iBAAiBpgB,KAAK2F,sBAAL,CAA4B/C,OAA5B,CAAvB;;YAEIwd,cAAJ,EAAoB;mBACTngB,KAAEmgB,cAAF,EAAkB,CAAlB,CAAT;;;YAGEvf,MAAJ,EAAY;cACJwf,YAAYxf,OAAO4P,qBAAP,EAAlB;;cACI4P,UAAUpG,KAAV,IAAmBoG,UAAUC,MAAjC,EAAyC;;mBAEhC,CACLrgB,KAAEY,MAAF,EAAUgf,YAAV,IAA0BU,GAA1B,GAAgCR,UAD3B,EAELK,cAFK,CAAP;;;;eAMG,IAAP;OAnBJ,EAqBGpR,MArBH,CAqBU,UAACwR,IAAD;eAAWA,IAAX;OArBV,EAsBGC,IAtBH,CAsBQ,UAACC,CAAD,EAAIC,CAAJ;eAAaD,EAAE,CAAF,IAAOC,EAAE,CAAF,CAApB;OAtBR,EAuBG/C,OAvBH,CAuBW,UAAC4C,IAAD,EAAU;eACZrB,QAAL,CAAclQ,IAAd,CAAmBuR,KAAK,CAAL,CAAnB;;eACKpB,QAAL,CAAcnQ,IAAd,CAAmBuR,KAAK,CAAL,CAAnB;OAzBJ;KAnHoB;;WAgJtB/a,OAhJsB,sBAgJZ;WACNC,UAAF,CAAa,KAAKT,QAAlB,EAA4BR,QAA5B;WACE,KAAKqa,cAAP,EAAuB3T,GAAvB,CAA2BzG,SAA3B;WAEKO,QAAL,GAAsB,IAAtB;WACK6Z,cAAL,GAAsB,IAAtB;WACKtV,OAAL,GAAsB,IAAtB;WACKuV,SAAL,GAAsB,IAAtB;WACKI,QAAL,GAAsB,IAAtB;WACKC,QAAL,GAAsB,IAAtB;WACKC,aAAL,GAAsB,IAAtB;WACKC,aAAL,GAAsB,IAAtB;KA3JoB;;;WAiKtB7V,UAjKsB,uBAiKXjG,MAjKW,EAiKH;4BAEZuF,OADL,EAEKvF,MAFL;;UAKI,OAAOA,OAAO3C,MAAd,KAAyB,QAA7B,EAAuC;YACjC+N,KAAK3O,KAAEuD,OAAO3C,MAAT,EAAiBoP,IAAjB,CAAsB,IAAtB,CAAT;;YACI,CAACrB,EAAL,EAAS;eACF5O,KAAK6b,MAAL,CAAYtX,IAAZ,CAAL;eACEf,OAAO3C,MAAT,EAAiBoP,IAAjB,CAAsB,IAAtB,EAA4BrB,EAA5B;;;eAEK/N,MAAP,SAAoB+N,EAApB;;;WAGGxD,eAAL,CAAqB7G,IAArB,EAA2Bf,MAA3B,EAAmCwF,WAAnC;aAEOxF,MAAP;KAlLoB;;WAqLtBwc,aArLsB,4BAqLN;aACP,KAAKlB,cAAL,KAAwBzd,MAAxB,GACH,KAAKyd,cAAL,CAAoB8B,WADjB,GAC+B,KAAK9B,cAAL,CAAoBxH,SAD1D;KAtLoB;;WA0LtB2I,gBA1LsB,+BA0LH;aACV,KAAKnB,cAAL,CAAoBpG,YAApB,IAAoClW,KAAKqe,GAAL,CACzCne,SAAS0T,IAAT,CAAcsC,YAD2B,EAEzChW,SAASgJ,eAAT,CAAyBgN,YAFgB,CAA3C;KA3LoB;;WAiMtBoI,gBAjMsB,+BAiMH;aACV,KAAKhC,cAAL,KAAwBzd,MAAxB,GACHA,OAAO0f,WADJ,GACkB,KAAKjC,cAAL,CAAoBrO,qBAApB,GAA4C6P,MADrE;KAlMoB;;WAsMtBd,QAtMsB,uBAsMX;UACHlI,YAAe,KAAK0I,aAAL,KAAuB,KAAKxW,OAAL,CAAa8K,MAAzD;;UACMoE,eAAe,KAAKuH,gBAAL,EAArB;;UACMe,YAAe,KAAKxX,OAAL,CAAa8K,MAAb,GACjBoE,YADiB,GAEjB,KAAKoI,gBAAL,EAFJ;;UAII,KAAKxB,aAAL,KAAuB5G,YAA3B,EAAyC;aAClC+G,OAAL;;;UAGEnI,aAAa0J,SAAjB,EAA4B;YACpBngB,SAAS,KAAKue,QAAL,CAAc,KAAKA,QAAL,CAAcnc,MAAd,GAAuB,CAArC,CAAf;;YAEI,KAAKoc,aAAL,KAAuBxe,MAA3B,EAAmC;eAC5BogB,SAAL,CAAepgB,MAAf;;;;;;UAKA,KAAKwe,aAAL,IAAsB/H,YAAY,KAAK6H,QAAL,CAAc,CAAd,CAAlC,IAAsD,KAAKA,QAAL,CAAc,CAAd,IAAmB,CAA7E,EAAgF;aACzEE,aAAL,GAAqB,IAArB;;aACK6B,MAAL;;;;;WAIG,IAAIpS,IAAI,KAAKqQ,QAAL,CAAclc,MAA3B,EAAmC6L,GAAnC,GAAyC;YACjCqS,iBAAiB,KAAK9B,aAAL,KAAuB,KAAKD,QAAL,CAActQ,CAAd,CAAvB,IAChBwI,aAAa,KAAK6H,QAAL,CAAcrQ,CAAd,CADG,KAEf,OAAO,KAAKqQ,QAAL,CAAcrQ,IAAI,CAAlB,CAAP,KAAgC,WAAhC,IACAwI,YAAY,KAAK6H,QAAL,CAAcrQ,IAAI,CAAlB,CAHG,CAAvB;;YAKIqS,cAAJ,EAAoB;eACbF,SAAL,CAAe,KAAK7B,QAAL,CAActQ,CAAd,CAAf;;;KAvOgB;;WA4OtBmS,SA5OsB,sBA4OZpgB,MA5OY,EA4OJ;WACXwe,aAAL,GAAqBxe,MAArB;;WAEKqgB,MAAL;;UAEIE,UAAU,KAAKrC,SAAL,CAAepB,KAAf,CAAqB,GAArB,CAAd,CALgB;;;gBAOFyD,QAAQjB,GAAR,CAAY,UAAChe,QAAD,EAAc;eAC5BA,QAAH,uBAA4BtB,MAA5B,aACGsB,QADH,gBACqBtB,MADrB,SAAP;OADY,CAAd;UAKMwgB,QAAQphB,KAAEmhB,QAAQ9C,IAAR,CAAa,GAAb,CAAF,CAAd;;UAEI+C,MAAMlb,QAAN,CAAenB,UAAUsc,aAAzB,CAAJ,EAA6C;cACrCzb,OAAN,CAAcf,SAASyc,QAAvB,EAAiCve,IAAjC,CAAsC8B,SAAS0c,eAA/C,EAAgEpU,QAAhE,CAAyEpI,UAAU8C,MAAnF;cACMsF,QAAN,CAAepI,UAAU8C,MAAzB;OAFF,MAGO;;cAECsF,QAAN,CAAepI,UAAU8C,MAAzB,EAFK;;;cAKC2Z,OAAN,CAAc3c,SAAS4c,cAAvB,EAAuCvX,IAAvC,CAA+CrF,SAASka,SAAxD,UAAsEla,SAASma,UAA/E,EAA6F7R,QAA7F,CAAsGpI,UAAU8C,MAAhH,EALK;;cAOC2Z,OAAN,CAAc3c,SAAS4c,cAAvB,EAAuCvX,IAAvC,CAA4CrF,SAAS6c,SAArD,EAAgExU,QAAhE,CAAyErI,SAASka,SAAlF,EAA6F5R,QAA7F,CAAsGpI,UAAU8C,MAAhH;;;WAGA,KAAKgX,cAAP,EAAuB1b,OAAvB,CAA+B2B,MAAM6c,QAArC,EAA+C;uBAC9B/gB;OADjB;KAvQoB;;WA4QtBqgB,MA5QsB,qBA4Qb;WACL,KAAKnC,SAAP,EAAkB/P,MAAlB,CAAyBlK,SAASgD,MAAlC,EAA0C7B,WAA1C,CAAsDjB,UAAU8C,MAAhE;KA7QoB;;;cAmRfrB,gBAnRe,6BAmREjD,MAnRF,EAmRU;aACvB,KAAKkD,IAAL,CAAU,YAAY;YACvBE,OAAY3G,KAAE,IAAF,EAAQ2G,IAAR,CAAanC,QAAb,CAAhB;;YACM+E,UAAU,OAAOhG,MAAP,KAAkB,QAAlB,IAA8BA,MAA9C;;YAEI,CAACoD,IAAL,EAAW;iBACF,IAAIgY,SAAJ,CAAc,IAAd,EAAoBpV,OAApB,CAAP;eACE,IAAF,EAAQ5C,IAAR,CAAanC,QAAb,EAAuBmC,IAAvB;;;YAGE,OAAOpD,MAAP,KAAkB,QAAtB,EAAgC;cAC1B,OAAOoD,KAAKpD,MAAL,CAAP,KAAwB,WAA5B,EAAyC;kBACjC,IAAIY,KAAJ,wBAA8BZ,MAA9B,QAAN;;;eAEGA,MAAL;;OAbG,CAAP;KApRoB;;;;0BAuFD;eACZgB,OAAP;;;;0BAGmB;eACZuE,OAAP;;;;;;;;;;;;OAoNF1H,MAAF,EAAU2F,EAAV,CAAajC,MAAMsJ,aAAnB,EAAkC,YAAM;QAChCwT,aAAa5hB,KAAE8L,SAAF,CAAY9L,KAAE6E,SAASgd,QAAX,CAAZ,CAAnB;;SAEK,IAAIhT,IAAI+S,WAAW5e,MAAxB,EAAgC6L,GAAhC,GAAsC;UAC9BiT,OAAO9hB,KAAE4hB,WAAW/S,CAAX,CAAF,CAAb;;gBACUrI,gBAAV,CAA2BlG,IAA3B,CAAgCwhB,IAAhC,EAAsCA,KAAKnb,IAAL,EAAtC;;GALJ;;;;;;;OAgBE9E,EAAF,CAAKyC,IAAL,IAAyBqa,UAAUnY,gBAAnC;OACE3E,EAAF,CAAKyC,IAAL,EAAW4C,WAAX,GAAyByX,SAAzB;;OACE9c,EAAF,CAAKyC,IAAL,EAAW6C,UAAX,GAAyB,YAAY;SACjCtF,EAAF,CAAKyC,IAAL,IAAaK,kBAAb;WACOga,UAAUnY,gBAAjB;GAFF;;SAKOmY,SAAP;CAvUgB,CAyUf3e,CAzUe,CAAlB;;ACPA;;;;;;;AAOA,IAAM+hB,MAAO,UAAC/hB,IAAD,EAAO;;;;;;MASZsE,OAAsB,KAA5B;MACMC,UAAsB,cAA5B;MACMC,WAAsB,QAA5B;MACMC,kBAA0BD,QAAhC;MACME,eAAsB,WAA5B;MACMC,qBAAsB3E,KAAE6B,EAAF,CAAKyC,IAAL,CAA5B;MACMM,sBAAsB,GAA5B;MAEME,QAAQ;mBACYL,SADZ;uBAEcA,SAFd;mBAGYA,SAHZ;qBAIaA,SAJb;8BAKaA,SAAzB,GAAqCC;GALvC;MAQMK,YAAY;mBACA,eADA;YAEA,QAFA;cAGA,UAHA;UAIA,MAJA;UAKA;GALlB;MAQMF,WAAW;cACS,WADT;oBAES,mBAFT;YAGS,SAHT;eAIS,gBAJT;iBAKS,iEALT;qBAMS,kBANT;2BAOS;;;;;;;GAP1B;;MAiBMkd,GAlDY;;;iBAoDJpf,OAAZ,EAAqB;WACdqC,QAAL,GAAgBrC,OAAhB;KArDc;;;;;;WAkEhB0M,IAlEgB,mBAkET;;;UACD,KAAKrK,QAAL,CAAc6P,UAAd,IACA,KAAK7P,QAAL,CAAc6P,UAAd,CAAyBxR,QAAzB,KAAsC2T,KAAKC,YAD3C,IAEAjX,KAAE,KAAKgF,QAAP,EAAiBkB,QAAjB,CAA0BnB,UAAU8C,MAApC,CAFA,IAGA7H,KAAE,KAAKgF,QAAP,EAAiBkB,QAAjB,CAA0BnB,UAAUuN,QAApC,CAHJ,EAGmD;;;;UAI/C1R,MAAJ;UACIohB,QAAJ;UACMC,cAAcjiB,KAAE,KAAKgF,QAAP,EAAiBY,OAAjB,CAAyBf,SAAS4c,cAAlC,EAAkD,CAAlD,CAApB;UACMvf,WAAcnC,KAAK2F,sBAAL,CAA4B,KAAKV,QAAjC,CAApB;;UAEIid,WAAJ,EAAiB;YACTC,eAAeD,YAAYE,QAAZ,KAAyB,IAAzB,GAAgCtd,SAASud,SAAzC,GAAqDvd,SAASgD,MAAnF;mBACW7H,KAAE8L,SAAF,CAAY9L,KAAEiiB,WAAF,EAAelf,IAAf,CAAoBmf,YAApB,CAAZ,CAAX;mBACWF,SAASA,SAAShf,MAAT,GAAkB,CAA3B,CAAX;;;UAGI4R,YAAY5U,KAAE8E,KAAF,CAAQA,MAAMyL,IAAd,EAAoB;uBACrB,KAAKvL;OADJ,CAAlB;UAIM0N,YAAY1S,KAAE8E,KAAF,CAAQA,MAAMmB,IAAd,EAAoB;uBACrB+b;OADC,CAAlB;;UAIIA,QAAJ,EAAc;aACVA,QAAF,EAAY7e,OAAZ,CAAoByR,SAApB;;;WAGA,KAAK5P,QAAP,EAAiB7B,OAAjB,CAAyBuP,SAAzB;;UAEIA,UAAUpN,kBAAV,MACDsP,UAAUtP,kBAAV,EADH,EACmC;;;;UAI/BpD,QAAJ,EAAc;iBACHlC,KAAEkC,QAAF,EAAY,CAAZ,CAAT;;;WAGG8e,SAAL,CACE,KAAKhc,QADP,EAEEid,WAFF;;UAKM/R,WAAW,SAAXA,QAAW,GAAM;YACfmS,cAAcriB,KAAE8E,KAAF,CAAQA,MAAM4L,MAAd,EAAsB;yBACzB,MAAK1L;SADF,CAApB;YAIMuS,aAAavX,KAAE8E,KAAF,CAAQA,MAAMqL,KAAd,EAAqB;yBACvB6R;SADE,CAAnB;aAIEA,QAAF,EAAY7e,OAAZ,CAAoBkf,WAApB;aACE,MAAKrd,QAAP,EAAiB7B,OAAjB,CAAyBoU,UAAzB;OAVF;;UAaI3W,MAAJ,EAAY;aACLogB,SAAL,CAAepgB,MAAf,EAAuBA,OAAOiU,UAA9B,EAA0C3E,QAA1C;OADF,MAEO;;;KAhIO;;WAqIhB1K,OArIgB,sBAqIN;WACNC,UAAF,CAAa,KAAKT,QAAlB,EAA4BR,QAA5B;WACKQ,QAAL,GAAgB,IAAhB;KAvIc;;;WA6IhBgc,SA7IgB,sBA6INre,OA7IM,EA6IGuZ,SA7IH,EA6IcnE,QA7Id,EA6IwB;;;UAClCuK,cAAJ;;UACIpG,UAAUiG,QAAV,KAAuB,IAA3B,EAAiC;yBACdniB,KAAEkc,SAAF,EAAanZ,IAAb,CAAkB8B,SAASud,SAA3B,CAAjB;OADF,MAEO;yBACYpiB,KAAEkc,SAAF,EAAahP,QAAb,CAAsBrI,SAASgD,MAA/B,CAAjB;;;UAGI0a,SAAkBD,eAAe,CAAf,CAAxB;UACM3R,kBAAkBoH,YACnBhY,KAAKgC,qBAAL,EADmB,IAElBwgB,UAAUviB,KAAEuiB,MAAF,EAAUrc,QAAV,CAAmBnB,UAAUoB,IAA7B,CAFhB;;UAIM+J,WAAW,SAAXA,QAAW;eAAM,OAAKsS,mBAAL,CACrB7f,OADqB,EAErB4f,MAFqB,EAGrBxK,QAHqB,CAAN;OAAjB;;UAMIwK,UAAU5R,eAAd,EAA+B;aAC3B4R,MAAF,EACG9gB,GADH,CACO1B,KAAK2B,cADZ,EAC4BwO,QAD5B,EAEGpO,oBAFH,CAEwB8C,mBAFxB;OADF,MAIO;;;KApKO;;WAyKhB4d,mBAzKgB,gCAyKI7f,OAzKJ,EAyKa4f,MAzKb,EAyKqBxK,QAzKrB,EAyK+B;UACzCwK,MAAJ,EAAY;aACRA,MAAF,EAAUvc,WAAV,CAAyBjB,UAAUkB,IAAnC,SAA2ClB,UAAU8C,MAArD;YAEM4a,gBAAgBziB,KAAEuiB,OAAO1N,UAAT,EAAqB9R,IAArB,CACpB8B,SAAS6d,qBADW,EAEpB,CAFoB,CAAtB;;YAIID,aAAJ,EAAmB;eACfA,aAAF,EAAiBzc,WAAjB,CAA6BjB,UAAU8C,MAAvC;;;YAGE0a,OAAO3f,YAAP,CAAoB,MAApB,MAAgC,KAApC,EAA2C;iBAClCuF,YAAP,CAAoB,eAApB,EAAqC,KAArC;;;;WAIFxF,OAAF,EAAWwK,QAAX,CAAoBpI,UAAU8C,MAA9B;;UACIlF,QAAQC,YAAR,CAAqB,MAArB,MAAiC,KAArC,EAA4C;gBAClCuF,YAAR,CAAqB,eAArB,EAAsC,IAAtC;;;WAGG0F,MAAL,CAAYlL,OAAZ;WACEA,OAAF,EAAWwK,QAAX,CAAoBpI,UAAUkB,IAA9B;;UAEItD,QAAQkS,UAAR,IACA7U,KAAE2C,QAAQkS,UAAV,EAAsB3O,QAAtB,CAA+BnB,UAAU4d,aAAzC,CADJ,EAC6D;YAErDC,kBAAkB5iB,KAAE2C,OAAF,EAAWiD,OAAX,CAAmBf,SAASyc,QAA5B,EAAsC,CAAtC,CAAxB;;YACIsB,eAAJ,EAAqB;eACjBA,eAAF,EAAmB7f,IAAnB,CAAwB8B,SAAS0c,eAAjC,EAAkDpU,QAAlD,CAA2DpI,UAAU8C,MAArE;;;gBAGMM,YAAR,CAAqB,eAArB,EAAsC,IAAtC;;;UAGE4P,QAAJ,EAAc;;;KA7MA;;;QAqNTvR,gBArNS,6BAqNQjD,MArNR,EAqNgB;aACvB,KAAKkD,IAAL,CAAU,YAAY;YACrB0K,QAAQnR,KAAE,IAAF,CAAd;YACI2G,OAAUwK,MAAMxK,IAAN,CAAWnC,QAAX,CAAd;;YAEI,CAACmC,IAAL,EAAW;iBACF,IAAIob,GAAJ,CAAQ,IAAR,CAAP;gBACMpb,IAAN,CAAWnC,QAAX,EAAqBmC,IAArB;;;YAGE,OAAOpD,MAAP,KAAkB,QAAtB,EAAgC;cAC1B,OAAOoD,KAAKpD,MAAL,CAAP,KAAwB,WAA5B,EAAyC;kBACjC,IAAIY,KAAJ,wBAA8BZ,MAA9B,QAAN;;;eAEGA,MAAL;;OAbG,CAAP;KAtNc;;;;0BA2DK;eACZgB,OAAP;;;;;;;;;;;;OAqLF9B,QAAF,EACGsE,EADH,CACMjC,MAAMkC,cADZ,EAC4BnC,SAAS2C,WADrC,EACkD,UAAU7G,KAAV,EAAiB;UACzDmG,cAAN;;QACIN,gBAAJ,CAAqBlG,IAArB,CAA0BN,KAAE,IAAF,CAA1B,EAAmC,MAAnC;GAHJ;;;;;;;OAaE6B,EAAF,CAAKyC,IAAL,IAAyByd,IAAIvb,gBAA7B;OACE3E,EAAF,CAAKyC,IAAL,EAAW4C,WAAX,GAAyB6a,GAAzB;;OACElgB,EAAF,CAAKyC,IAAL,EAAW6C,UAAX,GAAyB,YAAY;SACjCtF,EAAF,CAAKyC,IAAL,IAAaK,kBAAb;WACOod,IAAIvb,gBAAX;GAFF;;SAKOub,GAAP;CArQU,CAuQT/hB,CAvQS,CAAZ;;ACEA;;;;;;;AAOA,CAAC,UAACA,IAAD,EAAO;MACF,OAAOA,IAAP,KAAa,WAAjB,EAA8B;UACtB,IAAImE,KAAJ,CAAU,kGAAV,CAAN;;;MAGI0e,UAAU7iB,KAAE6B,EAAF,CAAKkP,MAAL,CAAY2M,KAAZ,CAAkB,GAAlB,EAAuB,CAAvB,EAA0BA,KAA1B,CAAgC,GAAhC,CAAhB;MACMoF,WAAW,CAAjB;MACMC,UAAW,CAAjB;MACMC,WAAW,CAAjB;MACMC,WAAW,CAAjB;MACMC,WAAW,CAAjB;;MAEIL,QAAQ,CAAR,IAAaE,OAAb,IAAwBF,QAAQ,CAAR,IAAaG,QAArC,IAAiDH,QAAQ,CAAR,MAAeC,QAAf,IAA2BD,QAAQ,CAAR,MAAeG,QAA1C,IAAsDH,QAAQ,CAAR,IAAaI,QAApH,IAAgIJ,QAAQ,CAAR,KAAcK,QAAlJ,EAA4J;UACpJ,IAAI/e,KAAJ,CAAU,8EAAV,CAAN;;CAbJ,EAeGnE,CAfH;;;;;;;;;;;;;;;;;;;;;;"}
\ No newline at end of file
+{"version":3,"file":"bootstrap.js","sources":["../../rollupPluginBabelHelpers","../../js/src/util.js","../../js/src/alert.js","../../js/src/button.js","../../js/src/carousel.js","../../js/src/collapse.js","../../js/src/dropdown.js","../../js/src/modal.js","../../js/src/tooltip.js","../../js/src/popover.js","../../js/src/scrollspy.js","../../js/src/tab.js","../../js/src/index.js"],"sourcesContent":["export { _createClass as createClass, _extends as extends, _inheritsLoose as inheritsLoose };\n\nfunction _defineProperties(target, props) {\n  for (var i = 0; i < props.length; i++) {\n    var descriptor = props[i];\n    descriptor.enumerable = descriptor.enumerable || false;\n    descriptor.configurable = true;\n    if (\"value\" in descriptor) descriptor.writable = true;\n    Object.defineProperty(target, descriptor.key, descriptor);\n  }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n  if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n  if (staticProps) _defineProperties(Constructor, staticProps);\n  return Constructor;\n}\n\nfunction _extends() {\n  _extends = Object.assign || function (target) {\n    for (var i = 1; i < arguments.length; i++) {\n      var source = arguments[i];\n\n      for (var key in source) {\n        if (Object.prototype.hasOwnProperty.call(source, key)) {\n          target[key] = source[key];\n        }\n      }\n    }\n\n    return target;\n  };\n\n  return _extends.apply(this, arguments);\n}\n\nfunction _inheritsLoose(subClass, superClass) {\n  subClass.prototype = Object.create(superClass.prototype);\n  subClass.prototype.constructor = subClass;\n  subClass.__proto__ = superClass;\n}","import $ from 'jquery'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-beta.3): util.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Util = (($) => {\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Private TransitionEnd Helpers\n   * ------------------------------------------------------------------------\n   */\n\n  let transition = false\n\n  const MAX_UID = 1000000\n\n  // shoutout AngusCroll (https://goo.gl/pxwQGp)\n  function toType(obj) {\n    return {}.toString.call(obj).match(/\\s([a-zA-Z]+)/)[1].toLowerCase()\n  }\n\n  function getSpecialTransitionEndEvent() {\n    return {\n      bindType: transition.end,\n      delegateType: transition.end,\n      handle(event) {\n        if ($(event.target).is(this)) {\n          return event.handleObj.handler.apply(this, arguments) // eslint-disable-line prefer-rest-params\n        }\n        return undefined // eslint-disable-line no-undefined\n      }\n    }\n  }\n\n  function transitionEndTest() {\n    if (window.QUnit) {\n      return false\n    }\n\n    return {\n      end: 'transitionend'\n    }\n  }\n\n  function transitionEndEmulator(duration) {\n    let called = false\n\n    $(this).one(Util.TRANSITION_END, () => {\n      called = true\n    })\n\n    setTimeout(() => {\n      if (!called) {\n        Util.triggerTransitionEnd(this)\n      }\n    }, duration)\n\n    return this\n  }\n\n  function setTransitionEndSupport() {\n    transition = transitionEndTest()\n\n    $.fn.emulateTransitionEnd = transitionEndEmulator\n\n    if (Util.supportsTransitionEnd()) {\n      $.event.special[Util.TRANSITION_END] = getSpecialTransitionEndEvent()\n    }\n  }\n\n  function escapeId(selector) {\n    // we escape IDs in case of special selectors (selector = '#myId:something')\n    // $.escapeSelector does not exist in jQuery < 3\n    selector = typeof $.escapeSelector === 'function' ? $.escapeSelector(selector).substr(1) :\n      selector.replace(/(:|\\.|\\[|\\]|,|=|@)/g, '\\\\$1')\n\n    return selector\n  }\n\n  /**\n   * --------------------------------------------------------------------------\n   * Public Util Api\n   * --------------------------------------------------------------------------\n   */\n\n  const Util = {\n\n    TRANSITION_END: 'bsTransitionEnd',\n\n    getUID(prefix) {\n      do {\n        // eslint-disable-next-line no-bitwise\n        prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n      } while (document.getElementById(prefix))\n      return prefix\n    },\n\n    getSelectorFromElement(element) {\n      let selector = element.getAttribute('data-target')\n      if (!selector || selector === '#') {\n        selector = element.getAttribute('href') || ''\n      }\n\n      // if it's an ID\n      if (selector.charAt(0) === '#') {\n        selector = escapeId(selector)\n      }\n\n      try {\n        const $selector = $(document).find(selector)\n        return $selector.length > 0 ? selector : null\n      } catch (error) {\n        return null\n      }\n    },\n\n    reflow(element) {\n      return element.offsetHeight\n    },\n\n    triggerTransitionEnd(element) {\n      $(element).trigger(transition.end)\n    },\n\n    supportsTransitionEnd() {\n      return Boolean(transition)\n    },\n\n    isElement(obj) {\n      return (obj[0] || obj).nodeType\n    },\n\n    typeCheckConfig(componentName, config, configTypes) {\n      for (const property in configTypes) {\n        if (Object.prototype.hasOwnProperty.call(configTypes, property)) {\n          const expectedTypes = configTypes[property]\n          const value         = config[property]\n          const valueType     = value && Util.isElement(value) ?\n                                'element' : toType(value)\n\n          if (!new RegExp(expectedTypes).test(valueType)) {\n            throw new Error(\n              `${componentName.toUpperCase()}: ` +\n              `Option \"${property}\" provided type \"${valueType}\" ` +\n              `but expected type \"${expectedTypes}\".`)\n          }\n        }\n      }\n    }\n  }\n\n  setTransitionEndSupport()\n\n  return Util\n\n})($)\n\nexport default Util\n","import $ from 'jquery'\nimport Util from './util'\n\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-beta.3): alert.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Alert = (($) => {\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  const NAME                = 'alert'\n  const VERSION             = '4.0.0-beta.3'\n  const DATA_KEY            = 'bs.alert'\n  const EVENT_KEY           = `.${DATA_KEY}`\n  const DATA_API_KEY        = '.data-api'\n  const JQUERY_NO_CONFLICT  = $.fn[NAME]\n  const TRANSITION_DURATION = 150\n\n  const Selector = {\n    DISMISS : '[data-dismiss=\"alert\"]'\n  }\n\n  const Event = {\n    CLOSE          : `close${EVENT_KEY}`,\n    CLOSED         : `closed${EVENT_KEY}`,\n    CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n  }\n\n  const ClassName = {\n    ALERT : 'alert',\n    FADE  : 'fade',\n    SHOW  : 'show'\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  class Alert {\n\n    constructor(element) {\n      this._element = element\n    }\n\n\n    // getters\n\n    static get VERSION() {\n      return VERSION\n    }\n\n\n    // public\n\n    close(element) {\n      element = element || this._element\n\n      const rootElement = this._getRootElement(element)\n      const customEvent = this._triggerCloseEvent(rootElement)\n\n      if (customEvent.isDefaultPrevented()) {\n        return\n      }\n\n      this._removeElement(rootElement)\n    }\n\n    dispose() {\n      $.removeData(this._element, DATA_KEY)\n      this._element = null\n    }\n\n\n    // private\n\n    _getRootElement(element) {\n      const selector = Util.getSelectorFromElement(element)\n      let parent     = false\n\n      if (selector) {\n        parent = $(selector)[0]\n      }\n\n      if (!parent) {\n        parent = $(element).closest(`.${ClassName.ALERT}`)[0]\n      }\n\n      return parent\n    }\n\n    _triggerCloseEvent(element) {\n      const closeEvent = $.Event(Event.CLOSE)\n\n      $(element).trigger(closeEvent)\n      return closeEvent\n    }\n\n    _removeElement(element) {\n      $(element).removeClass(ClassName.SHOW)\n\n      if (!Util.supportsTransitionEnd() ||\n          !$(element).hasClass(ClassName.FADE)) {\n        this._destroyElement(element)\n        return\n      }\n\n      $(element)\n        .one(Util.TRANSITION_END, (event) => this._destroyElement(element, event))\n        .emulateTransitionEnd(TRANSITION_DURATION)\n    }\n\n    _destroyElement(element) {\n      $(element)\n        .detach()\n        .trigger(Event.CLOSED)\n        .remove()\n    }\n\n\n    // static\n\n    static _jQueryInterface(config) {\n      return this.each(function () {\n        const $element = $(this)\n        let data       = $element.data(DATA_KEY)\n\n        if (!data) {\n          data = new Alert(this)\n          $element.data(DATA_KEY, data)\n        }\n\n        if (config === 'close') {\n          data[config](this)\n        }\n      })\n    }\n\n    static _handleDismiss(alertInstance) {\n      return function (event) {\n        if (event) {\n          event.preventDefault()\n        }\n\n        alertInstance.close(this)\n      }\n    }\n\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n  $(document).on(\n    Event.CLICK_DATA_API,\n    Selector.DISMISS,\n    Alert._handleDismiss(new Alert())\n  )\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $.fn[NAME]             = Alert._jQueryInterface\n  $.fn[NAME].Constructor = Alert\n  $.fn[NAME].noConflict  = function () {\n    $.fn[NAME] = JQUERY_NO_CONFLICT\n    return Alert._jQueryInterface\n  }\n\n  return Alert\n\n})($)\n\nexport default Alert\n","import $ from 'jquery'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-beta.3): button.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Button = (($) => {\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  const NAME                = 'button'\n  const VERSION             = '4.0.0-beta.3'\n  const DATA_KEY            = 'bs.button'\n  const EVENT_KEY           = `.${DATA_KEY}`\n  const DATA_API_KEY        = '.data-api'\n  const JQUERY_NO_CONFLICT  = $.fn[NAME]\n\n  const ClassName = {\n    ACTIVE : 'active',\n    BUTTON : 'btn',\n    FOCUS  : 'focus'\n  }\n\n  const Selector = {\n    DATA_TOGGLE_CARROT : '[data-toggle^=\"button\"]',\n    DATA_TOGGLE        : '[data-toggle=\"buttons\"]',\n    INPUT              : 'input',\n    ACTIVE             : '.active',\n    BUTTON             : '.btn'\n  }\n\n  const Event = {\n    CLICK_DATA_API      : `click${EVENT_KEY}${DATA_API_KEY}`,\n    FOCUS_BLUR_DATA_API : `focus${EVENT_KEY}${DATA_API_KEY} `\n                        + `blur${EVENT_KEY}${DATA_API_KEY}`\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  class Button {\n\n    constructor(element) {\n      this._element = element\n    }\n\n\n    // getters\n\n    static get VERSION() {\n      return VERSION\n    }\n\n\n    // public\n\n    toggle() {\n      let triggerChangeEvent = true\n      let addAriaPressed = true\n      const rootElement      = $(this._element).closest(\n        Selector.DATA_TOGGLE\n      )[0]\n\n      if (rootElement) {\n        const input = $(this._element).find(Selector.INPUT)[0]\n\n        if (input) {\n          if (input.type === 'radio') {\n            if (input.checked &&\n              $(this._element).hasClass(ClassName.ACTIVE)) {\n              triggerChangeEvent = false\n\n            } else {\n              const activeElement = $(rootElement).find(Selector.ACTIVE)[0]\n\n              if (activeElement) {\n                $(activeElement).removeClass(ClassName.ACTIVE)\n              }\n            }\n          }\n\n          if (triggerChangeEvent) {\n            if (input.hasAttribute('disabled') ||\n              rootElement.hasAttribute('disabled') ||\n              input.classList.contains('disabled') ||\n              rootElement.classList.contains('disabled')) {\n              return\n            }\n            input.checked = !$(this._element).hasClass(ClassName.ACTIVE)\n            $(input).trigger('change')\n          }\n\n          input.focus()\n          addAriaPressed = false\n        }\n\n      }\n\n      if (addAriaPressed) {\n        this._element.setAttribute('aria-pressed',\n          !$(this._element).hasClass(ClassName.ACTIVE))\n      }\n\n      if (triggerChangeEvent) {\n        $(this._element).toggleClass(ClassName.ACTIVE)\n      }\n    }\n\n    dispose() {\n      $.removeData(this._element, DATA_KEY)\n      this._element = null\n    }\n\n\n    // static\n\n    static _jQueryInterface(config) {\n      return this.each(function () {\n        let data = $(this).data(DATA_KEY)\n\n        if (!data) {\n          data = new Button(this)\n          $(this).data(DATA_KEY, data)\n        }\n\n        if (config === 'toggle') {\n          data[config]()\n        }\n      })\n    }\n\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n  $(document)\n    .on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE_CARROT, (event) => {\n      event.preventDefault()\n\n      let button = event.target\n\n      if (!$(button).hasClass(ClassName.BUTTON)) {\n        button = $(button).closest(Selector.BUTTON)\n      }\n\n      Button._jQueryInterface.call($(button), 'toggle')\n    })\n    .on(Event.FOCUS_BLUR_DATA_API, Selector.DATA_TOGGLE_CARROT, (event) => {\n      const button = $(event.target).closest(Selector.BUTTON)[0]\n      $(button).toggleClass(ClassName.FOCUS, /^focus(in)?$/.test(event.type))\n    })\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $.fn[NAME]             = Button._jQueryInterface\n  $.fn[NAME].Constructor = Button\n  $.fn[NAME].noConflict  = function () {\n    $.fn[NAME] = JQUERY_NO_CONFLICT\n    return Button._jQueryInterface\n  }\n\n  return Button\n\n})($)\n\nexport default Button\n","import $ from 'jquery'\nimport Util from './util'\n\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-beta.3): carousel.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Carousel = (($) => {\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  const NAME                   = 'carousel'\n  const VERSION                = '4.0.0-beta.3'\n  const DATA_KEY               = 'bs.carousel'\n  const EVENT_KEY              = `.${DATA_KEY}`\n  const DATA_API_KEY           = '.data-api'\n  const JQUERY_NO_CONFLICT     = $.fn[NAME]\n  const TRANSITION_DURATION    = 600\n  const ARROW_LEFT_KEYCODE     = 37 // KeyboardEvent.which value for left arrow key\n  const ARROW_RIGHT_KEYCODE    = 39 // KeyboardEvent.which value for right arrow key\n  const TOUCHEVENT_COMPAT_WAIT = 500 // Time for mouse compat events to fire after touch\n\n  const Default = {\n    interval : 5000,\n    keyboard : true,\n    slide    : false,\n    pause    : 'hover',\n    wrap     : true\n  }\n\n  const DefaultType = {\n    interval : '(number|boolean)',\n    keyboard : 'boolean',\n    slide    : '(boolean|string)',\n    pause    : '(string|boolean)',\n    wrap     : 'boolean'\n  }\n\n  const Direction = {\n    NEXT     : 'next',\n    PREV     : 'prev',\n    LEFT     : 'left',\n    RIGHT    : 'right'\n  }\n\n  const Event = {\n    SLIDE          : `slide${EVENT_KEY}`,\n    SLID           : `slid${EVENT_KEY}`,\n    KEYDOWN        : `keydown${EVENT_KEY}`,\n    MOUSEENTER     : `mouseenter${EVENT_KEY}`,\n    MOUSELEAVE     : `mouseleave${EVENT_KEY}`,\n    TOUCHEND       : `touchend${EVENT_KEY}`,\n    LOAD_DATA_API  : `load${EVENT_KEY}${DATA_API_KEY}`,\n    CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n  }\n\n  const ClassName = {\n    CAROUSEL : 'carousel',\n    ACTIVE   : 'active',\n    SLIDE    : 'slide',\n    RIGHT    : 'carousel-item-right',\n    LEFT     : 'carousel-item-left',\n    NEXT     : 'carousel-item-next',\n    PREV     : 'carousel-item-prev',\n    ITEM     : 'carousel-item'\n  }\n\n  const Selector = {\n    ACTIVE      : '.active',\n    ACTIVE_ITEM : '.active.carousel-item',\n    ITEM        : '.carousel-item',\n    NEXT_PREV   : '.carousel-item-next, .carousel-item-prev',\n    INDICATORS  : '.carousel-indicators',\n    DATA_SLIDE  : '[data-slide], [data-slide-to]',\n    DATA_RIDE   : '[data-ride=\"carousel\"]'\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  class Carousel {\n\n    constructor(element, config) {\n      this._items             = null\n      this._interval          = null\n      this._activeElement     = null\n\n      this._isPaused          = false\n      this._isSliding         = false\n\n      this.touchTimeout       = null\n\n      this._config            = this._getConfig(config)\n      this._element           = $(element)[0]\n      this._indicatorsElement = $(this._element).find(Selector.INDICATORS)[0]\n\n      this._addEventListeners()\n    }\n\n\n    // getters\n\n    static get VERSION() {\n      return VERSION\n    }\n\n    static get Default() {\n      return Default\n    }\n\n\n    // public\n\n    next() {\n      if (!this._isSliding) {\n        this._slide(Direction.NEXT)\n      }\n    }\n\n    nextWhenVisible() {\n      // Don't call next when the page isn't visible\n      // or the carousel or its parent isn't visible\n      if (!document.hidden &&\n        ($(this._element).is(':visible') && $(this._element).css('visibility') !== 'hidden')) {\n        this.next()\n      }\n    }\n\n    prev() {\n      if (!this._isSliding) {\n        this._slide(Direction.PREV)\n      }\n    }\n\n    pause(event) {\n      if (!event) {\n        this._isPaused = true\n      }\n\n      if ($(this._element).find(Selector.NEXT_PREV)[0] &&\n        Util.supportsTransitionEnd()) {\n        Util.triggerTransitionEnd(this._element)\n        this.cycle(true)\n      }\n\n      clearInterval(this._interval)\n      this._interval = null\n    }\n\n    cycle(event) {\n      if (!event) {\n        this._isPaused = false\n      }\n\n      if (this._interval) {\n        clearInterval(this._interval)\n        this._interval = null\n      }\n\n      if (this._config.interval && !this._isPaused) {\n        this._interval = setInterval(\n          (document.visibilityState ? this.nextWhenVisible : this.next).bind(this),\n          this._config.interval\n        )\n      }\n    }\n\n    to(index) {\n      this._activeElement = $(this._element).find(Selector.ACTIVE_ITEM)[0]\n\n      const activeIndex = this._getItemIndex(this._activeElement)\n\n      if (index > this._items.length - 1 || index < 0) {\n        return\n      }\n\n      if (this._isSliding) {\n        $(this._element).one(Event.SLID, () => this.to(index))\n        return\n      }\n\n      if (activeIndex === index) {\n        this.pause()\n        this.cycle()\n        return\n      }\n\n      const direction = index > activeIndex ?\n        Direction.NEXT :\n        Direction.PREV\n\n      this._slide(direction, this._items[index])\n    }\n\n    dispose() {\n      $(this._element).off(EVENT_KEY)\n      $.removeData(this._element, DATA_KEY)\n\n      this._items             = null\n      this._config            = null\n      this._element           = null\n      this._interval          = null\n      this._isPaused          = null\n      this._isSliding         = null\n      this._activeElement     = null\n      this._indicatorsElement = null\n    }\n\n\n    // private\n\n    _getConfig(config) {\n      config = {\n        ...Default,\n        ...config\n      }\n      Util.typeCheckConfig(NAME, config, DefaultType)\n      return config\n    }\n\n    _addEventListeners() {\n      if (this._config.keyboard) {\n        $(this._element)\n          .on(Event.KEYDOWN, (event) => this._keydown(event))\n      }\n\n      if (this._config.pause === 'hover') {\n        $(this._element)\n          .on(Event.MOUSEENTER, (event) => this.pause(event))\n          .on(Event.MOUSELEAVE, (event) => this.cycle(event))\n        if ('ontouchstart' in document.documentElement) {\n          // if it's a touch-enabled device, mouseenter/leave are fired as\n          // part of the mouse compatibility events on first tap - the carousel\n          // would stop cycling until user tapped out of it;\n          // here, we listen for touchend, explicitly pause the carousel\n          // (as if it's the second time we tap on it, mouseenter compat event\n          // is NOT fired) and after a timeout (to allow for mouse compatibility\n          // events to fire) we explicitly restart cycling\n          $(this._element).on(Event.TOUCHEND, () => {\n            this.pause()\n            if (this.touchTimeout) {\n              clearTimeout(this.touchTimeout)\n            }\n            this.touchTimeout = setTimeout((event) => this.cycle(event), TOUCHEVENT_COMPAT_WAIT + this._config.interval)\n          })\n        }\n      }\n    }\n\n    _keydown(event) {\n      if (/input|textarea/i.test(event.target.tagName)) {\n        return\n      }\n\n      switch (event.which) {\n        case ARROW_LEFT_KEYCODE:\n          event.preventDefault()\n          this.prev()\n          break\n        case ARROW_RIGHT_KEYCODE:\n          event.preventDefault()\n          this.next()\n          break\n        default:\n          return\n      }\n    }\n\n    _getItemIndex(element) {\n      this._items = $.makeArray($(element).parent().find(Selector.ITEM))\n      return this._items.indexOf(element)\n    }\n\n    _getItemByDirection(direction, activeElement) {\n      const isNextDirection = direction === Direction.NEXT\n      const isPrevDirection = direction === Direction.PREV\n      const activeIndex     = this._getItemIndex(activeElement)\n      const lastItemIndex   = this._items.length - 1\n      const isGoingToWrap   = isPrevDirection && activeIndex === 0 ||\n                              isNextDirection && activeIndex === lastItemIndex\n\n      if (isGoingToWrap && !this._config.wrap) {\n        return activeElement\n      }\n\n      const delta     = direction === Direction.PREV ? -1 : 1\n      const itemIndex = (activeIndex + delta) % this._items.length\n\n      return itemIndex === -1 ?\n        this._items[this._items.length - 1] : this._items[itemIndex]\n    }\n\n\n    _triggerSlideEvent(relatedTarget, eventDirectionName) {\n      const targetIndex = this._getItemIndex(relatedTarget)\n      const fromIndex = this._getItemIndex($(this._element).find(Selector.ACTIVE_ITEM)[0])\n      const slideEvent = $.Event(Event.SLIDE, {\n        relatedTarget,\n        direction: eventDirectionName,\n        from: fromIndex,\n        to: targetIndex\n      })\n\n      $(this._element).trigger(slideEvent)\n\n      return slideEvent\n    }\n\n    _setActiveIndicatorElement(element) {\n      if (this._indicatorsElement) {\n        $(this._indicatorsElement)\n          .find(Selector.ACTIVE)\n          .removeClass(ClassName.ACTIVE)\n\n        const nextIndicator = this._indicatorsElement.children[\n          this._getItemIndex(element)\n        ]\n\n        if (nextIndicator) {\n          $(nextIndicator).addClass(ClassName.ACTIVE)\n        }\n      }\n    }\n\n    _slide(direction, element) {\n      const activeElement = $(this._element).find(Selector.ACTIVE_ITEM)[0]\n      const activeElementIndex = this._getItemIndex(activeElement)\n      const nextElement   = element || activeElement &&\n        this._getItemByDirection(direction, activeElement)\n      const nextElementIndex = this._getItemIndex(nextElement)\n      const isCycling = Boolean(this._interval)\n\n      let directionalClassName\n      let orderClassName\n      let eventDirectionName\n\n      if (direction === Direction.NEXT) {\n        directionalClassName = ClassName.LEFT\n        orderClassName = ClassName.NEXT\n        eventDirectionName = Direction.LEFT\n      } else {\n        directionalClassName = ClassName.RIGHT\n        orderClassName = ClassName.PREV\n        eventDirectionName = Direction.RIGHT\n      }\n\n      if (nextElement && $(nextElement).hasClass(ClassName.ACTIVE)) {\n        this._isSliding = false\n        return\n      }\n\n      const slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName)\n      if (slideEvent.isDefaultPrevented()) {\n        return\n      }\n\n      if (!activeElement || !nextElement) {\n        // some weirdness is happening, so we bail\n        return\n      }\n\n      this._isSliding = true\n\n      if (isCycling) {\n        this.pause()\n      }\n\n      this._setActiveIndicatorElement(nextElement)\n\n      const slidEvent = $.Event(Event.SLID, {\n        relatedTarget: nextElement,\n        direction: eventDirectionName,\n        from: activeElementIndex,\n        to: nextElementIndex\n      })\n\n      if (Util.supportsTransitionEnd() &&\n        $(this._element).hasClass(ClassName.SLIDE)) {\n\n        $(nextElement).addClass(orderClassName)\n\n        Util.reflow(nextElement)\n\n        $(activeElement).addClass(directionalClassName)\n        $(nextElement).addClass(directionalClassName)\n\n        $(activeElement)\n          .one(Util.TRANSITION_END, () => {\n            $(nextElement)\n              .removeClass(`${directionalClassName} ${orderClassName}`)\n              .addClass(ClassName.ACTIVE)\n\n            $(activeElement).removeClass(`${ClassName.ACTIVE} ${orderClassName} ${directionalClassName}`)\n\n            this._isSliding = false\n\n            setTimeout(() => $(this._element).trigger(slidEvent), 0)\n\n          })\n          .emulateTransitionEnd(TRANSITION_DURATION)\n\n      } else {\n        $(activeElement).removeClass(ClassName.ACTIVE)\n        $(nextElement).addClass(ClassName.ACTIVE)\n\n        this._isSliding = false\n        $(this._element).trigger(slidEvent)\n      }\n\n      if (isCycling) {\n        this.cycle()\n      }\n    }\n\n\n    // static\n\n    static _jQueryInterface(config) {\n      return this.each(function () {\n        let data      = $(this).data(DATA_KEY)\n        let _config = {\n          ...Default,\n          ...$(this).data()\n        }\n\n        if (typeof config === 'object') {\n          _config = {\n            ..._config,\n            ...config\n          }\n        }\n\n        const action = typeof config === 'string' ? config : _config.slide\n\n        if (!data) {\n          data = new Carousel(this, _config)\n          $(this).data(DATA_KEY, data)\n        }\n\n        if (typeof config === 'number') {\n          data.to(config)\n        } else if (typeof action === 'string') {\n          if (typeof data[action] === 'undefined') {\n            throw new Error(`No method named \"${action}\"`)\n          }\n          data[action]()\n        } else if (_config.interval) {\n          data.pause()\n          data.cycle()\n        }\n      })\n    }\n\n    static _dataApiClickHandler(event) {\n      const selector = Util.getSelectorFromElement(this)\n\n      if (!selector) {\n        return\n      }\n\n      const target = $(selector)[0]\n\n      if (!target || !$(target).hasClass(ClassName.CAROUSEL)) {\n        return\n      }\n\n      const config = {\n        ...$(target).data(),\n        ...$(this).data()\n      }\n      const slideIndex = this.getAttribute('data-slide-to')\n\n      if (slideIndex) {\n        config.interval = false\n      }\n\n      Carousel._jQueryInterface.call($(target), config)\n\n      if (slideIndex) {\n        $(target).data(DATA_KEY).to(slideIndex)\n      }\n\n      event.preventDefault()\n    }\n\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n  $(document)\n    .on(Event.CLICK_DATA_API, Selector.DATA_SLIDE, Carousel._dataApiClickHandler)\n\n  $(window).on(Event.LOAD_DATA_API, () => {\n    $(Selector.DATA_RIDE).each(function () {\n      const $carousel = $(this)\n      Carousel._jQueryInterface.call($carousel, $carousel.data())\n    })\n  })\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $.fn[NAME]             = Carousel._jQueryInterface\n  $.fn[NAME].Constructor = Carousel\n  $.fn[NAME].noConflict  = function () {\n    $.fn[NAME] = JQUERY_NO_CONFLICT\n    return Carousel._jQueryInterface\n  }\n\n  return Carousel\n\n})($)\n\nexport default Carousel\n","import $ from 'jquery'\nimport Util from './util'\n\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-beta.3): collapse.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Collapse = (($) => {\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  const NAME                = 'collapse'\n  const VERSION             = '4.0.0-beta.3'\n  const DATA_KEY            = 'bs.collapse'\n  const EVENT_KEY           = `.${DATA_KEY}`\n  const DATA_API_KEY        = '.data-api'\n  const JQUERY_NO_CONFLICT  = $.fn[NAME]\n  const TRANSITION_DURATION = 600\n\n  const Default = {\n    toggle : true,\n    parent : ''\n  }\n\n  const DefaultType = {\n    toggle : 'boolean',\n    parent : '(string|element)'\n  }\n\n  const Event = {\n    SHOW           : `show${EVENT_KEY}`,\n    SHOWN          : `shown${EVENT_KEY}`,\n    HIDE           : `hide${EVENT_KEY}`,\n    HIDDEN         : `hidden${EVENT_KEY}`,\n    CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n  }\n\n  const ClassName = {\n    SHOW       : 'show',\n    COLLAPSE   : 'collapse',\n    COLLAPSING : 'collapsing',\n    COLLAPSED  : 'collapsed'\n  }\n\n  const Dimension = {\n    WIDTH  : 'width',\n    HEIGHT : 'height'\n  }\n\n  const Selector = {\n    ACTIVES     : '.show, .collapsing',\n    DATA_TOGGLE : '[data-toggle=\"collapse\"]'\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  class Collapse {\n\n    constructor(element, config) {\n      this._isTransitioning = false\n      this._element         = element\n      this._config          = this._getConfig(config)\n      this._triggerArray    = $.makeArray($(\n        `[data-toggle=\"collapse\"][href=\"#${element.id}\"],` +\n        `[data-toggle=\"collapse\"][data-target=\"#${element.id}\"]`\n      ))\n      const tabToggles = $(Selector.DATA_TOGGLE)\n      for (let i = 0; i < tabToggles.length; i++) {\n        const elem = tabToggles[i]\n        const selector = Util.getSelectorFromElement(elem)\n        if (selector !== null && $(selector).filter(element).length > 0) {\n          this._triggerArray.push(elem)\n        }\n      }\n\n      this._parent = this._config.parent ? this._getParent() : null\n\n      if (!this._config.parent) {\n        this._addAriaAndCollapsedClass(this._element, this._triggerArray)\n      }\n\n      if (this._config.toggle) {\n        this.toggle()\n      }\n    }\n\n\n    // getters\n\n    static get VERSION() {\n      return VERSION\n    }\n\n    static get Default() {\n      return Default\n    }\n\n\n    // public\n\n    toggle() {\n      if ($(this._element).hasClass(ClassName.SHOW)) {\n        this.hide()\n      } else {\n        this.show()\n      }\n    }\n\n    show() {\n      if (this._isTransitioning ||\n        $(this._element).hasClass(ClassName.SHOW)) {\n        return\n      }\n\n      let actives\n      let activesData\n\n      if (this._parent) {\n        actives = $.makeArray(\n          $(this._parent)\n            .find(Selector.ACTIVES)\n            .filter(`[data-parent=\"${this._config.parent}\"]`)\n        )\n        if (!actives.length) {\n          actives = null\n        }\n      }\n\n      if (actives) {\n        activesData = $(actives).data(DATA_KEY)\n        if (activesData && activesData._isTransitioning) {\n          return\n        }\n      }\n\n      const startEvent = $.Event(Event.SHOW)\n      $(this._element).trigger(startEvent)\n      if (startEvent.isDefaultPrevented()) {\n        return\n      }\n\n      if (actives) {\n        Collapse._jQueryInterface.call($(actives), 'hide')\n        if (!activesData) {\n          $(actives).data(DATA_KEY, null)\n        }\n      }\n\n      const dimension = this._getDimension()\n\n      $(this._element)\n        .removeClass(ClassName.COLLAPSE)\n        .addClass(ClassName.COLLAPSING)\n\n      this._element.style[dimension] = 0\n\n      if (this._triggerArray.length) {\n        $(this._triggerArray)\n          .removeClass(ClassName.COLLAPSED)\n          .attr('aria-expanded', true)\n      }\n\n      this.setTransitioning(true)\n\n      const complete = () => {\n        $(this._element)\n          .removeClass(ClassName.COLLAPSING)\n          .addClass(ClassName.COLLAPSE)\n          .addClass(ClassName.SHOW)\n\n        this._element.style[dimension] = ''\n\n        this.setTransitioning(false)\n\n        $(this._element).trigger(Event.SHOWN)\n      }\n\n      if (!Util.supportsTransitionEnd()) {\n        complete()\n        return\n      }\n\n      const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1)\n      const scrollSize           = `scroll${capitalizedDimension}`\n\n      $(this._element)\n        .one(Util.TRANSITION_END, complete)\n        .emulateTransitionEnd(TRANSITION_DURATION)\n\n      this._element.style[dimension] = `${this._element[scrollSize]}px`\n    }\n\n    hide() {\n      if (this._isTransitioning ||\n        !$(this._element).hasClass(ClassName.SHOW)) {\n        return\n      }\n\n      const startEvent = $.Event(Event.HIDE)\n      $(this._element).trigger(startEvent)\n      if (startEvent.isDefaultPrevented()) {\n        return\n      }\n\n      const dimension       = this._getDimension()\n\n      this._element.style[dimension] = `${this._element.getBoundingClientRect()[dimension]}px`\n\n      Util.reflow(this._element)\n\n      $(this._element)\n        .addClass(ClassName.COLLAPSING)\n        .removeClass(ClassName.COLLAPSE)\n        .removeClass(ClassName.SHOW)\n\n      if (this._triggerArray.length) {\n        for (let i = 0; i < this._triggerArray.length; i++) {\n          const trigger = this._triggerArray[i]\n          const selector = Util.getSelectorFromElement(trigger)\n          if (selector !== null) {\n            const $elem = $(selector)\n            if (!$elem.hasClass(ClassName.SHOW)) {\n              $(trigger).addClass(ClassName.COLLAPSED)\n                   .attr('aria-expanded', false)\n            }\n          }\n        }\n      }\n\n      this.setTransitioning(true)\n\n      const complete = () => {\n        this.setTransitioning(false)\n        $(this._element)\n          .removeClass(ClassName.COLLAPSING)\n          .addClass(ClassName.COLLAPSE)\n          .trigger(Event.HIDDEN)\n      }\n\n      this._element.style[dimension] = ''\n\n      if (!Util.supportsTransitionEnd()) {\n        complete()\n        return\n      }\n\n      $(this._element)\n        .one(Util.TRANSITION_END, complete)\n        .emulateTransitionEnd(TRANSITION_DURATION)\n    }\n\n    setTransitioning(isTransitioning) {\n      this._isTransitioning = isTransitioning\n    }\n\n    dispose() {\n      $.removeData(this._element, DATA_KEY)\n\n      this._config          = null\n      this._parent          = null\n      this._element         = null\n      this._triggerArray    = null\n      this._isTransitioning = null\n    }\n\n\n    // private\n\n    _getConfig(config) {\n      config = {\n        ...Default,\n        ...config\n      }\n      config.toggle = Boolean(config.toggle) // coerce string values\n      Util.typeCheckConfig(NAME, config, DefaultType)\n      return config\n    }\n\n    _getDimension() {\n      const hasWidth = $(this._element).hasClass(Dimension.WIDTH)\n      return hasWidth ? Dimension.WIDTH : Dimension.HEIGHT\n    }\n\n    _getParent() {\n      let parent = null\n      if (Util.isElement(this._config.parent)) {\n        parent = this._config.parent\n\n        // it's a jQuery object\n        if (typeof this._config.parent.jquery !== 'undefined') {\n          parent = this._config.parent[0]\n        }\n      } else {\n        parent = $(this._config.parent)[0]\n      }\n\n      const selector =\n        `[data-toggle=\"collapse\"][data-parent=\"${this._config.parent}\"]`\n\n      $(parent).find(selector).each((i, element) => {\n        this._addAriaAndCollapsedClass(\n          Collapse._getTargetFromElement(element),\n          [element]\n        )\n      })\n\n      return parent\n    }\n\n    _addAriaAndCollapsedClass(element, triggerArray) {\n      if (element) {\n        const isOpen = $(element).hasClass(ClassName.SHOW)\n\n        if (triggerArray.length) {\n          $(triggerArray)\n            .toggleClass(ClassName.COLLAPSED, !isOpen)\n            .attr('aria-expanded', isOpen)\n        }\n      }\n    }\n\n\n    // static\n\n    static _getTargetFromElement(element) {\n      const selector = Util.getSelectorFromElement(element)\n      return selector ? $(selector)[0] : null\n    }\n\n    static _jQueryInterface(config) {\n      return this.each(function () {\n        const $this   = $(this)\n        let data      = $this.data(DATA_KEY)\n        const _config = {\n          ...Default,\n          ...$this.data(),\n          ...typeof config === 'object' && config\n        }\n\n        if (!data && _config.toggle && /show|hide/.test(config)) {\n          _config.toggle = false\n        }\n\n        if (!data) {\n          data = new Collapse(this, _config)\n          $this.data(DATA_KEY, data)\n        }\n\n        if (typeof config === 'string') {\n          if (typeof data[config] === 'undefined') {\n            throw new Error(`No method named \"${config}\"`)\n          }\n          data[config]()\n        }\n      })\n    }\n\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n  $(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n    // preventDefault only for <a> elements (which change the URL) not inside the collapsible element\n    if (event.currentTarget.tagName === 'A') {\n      event.preventDefault()\n    }\n\n    const $trigger = $(this)\n    const selector = Util.getSelectorFromElement(this)\n    $(selector).each(function () {\n      const $target = $(this)\n      const data    = $target.data(DATA_KEY)\n      const config  = data ? 'toggle' : $trigger.data()\n      Collapse._jQueryInterface.call($target, config)\n    })\n  })\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $.fn[NAME]             = Collapse._jQueryInterface\n  $.fn[NAME].Constructor = Collapse\n  $.fn[NAME].noConflict  = function () {\n    $.fn[NAME] = JQUERY_NO_CONFLICT\n    return Collapse._jQueryInterface\n  }\n\n  return Collapse\n\n})($)\n\nexport default Collapse\n","import $ from 'jquery'\nimport Popper from 'popper.js'\nimport Util from './util'\n\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-beta.3): dropdown.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Dropdown = (($) => {\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  const NAME                     = 'dropdown'\n  const VERSION                  = '4.0.0-beta.3'\n  const DATA_KEY                 = 'bs.dropdown'\n  const EVENT_KEY                = `.${DATA_KEY}`\n  const DATA_API_KEY             = '.data-api'\n  const JQUERY_NO_CONFLICT       = $.fn[NAME]\n  const ESCAPE_KEYCODE           = 27 // KeyboardEvent.which value for Escape (Esc) key\n  const SPACE_KEYCODE            = 32 // KeyboardEvent.which value for space key\n  const TAB_KEYCODE              = 9 // KeyboardEvent.which value for tab key\n  const ARROW_UP_KEYCODE         = 38 // KeyboardEvent.which value for up arrow key\n  const ARROW_DOWN_KEYCODE       = 40 // KeyboardEvent.which value for down arrow key\n  const RIGHT_MOUSE_BUTTON_WHICH = 3 // MouseEvent.which value for the right button (assuming a right-handed mouse)\n  const REGEXP_KEYDOWN           = new RegExp(`${ARROW_UP_KEYCODE}|${ARROW_DOWN_KEYCODE}|${ESCAPE_KEYCODE}`)\n\n  const Event = {\n    HIDE             : `hide${EVENT_KEY}`,\n    HIDDEN           : `hidden${EVENT_KEY}`,\n    SHOW             : `show${EVENT_KEY}`,\n    SHOWN            : `shown${EVENT_KEY}`,\n    CLICK            : `click${EVENT_KEY}`,\n    CLICK_DATA_API   : `click${EVENT_KEY}${DATA_API_KEY}`,\n    KEYDOWN_DATA_API : `keydown${EVENT_KEY}${DATA_API_KEY}`,\n    KEYUP_DATA_API   : `keyup${EVENT_KEY}${DATA_API_KEY}`\n  }\n\n  const ClassName = {\n    DISABLED  : 'disabled',\n    SHOW      : 'show',\n    DROPUP    : 'dropup',\n    DROPRIGHT : 'dropright',\n    DROPLEFT  : 'dropleft',\n    MENURIGHT : 'dropdown-menu-right',\n    MENULEFT  : 'dropdown-menu-left',\n    POSITION_STATIC : 'position-static'\n  }\n\n  const Selector = {\n    DATA_TOGGLE   : '[data-toggle=\"dropdown\"]',\n    FORM_CHILD    : '.dropdown form',\n    MENU          : '.dropdown-menu',\n    NAVBAR_NAV    : '.navbar-nav',\n    VISIBLE_ITEMS : '.dropdown-menu .dropdown-item:not(.disabled)'\n  }\n\n  const AttachmentMap = {\n    TOP       : 'top-start',\n    TOPEND    : 'top-end',\n    BOTTOM    : 'bottom-start',\n    BOTTOMEND : 'bottom-end',\n    RIGHT     : 'right-start',\n    RIGHTEND  : 'right-end',\n    LEFT      : 'left-start',\n    LEFTEND   : 'left-end'\n  }\n\n  const Default = {\n    offset      : 0,\n    flip        : true,\n    boundary    : 'scrollParent'\n  }\n\n  const DefaultType = {\n    offset      : '(number|string|function)',\n    flip        : 'boolean',\n    boundary    : '(string|element)'\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  class Dropdown {\n\n    constructor(element, config) {\n      this._element  = element\n      this._popper   = null\n      this._config   = this._getConfig(config)\n      this._menu     = this._getMenuElement()\n      this._inNavbar = this._detectNavbar()\n\n      this._addEventListeners()\n    }\n\n\n    // getters\n\n    static get VERSION() {\n      return VERSION\n    }\n\n    static get Default() {\n      return Default\n    }\n\n    static get DefaultType() {\n      return DefaultType\n    }\n\n    // public\n\n    toggle() {\n      if (this._element.disabled || $(this._element).hasClass(ClassName.DISABLED)) {\n        return\n      }\n\n      const parent   = Dropdown._getParentFromElement(this._element)\n      const isActive = $(this._menu).hasClass(ClassName.SHOW)\n\n      Dropdown._clearMenus()\n\n      if (isActive) {\n        return\n      }\n\n      const relatedTarget = {\n        relatedTarget : this._element\n      }\n      const showEvent = $.Event(Event.SHOW, relatedTarget)\n\n      $(parent).trigger(showEvent)\n\n      if (showEvent.isDefaultPrevented()) {\n        return\n      }\n\n      // Disable totally Popper.js for Dropdown in Navbar\n      if (!this._inNavbar) {\n        /**\n         * Check for Popper dependency\n         * Popper - https://popper.js.org\n         */\n        if (typeof Popper === 'undefined') {\n          throw new Error('Bootstrap dropdown require Popper.js (https://popper.js.org)')\n        }\n        let element = this._element\n        // for dropup with alignment we use the parent as popper container\n        if ($(parent).hasClass(ClassName.DROPUP)) {\n          if ($(this._menu).hasClass(ClassName.MENULEFT) || $(this._menu).hasClass(ClassName.MENURIGHT)) {\n            element = parent\n          }\n        }\n        // If boundary is not `scrollParent`, then set position to `static`\n        // to allow the menu to \"escape\" the scroll parent's boundaries\n        // https://github.com/twbs/bootstrap/issues/24251\n        if (this._config.boundary !== 'scrollParent') {\n          $(parent).addClass(ClassName.POSITION_STATIC)\n        }\n        this._popper = new Popper(element, this._menu, this._getPopperConfig())\n      }\n\n\n      // if this is a touch-enabled device we add extra\n      // empty mouseover listeners to the body's immediate children;\n      // only needed because of broken event delegation on iOS\n      // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n      if ('ontouchstart' in document.documentElement &&\n         !$(parent).closest(Selector.NAVBAR_NAV).length) {\n        $('body').children().on('mouseover', null, $.noop)\n      }\n\n      this._element.focus()\n      this._element.setAttribute('aria-expanded', true)\n\n      $(this._menu).toggleClass(ClassName.SHOW)\n      $(parent)\n        .toggleClass(ClassName.SHOW)\n        .trigger($.Event(Event.SHOWN, relatedTarget))\n    }\n\n    dispose() {\n      $.removeData(this._element, DATA_KEY)\n      $(this._element).off(EVENT_KEY)\n      this._element = null\n      this._menu = null\n      if (this._popper !== null) {\n        this._popper.destroy()\n        this._popper = null\n      }\n    }\n\n    update() {\n      this._inNavbar = this._detectNavbar()\n      if (this._popper !== null) {\n        this._popper.scheduleUpdate()\n      }\n    }\n\n    // private\n\n    _addEventListeners() {\n      $(this._element).on(Event.CLICK, (event) => {\n        event.preventDefault()\n        event.stopPropagation()\n        this.toggle()\n      })\n    }\n\n    _getConfig(config) {\n      config = {\n        ...this.constructor.Default,\n        ...$(this._element).data(),\n        ...config\n      }\n\n      Util.typeCheckConfig(\n        NAME,\n        config,\n        this.constructor.DefaultType\n      )\n\n      return config\n    }\n\n    _getMenuElement() {\n      if (!this._menu) {\n        const parent = Dropdown._getParentFromElement(this._element)\n        this._menu = $(parent).find(Selector.MENU)[0]\n      }\n      return this._menu\n    }\n\n    _getPlacement() {\n      const $parentDropdown = $(this._element).parent()\n      let placement         = AttachmentMap.BOTTOM\n\n      // Handle dropup\n      if ($parentDropdown.hasClass(ClassName.DROPUP)) {\n        placement = AttachmentMap.TOP\n        if ($(this._menu).hasClass(ClassName.MENURIGHT)) {\n          placement = AttachmentMap.TOPEND\n        }\n      } else if ($parentDropdown.hasClass(ClassName.DROPRIGHT)) {\n        placement = AttachmentMap.RIGHT\n      } else if ($parentDropdown.hasClass(ClassName.DROPLEFT)) {\n        placement = AttachmentMap.LEFT\n      } else if ($(this._menu).hasClass(ClassName.MENURIGHT)) {\n        placement = AttachmentMap.BOTTOMEND\n      }\n      return placement\n    }\n\n    _detectNavbar() {\n      return $(this._element).closest('.navbar').length > 0\n    }\n\n    _getPopperConfig() {\n      const offsetConf = {}\n      if (typeof this._config.offset === 'function') {\n        offsetConf.fn = (data) => {\n          data.offsets = {\n            ...data.offsets,\n            ...this._config.offset(data.offsets) || {}\n          }\n          return data\n        }\n      } else {\n        offsetConf.offset = this._config.offset\n      }\n      const popperConfig = {\n        placement : this._getPlacement(),\n        modifiers : {\n          offset : offsetConf,\n          flip : {\n            enabled : this._config.flip\n          },\n          preventOverflow : {\n            boundariesElement : this._config.boundary\n          }\n        }\n      }\n\n      return popperConfig\n    }\n\n    // static\n\n    static _jQueryInterface(config) {\n      return this.each(function () {\n        let data = $(this).data(DATA_KEY)\n        const _config = typeof config === 'object' ? config : null\n\n        if (!data) {\n          data = new Dropdown(this, _config)\n          $(this).data(DATA_KEY, data)\n        }\n\n        if (typeof config === 'string') {\n          if (typeof data[config] === 'undefined') {\n            throw new Error(`No method named \"${config}\"`)\n          }\n          data[config]()\n        }\n      })\n    }\n\n    static _clearMenus(event) {\n      if (event && (event.which === RIGHT_MOUSE_BUTTON_WHICH ||\n        event.type === 'keyup' && event.which !== TAB_KEYCODE)) {\n        return\n      }\n\n      const toggles = $.makeArray($(Selector.DATA_TOGGLE))\n      for (let i = 0; i < toggles.length; i++) {\n        const parent        = Dropdown._getParentFromElement(toggles[i])\n        const context       = $(toggles[i]).data(DATA_KEY)\n        const relatedTarget = {\n          relatedTarget : toggles[i]\n        }\n\n        if (!context) {\n          continue\n        }\n\n        const dropdownMenu = context._menu\n        if (!$(parent).hasClass(ClassName.SHOW)) {\n          continue\n        }\n\n        if (event && (event.type === 'click' &&\n            /input|textarea/i.test(event.target.tagName) || event.type === 'keyup' && event.which === TAB_KEYCODE)\n            && $.contains(parent, event.target)) {\n          continue\n        }\n\n        const hideEvent = $.Event(Event.HIDE, relatedTarget)\n        $(parent).trigger(hideEvent)\n        if (hideEvent.isDefaultPrevented()) {\n          continue\n        }\n\n        // if this is a touch-enabled device we remove the extra\n        // empty mouseover listeners we added for iOS support\n        if ('ontouchstart' in document.documentElement) {\n          $('body').children().off('mouseover', null, $.noop)\n        }\n\n        toggles[i].setAttribute('aria-expanded', 'false')\n\n        $(dropdownMenu).removeClass(ClassName.SHOW)\n        $(parent)\n          .removeClass(ClassName.SHOW)\n          .trigger($.Event(Event.HIDDEN, relatedTarget))\n      }\n    }\n\n    static _getParentFromElement(element) {\n      let parent\n      const selector = Util.getSelectorFromElement(element)\n\n      if (selector) {\n        parent = $(selector)[0]\n      }\n\n      return parent || element.parentNode\n    }\n\n    // eslint-disable-next-line complexity\n    static _dataApiKeydownHandler(event) {\n      // If not input/textarea:\n      //  - And not a key in REGEXP_KEYDOWN => not a dropdown command\n      // If input/textarea:\n      //  - If space key => not a dropdown command\n      //  - If key is other than escape\n      //    - If key is not up or down => not a dropdown command\n      //    - If trigger inside the menu => not a dropdown command\n      if (/input|textarea/i.test(event.target.tagName) ?\n        event.which === SPACE_KEYCODE || event.which !== ESCAPE_KEYCODE &&\n        (event.which !== ARROW_DOWN_KEYCODE && event.which !== ARROW_UP_KEYCODE ||\n          $(event.target).closest(Selector.MENU).length) : !REGEXP_KEYDOWN.test(event.which)) {\n        return\n      }\n\n      event.preventDefault()\n      event.stopPropagation()\n\n      if (this.disabled || $(this).hasClass(ClassName.DISABLED)) {\n        return\n      }\n\n      const parent   = Dropdown._getParentFromElement(this)\n      const isActive = $(parent).hasClass(ClassName.SHOW)\n\n      if (!isActive && (event.which !== ESCAPE_KEYCODE || event.which !== SPACE_KEYCODE) ||\n           isActive && (event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE)) {\n\n        if (event.which === ESCAPE_KEYCODE) {\n          const toggle = $(parent).find(Selector.DATA_TOGGLE)[0]\n          $(toggle).trigger('focus')\n        }\n\n        $(this).trigger('click')\n        return\n      }\n\n      const items = $(parent).find(Selector.VISIBLE_ITEMS).get()\n\n      if (!items.length) {\n        return\n      }\n\n      let index = items.indexOf(event.target)\n\n      if (event.which === ARROW_UP_KEYCODE && index > 0) { // up\n        index--\n      }\n\n      if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) { // down\n        index++\n      }\n\n      if (index < 0) {\n        index = 0\n      }\n\n      items[index].focus()\n    }\n\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n  $(document)\n    .on(Event.KEYDOWN_DATA_API, Selector.DATA_TOGGLE,  Dropdown._dataApiKeydownHandler)\n    .on(Event.KEYDOWN_DATA_API, Selector.MENU, Dropdown._dataApiKeydownHandler)\n    .on(`${Event.CLICK_DATA_API} ${Event.KEYUP_DATA_API}`, Dropdown._clearMenus)\n    .on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n      event.preventDefault()\n      event.stopPropagation()\n      Dropdown._jQueryInterface.call($(this), 'toggle')\n    })\n    .on(Event.CLICK_DATA_API, Selector.FORM_CHILD, (e) => {\n      e.stopPropagation()\n    })\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $.fn[NAME]             = Dropdown._jQueryInterface\n  $.fn[NAME].Constructor = Dropdown\n  $.fn[NAME].noConflict  = function () {\n    $.fn[NAME] = JQUERY_NO_CONFLICT\n    return Dropdown._jQueryInterface\n  }\n\n  return Dropdown\n\n})($, Popper)\n\nexport default Dropdown\n","import $ from 'jquery'\nimport Util from './util'\n\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-beta.3): modal.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Modal = (($) => {\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  const NAME                         = 'modal'\n  const VERSION                      = '4.0.0-beta.3'\n  const DATA_KEY                     = 'bs.modal'\n  const EVENT_KEY                    = `.${DATA_KEY}`\n  const DATA_API_KEY                 = '.data-api'\n  const JQUERY_NO_CONFLICT           = $.fn[NAME]\n  const TRANSITION_DURATION          = 300\n  const BACKDROP_TRANSITION_DURATION = 150\n  const ESCAPE_KEYCODE               = 27 // KeyboardEvent.which value for Escape (Esc) key\n\n  const Default = {\n    backdrop : true,\n    keyboard : true,\n    focus    : true,\n    show     : true\n  }\n\n  const DefaultType = {\n    backdrop : '(boolean|string)',\n    keyboard : 'boolean',\n    focus    : 'boolean',\n    show     : 'boolean'\n  }\n\n  const Event = {\n    HIDE              : `hide${EVENT_KEY}`,\n    HIDDEN            : `hidden${EVENT_KEY}`,\n    SHOW              : `show${EVENT_KEY}`,\n    SHOWN             : `shown${EVENT_KEY}`,\n    FOCUSIN           : `focusin${EVENT_KEY}`,\n    RESIZE            : `resize${EVENT_KEY}`,\n    CLICK_DISMISS     : `click.dismiss${EVENT_KEY}`,\n    KEYDOWN_DISMISS   : `keydown.dismiss${EVENT_KEY}`,\n    MOUSEUP_DISMISS   : `mouseup.dismiss${EVENT_KEY}`,\n    MOUSEDOWN_DISMISS : `mousedown.dismiss${EVENT_KEY}`,\n    CLICK_DATA_API    : `click${EVENT_KEY}${DATA_API_KEY}`\n  }\n\n  const ClassName = {\n    SCROLLBAR_MEASURER : 'modal-scrollbar-measure',\n    BACKDROP           : 'modal-backdrop',\n    OPEN               : 'modal-open',\n    FADE               : 'fade',\n    SHOW               : 'show'\n  }\n\n  const Selector = {\n    DIALOG             : '.modal-dialog',\n    DATA_TOGGLE        : '[data-toggle=\"modal\"]',\n    DATA_DISMISS       : '[data-dismiss=\"modal\"]',\n    FIXED_CONTENT      : '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top',\n    STICKY_CONTENT     : '.sticky-top',\n    NAVBAR_TOGGLER     : '.navbar-toggler'\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  class Modal {\n\n    constructor(element, config) {\n      this._config              = this._getConfig(config)\n      this._element             = element\n      this._dialog              = $(element).find(Selector.DIALOG)[0]\n      this._backdrop            = null\n      this._isShown             = false\n      this._isBodyOverflowing   = false\n      this._ignoreBackdropClick = false\n      this._originalBodyPadding = 0\n      this._scrollbarWidth      = 0\n    }\n\n\n    // getters\n\n    static get VERSION() {\n      return VERSION\n    }\n\n    static get Default() {\n      return Default\n    }\n\n\n    // public\n\n    toggle(relatedTarget) {\n      return this._isShown ? this.hide() : this.show(relatedTarget)\n    }\n\n    show(relatedTarget) {\n      if (this._isTransitioning || this._isShown) {\n        return\n      }\n\n      if (Util.supportsTransitionEnd() && $(this._element).hasClass(ClassName.FADE)) {\n        this._isTransitioning = true\n      }\n\n      const showEvent = $.Event(Event.SHOW, {\n        relatedTarget\n      })\n\n      $(this._element).trigger(showEvent)\n\n      if (this._isShown || showEvent.isDefaultPrevented()) {\n        return\n      }\n\n      this._isShown = true\n\n      this._checkScrollbar()\n      this._setScrollbar()\n\n      this._adjustDialog()\n\n      $(document.body).addClass(ClassName.OPEN)\n\n      this._setEscapeEvent()\n      this._setResizeEvent()\n\n      $(this._element).on(\n        Event.CLICK_DISMISS,\n        Selector.DATA_DISMISS,\n        (event) => this.hide(event)\n      )\n\n      $(this._dialog).on(Event.MOUSEDOWN_DISMISS, () => {\n        $(this._element).one(Event.MOUSEUP_DISMISS, (event) => {\n          if ($(event.target).is(this._element)) {\n            this._ignoreBackdropClick = true\n          }\n        })\n      })\n\n      this._showBackdrop(() => this._showElement(relatedTarget))\n    }\n\n    hide(event) {\n      if (event) {\n        event.preventDefault()\n      }\n\n      if (this._isTransitioning || !this._isShown) {\n        return\n      }\n\n      const hideEvent = $.Event(Event.HIDE)\n\n      $(this._element).trigger(hideEvent)\n\n      if (!this._isShown || hideEvent.isDefaultPrevented()) {\n        return\n      }\n\n      this._isShown = false\n\n      const transition = Util.supportsTransitionEnd() && $(this._element).hasClass(ClassName.FADE)\n\n      if (transition) {\n        this._isTransitioning = true\n      }\n\n      this._setEscapeEvent()\n      this._setResizeEvent()\n\n      $(document).off(Event.FOCUSIN)\n\n      $(this._element).removeClass(ClassName.SHOW)\n\n      $(this._element).off(Event.CLICK_DISMISS)\n      $(this._dialog).off(Event.MOUSEDOWN_DISMISS)\n\n      if (transition) {\n\n        $(this._element)\n          .one(Util.TRANSITION_END, (event) => this._hideModal(event))\n          .emulateTransitionEnd(TRANSITION_DURATION)\n      } else {\n        this._hideModal()\n      }\n    }\n\n    dispose() {\n      $.removeData(this._element, DATA_KEY)\n\n      $(window, document, this._element, this._backdrop).off(EVENT_KEY)\n\n      this._config              = null\n      this._element             = null\n      this._dialog              = null\n      this._backdrop            = null\n      this._isShown             = null\n      this._isBodyOverflowing   = null\n      this._ignoreBackdropClick = null\n      this._scrollbarWidth      = null\n    }\n\n    handleUpdate() {\n      this._adjustDialog()\n    }\n\n    // private\n\n    _getConfig(config) {\n      config = {\n        ...Default,\n        ...config\n      }\n      Util.typeCheckConfig(NAME, config, DefaultType)\n      return config\n    }\n\n    _showElement(relatedTarget) {\n      const transition = Util.supportsTransitionEnd() &&\n        $(this._element).hasClass(ClassName.FADE)\n\n      if (!this._element.parentNode ||\n         this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {\n        // don't move modals dom position\n        document.body.appendChild(this._element)\n      }\n\n      this._element.style.display = 'block'\n      this._element.removeAttribute('aria-hidden')\n      this._element.scrollTop = 0\n\n      if (transition) {\n        Util.reflow(this._element)\n      }\n\n      $(this._element).addClass(ClassName.SHOW)\n\n      if (this._config.focus) {\n        this._enforceFocus()\n      }\n\n      const shownEvent = $.Event(Event.SHOWN, {\n        relatedTarget\n      })\n\n      const transitionComplete = () => {\n        if (this._config.focus) {\n          this._element.focus()\n        }\n        this._isTransitioning = false\n        $(this._element).trigger(shownEvent)\n      }\n\n      if (transition) {\n        $(this._dialog)\n          .one(Util.TRANSITION_END, transitionComplete)\n          .emulateTransitionEnd(TRANSITION_DURATION)\n      } else {\n        transitionComplete()\n      }\n    }\n\n    _enforceFocus() {\n      $(document)\n        .off(Event.FOCUSIN) // guard against infinite focus loop\n        .on(Event.FOCUSIN, (event) => {\n          if (document !== event.target &&\n              this._element !== event.target &&\n              !$(this._element).has(event.target).length) {\n            this._element.focus()\n          }\n        })\n    }\n\n    _setEscapeEvent() {\n      if (this._isShown && this._config.keyboard) {\n        $(this._element).on(Event.KEYDOWN_DISMISS, (event) => {\n          if (event.which === ESCAPE_KEYCODE) {\n            event.preventDefault()\n            this.hide()\n          }\n        })\n\n      } else if (!this._isShown) {\n        $(this._element).off(Event.KEYDOWN_DISMISS)\n      }\n    }\n\n    _setResizeEvent() {\n      if (this._isShown) {\n        $(window).on(Event.RESIZE, (event) => this.handleUpdate(event))\n      } else {\n        $(window).off(Event.RESIZE)\n      }\n    }\n\n    _hideModal() {\n      this._element.style.display = 'none'\n      this._element.setAttribute('aria-hidden', true)\n      this._isTransitioning = false\n      this._showBackdrop(() => {\n        $(document.body).removeClass(ClassName.OPEN)\n        this._resetAdjustments()\n        this._resetScrollbar()\n        $(this._element).trigger(Event.HIDDEN)\n      })\n    }\n\n    _removeBackdrop() {\n      if (this._backdrop) {\n        $(this._backdrop).remove()\n        this._backdrop = null\n      }\n    }\n\n    _showBackdrop(callback) {\n      const animate = $(this._element).hasClass(ClassName.FADE) ?\n        ClassName.FADE : ''\n\n      if (this._isShown && this._config.backdrop) {\n        const doAnimate = Util.supportsTransitionEnd() && animate\n\n        this._backdrop = document.createElement('div')\n        this._backdrop.className = ClassName.BACKDROP\n\n        if (animate) {\n          $(this._backdrop).addClass(animate)\n        }\n\n        $(this._backdrop).appendTo(document.body)\n\n        $(this._element).on(Event.CLICK_DISMISS, (event) => {\n          if (this._ignoreBackdropClick) {\n            this._ignoreBackdropClick = false\n            return\n          }\n          if (event.target !== event.currentTarget) {\n            return\n          }\n          if (this._config.backdrop === 'static') {\n            this._element.focus()\n          } else {\n            this.hide()\n          }\n        })\n\n        if (doAnimate) {\n          Util.reflow(this._backdrop)\n        }\n\n        $(this._backdrop).addClass(ClassName.SHOW)\n\n        if (!callback) {\n          return\n        }\n\n        if (!doAnimate) {\n          callback()\n          return\n        }\n\n        $(this._backdrop)\n          .one(Util.TRANSITION_END, callback)\n          .emulateTransitionEnd(BACKDROP_TRANSITION_DURATION)\n\n      } else if (!this._isShown && this._backdrop) {\n        $(this._backdrop).removeClass(ClassName.SHOW)\n\n        const callbackRemove = () => {\n          this._removeBackdrop()\n          if (callback) {\n            callback()\n          }\n        }\n\n        if (Util.supportsTransitionEnd() &&\n           $(this._element).hasClass(ClassName.FADE)) {\n          $(this._backdrop)\n            .one(Util.TRANSITION_END, callbackRemove)\n            .emulateTransitionEnd(BACKDROP_TRANSITION_DURATION)\n        } else {\n          callbackRemove()\n        }\n\n      } else if (callback) {\n        callback()\n      }\n    }\n\n\n    // ----------------------------------------------------------------------\n    // the following methods are used to handle overflowing modals\n    // todo (fat): these should probably be refactored out of modal.js\n    // ----------------------------------------------------------------------\n\n    _adjustDialog() {\n      const isModalOverflowing =\n        this._element.scrollHeight > document.documentElement.clientHeight\n\n      if (!this._isBodyOverflowing && isModalOverflowing) {\n        this._element.style.paddingLeft = `${this._scrollbarWidth}px`\n      }\n\n      if (this._isBodyOverflowing && !isModalOverflowing) {\n        this._element.style.paddingRight = `${this._scrollbarWidth}px`\n      }\n    }\n\n    _resetAdjustments() {\n      this._element.style.paddingLeft = ''\n      this._element.style.paddingRight = ''\n    }\n\n    _checkScrollbar() {\n      const rect = document.body.getBoundingClientRect()\n      this._isBodyOverflowing = rect.left + rect.right < window.innerWidth\n      this._scrollbarWidth = this._getScrollbarWidth()\n    }\n\n    _setScrollbar() {\n      if (this._isBodyOverflowing) {\n        // Note: DOMNode.style.paddingRight returns the actual value or '' if not set\n        //   while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set\n\n        // Adjust fixed content padding\n        $(Selector.FIXED_CONTENT).each((index, element) => {\n          const actualPadding = $(element)[0].style.paddingRight\n          const calculatedPadding = $(element).css('padding-right')\n          $(element).data('padding-right', actualPadding).css('padding-right', `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`)\n        })\n\n        // Adjust sticky content margin\n        $(Selector.STICKY_CONTENT).each((index, element) => {\n          const actualMargin = $(element)[0].style.marginRight\n          const calculatedMargin = $(element).css('margin-right')\n          $(element).data('margin-right', actualMargin).css('margin-right', `${parseFloat(calculatedMargin) - this._scrollbarWidth}px`)\n        })\n\n        // Adjust navbar-toggler margin\n        $(Selector.NAVBAR_TOGGLER).each((index, element) => {\n          const actualMargin = $(element)[0].style.marginRight\n          const calculatedMargin = $(element).css('margin-right')\n          $(element).data('margin-right', actualMargin).css('margin-right', `${parseFloat(calculatedMargin) + this._scrollbarWidth}px`)\n        })\n\n        // Adjust body padding\n        const actualPadding = document.body.style.paddingRight\n        const calculatedPadding = $('body').css('padding-right')\n        $('body').data('padding-right', actualPadding).css('padding-right', `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`)\n      }\n    }\n\n    _resetScrollbar() {\n      // Restore fixed content padding\n      $(Selector.FIXED_CONTENT).each((index, element) => {\n        const padding = $(element).data('padding-right')\n        if (typeof padding !== 'undefined') {\n          $(element).css('padding-right', padding).removeData('padding-right')\n        }\n      })\n\n      // Restore sticky content and navbar-toggler margin\n      $(`${Selector.STICKY_CONTENT}, ${Selector.NAVBAR_TOGGLER}`).each((index, element) => {\n        const margin = $(element).data('margin-right')\n        if (typeof margin !== 'undefined') {\n          $(element).css('margin-right', margin).removeData('margin-right')\n        }\n      })\n\n      // Restore body padding\n      const padding = $('body').data('padding-right')\n      if (typeof padding !== 'undefined') {\n        $('body').css('padding-right', padding).removeData('padding-right')\n      }\n    }\n\n    _getScrollbarWidth() { // thx d.walsh\n      const scrollDiv = document.createElement('div')\n      scrollDiv.className = ClassName.SCROLLBAR_MEASURER\n      document.body.appendChild(scrollDiv)\n      const scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth\n      document.body.removeChild(scrollDiv)\n      return scrollbarWidth\n    }\n\n\n    // static\n\n    static _jQueryInterface(config, relatedTarget) {\n      return this.each(function () {\n        let data      = $(this).data(DATA_KEY)\n        const _config = {\n          ...Modal.Default,\n          ...$(this).data(),\n          ...typeof config === 'object' && config\n        }\n\n        if (!data) {\n          data = new Modal(this, _config)\n          $(this).data(DATA_KEY, data)\n        }\n\n        if (typeof config === 'string') {\n          if (typeof data[config] === 'undefined') {\n            throw new Error(`No method named \"${config}\"`)\n          }\n          data[config](relatedTarget)\n        } else if (_config.show) {\n          data.show(relatedTarget)\n        }\n      })\n    }\n\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n  $(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n    let target\n    const selector = Util.getSelectorFromElement(this)\n\n    if (selector) {\n      target = $(selector)[0]\n    }\n\n    const config = $(target).data(DATA_KEY) ?\n      'toggle' : {\n        ...$(target).data(),\n        ...$(this).data()\n      }\n\n    if (this.tagName === 'A' || this.tagName === 'AREA') {\n      event.preventDefault()\n    }\n\n    const $target = $(target).one(Event.SHOW, (showEvent) => {\n      if (showEvent.isDefaultPrevented()) {\n        // only register focus restorer if modal will actually get shown\n        return\n      }\n\n      $target.one(Event.HIDDEN, () => {\n        if ($(this).is(':visible')) {\n          this.focus()\n        }\n      })\n    })\n\n    Modal._jQueryInterface.call($(target), config, this)\n  })\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $.fn[NAME]             = Modal._jQueryInterface\n  $.fn[NAME].Constructor = Modal\n  $.fn[NAME].noConflict  = function () {\n    $.fn[NAME] = JQUERY_NO_CONFLICT\n    return Modal._jQueryInterface\n  }\n\n  return Modal\n\n})($)\n\nexport default Modal\n","import $ from 'jquery'\nimport Popper from 'popper.js'\nimport Util from './util'\n\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-beta.3): tooltip.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Tooltip = (($) => {\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  const NAME                = 'tooltip'\n  const VERSION             = '4.0.0-beta.3'\n  const DATA_KEY            = 'bs.tooltip'\n  const EVENT_KEY           = `.${DATA_KEY}`\n  const JQUERY_NO_CONFLICT  = $.fn[NAME]\n  const TRANSITION_DURATION = 150\n  const CLASS_PREFIX        = 'bs-tooltip'\n  const BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\n\n  const DefaultType = {\n    animation           : 'boolean',\n    template            : 'string',\n    title               : '(string|element|function)',\n    trigger             : 'string',\n    delay               : '(number|object)',\n    html                : 'boolean',\n    selector            : '(string|boolean)',\n    placement           : '(string|function)',\n    offset              : '(number|string)',\n    container           : '(string|element|boolean)',\n    fallbackPlacement   : '(string|array)',\n    boundary            : '(string|element)'\n  }\n\n  const AttachmentMap = {\n    AUTO   : 'auto',\n    TOP    : 'top',\n    RIGHT  : 'right',\n    BOTTOM : 'bottom',\n    LEFT   : 'left'\n  }\n\n  const Default = {\n    animation           : true,\n    template            : '<div class=\"tooltip\" role=\"tooltip\">'\n                        + '<div class=\"arrow\"></div>'\n                        + '<div class=\"tooltip-inner\"></div></div>',\n    trigger             : 'hover focus',\n    title               : '',\n    delay               : 0,\n    html                : false,\n    selector            : false,\n    placement           : 'top',\n    offset              : 0,\n    container           : false,\n    fallbackPlacement   : 'flip',\n    boundary            : 'scrollParent'\n  }\n\n  const HoverState = {\n    SHOW : 'show',\n    OUT  : 'out'\n  }\n\n  const Event = {\n    HIDE       : `hide${EVENT_KEY}`,\n    HIDDEN     : `hidden${EVENT_KEY}`,\n    SHOW       : `show${EVENT_KEY}`,\n    SHOWN      : `shown${EVENT_KEY}`,\n    INSERTED   : `inserted${EVENT_KEY}`,\n    CLICK      : `click${EVENT_KEY}`,\n    FOCUSIN    : `focusin${EVENT_KEY}`,\n    FOCUSOUT   : `focusout${EVENT_KEY}`,\n    MOUSEENTER : `mouseenter${EVENT_KEY}`,\n    MOUSELEAVE : `mouseleave${EVENT_KEY}`\n  }\n\n  const ClassName = {\n    FADE : 'fade',\n    SHOW : 'show'\n  }\n\n  const Selector = {\n    TOOLTIP       : '.tooltip',\n    TOOLTIP_INNER : '.tooltip-inner',\n    ARROW         : '.arrow'\n  }\n\n  const Trigger = {\n    HOVER  : 'hover',\n    FOCUS  : 'focus',\n    CLICK  : 'click',\n    MANUAL : 'manual'\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  class Tooltip {\n\n    constructor(element, config) {\n      /**\n       * Check for Popper dependency\n       * Popper - https://popper.js.org\n       */\n      if (typeof Popper === 'undefined') {\n        throw new Error('Bootstrap tooltips require Popper.js (https://popper.js.org)')\n      }\n\n      // private\n      this._isEnabled     = true\n      this._timeout       = 0\n      this._hoverState    = ''\n      this._activeTrigger = {}\n      this._popper        = null\n\n      // protected\n      this.element = element\n      this.config  = this._getConfig(config)\n      this.tip     = null\n\n      this._setListeners()\n\n    }\n\n\n    // getters\n\n    static get VERSION() {\n      return VERSION\n    }\n\n    static get Default() {\n      return Default\n    }\n\n    static get NAME() {\n      return NAME\n    }\n\n    static get DATA_KEY() {\n      return DATA_KEY\n    }\n\n    static get Event() {\n      return Event\n    }\n\n    static get EVENT_KEY() {\n      return EVENT_KEY\n    }\n\n    static get DefaultType() {\n      return DefaultType\n    }\n\n\n    // public\n\n    enable() {\n      this._isEnabled = true\n    }\n\n    disable() {\n      this._isEnabled = false\n    }\n\n    toggleEnabled() {\n      this._isEnabled = !this._isEnabled\n    }\n\n    toggle(event) {\n      if (!this._isEnabled) {\n        return\n      }\n\n      if (event) {\n        const dataKey = this.constructor.DATA_KEY\n        let context = $(event.currentTarget).data(dataKey)\n\n        if (!context) {\n          context = new this.constructor(\n            event.currentTarget,\n            this._getDelegateConfig()\n          )\n          $(event.currentTarget).data(dataKey, context)\n        }\n\n        context._activeTrigger.click = !context._activeTrigger.click\n\n        if (context._isWithActiveTrigger()) {\n          context._enter(null, context)\n        } else {\n          context._leave(null, context)\n        }\n\n      } else {\n\n        if ($(this.getTipElement()).hasClass(ClassName.SHOW)) {\n          this._leave(null, this)\n          return\n        }\n\n        this._enter(null, this)\n      }\n    }\n\n    dispose() {\n      clearTimeout(this._timeout)\n\n      $.removeData(this.element, this.constructor.DATA_KEY)\n\n      $(this.element).off(this.constructor.EVENT_KEY)\n      $(this.element).closest('.modal').off('hide.bs.modal')\n\n      if (this.tip) {\n        $(this.tip).remove()\n      }\n\n      this._isEnabled     = null\n      this._timeout       = null\n      this._hoverState    = null\n      this._activeTrigger = null\n      if (this._popper !== null) {\n        this._popper.destroy()\n      }\n\n      this._popper = null\n      this.element = null\n      this.config  = null\n      this.tip     = null\n    }\n\n    show() {\n      if ($(this.element).css('display') === 'none') {\n        throw new Error('Please use show on visible elements')\n      }\n\n      const showEvent = $.Event(this.constructor.Event.SHOW)\n      if (this.isWithContent() && this._isEnabled) {\n        $(this.element).trigger(showEvent)\n\n        const isInTheDom = $.contains(\n          this.element.ownerDocument.documentElement,\n          this.element\n        )\n\n        if (showEvent.isDefaultPrevented() || !isInTheDom) {\n          return\n        }\n\n        const tip   = this.getTipElement()\n        const tipId = Util.getUID(this.constructor.NAME)\n\n        tip.setAttribute('id', tipId)\n        this.element.setAttribute('aria-describedby', tipId)\n\n        this.setContent()\n\n        if (this.config.animation) {\n          $(tip).addClass(ClassName.FADE)\n        }\n\n        const placement  = typeof this.config.placement === 'function' ?\n          this.config.placement.call(this, tip, this.element) :\n          this.config.placement\n\n        const attachment = this._getAttachment(placement)\n        this.addAttachmentClass(attachment)\n\n        const container = this.config.container === false ? document.body : $(this.config.container)\n\n        $(tip).data(this.constructor.DATA_KEY, this)\n\n        if (!$.contains(this.element.ownerDocument.documentElement, this.tip)) {\n          $(tip).appendTo(container)\n        }\n\n        $(this.element).trigger(this.constructor.Event.INSERTED)\n\n        this._popper = new Popper(this.element, tip, {\n          placement: attachment,\n          modifiers: {\n            offset: {\n              offset: this.config.offset\n            },\n            flip: {\n              behavior: this.config.fallbackPlacement\n            },\n            arrow: {\n              element: Selector.ARROW\n            },\n            preventOverflow: {\n              boundariesElement: this.config.boundary\n            }\n          },\n          onCreate: (data) => {\n            if (data.originalPlacement !== data.placement) {\n              this._handlePopperPlacementChange(data)\n            }\n          },\n          onUpdate : (data) => {\n            this._handlePopperPlacementChange(data)\n          }\n        })\n\n        $(tip).addClass(ClassName.SHOW)\n\n        // if this is a touch-enabled device we add extra\n        // empty mouseover listeners to the body's immediate children;\n        // only needed because of broken event delegation on iOS\n        // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n        if ('ontouchstart' in document.documentElement) {\n          $('body').children().on('mouseover', null, $.noop)\n        }\n\n        const complete = () => {\n          if (this.config.animation) {\n            this._fixTransition()\n          }\n          const prevHoverState = this._hoverState\n          this._hoverState     = null\n\n          $(this.element).trigger(this.constructor.Event.SHOWN)\n\n          if (prevHoverState === HoverState.OUT) {\n            this._leave(null, this)\n          }\n        }\n\n        if (Util.supportsTransitionEnd() && $(this.tip).hasClass(ClassName.FADE)) {\n          $(this.tip)\n            .one(Util.TRANSITION_END, complete)\n            .emulateTransitionEnd(Tooltip._TRANSITION_DURATION)\n        } else {\n          complete()\n        }\n      }\n    }\n\n    hide(callback) {\n      const tip       = this.getTipElement()\n      const hideEvent = $.Event(this.constructor.Event.HIDE)\n      const complete  = () => {\n        if (this._hoverState !== HoverState.SHOW && tip.parentNode) {\n          tip.parentNode.removeChild(tip)\n        }\n\n        this._cleanTipClass()\n        this.element.removeAttribute('aria-describedby')\n        $(this.element).trigger(this.constructor.Event.HIDDEN)\n        if (this._popper !== null) {\n          this._popper.destroy()\n        }\n\n        if (callback) {\n          callback()\n        }\n      }\n\n      $(this.element).trigger(hideEvent)\n\n      if (hideEvent.isDefaultPrevented()) {\n        return\n      }\n\n      $(tip).removeClass(ClassName.SHOW)\n\n      // if this is a touch-enabled device we remove the extra\n      // empty mouseover listeners we added for iOS support\n      if ('ontouchstart' in document.documentElement) {\n        $('body').children().off('mouseover', null, $.noop)\n      }\n\n      this._activeTrigger[Trigger.CLICK] = false\n      this._activeTrigger[Trigger.FOCUS] = false\n      this._activeTrigger[Trigger.HOVER] = false\n\n      if (Util.supportsTransitionEnd() &&\n          $(this.tip).hasClass(ClassName.FADE)) {\n\n        $(tip)\n          .one(Util.TRANSITION_END, complete)\n          .emulateTransitionEnd(TRANSITION_DURATION)\n\n      } else {\n        complete()\n      }\n\n      this._hoverState = ''\n\n    }\n\n    update() {\n      if (this._popper !== null) {\n        this._popper.scheduleUpdate()\n      }\n    }\n\n    // protected\n\n    isWithContent() {\n      return Boolean(this.getTitle())\n    }\n\n    addAttachmentClass(attachment) {\n      $(this.getTipElement()).addClass(`${CLASS_PREFIX}-${attachment}`)\n    }\n\n    getTipElement() {\n      this.tip = this.tip || $(this.config.template)[0]\n      return this.tip\n    }\n\n    setContent() {\n      const $tip = $(this.getTipElement())\n      this.setElementContent($tip.find(Selector.TOOLTIP_INNER), this.getTitle())\n      $tip.removeClass(`${ClassName.FADE} ${ClassName.SHOW}`)\n    }\n\n    setElementContent($element, content) {\n      const html = this.config.html\n      if (typeof content === 'object' && (content.nodeType || content.jquery)) {\n        // content is a DOM node or a jQuery\n        if (html) {\n          if (!$(content).parent().is($element)) {\n            $element.empty().append(content)\n          }\n        } else {\n          $element.text($(content).text())\n        }\n      } else {\n        $element[html ? 'html' : 'text'](content)\n      }\n    }\n\n    getTitle() {\n      let title = this.element.getAttribute('data-original-title')\n\n      if (!title) {\n        title = typeof this.config.title === 'function' ?\n          this.config.title.call(this.element) :\n          this.config.title\n      }\n\n      return title\n    }\n\n\n    // private\n\n    _getAttachment(placement) {\n      return AttachmentMap[placement.toUpperCase()]\n    }\n\n    _setListeners() {\n      const triggers = this.config.trigger.split(' ')\n\n      triggers.forEach((trigger) => {\n        if (trigger === 'click') {\n          $(this.element).on(\n            this.constructor.Event.CLICK,\n            this.config.selector,\n            (event) => this.toggle(event)\n          )\n\n        } else if (trigger !== Trigger.MANUAL) {\n          const eventIn  = trigger === Trigger.HOVER ?\n            this.constructor.Event.MOUSEENTER :\n            this.constructor.Event.FOCUSIN\n          const eventOut = trigger === Trigger.HOVER ?\n            this.constructor.Event.MOUSELEAVE :\n            this.constructor.Event.FOCUSOUT\n\n          $(this.element)\n            .on(\n              eventIn,\n              this.config.selector,\n              (event) => this._enter(event)\n            )\n            .on(\n              eventOut,\n              this.config.selector,\n              (event) => this._leave(event)\n            )\n        }\n\n        $(this.element).closest('.modal').on(\n          'hide.bs.modal',\n          () => this.hide()\n        )\n      })\n\n      if (this.config.selector) {\n        this.config = {\n          ...this.config,\n          trigger  : 'manual',\n          selector : ''\n        }\n      } else {\n        this._fixTitle()\n      }\n    }\n\n    _fixTitle() {\n      const titleType = typeof this.element.getAttribute('data-original-title')\n      if (this.element.getAttribute('title') ||\n         titleType !== 'string') {\n        this.element.setAttribute(\n          'data-original-title',\n          this.element.getAttribute('title') || ''\n        )\n        this.element.setAttribute('title', '')\n      }\n    }\n\n    _enter(event, context) {\n      const dataKey = this.constructor.DATA_KEY\n\n      context = context || $(event.currentTarget).data(dataKey)\n\n      if (!context) {\n        context = new this.constructor(\n          event.currentTarget,\n          this._getDelegateConfig()\n        )\n        $(event.currentTarget).data(dataKey, context)\n      }\n\n      if (event) {\n        context._activeTrigger[\n          event.type === 'focusin' ? Trigger.FOCUS : Trigger.HOVER\n        ] = true\n      }\n\n      if ($(context.getTipElement()).hasClass(ClassName.SHOW) ||\n         context._hoverState === HoverState.SHOW) {\n        context._hoverState = HoverState.SHOW\n        return\n      }\n\n      clearTimeout(context._timeout)\n\n      context._hoverState = HoverState.SHOW\n\n      if (!context.config.delay || !context.config.delay.show) {\n        context.show()\n        return\n      }\n\n      context._timeout = setTimeout(() => {\n        if (context._hoverState === HoverState.SHOW) {\n          context.show()\n        }\n      }, context.config.delay.show)\n    }\n\n    _leave(event, context) {\n      const dataKey = this.constructor.DATA_KEY\n\n      context = context || $(event.currentTarget).data(dataKey)\n\n      if (!context) {\n        context = new this.constructor(\n          event.currentTarget,\n          this._getDelegateConfig()\n        )\n        $(event.currentTarget).data(dataKey, context)\n      }\n\n      if (event) {\n        context._activeTrigger[\n          event.type === 'focusout' ? Trigger.FOCUS : Trigger.HOVER\n        ] = false\n      }\n\n      if (context._isWithActiveTrigger()) {\n        return\n      }\n\n      clearTimeout(context._timeout)\n\n      context._hoverState = HoverState.OUT\n\n      if (!context.config.delay || !context.config.delay.hide) {\n        context.hide()\n        return\n      }\n\n      context._timeout = setTimeout(() => {\n        if (context._hoverState === HoverState.OUT) {\n          context.hide()\n        }\n      }, context.config.delay.hide)\n    }\n\n    _isWithActiveTrigger() {\n      for (const trigger in this._activeTrigger) {\n        if (this._activeTrigger[trigger]) {\n          return true\n        }\n      }\n\n      return false\n    }\n\n    _getConfig(config) {\n      config = {\n        ...this.constructor.Default,\n        ...$(this.element).data(),\n        ...config\n      }\n\n      if (typeof config.delay === 'number') {\n        config.delay = {\n          show : config.delay,\n          hide : config.delay\n        }\n      }\n\n      if (typeof config.title === 'number') {\n        config.title = config.title.toString()\n      }\n\n      if (typeof config.content === 'number') {\n        config.content = config.content.toString()\n      }\n\n      Util.typeCheckConfig(\n        NAME,\n        config,\n        this.constructor.DefaultType\n      )\n\n      return config\n    }\n\n    _getDelegateConfig() {\n      const config = {}\n\n      if (this.config) {\n        for (const key in this.config) {\n          if (this.constructor.Default[key] !== this.config[key]) {\n            config[key] = this.config[key]\n          }\n        }\n      }\n\n      return config\n    }\n\n    _cleanTipClass() {\n      const $tip = $(this.getTipElement())\n      const tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX)\n      if (tabClass !== null && tabClass.length > 0) {\n        $tip.removeClass(tabClass.join(''))\n      }\n    }\n\n    _handlePopperPlacementChange(data) {\n      this._cleanTipClass()\n      this.addAttachmentClass(this._getAttachment(data.placement))\n    }\n\n    _fixTransition() {\n      const tip                 = this.getTipElement()\n      const initConfigAnimation = this.config.animation\n      if (tip.getAttribute('x-placement') !== null) {\n        return\n      }\n      $(tip).removeClass(ClassName.FADE)\n      this.config.animation = false\n      this.hide()\n      this.show()\n      this.config.animation = initConfigAnimation\n    }\n\n    // static\n\n    static _jQueryInterface(config) {\n      return this.each(function () {\n        let data      = $(this).data(DATA_KEY)\n        const _config = typeof config === 'object' && config\n\n        if (!data && /dispose|hide/.test(config)) {\n          return\n        }\n\n        if (!data) {\n          data = new Tooltip(this, _config)\n          $(this).data(DATA_KEY, data)\n        }\n\n        if (typeof config === 'string') {\n          if (typeof data[config] === 'undefined') {\n            throw new Error(`No method named \"${config}\"`)\n          }\n          data[config]()\n        }\n      })\n    }\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $.fn[NAME]             = Tooltip._jQueryInterface\n  $.fn[NAME].Constructor = Tooltip\n  $.fn[NAME].noConflict  = function () {\n    $.fn[NAME] = JQUERY_NO_CONFLICT\n    return Tooltip._jQueryInterface\n  }\n\n  return Tooltip\n\n})($, Popper)\n\nexport default Tooltip\n","import $ from 'jquery'\nimport Tooltip from './tooltip'\n\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-beta.3): popover.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Popover = (($) => {\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  const NAME                = 'popover'\n  const VERSION             = '4.0.0-beta.3'\n  const DATA_KEY            = 'bs.popover'\n  const EVENT_KEY           = `.${DATA_KEY}`\n  const JQUERY_NO_CONFLICT  = $.fn[NAME]\n  const CLASS_PREFIX        = 'bs-popover'\n  const BSCLS_PREFIX_REGEX  = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\n\n  const Default = {\n    ...Tooltip.Default,\n    placement : 'right',\n    trigger   : 'click',\n    content   : '',\n    template  : '<div class=\"popover\" role=\"tooltip\">'\n              + '<div class=\"arrow\"></div>'\n              + '<h3 class=\"popover-header\"></h3>'\n              + '<div class=\"popover-body\"></div></div>'\n  }\n\n  const DefaultType = {\n    ...Tooltip.DefaultType,\n    content : '(string|element|function)'\n  }\n\n  const ClassName = {\n    FADE : 'fade',\n    SHOW : 'show'\n  }\n\n  const Selector = {\n    TITLE   : '.popover-header',\n    CONTENT : '.popover-body'\n  }\n\n  const Event = {\n    HIDE       : `hide${EVENT_KEY}`,\n    HIDDEN     : `hidden${EVENT_KEY}`,\n    SHOW       : `show${EVENT_KEY}`,\n    SHOWN      : `shown${EVENT_KEY}`,\n    INSERTED   : `inserted${EVENT_KEY}`,\n    CLICK      : `click${EVENT_KEY}`,\n    FOCUSIN    : `focusin${EVENT_KEY}`,\n    FOCUSOUT   : `focusout${EVENT_KEY}`,\n    MOUSEENTER : `mouseenter${EVENT_KEY}`,\n    MOUSELEAVE : `mouseleave${EVENT_KEY}`\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  class Popover extends Tooltip {\n\n\n    // getters\n\n    static get VERSION() {\n      return VERSION\n    }\n\n    static get Default() {\n      return Default\n    }\n\n    static get NAME() {\n      return NAME\n    }\n\n    static get DATA_KEY() {\n      return DATA_KEY\n    }\n\n    static get Event() {\n      return Event\n    }\n\n    static get EVENT_KEY() {\n      return EVENT_KEY\n    }\n\n    static get DefaultType() {\n      return DefaultType\n    }\n\n\n    // overrides\n\n    isWithContent() {\n      return this.getTitle() || this._getContent()\n    }\n\n    addAttachmentClass(attachment) {\n      $(this.getTipElement()).addClass(`${CLASS_PREFIX}-${attachment}`)\n    }\n\n    getTipElement() {\n      this.tip = this.tip || $(this.config.template)[0]\n      return this.tip\n    }\n\n    setContent() {\n      const $tip = $(this.getTipElement())\n\n      // we use append for html objects to maintain js events\n      this.setElementContent($tip.find(Selector.TITLE), this.getTitle())\n      let content = this._getContent()\n      if (typeof content === 'function') {\n        content = content.call(this.element)\n      }\n      this.setElementContent($tip.find(Selector.CONTENT), content)\n\n      $tip.removeClass(`${ClassName.FADE} ${ClassName.SHOW}`)\n    }\n\n    // private\n\n    _getContent() {\n      return this.element.getAttribute('data-content')\n        || this.config.content\n    }\n\n    _cleanTipClass() {\n      const $tip = $(this.getTipElement())\n      const tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX)\n      if (tabClass !== null && tabClass.length > 0) {\n        $tip.removeClass(tabClass.join(''))\n      }\n    }\n\n\n    // static\n\n    static _jQueryInterface(config) {\n      return this.each(function () {\n        let data      = $(this).data(DATA_KEY)\n        const _config = typeof config === 'object' ? config : null\n\n        if (!data && /destroy|hide/.test(config)) {\n          return\n        }\n\n        if (!data) {\n          data = new Popover(this, _config)\n          $(this).data(DATA_KEY, data)\n        }\n\n        if (typeof config === 'string') {\n          if (typeof data[config] === 'undefined') {\n            throw new Error(`No method named \"${config}\"`)\n          }\n          data[config]()\n        }\n      })\n    }\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $.fn[NAME]             = Popover._jQueryInterface\n  $.fn[NAME].Constructor = Popover\n  $.fn[NAME].noConflict  = function () {\n    $.fn[NAME] = JQUERY_NO_CONFLICT\n    return Popover._jQueryInterface\n  }\n\n  return Popover\n\n})($)\n\nexport default Popover\n","import $ from 'jquery'\nimport Util from './util'\n\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-beta.3): scrollspy.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst ScrollSpy = (($) => {\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  const NAME               = 'scrollspy'\n  const VERSION            = '4.0.0-beta.3'\n  const DATA_KEY           = 'bs.scrollspy'\n  const EVENT_KEY          = `.${DATA_KEY}`\n  const DATA_API_KEY       = '.data-api'\n  const JQUERY_NO_CONFLICT = $.fn[NAME]\n\n  const Default = {\n    offset : 10,\n    method : 'auto',\n    target : ''\n  }\n\n  const DefaultType = {\n    offset : 'number',\n    method : 'string',\n    target : '(string|element)'\n  }\n\n  const Event = {\n    ACTIVATE      : `activate${EVENT_KEY}`,\n    SCROLL        : `scroll${EVENT_KEY}`,\n    LOAD_DATA_API : `load${EVENT_KEY}${DATA_API_KEY}`\n  }\n\n  const ClassName = {\n    DROPDOWN_ITEM : 'dropdown-item',\n    DROPDOWN_MENU : 'dropdown-menu',\n    ACTIVE        : 'active'\n  }\n\n  const Selector = {\n    DATA_SPY        : '[data-spy=\"scroll\"]',\n    ACTIVE          : '.active',\n    NAV_LIST_GROUP  : '.nav, .list-group',\n    NAV_LINKS       : '.nav-link',\n    NAV_ITEMS       : '.nav-item',\n    LIST_ITEMS      : '.list-group-item',\n    DROPDOWN        : '.dropdown',\n    DROPDOWN_ITEMS  : '.dropdown-item',\n    DROPDOWN_TOGGLE : '.dropdown-toggle'\n  }\n\n  const OffsetMethod = {\n    OFFSET   : 'offset',\n    POSITION : 'position'\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  class ScrollSpy {\n\n    constructor(element, config) {\n      this._element       = element\n      this._scrollElement = element.tagName === 'BODY' ? window : element\n      this._config        = this._getConfig(config)\n      this._selector      = `${this._config.target} ${Selector.NAV_LINKS},`\n                          + `${this._config.target} ${Selector.LIST_ITEMS},`\n                          + `${this._config.target} ${Selector.DROPDOWN_ITEMS}`\n      this._offsets       = []\n      this._targets       = []\n      this._activeTarget  = null\n      this._scrollHeight  = 0\n\n      $(this._scrollElement).on(Event.SCROLL, (event) => this._process(event))\n\n      this.refresh()\n      this._process()\n    }\n\n\n    // getters\n\n    static get VERSION() {\n      return VERSION\n    }\n\n    static get Default() {\n      return Default\n    }\n\n\n    // public\n\n    refresh() {\n      const autoMethod = this._scrollElement !== this._scrollElement.window ?\n        OffsetMethod.POSITION : OffsetMethod.OFFSET\n\n      const offsetMethod = this._config.method === 'auto' ?\n        autoMethod : this._config.method\n\n      const offsetBase = offsetMethod === OffsetMethod.POSITION ?\n        this._getScrollTop() : 0\n\n      this._offsets = []\n      this._targets = []\n\n      this._scrollHeight = this._getScrollHeight()\n\n      const targets = $.makeArray($(this._selector))\n\n      targets\n        .map((element) => {\n          let target\n          const targetSelector = Util.getSelectorFromElement(element)\n\n          if (targetSelector) {\n            target = $(targetSelector)[0]\n          }\n\n          if (target) {\n            const targetBCR = target.getBoundingClientRect()\n            if (targetBCR.width || targetBCR.height) {\n              // todo (fat): remove sketch reliance on jQuery position/offset\n              return [\n                $(target)[offsetMethod]().top + offsetBase,\n                targetSelector\n              ]\n            }\n          }\n          return null\n        })\n        .filter((item)  => item)\n        .sort((a, b)    => a[0] - b[0])\n        .forEach((item) => {\n          this._offsets.push(item[0])\n          this._targets.push(item[1])\n        })\n    }\n\n    dispose() {\n      $.removeData(this._element, DATA_KEY)\n      $(this._scrollElement).off(EVENT_KEY)\n\n      this._element       = null\n      this._scrollElement = null\n      this._config        = null\n      this._selector      = null\n      this._offsets       = null\n      this._targets       = null\n      this._activeTarget  = null\n      this._scrollHeight  = null\n    }\n\n\n    // private\n\n    _getConfig(config) {\n      config = {\n        ...Default,\n        ...config\n      }\n\n      if (typeof config.target !== 'string') {\n        let id = $(config.target).attr('id')\n        if (!id) {\n          id = Util.getUID(NAME)\n          $(config.target).attr('id', id)\n        }\n        config.target = `#${id}`\n      }\n\n      Util.typeCheckConfig(NAME, config, DefaultType)\n\n      return config\n    }\n\n    _getScrollTop() {\n      return this._scrollElement === window ?\n          this._scrollElement.pageYOffset : this._scrollElement.scrollTop\n    }\n\n    _getScrollHeight() {\n      return this._scrollElement.scrollHeight || Math.max(\n        document.body.scrollHeight,\n        document.documentElement.scrollHeight\n      )\n    }\n\n    _getOffsetHeight() {\n      return this._scrollElement === window ?\n          window.innerHeight : this._scrollElement.getBoundingClientRect().height\n    }\n\n    _process() {\n      const scrollTop    = this._getScrollTop() + this._config.offset\n      const scrollHeight = this._getScrollHeight()\n      const maxScroll    = this._config.offset\n        + scrollHeight\n        - this._getOffsetHeight()\n\n      if (this._scrollHeight !== scrollHeight) {\n        this.refresh()\n      }\n\n      if (scrollTop >= maxScroll) {\n        const target = this._targets[this._targets.length - 1]\n\n        if (this._activeTarget !== target) {\n          this._activate(target)\n        }\n        return\n      }\n\n      if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) {\n        this._activeTarget = null\n        this._clear()\n        return\n      }\n\n      for (let i = this._offsets.length; i--;) {\n        const isActiveTarget = this._activeTarget !== this._targets[i]\n            && scrollTop >= this._offsets[i]\n            && (typeof this._offsets[i + 1] === 'undefined' ||\n                scrollTop < this._offsets[i + 1])\n\n        if (isActiveTarget) {\n          this._activate(this._targets[i])\n        }\n      }\n    }\n\n    _activate(target) {\n      this._activeTarget = target\n\n      this._clear()\n\n      let queries = this._selector.split(',')\n      // eslint-disable-next-line arrow-body-style\n      queries     = queries.map((selector) => {\n        return `${selector}[data-target=\"${target}\"],` +\n               `${selector}[href=\"${target}\"]`\n      })\n\n      const $link = $(queries.join(','))\n\n      if ($link.hasClass(ClassName.DROPDOWN_ITEM)) {\n        $link.closest(Selector.DROPDOWN).find(Selector.DROPDOWN_TOGGLE).addClass(ClassName.ACTIVE)\n        $link.addClass(ClassName.ACTIVE)\n      } else {\n        // Set triggered link as active\n        $link.addClass(ClassName.ACTIVE)\n        // Set triggered links parents as active\n        // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor\n        $link.parents(Selector.NAV_LIST_GROUP).prev(`${Selector.NAV_LINKS}, ${Selector.LIST_ITEMS}`).addClass(ClassName.ACTIVE)\n        // Handle special case when .nav-link is inside .nav-item\n        $link.parents(Selector.NAV_LIST_GROUP).prev(Selector.NAV_ITEMS).children(Selector.NAV_LINKS).addClass(ClassName.ACTIVE)\n      }\n\n      $(this._scrollElement).trigger(Event.ACTIVATE, {\n        relatedTarget: target\n      })\n    }\n\n    _clear() {\n      $(this._selector).filter(Selector.ACTIVE).removeClass(ClassName.ACTIVE)\n    }\n\n\n    // static\n\n    static _jQueryInterface(config) {\n      return this.each(function () {\n        let data      = $(this).data(DATA_KEY)\n        const _config = typeof config === 'object' && config\n\n        if (!data) {\n          data = new ScrollSpy(this, _config)\n          $(this).data(DATA_KEY, data)\n        }\n\n        if (typeof config === 'string') {\n          if (typeof data[config] === 'undefined') {\n            throw new Error(`No method named \"${config}\"`)\n          }\n          data[config]()\n        }\n      })\n    }\n\n\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n  $(window).on(Event.LOAD_DATA_API, () => {\n    const scrollSpys = $.makeArray($(Selector.DATA_SPY))\n\n    for (let i = scrollSpys.length; i--;) {\n      const $spy = $(scrollSpys[i])\n      ScrollSpy._jQueryInterface.call($spy, $spy.data())\n    }\n  })\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $.fn[NAME]             = ScrollSpy._jQueryInterface\n  $.fn[NAME].Constructor = ScrollSpy\n  $.fn[NAME].noConflict  = function () {\n    $.fn[NAME] = JQUERY_NO_CONFLICT\n    return ScrollSpy._jQueryInterface\n  }\n\n  return ScrollSpy\n\n})($)\n\nexport default ScrollSpy\n","import $ from 'jquery'\nimport Util from './util'\n\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-beta.3): tab.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Tab = (($) => {\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  const NAME                = 'tab'\n  const VERSION             = '4.0.0-beta.3'\n  const DATA_KEY            = 'bs.tab'\n  const EVENT_KEY           = `.${DATA_KEY}`\n  const DATA_API_KEY        = '.data-api'\n  const JQUERY_NO_CONFLICT  = $.fn[NAME]\n  const TRANSITION_DURATION = 150\n\n  const Event = {\n    HIDE           : `hide${EVENT_KEY}`,\n    HIDDEN         : `hidden${EVENT_KEY}`,\n    SHOW           : `show${EVENT_KEY}`,\n    SHOWN          : `shown${EVENT_KEY}`,\n    CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n  }\n\n  const ClassName = {\n    DROPDOWN_MENU : 'dropdown-menu',\n    ACTIVE        : 'active',\n    DISABLED      : 'disabled',\n    FADE          : 'fade',\n    SHOW          : 'show'\n  }\n\n  const Selector = {\n    DROPDOWN              : '.dropdown',\n    NAV_LIST_GROUP        : '.nav, .list-group',\n    ACTIVE                : '.active',\n    ACTIVE_UL             : '> li > .active',\n    DATA_TOGGLE           : '[data-toggle=\"tab\"], [data-toggle=\"pill\"], [data-toggle=\"list\"]',\n    DROPDOWN_TOGGLE       : '.dropdown-toggle',\n    DROPDOWN_ACTIVE_CHILD : '> .dropdown-menu .active'\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  class Tab {\n\n    constructor(element) {\n      this._element = element\n    }\n\n\n    // getters\n\n    static get VERSION() {\n      return VERSION\n    }\n\n\n    // public\n\n    show() {\n      if (this._element.parentNode &&\n          this._element.parentNode.nodeType === Node.ELEMENT_NODE &&\n          $(this._element).hasClass(ClassName.ACTIVE) ||\n          $(this._element).hasClass(ClassName.DISABLED)) {\n        return\n      }\n\n      let target\n      let previous\n      const listElement = $(this._element).closest(Selector.NAV_LIST_GROUP)[0]\n      const selector    = Util.getSelectorFromElement(this._element)\n\n      if (listElement) {\n        const itemSelector = listElement.nodeName === 'UL' ? Selector.ACTIVE_UL : Selector.ACTIVE\n        previous = $.makeArray($(listElement).find(itemSelector))\n        previous = previous[previous.length - 1]\n      }\n\n      const hideEvent = $.Event(Event.HIDE, {\n        relatedTarget: this._element\n      })\n\n      const showEvent = $.Event(Event.SHOW, {\n        relatedTarget: previous\n      })\n\n      if (previous) {\n        $(previous).trigger(hideEvent)\n      }\n\n      $(this._element).trigger(showEvent)\n\n      if (showEvent.isDefaultPrevented() ||\n         hideEvent.isDefaultPrevented()) {\n        return\n      }\n\n      if (selector) {\n        target = $(selector)[0]\n      }\n\n      this._activate(\n        this._element,\n        listElement\n      )\n\n      const complete = () => {\n        const hiddenEvent = $.Event(Event.HIDDEN, {\n          relatedTarget: this._element\n        })\n\n        const shownEvent = $.Event(Event.SHOWN, {\n          relatedTarget: previous\n        })\n\n        $(previous).trigger(hiddenEvent)\n        $(this._element).trigger(shownEvent)\n      }\n\n      if (target) {\n        this._activate(target, target.parentNode, complete)\n      } else {\n        complete()\n      }\n    }\n\n    dispose() {\n      $.removeData(this._element, DATA_KEY)\n      this._element = null\n    }\n\n\n    // private\n\n    _activate(element, container, callback) {\n      let activeElements\n      if (container.nodeName === 'UL') {\n        activeElements = $(container).find(Selector.ACTIVE_UL)\n      } else {\n        activeElements = $(container).children(Selector.ACTIVE)\n      }\n\n      const active          = activeElements[0]\n      const isTransitioning = callback\n        && Util.supportsTransitionEnd()\n        && (active && $(active).hasClass(ClassName.FADE))\n\n      const complete = () => this._transitionComplete(\n        element,\n        active,\n        callback\n      )\n\n      if (active && isTransitioning) {\n        $(active)\n          .one(Util.TRANSITION_END, complete)\n          .emulateTransitionEnd(TRANSITION_DURATION)\n      } else {\n        complete()\n      }\n    }\n\n    _transitionComplete(element, active, callback) {\n      if (active) {\n        $(active).removeClass(`${ClassName.SHOW} ${ClassName.ACTIVE}`)\n\n        const dropdownChild = $(active.parentNode).find(\n          Selector.DROPDOWN_ACTIVE_CHILD\n        )[0]\n\n        if (dropdownChild) {\n          $(dropdownChild).removeClass(ClassName.ACTIVE)\n        }\n\n        if (active.getAttribute('role') === 'tab') {\n          active.setAttribute('aria-selected', false)\n        }\n      }\n\n      $(element).addClass(ClassName.ACTIVE)\n      if (element.getAttribute('role') === 'tab') {\n        element.setAttribute('aria-selected', true)\n      }\n\n      Util.reflow(element)\n      $(element).addClass(ClassName.SHOW)\n\n      if (element.parentNode &&\n          $(element.parentNode).hasClass(ClassName.DROPDOWN_MENU)) {\n\n        const dropdownElement = $(element).closest(Selector.DROPDOWN)[0]\n        if (dropdownElement) {\n          $(dropdownElement).find(Selector.DROPDOWN_TOGGLE).addClass(ClassName.ACTIVE)\n        }\n\n        element.setAttribute('aria-expanded', true)\n      }\n\n      if (callback) {\n        callback()\n      }\n    }\n\n\n    // static\n\n    static _jQueryInterface(config) {\n      return this.each(function () {\n        const $this = $(this)\n        let data    = $this.data(DATA_KEY)\n\n        if (!data) {\n          data = new Tab(this)\n          $this.data(DATA_KEY, data)\n        }\n\n        if (typeof config === 'string') {\n          if (typeof data[config] === 'undefined') {\n            throw new Error(`No method named \"${config}\"`)\n          }\n          data[config]()\n        }\n      })\n    }\n\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n  $(document)\n    .on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n      event.preventDefault()\n      Tab._jQueryInterface.call($(this), 'show')\n    })\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $.fn[NAME]             = Tab._jQueryInterface\n  $.fn[NAME].Constructor = Tab\n  $.fn[NAME].noConflict  = function () {\n    $.fn[NAME] = JQUERY_NO_CONFLICT\n    return Tab._jQueryInterface\n  }\n\n  return Tab\n\n})($)\n\nexport default Tab\n","import $ from 'jquery'\nimport Alert from './alert'\nimport Button from './button'\nimport Carousel from './carousel'\nimport Collapse from './collapse'\nimport Dropdown from './dropdown'\nimport Modal from './modal'\nimport Popover from './popover'\nimport Scrollspy from './scrollspy'\nimport Tab from './tab'\nimport Tooltip from './tooltip'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-alpha.6): index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n(($) => {\n  if (typeof $ === 'undefined') {\n    throw new Error('Bootstrap\\'s JavaScript requires jQuery. jQuery must be included before Bootstrap\\'s JavaScript.')\n  }\n\n  const version = $.fn.jquery.split(' ')[0].split('.')\n  const minMajor = 1\n  const ltMajor  = 2\n  const minMinor = 9\n  const minPatch = 1\n  const maxMajor = 4\n\n  if (version[0] < ltMajor && version[1] < minMinor || version[0] === minMajor && version[1] === minMinor && version[2] < minPatch || version[0] >= maxMajor) {\n    throw new Error('Bootstrap\\'s JavaScript requires at least jQuery v1.9.1 but less than v4.0.0')\n  }\n})($)\n\nexport {\n  Util,\n  Alert,\n  Button,\n  Carousel,\n  Collapse,\n  Dropdown,\n  Modal,\n  Popover,\n  Scrollspy,\n  Tab,\n  Tooltip\n}\n"],"names":["Util","$","transition","MAX_UID","toType","obj","toString","call","match","toLowerCase","getSpecialTransitionEndEvent","end","event","target","is","handleObj","handler","apply","arguments","undefined","transitionEndTest","window","QUnit","transitionEndEmulator","duration","called","one","TRANSITION_END","triggerTransitionEnd","setTransitionEndSupport","fn","emulateTransitionEnd","supportsTransitionEnd","special","escapeId","selector","escapeSelector","substr","replace","prefix","Math","random","document","getElementById","element","getAttribute","charAt","$selector","find","length","error","offsetHeight","trigger","Boolean","nodeType","componentName","config","configTypes","property","Object","prototype","hasOwnProperty","expectedTypes","value","valueType","isElement","RegExp","test","Error","toUpperCase","Alert","NAME","VERSION","DATA_KEY","EVENT_KEY","DATA_API_KEY","JQUERY_NO_CONFLICT","TRANSITION_DURATION","Selector","Event","ClassName","_element","close","rootElement","_getRootElement","customEvent","_triggerCloseEvent","isDefaultPrevented","_removeElement","dispose","removeData","getSelectorFromElement","parent","closest","ALERT","closeEvent","CLOSE","removeClass","SHOW","hasClass","FADE","_destroyElement","detach","CLOSED","remove","_jQueryInterface","each","$element","data","_handleDismiss","alertInstance","preventDefault","on","CLICK_DATA_API","DISMISS","Constructor","noConflict","Button","toggle","triggerChangeEvent","addAriaPressed","DATA_TOGGLE","input","INPUT","type","checked","ACTIVE","activeElement","hasAttribute","classList","contains","focus","setAttribute","toggleClass","DATA_TOGGLE_CARROT","button","BUTTON","FOCUS_BLUR_DATA_API","FOCUS","Carousel","ARROW_LEFT_KEYCODE","ARROW_RIGHT_KEYCODE","TOUCHEVENT_COMPAT_WAIT","Default","DefaultType","Direction","_items","_interval","_activeElement","_isPaused","_isSliding","touchTimeout","_config","_getConfig","_indicatorsElement","INDICATORS","_addEventListeners","next","_slide","NEXT","nextWhenVisible","hidden","css","prev","PREV","pause","NEXT_PREV","cycle","interval","setInterval","visibilityState","bind","to","index","ACTIVE_ITEM","activeIndex","_getItemIndex","SLID","direction","off","typeCheckConfig","keyboard","KEYDOWN","_keydown","MOUSEENTER","MOUSELEAVE","documentElement","TOUCHEND","setTimeout","tagName","which","makeArray","ITEM","indexOf","_getItemByDirection","isNextDirection","isPrevDirection","lastItemIndex","isGoingToWrap","wrap","delta","itemIndex","_triggerSlideEvent","relatedTarget","eventDirectionName","targetIndex","fromIndex","slideEvent","SLIDE","_setActiveIndicatorElement","nextIndicator","children","addClass","activeElementIndex","nextElement","nextElementIndex","isCycling","directionalClassName","orderClassName","LEFT","RIGHT","slidEvent","reflow","action","slide","_dataApiClickHandler","CAROUSEL","slideIndex","DATA_SLIDE","LOAD_DATA_API","DATA_RIDE","$carousel","Collapse","Dimension","_isTransitioning","_triggerArray","id","tabToggles","i","elem","filter","push","_parent","_getParent","_addAriaAndCollapsedClass","hide","show","actives","activesData","ACTIVES","startEvent","dimension","_getDimension","COLLAPSE","COLLAPSING","style","COLLAPSED","attr","setTransitioning","complete","SHOWN","capitalizedDimension","slice","scrollSize","HIDE","getBoundingClientRect","$elem","HIDDEN","isTransitioning","hasWidth","WIDTH","HEIGHT","jquery","_getTargetFromElement","triggerArray","isOpen","$this","currentTarget","$trigger","$target","Dropdown","ESCAPE_KEYCODE","SPACE_KEYCODE","TAB_KEYCODE","ARROW_UP_KEYCODE","ARROW_DOWN_KEYCODE","RIGHT_MOUSE_BUTTON_WHICH","REGEXP_KEYDOWN","AttachmentMap","_popper","_menu","_getMenuElement","_inNavbar","_detectNavbar","disabled","DISABLED","_getParentFromElement","isActive","_clearMenus","showEvent","Popper","DROPUP","MENULEFT","MENURIGHT","boundary","POSITION_STATIC","_getPopperConfig","NAVBAR_NAV","noop","destroy","update","scheduleUpdate","CLICK","stopPropagation","constructor","MENU","_getPlacement","$parentDropdown","placement","BOTTOM","TOP","TOPEND","DROPRIGHT","DROPLEFT","BOTTOMEND","offsetConf","offset","offsets","popperConfig","flip","toggles","context","dropdownMenu","hideEvent","parentNode","_dataApiKeydownHandler","items","VISIBLE_ITEMS","get","KEYDOWN_DATA_API","KEYUP_DATA_API","FORM_CHILD","e","Modal","BACKDROP_TRANSITION_DURATION","_dialog","DIALOG","_backdrop","_isShown","_isBodyOverflowing","_ignoreBackdropClick","_originalBodyPadding","_scrollbarWidth","_checkScrollbar","_setScrollbar","_adjustDialog","body","OPEN","_setEscapeEvent","_setResizeEvent","CLICK_DISMISS","DATA_DISMISS","MOUSEDOWN_DISMISS","MOUSEUP_DISMISS","_showBackdrop","_showElement","FOCUSIN","_hideModal","handleUpdate","Node","ELEMENT_NODE","appendChild","display","removeAttribute","scrollTop","_enforceFocus","shownEvent","transitionComplete","has","KEYDOWN_DISMISS","RESIZE","_resetAdjustments","_resetScrollbar","_removeBackdrop","callback","animate","backdrop","doAnimate","createElement","className","BACKDROP","appendTo","callbackRemove","isModalOverflowing","scrollHeight","clientHeight","paddingLeft","paddingRight","rect","left","right","innerWidth","_getScrollbarWidth","FIXED_CONTENT","actualPadding","calculatedPadding","parseFloat","STICKY_CONTENT","actualMargin","marginRight","calculatedMargin","NAVBAR_TOGGLER","padding","margin","scrollDiv","SCROLLBAR_MEASURER","scrollbarWidth","width","clientWidth","removeChild","Tooltip","CLASS_PREFIX","BSCLS_PREFIX_REGEX","HoverState","Trigger","_isEnabled","_timeout","_hoverState","_activeTrigger","tip","_setListeners","enable","disable","toggleEnabled","dataKey","_getDelegateConfig","click","_isWithActiveTrigger","_enter","_leave","getTipElement","isWithContent","isInTheDom","ownerDocument","tipId","getUID","setContent","animation","attachment","_getAttachment","addAttachmentClass","container","INSERTED","fallbackPlacement","ARROW","originalPlacement","_handlePopperPlacementChange","_fixTransition","prevHoverState","OUT","_TRANSITION_DURATION","_cleanTipClass","HOVER","getTitle","template","$tip","setElementContent","TOOLTIP_INNER","content","html","empty","append","text","title","triggers","split","forEach","MANUAL","eventIn","eventOut","FOCUSOUT","_fixTitle","titleType","delay","key","tabClass","join","initConfigAnimation","Popover","_getContent","TITLE","CONTENT","ScrollSpy","OffsetMethod","_scrollElement","_selector","NAV_LINKS","LIST_ITEMS","DROPDOWN_ITEMS","_offsets","_targets","_activeTarget","_scrollHeight","SCROLL","_process","refresh","autoMethod","POSITION","OFFSET","offsetMethod","method","offsetBase","_getScrollTop","_getScrollHeight","targets","map","targetSelector","targetBCR","height","top","item","sort","a","b","pageYOffset","max","_getOffsetHeight","innerHeight","maxScroll","_activate","_clear","isActiveTarget","queries","$link","DROPDOWN_ITEM","DROPDOWN","DROPDOWN_TOGGLE","parents","NAV_LIST_GROUP","NAV_ITEMS","ACTIVATE","scrollSpys","DATA_SPY","$spy","Tab","previous","listElement","itemSelector","nodeName","ACTIVE_UL","hiddenEvent","activeElements","active","_transitionComplete","dropdownChild","DROPDOWN_ACTIVE_CHILD","DROPDOWN_MENU","dropdownElement","version","minMajor","ltMajor","minMinor","minPatch","maxMajor"],"mappings":";;;;;;;;;;;;;;AAEA,SAAS,iBAAiB,CAAC,MAAM,EAAE,KAAK,EAAE;EACxC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;IACrC,IAAI,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IAC1B,UAAU,CAAC,UAAU,GAAG,UAAU,CAAC,UAAU,IAAI,KAAK,CAAC;IACvD,UAAU,CAAC,YAAY,GAAG,IAAI,CAAC;IAC/B,IAAI,OAAO,IAAI,UAAU,EAAE,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC;IACtD,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,UAAU,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;GAC3D;CACF;;AAED,SAAS,YAAY,CAAC,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE;EAC1D,IAAI,UAAU,EAAE,iBAAiB,CAAC,WAAW,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;EACrE,IAAI,WAAW,EAAE,iBAAiB,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;EAC7D,OAAO,WAAW,CAAC;CACpB;;AAED,SAAS,QAAQ,GAAG;EAClB,QAAQ,GAAG,MAAM,CAAC,MAAM,IAAI,UAAU,MAAM,EAAE;IAC5C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;MACzC,IAAI,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;;MAE1B,KAAK,IAAI,GAAG,IAAI,MAAM,EAAE;QACtB,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE;UACrD,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;SAC3B;OACF;KACF;;IAED,OAAO,MAAM,CAAC;GACf,CAAC;;EAEF,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;CACxC;;AAED,SAAS,cAAc,CAAC,QAAQ,EAAE,UAAU,EAAE;EAC5C,QAAQ,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;EACzD,QAAQ,CAAC,SAAS,CAAC,WAAW,GAAG,QAAQ,CAAC;EAC1C,QAAQ,CAAC,SAAS,GAAG,UAAU,CAAC;;;CACjC,DCtCD;;;;;;;AAOA,IAAMA,OAAQ,UAACC,IAAD,EAAO;;;;;;MASfC,aAAa,KAAjB;MAEMC,UAAU,OAAhB,CAXmB;;WAcVC,MAAT,CAAgBC,GAAhB,EAAqB;WACZ,GAAGC,QAAH,CAAYC,IAAZ,CAAiBF,GAAjB,EAAsBG,KAAtB,CAA4B,eAA5B,EAA6C,CAA7C,EAAgDC,WAAhD,EAAP;;;WAGOC,4BAAT,GAAwC;WAC/B;gBACKR,WAAWS,GADhB;oBAEST,WAAWS,GAFpB;YAAA,kBAGEC,KAHF,EAGS;YACRX,KAAEW,MAAMC,MAAR,EAAgBC,EAAhB,CAAmB,IAAnB,CAAJ,EAA8B;iBACrBF,MAAMG,SAAN,CAAgBC,OAAhB,CAAwBC,KAAxB,CAA8B,IAA9B,EAAoCC,SAApC,CAAP,CAD4B;;;eAGvBC,SAAP,CAJY;;KAHhB;;;WAYOC,iBAAT,GAA6B;QACvBC,OAAOC,KAAX,EAAkB;aACT,KAAP;;;WAGK;WACA;KADP;;;WAKOC,qBAAT,CAA+BC,QAA/B,EAAyC;;;QACnCC,SAAS,KAAb;SAEE,IAAF,EAAQC,GAAR,CAAY1B,KAAK2B,cAAjB,EAAiC,YAAM;eAC5B,IAAT;KADF;eAIW,YAAM;UACX,CAACF,MAAL,EAAa;aACNG,oBAAL;;KAFJ,EAIGJ,QAJH;WAMO,IAAP;;;WAGOK,uBAAT,GAAmC;iBACpBT,mBAAb;SAEEU,EAAF,CAAKC,oBAAL,GAA4BR,qBAA5B;;QAEIvB,KAAKgC,qBAAL,EAAJ,EAAkC;WAC9BpB,KAAF,CAAQqB,OAAR,CAAgBjC,KAAK2B,cAArB,IAAuCjB,8BAAvC;;;;WAIKwB,QAAT,CAAkBC,QAAlB,EAA4B;;;eAGf,OAAOlC,KAAEmC,cAAT,KAA4B,UAA5B,GAAyCnC,KAAEmC,cAAF,CAAiBD,QAAjB,EAA2BE,MAA3B,CAAkC,CAAlC,CAAzC,GACTF,SAASG,OAAT,CAAiB,qBAAjB,EAAwC,MAAxC,CADF;WAGOH,QAAP;;;;;;;;;MASInC,OAAO;oBAEK,iBAFL;UAAA,kBAIJuC,MAJI,EAII;SACV;;kBAES,CAAC,EAAEC,KAAKC,MAAL,KAAgBtC,OAAlB,CAAX,CAFC;OAAH,QAGSuC,SAASC,cAAT,CAAwBJ,MAAxB,CAHT;;aAIOA,MAAP;KATS;0BAAA,kCAYYK,OAZZ,EAYqB;UAC1BT,WAAWS,QAAQC,YAAR,CAAqB,aAArB,CAAf;;UACI,CAACV,QAAD,IAAaA,aAAa,GAA9B,EAAmC;mBACtBS,QAAQC,YAAR,CAAqB,MAArB,KAAgC,EAA3C;OAH4B;;;UAO1BV,SAASW,MAAT,CAAgB,CAAhB,MAAuB,GAA3B,EAAgC;mBACnBZ,SAASC,QAAT,CAAX;;;UAGE;YACIY,YAAY9C,KAAEyC,QAAF,EAAYM,IAAZ,CAAiBb,QAAjB,CAAlB;eACOY,UAAUE,MAAV,GAAmB,CAAnB,GAAuBd,QAAvB,GAAkC,IAAzC;OAFF,CAGE,OAAOe,KAAP,EAAc;eACP,IAAP;;KA3BO;UAAA,kBA+BJN,OA/BI,EA+BK;aACPA,QAAQO,YAAf;KAhCS;wBAAA,gCAmCUP,OAnCV,EAmCmB;WAC1BA,OAAF,EAAWQ,OAAX,CAAmBlD,WAAWS,GAA9B;KApCS;yBAAA,mCAuCa;aACf0C,QAAQnD,UAAR,CAAP;KAxCS;aAAA,qBA2CDG,GA3CC,EA2CI;aACN,CAACA,IAAI,CAAJ,KAAUA,GAAX,EAAgBiD,QAAvB;KA5CS;mBAAA,2BA+CKC,aA/CL,EA+CoBC,MA/CpB,EA+C4BC,WA/C5B,EA+CyC;WAC7C,IAAMC,QAAX,IAAuBD,WAAvB,EAAoC;YAC9BE,OAAOC,SAAP,CAAiBC,cAAjB,CAAgCtD,IAAhC,CAAqCkD,WAArC,EAAkDC,QAAlD,CAAJ,EAAiE;cACzDI,gBAAgBL,YAAYC,QAAZ,CAAtB;cACMK,QAAgBP,OAAOE,QAAP,CAAtB;cACMM,YAAgBD,SAAS/D,KAAKiE,SAAL,CAAeF,KAAf,CAAT,GACA,SADA,GACY3D,OAAO2D,KAAP,CADlC;;cAGI,CAAC,IAAIG,MAAJ,CAAWJ,aAAX,EAA0BK,IAA1B,CAA+BH,SAA/B,CAAL,EAAgD;kBACxC,IAAII,KAAJ,CACDb,cAAcc,WAAd,EAAH,yBACWX,QADX,2BACuCM,SADvC,sCAEsBF,aAFtB,SADI,CAAN;;;;;GAxDV;;SAoEO9D,IAAP;CAtJW,CAwJVC,CAxJU,CAAb;;ACLA;;;;;;;AAOA,IAAMqE,QAAS,UAACrE,IAAD,EAAO;;;;;;MASdsE,OAAsB,OAA5B;MACMC,UAAsB,cAA5B;MACMC,WAAsB,UAA5B;MACMC,kBAA0BD,QAAhC;MACME,eAAsB,WAA5B;MACMC,qBAAsB3E,KAAE6B,EAAF,CAAKyC,IAAL,CAA5B;MACMM,sBAAsB,GAA5B;MAEMC,WAAW;aACL;GADZ;MAIMC,QAAQ;qBACaL,SADb;uBAEcA,SAFd;8BAGaA,SAAzB,GAAqCC;GAHvC;MAMMK,YAAY;WACR,OADQ;UAER,MAFQ;UAGR;;;;;;;GAHV;;MAaMV,KAxCc;;;mBA0CN1B,OAAZ,EAAqB;WACdqC,QAAL,GAAgBrC,OAAhB;KA3CgB;;;;;;WAwDlBsC,KAxDkB,kBAwDZtC,OAxDY,EAwDH;gBACHA,WAAW,KAAKqC,QAA1B;;UAEME,cAAc,KAAKC,eAAL,CAAqBxC,OAArB,CAApB;;UACMyC,cAAc,KAAKC,kBAAL,CAAwBH,WAAxB,CAApB;;UAEIE,YAAYE,kBAAZ,EAAJ,EAAsC;;;;WAIjCC,cAAL,CAAoBL,WAApB;KAlEgB;;WAqElBM,OArEkB,sBAqER;WACNC,UAAF,CAAa,KAAKT,QAAlB,EAA4BR,QAA5B;WACKQ,QAAL,GAAgB,IAAhB;KAvEgB;;;WA6ElBG,eA7EkB,4BA6EFxC,OA7EE,EA6EO;UACjBT,WAAWnC,KAAK2F,sBAAL,CAA4B/C,OAA5B,CAAjB;UACIgD,SAAa,KAAjB;;UAEIzD,QAAJ,EAAc;iBACHlC,KAAEkC,QAAF,EAAY,CAAZ,CAAT;;;UAGE,CAACyD,MAAL,EAAa;iBACF3F,KAAE2C,OAAF,EAAWiD,OAAX,OAAuBb,UAAUc,KAAjC,EAA0C,CAA1C,CAAT;;;aAGKF,MAAP;KAzFgB;;WA4FlBN,kBA5FkB,+BA4FC1C,OA5FD,EA4FU;UACpBmD,aAAa9F,KAAE8E,KAAF,CAAQA,MAAMiB,KAAd,CAAnB;WAEEpD,OAAF,EAAWQ,OAAX,CAAmB2C,UAAnB;aACOA,UAAP;KAhGgB;;WAmGlBP,cAnGkB,2BAmGH5C,OAnGG,EAmGM;;;WACpBA,OAAF,EAAWqD,WAAX,CAAuBjB,UAAUkB,IAAjC;;UAEI,CAAClG,KAAKgC,qBAAL,EAAD,IACA,CAAC/B,KAAE2C,OAAF,EAAWuD,QAAX,CAAoBnB,UAAUoB,IAA9B,CADL,EAC0C;aACnCC,eAAL,CAAqBzD,OAArB;;;;;WAIAA,OAAF,EACGlB,GADH,CACO1B,KAAK2B,cADZ,EAC4B,UAACf,KAAD;eAAW,MAAKyF,eAAL,CAAqBzD,OAArB,EAA8BhC,KAA9B,CAAX;OAD5B,EAEGmB,oBAFH,CAEwB8C,mBAFxB;KA5GgB;;WAiHlBwB,eAjHkB,4BAiHFzD,OAjHE,EAiHO;WACrBA,OAAF,EACG0D,MADH,GAEGlD,OAFH,CAEW2B,MAAMwB,MAFjB,EAGGC,MAHH;KAlHgB;;;UA2HXC,gBA3HW,6BA2HMjD,MA3HN,EA2Hc;aACvB,KAAKkD,IAAL,CAAU,YAAY;YACrBC,WAAW1G,KAAE,IAAF,CAAjB;YACI2G,OAAaD,SAASC,IAAT,CAAcnC,QAAd,CAAjB;;YAEI,CAACmC,IAAL,EAAW;iBACF,IAAItC,KAAJ,CAAU,IAAV,CAAP;mBACSsC,IAAT,CAAcnC,QAAd,EAAwBmC,IAAxB;;;YAGEpD,WAAW,OAAf,EAAwB;eACjBA,MAAL,EAAa,IAAb;;OAVG,CAAP;KA5HgB;;UA2IXqD,cA3IW,2BA2IIC,aA3IJ,EA2ImB;aAC5B,UAAUlG,KAAV,EAAiB;YAClBA,KAAJ,EAAW;gBACHmG,cAAN;;;sBAGY7B,KAAd,CAAoB,IAApB;OALF;KA5IgB;;;;0BAiDG;eACZV,OAAP;;;;;;;;;;;;OA4GF9B,QAAF,EAAYsE,EAAZ,CACEjC,MAAMkC,cADR,EAEEnC,SAASoC,OAFX,EAGE5C,MAAMuC,cAAN,CAAqB,IAAIvC,KAAJ,EAArB,CAHF;;;;;;;OAaExC,EAAF,CAAKyC,IAAL,IAAyBD,MAAMmC,gBAA/B;OACE3E,EAAF,CAAKyC,IAAL,EAAW4C,WAAX,GAAyB7C,KAAzB;;OACExC,EAAF,CAAKyC,IAAL,EAAW6C,UAAX,GAAyB,YAAY;SACjCtF,EAAF,CAAKyC,IAAL,IAAaK,kBAAb;WACON,MAAMmC,gBAAb;GAFF;;SAKOnC,KAAP;CAlLY,CAoLXrE,CApLW,CAAd;;ACTA;;;;;;;AAOA,IAAMoH,SAAU,UAACpH,IAAD,EAAO;;;;;;MASfsE,OAAsB,QAA5B;MACMC,UAAsB,cAA5B;MACMC,WAAsB,WAA5B;MACMC,kBAA0BD,QAAhC;MACME,eAAsB,WAA5B;MACMC,qBAAsB3E,KAAE6B,EAAF,CAAKyC,IAAL,CAA5B;MAEMS,YAAY;YACP,QADO;YAEP,KAFO;WAGP;GAHX;MAMMF,WAAW;wBACM,yBADN;iBAEM,yBAFN;WAGM,OAHN;YAIM,SAJN;YAKM;GALvB;MAQMC,QAAQ;8BACkBL,SAA9B,GAA0CC,YAD9B;yBAEU,UAAQD,SAAR,GAAoBC,YAApB,mBACOD,SADP,GACmBC,YADnB;;;;;;;GAFxB;;MAaM0C,MA3Ce;;;oBA6CPzE,OAAZ,EAAqB;WACdqC,QAAL,GAAgBrC,OAAhB;KA9CiB;;;;;;WA2DnB0E,MA3DmB,qBA2DV;UACHC,qBAAqB,IAAzB;UACIC,iBAAiB,IAArB;UACMrC,cAAmBlF,KAAE,KAAKgF,QAAP,EAAiBY,OAAjB,CACvBf,SAAS2C,WADc,EAEvB,CAFuB,CAAzB;;UAIItC,WAAJ,EAAiB;YACTuC,QAAQzH,KAAE,KAAKgF,QAAP,EAAiBjC,IAAjB,CAAsB8B,SAAS6C,KAA/B,EAAsC,CAAtC,CAAd;;YAEID,KAAJ,EAAW;cACLA,MAAME,IAAN,KAAe,OAAnB,EAA4B;gBACtBF,MAAMG,OAAN,IACF5H,KAAE,KAAKgF,QAAP,EAAiBkB,QAAjB,CAA0BnB,UAAU8C,MAApC,CADF,EAC+C;mCACxB,KAArB;aAFF,MAIO;kBACCC,gBAAgB9H,KAAEkF,WAAF,EAAenC,IAAf,CAAoB8B,SAASgD,MAA7B,EAAqC,CAArC,CAAtB;;kBAEIC,aAAJ,EAAmB;qBACfA,aAAF,EAAiB9B,WAAjB,CAA6BjB,UAAU8C,MAAvC;;;;;cAKFP,kBAAJ,EAAwB;gBAClBG,MAAMM,YAAN,CAAmB,UAAnB,KACF7C,YAAY6C,YAAZ,CAAyB,UAAzB,CADE,IAEFN,MAAMO,SAAN,CAAgBC,QAAhB,CAAyB,UAAzB,CAFE,IAGF/C,YAAY8C,SAAZ,CAAsBC,QAAtB,CAA+B,UAA/B,CAHF,EAG8C;;;;kBAGxCL,OAAN,GAAgB,CAAC5H,KAAE,KAAKgF,QAAP,EAAiBkB,QAAjB,CAA0BnB,UAAU8C,MAApC,CAAjB;iBACEJ,KAAF,EAAStE,OAAT,CAAiB,QAAjB;;;gBAGI+E,KAAN;2BACiB,KAAjB;;;;UAKAX,cAAJ,EAAoB;aACbvC,QAAL,CAAcmD,YAAd,CAA2B,cAA3B,EACE,CAACnI,KAAE,KAAKgF,QAAP,EAAiBkB,QAAjB,CAA0BnB,UAAU8C,MAApC,CADH;;;UAIEP,kBAAJ,EAAwB;aACpB,KAAKtC,QAAP,EAAiBoD,WAAjB,CAA6BrD,UAAU8C,MAAvC;;KA3Ge;;WA+GnBrC,OA/GmB,sBA+GT;WACNC,UAAF,CAAa,KAAKT,QAAlB,EAA4BR,QAA5B;WACKQ,QAAL,GAAgB,IAAhB;KAjHiB;;;WAuHZwB,gBAvHY,6BAuHKjD,MAvHL,EAuHa;aACvB,KAAKkD,IAAL,CAAU,YAAY;YACvBE,OAAO3G,KAAE,IAAF,EAAQ2G,IAAR,CAAanC,QAAb,CAAX;;YAEI,CAACmC,IAAL,EAAW;iBACF,IAAIS,MAAJ,CAAW,IAAX,CAAP;eACE,IAAF,EAAQT,IAAR,CAAanC,QAAb,EAAuBmC,IAAvB;;;YAGEpD,WAAW,QAAf,EAAyB;eAClBA,MAAL;;OATG,CAAP;KAxHiB;;;;0BAoDE;eACZgB,OAAP;;;;;;;;;;;;OA0FF9B,QAAF,EACGsE,EADH,CACMjC,MAAMkC,cADZ,EAC4BnC,SAASwD,kBADrC,EACyD,UAAC1H,KAAD,EAAW;UAC1DmG,cAAN;QAEIwB,SAAS3H,MAAMC,MAAnB;;QAEI,CAACZ,KAAEsI,MAAF,EAAUpC,QAAV,CAAmBnB,UAAUwD,MAA7B,CAAL,EAA2C;eAChCvI,KAAEsI,MAAF,EAAU1C,OAAV,CAAkBf,SAAS0D,MAA3B,CAAT;;;WAGK/B,gBAAP,CAAwBlG,IAAxB,CAA6BN,KAAEsI,MAAF,CAA7B,EAAwC,QAAxC;GAVJ,EAYGvB,EAZH,CAYMjC,MAAM0D,mBAZZ,EAYiC3D,SAASwD,kBAZ1C,EAY8D,UAAC1H,KAAD,EAAW;QAC/D2H,SAAStI,KAAEW,MAAMC,MAAR,EAAgBgF,OAAhB,CAAwBf,SAAS0D,MAAjC,EAAyC,CAAzC,CAAf;SACED,MAAF,EAAUF,WAAV,CAAsBrD,UAAU0D,KAAhC,EAAuC,eAAevE,IAAf,CAAoBvD,MAAMgH,IAA1B,CAAvC;GAdJ;;;;;;;OAwBE9F,EAAF,CAAKyC,IAAL,IAAyB8C,OAAOZ,gBAAhC;OACE3E,EAAF,CAAKyC,IAAL,EAAW4C,WAAX,GAAyBE,MAAzB;;OACEvF,EAAF,CAAKyC,IAAL,EAAW6C,UAAX,GAAyB,YAAY;SACjCtF,EAAF,CAAKyC,IAAL,IAAaK,kBAAb;WACOyC,OAAOZ,gBAAd;GAFF;;SAKOY,MAAP;CA9Ka,CAgLZpH,CAhLY,CAAf;;ACLA;;;;;;;AAOA,IAAM0I,WAAY,UAAC1I,IAAD,EAAO;;;;;;MASjBsE,OAAyB,UAA/B;MACMC,UAAyB,cAA/B;MACMC,WAAyB,aAA/B;MACMC,kBAA6BD,QAAnC;MACME,eAAyB,WAA/B;MACMC,qBAAyB3E,KAAE6B,EAAF,CAAKyC,IAAL,CAA/B;MACMM,sBAAyB,GAA/B;MACM+D,qBAAyB,EAA/B,CAhBuB;;MAiBjBC,sBAAyB,EAA/B,CAjBuB;;MAkBjBC,yBAAyB,GAA/B,CAlBuB;;MAoBjBC,UAAU;cACH,IADG;cAEH,IAFG;WAGH,KAHG;WAIH,OAJG;UAKH;GALb;MAQMC,cAAc;cACP,kBADO;cAEP,SAFO;WAGP,kBAHO;WAIP,kBAJO;UAKP;GALb;MAQMC,YAAY;UACL,MADK;UAEL,MAFK;UAGL,MAHK;WAIL;GAJb;MAOMlE,QAAQ;qBACaL,SADb;mBAEYA,SAFZ;yBAGeA,SAHf;+BAIkBA,SAJlB;+BAKkBA,SALlB;2BAMgBA,SANhB;4BAOYA,SAAxB,GAAoCC,YAPxB;8BAQaD,SAAzB,GAAqCC;GARvC;MAWMK,YAAY;cACL,UADK;YAEL,QAFK;WAGL,OAHK;WAIL,qBAJK;UAKL,oBALK;UAML,oBANK;UAOL,oBAPK;UAQL;GARb;MAWMF,WAAW;YACD,SADC;iBAED,uBAFC;UAGD,gBAHC;eAID,0CAJC;gBAKD,sBALC;gBAMD,+BANC;eAOD;;;;;;;GAPhB;;MAiBM6D,QAlFiB;;;sBAoFT/F,OAAZ,EAAqBY,MAArB,EAA6B;WACtB0F,MAAL,GAA0B,IAA1B;WACKC,SAAL,GAA0B,IAA1B;WACKC,cAAL,GAA0B,IAA1B;WAEKC,SAAL,GAA0B,KAA1B;WACKC,UAAL,GAA0B,KAA1B;WAEKC,YAAL,GAA0B,IAA1B;WAEKC,OAAL,GAA0B,KAAKC,UAAL,CAAgBjG,MAAhB,CAA1B;WACKyB,QAAL,GAA0BhF,KAAE2C,OAAF,EAAW,CAAX,CAA1B;WACK8G,kBAAL,GAA0BzJ,KAAE,KAAKgF,QAAP,EAAiBjC,IAAjB,CAAsB8B,SAAS6E,UAA/B,EAA2C,CAA3C,CAA1B;;WAEKC,kBAAL;KAlGmB;;;;;;WAmHrBC,IAnHqB,mBAmHd;UACD,CAAC,KAAKP,UAAV,EAAsB;aACfQ,MAAL,CAAYb,UAAUc,IAAtB;;KArHiB;;WAyHrBC,eAzHqB,8BAyHH;;;UAGZ,CAACtH,SAASuH,MAAV,IACDhK,KAAE,KAAKgF,QAAP,EAAiBnE,EAAjB,CAAoB,UAApB,KAAmCb,KAAE,KAAKgF,QAAP,EAAiBiF,GAAjB,CAAqB,YAArB,MAAuC,QAD7E,EACwF;aACjFL,IAAL;;KA9HiB;;WAkIrBM,IAlIqB,mBAkId;UACD,CAAC,KAAKb,UAAV,EAAsB;aACfQ,MAAL,CAAYb,UAAUmB,IAAtB;;KApIiB;;WAwIrBC,KAxIqB,kBAwIfzJ,KAxIe,EAwIR;UACP,CAACA,KAAL,EAAY;aACLyI,SAAL,GAAiB,IAAjB;;;UAGEpJ,KAAE,KAAKgF,QAAP,EAAiBjC,IAAjB,CAAsB8B,SAASwF,SAA/B,EAA0C,CAA1C,KACFtK,KAAKgC,qBAAL,EADF,EACgC;aACzBJ,oBAAL,CAA0B,KAAKqD,QAA/B;aACKsF,KAAL,CAAW,IAAX;;;oBAGY,KAAKpB,SAAnB;WACKA,SAAL,GAAiB,IAAjB;KApJmB;;WAuJrBoB,KAvJqB,kBAuJf3J,KAvJe,EAuJR;UACP,CAACA,KAAL,EAAY;aACLyI,SAAL,GAAiB,KAAjB;;;UAGE,KAAKF,SAAT,EAAoB;sBACJ,KAAKA,SAAnB;aACKA,SAAL,GAAiB,IAAjB;;;UAGE,KAAKK,OAAL,CAAagB,QAAb,IAAyB,CAAC,KAAKnB,SAAnC,EAA8C;aACvCF,SAAL,GAAiBsB,YACf,CAAC/H,SAASgI,eAAT,GAA2B,KAAKV,eAAhC,GAAkD,KAAKH,IAAxD,EAA8Dc,IAA9D,CAAmE,IAAnE,CADe,EAEf,KAAKnB,OAAL,CAAagB,QAFE,CAAjB;;KAlKiB;;WAyKrBI,EAzKqB,eAyKlBC,KAzKkB,EAyKX;;;WACHzB,cAAL,GAAsBnJ,KAAE,KAAKgF,QAAP,EAAiBjC,IAAjB,CAAsB8B,SAASgG,WAA/B,EAA4C,CAA5C,CAAtB;;UAEMC,cAAc,KAAKC,aAAL,CAAmB,KAAK5B,cAAxB,CAApB;;UAEIyB,QAAQ,KAAK3B,MAAL,CAAYjG,MAAZ,GAAqB,CAA7B,IAAkC4H,QAAQ,CAA9C,EAAiD;;;;UAI7C,KAAKvB,UAAT,EAAqB;aACjB,KAAKrE,QAAP,EAAiBvD,GAAjB,CAAqBqD,MAAMkG,IAA3B,EAAiC;iBAAM,MAAKL,EAAL,CAAQC,KAAR,CAAN;SAAjC;;;;UAIEE,gBAAgBF,KAApB,EAA2B;aACpBR,KAAL;aACKE,KAAL;;;;UAIIW,YAAYL,QAAQE,WAAR,GAChB9B,UAAUc,IADM,GAEhBd,UAAUmB,IAFZ;;WAIKN,MAAL,CAAYoB,SAAZ,EAAuB,KAAKhC,MAAL,CAAY2B,KAAZ,CAAvB;KAjMmB;;WAoMrBpF,OApMqB,sBAoMX;WACN,KAAKR,QAAP,EAAiBkG,GAAjB,CAAqBzG,SAArB;WACEgB,UAAF,CAAa,KAAKT,QAAlB,EAA4BR,QAA5B;WAEKyE,MAAL,GAA0B,IAA1B;WACKM,OAAL,GAA0B,IAA1B;WACKvE,QAAL,GAA0B,IAA1B;WACKkE,SAAL,GAA0B,IAA1B;WACKE,SAAL,GAA0B,IAA1B;WACKC,UAAL,GAA0B,IAA1B;WACKF,cAAL,GAA0B,IAA1B;WACKM,kBAAL,GAA0B,IAA1B;KA/MmB;;;WAqNrBD,UArNqB,uBAqNVjG,MArNU,EAqNF;4BAEZuF,OADL,EAEKvF,MAFL;WAIK4H,eAAL,CAAqB7G,IAArB,EAA2Bf,MAA3B,EAAmCwF,WAAnC;aACOxF,MAAP;KA3NmB;;WA8NrBoG,kBA9NqB,iCA8NA;;;UACf,KAAKJ,OAAL,CAAa6B,QAAjB,EAA2B;aACvB,KAAKpG,QAAP,EACG+B,EADH,CACMjC,MAAMuG,OADZ,EACqB,UAAC1K,KAAD;iBAAW,OAAK2K,QAAL,CAAc3K,KAAd,CAAX;SADrB;;;UAIE,KAAK4I,OAAL,CAAaa,KAAb,KAAuB,OAA3B,EAAoC;aAChC,KAAKpF,QAAP,EACG+B,EADH,CACMjC,MAAMyG,UADZ,EACwB,UAAC5K,KAAD;iBAAW,OAAKyJ,KAAL,CAAWzJ,KAAX,CAAX;SADxB,EAEGoG,EAFH,CAEMjC,MAAM0G,UAFZ,EAEwB,UAAC7K,KAAD;iBAAW,OAAK2J,KAAL,CAAW3J,KAAX,CAAX;SAFxB;;YAGI,kBAAkB8B,SAASgJ,eAA/B,EAAgD;;;;;;;;eAQ5C,KAAKzG,QAAP,EAAiB+B,EAAjB,CAAoBjC,MAAM4G,QAA1B,EAAoC,YAAM;mBACnCtB,KAAL;;gBACI,OAAKd,YAAT,EAAuB;2BACR,OAAKA,YAAlB;;;mBAEGA,YAAL,GAAoBqC,WAAW,UAAChL,KAAD;qBAAW,OAAK2J,KAAL,CAAW3J,KAAX,CAAX;aAAX,EAAyCkI,yBAAyB,OAAKU,OAAL,CAAagB,QAA/E,CAApB;WALF;;;KAhPe;;WA2PrBe,QA3PqB,qBA2PZ3K,KA3PY,EA2PL;UACV,kBAAkBuD,IAAlB,CAAuBvD,MAAMC,MAAN,CAAagL,OAApC,CAAJ,EAAkD;;;;cAI1CjL,MAAMkL,KAAd;aACOlD,kBAAL;gBACQ7B,cAAN;eACKoD,IAAL;;;aAEGtB,mBAAL;gBACQ9B,cAAN;eACK8C,IAAL;;;;;;KAvQe;;WA8QrBmB,aA9QqB,0BA8QPpI,OA9QO,EA8QE;WAChBsG,MAAL,GAAcjJ,KAAE8L,SAAF,CAAY9L,KAAE2C,OAAF,EAAWgD,MAAX,GAAoB5C,IAApB,CAAyB8B,SAASkH,IAAlC,CAAZ,CAAd;aACO,KAAK9C,MAAL,CAAY+C,OAAZ,CAAoBrJ,OAApB,CAAP;KAhRmB;;WAmRrBsJ,mBAnRqB,gCAmRDhB,SAnRC,EAmRUnD,aAnRV,EAmRyB;UACtCoE,kBAAkBjB,cAAcjC,UAAUc,IAAhD;UACMqC,kBAAkBlB,cAAcjC,UAAUmB,IAAhD;;UACMW,cAAkB,KAAKC,aAAL,CAAmBjD,aAAnB,CAAxB;;UACMsE,gBAAkB,KAAKnD,MAAL,CAAYjG,MAAZ,GAAqB,CAA7C;UACMqJ,gBAAkBF,mBAAmBrB,gBAAgB,CAAnC,IACAoB,mBAAmBpB,gBAAgBsB,aAD3D;;UAGIC,iBAAiB,CAAC,KAAK9C,OAAL,CAAa+C,IAAnC,EAAyC;eAChCxE,aAAP;;;UAGIyE,QAAYtB,cAAcjC,UAAUmB,IAAxB,GAA+B,CAAC,CAAhC,GAAoC,CAAtD;UACMqC,YAAY,CAAC1B,cAAcyB,KAAf,IAAwB,KAAKtD,MAAL,CAAYjG,MAAtD;aAEOwJ,cAAc,CAAC,CAAf,GACL,KAAKvD,MAAL,CAAY,KAAKA,MAAL,CAAYjG,MAAZ,GAAqB,CAAjC,CADK,GACiC,KAAKiG,MAAL,CAAYuD,SAAZ,CADxC;KAlSmB;;WAuSrBC,kBAvSqB,+BAuSFC,aAvSE,EAuSaC,kBAvSb,EAuSiC;UAC9CC,cAAc,KAAK7B,aAAL,CAAmB2B,aAAnB,CAApB;;UACMG,YAAY,KAAK9B,aAAL,CAAmB/K,KAAE,KAAKgF,QAAP,EAAiBjC,IAAjB,CAAsB8B,SAASgG,WAA/B,EAA4C,CAA5C,CAAnB,CAAlB;;UACMiC,aAAa9M,KAAE8E,KAAF,CAAQA,MAAMiI,KAAd,EAAqB;oCAAA;mBAE3BJ,kBAF2B;cAGhCE,SAHgC;YAIlCD;OAJa,CAAnB;WAOE,KAAK5H,QAAP,EAAiB7B,OAAjB,CAAyB2J,UAAzB;aAEOA,UAAP;KAnTmB;;WAsTrBE,0BAtTqB,uCAsTMrK,OAtTN,EAsTe;UAC9B,KAAK8G,kBAAT,EAA6B;aACzB,KAAKA,kBAAP,EACG1G,IADH,CACQ8B,SAASgD,MADjB,EAEG7B,WAFH,CAEejB,UAAU8C,MAFzB;;YAIMoF,gBAAgB,KAAKxD,kBAAL,CAAwByD,QAAxB,CACpB,KAAKnC,aAAL,CAAmBpI,OAAnB,CADoB,CAAtB;;YAIIsK,aAAJ,EAAmB;eACfA,aAAF,EAAiBE,QAAjB,CAA0BpI,UAAU8C,MAApC;;;KAjUe;;WAsUrBgC,MAtUqB,mBAsUdoB,SAtUc,EAsUHtI,OAtUG,EAsUM;;;UACnBmF,gBAAgB9H,KAAE,KAAKgF,QAAP,EAAiBjC,IAAjB,CAAsB8B,SAASgG,WAA/B,EAA4C,CAA5C,CAAtB;;UACMuC,qBAAqB,KAAKrC,aAAL,CAAmBjD,aAAnB,CAA3B;;UACMuF,cAAgB1K,WAAWmF,iBAC/B,KAAKmE,mBAAL,CAAyBhB,SAAzB,EAAoCnD,aAApC,CADF;;UAEMwF,mBAAmB,KAAKvC,aAAL,CAAmBsC,WAAnB,CAAzB;;UACME,YAAYnK,QAAQ,KAAK8F,SAAb,CAAlB;UAEIsE,oBAAJ;UACIC,cAAJ;UACId,kBAAJ;;UAEI1B,cAAcjC,UAAUc,IAA5B,EAAkC;+BACT/E,UAAU2I,IAAjC;yBACiB3I,UAAU+E,IAA3B;6BACqBd,UAAU0E,IAA/B;OAHF,MAIO;+BACkB3I,UAAU4I,KAAjC;yBACiB5I,UAAUoF,IAA3B;6BACqBnB,UAAU2E,KAA/B;;;UAGEN,eAAerN,KAAEqN,WAAF,EAAenH,QAAf,CAAwBnB,UAAU8C,MAAlC,CAAnB,EAA8D;aACvDwB,UAAL,GAAkB,KAAlB;;;;UAIIyD,aAAa,KAAKL,kBAAL,CAAwBY,WAAxB,EAAqCV,kBAArC,CAAnB;;UACIG,WAAWxH,kBAAX,EAAJ,EAAqC;;;;UAIjC,CAACwC,aAAD,IAAkB,CAACuF,WAAvB,EAAoC;;;;;WAK/BhE,UAAL,GAAkB,IAAlB;;UAEIkE,SAAJ,EAAe;aACRnD,KAAL;;;WAGG4C,0BAAL,CAAgCK,WAAhC;;UAEMO,YAAY5N,KAAE8E,KAAF,CAAQA,MAAMkG,IAAd,EAAoB;uBACrBqC,WADqB;mBAEzBV,kBAFyB;cAG9BS,kBAH8B;YAIhCE;OAJY,CAAlB;;UAOIvN,KAAKgC,qBAAL,MACF/B,KAAE,KAAKgF,QAAP,EAAiBkB,QAAjB,CAA0BnB,UAAUgI,KAApC,CADF,EAC8C;aAE1CM,WAAF,EAAeF,QAAf,CAAwBM,cAAxB;aAEKI,MAAL,CAAYR,WAAZ;aAEEvF,aAAF,EAAiBqF,QAAjB,CAA0BK,oBAA1B;aACEH,WAAF,EAAeF,QAAf,CAAwBK,oBAAxB;aAEE1F,aAAF,EACGrG,GADH,CACO1B,KAAK2B,cADZ,EAC4B,YAAM;eAC5B2L,WAAF,EACGrH,WADH,CACkBwH,oBADlB,SAC0CC,cAD1C,EAEGN,QAFH,CAEYpI,UAAU8C,MAFtB;eAIEC,aAAF,EAAiB9B,WAAjB,CAAgCjB,UAAU8C,MAA1C,SAAoD4F,cAApD,SAAsED,oBAAtE;iBAEKnE,UAAL,GAAkB,KAAlB;qBAEW;mBAAMrJ,KAAE,OAAKgF,QAAP,EAAiB7B,OAAjB,CAAyByK,SAAzB,CAAN;WAAX,EAAsD,CAAtD;SAVJ,EAaG9L,oBAbH,CAawB8C,mBAbxB;OAVF,MAyBO;aACHkD,aAAF,EAAiB9B,WAAjB,CAA6BjB,UAAU8C,MAAvC;aACEwF,WAAF,EAAeF,QAAf,CAAwBpI,UAAU8C,MAAlC;aAEKwB,UAAL,GAAkB,KAAlB;aACE,KAAKrE,QAAP,EAAiB7B,OAAjB,CAAyByK,SAAzB;;;UAGEL,SAAJ,EAAe;aACRjD,KAAL;;KA5ZiB;;;aAmad9D,gBAnac,6BAmaGjD,MAnaH,EAmaW;aACvB,KAAKkD,IAAL,CAAU,YAAY;YACvBE,OAAY3G,KAAE,IAAF,EAAQ2G,IAAR,CAAanC,QAAb,CAAhB;;YACI+E,uBACCT,OADD,EAEC9I,KAAE,IAAF,EAAQ2G,IAAR,EAFD,CAAJ;;YAKI,OAAOpD,MAAP,KAAkB,QAAtB,EAAgC;iCAEzBgG,OADL,EAEKhG,MAFL;;;YAMIuK,SAAS,OAAOvK,MAAP,KAAkB,QAAlB,GAA6BA,MAA7B,GAAsCgG,QAAQwE,KAA7D;;YAEI,CAACpH,IAAL,EAAW;iBACF,IAAI+B,QAAJ,CAAa,IAAb,EAAmBa,OAAnB,CAAP;eACE,IAAF,EAAQ5C,IAAR,CAAanC,QAAb,EAAuBmC,IAAvB;;;YAGE,OAAOpD,MAAP,KAAkB,QAAtB,EAAgC;eACzBoH,EAAL,CAAQpH,MAAR;SADF,MAEO,IAAI,OAAOuK,MAAP,KAAkB,QAAtB,EAAgC;cACjC,OAAOnH,KAAKmH,MAAL,CAAP,KAAwB,WAA5B,EAAyC;kBACjC,IAAI3J,KAAJ,wBAA8B2J,MAA9B,QAAN;;;eAEGA,MAAL;SAJK,MAKA,IAAIvE,QAAQgB,QAAZ,EAAsB;eACtBH,KAAL;eACKE,KAAL;;OA9BG,CAAP;KApamB;;aAucd0D,oBAvcc,iCAucOrN,KAvcP,EAucc;UAC3BuB,WAAWnC,KAAK2F,sBAAL,CAA4B,IAA5B,CAAjB;;UAEI,CAACxD,QAAL,EAAe;;;;UAITtB,SAASZ,KAAEkC,QAAF,EAAY,CAAZ,CAAf;;UAEI,CAACtB,MAAD,IAAW,CAACZ,KAAEY,MAAF,EAAUsF,QAAV,CAAmBnB,UAAUkJ,QAA7B,CAAhB,EAAwD;;;;UAIlD1K,sBACDvD,KAAEY,MAAF,EAAU+F,IAAV,EADC,EAED3G,KAAE,IAAF,EAAQ2G,IAAR,EAFC,CAAN;UAIMuH,aAAa,KAAKtL,YAAL,CAAkB,eAAlB,CAAnB;;UAEIsL,UAAJ,EAAgB;eACP3D,QAAP,GAAkB,KAAlB;;;eAGO/D,gBAAT,CAA0BlG,IAA1B,CAA+BN,KAAEY,MAAF,CAA/B,EAA0C2C,MAA1C;;UAEI2K,UAAJ,EAAgB;aACZtN,MAAF,EAAU+F,IAAV,CAAenC,QAAf,EAAyBmG,EAAzB,CAA4BuD,UAA5B;;;YAGIpH,cAAN;KApemB;;;;0BAwGA;eACZvC,OAAP;;;;0BAGmB;eACZuE,OAAP;;;;;;;;;;;;OAmYFrG,QAAF,EACGsE,EADH,CACMjC,MAAMkC,cADZ,EAC4BnC,SAASsJ,UADrC,EACiDzF,SAASsF,oBAD1D;OAGE5M,MAAF,EAAU2F,EAAV,CAAajC,MAAMsJ,aAAnB,EAAkC,YAAM;SACpCvJ,SAASwJ,SAAX,EAAsB5H,IAAtB,CAA2B,YAAY;UAC/B6H,YAAYtO,KAAE,IAAF,CAAlB;;eACSwG,gBAAT,CAA0BlG,IAA1B,CAA+BgO,SAA/B,EAA0CA,UAAU3H,IAAV,EAA1C;KAFF;GADF;;;;;;;OAcE9E,EAAF,CAAKyC,IAAL,IAAyBoE,SAASlC,gBAAlC;OACE3E,EAAF,CAAKyC,IAAL,EAAW4C,WAAX,GAAyBwB,QAAzB;;OACE7G,EAAF,CAAKyC,IAAL,EAAW6C,UAAX,GAAyB,YAAY;SACjCtF,EAAF,CAAKyC,IAAL,IAAaK,kBAAb;WACO+D,SAASlC,gBAAhB;GAFF;;SAKOkC,QAAP;CAxgBe,CA0gBd1I,CA1gBc,CAAjB;;ACPA;;;;;;;AAOA,IAAMuO,WAAY,UAACvO,IAAD,EAAO;;;;;;MASjBsE,OAAsB,UAA5B;MACMC,UAAsB,cAA5B;MACMC,WAAsB,aAA5B;MACMC,kBAA0BD,QAAhC;MACME,eAAsB,WAA5B;MACMC,qBAAsB3E,KAAE6B,EAAF,CAAKyC,IAAL,CAA5B;MACMM,sBAAsB,GAA5B;MAEMkE,UAAU;YACL,IADK;YAEL;GAFX;MAKMC,cAAc;YACT,SADS;YAET;GAFX;MAKMjE,QAAQ;mBACYL,SADZ;qBAEaA,SAFb;mBAGYA,SAHZ;uBAIcA,SAJd;8BAKaA,SAAzB,GAAqCC;GALvC;MAQMK,YAAY;UACH,MADG;cAEH,UAFG;gBAGH,YAHG;eAIH;GAJf;MAOMyJ,YAAY;WACP,OADO;YAEP;GAFX;MAKM3J,WAAW;aACD,oBADC;iBAED;;;;;;;GAFhB;;MAYM0J,QA3DiB;;;sBA6DT5L,OAAZ,EAAqBY,MAArB,EAA6B;WACtBkL,gBAAL,GAAwB,KAAxB;WACKzJ,QAAL,GAAwBrC,OAAxB;WACK4G,OAAL,GAAwB,KAAKC,UAAL,CAAgBjG,MAAhB,CAAxB;WACKmL,aAAL,GAAwB1O,KAAE8L,SAAF,CAAY9L,KAClC,wCAAmC2C,QAAQgM,EAA3C,4DAC0ChM,QAAQgM,EADlD,SADkC,CAAZ,CAAxB;UAIMC,aAAa5O,KAAE6E,SAAS2C,WAAX,CAAnB;;WACK,IAAIqH,IAAI,CAAb,EAAgBA,IAAID,WAAW5L,MAA/B,EAAuC6L,GAAvC,EAA4C;YACpCC,OAAOF,WAAWC,CAAX,CAAb;YACM3M,WAAWnC,KAAK2F,sBAAL,CAA4BoJ,IAA5B,CAAjB;;YACI5M,aAAa,IAAb,IAAqBlC,KAAEkC,QAAF,EAAY6M,MAAZ,CAAmBpM,OAAnB,EAA4BK,MAA5B,GAAqC,CAA9D,EAAiE;eAC1D0L,aAAL,CAAmBM,IAAnB,CAAwBF,IAAxB;;;;WAICG,OAAL,GAAe,KAAK1F,OAAL,CAAa5D,MAAb,GAAsB,KAAKuJ,UAAL,EAAtB,GAA0C,IAAzD;;UAEI,CAAC,KAAK3F,OAAL,CAAa5D,MAAlB,EAA0B;aACnBwJ,yBAAL,CAA+B,KAAKnK,QAApC,EAA8C,KAAK0J,aAAnD;;;UAGE,KAAKnF,OAAL,CAAalC,MAAjB,EAAyB;aAClBA,MAAL;;KArFiB;;;;;;WAuGrBA,MAvGqB,qBAuGZ;UACHrH,KAAE,KAAKgF,QAAP,EAAiBkB,QAAjB,CAA0BnB,UAAUkB,IAApC,CAAJ,EAA+C;aACxCmJ,IAAL;OADF,MAEO;aACAC,IAAL;;KA3GiB;;WA+GrBA,IA/GqB,mBA+Gd;;;UACD,KAAKZ,gBAAL,IACFzO,KAAE,KAAKgF,QAAP,EAAiBkB,QAAjB,CAA0BnB,UAAUkB,IAApC,CADF,EAC6C;;;;UAIzCqJ,OAAJ;UACIC,WAAJ;;UAEI,KAAKN,OAAT,EAAkB;kBACNjP,KAAE8L,SAAF,CACR9L,KAAE,KAAKiP,OAAP,EACGlM,IADH,CACQ8B,SAAS2K,OADjB,EAEGT,MAFH,qBAE2B,KAAKxF,OAAL,CAAa5D,MAFxC,SADQ,CAAV;;YAKI,CAAC2J,QAAQtM,MAAb,EAAqB;oBACT,IAAV;;;;UAIAsM,OAAJ,EAAa;sBACGtP,KAAEsP,OAAF,EAAW3I,IAAX,CAAgBnC,QAAhB,CAAd;;YACI+K,eAAeA,YAAYd,gBAA/B,EAAiD;;;;;UAK7CgB,aAAazP,KAAE8E,KAAF,CAAQA,MAAMmB,IAAd,CAAnB;WACE,KAAKjB,QAAP,EAAiB7B,OAAjB,CAAyBsM,UAAzB;;UACIA,WAAWnK,kBAAX,EAAJ,EAAqC;;;;UAIjCgK,OAAJ,EAAa;iBACF9I,gBAAT,CAA0BlG,IAA1B,CAA+BN,KAAEsP,OAAF,CAA/B,EAA2C,MAA3C;;YACI,CAACC,WAAL,EAAkB;eACdD,OAAF,EAAW3I,IAAX,CAAgBnC,QAAhB,EAA0B,IAA1B;;;;UAIEkL,YAAY,KAAKC,aAAL,EAAlB;;WAEE,KAAK3K,QAAP,EACGgB,WADH,CACejB,UAAU6K,QADzB,EAEGzC,QAFH,CAEYpI,UAAU8K,UAFtB;WAIK7K,QAAL,CAAc8K,KAAd,CAAoBJ,SAApB,IAAiC,CAAjC;;UAEI,KAAKhB,aAAL,CAAmB1L,MAAvB,EAA+B;aAC3B,KAAK0L,aAAP,EACG1I,WADH,CACejB,UAAUgL,SADzB,EAEGC,IAFH,CAEQ,eAFR,EAEyB,IAFzB;;;WAKGC,gBAAL,CAAsB,IAAtB;;UAEMC,WAAW,SAAXA,QAAW,GAAM;aACnB,MAAKlL,QAAP,EACGgB,WADH,CACejB,UAAU8K,UADzB,EAEG1C,QAFH,CAEYpI,UAAU6K,QAFtB,EAGGzC,QAHH,CAGYpI,UAAUkB,IAHtB;cAKKjB,QAAL,CAAc8K,KAAd,CAAoBJ,SAApB,IAAiC,EAAjC;;cAEKO,gBAAL,CAAsB,KAAtB;;aAEE,MAAKjL,QAAP,EAAiB7B,OAAjB,CAAyB2B,MAAMqL,KAA/B;OAVF;;UAaI,CAACpQ,KAAKgC,qBAAL,EAAL,EAAmC;;;;;UAK7BqO,uBAAuBV,UAAU,CAAV,EAAatL,WAAb,KAA6BsL,UAAUW,KAAV,CAAgB,CAAhB,CAA1D;UACMC,wBAAgCF,oBAAtC;WAEE,KAAKpL,QAAP,EACGvD,GADH,CACO1B,KAAK2B,cADZ,EAC4BwO,QAD5B,EAEGpO,oBAFH,CAEwB8C,mBAFxB;WAIKI,QAAL,CAAc8K,KAAd,CAAoBJ,SAApB,IAAoC,KAAK1K,QAAL,CAAcsL,UAAd,CAApC;KAhMmB;;WAmMrBlB,IAnMqB,mBAmMd;;;UACD,KAAKX,gBAAL,IACF,CAACzO,KAAE,KAAKgF,QAAP,EAAiBkB,QAAjB,CAA0BnB,UAAUkB,IAApC,CADH,EAC8C;;;;UAIxCwJ,aAAazP,KAAE8E,KAAF,CAAQA,MAAMyL,IAAd,CAAnB;WACE,KAAKvL,QAAP,EAAiB7B,OAAjB,CAAyBsM,UAAzB;;UACIA,WAAWnK,kBAAX,EAAJ,EAAqC;;;;UAI/BoK,YAAkB,KAAKC,aAAL,EAAxB;;WAEK3K,QAAL,CAAc8K,KAAd,CAAoBJ,SAApB,IAAoC,KAAK1K,QAAL,CAAcwL,qBAAd,GAAsCd,SAAtC,CAApC;WAEK7B,MAAL,CAAY,KAAK7I,QAAjB;WAEE,KAAKA,QAAP,EACGmI,QADH,CACYpI,UAAU8K,UADtB,EAEG7J,WAFH,CAEejB,UAAU6K,QAFzB,EAGG5J,WAHH,CAGejB,UAAUkB,IAHzB;;UAKI,KAAKyI,aAAL,CAAmB1L,MAAvB,EAA+B;aACxB,IAAI6L,IAAI,CAAb,EAAgBA,IAAI,KAAKH,aAAL,CAAmB1L,MAAvC,EAA+C6L,GAA/C,EAAoD;cAC5C1L,UAAU,KAAKuL,aAAL,CAAmBG,CAAnB,CAAhB;cACM3M,WAAWnC,KAAK2F,sBAAL,CAA4BvC,OAA5B,CAAjB;;cACIjB,aAAa,IAAjB,EAAuB;gBACfuO,QAAQzQ,KAAEkC,QAAF,CAAd;;gBACI,CAACuO,MAAMvK,QAAN,CAAenB,UAAUkB,IAAzB,CAAL,EAAqC;mBACjC9C,OAAF,EAAWgK,QAAX,CAAoBpI,UAAUgL,SAA9B,EACMC,IADN,CACW,eADX,EAC4B,KAD5B;;;;;;WAOHC,gBAAL,CAAsB,IAAtB;;UAEMC,WAAW,SAAXA,QAAW,GAAM;eAChBD,gBAAL,CAAsB,KAAtB;;aACE,OAAKjL,QAAP,EACGgB,WADH,CACejB,UAAU8K,UADzB,EAEG1C,QAFH,CAEYpI,UAAU6K,QAFtB,EAGGzM,OAHH,CAGW2B,MAAM4L,MAHjB;OAFF;;WAQK1L,QAAL,CAAc8K,KAAd,CAAoBJ,SAApB,IAAiC,EAAjC;;UAEI,CAAC3P,KAAKgC,qBAAL,EAAL,EAAmC;;;;;WAKjC,KAAKiD,QAAP,EACGvD,GADH,CACO1B,KAAK2B,cADZ,EAC4BwO,QAD5B,EAEGpO,oBAFH,CAEwB8C,mBAFxB;KAzPmB;;WA8PrBqL,gBA9PqB,6BA8PJU,eA9PI,EA8Pa;WAC3BlC,gBAAL,GAAwBkC,eAAxB;KA/PmB;;WAkQrBnL,OAlQqB,sBAkQX;WACNC,UAAF,CAAa,KAAKT,QAAlB,EAA4BR,QAA5B;WAEK+E,OAAL,GAAwB,IAAxB;WACK0F,OAAL,GAAwB,IAAxB;WACKjK,QAAL,GAAwB,IAAxB;WACK0J,aAAL,GAAwB,IAAxB;WACKD,gBAAL,GAAwB,IAAxB;KAzQmB;;;WA+QrBjF,UA/QqB,uBA+QVjG,MA/QU,EA+QF;4BAEZuF,OADL,EAEKvF,MAFL;aAIO8D,MAAP,GAAgBjE,QAAQG,OAAO8D,MAAf,CAAhB,CALiB;;WAMZ8D,eAAL,CAAqB7G,IAArB,EAA2Bf,MAA3B,EAAmCwF,WAAnC;aACOxF,MAAP;KAtRmB;;WAyRrBoM,aAzRqB,4BAyRL;UACRiB,WAAW5Q,KAAE,KAAKgF,QAAP,EAAiBkB,QAAjB,CAA0BsI,UAAUqC,KAApC,CAAjB;aACOD,WAAWpC,UAAUqC,KAArB,GAA6BrC,UAAUsC,MAA9C;KA3RmB;;WA8RrB5B,UA9RqB,yBA8RR;;;UACPvJ,SAAS,IAAb;;UACI5F,KAAKiE,SAAL,CAAe,KAAKuF,OAAL,CAAa5D,MAA5B,CAAJ,EAAyC;iBAC9B,KAAK4D,OAAL,CAAa5D,MAAtB,CADuC;;YAInC,OAAO,KAAK4D,OAAL,CAAa5D,MAAb,CAAoBoL,MAA3B,KAAsC,WAA1C,EAAuD;mBAC5C,KAAKxH,OAAL,CAAa5D,MAAb,CAAoB,CAApB,CAAT;;OALJ,MAOO;iBACI3F,KAAE,KAAKuJ,OAAL,CAAa5D,MAAf,EAAuB,CAAvB,CAAT;;;UAGIzD,yDACqC,KAAKqH,OAAL,CAAa5D,MADlD,QAAN;WAGEA,MAAF,EAAU5C,IAAV,CAAeb,QAAf,EAAyBuE,IAAzB,CAA8B,UAACoI,CAAD,EAAIlM,OAAJ,EAAgB;eACvCwM,yBAAL,CACEZ,SAASyC,qBAAT,CAA+BrO,OAA/B,CADF,EAEE,CAACA,OAAD,CAFF;OADF;aAOOgD,MAAP;KArTmB;;WAwTrBwJ,yBAxTqB,sCAwTKxM,OAxTL,EAwTcsO,YAxTd,EAwT4B;UAC3CtO,OAAJ,EAAa;YACLuO,SAASlR,KAAE2C,OAAF,EAAWuD,QAAX,CAAoBnB,UAAUkB,IAA9B,CAAf;;YAEIgL,aAAajO,MAAjB,EAAyB;eACrBiO,YAAF,EACG7I,WADH,CACerD,UAAUgL,SADzB,EACoC,CAACmB,MADrC,EAEGlB,IAFH,CAEQ,eAFR,EAEyBkB,MAFzB;;;KA7Te;;;aAuUdF,qBAvUc,kCAuUQrO,OAvUR,EAuUiB;UAC9BT,WAAWnC,KAAK2F,sBAAL,CAA4B/C,OAA5B,CAAjB;aACOT,WAAWlC,KAAEkC,QAAF,EAAY,CAAZ,CAAX,GAA4B,IAAnC;KAzUmB;;aA4UdsE,gBA5Uc,6BA4UGjD,MA5UH,EA4UW;aACvB,KAAKkD,IAAL,CAAU,YAAY;YACrB0K,QAAUnR,KAAE,IAAF,CAAhB;YACI2G,OAAYwK,MAAMxK,IAAN,CAAWnC,QAAX,CAAhB;;YACM+E,uBACDT,OADC,EAEDqI,MAAMxK,IAAN,EAFC,EAGD,OAAOpD,MAAP,KAAkB,QAAlB,IAA8BA,MAH7B,CAAN;;YAMI,CAACoD,IAAD,IAAS4C,QAAQlC,MAAjB,IAA2B,YAAYnD,IAAZ,CAAiBX,MAAjB,CAA/B,EAAyD;kBAC/C8D,MAAR,GAAiB,KAAjB;;;YAGE,CAACV,IAAL,EAAW;iBACF,IAAI4H,QAAJ,CAAa,IAAb,EAAmBhF,OAAnB,CAAP;gBACM5C,IAAN,CAAWnC,QAAX,EAAqBmC,IAArB;;;YAGE,OAAOpD,MAAP,KAAkB,QAAtB,EAAgC;cAC1B,OAAOoD,KAAKpD,MAAL,CAAP,KAAwB,WAA5B,EAAyC;kBACjC,IAAIY,KAAJ,wBAA8BZ,MAA9B,QAAN;;;eAEGA,MAAL;;OAtBG,CAAP;KA7UmB;;;;0BA4FA;eACZgB,OAAP;;;;0BAGmB;eACZuE,OAAP;;;;;;;;;;;;OAgRFrG,QAAF,EAAYsE,EAAZ,CAAejC,MAAMkC,cAArB,EAAqCnC,SAAS2C,WAA9C,EAA2D,UAAU7G,KAAV,EAAiB;;QAEtEA,MAAMyQ,aAAN,CAAoBxF,OAApB,KAAgC,GAApC,EAAyC;YACjC9E,cAAN;;;QAGIuK,WAAWrR,KAAE,IAAF,CAAjB;QACMkC,WAAWnC,KAAK2F,sBAAL,CAA4B,IAA5B,CAAjB;SACExD,QAAF,EAAYuE,IAAZ,CAAiB,YAAY;UACrB6K,UAAUtR,KAAE,IAAF,CAAhB;UACM2G,OAAU2K,QAAQ3K,IAAR,CAAanC,QAAb,CAAhB;UACMjB,SAAUoD,OAAO,QAAP,GAAkB0K,SAAS1K,IAAT,EAAlC;;eACSH,gBAAT,CAA0BlG,IAA1B,CAA+BgR,OAA/B,EAAwC/N,MAAxC;KAJF;GARF;;;;;;;OAuBE1B,EAAF,CAAKyC,IAAL,IAAyBiK,SAAS/H,gBAAlC;OACE3E,EAAF,CAAKyC,IAAL,EAAW4C,WAAX,GAAyBqH,QAAzB;;OACE1M,EAAF,CAAKyC,IAAL,EAAW6C,UAAX,GAAyB,YAAY;SACjCtF,EAAF,CAAKyC,IAAL,IAAaK,kBAAb;WACO4J,SAAS/H,gBAAhB;GAFF;;SAKO+H,QAAP;CA/Ye,CAiZdvO,CAjZc,CAAjB;;ACNA;;;;;;;AAOA,IAAMuR,WAAY,UAACvR,IAAD,EAAO;;;;;;MAQjBsE,OAA2B,UAAjC;MACMC,UAA2B,cAAjC;MACMC,WAA2B,aAAjC;MACMC,kBAA+BD,QAArC;MACME,eAA2B,WAAjC;MACMC,qBAA2B3E,KAAE6B,EAAF,CAAKyC,IAAL,CAAjC;MACMkN,iBAA2B,EAAjC,CAduB;;MAejBC,gBAA2B,EAAjC,CAfuB;;MAgBjBC,cAA2B,CAAjC,CAhBuB;;MAiBjBC,mBAA2B,EAAjC,CAjBuB;;MAkBjBC,qBAA2B,EAAjC,CAlBuB;;MAmBjBC,2BAA2B,CAAjC,CAnBuB;;MAoBjBC,iBAA2B,IAAI7N,MAAJ,CAAc0N,gBAAd,SAAkCC,kBAAlC,SAAwDJ,cAAxD,CAAjC;MAEM1M,QAAQ;mBACcL,SADd;uBAEgBA,SAFhB;mBAGcA,SAHd;qBAIeA,SAJf;qBAKeA,SALf;8BAMeA,SAA3B,GAAuCC,YAN3B;kCAOiBD,SAA7B,GAAyCC,YAP7B;8BAQeD,SAA3B,GAAuCC;GARzC;MAWMK,YAAY;cACJ,UADI;UAEJ,MAFI;YAGJ,QAHI;eAIJ,WAJI;cAKJ,UALI;eAMJ,qBANI;cAOJ,oBAPI;qBAQE;GARpB;MAWMF,WAAW;iBACC,0BADD;gBAEC,gBAFD;UAGC,gBAHD;gBAIC,aAJD;mBAKC;GALlB;MAQMkN,gBAAgB;SACR,WADQ;YAER,SAFQ;YAGR,cAHQ;eAIR,YAJQ;WAKR,aALQ;cAMR,WANQ;UAOR,YAPQ;aAQR;GARd;MAWMjJ,UAAU;YACA,CADA;UAEA,IAFA;cAGA;GAHhB;MAMMC,cAAc;YACJ,0BADI;UAEJ,SAFI;cAGJ;;;;;;;GAHhB;;MAaMwI,QAlFiB;;;sBAoFT5O,OAAZ,EAAqBY,MAArB,EAA6B;WACtByB,QAAL,GAAiBrC,OAAjB;WACKqP,OAAL,GAAiB,IAAjB;WACKzI,OAAL,GAAiB,KAAKC,UAAL,CAAgBjG,MAAhB,CAAjB;WACK0O,KAAL,GAAiB,KAAKC,eAAL,EAAjB;WACKC,SAAL,GAAiB,KAAKC,aAAL,EAAjB;;WAEKzI,kBAAL;KA3FmB;;;;;;WA+GrBtC,MA/GqB,qBA+GZ;UACH,KAAKrC,QAAL,CAAcqN,QAAd,IAA0BrS,KAAE,KAAKgF,QAAP,EAAiBkB,QAAjB,CAA0BnB,UAAUuN,QAApC,CAA9B,EAA6E;;;;UAIvE3M,SAAW4L,SAASgB,qBAAT,CAA+B,KAAKvN,QAApC,CAAjB;;UACMwN,WAAWxS,KAAE,KAAKiS,KAAP,EAAc/L,QAAd,CAAuBnB,UAAUkB,IAAjC,CAAjB;;eAESwM,WAAT;;UAEID,QAAJ,EAAc;;;;UAIR9F,gBAAgB;uBACJ,KAAK1H;OADvB;UAGM0N,YAAY1S,KAAE8E,KAAF,CAAQA,MAAMmB,IAAd,EAAoByG,aAApB,CAAlB;WAEE/G,MAAF,EAAUxC,OAAV,CAAkBuP,SAAlB;;UAEIA,UAAUpN,kBAAV,EAAJ,EAAoC;;OArB7B;;;UA0BH,CAAC,KAAK6M,SAAV,EAAqB;;;;;YAKf,OAAOQ,MAAP,KAAkB,WAAtB,EAAmC;gBAC3B,IAAIxO,KAAJ,CAAU,8DAAV,CAAN;;;YAEExB,UAAU,KAAKqC,QAAnB,CARmB;;YAUfhF,KAAE2F,MAAF,EAAUO,QAAV,CAAmBnB,UAAU6N,MAA7B,CAAJ,EAA0C;cACpC5S,KAAE,KAAKiS,KAAP,EAAc/L,QAAd,CAAuBnB,UAAU8N,QAAjC,KAA8C7S,KAAE,KAAKiS,KAAP,EAAc/L,QAAd,CAAuBnB,UAAU+N,SAAjC,CAAlD,EAA+F;sBACnFnN,MAAV;;SAZe;;;;;YAkBf,KAAK4D,OAAL,CAAawJ,QAAb,KAA0B,cAA9B,EAA8C;eAC1CpN,MAAF,EAAUwH,QAAV,CAAmBpI,UAAUiO,eAA7B;;;aAEGhB,OAAL,GAAe,IAAIW,MAAJ,CAAWhQ,OAAX,EAAoB,KAAKsP,KAAzB,EAAgC,KAAKgB,gBAAL,EAAhC,CAAf;OA/CK;;;;;;UAuDH,kBAAkBxQ,SAASgJ,eAA3B,IACD,CAACzL,KAAE2F,MAAF,EAAUC,OAAV,CAAkBf,SAASqO,UAA3B,EAAuClQ,MAD3C,EACmD;aAC/C,MAAF,EAAUkK,QAAV,GAAqBnG,EAArB,CAAwB,WAAxB,EAAqC,IAArC,EAA2C/G,KAAEmT,IAA7C;;;WAGGnO,QAAL,CAAckD,KAAd;;WACKlD,QAAL,CAAcmD,YAAd,CAA2B,eAA3B,EAA4C,IAA5C;;WAEE,KAAK8J,KAAP,EAAc7J,WAAd,CAA0BrD,UAAUkB,IAApC;WACEN,MAAF,EACGyC,WADH,CACerD,UAAUkB,IADzB,EAEG9C,OAFH,CAEWnD,KAAE8E,KAAF,CAAQA,MAAMqL,KAAd,EAAqBzD,aAArB,CAFX;KA/KmB;;WAoLrBlH,OApLqB,sBAoLX;WACNC,UAAF,CAAa,KAAKT,QAAlB,EAA4BR,QAA5B;WACE,KAAKQ,QAAP,EAAiBkG,GAAjB,CAAqBzG,SAArB;WACKO,QAAL,GAAgB,IAAhB;WACKiN,KAAL,GAAa,IAAb;;UACI,KAAKD,OAAL,KAAiB,IAArB,EAA2B;aACpBA,OAAL,CAAaoB,OAAb;;aACKpB,OAAL,GAAe,IAAf;;KA3LiB;;WA+LrBqB,MA/LqB,qBA+LZ;WACFlB,SAAL,GAAiB,KAAKC,aAAL,EAAjB;;UACI,KAAKJ,OAAL,KAAiB,IAArB,EAA2B;aACpBA,OAAL,CAAasB,cAAb;;KAlMiB;;;WAwMrB3J,kBAxMqB,iCAwMA;;;WACjB,KAAK3E,QAAP,EAAiB+B,EAAjB,CAAoBjC,MAAMyO,KAA1B,EAAiC,UAAC5S,KAAD,EAAW;cACpCmG,cAAN;cACM0M,eAAN;;cACKnM,MAAL;OAHF;KAzMmB;;WAgNrBmC,UAhNqB,uBAgNVjG,MAhNU,EAgNF;4BAEZ,KAAKkQ,WAAL,CAAiB3K,OADtB,EAEK9I,KAAE,KAAKgF,QAAP,EAAiB2B,IAAjB,EAFL,EAGKpD,MAHL;WAMK4H,eAAL,CACE7G,IADF,EAEEf,MAFF,EAGE,KAAKkQ,WAAL,CAAiB1K,WAHnB;aAMOxF,MAAP;KA7NmB;;WAgOrB2O,eAhOqB,8BAgOH;UACZ,CAAC,KAAKD,KAAV,EAAiB;YACTtM,SAAS4L,SAASgB,qBAAT,CAA+B,KAAKvN,QAApC,CAAf;;aACKiN,KAAL,GAAajS,KAAE2F,MAAF,EAAU5C,IAAV,CAAe8B,SAAS6O,IAAxB,EAA8B,CAA9B,CAAb;;;aAEK,KAAKzB,KAAZ;KArOmB;;WAwOrB0B,aAxOqB,4BAwOL;UACRC,kBAAkB5T,KAAE,KAAKgF,QAAP,EAAiBW,MAAjB,EAAxB;UACIkO,YAAoB9B,cAAc+B,MAAtC,CAFc;;UAKVF,gBAAgB1N,QAAhB,CAAyBnB,UAAU6N,MAAnC,CAAJ,EAAgD;oBAClCb,cAAcgC,GAA1B;;YACI/T,KAAE,KAAKiS,KAAP,EAAc/L,QAAd,CAAuBnB,UAAU+N,SAAjC,CAAJ,EAAiD;sBACnCf,cAAciC,MAA1B;;OAHJ,MAKO,IAAIJ,gBAAgB1N,QAAhB,CAAyBnB,UAAUkP,SAAnC,CAAJ,EAAmD;oBAC5ClC,cAAcpE,KAA1B;OADK,MAEA,IAAIiG,gBAAgB1N,QAAhB,CAAyBnB,UAAUmP,QAAnC,CAAJ,EAAkD;oBAC3CnC,cAAcrE,IAA1B;OADK,MAEA,IAAI1N,KAAE,KAAKiS,KAAP,EAAc/L,QAAd,CAAuBnB,UAAU+N,SAAjC,CAAJ,EAAiD;oBAC1Cf,cAAcoC,SAA1B;;;aAEKN,SAAP;KAzPmB;;WA4PrBzB,aA5PqB,4BA4PL;aACPpS,KAAE,KAAKgF,QAAP,EAAiBY,OAAjB,CAAyB,SAAzB,EAAoC5C,MAApC,GAA6C,CAApD;KA7PmB;;WAgQrBiQ,gBAhQqB,+BAgQF;;;UACXmB,aAAa,EAAnB;;UACI,OAAO,KAAK7K,OAAL,CAAa8K,MAApB,KAA+B,UAAnC,EAA+C;mBAClCxS,EAAX,GAAgB,UAAC8E,IAAD,EAAU;eACnB2N,OAAL,gBACK3N,KAAK2N,OADV,EAEK,OAAK/K,OAAL,CAAa8K,MAAb,CAAoB1N,KAAK2N,OAAzB,KAAqC,EAF1C;iBAIO3N,IAAP;SALF;OADF,MAQO;mBACM0N,MAAX,GAAoB,KAAK9K,OAAL,CAAa8K,MAAjC;;;UAEIE,eAAe;mBACP,KAAKZ,aAAL,EADO;mBAEP;kBACDS,UADC;gBAEH;qBACK,KAAK7K,OAAL,CAAaiL;WAHf;2BAKQ;+BACI,KAAKjL,OAAL,CAAawJ;;;OARvC;aAaOwB,YAAP;KA1RmB;;;aA+Rd/N,gBA/Rc,6BA+RGjD,MA/RH,EA+RW;aACvB,KAAKkD,IAAL,CAAU,YAAY;YACvBE,OAAO3G,KAAE,IAAF,EAAQ2G,IAAR,CAAanC,QAAb,CAAX;;YACM+E,UAAU,OAAOhG,MAAP,KAAkB,QAAlB,GAA6BA,MAA7B,GAAsC,IAAtD;;YAEI,CAACoD,IAAL,EAAW;iBACF,IAAI4K,QAAJ,CAAa,IAAb,EAAmBhI,OAAnB,CAAP;eACE,IAAF,EAAQ5C,IAAR,CAAanC,QAAb,EAAuBmC,IAAvB;;;YAGE,OAAOpD,MAAP,KAAkB,QAAtB,EAAgC;cAC1B,OAAOoD,KAAKpD,MAAL,CAAP,KAAwB,WAA5B,EAAyC;kBACjC,IAAIY,KAAJ,wBAA8BZ,MAA9B,QAAN;;;eAEGA,MAAL;;OAbG,CAAP;KAhSmB;;aAkTdkP,WAlTc,wBAkTF9R,KAlTE,EAkTK;UACpBA,UAAUA,MAAMkL,KAAN,KAAgBgG,wBAAhB,IACZlR,MAAMgH,IAAN,KAAe,OAAf,IAA0BhH,MAAMkL,KAAN,KAAgB6F,WADxC,CAAJ,EAC0D;;;;UAIpD+C,UAAUzU,KAAE8L,SAAF,CAAY9L,KAAE6E,SAAS2C,WAAX,CAAZ,CAAhB;;WACK,IAAIqH,IAAI,CAAb,EAAgBA,IAAI4F,QAAQzR,MAA5B,EAAoC6L,GAApC,EAAyC;YACjClJ,SAAgB4L,SAASgB,qBAAT,CAA+BkC,QAAQ5F,CAAR,CAA/B,CAAtB;;YACM6F,UAAgB1U,KAAEyU,QAAQ5F,CAAR,CAAF,EAAclI,IAAd,CAAmBnC,QAAnB,CAAtB;YACMkI,gBAAgB;yBACJ+H,QAAQ5F,CAAR;SADlB;;YAII,CAAC6F,OAAL,EAAc;;;;YAIRC,eAAeD,QAAQzC,KAA7B;;YACI,CAACjS,KAAE2F,MAAF,EAAUO,QAAV,CAAmBnB,UAAUkB,IAA7B,CAAL,EAAyC;;;;YAIrCtF,UAAUA,MAAMgH,IAAN,KAAe,OAAf,IACV,kBAAkBzD,IAAlB,CAAuBvD,MAAMC,MAAN,CAAagL,OAApC,CADU,IACsCjL,MAAMgH,IAAN,KAAe,OAAf,IAA0BhH,MAAMkL,KAAN,KAAgB6F,WAD1F,KAEG1R,KAAEiI,QAAF,CAAWtC,MAAX,EAAmBhF,MAAMC,MAAzB,CAFP,EAEyC;;;;YAInCgU,YAAY5U,KAAE8E,KAAF,CAAQA,MAAMyL,IAAd,EAAoB7D,aAApB,CAAlB;aACE/G,MAAF,EAAUxC,OAAV,CAAkByR,SAAlB;;YACIA,UAAUtP,kBAAV,EAAJ,EAAoC;;SAxBG;;;;YA8BnC,kBAAkB7C,SAASgJ,eAA/B,EAAgD;eAC5C,MAAF,EAAUyB,QAAV,GAAqBhC,GAArB,CAAyB,WAAzB,EAAsC,IAAtC,EAA4ClL,KAAEmT,IAA9C;;;gBAGMtE,CAAR,EAAW1G,YAAX,CAAwB,eAAxB,EAAyC,OAAzC;aAEEwM,YAAF,EAAgB3O,WAAhB,CAA4BjB,UAAUkB,IAAtC;aACEN,MAAF,EACGK,WADH,CACejB,UAAUkB,IADzB,EAEG9C,OAFH,CAEWnD,KAAE8E,KAAF,CAAQA,MAAM4L,MAAd,EAAsBhE,aAAtB,CAFX;;KA9ViB;;aAoWd6F,qBApWc,kCAoWQ5P,OApWR,EAoWiB;UAChCgD,MAAJ;UACMzD,WAAWnC,KAAK2F,sBAAL,CAA4B/C,OAA5B,CAAjB;;UAEIT,QAAJ,EAAc;iBACHlC,KAAEkC,QAAF,EAAY,CAAZ,CAAT;;;aAGKyD,UAAUhD,QAAQkS,UAAzB;KA5WmB;;;aAgXdC,sBAhXc,mCAgXSnU,KAhXT,EAgXgB;;;;;;;;UAQ/B,kBAAkBuD,IAAlB,CAAuBvD,MAAMC,MAAN,CAAagL,OAApC,IACFjL,MAAMkL,KAAN,KAAgB4F,aAAhB,IAAiC9Q,MAAMkL,KAAN,KAAgB2F,cAAhB,KAChC7Q,MAAMkL,KAAN,KAAgB+F,kBAAhB,IAAsCjR,MAAMkL,KAAN,KAAgB8F,gBAAtD,IACC3R,KAAEW,MAAMC,MAAR,EAAgBgF,OAAhB,CAAwBf,SAAS6O,IAAjC,EAAuC1Q,MAFR,CAD/B,GAGiD,CAAC8O,eAAe5N,IAAf,CAAoBvD,MAAMkL,KAA1B,CAHtD,EAGwF;;;;YAIlF/E,cAAN;YACM0M,eAAN;;UAEI,KAAKnB,QAAL,IAAiBrS,KAAE,IAAF,EAAQkG,QAAR,CAAiBnB,UAAUuN,QAA3B,CAArB,EAA2D;;;;UAIrD3M,SAAW4L,SAASgB,qBAAT,CAA+B,IAA/B,CAAjB;;UACMC,WAAWxS,KAAE2F,MAAF,EAAUO,QAAV,CAAmBnB,UAAUkB,IAA7B,CAAjB;;UAEI,CAACuM,QAAD,KAAc7R,MAAMkL,KAAN,KAAgB2F,cAAhB,IAAkC7Q,MAAMkL,KAAN,KAAgB4F,aAAhE,KACCe,aAAa7R,MAAMkL,KAAN,KAAgB2F,cAAhB,IAAkC7Q,MAAMkL,KAAN,KAAgB4F,aAA/D,CADL,EACoF;YAE9E9Q,MAAMkL,KAAN,KAAgB2F,cAApB,EAAoC;cAC5BnK,SAASrH,KAAE2F,MAAF,EAAU5C,IAAV,CAAe8B,SAAS2C,WAAxB,EAAqC,CAArC,CAAf;eACEH,MAAF,EAAUlE,OAAV,CAAkB,OAAlB;;;aAGA,IAAF,EAAQA,OAAR,CAAgB,OAAhB;;;;UAII4R,QAAQ/U,KAAE2F,MAAF,EAAU5C,IAAV,CAAe8B,SAASmQ,aAAxB,EAAuCC,GAAvC,EAAd;;UAEI,CAACF,MAAM/R,MAAX,EAAmB;;;;UAIf4H,QAAQmK,MAAM/I,OAAN,CAAcrL,MAAMC,MAApB,CAAZ;;UAEID,MAAMkL,KAAN,KAAgB8F,gBAAhB,IAAoC/G,QAAQ,CAAhD,EAAmD;;;;;UAI/CjK,MAAMkL,KAAN,KAAgB+F,kBAAhB,IAAsChH,QAAQmK,MAAM/R,MAAN,GAAe,CAAjE,EAAoE;;;;;UAIhE4H,QAAQ,CAAZ,EAAe;gBACL,CAAR;;;YAGIA,KAAN,EAAa1C,KAAb;KAzamB;;;;0BAiGA;eACZ3D,OAAP;;;;0BAGmB;eACZuE,OAAP;;;;0BAGuB;eAChBC,WAAP;;;;;;;;;;;;OA2UFtG,QAAF,EACGsE,EADH,CACMjC,MAAMoQ,gBADZ,EAC8BrQ,SAAS2C,WADvC,EACqD+J,SAASuD,sBAD9D,EAEG/N,EAFH,CAEMjC,MAAMoQ,gBAFZ,EAE8BrQ,SAAS6O,IAFvC,EAE6CnC,SAASuD,sBAFtD,EAGG/N,EAHH,CAGSjC,MAAMkC,cAHf,SAGiClC,MAAMqQ,cAHvC,EAGyD5D,SAASkB,WAHlE,EAIG1L,EAJH,CAIMjC,MAAMkC,cAJZ,EAI4BnC,SAAS2C,WAJrC,EAIkD,UAAU7G,KAAV,EAAiB;UACzDmG,cAAN;UACM0M,eAAN;;aACShN,gBAAT,CAA0BlG,IAA1B,CAA+BN,KAAE,IAAF,CAA/B,EAAwC,QAAxC;GAPJ,EASG+G,EATH,CASMjC,MAAMkC,cATZ,EAS4BnC,SAASuQ,UATrC,EASiD,UAACC,CAAD,EAAO;MAClD7B,eAAF;GAVJ;;;;;;;OAoBE3R,EAAF,CAAKyC,IAAL,IAAyBiN,SAAS/K,gBAAlC;OACE3E,EAAF,CAAKyC,IAAL,EAAW4C,WAAX,GAAyBqK,QAAzB;;OACE1P,EAAF,CAAKyC,IAAL,EAAW6C,UAAX,GAAyB,YAAY;SACjCtF,EAAF,CAAKyC,IAAL,IAAaK,kBAAb;WACO4M,SAAS/K,gBAAhB;GAFF;;SAKO+K,QAAP;CAhde,CAkddvR,CAldc,EAkdX2S,MAldW,CAAjB;;ACRA;;;;;;;AAOA,IAAM2C,QAAS,UAACtV,IAAD,EAAO;;;;;;MASdsE,OAA+B,OAArC;MACMC,UAA+B,cAArC;MACMC,WAA+B,UAArC;MACMC,kBAAmCD,QAAzC;MACME,eAA+B,WAArC;MACMC,qBAA+B3E,KAAE6B,EAAF,CAAKyC,IAAL,CAArC;MACMM,sBAA+B,GAArC;MACM2Q,+BAA+B,GAArC;MACM/D,iBAA+B,EAArC,CAjBoB;;MAmBd1I,UAAU;cACH,IADG;cAEH,IAFG;WAGH,IAHG;UAIH;GAJb;MAOMC,cAAc;cACP,kBADO;cAEP,SAFO;WAGP,SAHO;UAIP;GAJb;MAOMjE,QAAQ;mBACeL,SADf;uBAEiBA,SAFjB;mBAGeA,SAHf;qBAIgBA,SAJhB;yBAKkBA,SALlB;uBAMiBA,SANjB;qCAOwBA,SAPxB;yCAQ0BA,SAR1B;yCAS0BA,SAT1B;6CAU4BA,SAV5B;8BAWgBA,SAA5B,GAAwCC;GAX1C;MAcMK,YAAY;wBACK,yBADL;cAEK,gBAFL;UAGK,YAHL;UAIK,MAJL;UAKK;GALvB;MAQMF,WAAW;YACM,eADN;iBAEM,uBAFN;kBAGM,wBAHN;mBAIM,mDAJN;oBAKM,aALN;oBAMM;;;;;;;GANvB;;MAgBMyQ,KAvEc;;;mBAyEN3S,OAAZ,EAAqBY,MAArB,EAA6B;WACtBgG,OAAL,GAA4B,KAAKC,UAAL,CAAgBjG,MAAhB,CAA5B;WACKyB,QAAL,GAA4BrC,OAA5B;WACK6S,OAAL,GAA4BxV,KAAE2C,OAAF,EAAWI,IAAX,CAAgB8B,SAAS4Q,MAAzB,EAAiC,CAAjC,CAA5B;WACKC,SAAL,GAA4B,IAA5B;WACKC,QAAL,GAA4B,KAA5B;WACKC,kBAAL,GAA4B,KAA5B;WACKC,oBAAL,GAA4B,KAA5B;WACKC,oBAAL,GAA4B,CAA5B;WACKC,eAAL,GAA4B,CAA5B;KAlFgB;;;;;;WAmGlB1O,MAnGkB,mBAmGXqF,aAnGW,EAmGI;aACb,KAAKiJ,QAAL,GAAgB,KAAKvG,IAAL,EAAhB,GAA8B,KAAKC,IAAL,CAAU3C,aAAV,CAArC;KApGgB;;WAuGlB2C,IAvGkB,iBAuGb3C,aAvGa,EAuGE;;;UACd,KAAK+B,gBAAL,IAAyB,KAAKkH,QAAlC,EAA4C;;;;UAIxC5V,KAAKgC,qBAAL,MAAgC/B,KAAE,KAAKgF,QAAP,EAAiBkB,QAAjB,CAA0BnB,UAAUoB,IAApC,CAApC,EAA+E;aACxEsI,gBAAL,GAAwB,IAAxB;;;UAGIiE,YAAY1S,KAAE8E,KAAF,CAAQA,MAAMmB,IAAd,EAAoB;;OAApB,CAAlB;WAIE,KAAKjB,QAAP,EAAiB7B,OAAjB,CAAyBuP,SAAzB;;UAEI,KAAKiD,QAAL,IAAiBjD,UAAUpN,kBAAV,EAArB,EAAqD;;;;WAIhDqQ,QAAL,GAAgB,IAAhB;;WAEKK,eAAL;;WACKC,aAAL;;WAEKC,aAAL;;WAEEzT,SAAS0T,IAAX,EAAiBhJ,QAAjB,CAA0BpI,UAAUqR,IAApC;;WAEKC,eAAL;;WACKC,eAAL;;WAEE,KAAKtR,QAAP,EAAiB+B,EAAjB,CACEjC,MAAMyR,aADR,EAEE1R,SAAS2R,YAFX,EAGE,UAAC7V,KAAD;eAAW,MAAKyO,IAAL,CAAUzO,KAAV,CAAX;OAHF;WAME,KAAK6U,OAAP,EAAgBzO,EAAhB,CAAmBjC,MAAM2R,iBAAzB,EAA4C,YAAM;aAC9C,MAAKzR,QAAP,EAAiBvD,GAAjB,CAAqBqD,MAAM4R,eAA3B,EAA4C,UAAC/V,KAAD,EAAW;cACjDX,KAAEW,MAAMC,MAAR,EAAgBC,EAAhB,CAAmB,MAAKmE,QAAxB,CAAJ,EAAuC;kBAChC6Q,oBAAL,GAA4B,IAA5B;;SAFJ;OADF;;WAQKc,aAAL,CAAmB;eAAM,MAAKC,YAAL,CAAkBlK,aAAlB,CAAN;OAAnB;KApJgB;;WAuJlB0C,IAvJkB,iBAuJbzO,KAvJa,EAuJN;;;UACNA,KAAJ,EAAW;cACHmG,cAAN;;;UAGE,KAAK2H,gBAAL,IAAyB,CAAC,KAAKkH,QAAnC,EAA6C;;;;UAIvCf,YAAY5U,KAAE8E,KAAF,CAAQA,MAAMyL,IAAd,CAAlB;WAEE,KAAKvL,QAAP,EAAiB7B,OAAjB,CAAyByR,SAAzB;;UAEI,CAAC,KAAKe,QAAN,IAAkBf,UAAUtP,kBAAV,EAAtB,EAAsD;;;;WAIjDqQ,QAAL,GAAgB,KAAhB;UAEM1V,aAAaF,KAAKgC,qBAAL,MAAgC/B,KAAE,KAAKgF,QAAP,EAAiBkB,QAAjB,CAA0BnB,UAAUoB,IAApC,CAAnD;;UAEIlG,UAAJ,EAAgB;aACTwO,gBAAL,GAAwB,IAAxB;;;WAGG4H,eAAL;;WACKC,eAAL;;WAEE7T,QAAF,EAAYyI,GAAZ,CAAgBpG,MAAM+R,OAAtB;WAEE,KAAK7R,QAAP,EAAiBgB,WAAjB,CAA6BjB,UAAUkB,IAAvC;WAEE,KAAKjB,QAAP,EAAiBkG,GAAjB,CAAqBpG,MAAMyR,aAA3B;WACE,KAAKf,OAAP,EAAgBtK,GAAhB,CAAoBpG,MAAM2R,iBAA1B;;UAEIxW,UAAJ,EAAgB;aAEZ,KAAK+E,QAAP,EACGvD,GADH,CACO1B,KAAK2B,cADZ,EAC4B,UAACf,KAAD;iBAAW,OAAKmW,UAAL,CAAgBnW,KAAhB,CAAX;SAD5B,EAEGmB,oBAFH,CAEwB8C,mBAFxB;OAFF,MAKO;aACAkS,UAAL;;KAhMc;;WAoMlBtR,OApMkB,sBAoMR;WACNC,UAAF,CAAa,KAAKT,QAAlB,EAA4BR,QAA5B;WAEEpD,MAAF,EAAUqB,QAAV,EAAoB,KAAKuC,QAAzB,EAAmC,KAAK0Q,SAAxC,EAAmDxK,GAAnD,CAAuDzG,SAAvD;WAEK8E,OAAL,GAA4B,IAA5B;WACKvE,QAAL,GAA4B,IAA5B;WACKwQ,OAAL,GAA4B,IAA5B;WACKE,SAAL,GAA4B,IAA5B;WACKC,QAAL,GAA4B,IAA5B;WACKC,kBAAL,GAA4B,IAA5B;WACKC,oBAAL,GAA4B,IAA5B;WACKE,eAAL,GAA4B,IAA5B;KAhNgB;;WAmNlBgB,YAnNkB,2BAmNH;WACRb,aAAL;KApNgB;;;WAyNlB1M,UAzNkB,uBAyNPjG,MAzNO,EAyNC;4BAEZuF,OADL,EAEKvF,MAFL;WAIK4H,eAAL,CAAqB7G,IAArB,EAA2Bf,MAA3B,EAAmCwF,WAAnC;aACOxF,MAAP;KA/NgB;;WAkOlBqT,YAlOkB,yBAkOLlK,aAlOK,EAkOU;;;UACpBzM,aAAaF,KAAKgC,qBAAL,MACjB/B,KAAE,KAAKgF,QAAP,EAAiBkB,QAAjB,CAA0BnB,UAAUoB,IAApC,CADF;;UAGI,CAAC,KAAKnB,QAAL,CAAc6P,UAAf,IACD,KAAK7P,QAAL,CAAc6P,UAAd,CAAyBxR,QAAzB,KAAsC2T,KAAKC,YAD9C,EAC4D;;iBAEjDd,IAAT,CAAce,WAAd,CAA0B,KAAKlS,QAA/B;;;WAGGA,QAAL,CAAc8K,KAAd,CAAoBqH,OAApB,GAA8B,OAA9B;;WACKnS,QAAL,CAAcoS,eAAd,CAA8B,aAA9B;;WACKpS,QAAL,CAAcqS,SAAd,GAA0B,CAA1B;;UAEIpX,UAAJ,EAAgB;aACT4N,MAAL,CAAY,KAAK7I,QAAjB;;;WAGA,KAAKA,QAAP,EAAiBmI,QAAjB,CAA0BpI,UAAUkB,IAApC;;UAEI,KAAKsD,OAAL,CAAarB,KAAjB,EAAwB;aACjBoP,aAAL;;;UAGIC,aAAavX,KAAE8E,KAAF,CAAQA,MAAMqL,KAAd,EAAqB;;OAArB,CAAnB;;UAIMqH,qBAAqB,SAArBA,kBAAqB,GAAM;YAC3B,OAAKjO,OAAL,CAAarB,KAAjB,EAAwB;iBACjBlD,QAAL,CAAckD,KAAd;;;eAEGuG,gBAAL,GAAwB,KAAxB;aACE,OAAKzJ,QAAP,EAAiB7B,OAAjB,CAAyBoU,UAAzB;OALF;;UAQItX,UAAJ,EAAgB;aACZ,KAAKuV,OAAP,EACG/T,GADH,CACO1B,KAAK2B,cADZ,EAC4B8V,kBAD5B,EAEG1V,oBAFH,CAEwB8C,mBAFxB;OADF,MAIO;;;KA1QS;;WA+QlB0S,aA/QkB,4BA+QF;;;WACZ7U,QAAF,EACGyI,GADH,CACOpG,MAAM+R,OADb;OAEG9P,EAFH,CAEMjC,MAAM+R,OAFZ,EAEqB,UAAClW,KAAD,EAAW;YACxB8B,aAAa9B,MAAMC,MAAnB,IACA,OAAKoE,QAAL,KAAkBrE,MAAMC,MADxB,IAEA,CAACZ,KAAE,OAAKgF,QAAP,EAAiByS,GAAjB,CAAqB9W,MAAMC,MAA3B,EAAmCoC,MAFxC,EAEgD;iBACzCgC,QAAL,CAAckD,KAAd;;OANN;KAhRgB;;WA2RlBmO,eA3RkB,8BA2RA;;;UACZ,KAAKV,QAAL,IAAiB,KAAKpM,OAAL,CAAa6B,QAAlC,EAA4C;aACxC,KAAKpG,QAAP,EAAiB+B,EAAjB,CAAoBjC,MAAM4S,eAA1B,EAA2C,UAAC/W,KAAD,EAAW;cAChDA,MAAMkL,KAAN,KAAgB2F,cAApB,EAAoC;kBAC5B1K,cAAN;;mBACKsI,IAAL;;SAHJ;OADF,MAQO,IAAI,CAAC,KAAKuG,QAAV,EAAoB;aACvB,KAAK3Q,QAAP,EAAiBkG,GAAjB,CAAqBpG,MAAM4S,eAA3B;;KArSc;;WAySlBpB,eAzSkB,8BAySA;;;UACZ,KAAKX,QAAT,EAAmB;aACfvU,MAAF,EAAU2F,EAAV,CAAajC,MAAM6S,MAAnB,EAA2B,UAAChX,KAAD;iBAAW,OAAKoW,YAAL,CAAkBpW,KAAlB,CAAX;SAA3B;OADF,MAEO;aACHS,MAAF,EAAU8J,GAAV,CAAcpG,MAAM6S,MAApB;;KA7Sc;;WAiTlBb,UAjTkB,yBAiTL;;;WACN9R,QAAL,CAAc8K,KAAd,CAAoBqH,OAApB,GAA8B,MAA9B;;WACKnS,QAAL,CAAcmD,YAAd,CAA2B,aAA3B,EAA0C,IAA1C;;WACKsG,gBAAL,GAAwB,KAAxB;;WACKkI,aAAL,CAAmB,YAAM;aACrBlU,SAAS0T,IAAX,EAAiBnQ,WAAjB,CAA6BjB,UAAUqR,IAAvC;;eACKwB,iBAAL;;eACKC,eAAL;;aACE,OAAK7S,QAAP,EAAiB7B,OAAjB,CAAyB2B,MAAM4L,MAA/B;OAJF;KArTgB;;WA6TlBoH,eA7TkB,8BA6TA;UACZ,KAAKpC,SAAT,EAAoB;aAChB,KAAKA,SAAP,EAAkBnP,MAAlB;aACKmP,SAAL,GAAiB,IAAjB;;KAhUc;;WAoUlBiB,aApUkB,0BAoUJoB,QApUI,EAoUM;;;UAChBC,UAAUhY,KAAE,KAAKgF,QAAP,EAAiBkB,QAAjB,CAA0BnB,UAAUoB,IAApC,IACdpB,UAAUoB,IADI,GACG,EADnB;;UAGI,KAAKwP,QAAL,IAAiB,KAAKpM,OAAL,CAAa0O,QAAlC,EAA4C;YACpCC,YAAYnY,KAAKgC,qBAAL,MAAgCiW,OAAlD;aAEKtC,SAAL,GAAiBjT,SAAS0V,aAAT,CAAuB,KAAvB,CAAjB;aACKzC,SAAL,CAAe0C,SAAf,GAA2BrT,UAAUsT,QAArC;;YAEIL,OAAJ,EAAa;eACT,KAAKtC,SAAP,EAAkBvI,QAAlB,CAA2B6K,OAA3B;;;aAGA,KAAKtC,SAAP,EAAkB4C,QAAlB,CAA2B7V,SAAS0T,IAApC;aAEE,KAAKnR,QAAP,EAAiB+B,EAAjB,CAAoBjC,MAAMyR,aAA1B,EAAyC,UAAC5V,KAAD,EAAW;cAC9C,OAAKkV,oBAAT,EAA+B;mBACxBA,oBAAL,GAA4B,KAA5B;;;;cAGElV,MAAMC,MAAN,KAAiBD,MAAMyQ,aAA3B,EAA0C;;;;cAGtC,OAAK7H,OAAL,CAAa0O,QAAb,KAA0B,QAA9B,EAAwC;mBACjCjT,QAAL,CAAckD,KAAd;WADF,MAEO;mBACAkH,IAAL;;SAXJ;;YAeI8I,SAAJ,EAAe;eACRrK,MAAL,CAAY,KAAK6H,SAAjB;;;aAGA,KAAKA,SAAP,EAAkBvI,QAAlB,CAA2BpI,UAAUkB,IAArC;;YAEI,CAAC8R,QAAL,EAAe;;;;YAIX,CAACG,SAAL,EAAgB;;;;;aAKd,KAAKxC,SAAP,EACGjU,GADH,CACO1B,KAAK2B,cADZ,EAC4BqW,QAD5B,EAEGjW,oBAFH,CAEwByT,4BAFxB;OA1CF,MA8CO,IAAI,CAAC,KAAKI,QAAN,IAAkB,KAAKD,SAA3B,EAAsC;aACzC,KAAKA,SAAP,EAAkB1P,WAAlB,CAA8BjB,UAAUkB,IAAxC;;YAEMsS,iBAAiB,SAAjBA,cAAiB,GAAM;iBACtBT,eAAL;;cACIC,QAAJ,EAAc;;;SAFhB;;YAOIhY,KAAKgC,qBAAL,MACD/B,KAAE,KAAKgF,QAAP,EAAiBkB,QAAjB,CAA0BnB,UAAUoB,IAApC,CADH,EAC8C;eAC1C,KAAKuP,SAAP,EACGjU,GADH,CACO1B,KAAK2B,cADZ,EAC4B6W,cAD5B,EAEGzW,oBAFH,CAEwByT,4BAFxB;SAFF,MAKO;;;OAfF,MAmBA,IAAIwC,QAAJ,EAAc;;;KAzYL;;;;;;WAoZlB7B,aApZkB,4BAoZF;UACRsC,qBACJ,KAAKxT,QAAL,CAAcyT,YAAd,GAA6BhW,SAASgJ,eAAT,CAAyBiN,YADxD;;UAGI,CAAC,KAAK9C,kBAAN,IAA4B4C,kBAAhC,EAAoD;aAC7CxT,QAAL,CAAc8K,KAAd,CAAoB6I,WAApB,GAAqC,KAAK5C,eAA1C;;;UAGE,KAAKH,kBAAL,IAA2B,CAAC4C,kBAAhC,EAAoD;aAC7CxT,QAAL,CAAc8K,KAAd,CAAoB8I,YAApB,GAAsC,KAAK7C,eAA3C;;KA7Zc;;WAialB6B,iBAjakB,gCAiaE;WACb5S,QAAL,CAAc8K,KAAd,CAAoB6I,WAApB,GAAkC,EAAlC;WACK3T,QAAL,CAAc8K,KAAd,CAAoB8I,YAApB,GAAmC,EAAnC;KAnagB;;WAsalB5C,eAtakB,8BAsaA;UACV6C,OAAOpW,SAAS0T,IAAT,CAAc3F,qBAAd,EAAb;WACKoF,kBAAL,GAA0BiD,KAAKC,IAAL,GAAYD,KAAKE,KAAjB,GAAyB3X,OAAO4X,UAA1D;WACKjD,eAAL,GAAuB,KAAKkD,kBAAL,EAAvB;KAzagB;;WA4alBhD,aA5akB,4BA4aF;;;UACV,KAAKL,kBAAT,EAA6B;;;;aAKzB/Q,SAASqU,aAAX,EAA0BzS,IAA1B,CAA+B,UAACmE,KAAD,EAAQjI,OAAR,EAAoB;cAC3CwW,gBAAgBnZ,KAAE2C,OAAF,EAAW,CAAX,EAAcmN,KAAd,CAAoB8I,YAA1C;cACMQ,oBAAoBpZ,KAAE2C,OAAF,EAAWsH,GAAX,CAAe,eAAf,CAA1B;eACEtH,OAAF,EAAWgE,IAAX,CAAgB,eAAhB,EAAiCwS,aAAjC,EAAgDlP,GAAhD,CAAoD,eAApD,EAAwEoP,WAAWD,iBAAX,IAAgC,OAAKrD,eAA7G;SAHF,EAL2B;;aAYzBlR,SAASyU,cAAX,EAA2B7S,IAA3B,CAAgC,UAACmE,KAAD,EAAQjI,OAAR,EAAoB;cAC5C4W,eAAevZ,KAAE2C,OAAF,EAAW,CAAX,EAAcmN,KAAd,CAAoB0J,WAAzC;cACMC,mBAAmBzZ,KAAE2C,OAAF,EAAWsH,GAAX,CAAe,cAAf,CAAzB;eACEtH,OAAF,EAAWgE,IAAX,CAAgB,cAAhB,EAAgC4S,YAAhC,EAA8CtP,GAA9C,CAAkD,cAAlD,EAAqEoP,WAAWI,gBAAX,IAA+B,OAAK1D,eAAzG;SAHF,EAZ2B;;aAmBzBlR,SAAS6U,cAAX,EAA2BjT,IAA3B,CAAgC,UAACmE,KAAD,EAAQjI,OAAR,EAAoB;cAC5C4W,eAAevZ,KAAE2C,OAAF,EAAW,CAAX,EAAcmN,KAAd,CAAoB0J,WAAzC;cACMC,mBAAmBzZ,KAAE2C,OAAF,EAAWsH,GAAX,CAAe,cAAf,CAAzB;eACEtH,OAAF,EAAWgE,IAAX,CAAgB,cAAhB,EAAgC4S,YAAhC,EAA8CtP,GAA9C,CAAkD,cAAlD,EAAqEoP,WAAWI,gBAAX,IAA+B,OAAK1D,eAAzG;SAHF,EAnB2B;;YA0BrBoD,gBAAgB1W,SAAS0T,IAAT,CAAcrG,KAAd,CAAoB8I,YAA1C;YACMQ,oBAAoBpZ,KAAE,MAAF,EAAUiK,GAAV,CAAc,eAAd,CAA1B;aACE,MAAF,EAAUtD,IAAV,CAAe,eAAf,EAAgCwS,aAAhC,EAA+ClP,GAA/C,CAAmD,eAAnD,EAAuEoP,WAAWD,iBAAX,IAAgC,KAAKrD,eAA5G;;KAzcc;;WA6clB8B,eA7ckB,8BA6cA;;WAEdhT,SAASqU,aAAX,EAA0BzS,IAA1B,CAA+B,UAACmE,KAAD,EAAQjI,OAAR,EAAoB;YAC3CgX,UAAU3Z,KAAE2C,OAAF,EAAWgE,IAAX,CAAgB,eAAhB,CAAhB;;YACI,OAAOgT,OAAP,KAAmB,WAAvB,EAAoC;eAChChX,OAAF,EAAWsH,GAAX,CAAe,eAAf,EAAgC0P,OAAhC,EAAyClU,UAAzC,CAAoD,eAApD;;OAHJ,EAFgB;;WAUXZ,SAASyU,cAAd,UAAiCzU,SAAS6U,cAA1C,EAA4DjT,IAA5D,CAAiE,UAACmE,KAAD,EAAQjI,OAAR,EAAoB;YAC7EiX,SAAS5Z,KAAE2C,OAAF,EAAWgE,IAAX,CAAgB,cAAhB,CAAf;;YACI,OAAOiT,MAAP,KAAkB,WAAtB,EAAmC;eAC/BjX,OAAF,EAAWsH,GAAX,CAAe,cAAf,EAA+B2P,MAA/B,EAAuCnU,UAAvC,CAAkD,cAAlD;;OAHJ,EAVgB;;UAkBVkU,UAAU3Z,KAAE,MAAF,EAAU2G,IAAV,CAAe,eAAf,CAAhB;;UACI,OAAOgT,OAAP,KAAmB,WAAvB,EAAoC;aAChC,MAAF,EAAU1P,GAAV,CAAc,eAAd,EAA+B0P,OAA/B,EAAwClU,UAAxC,CAAmD,eAAnD;;KAjec;;WAqelBwT,kBArekB,iCAqeG;;UACbY,YAAYpX,SAAS0V,aAAT,CAAuB,KAAvB,CAAlB;gBACUC,SAAV,GAAsBrT,UAAU+U,kBAAhC;eACS3D,IAAT,CAAce,WAAd,CAA0B2C,SAA1B;UACME,iBAAiBF,UAAUrJ,qBAAV,GAAkCwJ,KAAlC,GAA0CH,UAAUI,WAA3E;eACS9D,IAAT,CAAc+D,WAAd,CAA0BL,SAA1B;aACOE,cAAP;KA3egB;;;UAifXvT,gBAjfW,6BAifMjD,MAjfN,EAifcmJ,aAjfd,EAif6B;aACtC,KAAKjG,IAAL,CAAU,YAAY;YACvBE,OAAY3G,KAAE,IAAF,EAAQ2G,IAAR,CAAanC,QAAb,CAAhB;;YACM+E,uBACD+L,MAAMxM,OADL,EAED9I,KAAE,IAAF,EAAQ2G,IAAR,EAFC,EAGD,OAAOpD,MAAP,KAAkB,QAAlB,IAA8BA,MAH7B,CAAN;;YAMI,CAACoD,IAAL,EAAW;iBACF,IAAI2O,KAAJ,CAAU,IAAV,EAAgB/L,OAAhB,CAAP;eACE,IAAF,EAAQ5C,IAAR,CAAanC,QAAb,EAAuBmC,IAAvB;;;YAGE,OAAOpD,MAAP,KAAkB,QAAtB,EAAgC;cAC1B,OAAOoD,KAAKpD,MAAL,CAAP,KAAwB,WAA5B,EAAyC;kBACjC,IAAIY,KAAJ,wBAA8BZ,MAA9B,QAAN;;;eAEGA,MAAL,EAAamJ,aAAb;SAJF,MAKO,IAAInD,QAAQ8F,IAAZ,EAAkB;eAClBA,IAAL,CAAU3C,aAAV;;OAnBG,CAAP;KAlfgB;;;;0BAwFG;eACZnI,OAAP;;;;0BAGmB;eACZuE,OAAP;;;;;;;;;;;;OAsbFrG,QAAF,EAAYsE,EAAZ,CAAejC,MAAMkC,cAArB,EAAqCnC,SAAS2C,WAA9C,EAA2D,UAAU7G,KAAV,EAAiB;;;QACtEC,MAAJ;QACMsB,WAAWnC,KAAK2F,sBAAL,CAA4B,IAA5B,CAAjB;;QAEIxD,QAAJ,EAAc;eACHlC,KAAEkC,QAAF,EAAY,CAAZ,CAAT;;;QAGIqB,SAASvD,KAAEY,MAAF,EAAU+F,IAAV,CAAenC,QAAf,IACb,QADa,gBAERxE,KAAEY,MAAF,EAAU+F,IAAV,EAFQ,EAGR3G,KAAE,IAAF,EAAQ2G,IAAR,EAHQ,CAAf;;QAMI,KAAKiF,OAAL,KAAiB,GAAjB,IAAwB,KAAKA,OAAL,KAAiB,MAA7C,EAAqD;YAC7C9E,cAAN;;;QAGIwK,UAAUtR,KAAEY,MAAF,EAAUa,GAAV,CAAcqD,MAAMmB,IAApB,EAA0B,UAACyM,SAAD,EAAe;UACnDA,UAAUpN,kBAAV,EAAJ,EAAoC;;;;;cAK5B7D,GAAR,CAAYqD,MAAM4L,MAAlB,EAA0B,YAAM;YAC1B1Q,cAAQa,EAAR,CAAW,UAAX,CAAJ,EAA4B;kBACrBqH,KAAL;;OAFJ;KANc,CAAhB;;UAaM1B,gBAAN,CAAuBlG,IAAvB,CAA4BN,KAAEY,MAAF,CAA5B,EAAuC2C,MAAvC,EAA+C,IAA/C;GA/BF;;;;;;;OAyCE1B,EAAF,CAAKyC,IAAL,IAAyBgR,MAAM9O,gBAA/B;OACE3E,EAAF,CAAKyC,IAAL,EAAW4C,WAAX,GAAyBoO,KAAzB;;OACEzT,EAAF,CAAKyC,IAAL,EAAW6C,UAAX,GAAyB,YAAY;SACjCtF,EAAF,CAAKyC,IAAL,IAAaK,kBAAb;WACO2Q,MAAM9O,gBAAb;GAFF;;SAKO8O,KAAP;CAnkBY,CAqkBXtV,CArkBW,CAAd;;ACNA;;;;;;;AAOA,IAAMma,UAAW,UAACna,IAAD,EAAO;;;;;;MAQhBsE,OAAsB,SAA5B;MACMC,UAAsB,cAA5B;MACMC,WAAsB,YAA5B;MACMC,kBAA0BD,QAAhC;MACMG,qBAAsB3E,KAAE6B,EAAF,CAAKyC,IAAL,CAA5B;MACMM,sBAAsB,GAA5B;MACMwV,eAAsB,YAA5B;MACMC,qBAAqB,IAAIpW,MAAJ,aAAqBmW,YAArB,WAAyC,GAAzC,CAA3B;MAEMrR,cAAc;eACI,SADJ;cAEI,QAFJ;WAGI,2BAHJ;aAII,QAJJ;WAKI,iBALJ;UAMI,SANJ;cAOI,kBAPJ;eAQI,mBARJ;YASI,iBATJ;eAUI,0BAVJ;uBAWI,gBAXJ;cAYI;GAZxB;MAeMgJ,gBAAgB;UACX,MADW;SAEX,KAFW;WAGX,OAHW;YAIX,QAJW;UAKX;GALX;MAQMjJ,UAAU;eACQ,IADR;cAEQ,yCACA,2BADA,GAEA,yCAJR;aAKQ,aALR;WAMQ,EANR;WAOQ,CAPR;UAQQ,KARR;cASQ,KATR;eAUQ,KAVR;YAWQ,CAXR;eAYQ,KAZR;uBAaQ,MAbR;cAcQ;GAdxB;MAiBMwR,aAAa;UACV,MADU;SAEV;GAFT;MAKMxV,QAAQ;mBACQL,SADR;uBAEUA,SAFV;mBAGQA,SAHR;qBAISA,SAJT;2BAKYA,SALZ;qBAMSA,SANT;yBAOWA,SAPX;2BAQYA,SARZ;+BAScA,SATd;+BAUcA;GAV5B;MAaMM,YAAY;UACT,MADS;UAET;GAFT;MAKMF,WAAW;aACC,UADD;mBAEC,gBAFD;WAGC;GAHlB;MAMM0V,UAAU;WACL,OADK;WAEL,OAFK;WAGL,OAHK;YAIL;;;;;;;GAJX;;MAcMJ,OApGgB;;;qBAsGRxX,OAAZ,EAAqBY,MAArB,EAA6B;;;;;UAKvB,OAAOoP,MAAP,KAAkB,WAAtB,EAAmC;cAC3B,IAAIxO,KAAJ,CAAU,8DAAV,CAAN;OANyB;;;WAUtBqW,UAAL,GAAsB,IAAtB;WACKC,QAAL,GAAsB,CAAtB;WACKC,WAAL,GAAsB,EAAtB;WACKC,cAAL,GAAsB,EAAtB;WACK3I,OAAL,GAAsB,IAAtB,CAd2B;;WAiBtBrP,OAAL,GAAeA,OAAf;WACKY,MAAL,GAAe,KAAKiG,UAAL,CAAgBjG,MAAhB,CAAf;WACKqX,GAAL,GAAe,IAAf;;WAEKC,aAAL;KA3HkB;;;;;;WAiKpBC,MAjKoB,qBAiKX;WACFN,UAAL,GAAkB,IAAlB;KAlKkB;;WAqKpBO,OArKoB,sBAqKV;WACHP,UAAL,GAAkB,KAAlB;KAtKkB;;WAyKpBQ,aAzKoB,4BAyKJ;WACTR,UAAL,GAAkB,CAAC,KAAKA,UAAxB;KA1KkB;;WA6KpBnT,MA7KoB,mBA6Kb1G,KA7Ka,EA6KN;UACR,CAAC,KAAK6Z,UAAV,EAAsB;;;;UAIlB7Z,KAAJ,EAAW;YACHsa,UAAU,KAAKxH,WAAL,CAAiBjP,QAAjC;YACIkQ,UAAU1U,KAAEW,MAAMyQ,aAAR,EAAuBzK,IAAvB,CAA4BsU,OAA5B,CAAd;;YAEI,CAACvG,OAAL,EAAc;oBACF,IAAI,KAAKjB,WAAT,CACR9S,MAAMyQ,aADE,EAER,KAAK8J,kBAAL,EAFQ,CAAV;eAIEva,MAAMyQ,aAAR,EAAuBzK,IAAvB,CAA4BsU,OAA5B,EAAqCvG,OAArC;;;gBAGMiG,cAAR,CAAuBQ,KAAvB,GAA+B,CAACzG,QAAQiG,cAAR,CAAuBQ,KAAvD;;YAEIzG,QAAQ0G,oBAAR,EAAJ,EAAoC;kBAC1BC,MAAR,CAAe,IAAf,EAAqB3G,OAArB;SADF,MAEO;kBACG4G,MAAR,CAAe,IAAf,EAAqB5G,OAArB;;OAjBJ,MAoBO;YAED1U,KAAE,KAAKub,aAAL,EAAF,EAAwBrV,QAAxB,CAAiCnB,UAAUkB,IAA3C,CAAJ,EAAsD;eAC/CqV,MAAL,CAAY,IAAZ,EAAkB,IAAlB;;;;;aAIGD,MAAL,CAAY,IAAZ,EAAkB,IAAlB;;KA7MgB;;WAiNpB7V,OAjNoB,sBAiNV;mBACK,KAAKiV,QAAlB;WAEEhV,UAAF,CAAa,KAAK9C,OAAlB,EAA2B,KAAK8Q,WAAL,CAAiBjP,QAA5C;WAEE,KAAK7B,OAAP,EAAgBuI,GAAhB,CAAoB,KAAKuI,WAAL,CAAiBhP,SAArC;WACE,KAAK9B,OAAP,EAAgBiD,OAAhB,CAAwB,QAAxB,EAAkCsF,GAAlC,CAAsC,eAAtC;;UAEI,KAAK0P,GAAT,EAAc;aACV,KAAKA,GAAP,EAAYrU,MAAZ;;;WAGGiU,UAAL,GAAsB,IAAtB;WACKC,QAAL,GAAsB,IAAtB;WACKC,WAAL,GAAsB,IAAtB;WACKC,cAAL,GAAsB,IAAtB;;UACI,KAAK3I,OAAL,KAAiB,IAArB,EAA2B;aACpBA,OAAL,CAAaoB,OAAb;;;WAGGpB,OAAL,GAAe,IAAf;WACKrP,OAAL,GAAe,IAAf;WACKY,MAAL,GAAe,IAAf;WACKqX,GAAL,GAAe,IAAf;KAxOkB;;WA2OpBvL,IA3OoB,mBA2Ob;;;UACDrP,KAAE,KAAK2C,OAAP,EAAgBsH,GAAhB,CAAoB,SAApB,MAAmC,MAAvC,EAA+C;cACvC,IAAI9F,KAAJ,CAAU,qCAAV,CAAN;;;UAGIuO,YAAY1S,KAAE8E,KAAF,CAAQ,KAAK2O,WAAL,CAAiB3O,KAAjB,CAAuBmB,IAA/B,CAAlB;;UACI,KAAKuV,aAAL,MAAwB,KAAKhB,UAAjC,EAA6C;aACzC,KAAK7X,OAAP,EAAgBQ,OAAhB,CAAwBuP,SAAxB;YAEM+I,aAAazb,KAAEiI,QAAF,CACjB,KAAKtF,OAAL,CAAa+Y,aAAb,CAA2BjQ,eADV,EAEjB,KAAK9I,OAFY,CAAnB;;YAKI+P,UAAUpN,kBAAV,MAAkC,CAACmW,UAAvC,EAAmD;;;;YAI7Cb,MAAQ,KAAKW,aAAL,EAAd;YACMI,QAAQ5b,KAAK6b,MAAL,CAAY,KAAKnI,WAAL,CAAiBnP,IAA7B,CAAd;YAEI6D,YAAJ,CAAiB,IAAjB,EAAuBwT,KAAvB;aACKhZ,OAAL,CAAawF,YAAb,CAA0B,kBAA1B,EAA8CwT,KAA9C;aAEKE,UAAL;;YAEI,KAAKtY,MAAL,CAAYuY,SAAhB,EAA2B;eACvBlB,GAAF,EAAOzN,QAAP,CAAgBpI,UAAUoB,IAA1B;;;YAGI0N,YAAa,OAAO,KAAKtQ,MAAL,CAAYsQ,SAAnB,KAAiC,UAAjC,GACjB,KAAKtQ,MAAL,CAAYsQ,SAAZ,CAAsBvT,IAAtB,CAA2B,IAA3B,EAAiCsa,GAAjC,EAAsC,KAAKjY,OAA3C,CADiB,GAEjB,KAAKY,MAAL,CAAYsQ,SAFd;;YAIMkI,aAAa,KAAKC,cAAL,CAAoBnI,SAApB,CAAnB;;aACKoI,kBAAL,CAAwBF,UAAxB;YAEMG,YAAY,KAAK3Y,MAAL,CAAY2Y,SAAZ,KAA0B,KAA1B,GAAkCzZ,SAAS0T,IAA3C,GAAkDnW,KAAE,KAAKuD,MAAL,CAAY2Y,SAAd,CAApE;aAEEtB,GAAF,EAAOjU,IAAP,CAAY,KAAK8M,WAAL,CAAiBjP,QAA7B,EAAuC,IAAvC;;YAEI,CAACxE,KAAEiI,QAAF,CAAW,KAAKtF,OAAL,CAAa+Y,aAAb,CAA2BjQ,eAAtC,EAAuD,KAAKmP,GAA5D,CAAL,EAAuE;eACnEA,GAAF,EAAOtC,QAAP,CAAgB4D,SAAhB;;;aAGA,KAAKvZ,OAAP,EAAgBQ,OAAhB,CAAwB,KAAKsQ,WAAL,CAAiB3O,KAAjB,CAAuBqX,QAA/C;aAEKnK,OAAL,GAAe,IAAIW,MAAJ,CAAW,KAAKhQ,OAAhB,EAAyBiY,GAAzB,EAA8B;qBAChCmB,UADgC;qBAEhC;oBACD;sBACE,KAAKxY,MAAL,CAAY8Q;aAFb;kBAIH;wBACM,KAAK9Q,MAAL,CAAY6Y;aALf;mBAOF;uBACIvX,SAASwX;aARX;6BAUQ;iCACI,KAAK9Y,MAAL,CAAYwP;;WAbQ;oBAgBjC,kBAACpM,IAAD,EAAU;gBACdA,KAAK2V,iBAAL,KAA2B3V,KAAKkN,SAApC,EAA+C;oBACxC0I,4BAAL,CAAkC5V,IAAlC;;WAlBuC;oBAqBhC,kBAACA,IAAD,EAAU;kBACd4V,4BAAL,CAAkC5V,IAAlC;;SAtBW,CAAf;aA0BEiU,GAAF,EAAOzN,QAAP,CAAgBpI,UAAUkB,IAA1B,EAnE2C;;;;;YAyEvC,kBAAkBxD,SAASgJ,eAA/B,EAAgD;eAC5C,MAAF,EAAUyB,QAAV,GAAqBnG,EAArB,CAAwB,WAAxB,EAAqC,IAArC,EAA2C/G,KAAEmT,IAA7C;;;YAGIjD,WAAW,SAAXA,QAAW,GAAM;cACjB,MAAK3M,MAAL,CAAYuY,SAAhB,EAA2B;kBACpBU,cAAL;;;cAEIC,iBAAiB,MAAK/B,WAA5B;gBACKA,WAAL,GAAuB,IAAvB;eAEE,MAAK/X,OAAP,EAAgBQ,OAAhB,CAAwB,MAAKsQ,WAAL,CAAiB3O,KAAjB,CAAuBqL,KAA/C;;cAEIsM,mBAAmBnC,WAAWoC,GAAlC,EAAuC;kBAChCpB,MAAL,CAAY,IAAZ;;SAVJ;;YAcIvb,KAAKgC,qBAAL,MAAgC/B,KAAE,KAAK4a,GAAP,EAAY1U,QAAZ,CAAqBnB,UAAUoB,IAA/B,CAApC,EAA0E;eACtE,KAAKyU,GAAP,EACGnZ,GADH,CACO1B,KAAK2B,cADZ,EAC4BwO,QAD5B,EAEGpO,oBAFH,CAEwBqY,QAAQwC,oBAFhC;SADF,MAIO;;;;KAhVS;;WAsVpBvN,IAtVoB,iBAsVf2I,QAtVe,EAsVL;;;UACP6C,MAAY,KAAKW,aAAL,EAAlB;UACM3G,YAAY5U,KAAE8E,KAAF,CAAQ,KAAK2O,WAAL,CAAiB3O,KAAjB,CAAuByL,IAA/B,CAAlB;;UACML,WAAY,SAAZA,QAAY,GAAM;YAClB,OAAKwK,WAAL,KAAqBJ,WAAWrU,IAAhC,IAAwC2U,IAAI/F,UAAhD,EAA4D;cACtDA,UAAJ,CAAeqF,WAAf,CAA2BU,GAA3B;;;eAGGgC,cAAL;;eACKja,OAAL,CAAayU,eAAb,CAA6B,kBAA7B;;aACE,OAAKzU,OAAP,EAAgBQ,OAAhB,CAAwB,OAAKsQ,WAAL,CAAiB3O,KAAjB,CAAuB4L,MAA/C;;YACI,OAAKsB,OAAL,KAAiB,IAArB,EAA2B;iBACpBA,OAAL,CAAaoB,OAAb;;;YAGE2E,QAAJ,EAAc;;;OAZhB;;WAiBE,KAAKpV,OAAP,EAAgBQ,OAAhB,CAAwByR,SAAxB;;UAEIA,UAAUtP,kBAAV,EAAJ,EAAoC;;;;WAIlCsV,GAAF,EAAO5U,WAAP,CAAmBjB,UAAUkB,IAA7B,EA1Ba;;;UA8BT,kBAAkBxD,SAASgJ,eAA/B,EAAgD;aAC5C,MAAF,EAAUyB,QAAV,GAAqBhC,GAArB,CAAyB,WAAzB,EAAsC,IAAtC,EAA4ClL,KAAEmT,IAA9C;;;WAGGwH,cAAL,CAAoBJ,QAAQhH,KAA5B,IAAqC,KAArC;WACKoH,cAAL,CAAoBJ,QAAQ9R,KAA5B,IAAqC,KAArC;WACKkS,cAAL,CAAoBJ,QAAQsC,KAA5B,IAAqC,KAArC;;UAEI9c,KAAKgC,qBAAL,MACA/B,KAAE,KAAK4a,GAAP,EAAY1U,QAAZ,CAAqBnB,UAAUoB,IAA/B,CADJ,EAC0C;aAEtCyU,GAAF,EACGnZ,GADH,CACO1B,KAAK2B,cADZ,EAC4BwO,QAD5B,EAEGpO,oBAFH,CAEwB8C,mBAFxB;OAHF,MAOO;;;;WAIF8V,WAAL,GAAmB,EAAnB;KAvYkB;;WA2YpBrH,MA3YoB,qBA2YX;UACH,KAAKrB,OAAL,KAAiB,IAArB,EAA2B;aACpBA,OAAL,CAAasB,cAAb;;KA7YgB;;;WAmZpBkI,aAnZoB,4BAmZJ;aACPpY,QAAQ,KAAK0Z,QAAL,EAAR,CAAP;KApZkB;;WAuZpBb,kBAvZoB,+BAuZDF,UAvZC,EAuZW;WAC3B,KAAKR,aAAL,EAAF,EAAwBpO,QAAxB,CAAoCiN,YAApC,SAAoD2B,UAApD;KAxZkB;;WA2ZpBR,aA3ZoB,4BA2ZJ;WACTX,GAAL,GAAW,KAAKA,GAAL,IAAY5a,KAAE,KAAKuD,MAAL,CAAYwZ,QAAd,EAAwB,CAAxB,CAAvB;aACO,KAAKnC,GAAZ;KA7ZkB;;WAgapBiB,UAhaoB,yBAgaP;UACLmB,OAAOhd,KAAE,KAAKub,aAAL,EAAF,CAAb;WACK0B,iBAAL,CAAuBD,KAAKja,IAAL,CAAU8B,SAASqY,aAAnB,CAAvB,EAA0D,KAAKJ,QAAL,EAA1D;WACK9W,WAAL,CAAoBjB,UAAUoB,IAA9B,SAAsCpB,UAAUkB,IAAhD;KAnakB;;WAsapBgX,iBAtaoB,8BAsaFvW,QAtaE,EAsaQyW,OAtaR,EAsaiB;UAC7BC,OAAO,KAAK7Z,MAAL,CAAY6Z,IAAzB;;UACI,OAAOD,OAAP,KAAmB,QAAnB,KAAgCA,QAAQ9Z,QAAR,IAAoB8Z,QAAQpM,MAA5D,CAAJ,EAAyE;;YAEnEqM,IAAJ,EAAU;cACJ,CAACpd,KAAEmd,OAAF,EAAWxX,MAAX,GAAoB9E,EAApB,CAAuB6F,QAAvB,CAAL,EAAuC;qBAC5B2W,KAAT,GAAiBC,MAAjB,CAAwBH,OAAxB;;SAFJ,MAIO;mBACII,IAAT,CAAcvd,KAAEmd,OAAF,EAAWI,IAAX,EAAd;;OAPJ,MASO;iBACIH,OAAO,MAAP,GAAgB,MAAzB,EAAiCD,OAAjC;;KAlbgB;;WAsbpBL,QAtboB,uBAsbT;UACLU,QAAQ,KAAK7a,OAAL,CAAaC,YAAb,CAA0B,qBAA1B,CAAZ;;UAEI,CAAC4a,KAAL,EAAY;gBACF,OAAO,KAAKja,MAAL,CAAYia,KAAnB,KAA6B,UAA7B,GACN,KAAKja,MAAL,CAAYia,KAAZ,CAAkBld,IAAlB,CAAuB,KAAKqC,OAA5B,CADM,GAEN,KAAKY,MAAL,CAAYia,KAFd;;;aAKKA,KAAP;KA/bkB;;;WAqcpBxB,cArcoB,2BAqcLnI,SArcK,EAqcM;aACjB9B,cAAc8B,UAAUzP,WAAV,EAAd,CAAP;KAtckB;;WAycpByW,aAzcoB,4BAycJ;;;UACR4C,WAAW,KAAKla,MAAL,CAAYJ,OAAZ,CAAoBua,KAApB,CAA0B,GAA1B,CAAjB;eAESC,OAAT,CAAiB,UAACxa,OAAD,EAAa;YACxBA,YAAY,OAAhB,EAAyB;eACrB,OAAKR,OAAP,EAAgBoE,EAAhB,CACE,OAAK0M,WAAL,CAAiB3O,KAAjB,CAAuByO,KADzB,EAEE,OAAKhQ,MAAL,CAAYrB,QAFd,EAGE,UAACvB,KAAD;mBAAW,OAAK0G,MAAL,CAAY1G,KAAZ,CAAX;WAHF;SADF,MAOO,IAAIwC,YAAYoX,QAAQqD,MAAxB,EAAgC;cAC/BC,UAAW1a,YAAYoX,QAAQsC,KAApB,GACf,OAAKpJ,WAAL,CAAiB3O,KAAjB,CAAuByG,UADR,GAEf,OAAKkI,WAAL,CAAiB3O,KAAjB,CAAuB+R,OAFzB;cAGMiH,WAAW3a,YAAYoX,QAAQsC,KAApB,GACf,OAAKpJ,WAAL,CAAiB3O,KAAjB,CAAuB0G,UADR,GAEf,OAAKiI,WAAL,CAAiB3O,KAAjB,CAAuBiZ,QAFzB;eAIE,OAAKpb,OAAP,EACGoE,EADH,CAEI8W,OAFJ,EAGI,OAAKta,MAAL,CAAYrB,QAHhB,EAII,UAACvB,KAAD;mBAAW,OAAK0a,MAAL,CAAY1a,KAAZ,CAAX;WAJJ,EAMGoG,EANH,CAOI+W,QAPJ,EAQI,OAAKva,MAAL,CAAYrB,QARhB,EASI,UAACvB,KAAD;mBAAW,OAAK2a,MAAL,CAAY3a,KAAZ,CAAX;WATJ;;;aAaA,OAAKgC,OAAP,EAAgBiD,OAAhB,CAAwB,QAAxB,EAAkCmB,EAAlC,CACE,eADF,EAEE;iBAAM,OAAKqI,IAAL,EAAN;SAFF;OA7BF;;UAmCI,KAAK7L,MAAL,CAAYrB,QAAhB,EAA0B;aACnBqB,MAAL,gBACK,KAAKA,MADV;mBAEa,QAFb;oBAGa;;OAJf,MAMO;aACAya,SAAL;;KAtfgB;;WA0fpBA,SA1foB,wBA0fR;UACJC,YAAY,OAAO,KAAKtb,OAAL,CAAaC,YAAb,CAA0B,qBAA1B,CAAzB;;UACI,KAAKD,OAAL,CAAaC,YAAb,CAA0B,OAA1B,KACDqb,cAAc,QADjB,EAC2B;aACpBtb,OAAL,CAAawF,YAAb,CACE,qBADF,EAEE,KAAKxF,OAAL,CAAaC,YAAb,CAA0B,OAA1B,KAAsC,EAFxC;aAIKD,OAAL,CAAawF,YAAb,CAA0B,OAA1B,EAAmC,EAAnC;;KAlgBgB;;WAsgBpBkT,MAtgBoB,mBAsgBb1a,KAtgBa,EAsgBN+T,OAtgBM,EAsgBG;UACfuG,UAAU,KAAKxH,WAAL,CAAiBjP,QAAjC;gBAEUkQ,WAAW1U,KAAEW,MAAMyQ,aAAR,EAAuBzK,IAAvB,CAA4BsU,OAA5B,CAArB;;UAEI,CAACvG,OAAL,EAAc;kBACF,IAAI,KAAKjB,WAAT,CACR9S,MAAMyQ,aADE,EAER,KAAK8J,kBAAL,EAFQ,CAAV;aAIEva,MAAMyQ,aAAR,EAAuBzK,IAAvB,CAA4BsU,OAA5B,EAAqCvG,OAArC;;;UAGE/T,KAAJ,EAAW;gBACDga,cAAR,CACEha,MAAMgH,IAAN,KAAe,SAAf,GAA2B4S,QAAQ9R,KAAnC,GAA2C8R,QAAQsC,KADrD,IAEI,IAFJ;;;UAKE7c,KAAE0U,QAAQ6G,aAAR,EAAF,EAA2BrV,QAA3B,CAAoCnB,UAAUkB,IAA9C,KACDyO,QAAQgG,WAAR,KAAwBJ,WAAWrU,IADtC,EAC4C;gBAClCyU,WAAR,GAAsBJ,WAAWrU,IAAjC;;;;mBAIWyO,QAAQ+F,QAArB;cAEQC,WAAR,GAAsBJ,WAAWrU,IAAjC;;UAEI,CAACyO,QAAQnR,MAAR,CAAe2a,KAAhB,IAAyB,CAACxJ,QAAQnR,MAAR,CAAe2a,KAAf,CAAqB7O,IAAnD,EAAyD;gBAC/CA,IAAR;;;;cAIMoL,QAAR,GAAmB9O,WAAW,YAAM;YAC9B+I,QAAQgG,WAAR,KAAwBJ,WAAWrU,IAAvC,EAA6C;kBACnCoJ,IAAR;;OAFe,EAIhBqF,QAAQnR,MAAR,CAAe2a,KAAf,CAAqB7O,IAJL,CAAnB;KAxiBkB;;WA+iBpBiM,MA/iBoB,mBA+iBb3a,KA/iBa,EA+iBN+T,OA/iBM,EA+iBG;UACfuG,UAAU,KAAKxH,WAAL,CAAiBjP,QAAjC;gBAEUkQ,WAAW1U,KAAEW,MAAMyQ,aAAR,EAAuBzK,IAAvB,CAA4BsU,OAA5B,CAArB;;UAEI,CAACvG,OAAL,EAAc;kBACF,IAAI,KAAKjB,WAAT,CACR9S,MAAMyQ,aADE,EAER,KAAK8J,kBAAL,EAFQ,CAAV;aAIEva,MAAMyQ,aAAR,EAAuBzK,IAAvB,CAA4BsU,OAA5B,EAAqCvG,OAArC;;;UAGE/T,KAAJ,EAAW;gBACDga,cAAR,CACEha,MAAMgH,IAAN,KAAe,UAAf,GAA4B4S,QAAQ9R,KAApC,GAA4C8R,QAAQsC,KADtD,IAEI,KAFJ;;;UAKEnI,QAAQ0G,oBAAR,EAAJ,EAAoC;;;;mBAIvB1G,QAAQ+F,QAArB;cAEQC,WAAR,GAAsBJ,WAAWoC,GAAjC;;UAEI,CAAChI,QAAQnR,MAAR,CAAe2a,KAAhB,IAAyB,CAACxJ,QAAQnR,MAAR,CAAe2a,KAAf,CAAqB9O,IAAnD,EAAyD;gBAC/CA,IAAR;;;;cAIMqL,QAAR,GAAmB9O,WAAW,YAAM;YAC9B+I,QAAQgG,WAAR,KAAwBJ,WAAWoC,GAAvC,EAA4C;kBAClCtN,IAAR;;OAFe,EAIhBsF,QAAQnR,MAAR,CAAe2a,KAAf,CAAqB9O,IAJL,CAAnB;KA/kBkB;;WAslBpBgM,oBAtlBoB,mCAslBG;WAChB,IAAMjY,OAAX,IAAsB,KAAKwX,cAA3B,EAA2C;YACrC,KAAKA,cAAL,CAAoBxX,OAApB,CAAJ,EAAkC;iBACzB,IAAP;;;;aAIG,KAAP;KA7lBkB;;WAgmBpBqG,UAhmBoB,uBAgmBTjG,MAhmBS,EAgmBD;4BAEZ,KAAKkQ,WAAL,CAAiB3K,OADtB,EAEK9I,KAAE,KAAK2C,OAAP,EAAgBgE,IAAhB,EAFL,EAGKpD,MAHL;;UAMI,OAAOA,OAAO2a,KAAd,KAAwB,QAA5B,EAAsC;eAC7BA,KAAP,GAAe;gBACN3a,OAAO2a,KADD;gBAEN3a,OAAO2a;SAFhB;;;UAME,OAAO3a,OAAOia,KAAd,KAAwB,QAA5B,EAAsC;eAC7BA,KAAP,GAAeja,OAAOia,KAAP,CAAand,QAAb,EAAf;;;UAGE,OAAOkD,OAAO4Z,OAAd,KAA0B,QAA9B,EAAwC;eAC/BA,OAAP,GAAiB5Z,OAAO4Z,OAAP,CAAe9c,QAAf,EAAjB;;;WAGG8K,eAAL,CACE7G,IADF,EAEEf,MAFF,EAGE,KAAKkQ,WAAL,CAAiB1K,WAHnB;aAMOxF,MAAP;KA5nBkB;;WA+nBpB2X,kBA/nBoB,iCA+nBC;UACb3X,SAAS,EAAf;;UAEI,KAAKA,MAAT,EAAiB;aACV,IAAM4a,GAAX,IAAkB,KAAK5a,MAAvB,EAA+B;cACzB,KAAKkQ,WAAL,CAAiB3K,OAAjB,CAAyBqV,GAAzB,MAAkC,KAAK5a,MAAL,CAAY4a,GAAZ,CAAtC,EAAwD;mBAC/CA,GAAP,IAAc,KAAK5a,MAAL,CAAY4a,GAAZ,CAAd;;;;;aAKC5a,MAAP;KA1oBkB;;WA6oBpBqZ,cA7oBoB,6BA6oBH;UACTI,OAAOhd,KAAE,KAAKub,aAAL,EAAF,CAAb;UACM6C,WAAWpB,KAAKhN,IAAL,CAAU,OAAV,EAAmBzP,KAAnB,CAAyB8Z,kBAAzB,CAAjB;;UACI+D,aAAa,IAAb,IAAqBA,SAASpb,MAAT,GAAkB,CAA3C,EAA8C;aACvCgD,WAAL,CAAiBoY,SAASC,IAAT,CAAc,EAAd,CAAjB;;KAjpBgB;;WAqpBpB9B,4BArpBoB,yCAqpBS5V,IArpBT,EAqpBe;WAC5BiW,cAAL;;WACKX,kBAAL,CAAwB,KAAKD,cAAL,CAAoBrV,KAAKkN,SAAzB,CAAxB;KAvpBkB;;WA0pBpB2I,cA1pBoB,6BA0pBH;UACT5B,MAAsB,KAAKW,aAAL,EAA5B;UACM+C,sBAAsB,KAAK/a,MAAL,CAAYuY,SAAxC;;UACIlB,IAAIhY,YAAJ,CAAiB,aAAjB,MAAoC,IAAxC,EAA8C;;;;WAG5CgY,GAAF,EAAO5U,WAAP,CAAmBjB,UAAUoB,IAA7B;WACK5C,MAAL,CAAYuY,SAAZ,GAAwB,KAAxB;WACK1M,IAAL;WACKC,IAAL;WACK9L,MAAL,CAAYuY,SAAZ,GAAwBwC,mBAAxB;KApqBkB;;;YAyqBb9X,gBAzqBa,6BAyqBIjD,MAzqBJ,EAyqBY;aACvB,KAAKkD,IAAL,CAAU,YAAY;YACvBE,OAAY3G,KAAE,IAAF,EAAQ2G,IAAR,CAAanC,QAAb,CAAhB;;YACM+E,UAAU,OAAOhG,MAAP,KAAkB,QAAlB,IAA8BA,MAA9C;;YAEI,CAACoD,IAAD,IAAS,eAAezC,IAAf,CAAoBX,MAApB,CAAb,EAA0C;;;;YAItC,CAACoD,IAAL,EAAW;iBACF,IAAIwT,OAAJ,CAAY,IAAZ,EAAkB5Q,OAAlB,CAAP;eACE,IAAF,EAAQ5C,IAAR,CAAanC,QAAb,EAAuBmC,IAAvB;;;YAGE,OAAOpD,MAAP,KAAkB,QAAtB,EAAgC;cAC1B,OAAOoD,KAAKpD,MAAL,CAAP,KAAwB,WAA5B,EAAyC;kBACjC,IAAIY,KAAJ,wBAA8BZ,MAA9B,QAAN;;;eAEGA,MAAL;;OAjBG,CAAP;KA1qBkB;;;;0BAkIC;eACZgB,OAAP;;;;0BAGmB;eACZuE,OAAP;;;;0BAGgB;eACTxE,IAAP;;;;0BAGoB;eACbE,QAAP;;;;0BAGiB;eACVM,KAAP;;;;0BAGqB;eACdL,SAAP;;;;0BAGuB;eAChBsE,WAAP;;;;;;;;;;;;OA6iBFlH,EAAF,CAAKyC,IAAL,IAAyB6V,QAAQ3T,gBAAjC;OACE3E,EAAF,CAAKyC,IAAL,EAAW4C,WAAX,GAAyBiT,OAAzB;;OACEtY,EAAF,CAAKyC,IAAL,EAAW6C,UAAX,GAAyB,YAAY;SACjCtF,EAAF,CAAKyC,IAAL,IAAaK,kBAAb;WACOwV,QAAQ3T,gBAAf;GAFF;;SAKO2T,OAAP;CA/sBc,CAitBbna,CAjtBa,EAitBV2S,MAjtBU,CAAhB;;ACRA;;;;;;;AAOA,IAAM4L,UAAW,UAACve,IAAD,EAAO;;;;;;MAShBsE,OAAsB,SAA5B;MACMC,UAAsB,cAA5B;MACMC,WAAsB,YAA5B;MACMC,kBAA0BD,QAAhC;MACMG,qBAAsB3E,KAAE6B,EAAF,CAAKyC,IAAL,CAA5B;MACM8V,eAAsB,YAA5B;MACMC,qBAAsB,IAAIpW,MAAJ,aAAqBmW,YAArB,WAAyC,GAAzC,CAA5B;MAEMtR,uBACDqR,QAAQrR,OADP;eAEQ,OAFR;aAGQ,OAHR;aAIQ,EAJR;cAKQ,yCACA,2BADA,GAEA,kCAFA,GAGA;IARd;MAWMC,2BACDoR,QAAQpR,WADP;aAEM;IAFZ;MAKMhE,YAAY;UACT,MADS;UAET;GAFT;MAKMF,WAAW;WACL,iBADK;aAEL;GAFZ;MAKMC,QAAQ;mBACQL,SADR;uBAEUA,SAFV;mBAGQA,SAHR;qBAISA,SAJT;2BAKYA,SALZ;qBAMSA,SANT;yBAOWA,SAPX;2BAQYA,SARZ;+BAScA,SATd;+BAUcA;;;;;;;GAV5B;;MAoBM8Z,OA/DgB;;;;;;;;;;;;WAmGpB/C,aAnGoB,4BAmGJ;aACP,KAAKsB,QAAL,MAAmB,KAAK0B,WAAL,EAA1B;KApGkB;;WAuGpBvC,kBAvGoB,+BAuGDF,UAvGC,EAuGW;WAC3B,KAAKR,aAAL,EAAF,EAAwBpO,QAAxB,CAAoCiN,YAApC,SAAoD2B,UAApD;KAxGkB;;WA2GpBR,aA3GoB,4BA2GJ;WACTX,GAAL,GAAW,KAAKA,GAAL,IAAY5a,KAAE,KAAKuD,MAAL,CAAYwZ,QAAd,EAAwB,CAAxB,CAAvB;aACO,KAAKnC,GAAZ;KA7GkB;;WAgHpBiB,UAhHoB,yBAgHP;UACLmB,OAAOhd,KAAE,KAAKub,aAAL,EAAF,CAAb,CADW;;WAIN0B,iBAAL,CAAuBD,KAAKja,IAAL,CAAU8B,SAAS4Z,KAAnB,CAAvB,EAAkD,KAAK3B,QAAL,EAAlD;;UACIK,UAAU,KAAKqB,WAAL,EAAd;;UACI,OAAOrB,OAAP,KAAmB,UAAvB,EAAmC;kBACvBA,QAAQ7c,IAAR,CAAa,KAAKqC,OAAlB,CAAV;;;WAEGsa,iBAAL,CAAuBD,KAAKja,IAAL,CAAU8B,SAAS6Z,OAAnB,CAAvB,EAAoDvB,OAApD;WAEKnX,WAAL,CAAoBjB,UAAUoB,IAA9B,SAAsCpB,UAAUkB,IAAhD;KA3HkB;;;WAgIpBuY,WAhIoB,0BAgIN;aACL,KAAK7b,OAAL,CAAaC,YAAb,CAA0B,cAA1B,KACF,KAAKW,MAAL,CAAY4Z,OADjB;KAjIkB;;WAqIpBP,cArIoB,6BAqIH;UACTI,OAAOhd,KAAE,KAAKub,aAAL,EAAF,CAAb;UACM6C,WAAWpB,KAAKhN,IAAL,CAAU,OAAV,EAAmBzP,KAAnB,CAAyB8Z,kBAAzB,CAAjB;;UACI+D,aAAa,IAAb,IAAqBA,SAASpb,MAAT,GAAkB,CAA3C,EAA8C;aACvCgD,WAAL,CAAiBoY,SAASC,IAAT,CAAc,EAAd,CAAjB;;KAzIgB;;;YAgJb7X,gBAhJa,6BAgJIjD,MAhJJ,EAgJY;aACvB,KAAKkD,IAAL,CAAU,YAAY;YACvBE,OAAY3G,KAAE,IAAF,EAAQ2G,IAAR,CAAanC,QAAb,CAAhB;;YACM+E,UAAU,OAAOhG,MAAP,KAAkB,QAAlB,GAA6BA,MAA7B,GAAsC,IAAtD;;YAEI,CAACoD,IAAD,IAAS,eAAezC,IAAf,CAAoBX,MAApB,CAAb,EAA0C;;;;YAItC,CAACoD,IAAL,EAAW;iBACF,IAAI4X,OAAJ,CAAY,IAAZ,EAAkBhV,OAAlB,CAAP;eACE,IAAF,EAAQ5C,IAAR,CAAanC,QAAb,EAAuBmC,IAAvB;;;YAGE,OAAOpD,MAAP,KAAkB,QAAtB,EAAgC;cAC1B,OAAOoD,KAAKpD,MAAL,CAAP,KAAwB,WAA5B,EAAyC;kBACjC,IAAIY,KAAJ,wBAA8BZ,MAA9B,QAAN;;;eAEGA,MAAL;;OAjBG,CAAP;KAjJkB;;;;;0BAoEC;eACZgB,OAAP;;;;0BAGmB;eACZuE,OAAP;;;;0BAGgB;eACTxE,IAAP;;;;0BAGoB;eACbE,QAAP;;;;0BAGiB;eACVM,KAAP;;;;0BAGqB;eACdL,SAAP;;;;0BAGuB;eAChBsE,WAAP;;;;IA9BkBoR,OA/DA;;;;;;;;OA+KpBtY,EAAF,CAAKyC,IAAL,IAAyBia,QAAQ/X,gBAAjC;OACE3E,EAAF,CAAKyC,IAAL,EAAW4C,WAAX,GAAyBqX,OAAzB;;OACE1c,EAAF,CAAKyC,IAAL,EAAW6C,UAAX,GAAyB,YAAY;SACjCtF,EAAF,CAAKyC,IAAL,IAAaK,kBAAb;WACO4Z,QAAQ/X,gBAAf;GAFF;;SAKO+X,OAAP;CAtLc,CAwLbve,CAxLa,CAAhB;;ACPA;;;;;;;AAOA,IAAM2e,YAAa,UAAC3e,IAAD,EAAO;;;;;;MASlBsE,OAAqB,WAA3B;MACMC,UAAqB,cAA3B;MACMC,WAAqB,cAA3B;MACMC,kBAAyBD,QAA/B;MACME,eAAqB,WAA3B;MACMC,qBAAqB3E,KAAE6B,EAAF,CAAKyC,IAAL,CAA3B;MAEMwE,UAAU;YACL,EADK;YAEL,MAFK;YAGL;GAHX;MAMMC,cAAc;YACT,QADS;YAET,QAFS;YAGT;GAHX;MAMMjE,QAAQ;2BACeL,SADf;uBAEaA,SAFb;4BAGWA,SAAvB,GAAmCC;GAHrC;MAMMK,YAAY;mBACA,eADA;mBAEA,eAFA;YAGA;GAHlB;MAMMF,WAAW;cACG,qBADH;YAEG,SAFH;oBAGG,mBAHH;eAIG,WAJH;eAKG,WALH;gBAMG,kBANH;cAOG,WAPH;oBAQG,gBARH;qBASG;GATpB;MAYM+Z,eAAe;YACR,QADQ;cAER;;;;;;;GAFb;;MAYMD,SAhEkB;;;uBAkEVhc,OAAZ,EAAqBY,MAArB,EAA6B;;;WACtByB,QAAL,GAAsBrC,OAAtB;WACKkc,cAAL,GAAsBlc,QAAQiJ,OAAR,KAAoB,MAApB,GAA6BxK,MAA7B,GAAsCuB,OAA5D;WACK4G,OAAL,GAAsB,KAAKC,UAAL,CAAgBjG,MAAhB,CAAtB;WACKub,SAAL,GAAyB,KAAKvV,OAAL,CAAa3I,MAAhB,SAA0BiE,SAASka,SAAnC,UACG,KAAKxV,OAAL,CAAa3I,MADhB,SAC0BiE,SAASma,UADnC,WAEG,KAAKzV,OAAL,CAAa3I,MAFhB,SAE0BiE,SAASoa,cAFnC,CAAtB;WAGKC,QAAL,GAAsB,EAAtB;WACKC,QAAL,GAAsB,EAAtB;WACKC,aAAL,GAAsB,IAAtB;WACKC,aAAL,GAAsB,CAAtB;WAEE,KAAKR,cAAP,EAAuB9X,EAAvB,CAA0BjC,MAAMwa,MAAhC,EAAwC,UAAC3e,KAAD;eAAW,MAAK4e,QAAL,CAAc5e,KAAd,CAAX;OAAxC;WAEK6e,OAAL;;WACKD,QAAL;KAjFoB;;;;;;WAkGtBC,OAlGsB,sBAkGZ;;;UACFC,aAAa,KAAKZ,cAAL,KAAwB,KAAKA,cAAL,CAAoBzd,MAA5C,GACjBwd,aAAac,QADI,GACOd,aAAae,MADvC;UAGMC,eAAe,KAAKrW,OAAL,CAAasW,MAAb,KAAwB,MAAxB,GACnBJ,UADmB,GACN,KAAKlW,OAAL,CAAasW,MAD5B;UAGMC,aAAaF,iBAAiBhB,aAAac,QAA9B,GACjB,KAAKK,aAAL,EADiB,GACM,CADzB;WAGKb,QAAL,GAAgB,EAAhB;WACKC,QAAL,GAAgB,EAAhB;WAEKE,aAAL,GAAqB,KAAKW,gBAAL,EAArB;UAEMC,UAAUjgB,KAAE8L,SAAF,CAAY9L,KAAE,KAAK8e,SAAP,CAAZ,CAAhB;cAGGoB,GADH,CACO,UAACvd,OAAD,EAAa;YACZ/B,MAAJ;YACMuf,iBAAiBpgB,KAAK2F,sBAAL,CAA4B/C,OAA5B,CAAvB;;YAEIwd,cAAJ,EAAoB;mBACTngB,KAAEmgB,cAAF,EAAkB,CAAlB,CAAT;;;YAGEvf,MAAJ,EAAY;cACJwf,YAAYxf,OAAO4P,qBAAP,EAAlB;;cACI4P,UAAUpG,KAAV,IAAmBoG,UAAUC,MAAjC,EAAyC;;mBAEhC,CACLrgB,KAAEY,MAAF,EAAUgf,YAAV,IAA0BU,GAA1B,GAAgCR,UAD3B,EAELK,cAFK,CAAP;;;;eAMG,IAAP;OAnBJ,EAqBGpR,MArBH,CAqBU,UAACwR,IAAD;eAAWA,IAAX;OArBV,EAsBGC,IAtBH,CAsBQ,UAACC,CAAD,EAAIC,CAAJ;eAAaD,EAAE,CAAF,IAAOC,EAAE,CAAF,CAApB;OAtBR,EAuBG/C,OAvBH,CAuBW,UAAC4C,IAAD,EAAU;eACZrB,QAAL,CAAclQ,IAAd,CAAmBuR,KAAK,CAAL,CAAnB;;eACKpB,QAAL,CAAcnQ,IAAd,CAAmBuR,KAAK,CAAL,CAAnB;OAzBJ;KAnHoB;;WAgJtB/a,OAhJsB,sBAgJZ;WACNC,UAAF,CAAa,KAAKT,QAAlB,EAA4BR,QAA5B;WACE,KAAKqa,cAAP,EAAuB3T,GAAvB,CAA2BzG,SAA3B;WAEKO,QAAL,GAAsB,IAAtB;WACK6Z,cAAL,GAAsB,IAAtB;WACKtV,OAAL,GAAsB,IAAtB;WACKuV,SAAL,GAAsB,IAAtB;WACKI,QAAL,GAAsB,IAAtB;WACKC,QAAL,GAAsB,IAAtB;WACKC,aAAL,GAAsB,IAAtB;WACKC,aAAL,GAAsB,IAAtB;KA3JoB;;;WAiKtB7V,UAjKsB,uBAiKXjG,MAjKW,EAiKH;4BAEZuF,OADL,EAEKvF,MAFL;;UAKI,OAAOA,OAAO3C,MAAd,KAAyB,QAA7B,EAAuC;YACjC+N,KAAK3O,KAAEuD,OAAO3C,MAAT,EAAiBoP,IAAjB,CAAsB,IAAtB,CAAT;;YACI,CAACrB,EAAL,EAAS;eACF5O,KAAK6b,MAAL,CAAYtX,IAAZ,CAAL;eACEf,OAAO3C,MAAT,EAAiBoP,IAAjB,CAAsB,IAAtB,EAA4BrB,EAA5B;;;eAEK/N,MAAP,SAAoB+N,EAApB;;;WAGGxD,eAAL,CAAqB7G,IAArB,EAA2Bf,MAA3B,EAAmCwF,WAAnC;aAEOxF,MAAP;KAlLoB;;WAqLtBwc,aArLsB,4BAqLN;aACP,KAAKlB,cAAL,KAAwBzd,MAAxB,GACH,KAAKyd,cAAL,CAAoB8B,WADjB,GAC+B,KAAK9B,cAAL,CAAoBxH,SAD1D;KAtLoB;;WA0LtB2I,gBA1LsB,+BA0LH;aACV,KAAKnB,cAAL,CAAoBpG,YAApB,IAAoClW,KAAKqe,GAAL,CACzCne,SAAS0T,IAAT,CAAcsC,YAD2B,EAEzChW,SAASgJ,eAAT,CAAyBgN,YAFgB,CAA3C;KA3LoB;;WAiMtBoI,gBAjMsB,+BAiMH;aACV,KAAKhC,cAAL,KAAwBzd,MAAxB,GACHA,OAAO0f,WADJ,GACkB,KAAKjC,cAAL,CAAoBrO,qBAApB,GAA4C6P,MADrE;KAlMoB;;WAsMtBd,QAtMsB,uBAsMX;UACHlI,YAAe,KAAK0I,aAAL,KAAuB,KAAKxW,OAAL,CAAa8K,MAAzD;;UACMoE,eAAe,KAAKuH,gBAAL,EAArB;;UACMe,YAAe,KAAKxX,OAAL,CAAa8K,MAAb,GACjBoE,YADiB,GAEjB,KAAKoI,gBAAL,EAFJ;;UAII,KAAKxB,aAAL,KAAuB5G,YAA3B,EAAyC;aAClC+G,OAAL;;;UAGEnI,aAAa0J,SAAjB,EAA4B;YACpBngB,SAAS,KAAKue,QAAL,CAAc,KAAKA,QAAL,CAAcnc,MAAd,GAAuB,CAArC,CAAf;;YAEI,KAAKoc,aAAL,KAAuBxe,MAA3B,EAAmC;eAC5BogB,SAAL,CAAepgB,MAAf;;;;;;UAKA,KAAKwe,aAAL,IAAsB/H,YAAY,KAAK6H,QAAL,CAAc,CAAd,CAAlC,IAAsD,KAAKA,QAAL,CAAc,CAAd,IAAmB,CAA7E,EAAgF;aACzEE,aAAL,GAAqB,IAArB;;aACK6B,MAAL;;;;;WAIG,IAAIpS,IAAI,KAAKqQ,QAAL,CAAclc,MAA3B,EAAmC6L,GAAnC,GAAyC;YACjCqS,iBAAiB,KAAK9B,aAAL,KAAuB,KAAKD,QAAL,CAActQ,CAAd,CAAvB,IAChBwI,aAAa,KAAK6H,QAAL,CAAcrQ,CAAd,CADG,KAEf,OAAO,KAAKqQ,QAAL,CAAcrQ,IAAI,CAAlB,CAAP,KAAgC,WAAhC,IACAwI,YAAY,KAAK6H,QAAL,CAAcrQ,IAAI,CAAlB,CAHG,CAAvB;;YAKIqS,cAAJ,EAAoB;eACbF,SAAL,CAAe,KAAK7B,QAAL,CAActQ,CAAd,CAAf;;;KAvOgB;;WA4OtBmS,SA5OsB,sBA4OZpgB,MA5OY,EA4OJ;WACXwe,aAAL,GAAqBxe,MAArB;;WAEKqgB,MAAL;;UAEIE,UAAU,KAAKrC,SAAL,CAAepB,KAAf,CAAqB,GAArB,CAAd,CALgB;;;gBAOFyD,QAAQjB,GAAR,CAAY,UAAChe,QAAD,EAAc;eAC5BA,QAAH,uBAA4BtB,MAA5B,aACGsB,QADH,gBACqBtB,MADrB,SAAP;OADY,CAAd;UAKMwgB,QAAQphB,KAAEmhB,QAAQ9C,IAAR,CAAa,GAAb,CAAF,CAAd;;UAEI+C,MAAMlb,QAAN,CAAenB,UAAUsc,aAAzB,CAAJ,EAA6C;cACrCzb,OAAN,CAAcf,SAASyc,QAAvB,EAAiCve,IAAjC,CAAsC8B,SAAS0c,eAA/C,EAAgEpU,QAAhE,CAAyEpI,UAAU8C,MAAnF;cACMsF,QAAN,CAAepI,UAAU8C,MAAzB;OAFF,MAGO;;cAECsF,QAAN,CAAepI,UAAU8C,MAAzB,EAFK;;;cAKC2Z,OAAN,CAAc3c,SAAS4c,cAAvB,EAAuCvX,IAAvC,CAA+CrF,SAASka,SAAxD,UAAsEla,SAASma,UAA/E,EAA6F7R,QAA7F,CAAsGpI,UAAU8C,MAAhH,EALK;;cAOC2Z,OAAN,CAAc3c,SAAS4c,cAAvB,EAAuCvX,IAAvC,CAA4CrF,SAAS6c,SAArD,EAAgExU,QAAhE,CAAyErI,SAASka,SAAlF,EAA6F5R,QAA7F,CAAsGpI,UAAU8C,MAAhH;;;WAGA,KAAKgX,cAAP,EAAuB1b,OAAvB,CAA+B2B,MAAM6c,QAArC,EAA+C;uBAC9B/gB;OADjB;KAvQoB;;WA4QtBqgB,MA5QsB,qBA4Qb;WACL,KAAKnC,SAAP,EAAkB/P,MAAlB,CAAyBlK,SAASgD,MAAlC,EAA0C7B,WAA1C,CAAsDjB,UAAU8C,MAAhE;KA7QoB;;;cAmRfrB,gBAnRe,6BAmREjD,MAnRF,EAmRU;aACvB,KAAKkD,IAAL,CAAU,YAAY;YACvBE,OAAY3G,KAAE,IAAF,EAAQ2G,IAAR,CAAanC,QAAb,CAAhB;;YACM+E,UAAU,OAAOhG,MAAP,KAAkB,QAAlB,IAA8BA,MAA9C;;YAEI,CAACoD,IAAL,EAAW;iBACF,IAAIgY,SAAJ,CAAc,IAAd,EAAoBpV,OAApB,CAAP;eACE,IAAF,EAAQ5C,IAAR,CAAanC,QAAb,EAAuBmC,IAAvB;;;YAGE,OAAOpD,MAAP,KAAkB,QAAtB,EAAgC;cAC1B,OAAOoD,KAAKpD,MAAL,CAAP,KAAwB,WAA5B,EAAyC;kBACjC,IAAIY,KAAJ,wBAA8BZ,MAA9B,QAAN;;;eAEGA,MAAL;;OAbG,CAAP;KApRoB;;;;0BAuFD;eACZgB,OAAP;;;;0BAGmB;eACZuE,OAAP;;;;;;;;;;;;OAoNF1H,MAAF,EAAU2F,EAAV,CAAajC,MAAMsJ,aAAnB,EAAkC,YAAM;QAChCwT,aAAa5hB,KAAE8L,SAAF,CAAY9L,KAAE6E,SAASgd,QAAX,CAAZ,CAAnB;;SAEK,IAAIhT,IAAI+S,WAAW5e,MAAxB,EAAgC6L,GAAhC,GAAsC;UAC9BiT,OAAO9hB,KAAE4hB,WAAW/S,CAAX,CAAF,CAAb;;gBACUrI,gBAAV,CAA2BlG,IAA3B,CAAgCwhB,IAAhC,EAAsCA,KAAKnb,IAAL,EAAtC;;GALJ;;;;;;;OAgBE9E,EAAF,CAAKyC,IAAL,IAAyBqa,UAAUnY,gBAAnC;OACE3E,EAAF,CAAKyC,IAAL,EAAW4C,WAAX,GAAyByX,SAAzB;;OACE9c,EAAF,CAAKyC,IAAL,EAAW6C,UAAX,GAAyB,YAAY;SACjCtF,EAAF,CAAKyC,IAAL,IAAaK,kBAAb;WACOga,UAAUnY,gBAAjB;GAFF;;SAKOmY,SAAP;CAvUgB,CAyUf3e,CAzUe,CAAlB;;ACPA;;;;;;;AAOA,IAAM+hB,MAAO,UAAC/hB,IAAD,EAAO;;;;;;MASZsE,OAAsB,KAA5B;MACMC,UAAsB,cAA5B;MACMC,WAAsB,QAA5B;MACMC,kBAA0BD,QAAhC;MACME,eAAsB,WAA5B;MACMC,qBAAsB3E,KAAE6B,EAAF,CAAKyC,IAAL,CAA5B;MACMM,sBAAsB,GAA5B;MAEME,QAAQ;mBACYL,SADZ;uBAEcA,SAFd;mBAGYA,SAHZ;qBAIaA,SAJb;8BAKaA,SAAzB,GAAqCC;GALvC;MAQMK,YAAY;mBACA,eADA;YAEA,QAFA;cAGA,UAHA;UAIA,MAJA;UAKA;GALlB;MAQMF,WAAW;cACS,WADT;oBAES,mBAFT;YAGS,SAHT;eAIS,gBAJT;iBAKS,iEALT;qBAMS,kBANT;2BAOS;;;;;;;GAP1B;;MAiBMkd,GAlDY;;;iBAoDJpf,OAAZ,EAAqB;WACdqC,QAAL,GAAgBrC,OAAhB;KArDc;;;;;;WAkEhB0M,IAlEgB,mBAkET;;;UACD,KAAKrK,QAAL,CAAc6P,UAAd,IACA,KAAK7P,QAAL,CAAc6P,UAAd,CAAyBxR,QAAzB,KAAsC2T,KAAKC,YAD3C,IAEAjX,KAAE,KAAKgF,QAAP,EAAiBkB,QAAjB,CAA0BnB,UAAU8C,MAApC,CAFA,IAGA7H,KAAE,KAAKgF,QAAP,EAAiBkB,QAAjB,CAA0BnB,UAAUuN,QAApC,CAHJ,EAGmD;;;;UAI/C1R,MAAJ;UACIohB,QAAJ;UACMC,cAAcjiB,KAAE,KAAKgF,QAAP,EAAiBY,OAAjB,CAAyBf,SAAS4c,cAAlC,EAAkD,CAAlD,CAApB;UACMvf,WAAcnC,KAAK2F,sBAAL,CAA4B,KAAKV,QAAjC,CAApB;;UAEIid,WAAJ,EAAiB;YACTC,eAAeD,YAAYE,QAAZ,KAAyB,IAAzB,GAAgCtd,SAASud,SAAzC,GAAqDvd,SAASgD,MAAnF;mBACW7H,KAAE8L,SAAF,CAAY9L,KAAEiiB,WAAF,EAAelf,IAAf,CAAoBmf,YAApB,CAAZ,CAAX;mBACWF,SAASA,SAAShf,MAAT,GAAkB,CAA3B,CAAX;;;UAGI4R,YAAY5U,KAAE8E,KAAF,CAAQA,MAAMyL,IAAd,EAAoB;uBACrB,KAAKvL;OADJ,CAAlB;UAIM0N,YAAY1S,KAAE8E,KAAF,CAAQA,MAAMmB,IAAd,EAAoB;uBACrB+b;OADC,CAAlB;;UAIIA,QAAJ,EAAc;aACVA,QAAF,EAAY7e,OAAZ,CAAoByR,SAApB;;;WAGA,KAAK5P,QAAP,EAAiB7B,OAAjB,CAAyBuP,SAAzB;;UAEIA,UAAUpN,kBAAV,MACDsP,UAAUtP,kBAAV,EADH,EACmC;;;;UAI/BpD,QAAJ,EAAc;iBACHlC,KAAEkC,QAAF,EAAY,CAAZ,CAAT;;;WAGG8e,SAAL,CACE,KAAKhc,QADP,EAEEid,WAFF;;UAKM/R,WAAW,SAAXA,QAAW,GAAM;YACfmS,cAAcriB,KAAE8E,KAAF,CAAQA,MAAM4L,MAAd,EAAsB;yBACzB,MAAK1L;SADF,CAApB;YAIMuS,aAAavX,KAAE8E,KAAF,CAAQA,MAAMqL,KAAd,EAAqB;yBACvB6R;SADE,CAAnB;aAIEA,QAAF,EAAY7e,OAAZ,CAAoBkf,WAApB;aACE,MAAKrd,QAAP,EAAiB7B,OAAjB,CAAyBoU,UAAzB;OAVF;;UAaI3W,MAAJ,EAAY;aACLogB,SAAL,CAAepgB,MAAf,EAAuBA,OAAOiU,UAA9B,EAA0C3E,QAA1C;OADF,MAEO;;;KAhIO;;WAqIhB1K,OArIgB,sBAqIN;WACNC,UAAF,CAAa,KAAKT,QAAlB,EAA4BR,QAA5B;WACKQ,QAAL,GAAgB,IAAhB;KAvIc;;;WA6IhBgc,SA7IgB,sBA6INre,OA7IM,EA6IGuZ,SA7IH,EA6IcnE,QA7Id,EA6IwB;;;UAClCuK,cAAJ;;UACIpG,UAAUiG,QAAV,KAAuB,IAA3B,EAAiC;yBACdniB,KAAEkc,SAAF,EAAanZ,IAAb,CAAkB8B,SAASud,SAA3B,CAAjB;OADF,MAEO;yBACYpiB,KAAEkc,SAAF,EAAahP,QAAb,CAAsBrI,SAASgD,MAA/B,CAAjB;;;UAGI0a,SAAkBD,eAAe,CAAf,CAAxB;UACM3R,kBAAkBoH,YACnBhY,KAAKgC,qBAAL,EADmB,IAElBwgB,UAAUviB,KAAEuiB,MAAF,EAAUrc,QAAV,CAAmBnB,UAAUoB,IAA7B,CAFhB;;UAIM+J,WAAW,SAAXA,QAAW;eAAM,OAAKsS,mBAAL,CACrB7f,OADqB,EAErB4f,MAFqB,EAGrBxK,QAHqB,CAAN;OAAjB;;UAMIwK,UAAU5R,eAAd,EAA+B;aAC3B4R,MAAF,EACG9gB,GADH,CACO1B,KAAK2B,cADZ,EAC4BwO,QAD5B,EAEGpO,oBAFH,CAEwB8C,mBAFxB;OADF,MAIO;;;KApKO;;WAyKhB4d,mBAzKgB,gCAyKI7f,OAzKJ,EAyKa4f,MAzKb,EAyKqBxK,QAzKrB,EAyK+B;UACzCwK,MAAJ,EAAY;aACRA,MAAF,EAAUvc,WAAV,CAAyBjB,UAAUkB,IAAnC,SAA2ClB,UAAU8C,MAArD;YAEM4a,gBAAgBziB,KAAEuiB,OAAO1N,UAAT,EAAqB9R,IAArB,CACpB8B,SAAS6d,qBADW,EAEpB,CAFoB,CAAtB;;YAIID,aAAJ,EAAmB;eACfA,aAAF,EAAiBzc,WAAjB,CAA6BjB,UAAU8C,MAAvC;;;YAGE0a,OAAO3f,YAAP,CAAoB,MAApB,MAAgC,KAApC,EAA2C;iBAClCuF,YAAP,CAAoB,eAApB,EAAqC,KAArC;;;;WAIFxF,OAAF,EAAWwK,QAAX,CAAoBpI,UAAU8C,MAA9B;;UACIlF,QAAQC,YAAR,CAAqB,MAArB,MAAiC,KAArC,EAA4C;gBAClCuF,YAAR,CAAqB,eAArB,EAAsC,IAAtC;;;WAGG0F,MAAL,CAAYlL,OAAZ;WACEA,OAAF,EAAWwK,QAAX,CAAoBpI,UAAUkB,IAA9B;;UAEItD,QAAQkS,UAAR,IACA7U,KAAE2C,QAAQkS,UAAV,EAAsB3O,QAAtB,CAA+BnB,UAAU4d,aAAzC,CADJ,EAC6D;YAErDC,kBAAkB5iB,KAAE2C,OAAF,EAAWiD,OAAX,CAAmBf,SAASyc,QAA5B,EAAsC,CAAtC,CAAxB;;YACIsB,eAAJ,EAAqB;eACjBA,eAAF,EAAmB7f,IAAnB,CAAwB8B,SAAS0c,eAAjC,EAAkDpU,QAAlD,CAA2DpI,UAAU8C,MAArE;;;gBAGMM,YAAR,CAAqB,eAArB,EAAsC,IAAtC;;;UAGE4P,QAAJ,EAAc;;;KA7MA;;;QAqNTvR,gBArNS,6BAqNQjD,MArNR,EAqNgB;aACvB,KAAKkD,IAAL,CAAU,YAAY;YACrB0K,QAAQnR,KAAE,IAAF,CAAd;YACI2G,OAAUwK,MAAMxK,IAAN,CAAWnC,QAAX,CAAd;;YAEI,CAACmC,IAAL,EAAW;iBACF,IAAIob,GAAJ,CAAQ,IAAR,CAAP;gBACMpb,IAAN,CAAWnC,QAAX,EAAqBmC,IAArB;;;YAGE,OAAOpD,MAAP,KAAkB,QAAtB,EAAgC;cAC1B,OAAOoD,KAAKpD,MAAL,CAAP,KAAwB,WAA5B,EAAyC;kBACjC,IAAIY,KAAJ,wBAA8BZ,MAA9B,QAAN;;;eAEGA,MAAL;;OAbG,CAAP;KAtNc;;;;0BA2DK;eACZgB,OAAP;;;;;;;;;;;;OAqLF9B,QAAF,EACGsE,EADH,CACMjC,MAAMkC,cADZ,EAC4BnC,SAAS2C,WADrC,EACkD,UAAU7G,KAAV,EAAiB;UACzDmG,cAAN;;QACIN,gBAAJ,CAAqBlG,IAArB,CAA0BN,KAAE,IAAF,CAA1B,EAAmC,MAAnC;GAHJ;;;;;;;OAaE6B,EAAF,CAAKyC,IAAL,IAAyByd,IAAIvb,gBAA7B;OACE3E,EAAF,CAAKyC,IAAL,EAAW4C,WAAX,GAAyB6a,GAAzB;;OACElgB,EAAF,CAAKyC,IAAL,EAAW6C,UAAX,GAAyB,YAAY;SACjCtF,EAAF,CAAKyC,IAAL,IAAaK,kBAAb;WACOod,IAAIvb,gBAAX;GAFF;;SAKOub,GAAP;CArQU,CAuQT/hB,CAvQS,CAAZ;;ACEA;;;;;;;AAOA,CAAC,UAACA,IAAD,EAAO;MACF,OAAOA,IAAP,KAAa,WAAjB,EAA8B;UACtB,IAAImE,KAAJ,CAAU,kGAAV,CAAN;;;MAGI0e,UAAU7iB,KAAE6B,EAAF,CAAKkP,MAAL,CAAY2M,KAAZ,CAAkB,GAAlB,EAAuB,CAAvB,EAA0BA,KAA1B,CAAgC,GAAhC,CAAhB;MACMoF,WAAW,CAAjB;MACMC,UAAW,CAAjB;MACMC,WAAW,CAAjB;MACMC,WAAW,CAAjB;MACMC,WAAW,CAAjB;;MAEIL,QAAQ,CAAR,IAAaE,OAAb,IAAwBF,QAAQ,CAAR,IAAaG,QAArC,IAAiDH,QAAQ,CAAR,MAAeC,QAAf,IAA2BD,QAAQ,CAAR,MAAeG,QAA1C,IAAsDH,QAAQ,CAAR,IAAaI,QAApH,IAAgIJ,QAAQ,CAAR,KAAcK,QAAlJ,EAA4J;UACpJ,IAAI/e,KAAJ,CAAU,8EAAV,CAAN;;CAbJ,EAeGnE,CAfH;;;;;;;;;;;;;;;;;;;;;;"}
\ No newline at end of file
index 0caceb0d1c418e739bd5786d3eed27675454c414..b87b31ce4ce9a93735013c68aa4b2a5dd90c3f85 100644 (file)
@@ -112,7 +112,7 @@ var Collapse = function ($) {
       var activesData;
 
       if (this._parent) {
-        actives = $.makeArray($(this._parent).children().children(Selector.ACTIVES));
+        actives = $.makeArray($(this._parent).find(Selector.ACTIVES).filter("[data-parent=\"" + this._config.parent + "\"]"));
 
         if (!actives.length) {
           actives = null;
index be1a3bd58d7dacf3d5056d6d961bd31198f839b0..97a17e7aa6f80ba39e695ea307f5a87843b49dc3 100644 (file)
@@ -1 +1 @@
-{"version":3,"sources":["../src/collapse.js"],"names":["Collapse","$","NAME","VERSION","DATA_KEY","EVENT_KEY","DATA_API_KEY","JQUERY_NO_CONFLICT","fn","TRANSITION_DURATION","Default","toggle","parent","DefaultType","Event","SHOW","SHOWN","HIDE","HIDDEN","CLICK_DATA_API","ClassName","COLLAPSE","COLLAPSING","COLLAPSED","Dimension","WIDTH","HEIGHT","Selector","ACTIVES","DATA_TOGGLE","element","config","_isTransitioning","_element","_config","_getConfig","_triggerArray","makeArray","id","tabToggles","i","length","elem","selector","Util","getSelectorFromElement","filter","push","_parent","_getParent","_addAriaAndCollapsedClass","hasClass","hide","show","actives","activesData","children","data","startEvent","trigger","isDefaultPrevented","_jQueryInterface","call","dimension","_getDimension","removeClass","addClass","style","attr","setTransitioning","complete","supportsTransitionEnd","capitalizedDimension","toUpperCase","slice","scrollSize","one","TRANSITION_END","emulateTransitionEnd","getBoundingClientRect","reflow","$elem","isTransitioning","dispose","removeData","Boolean","typeCheckConfig","hasWidth","isElement","jquery","find","each","_getTargetFromElement","triggerArray","isOpen","toggleClass","$this","test","Error","document","on","event","currentTarget","tagName","preventDefault","$trigger","$target","Constructor","noConflict"],"mappings":"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","file":"collapse.js","sourcesContent":["import $ from 'jquery'\nimport Util from './util'\n\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-beta.3): collapse.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Collapse = (($) => {\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  const NAME                = 'collapse'\n  const VERSION             = '4.0.0-beta.3'\n  const DATA_KEY            = 'bs.collapse'\n  const EVENT_KEY           = `.${DATA_KEY}`\n  const DATA_API_KEY        = '.data-api'\n  const JQUERY_NO_CONFLICT  = $.fn[NAME]\n  const TRANSITION_DURATION = 600\n\n  const Default = {\n    toggle : true,\n    parent : ''\n  }\n\n  const DefaultType = {\n    toggle : 'boolean',\n    parent : '(string|element)'\n  }\n\n  const Event = {\n    SHOW           : `show${EVENT_KEY}`,\n    SHOWN          : `shown${EVENT_KEY}`,\n    HIDE           : `hide${EVENT_KEY}`,\n    HIDDEN         : `hidden${EVENT_KEY}`,\n    CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n  }\n\n  const ClassName = {\n    SHOW       : 'show',\n    COLLAPSE   : 'collapse',\n    COLLAPSING : 'collapsing',\n    COLLAPSED  : 'collapsed'\n  }\n\n  const Dimension = {\n    WIDTH  : 'width',\n    HEIGHT : 'height'\n  }\n\n  const Selector = {\n    ACTIVES     : '.show, .collapsing',\n    DATA_TOGGLE : '[data-toggle=\"collapse\"]'\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  class Collapse {\n\n    constructor(element, config) {\n      this._isTransitioning = false\n      this._element         = element\n      this._config          = this._getConfig(config)\n      this._triggerArray    = $.makeArray($(\n        `[data-toggle=\"collapse\"][href=\"#${element.id}\"],` +\n        `[data-toggle=\"collapse\"][data-target=\"#${element.id}\"]`\n      ))\n      const tabToggles = $(Selector.DATA_TOGGLE)\n      for (let i = 0; i < tabToggles.length; i++) {\n        const elem = tabToggles[i]\n        const selector = Util.getSelectorFromElement(elem)\n        if (selector !== null && $(selector).filter(element).length > 0) {\n          this._triggerArray.push(elem)\n        }\n      }\n\n      this._parent = this._config.parent ? this._getParent() : null\n\n      if (!this._config.parent) {\n        this._addAriaAndCollapsedClass(this._element, this._triggerArray)\n      }\n\n      if (this._config.toggle) {\n        this.toggle()\n      }\n    }\n\n\n    // getters\n\n    static get VERSION() {\n      return VERSION\n    }\n\n    static get Default() {\n      return Default\n    }\n\n\n    // public\n\n    toggle() {\n      if ($(this._element).hasClass(ClassName.SHOW)) {\n        this.hide()\n      } else {\n        this.show()\n      }\n    }\n\n    show() {\n      if (this._isTransitioning ||\n        $(this._element).hasClass(ClassName.SHOW)) {\n        return\n      }\n\n      let actives\n      let activesData\n\n      if (this._parent) {\n        actives = $.makeArray($(this._parent).children().children(Selector.ACTIVES))\n        if (!actives.length) {\n          actives = null\n        }\n      }\n\n      if (actives) {\n        activesData = $(actives).data(DATA_KEY)\n        if (activesData && activesData._isTransitioning) {\n          return\n        }\n      }\n\n      const startEvent = $.Event(Event.SHOW)\n      $(this._element).trigger(startEvent)\n      if (startEvent.isDefaultPrevented()) {\n        return\n      }\n\n      if (actives) {\n        Collapse._jQueryInterface.call($(actives), 'hide')\n        if (!activesData) {\n          $(actives).data(DATA_KEY, null)\n        }\n      }\n\n      const dimension = this._getDimension()\n\n      $(this._element)\n        .removeClass(ClassName.COLLAPSE)\n        .addClass(ClassName.COLLAPSING)\n\n      this._element.style[dimension] = 0\n\n      if (this._triggerArray.length) {\n        $(this._triggerArray)\n          .removeClass(ClassName.COLLAPSED)\n          .attr('aria-expanded', true)\n      }\n\n      this.setTransitioning(true)\n\n      const complete = () => {\n        $(this._element)\n          .removeClass(ClassName.COLLAPSING)\n          .addClass(ClassName.COLLAPSE)\n          .addClass(ClassName.SHOW)\n\n        this._element.style[dimension] = ''\n\n        this.setTransitioning(false)\n\n        $(this._element).trigger(Event.SHOWN)\n      }\n\n      if (!Util.supportsTransitionEnd()) {\n        complete()\n        return\n      }\n\n      const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1)\n      const scrollSize           = `scroll${capitalizedDimension}`\n\n      $(this._element)\n        .one(Util.TRANSITION_END, complete)\n        .emulateTransitionEnd(TRANSITION_DURATION)\n\n      this._element.style[dimension] = `${this._element[scrollSize]}px`\n    }\n\n    hide() {\n      if (this._isTransitioning ||\n        !$(this._element).hasClass(ClassName.SHOW)) {\n        return\n      }\n\n      const startEvent = $.Event(Event.HIDE)\n      $(this._element).trigger(startEvent)\n      if (startEvent.isDefaultPrevented()) {\n        return\n      }\n\n      const dimension       = this._getDimension()\n\n      this._element.style[dimension] = `${this._element.getBoundingClientRect()[dimension]}px`\n\n      Util.reflow(this._element)\n\n      $(this._element)\n        .addClass(ClassName.COLLAPSING)\n        .removeClass(ClassName.COLLAPSE)\n        .removeClass(ClassName.SHOW)\n\n      if (this._triggerArray.length) {\n        for (let i = 0; i < this._triggerArray.length; i++) {\n          const trigger = this._triggerArray[i]\n          const selector = Util.getSelectorFromElement(trigger)\n          if (selector !== null) {\n            const $elem = $(selector)\n            if (!$elem.hasClass(ClassName.SHOW)) {\n              $(trigger).addClass(ClassName.COLLAPSED)\n                   .attr('aria-expanded', false)\n            }\n          }\n        }\n      }\n\n      this.setTransitioning(true)\n\n      const complete = () => {\n        this.setTransitioning(false)\n        $(this._element)\n          .removeClass(ClassName.COLLAPSING)\n          .addClass(ClassName.COLLAPSE)\n          .trigger(Event.HIDDEN)\n      }\n\n      this._element.style[dimension] = ''\n\n      if (!Util.supportsTransitionEnd()) {\n        complete()\n        return\n      }\n\n      $(this._element)\n        .one(Util.TRANSITION_END, complete)\n        .emulateTransitionEnd(TRANSITION_DURATION)\n    }\n\n    setTransitioning(isTransitioning) {\n      this._isTransitioning = isTransitioning\n    }\n\n    dispose() {\n      $.removeData(this._element, DATA_KEY)\n\n      this._config          = null\n      this._parent          = null\n      this._element         = null\n      this._triggerArray    = null\n      this._isTransitioning = null\n    }\n\n\n    // private\n\n    _getConfig(config) {\n      config = {\n        ...Default,\n        ...config\n      }\n      config.toggle = Boolean(config.toggle) // coerce string values\n      Util.typeCheckConfig(NAME, config, DefaultType)\n      return config\n    }\n\n    _getDimension() {\n      const hasWidth = $(this._element).hasClass(Dimension.WIDTH)\n      return hasWidth ? Dimension.WIDTH : Dimension.HEIGHT\n    }\n\n    _getParent() {\n      let parent = null\n      if (Util.isElement(this._config.parent)) {\n        parent = this._config.parent\n\n        // it's a jQuery object\n        if (typeof this._config.parent.jquery !== 'undefined') {\n          parent = this._config.parent[0]\n        }\n      } else {\n        parent = $(this._config.parent)[0]\n      }\n\n      const selector =\n        `[data-toggle=\"collapse\"][data-parent=\"${this._config.parent}\"]`\n\n      $(parent).find(selector).each((i, element) => {\n        this._addAriaAndCollapsedClass(\n          Collapse._getTargetFromElement(element),\n          [element]\n        )\n      })\n\n      return parent\n    }\n\n    _addAriaAndCollapsedClass(element, triggerArray) {\n      if (element) {\n        const isOpen = $(element).hasClass(ClassName.SHOW)\n\n        if (triggerArray.length) {\n          $(triggerArray)\n            .toggleClass(ClassName.COLLAPSED, !isOpen)\n            .attr('aria-expanded', isOpen)\n        }\n      }\n    }\n\n\n    // static\n\n    static _getTargetFromElement(element) {\n      const selector = Util.getSelectorFromElement(element)\n      return selector ? $(selector)[0] : null\n    }\n\n    static _jQueryInterface(config) {\n      return this.each(function () {\n        const $this   = $(this)\n        let data      = $this.data(DATA_KEY)\n        const _config = {\n          ...Default,\n          ...$this.data(),\n          ...typeof config === 'object' && config\n        }\n\n        if (!data && _config.toggle && /show|hide/.test(config)) {\n          _config.toggle = false\n        }\n\n        if (!data) {\n          data = new Collapse(this, _config)\n          $this.data(DATA_KEY, data)\n        }\n\n        if (typeof config === 'string') {\n          if (typeof data[config] === 'undefined') {\n            throw new Error(`No method named \"${config}\"`)\n          }\n          data[config]()\n        }\n      })\n    }\n\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n  $(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n    // preventDefault only for <a> elements (which change the URL) not inside the collapsible element\n    if (event.currentTarget.tagName === 'A') {\n      event.preventDefault()\n    }\n\n    const $trigger = $(this)\n    const selector = Util.getSelectorFromElement(this)\n    $(selector).each(function () {\n      const $target = $(this)\n      const data    = $target.data(DATA_KEY)\n      const config  = data ? 'toggle' : $trigger.data()\n      Collapse._jQueryInterface.call($target, config)\n    })\n  })\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $.fn[NAME]             = Collapse._jQueryInterface\n  $.fn[NAME].Constructor = Collapse\n  $.fn[NAME].noConflict  = function () {\n    $.fn[NAME] = JQUERY_NO_CONFLICT\n    return Collapse._jQueryInterface\n  }\n\n  return Collapse\n\n})($)\n\nexport default Collapse\n"]}
\ No newline at end of file
+{"version":3,"sources":["../src/collapse.js"],"names":["Collapse","$","NAME","VERSION","DATA_KEY","EVENT_KEY","DATA_API_KEY","JQUERY_NO_CONFLICT","fn","TRANSITION_DURATION","Default","toggle","parent","DefaultType","Event","SHOW","SHOWN","HIDE","HIDDEN","CLICK_DATA_API","ClassName","COLLAPSE","COLLAPSING","COLLAPSED","Dimension","WIDTH","HEIGHT","Selector","ACTIVES","DATA_TOGGLE","element","config","_isTransitioning","_element","_config","_getConfig","_triggerArray","makeArray","id","tabToggles","i","length","elem","selector","Util","getSelectorFromElement","filter","push","_parent","_getParent","_addAriaAndCollapsedClass","hasClass","hide","show","actives","activesData","find","data","startEvent","trigger","isDefaultPrevented","_jQueryInterface","call","dimension","_getDimension","removeClass","addClass","style","attr","setTransitioning","complete","supportsTransitionEnd","capitalizedDimension","toUpperCase","slice","scrollSize","one","TRANSITION_END","emulateTransitionEnd","getBoundingClientRect","reflow","$elem","isTransitioning","dispose","removeData","Boolean","typeCheckConfig","hasWidth","isElement","jquery","each","_getTargetFromElement","triggerArray","isOpen","toggleClass","$this","test","Error","document","on","event","currentTarget","tagName","preventDefault","$trigger","$target","Constructor","noConflict"],"mappings":";;;;;;AAIA;;;;;;AAOA,IAAMA,WAAY,UAACC,CAAD,EAAO;AAGvB;;;;;AAMA,MAAMC,OAAsB,UAA5B;AACA,MAAMC,UAAsB,cAA5B;AACA,MAAMC,WAAsB,aAA5B;AACA,MAAMC,kBAA0BD,QAAhC;AACA,MAAME,eAAsB,WAA5B;AACA,MAAMC,qBAAsBN,EAAEO,EAAF,CAAKN,IAAL,CAA5B;AACA,MAAMO,sBAAsB,GAA5B;AAEA,MAAMC,UAAU;AACdC,YAAS,IADK;AAEdC,YAAS;AAFK,GAAhB;AAKA,MAAMC,cAAc;AAClBF,YAAS,SADS;AAElBC,YAAS;AAFS,GAApB;AAKA,MAAME,QAAQ;AACZC,mBAAwBV,SADZ;AAEZW,qBAAyBX,SAFb;AAGZY,mBAAwBZ,SAHZ;AAIZa,uBAA0Bb,SAJd;AAKZc,8BAAyBd,SAAzB,GAAqCC;AALzB,GAAd;AAQA,MAAMc,YAAY;AAChBL,UAAa,MADG;AAEhBM,cAAa,UAFG;AAGhBC,gBAAa,YAHG;AAIhBC,eAAa;AAJG,GAAlB;AAOA,MAAMC,YAAY;AAChBC,WAAS,OADO;AAEhBC,YAAS;AAFO,GAAlB;AAKA,MAAMC,WAAW;AACfC,aAAc,oBADC;AAEfC,iBAAc;AAIhB;;;;;;AANiB,GAAjB;;AA/CuB,MA2DjB7B,QA3DiB;AAAA;AAAA;AA6DrB,sBAAY8B,OAAZ,EAAqBC,MAArB,EAA6B;AAC3B,WAAKC,gBAAL,GAAwB,KAAxB;AACA,WAAKC,QAAL,GAAwBH,OAAxB;AACA,WAAKI,OAAL,GAAwB,KAAKC,UAAL,CAAgBJ,MAAhB,CAAxB;AACA,WAAKK,aAAL,GAAwBnC,EAAEoC,SAAF,CAAYpC,EAClC,wCAAmC6B,QAAQQ,EAA3C,4DAC0CR,QAAQQ,EADlD,SADkC,CAAZ,CAAxB;AAIA,UAAMC,aAAatC,EAAE0B,SAASE,WAAX,CAAnB;;AACA,WAAK,IAAIW,IAAI,CAAb,EAAgBA,IAAID,WAAWE,MAA/B,EAAuCD,GAAvC,EAA4C;AAC1C,YAAME,OAAOH,WAAWC,CAAX,CAAb;AACA,YAAMG,WAAWC,KAAKC,sBAAL,CAA4BH,IAA5B,CAAjB;;AACA,YAAIC,aAAa,IAAb,IAAqB1C,EAAE0C,QAAF,EAAYG,MAAZ,CAAmBhB,OAAnB,EAA4BW,MAA5B,GAAqC,CAA9D,EAAiE;AAC/D,eAAKL,aAAL,CAAmBW,IAAnB,CAAwBL,IAAxB;AACD;AACF;;AAED,WAAKM,OAAL,GAAe,KAAKd,OAAL,CAAatB,MAAb,GAAsB,KAAKqC,UAAL,EAAtB,GAA0C,IAAzD;;AAEA,UAAI,CAAC,KAAKf,OAAL,CAAatB,MAAlB,EAA0B;AACxB,aAAKsC,yBAAL,CAA+B,KAAKjB,QAApC,EAA8C,KAAKG,aAAnD;AACD;;AAED,UAAI,KAAKF,OAAL,CAAavB,MAAjB,EAAyB;AACvB,aAAKA,MAAL;AACD;AACF,KAvFoB,CA0FrB;;;AA1FqB;;AAqGrB;AArGqB,WAuGrBA,MAvGqB,qBAuGZ;AACP,UAAIV,EAAE,KAAKgC,QAAP,EAAiBkB,QAAjB,CAA0B/B,UAAUL,IAApC,CAAJ,EAA+C;AAC7C,aAAKqC,IAAL;AACD,OAFD,MAEO;AACL,aAAKC,IAAL;AACD;AACF,KA7GoB;;AAAA,WA+GrBA,IA/GqB,mBA+Gd;AAAA;;AACL,UAAI,KAAKrB,gBAAL,IACF/B,EAAE,KAAKgC,QAAP,EAAiBkB,QAAjB,CAA0B/B,UAAUL,IAApC,CADF,EAC6C;AAC3C;AACD;;AAED,UAAIuC,OAAJ;AACA,UAAIC,WAAJ;;AAEA,UAAI,KAAKP,OAAT,EAAkB;AAChBM,kBAAUrD,EAAEoC,SAAF,CACRpC,EAAE,KAAK+C,OAAP,EACGQ,IADH,CACQ7B,SAASC,OADjB,EAEGkB,MAFH,qBAE2B,KAAKZ,OAAL,CAAatB,MAFxC,SADQ,CAAV;;AAKA,YAAI,CAAC0C,QAAQb,MAAb,EAAqB;AACnBa,oBAAU,IAAV;AACD;AACF;;AAED,UAAIA,OAAJ,EAAa;AACXC,sBAActD,EAAEqD,OAAF,EAAWG,IAAX,CAAgBrD,QAAhB,CAAd;;AACA,YAAImD,eAAeA,YAAYvB,gBAA/B,EAAiD;AAC/C;AACD;AACF;;AAED,UAAM0B,aAAazD,EAAEa,KAAF,CAAQA,MAAMC,IAAd,CAAnB;AACAd,QAAE,KAAKgC,QAAP,EAAiB0B,OAAjB,CAAyBD,UAAzB;;AACA,UAAIA,WAAWE,kBAAX,EAAJ,EAAqC;AACnC;AACD;;AAED,UAAIN,OAAJ,EAAa;AACXtD,iBAAS6D,gBAAT,CAA0BC,IAA1B,CAA+B7D,EAAEqD,OAAF,CAA/B,EAA2C,MAA3C;;AACA,YAAI,CAACC,WAAL,EAAkB;AAChBtD,YAAEqD,OAAF,EAAWG,IAAX,CAAgBrD,QAAhB,EAA0B,IAA1B;AACD;AACF;;AAED,UAAM2D,YAAY,KAAKC,aAAL,EAAlB;;AAEA/D,QAAE,KAAKgC,QAAP,EACGgC,WADH,CACe7C,UAAUC,QADzB,EAEG6C,QAFH,CAEY9C,UAAUE,UAFtB;AAIA,WAAKW,QAAL,CAAckC,KAAd,CAAoBJ,SAApB,IAAiC,CAAjC;;AAEA,UAAI,KAAK3B,aAAL,CAAmBK,MAAvB,EAA+B;AAC7BxC,UAAE,KAAKmC,aAAP,EACG6B,WADH,CACe7C,UAAUG,SADzB,EAEG6C,IAFH,CAEQ,eAFR,EAEyB,IAFzB;AAGD;;AAED,WAAKC,gBAAL,CAAsB,IAAtB;;AAEA,UAAMC,WAAW,SAAXA,QAAW,GAAM;AACrBrE,UAAE,MAAKgC,QAAP,EACGgC,WADH,CACe7C,UAAUE,UADzB,EAEG4C,QAFH,CAEY9C,UAAUC,QAFtB,EAGG6C,QAHH,CAGY9C,UAAUL,IAHtB;AAKA,cAAKkB,QAAL,CAAckC,KAAd,CAAoBJ,SAApB,IAAiC,EAAjC;;AAEA,cAAKM,gBAAL,CAAsB,KAAtB;;AAEApE,UAAE,MAAKgC,QAAP,EAAiB0B,OAAjB,CAAyB7C,MAAME,KAA/B;AACD,OAXD;;AAaA,UAAI,CAAC4B,KAAK2B,qBAAL,EAAL,EAAmC;AACjCD;AACA;AACD;;AAED,UAAME,uBAAuBT,UAAU,CAAV,EAAaU,WAAb,KAA6BV,UAAUW,KAAV,CAAgB,CAAhB,CAA1D;AACA,UAAMC,wBAAgCH,oBAAtC;AAEAvE,QAAE,KAAKgC,QAAP,EACG2C,GADH,CACOhC,KAAKiC,cADZ,EAC4BP,QAD5B,EAEGQ,oBAFH,CAEwBrE,mBAFxB;AAIA,WAAKwB,QAAL,CAAckC,KAAd,CAAoBJ,SAApB,IAAoC,KAAK9B,QAAL,CAAc0C,UAAd,CAApC;AACD,KAjMoB;;AAAA,WAmMrBvB,IAnMqB,mBAmMd;AAAA;;AACL,UAAI,KAAKpB,gBAAL,IACF,CAAC/B,EAAE,KAAKgC,QAAP,EAAiBkB,QAAjB,CAA0B/B,UAAUL,IAApC,CADH,EAC8C;AAC5C;AACD;;AAED,UAAM2C,aAAazD,EAAEa,KAAF,CAAQA,MAAMG,IAAd,CAAnB;AACAhB,QAAE,KAAKgC,QAAP,EAAiB0B,OAAjB,CAAyBD,UAAzB;;AACA,UAAIA,WAAWE,kBAAX,EAAJ,EAAqC;AACnC;AACD;;AAED,UAAMG,YAAkB,KAAKC,aAAL,EAAxB;;AAEA,WAAK/B,QAAL,CAAckC,KAAd,CAAoBJ,SAApB,IAAoC,KAAK9B,QAAL,CAAc8C,qBAAd,GAAsChB,SAAtC,CAApC;AAEAnB,WAAKoC,MAAL,CAAY,KAAK/C,QAAjB;AAEAhC,QAAE,KAAKgC,QAAP,EACGiC,QADH,CACY9C,UAAUE,UADtB,EAEG2C,WAFH,CAEe7C,UAAUC,QAFzB,EAGG4C,WAHH,CAGe7C,UAAUL,IAHzB;;AAKA,UAAI,KAAKqB,aAAL,CAAmBK,MAAvB,EAA+B;AAC7B,aAAK,IAAID,IAAI,CAAb,EAAgBA,IAAI,KAAKJ,aAAL,CAAmBK,MAAvC,EAA+CD,GAA/C,EAAoD;AAClD,cAAMmB,UAAU,KAAKvB,aAAL,CAAmBI,CAAnB,CAAhB;AACA,cAAMG,WAAWC,KAAKC,sBAAL,CAA4Bc,OAA5B,CAAjB;;AACA,cAAIhB,aAAa,IAAjB,EAAuB;AACrB,gBAAMsC,QAAQhF,EAAE0C,QAAF,CAAd;;AACA,gBAAI,CAACsC,MAAM9B,QAAN,CAAe/B,UAAUL,IAAzB,CAAL,EAAqC;AACnCd,gBAAE0D,OAAF,EAAWO,QAAX,CAAoB9C,UAAUG,SAA9B,EACM6C,IADN,CACW,eADX,EAC4B,KAD5B;AAED;AACF;AACF;AACF;;AAED,WAAKC,gBAAL,CAAsB,IAAtB;;AAEA,UAAMC,WAAW,SAAXA,QAAW,GAAM;AACrB,eAAKD,gBAAL,CAAsB,KAAtB;;AACApE,UAAE,OAAKgC,QAAP,EACGgC,WADH,CACe7C,UAAUE,UADzB,EAEG4C,QAFH,CAEY9C,UAAUC,QAFtB,EAGGsC,OAHH,CAGW7C,MAAMI,MAHjB;AAID,OAND;;AAQA,WAAKe,QAAL,CAAckC,KAAd,CAAoBJ,SAApB,IAAiC,EAAjC;;AAEA,UAAI,CAACnB,KAAK2B,qBAAL,EAAL,EAAmC;AACjCD;AACA;AACD;;AAEDrE,QAAE,KAAKgC,QAAP,EACG2C,GADH,CACOhC,KAAKiC,cADZ,EAC4BP,QAD5B,EAEGQ,oBAFH,CAEwBrE,mBAFxB;AAGD,KA5PoB;;AAAA,WA8PrB4D,gBA9PqB,6BA8PJa,eA9PI,EA8Pa;AAChC,WAAKlD,gBAAL,GAAwBkD,eAAxB;AACD,KAhQoB;;AAAA,WAkQrBC,OAlQqB,sBAkQX;AACRlF,QAAEmF,UAAF,CAAa,KAAKnD,QAAlB,EAA4B7B,QAA5B;AAEA,WAAK8B,OAAL,GAAwB,IAAxB;AACA,WAAKc,OAAL,GAAwB,IAAxB;AACA,WAAKf,QAAL,GAAwB,IAAxB;AACA,WAAKG,aAAL,GAAwB,IAAxB;AACA,WAAKJ,gBAAL,GAAwB,IAAxB;AACD,KA1QoB,EA6QrB;;;AA7QqB,WA+QrBG,UA/QqB,uBA+QVJ,MA/QU,EA+QF;AACjBA,4BACKrB,OADL,EAEKqB,MAFL;AAIAA,aAAOpB,MAAP,GAAgB0E,QAAQtD,OAAOpB,MAAf,CAAhB,CALiB,CAKsB;;AACvCiC,WAAK0C,eAAL,CAAqBpF,IAArB,EAA2B6B,MAA3B,EAAmClB,WAAnC;AACA,aAAOkB,MAAP;AACD,KAvRoB;;AAAA,WAyRrBiC,aAzRqB,4BAyRL;AACd,UAAMuB,WAAWtF,EAAE,KAAKgC,QAAP,EAAiBkB,QAAjB,CAA0B3B,UAAUC,KAApC,CAAjB;AACA,aAAO8D,WAAW/D,UAAUC,KAArB,GAA6BD,UAAUE,MAA9C;AACD,KA5RoB;;AAAA,WA8RrBuB,UA9RqB,yBA8RR;AAAA;;AACX,UAAIrC,SAAS,IAAb;;AACA,UAAIgC,KAAK4C,SAAL,CAAe,KAAKtD,OAAL,CAAatB,MAA5B,CAAJ,EAAyC;AACvCA,iBAAS,KAAKsB,OAAL,CAAatB,MAAtB,CADuC,CAGvC;;AACA,YAAI,OAAO,KAAKsB,OAAL,CAAatB,MAAb,CAAoB6E,MAA3B,KAAsC,WAA1C,EAAuD;AACrD7E,mBAAS,KAAKsB,OAAL,CAAatB,MAAb,CAAoB,CAApB,CAAT;AACD;AACF,OAPD,MAOO;AACLA,iBAASX,EAAE,KAAKiC,OAAL,CAAatB,MAAf,EAAuB,CAAvB,CAAT;AACD;;AAED,UAAM+B,yDACqC,KAAKT,OAAL,CAAatB,MADlD,QAAN;AAGAX,QAAEW,MAAF,EAAU4C,IAAV,CAAeb,QAAf,EAAyB+C,IAAzB,CAA8B,UAAClD,CAAD,EAAIV,OAAJ,EAAgB;AAC5C,eAAKoB,yBAAL,CACElD,SAAS2F,qBAAT,CAA+B7D,OAA/B,CADF,EAEE,CAACA,OAAD,CAFF;AAID,OALD;AAOA,aAAOlB,MAAP;AACD,KAtToB;;AAAA,WAwTrBsC,yBAxTqB,sCAwTKpB,OAxTL,EAwTc8D,YAxTd,EAwT4B;AAC/C,UAAI9D,OAAJ,EAAa;AACX,YAAM+D,SAAS5F,EAAE6B,OAAF,EAAWqB,QAAX,CAAoB/B,UAAUL,IAA9B,CAAf;;AAEA,YAAI6E,aAAanD,MAAjB,EAAyB;AACvBxC,YAAE2F,YAAF,EACGE,WADH,CACe1E,UAAUG,SADzB,EACoC,CAACsE,MADrC,EAEGzB,IAFH,CAEQ,eAFR,EAEyByB,MAFzB;AAGD;AACF;AACF,KAlUoB,EAqUrB;;;AArUqB,aAuUdF,qBAvUc,kCAuUQ7D,OAvUR,EAuUiB;AACpC,UAAMa,WAAWC,KAAKC,sBAAL,CAA4Bf,OAA5B,CAAjB;AACA,aAAOa,WAAW1C,EAAE0C,QAAF,EAAY,CAAZ,CAAX,GAA4B,IAAnC;AACD,KA1UoB;;AAAA,aA4UdkB,gBA5Uc,6BA4UG9B,MA5UH,EA4UW;AAC9B,aAAO,KAAK2D,IAAL,CAAU,YAAY;AAC3B,YAAMK,QAAU9F,EAAE,IAAF,CAAhB;AACA,YAAIwD,OAAYsC,MAAMtC,IAAN,CAAWrD,QAAX,CAAhB;;AACA,YAAM8B,uBACDxB,OADC,EAEDqF,MAAMtC,IAAN,EAFC,EAGD,OAAO1B,MAAP,KAAkB,QAAlB,IAA8BA,MAH7B,CAAN;;AAMA,YAAI,CAAC0B,IAAD,IAASvB,QAAQvB,MAAjB,IAA2B,YAAYqF,IAAZ,CAAiBjE,MAAjB,CAA/B,EAAyD;AACvDG,kBAAQvB,MAAR,GAAiB,KAAjB;AACD;;AAED,YAAI,CAAC8C,IAAL,EAAW;AACTA,iBAAO,IAAIzD,QAAJ,CAAa,IAAb,EAAmBkC,OAAnB,CAAP;AACA6D,gBAAMtC,IAAN,CAAWrD,QAAX,EAAqBqD,IAArB;AACD;;AAED,YAAI,OAAO1B,MAAP,KAAkB,QAAtB,EAAgC;AAC9B,cAAI,OAAO0B,KAAK1B,MAAL,CAAP,KAAwB,WAA5B,EAAyC;AACvC,kBAAM,IAAIkE,KAAJ,wBAA8BlE,MAA9B,QAAN;AACD;;AACD0B,eAAK1B,MAAL;AACD;AACF,OAxBM,CAAP;AAyBD,KAtWoB;;AAAA;AAAA;AAAA,0BA4FA;AACnB,eAAO5B,OAAP;AACD;AA9FoB;AAAA;AAAA,0BAgGA;AACnB,eAAOO,OAAP;AACD;AAlGoB;;AAAA;AAAA;AA2WvB;;;;;;;AAMAT,IAAEiG,QAAF,EAAYC,EAAZ,CAAerF,MAAMK,cAArB,EAAqCQ,SAASE,WAA9C,EAA2D,UAAUuE,KAAV,EAAiB;AAC1E;AACA,QAAIA,MAAMC,aAAN,CAAoBC,OAApB,KAAgC,GAApC,EAAyC;AACvCF,YAAMG,cAAN;AACD;;AAED,QAAMC,WAAWvG,EAAE,IAAF,CAAjB;AACA,QAAM0C,WAAWC,KAAKC,sBAAL,CAA4B,IAA5B,CAAjB;AACA5C,MAAE0C,QAAF,EAAY+C,IAAZ,CAAiB,YAAY;AAC3B,UAAMe,UAAUxG,EAAE,IAAF,CAAhB;AACA,UAAMwD,OAAUgD,QAAQhD,IAAR,CAAarD,QAAb,CAAhB;AACA,UAAM2B,SAAU0B,OAAO,QAAP,GAAkB+C,SAAS/C,IAAT,EAAlC;;AACAzD,eAAS6D,gBAAT,CAA0BC,IAA1B,CAA+B2C,OAA/B,EAAwC1E,MAAxC;AACD,KALD;AAMD,GAdD;AAiBA;;;;;;AAMA9B,IAAEO,EAAF,CAAKN,IAAL,IAAyBF,SAAS6D,gBAAlC;AACA5D,IAAEO,EAAF,CAAKN,IAAL,EAAWwG,WAAX,GAAyB1G,QAAzB;;AACAC,IAAEO,EAAF,CAAKN,IAAL,EAAWyG,UAAX,GAAyB,YAAY;AACnC1G,MAAEO,EAAF,CAAKN,IAAL,IAAaK,kBAAb;AACA,WAAOP,SAAS6D,gBAAhB;AACD,GAHD;;AAKA,SAAO7D,QAAP;AAED,CAjZgB,CAiZdC,CAjZc,CAAjB","file":"collapse.js","sourcesContent":["import $ from 'jquery'\nimport Util from './util'\n\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-beta.3): collapse.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Collapse = (($) => {\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  const NAME                = 'collapse'\n  const VERSION             = '4.0.0-beta.3'\n  const DATA_KEY            = 'bs.collapse'\n  const EVENT_KEY           = `.${DATA_KEY}`\n  const DATA_API_KEY        = '.data-api'\n  const JQUERY_NO_CONFLICT  = $.fn[NAME]\n  const TRANSITION_DURATION = 600\n\n  const Default = {\n    toggle : true,\n    parent : ''\n  }\n\n  const DefaultType = {\n    toggle : 'boolean',\n    parent : '(string|element)'\n  }\n\n  const Event = {\n    SHOW           : `show${EVENT_KEY}`,\n    SHOWN          : `shown${EVENT_KEY}`,\n    HIDE           : `hide${EVENT_KEY}`,\n    HIDDEN         : `hidden${EVENT_KEY}`,\n    CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n  }\n\n  const ClassName = {\n    SHOW       : 'show',\n    COLLAPSE   : 'collapse',\n    COLLAPSING : 'collapsing',\n    COLLAPSED  : 'collapsed'\n  }\n\n  const Dimension = {\n    WIDTH  : 'width',\n    HEIGHT : 'height'\n  }\n\n  const Selector = {\n    ACTIVES     : '.show, .collapsing',\n    DATA_TOGGLE : '[data-toggle=\"collapse\"]'\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  class Collapse {\n\n    constructor(element, config) {\n      this._isTransitioning = false\n      this._element         = element\n      this._config          = this._getConfig(config)\n      this._triggerArray    = $.makeArray($(\n        `[data-toggle=\"collapse\"][href=\"#${element.id}\"],` +\n        `[data-toggle=\"collapse\"][data-target=\"#${element.id}\"]`\n      ))\n      const tabToggles = $(Selector.DATA_TOGGLE)\n      for (let i = 0; i < tabToggles.length; i++) {\n        const elem = tabToggles[i]\n        const selector = Util.getSelectorFromElement(elem)\n        if (selector !== null && $(selector).filter(element).length > 0) {\n          this._triggerArray.push(elem)\n        }\n      }\n\n      this._parent = this._config.parent ? this._getParent() : null\n\n      if (!this._config.parent) {\n        this._addAriaAndCollapsedClass(this._element, this._triggerArray)\n      }\n\n      if (this._config.toggle) {\n        this.toggle()\n      }\n    }\n\n\n    // getters\n\n    static get VERSION() {\n      return VERSION\n    }\n\n    static get Default() {\n      return Default\n    }\n\n\n    // public\n\n    toggle() {\n      if ($(this._element).hasClass(ClassName.SHOW)) {\n        this.hide()\n      } else {\n        this.show()\n      }\n    }\n\n    show() {\n      if (this._isTransitioning ||\n        $(this._element).hasClass(ClassName.SHOW)) {\n        return\n      }\n\n      let actives\n      let activesData\n\n      if (this._parent) {\n        actives = $.makeArray(\n          $(this._parent)\n            .find(Selector.ACTIVES)\n            .filter(`[data-parent=\"${this._config.parent}\"]`)\n        )\n        if (!actives.length) {\n          actives = null\n        }\n      }\n\n      if (actives) {\n        activesData = $(actives).data(DATA_KEY)\n        if (activesData && activesData._isTransitioning) {\n          return\n        }\n      }\n\n      const startEvent = $.Event(Event.SHOW)\n      $(this._element).trigger(startEvent)\n      if (startEvent.isDefaultPrevented()) {\n        return\n      }\n\n      if (actives) {\n        Collapse._jQueryInterface.call($(actives), 'hide')\n        if (!activesData) {\n          $(actives).data(DATA_KEY, null)\n        }\n      }\n\n      const dimension = this._getDimension()\n\n      $(this._element)\n        .removeClass(ClassName.COLLAPSE)\n        .addClass(ClassName.COLLAPSING)\n\n      this._element.style[dimension] = 0\n\n      if (this._triggerArray.length) {\n        $(this._triggerArray)\n          .removeClass(ClassName.COLLAPSED)\n          .attr('aria-expanded', true)\n      }\n\n      this.setTransitioning(true)\n\n      const complete = () => {\n        $(this._element)\n          .removeClass(ClassName.COLLAPSING)\n          .addClass(ClassName.COLLAPSE)\n          .addClass(ClassName.SHOW)\n\n        this._element.style[dimension] = ''\n\n        this.setTransitioning(false)\n\n        $(this._element).trigger(Event.SHOWN)\n      }\n\n      if (!Util.supportsTransitionEnd()) {\n        complete()\n        return\n      }\n\n      const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1)\n      const scrollSize           = `scroll${capitalizedDimension}`\n\n      $(this._element)\n        .one(Util.TRANSITION_END, complete)\n        .emulateTransitionEnd(TRANSITION_DURATION)\n\n      this._element.style[dimension] = `${this._element[scrollSize]}px`\n    }\n\n    hide() {\n      if (this._isTransitioning ||\n        !$(this._element).hasClass(ClassName.SHOW)) {\n        return\n      }\n\n      const startEvent = $.Event(Event.HIDE)\n      $(this._element).trigger(startEvent)\n      if (startEvent.isDefaultPrevented()) {\n        return\n      }\n\n      const dimension       = this._getDimension()\n\n      this._element.style[dimension] = `${this._element.getBoundingClientRect()[dimension]}px`\n\n      Util.reflow(this._element)\n\n      $(this._element)\n        .addClass(ClassName.COLLAPSING)\n        .removeClass(ClassName.COLLAPSE)\n        .removeClass(ClassName.SHOW)\n\n      if (this._triggerArray.length) {\n        for (let i = 0; i < this._triggerArray.length; i++) {\n          const trigger = this._triggerArray[i]\n          const selector = Util.getSelectorFromElement(trigger)\n          if (selector !== null) {\n            const $elem = $(selector)\n            if (!$elem.hasClass(ClassName.SHOW)) {\n              $(trigger).addClass(ClassName.COLLAPSED)\n                   .attr('aria-expanded', false)\n            }\n          }\n        }\n      }\n\n      this.setTransitioning(true)\n\n      const complete = () => {\n        this.setTransitioning(false)\n        $(this._element)\n          .removeClass(ClassName.COLLAPSING)\n          .addClass(ClassName.COLLAPSE)\n          .trigger(Event.HIDDEN)\n      }\n\n      this._element.style[dimension] = ''\n\n      if (!Util.supportsTransitionEnd()) {\n        complete()\n        return\n      }\n\n      $(this._element)\n        .one(Util.TRANSITION_END, complete)\n        .emulateTransitionEnd(TRANSITION_DURATION)\n    }\n\n    setTransitioning(isTransitioning) {\n      this._isTransitioning = isTransitioning\n    }\n\n    dispose() {\n      $.removeData(this._element, DATA_KEY)\n\n      this._config          = null\n      this._parent          = null\n      this._element         = null\n      this._triggerArray    = null\n      this._isTransitioning = null\n    }\n\n\n    // private\n\n    _getConfig(config) {\n      config = {\n        ...Default,\n        ...config\n      }\n      config.toggle = Boolean(config.toggle) // coerce string values\n      Util.typeCheckConfig(NAME, config, DefaultType)\n      return config\n    }\n\n    _getDimension() {\n      const hasWidth = $(this._element).hasClass(Dimension.WIDTH)\n      return hasWidth ? Dimension.WIDTH : Dimension.HEIGHT\n    }\n\n    _getParent() {\n      let parent = null\n      if (Util.isElement(this._config.parent)) {\n        parent = this._config.parent\n\n        // it's a jQuery object\n        if (typeof this._config.parent.jquery !== 'undefined') {\n          parent = this._config.parent[0]\n        }\n      } else {\n        parent = $(this._config.parent)[0]\n      }\n\n      const selector =\n        `[data-toggle=\"collapse\"][data-parent=\"${this._config.parent}\"]`\n\n      $(parent).find(selector).each((i, element) => {\n        this._addAriaAndCollapsedClass(\n          Collapse._getTargetFromElement(element),\n          [element]\n        )\n      })\n\n      return parent\n    }\n\n    _addAriaAndCollapsedClass(element, triggerArray) {\n      if (element) {\n        const isOpen = $(element).hasClass(ClassName.SHOW)\n\n        if (triggerArray.length) {\n          $(triggerArray)\n            .toggleClass(ClassName.COLLAPSED, !isOpen)\n            .attr('aria-expanded', isOpen)\n        }\n      }\n    }\n\n\n    // static\n\n    static _getTargetFromElement(element) {\n      const selector = Util.getSelectorFromElement(element)\n      return selector ? $(selector)[0] : null\n    }\n\n    static _jQueryInterface(config) {\n      return this.each(function () {\n        const $this   = $(this)\n        let data      = $this.data(DATA_KEY)\n        const _config = {\n          ...Default,\n          ...$this.data(),\n          ...typeof config === 'object' && config\n        }\n\n        if (!data && _config.toggle && /show|hide/.test(config)) {\n          _config.toggle = false\n        }\n\n        if (!data) {\n          data = new Collapse(this, _config)\n          $this.data(DATA_KEY, data)\n        }\n\n        if (typeof config === 'string') {\n          if (typeof data[config] === 'undefined') {\n            throw new Error(`No method named \"${config}\"`)\n          }\n          data[config]()\n        }\n      })\n    }\n\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n  $(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n    // preventDefault only for <a> elements (which change the URL) not inside the collapsible element\n    if (event.currentTarget.tagName === 'A') {\n      event.preventDefault()\n    }\n\n    const $trigger = $(this)\n    const selector = Util.getSelectorFromElement(this)\n    $(selector).each(function () {\n      const $target = $(this)\n      const data    = $target.data(DATA_KEY)\n      const config  = data ? 'toggle' : $trigger.data()\n      Collapse._jQueryInterface.call($target, config)\n    })\n  })\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $.fn[NAME]             = Collapse._jQueryInterface\n  $.fn[NAME].Constructor = Collapse\n  $.fn[NAME].noConflict  = function () {\n    $.fn[NAME] = JQUERY_NO_CONFLICT\n    return Collapse._jQueryInterface\n  }\n\n  return Collapse\n\n})($)\n\nexport default Collapse\n"]}
\ No newline at end of file