diff --git a/UPGRADING.md b/UPGRADING.md index 18a45d68..c1383c97 100644 --- a/UPGRADING.md +++ b/UPGRADING.md @@ -30,7 +30,6 @@ The table prefix is now hardcoded to `kimai2_`. If you used another prefix, you before starting the update process. You can also delete the row `DATABASE_PREFIX` from your `.env` file. - API: DateTime objects will be returned including timezone identifier (previously 2019-03-02 14:23 - now 2019-03-02T14:23:00+00:00) - ## [0.8.1](https://github.com/kevinpapst/kimai2/releases/tag/0.8.1) A bug fixing release. Remember to execute the necessary timezone conversion script, if you haven't updated to 0.8 before (see below)! diff --git a/config/packages/kimai.yaml b/config/packages/kimai.yaml index 0e27bab8..f2045ae5 100644 --- a/config/packages/kimai.yaml +++ b/config/packages/kimai.yaml @@ -38,8 +38,7 @@ kimai: # If you want to limit the max. active entries per user, you can do it here. # - # The soft_limit is used as theme setting (formerly "kimai.theme.active_warning"): - # display a warning color if the user has at least X active recordings + # The soft_limit is used as theme setting and displays a warning color if the user has at least X active recordings # # The hard_limit is used to detect how many active records are allowed per user: # By default a user can only have one active time-record. The first one is stopped when the new one starts. @@ -98,7 +97,7 @@ kimai: ROLE_USER: [] ROLE_TEAMLEAD: [view_invoice_template,create_invoice_template,edit_invoice_template,view_rate_own_timesheet,view_rate_other_timesheet,hourly-rate_own_profile] ROLE_ADMIN: [hourly-rate_own_profile] - ROLE_SUPER_ADMIN: [hourly-rate_own_profile,hourly-rate_other_profile,delete_own_profile,roles_own_profile,system_information] + ROLE_SUPER_ADMIN: [hourly-rate_own_profile,hourly-rate_other_profile,delete_own_profile,roles_own_profile,system_information,system_configuration] # -------------------------------------------------------------------------------- # Language specific settings, like the date formats @@ -266,9 +265,7 @@ kimai: activeUsersTotal: { title: stats.userActiveTotal, query: users, icon: user, color: red } activeRecordings: { title: stats.activeRecordings, query: active, icon: duration, color: red } - # Default settings used to populate forms - #defaults: - # customer: - # timezone: Europe/Berlin - # country: DE - # currency: EUR \ No newline at end of file + # -------------------------------------------------------------------------------- + # Storage directories + data_dir: '%kernel.project_dir%/var/data' + plugin_dir: '%kernel.project_dir%/var/plugins' diff --git a/config/services.yaml b/config/services.yaml index 813d605b..ab3b07cc 100644 --- a/config/services.yaml +++ b/config/services.yaml @@ -14,7 +14,6 @@ services: # The best practice is to be explicit about your dependencies anyway. bind: $projectDirectory: "%kernel.project_dir%" - $hardLimit: "%kimai.timesheet.active_entries.hard_limit%" # makes classes in src/ available to be used as services # this creates a service per class whose id is the fully-qualified class name @@ -47,17 +46,20 @@ services: arguments: $dashboard: "%kimai.dashboard%" - App\Twig\MarkdownExtension: - arguments: - $timesheetAsMarkdown: "%kimai.timesheet.markdown%" - - App\Controller\CustomerController: - arguments: - $defaults: "%kimai.defaults%" - App\Configuration\LanguageFormattings: + arguments: ["%kimai.languages%"] + + App\Configuration\TimesheetConfiguration: arguments: - $languageSettings: "%kimai.languages%" + $settings: "%kimai.timesheet%" + + App\Configuration\FormConfiguration: + arguments: + $settings: "%kimai.defaults%" + + App\Configuration\SystemConfiguration: + arguments: + $settings: "%kimai.config%" App\Utils\MPdfConverter: arguments: ['%kernel.cache_dir%'] @@ -104,19 +106,10 @@ services: tags: - { name: form.type_extension, extended_type: Symfony\Bridge\Doctrine\Form\Type\EntityType } - App\Form\TimesheetEditForm: - arguments: - $durationOnly: "%kimai.timesheet.duration_only%" - App\Form\Extension\SelectWithApiDataExtension: tags: - { name: form.type_extension, extended_type: Symfony\Bridge\Doctrine\Form\Type\EntityType } - App\Validator\Constraints\TimesheetValidator: - arguments: - $ruleset: "%kimai.timesheet.rules%" - $durationOnly: "%kimai.timesheet.duration_only%" - # ================================================================================ # THEME # ================================================================================ @@ -175,6 +168,11 @@ services: factory: ['@doctrine.orm.entity_manager', getRepository] arguments: ['App\Entity\InvoiceTemplate'] + App\Repository\ConfigurationRepository: + class: Doctrine\ORM\EntityRepository + factory: ['@doctrine.orm.entity_manager', getRepository] + arguments: ['App\Entity\Configuration'] + App\Repository\InvoiceDocumentRepository: class: App\Repository\InvoiceDocumentRepository arguments: ['%kimai.invoice.documents%'] diff --git a/config/services_test.yaml b/config/services_test.yaml index c450b83d..8f119b4c 100644 --- a/config/services_test.yaml +++ b/config/services_test.yaml @@ -2,4 +2,12 @@ services: _defaults: public: true - test.PasswordEncoder: "@security.encoder_factory" \ No newline at end of file + test.PasswordEncoder: "@security.encoder_factory" + + App\Configuration\SystemConfiguration: + arguments: ['@App\Repository\ConfigurationRepository', "%kimai.config%"] + + App\Repository\ConfigurationRepository: + class: Doctrine\ORM\EntityRepository + factory: ['@doctrine.orm.entity_manager', getRepository] + arguments: ['App\Entity\Configuration'] diff --git a/public/build/app.css b/public/build/app.css index 269962d7..946521ea 100644 --- a/public/build/app.css +++ b/public/build/app.css @@ -1,12265 +1,43 @@ -.daterangepicker { - position: absolute; - color: inherit; - background-color: #fff; - border-radius: 4px; - border: 1px solid #ddd; - width: 278px; - max-width: none; - padding: 0; - margin-top: 7px; - top: 100px; - left: 20px; - z-index: 3001; - display: none; - font-family: arial; - font-size: 15px; - line-height: 1em; -} - -.daterangepicker:before, .daterangepicker:after { - position: absolute; - display: inline-block; - border-bottom-color: rgba(0, 0, 0, 0.2); - content: ''; -} - -.daterangepicker:before { - top: -7px; - border-right: 7px solid transparent; - border-left: 7px solid transparent; - border-bottom: 7px solid #ccc; -} - -.daterangepicker:after { - top: -6px; - border-right: 6px solid transparent; - border-bottom: 6px solid #fff; - border-left: 6px solid transparent; -} - -.daterangepicker.opensleft:before { - right: 9px; -} - -.daterangepicker.opensleft:after { - right: 10px; -} - -.daterangepicker.openscenter:before { - left: 0; - right: 0; - width: 0; - margin-left: auto; - margin-right: auto; -} - -.daterangepicker.openscenter:after { - left: 0; - right: 0; - width: 0; - margin-left: auto; - margin-right: auto; -} - -.daterangepicker.opensright:before { - left: 9px; -} - -.daterangepicker.opensright:after { - left: 10px; -} - -.daterangepicker.drop-up { - margin-top: -7px; -} - -.daterangepicker.drop-up:before { - top: initial; - bottom: -7px; - border-bottom: initial; - border-top: 7px solid #ccc; -} - -.daterangepicker.drop-up:after { - top: initial; - bottom: -6px; - border-bottom: initial; - border-top: 6px solid #fff; -} - -.daterangepicker.single .daterangepicker .ranges, .daterangepicker.single .drp-calendar { - float: none; -} - -.daterangepicker.single .drp-selected { - display: none; -} - -.daterangepicker.show-calendar .drp-calendar { - display: block; -} - -.daterangepicker.show-calendar .drp-buttons { - display: block; -} - -.daterangepicker.auto-apply .drp-buttons { - display: none; -} - -.daterangepicker .drp-calendar { - display: none; - max-width: 270px; -} - -.daterangepicker .drp-calendar.left { - padding: 8px 0 8px 8px; -} - -.daterangepicker .drp-calendar.right { - padding: 8px; -} - -.daterangepicker .drp-calendar.single .calendar-table { - border: none; -} - -.daterangepicker .calendar-table .next span, .daterangepicker .calendar-table .prev span { - color: #fff; - border: solid black; - border-width: 0 2px 2px 0; - border-radius: 0; - display: inline-block; - padding: 3px; -} - -.daterangepicker .calendar-table .next span { - transform: rotate(-45deg); - -webkit-transform: rotate(-45deg); -} - -.daterangepicker .calendar-table .prev span { - transform: rotate(135deg); - -webkit-transform: rotate(135deg); -} - -.daterangepicker .calendar-table th, .daterangepicker .calendar-table td { - white-space: nowrap; - text-align: center; - vertical-align: middle; - min-width: 32px; - width: 32px; - height: 24px; - line-height: 24px; - font-size: 12px; - border-radius: 4px; - border: 1px solid transparent; - white-space: nowrap; - cursor: pointer; -} - -.daterangepicker .calendar-table { - border: 1px solid #fff; - border-radius: 4px; - background-color: #fff; -} - -.daterangepicker .calendar-table table { - width: 100%; - margin: 0; - border-spacing: 0; - border-collapse: collapse; -} - -.daterangepicker td.available:hover, .daterangepicker th.available:hover { - background-color: #eee; - border-color: transparent; - color: inherit; -} - -.daterangepicker td.week, .daterangepicker th.week { - font-size: 80%; - color: #ccc; -} - -.daterangepicker td.off, .daterangepicker td.off.in-range, .daterangepicker td.off.start-date, .daterangepicker td.off.end-date { - background-color: #fff; - border-color: transparent; - color: #999; -} - -.daterangepicker td.in-range { - background-color: #ebf4f8; - border-color: transparent; - color: #000; - border-radius: 0; -} - -.daterangepicker td.start-date { - border-radius: 4px 0 0 4px; -} - -.daterangepicker td.end-date { - border-radius: 0 4px 4px 0; -} - -.daterangepicker td.start-date.end-date { - border-radius: 4px; -} - -.daterangepicker td.active, .daterangepicker td.active:hover { - background-color: #357ebd; - border-color: transparent; - color: #fff; -} - -.daterangepicker th.month { - width: auto; -} - -.daterangepicker td.disabled, .daterangepicker option.disabled { - color: #999; - cursor: not-allowed; - text-decoration: line-through; -} - -.daterangepicker select.monthselect, .daterangepicker select.yearselect { - font-size: 12px; - padding: 1px; - height: auto; - margin: 0; - cursor: default; -} - -.daterangepicker select.monthselect { - margin-right: 2%; - width: 56%; -} - -.daterangepicker select.yearselect { - width: 40%; -} - -.daterangepicker select.hourselect, .daterangepicker select.minuteselect, .daterangepicker select.secondselect, .daterangepicker select.ampmselect { - width: 50px; - margin: 0 auto; - background: #eee; - border: 1px solid #eee; - padding: 2px; - outline: 0; - font-size: 12px; -} - -.daterangepicker .calendar-time { - text-align: center; - margin: 4px auto 0 auto; - line-height: 30px; - position: relative; -} - -.daterangepicker .calendar-time select.disabled { - color: #ccc; - cursor: not-allowed; -} - -.daterangepicker .drp-buttons { - clear: both; - text-align: right; - padding: 8px; - border-top: 1px solid #ddd; - display: none; - line-height: 12px; - vertical-align: middle; -} - -.daterangepicker .drp-selected { - display: inline-block; - font-size: 12px; - padding-right: 8px; -} - -.daterangepicker .drp-buttons .btn { - margin-left: 8px; - font-size: 12px; - font-weight: bold; - padding: 4px 8px; -} - -.daterangepicker.show-ranges .drp-calendar.left { - border-left: 1px solid #ddd; -} - -.daterangepicker .ranges { - float: none; - text-align: left; - margin: 0; -} - -.daterangepicker.show-calendar .ranges { - margin-top: 8px; -} - -.daterangepicker .ranges ul { - list-style: none; - margin: 0 auto; - padding: 0; - width: 100%; -} - -.daterangepicker .ranges li { - font-size: 12px; - padding: 8px 12px; - cursor: pointer; -} - -.daterangepicker .ranges li:hover { - background-color: #eee; -} - -.daterangepicker .ranges li.active { - background-color: #08c; - color: #fff; -} - -/* Larger Screen Styling */ -@media (min-width: 564px) { - .daterangepicker { - width: auto; } - .daterangepicker .ranges ul { - width: 140px; } - .daterangepicker.single .ranges ul { - width: 100%; } - .daterangepicker.single .drp-calendar.left { - clear: none; } - .daterangepicker.single.ltr .ranges, .daterangepicker.single.ltr .drp-calendar { - float: left; } - .daterangepicker.single.rtl .ranges, .daterangepicker.single.rtl .drp-calendar { - float: right; } - .daterangepicker.ltr { - direction: ltr; - text-align: left; } - .daterangepicker.ltr .drp-calendar.left { - clear: left; - margin-right: 0; } - .daterangepicker.ltr .drp-calendar.left .calendar-table { - border-right: none; - border-top-right-radius: 0; - border-bottom-right-radius: 0; } - .daterangepicker.ltr .drp-calendar.right { - margin-left: 0; } - .daterangepicker.ltr .drp-calendar.right .calendar-table { - border-left: none; - border-top-left-radius: 0; - border-bottom-left-radius: 0; } - .daterangepicker.ltr .drp-calendar.left .calendar-table { - padding-right: 8px; } - .daterangepicker.ltr .ranges, .daterangepicker.ltr .drp-calendar { - float: left; } - .daterangepicker.rtl { - direction: rtl; - text-align: right; } - .daterangepicker.rtl .drp-calendar.left { - clear: right; - margin-left: 0; } - .daterangepicker.rtl .drp-calendar.left .calendar-table { - border-left: none; - border-top-left-radius: 0; - border-bottom-left-radius: 0; } - .daterangepicker.rtl .drp-calendar.right { - margin-right: 0; } - .daterangepicker.rtl .drp-calendar.right .calendar-table { - border-right: none; - border-top-right-radius: 0; - border-bottom-right-radius: 0; } - .daterangepicker.rtl .drp-calendar.left .calendar-table { - padding-left: 12px; } - .daterangepicker.rtl .ranges, .daterangepicker.rtl .drp-calendar { - text-align: right; - float: right; } } -@media (min-width: 730px) { - .daterangepicker .ranges { - width: auto; } - .daterangepicker.ltr .ranges { - float: left; } - .daterangepicker.rtl .ranges { - float: right; } - .daterangepicker .drp-calendar.left { - clear: none !important; } } -/*! +.daterangepicker{position:absolute;color:inherit;background-color:#fff;border-radius:4px;border:1px solid #ddd;width:278px;max-width:none;padding:0;margin-top:7px;top:100px;left:20px;z-index:3001;display:none;font-family:arial;font-size:15px;line-height:1em}.daterangepicker:after,.daterangepicker:before{position:absolute;display:inline-block;border-bottom-color:rgba(0,0,0,.2);content:""}.daterangepicker:before{top:-7px;border-right:7px solid transparent;border-left:7px solid transparent;border-bottom:7px solid #ccc}.daterangepicker:after{top:-6px;border-right:6px solid transparent;border-bottom:6px solid #fff;border-left:6px solid transparent}.daterangepicker.opensleft:before{right:9px}.daterangepicker.opensleft:after{right:10px}.daterangepicker.openscenter:after,.daterangepicker.openscenter:before{left:0;right:0;width:0;margin-left:auto;margin-right:auto}.daterangepicker.opensright:before{left:9px}.daterangepicker.opensright:after{left:10px}.daterangepicker.drop-up{margin-top:-7px}.daterangepicker.drop-up:before{top:auto;bottom:-7px;border-bottom:initial;border-top:7px solid #ccc}.daterangepicker.drop-up:after{top:auto;bottom:-6px;border-bottom:initial;border-top:6px solid #fff}.daterangepicker.single .daterangepicker .ranges,.daterangepicker.single .drp-calendar{float:none}.daterangepicker.single .drp-selected{display:none}.daterangepicker.show-calendar .drp-buttons,.daterangepicker.show-calendar .drp-calendar{display:block}.daterangepicker.auto-apply .drp-buttons{display:none}.daterangepicker .drp-calendar{display:none;max-width:270px}.daterangepicker .drp-calendar.left{padding:8px 0 8px 8px}.daterangepicker .drp-calendar.right{padding:8px}.daterangepicker .drp-calendar.single .calendar-table{border:none}.daterangepicker .calendar-table .next span,.daterangepicker .calendar-table .prev span{color:#fff;border:solid #000;border-width:0 2px 2px 0;border-radius:0;display:inline-block;padding:3px}.daterangepicker .calendar-table .next span{transform:rotate(-45deg);-webkit-transform:rotate(-45deg)}.daterangepicker .calendar-table .prev span{transform:rotate(135deg);-webkit-transform:rotate(135deg)}.daterangepicker .calendar-table td,.daterangepicker .calendar-table th{text-align:center;vertical-align:middle;min-width:32px;width:32px;height:24px;line-height:24px;font-size:12px;border-radius:4px;border:1px solid transparent;white-space:nowrap;cursor:pointer}.daterangepicker .calendar-table{border:1px solid #fff;border-radius:4px;background-color:#fff}.daterangepicker .calendar-table table{width:100%;margin:0;border-spacing:0;border-collapse:collapse}.daterangepicker td.available:hover,.daterangepicker th.available:hover{background-color:#eee;border-color:transparent;color:inherit}.daterangepicker td.week,.daterangepicker th.week{font-size:80%;color:#ccc}.daterangepicker td.off,.daterangepicker td.off.end-date,.daterangepicker td.off.in-range,.daterangepicker td.off.start-date{background-color:#fff;border-color:transparent;color:#999}.daterangepicker td.in-range{background-color:#ebf4f8;border-color:transparent;color:#000;border-radius:0}.daterangepicker td.start-date{border-radius:4px 0 0 4px}.daterangepicker td.end-date{border-radius:0 4px 4px 0}.daterangepicker td.start-date.end-date{border-radius:4px}.daterangepicker td.active,.daterangepicker td.active:hover{background-color:#357ebd;border-color:transparent;color:#fff}.daterangepicker th.month{width:auto}.daterangepicker option.disabled,.daterangepicker td.disabled{color:#999;cursor:not-allowed;text-decoration:line-through}.daterangepicker select.monthselect,.daterangepicker select.yearselect{font-size:12px;padding:1px;height:auto;margin:0;cursor:default}.daterangepicker select.monthselect{margin-right:2%;width:56%}.daterangepicker select.yearselect{width:40%}.daterangepicker select.ampmselect,.daterangepicker select.hourselect,.daterangepicker select.minuteselect,.daterangepicker select.secondselect{width:50px;margin:0 auto;background:#eee;border:1px solid #eee;padding:2px;outline:0;font-size:12px}.daterangepicker .calendar-time{text-align:center;margin:4px auto 0;line-height:30px;position:relative}.daterangepicker .calendar-time select.disabled{color:#ccc;cursor:not-allowed}.daterangepicker .drp-buttons{clear:both;text-align:right;padding:8px;border-top:1px solid #ddd;display:none;line-height:12px;vertical-align:middle}.daterangepicker .drp-selected{display:inline-block;font-size:12px;padding-right:8px}.daterangepicker .drp-buttons .btn{margin-left:8px;font-size:12px;font-weight:700;padding:4px 8px}.daterangepicker.show-ranges .drp-calendar.left{border-left:1px solid #ddd}.daterangepicker .ranges{float:none;text-align:left;margin:0}.daterangepicker.show-calendar .ranges{margin-top:8px}.daterangepicker .ranges ul{list-style:none;margin:0 auto;padding:0;width:100%}.daterangepicker .ranges li{font-size:12px;padding:8px 12px;cursor:pointer}.daterangepicker .ranges li:hover{background-color:#eee}.daterangepicker .ranges li.active{background-color:#08c;color:#fff}@media (min-width:564px){.daterangepicker{width:auto}.daterangepicker .ranges ul{width:140px}.daterangepicker.single .ranges ul{width:100%}.daterangepicker.single .drp-calendar.left{clear:none}.daterangepicker.single.ltr .drp-calendar,.daterangepicker.single.ltr .ranges{float:left}.daterangepicker.single.rtl .drp-calendar,.daterangepicker.single.rtl .ranges{float:right}.daterangepicker.ltr{direction:ltr;text-align:left}.daterangepicker.ltr .drp-calendar.left{clear:left;margin-right:0}.daterangepicker.ltr .drp-calendar.left .calendar-table{border-right:none;border-top-right-radius:0;border-bottom-right-radius:0}.daterangepicker.ltr .drp-calendar.right{margin-left:0}.daterangepicker.ltr .drp-calendar.right .calendar-table{border-left:none;border-top-left-radius:0;border-bottom-left-radius:0}.daterangepicker.ltr .drp-calendar.left .calendar-table{padding-right:8px}.daterangepicker.ltr .drp-calendar,.daterangepicker.ltr .ranges{float:left}.daterangepicker.rtl{direction:rtl;text-align:right}.daterangepicker.rtl .drp-calendar.left{clear:right;margin-left:0}.daterangepicker.rtl .drp-calendar.left .calendar-table{border-left:none;border-top-left-radius:0;border-bottom-left-radius:0}.daterangepicker.rtl .drp-calendar.right{margin-right:0}.daterangepicker.rtl .drp-calendar.right .calendar-table{border-right:none;border-top-right-radius:0;border-bottom-right-radius:0}.daterangepicker.rtl .drp-calendar.left .calendar-table{padding-left:12px}.daterangepicker.rtl .drp-calendar,.daterangepicker.rtl .ranges{text-align:right;float:right}}@media (min-width:730px){.daterangepicker .ranges{width:auto}.daterangepicker.ltr .ranges{float:left}.daterangepicker.rtl .ranges{float:right}.daterangepicker .drp-calendar.left{clear:none!important}}/*! * Bootstrap-select v1.13.1 (https://developer.snapappointments.com/bootstrap-select) * * Copyright 2012-2018 SnapAppointments, LLC * Licensed under MIT (https://github.com/snapappointments/bootstrap-select/blob/master/LICENSE) - */.bootstrap-select>select.bs-select-hidden,select.bs-select-hidden,select.selectpicker{display:none!important}.bootstrap-select{width:220px\9}.bootstrap-select>.dropdown-toggle{position:relative;width:100%;z-index:1;text-align:right;white-space:nowrap}.bootstrap-select>.dropdown-toggle.bs-placeholder,.bootstrap-select>.dropdown-toggle.bs-placeholder:active,.bootstrap-select>.dropdown-toggle.bs-placeholder:focus,.bootstrap-select>.dropdown-toggle.bs-placeholder:hover{color:#999}.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-danger,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-danger:active,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-danger:focus,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-danger:hover,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-dark,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-dark:active,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-dark:focus,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-dark:hover,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-info,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-info:active,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-info:focus,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-info:hover,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-primary,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-primary:active,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-primary:focus,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-primary:hover,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-secondary,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-secondary:active,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-secondary:focus,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-secondary:hover,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-success,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-success:active,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-success:focus,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-success:hover{color:rgba(255,255,255,.5)}.bootstrap-select>select{position:absolute!important;bottom:0;left:50%;display:block!important;width:.5px!important;height:100%!important;padding:0!important;opacity:0!important;border:none}.bootstrap-select>select.mobile-device{top:0;left:0;display:block!important;width:100%!important;z-index:2}.bootstrap-select.is-invalid .dropdown-toggle,.error .bootstrap-select .dropdown-toggle,.has-error .bootstrap-select .dropdown-toggle,.was-validated .bootstrap-select .selectpicker:invalid+.dropdown-toggle{border-color:#b94a48}.bootstrap-select.is-valid .dropdown-toggle,.was-validated .bootstrap-select .selectpicker:valid+.dropdown-toggle{border-color:#28a745}.bootstrap-select.fit-width{width:auto!important}.bootstrap-select:not([class*=col-]):not([class*=form-control]):not(.input-group-btn){width:220px}.bootstrap-select .dropdown-toggle:focus{outline:thin dotted #333!important;outline:5px auto -webkit-focus-ring-color!important;outline-offset:-2px}.bootstrap-select.form-control{margin-bottom:0;padding:0;border:none}:not(.input-group)>.bootstrap-select.form-control:not([class*=col-]){width:100%}.bootstrap-select.form-control.input-group-btn{z-index:auto}.bootstrap-select.form-control.input-group-btn:not(:first-child):not(:last-child)>.btn{border-radius:0}.bootstrap-select:not(.input-group-btn),.bootstrap-select[class*=col-]{float:none;display:inline-block;margin-left:0}.bootstrap-select.dropdown-menu-right,.bootstrap-select[class*=col-].dropdown-menu-right,.row .bootstrap-select[class*=col-].dropdown-menu-right{float:right}.form-group .bootstrap-select,.form-horizontal .bootstrap-select,.form-inline .bootstrap-select{margin-bottom:0}.form-group-lg .bootstrap-select.form-control,.form-group-sm .bootstrap-select.form-control{padding:0}.form-group-lg .bootstrap-select.form-control .dropdown-toggle,.form-group-sm .bootstrap-select.form-control .dropdown-toggle{height:100%;font-size:inherit;line-height:inherit;border-radius:inherit}.bootstrap-select.form-control-lg .dropdown-toggle,.bootstrap-select.form-control-sm .dropdown-toggle{font-size:inherit;line-height:inherit;border-radius:inherit}.bootstrap-select.form-control-sm .dropdown-toggle{padding:.25rem .5rem}.bootstrap-select.form-control-lg .dropdown-toggle{padding:.5rem 1rem}.form-inline .bootstrap-select .form-control{width:100%}.bootstrap-select.disabled,.bootstrap-select>.disabled{cursor:not-allowed}.bootstrap-select.disabled:focus,.bootstrap-select>.disabled:focus{outline:0!important}.bootstrap-select.bs-container{position:absolute;top:0;left:0;height:0!important;padding:0!important}.bootstrap-select.bs-container .dropdown-menu{z-index:1060}.bootstrap-select .dropdown-toggle:before{content:'';display:inline-block}.bootstrap-select .dropdown-toggle .filter-option{position:absolute;top:0;left:0;padding-top:inherit;padding-right:inherit;padding-bottom:inherit;padding-left:inherit;height:100%;width:100%;text-align:left}.bootstrap-select .dropdown-toggle .filter-option-inner{padding-right:inherit}.bootstrap-select .dropdown-toggle .filter-option-inner-inner{overflow:hidden}.bootstrap-select .dropdown-toggle .caret{position:absolute;top:50%;right:12px;margin-top:-2px;vertical-align:middle}.input-group .bootstrap-select.form-control .dropdown-toggle{border-radius:inherit}.bootstrap-select[class*=col-] .dropdown-toggle{width:100%}.bootstrap-select .dropdown-menu{min-width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.bootstrap-select .dropdown-menu>.inner:focus{outline:0!important}.bootstrap-select .dropdown-menu.inner{position:static;float:none;border:0;padding:0;margin:0;border-radius:0;-webkit-box-shadow:none;box-shadow:none}.bootstrap-select .dropdown-menu li{position:relative}.bootstrap-select .dropdown-menu li.active small{color:#fff}.bootstrap-select .dropdown-menu li.disabled a{cursor:not-allowed}.bootstrap-select .dropdown-menu li a{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.bootstrap-select .dropdown-menu li a.opt{position:relative;padding-left:2.25em}.bootstrap-select .dropdown-menu li a span.check-mark{display:none}.bootstrap-select .dropdown-menu li a span.text{display:inline-block}.bootstrap-select .dropdown-menu li small{padding-left:.5em}.bootstrap-select .dropdown-menu .notify{position:absolute;bottom:5px;width:96%;margin:0 2%;min-height:26px;padding:3px 5px;background:#f5f5f5;border:1px solid #e3e3e3;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.05);box-shadow:inset 0 1px 1px rgba(0,0,0,.05);pointer-events:none;opacity:.9;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.bootstrap-select .no-results{padding:3px;background:#f5f5f5;margin:0 5px;white-space:nowrap}.bootstrap-select.fit-width .dropdown-toggle .filter-option{position:static;display:inline;padding:0}.bootstrap-select.fit-width .dropdown-toggle .filter-option-inner,.bootstrap-select.fit-width .dropdown-toggle .filter-option-inner-inner{display:inline}.bootstrap-select.fit-width .dropdown-toggle .caret{position:static;top:auto;margin-top:-1px}.bootstrap-select.show-tick .dropdown-menu .selected span.check-mark{position:absolute;display:inline-block;right:15px;top:5px}.bootstrap-select.show-tick .dropdown-menu li a span.text{margin-right:34px}.bootstrap-select .bs-ok-default:after{content:'';display:block;width:.5em;height:1em;border-style:solid;border-width:0 .26em .26em 0;-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);-o-transform:rotate(45deg);transform:rotate(45deg)}.bootstrap-select.show-menu-arrow.open>.dropdown-toggle,.bootstrap-select.show-menu-arrow.show>.dropdown-toggle{z-index:1061}.bootstrap-select.show-menu-arrow .dropdown-toggle .filter-option:before{content:'';border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:7px solid rgba(204,204,204,.2);position:absolute;bottom:-4px;left:9px;display:none}.bootstrap-select.show-menu-arrow .dropdown-toggle .filter-option:after{content:'';border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:6px solid #fff;position:absolute;bottom:-4px;left:10px;display:none}.bootstrap-select.show-menu-arrow.dropup .dropdown-toggle .filter-option:before{bottom:auto;top:-4px;border-top:7px solid rgba(204,204,204,.2);border-bottom:0}.bootstrap-select.show-menu-arrow.dropup .dropdown-toggle .filter-option:after{bottom:auto;top:-4px;border-top:6px solid #fff;border-bottom:0}.bootstrap-select.show-menu-arrow.pull-right .dropdown-toggle .filter-option:before{right:12px;left:auto}.bootstrap-select.show-menu-arrow.pull-right .dropdown-toggle .filter-option:after{right:13px;left:auto}.bootstrap-select.show-menu-arrow.open>.dropdown-toggle .filter-option:after,.bootstrap-select.show-menu-arrow.open>.dropdown-toggle .filter-option:before,.bootstrap-select.show-menu-arrow.show>.dropdown-toggle .filter-option:after,.bootstrap-select.show-menu-arrow.show>.dropdown-toggle .filter-option:before{display:block}.bs-actionsbox,.bs-donebutton,.bs-searchbox{padding:4px 8px}.bs-actionsbox{width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.bs-actionsbox .btn-group button{width:50%}.bs-donebutton{float:left;width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.bs-donebutton .btn-group button{width:100%}.bs-searchbox+.bs-actionsbox{padding:0 8px 4px}.bs-searchbox .form-control{margin-bottom:0;width:100%;float:none}@charset "UTF-8"; -/*! + */.bootstrap-select>select.bs-select-hidden,select.bs-select-hidden,select.selectpicker{display:none!important}.bootstrap-select{width:220px\9}.bootstrap-select>.dropdown-toggle{position:relative;width:100%;z-index:1;text-align:right;white-space:nowrap}.bootstrap-select>.dropdown-toggle.bs-placeholder,.bootstrap-select>.dropdown-toggle.bs-placeholder:active,.bootstrap-select>.dropdown-toggle.bs-placeholder:focus,.bootstrap-select>.dropdown-toggle.bs-placeholder:hover{color:#999}.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-danger,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-danger:active,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-danger:focus,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-danger:hover,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-dark,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-dark:active,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-dark:focus,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-dark:hover,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-info,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-info:active,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-info:focus,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-info:hover,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-primary,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-primary:active,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-primary:focus,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-primary:hover,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-secondary,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-secondary:active,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-secondary:focus,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-secondary:hover,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-success,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-success:active,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-success:focus,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-success:hover{color:hsla(0,0%,100%,.5)}.bootstrap-select>select{position:absolute!important;bottom:0;left:50%;display:block!important;width:.5px!important;height:100%!important;padding:0!important;opacity:0!important;border:none}.bootstrap-select>select.mobile-device{top:0;left:0;display:block!important;width:100%!important;z-index:2}.bootstrap-select.is-invalid .dropdown-toggle,.error .bootstrap-select .dropdown-toggle,.has-error .bootstrap-select .dropdown-toggle,.was-validated .bootstrap-select .selectpicker:invalid+.dropdown-toggle{border-color:#b94a48}.bootstrap-select.is-valid .dropdown-toggle,.was-validated .bootstrap-select .selectpicker:valid+.dropdown-toggle{border-color:#28a745}.bootstrap-select.fit-width{width:auto!important}.bootstrap-select:not([class*=col-]):not([class*=form-control]):not(.input-group-btn){width:220px}.bootstrap-select .dropdown-toggle:focus{outline:thin dotted #333!important;outline:5px auto -webkit-focus-ring-color!important;outline-offset:-2px}.bootstrap-select.form-control{margin-bottom:0;padding:0;border:none}:not(.input-group)>.bootstrap-select.form-control:not([class*=col-]){width:100%}.bootstrap-select.form-control.input-group-btn{z-index:auto}.bootstrap-select.form-control.input-group-btn:not(:first-child):not(:last-child)>.btn{border-radius:0}.bootstrap-select:not(.input-group-btn),.bootstrap-select[class*=col-]{float:none;display:inline-block;margin-left:0}.bootstrap-select.dropdown-menu-right,.bootstrap-select[class*=col-].dropdown-menu-right,.row .bootstrap-select[class*=col-].dropdown-menu-right{float:right}.form-group .bootstrap-select,.form-horizontal .bootstrap-select,.form-inline .bootstrap-select{margin-bottom:0}.form-group-lg .bootstrap-select.form-control,.form-group-sm .bootstrap-select.form-control{padding:0}.form-group-lg .bootstrap-select.form-control .dropdown-toggle,.form-group-sm .bootstrap-select.form-control .dropdown-toggle{height:100%;font-size:inherit;line-height:inherit;border-radius:inherit}.bootstrap-select.form-control-lg .dropdown-toggle,.bootstrap-select.form-control-sm .dropdown-toggle{font-size:inherit;line-height:inherit;border-radius:inherit}.bootstrap-select.form-control-sm .dropdown-toggle{padding:.25rem .5rem}.bootstrap-select.form-control-lg .dropdown-toggle{padding:.5rem 1rem}.form-inline .bootstrap-select .form-control{width:100%}.bootstrap-select.disabled,.bootstrap-select>.disabled{cursor:not-allowed}.bootstrap-select.disabled:focus,.bootstrap-select>.disabled:focus{outline:0!important}.bootstrap-select.bs-container{position:absolute;top:0;left:0;height:0!important;padding:0!important}.bootstrap-select.bs-container .dropdown-menu{z-index:1060}.bootstrap-select .dropdown-toggle:before{content:"";display:inline-block}.bootstrap-select .dropdown-toggle .filter-option{position:absolute;top:0;left:0;padding-top:inherit;padding-right:inherit;padding-bottom:inherit;padding-left:inherit;height:100%;width:100%;text-align:left}.bootstrap-select .dropdown-toggle .filter-option-inner{padding-right:inherit}.bootstrap-select .dropdown-toggle .filter-option-inner-inner{overflow:hidden}.bootstrap-select .dropdown-toggle .caret{position:absolute;top:50%;right:12px;margin-top:-2px;vertical-align:middle}.input-group .bootstrap-select.form-control .dropdown-toggle{border-radius:inherit}.bootstrap-select[class*=col-] .dropdown-toggle{width:100%}.bootstrap-select .dropdown-menu{min-width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.bootstrap-select .dropdown-menu>.inner:focus{outline:0!important}.bootstrap-select .dropdown-menu.inner{position:static;float:none;border:0;padding:0;margin:0;border-radius:0;-webkit-box-shadow:none;box-shadow:none}.bootstrap-select .dropdown-menu li{position:relative}.bootstrap-select .dropdown-menu li.active small{color:#fff}.bootstrap-select .dropdown-menu li.disabled a{cursor:not-allowed}.bootstrap-select .dropdown-menu li a{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.bootstrap-select .dropdown-menu li a.opt{position:relative;padding-left:2.25em}.bootstrap-select .dropdown-menu li a span.check-mark{display:none}.bootstrap-select .dropdown-menu li a span.text{display:inline-block}.bootstrap-select .dropdown-menu li small{padding-left:.5em}.bootstrap-select .dropdown-menu .notify{position:absolute;bottom:5px;width:96%;margin:0 2%;min-height:26px;padding:3px 5px;background:#f5f5f5;border:1px solid #e3e3e3;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.05);box-shadow:inset 0 1px 1px rgba(0,0,0,.05);pointer-events:none;opacity:.9;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.bootstrap-select .no-results{padding:3px;background:#f5f5f5;margin:0 5px;white-space:nowrap}.bootstrap-select.fit-width .dropdown-toggle .filter-option{position:static;display:inline;padding:0}.bootstrap-select.fit-width .dropdown-toggle .filter-option-inner,.bootstrap-select.fit-width .dropdown-toggle .filter-option-inner-inner{display:inline}.bootstrap-select.fit-width .dropdown-toggle .caret{position:static;top:auto;margin-top:-1px}.bootstrap-select.show-tick .dropdown-menu .selected span.check-mark{position:absolute;display:inline-block;right:15px;top:5px}.bootstrap-select.show-tick .dropdown-menu li a span.text{margin-right:34px}.bootstrap-select .bs-ok-default:after{content:"";display:block;width:.5em;height:1em;border-style:solid;border-width:0 .26em .26em 0;-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);-o-transform:rotate(45deg);transform:rotate(45deg)}.bootstrap-select.show-menu-arrow.open>.dropdown-toggle,.bootstrap-select.show-menu-arrow.show>.dropdown-toggle{z-index:1061}.bootstrap-select.show-menu-arrow .dropdown-toggle .filter-option:before{content:"";border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:7px solid hsla(0,0%,80%,.2);position:absolute;bottom:-4px;left:9px;display:none}.bootstrap-select.show-menu-arrow .dropdown-toggle .filter-option:after{content:"";border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:6px solid #fff;position:absolute;bottom:-4px;left:10px;display:none}.bootstrap-select.show-menu-arrow.dropup .dropdown-toggle .filter-option:before{bottom:auto;top:-4px;border-top:7px solid hsla(0,0%,80%,.2);border-bottom:0}.bootstrap-select.show-menu-arrow.dropup .dropdown-toggle .filter-option:after{bottom:auto;top:-4px;border-top:6px solid #fff;border-bottom:0}.bootstrap-select.show-menu-arrow.pull-right .dropdown-toggle .filter-option:before{right:12px;left:auto}.bootstrap-select.show-menu-arrow.pull-right .dropdown-toggle .filter-option:after{right:13px;left:auto}.bootstrap-select.show-menu-arrow.open>.dropdown-toggle .filter-option:after,.bootstrap-select.show-menu-arrow.open>.dropdown-toggle .filter-option:before,.bootstrap-select.show-menu-arrow.show>.dropdown-toggle .filter-option:after,.bootstrap-select.show-menu-arrow.show>.dropdown-toggle .filter-option:before{display:block}.bs-actionsbox,.bs-donebutton,.bs-searchbox{padding:4px 8px}.bs-actionsbox{width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.bs-actionsbox .btn-group button{width:50%}.bs-donebutton{float:left;width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.bs-donebutton .btn-group button{width:100%}.bs-searchbox+.bs-actionsbox{padding:0 8px 4px}.bs-searchbox .form-control{margin-bottom:0;width:100%;float:none}/*! * Bootstrap v3.3.7 (http://getbootstrap.com) * Copyright 2011-2016 Twitter, Inc. * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) */ -/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */ -html { - font-family: sans-serif; - -ms-text-size-adjust: 100%; - -webkit-text-size-adjust: 100%; } +/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}h1{font-size:2em;margin:.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-appearance:textfield;box-sizing:content-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}textarea{overflow:auto}optgroup{font-weight:700}table{border-collapse:collapse;border-spacing:0}td,th{padding:0} -body { - margin: 0; } - -article, -aside, -details, -figcaption, -figure, -footer, -header, -hgroup, -main, -menu, -nav, -section, -summary { - display: block; } - -audio, -canvas, -progress, -video { - display: inline-block; - vertical-align: baseline; } - -audio:not([controls]) { - display: none; - height: 0; } - -[hidden], -template { - display: none; } - -a { - background-color: transparent; } - -a:active, -a:hover { - outline: 0; } - -abbr[title] { - border-bottom: 1px dotted; } - -b, -strong { - font-weight: bold; } - -dfn { - font-style: italic; } - -h1 { - font-size: 2em; - margin: 0.67em 0; } - -mark { - background: #ff0; - color: #000; } - -small { - font-size: 80%; } - -sub, -sup { - font-size: 75%; - line-height: 0; - position: relative; - vertical-align: baseline; } - -sup { - top: -0.5em; } - -sub { - bottom: -0.25em; } - -img { - border: 0; } - -svg:not(:root) { - overflow: hidden; } - -figure { - margin: 1em 40px; } - -hr { - box-sizing: content-box; - height: 0; } - -pre { - overflow: auto; } - -code, -kbd, -pre, -samp { - font-family: monospace, monospace; - font-size: 1em; } - -button, -input, -optgroup, -select, -textarea { - color: inherit; - font: inherit; - margin: 0; } - -button { - overflow: visible; } - -button, -select { - text-transform: none; } - -button, -html input[type="button"], -input[type="reset"], -input[type="submit"] { - -webkit-appearance: button; - cursor: pointer; } - -button[disabled], -html input[disabled] { - cursor: default; } - -button::-moz-focus-inner, -input::-moz-focus-inner { - border: 0; - padding: 0; } - -input { - line-height: normal; } - -input[type="checkbox"], -input[type="radio"] { - box-sizing: border-box; - padding: 0; } - -input[type="number"]::-webkit-inner-spin-button, -input[type="number"]::-webkit-outer-spin-button { - height: auto; } - -input[type="search"] { - -webkit-appearance: textfield; - box-sizing: content-box; } - -input[type="search"]::-webkit-search-cancel-button, -input[type="search"]::-webkit-search-decoration { - -webkit-appearance: none; } - -fieldset { - border: 1px solid #c0c0c0; - margin: 0 2px; - padding: 0.35em 0.625em 0.75em; } - -legend { - border: 0; - padding: 0; } - -textarea { - overflow: auto; } - -optgroup { - font-weight: bold; } - -table { - border-collapse: collapse; - border-spacing: 0; } - -td, -th { - padding: 0; } - -/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */ -@media print { - *, - *:before, - *:after { - background: transparent !important; - color: #000 !important; - box-shadow: none !important; - text-shadow: none !important; } - a, - a:visited { - text-decoration: underline; } - a[href]:after { - content: " (" attr(href) ")"; } - abbr[title]:after { - content: " (" attr(title) ")"; } - a[href^="#"]:after, - a[href^="javascript:"]:after { - content: ""; } - pre, - blockquote { - border: 1px solid #999; - page-break-inside: avoid; } - thead { - display: table-header-group; } - tr, - img { - page-break-inside: avoid; } - img { - max-width: 100% !important; } - p, - h2, - h3 { - orphans: 3; - widows: 3; } - h2, - h3 { - page-break-after: avoid; } - .navbar { - display: none; } - .btn > .caret, - .dropup > .btn > .caret { - border-top-color: #000 !important; } - .label { - border: 1px solid #000; } - .table { - border-collapse: collapse !important; } - .table td, - .table th { - background-color: #fff !important; } - .table-bordered th, - .table-bordered td { - border: 1px solid #ddd !important; } } - -@font-face { - font-family: 'Glyphicons Halflings'; - src: url(./fonts/glyphicons-halflings-regular.eot?f4769f9b); - src: url(./fonts/glyphicons-halflings-regular.eot?f4769f9b?#iefix) format("embedded-opentype"), url(./fonts/glyphicons-halflings-regular.woff2?448c34a5) format("woff2"), url(./fonts/glyphicons-halflings-regular.woff?fa277232) format("woff"), url(./fonts/glyphicons-halflings-regular.ttf?e18bbf61) format("truetype"), url(./images/glyphicons-halflings-regular.svg?89889688#glyphicons_halflingsregular) format("svg"); } - -.glyphicon { - position: relative; - top: 1px; - display: inline-block; - font-family: 'Glyphicons Halflings'; - font-style: normal; - font-weight: normal; - line-height: 1; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; } - -.glyphicon-asterisk:before { - content: "*"; } - -.glyphicon-plus:before { - content: "+"; } - -.glyphicon-euro:before, -.glyphicon-eur:before { - content: "\20AC"; } - -.glyphicon-minus:before { - content: "\2212"; } - -.glyphicon-cloud:before { - content: "\2601"; } - -.glyphicon-envelope:before { - content: "\2709"; } - -.glyphicon-pencil:before { - content: "\270F"; } - -.glyphicon-glass:before { - content: "\E001"; } - -.glyphicon-music:before { - content: "\E002"; } - -.glyphicon-search:before { - content: "\E003"; } - -.glyphicon-heart:before { - content: "\E005"; } - -.glyphicon-star:before { - content: "\E006"; } - -.glyphicon-star-empty:before { - content: "\E007"; } - -.glyphicon-user:before { - content: "\E008"; } - -.glyphicon-film:before { - content: "\E009"; } - -.glyphicon-th-large:before { - content: "\E010"; } - -.glyphicon-th:before { - content: "\E011"; } - -.glyphicon-th-list:before { - content: "\E012"; } - -.glyphicon-ok:before { - content: "\E013"; } - -.glyphicon-remove:before { - content: "\E014"; } - -.glyphicon-zoom-in:before { - content: "\E015"; } - -.glyphicon-zoom-out:before { - content: "\E016"; } - -.glyphicon-off:before { - content: "\E017"; } - -.glyphicon-signal:before { - content: "\E018"; } - -.glyphicon-cog:before { - content: "\E019"; } - -.glyphicon-trash:before { - content: "\E020"; } - -.glyphicon-home:before { - content: "\E021"; } - -.glyphicon-file:before { - content: "\E022"; } - -.glyphicon-time:before { - content: "\E023"; } - -.glyphicon-road:before { - content: "\E024"; } - -.glyphicon-download-alt:before { - content: "\E025"; } - -.glyphicon-download:before { - content: "\E026"; } - -.glyphicon-upload:before { - content: "\E027"; } - -.glyphicon-inbox:before { - content: "\E028"; } - -.glyphicon-play-circle:before { - content: "\E029"; } - -.glyphicon-repeat:before { - content: "\E030"; } - -.glyphicon-refresh:before { - content: "\E031"; } - -.glyphicon-list-alt:before { - content: "\E032"; } - -.glyphicon-lock:before { - content: "\E033"; } - -.glyphicon-flag:before { - content: "\E034"; } - -.glyphicon-headphones:before { - content: "\E035"; } - -.glyphicon-volume-off:before { - content: "\E036"; } - -.glyphicon-volume-down:before { - content: "\E037"; } - -.glyphicon-volume-up:before { - content: "\E038"; } - -.glyphicon-qrcode:before { - content: "\E039"; } - -.glyphicon-barcode:before { - content: "\E040"; } - -.glyphicon-tag:before { - content: "\E041"; } - -.glyphicon-tags:before { - content: "\E042"; } - -.glyphicon-book:before { - content: "\E043"; } - -.glyphicon-bookmark:before { - content: "\E044"; } - -.glyphicon-print:before { - content: "\E045"; } - -.glyphicon-camera:before { - content: "\E046"; } - -.glyphicon-font:before { - content: "\E047"; } - -.glyphicon-bold:before { - content: "\E048"; } - -.glyphicon-italic:before { - content: "\E049"; } - -.glyphicon-text-height:before { - content: "\E050"; } - -.glyphicon-text-width:before { - content: "\E051"; } - -.glyphicon-align-left:before { - content: "\E052"; } - -.glyphicon-align-center:before { - content: "\E053"; } - -.glyphicon-align-right:before { - content: "\E054"; } - -.glyphicon-align-justify:before { - content: "\E055"; } - -.glyphicon-list:before { - content: "\E056"; } - -.glyphicon-indent-left:before { - content: "\E057"; } - -.glyphicon-indent-right:before { - content: "\E058"; } - -.glyphicon-facetime-video:before { - content: "\E059"; } - -.glyphicon-picture:before { - content: "\E060"; } - -.glyphicon-map-marker:before { - content: "\E062"; } - -.glyphicon-adjust:before { - content: "\E063"; } - -.glyphicon-tint:before { - content: "\E064"; } - -.glyphicon-edit:before { - content: "\E065"; } - -.glyphicon-share:before { - content: "\E066"; } - -.glyphicon-check:before { - content: "\E067"; } - -.glyphicon-move:before { - content: "\E068"; } - -.glyphicon-step-backward:before { - content: "\E069"; } - -.glyphicon-fast-backward:before { - content: "\E070"; } - -.glyphicon-backward:before { - content: "\E071"; } - -.glyphicon-play:before { - content: "\E072"; } - -.glyphicon-pause:before { - content: "\E073"; } - -.glyphicon-stop:before { - content: "\E074"; } - -.glyphicon-forward:before { - content: "\E075"; } - -.glyphicon-fast-forward:before { - content: "\E076"; } - -.glyphicon-step-forward:before { - content: "\E077"; } - -.glyphicon-eject:before { - content: "\E078"; } - -.glyphicon-chevron-left:before { - content: "\E079"; } - -.glyphicon-chevron-right:before { - content: "\E080"; } - -.glyphicon-plus-sign:before { - content: "\E081"; } - -.glyphicon-minus-sign:before { - content: "\E082"; } - -.glyphicon-remove-sign:before { - content: "\E083"; } - -.glyphicon-ok-sign:before { - content: "\E084"; } - -.glyphicon-question-sign:before { - content: "\E085"; } - -.glyphicon-info-sign:before { - content: "\E086"; } - -.glyphicon-screenshot:before { - content: "\E087"; } - -.glyphicon-remove-circle:before { - content: "\E088"; } - -.glyphicon-ok-circle:before { - content: "\E089"; } - -.glyphicon-ban-circle:before { - content: "\E090"; } - -.glyphicon-arrow-left:before { - content: "\E091"; } - -.glyphicon-arrow-right:before { - content: "\E092"; } - -.glyphicon-arrow-up:before { - content: "\E093"; } - -.glyphicon-arrow-down:before { - content: "\E094"; } - -.glyphicon-share-alt:before { - content: "\E095"; } - -.glyphicon-resize-full:before { - content: "\E096"; } - -.glyphicon-resize-small:before { - content: "\E097"; } - -.glyphicon-exclamation-sign:before { - content: "\E101"; } - -.glyphicon-gift:before { - content: "\E102"; } - -.glyphicon-leaf:before { - content: "\E103"; } - -.glyphicon-fire:before { - content: "\E104"; } - -.glyphicon-eye-open:before { - content: "\E105"; } - -.glyphicon-eye-close:before { - content: "\E106"; } - -.glyphicon-warning-sign:before { - content: "\E107"; } - -.glyphicon-plane:before { - content: "\E108"; } - -.glyphicon-calendar:before { - content: "\E109"; } - -.glyphicon-random:before { - content: "\E110"; } - -.glyphicon-comment:before { - content: "\E111"; } - -.glyphicon-magnet:before { - content: "\E112"; } - -.glyphicon-chevron-up:before { - content: "\E113"; } - -.glyphicon-chevron-down:before { - content: "\E114"; } - -.glyphicon-retweet:before { - content: "\E115"; } - -.glyphicon-shopping-cart:before { - content: "\E116"; } - -.glyphicon-folder-close:before { - content: "\E117"; } - -.glyphicon-folder-open:before { - content: "\E118"; } - -.glyphicon-resize-vertical:before { - content: "\E119"; } - -.glyphicon-resize-horizontal:before { - content: "\E120"; } - -.glyphicon-hdd:before { - content: "\E121"; } - -.glyphicon-bullhorn:before { - content: "\E122"; } - -.glyphicon-bell:before { - content: "\E123"; } - -.glyphicon-certificate:before { - content: "\E124"; } - -.glyphicon-thumbs-up:before { - content: "\E125"; } - -.glyphicon-thumbs-down:before { - content: "\E126"; } - -.glyphicon-hand-right:before { - content: "\E127"; } - -.glyphicon-hand-left:before { - content: "\E128"; } - -.glyphicon-hand-up:before { - content: "\E129"; } - -.glyphicon-hand-down:before { - content: "\E130"; } - -.glyphicon-circle-arrow-right:before { - content: "\E131"; } - -.glyphicon-circle-arrow-left:before { - content: "\E132"; } - -.glyphicon-circle-arrow-up:before { - content: "\E133"; } - -.glyphicon-circle-arrow-down:before { - content: "\E134"; } - -.glyphicon-globe:before { - content: "\E135"; } - -.glyphicon-wrench:before { - content: "\E136"; } - -.glyphicon-tasks:before { - content: "\E137"; } - -.glyphicon-filter:before { - content: "\E138"; } - -.glyphicon-briefcase:before { - content: "\E139"; } - -.glyphicon-fullscreen:before { - content: "\E140"; } - -.glyphicon-dashboard:before { - content: "\E141"; } - -.glyphicon-paperclip:before { - content: "\E142"; } - -.glyphicon-heart-empty:before { - content: "\E143"; } - -.glyphicon-link:before { - content: "\E144"; } - -.glyphicon-phone:before { - content: "\E145"; } - -.glyphicon-pushpin:before { - content: "\E146"; } - -.glyphicon-usd:before { - content: "\E148"; } - -.glyphicon-gbp:before { - content: "\E149"; } - -.glyphicon-sort:before { - content: "\E150"; } - -.glyphicon-sort-by-alphabet:before { - content: "\E151"; } - -.glyphicon-sort-by-alphabet-alt:before { - content: "\E152"; } - -.glyphicon-sort-by-order:before { - content: "\E153"; } - -.glyphicon-sort-by-order-alt:before { - content: "\E154"; } - -.glyphicon-sort-by-attributes:before { - content: "\E155"; } - -.glyphicon-sort-by-attributes-alt:before { - content: "\E156"; } - -.glyphicon-unchecked:before { - content: "\E157"; } - -.glyphicon-expand:before { - content: "\E158"; } - -.glyphicon-collapse-down:before { - content: "\E159"; } - -.glyphicon-collapse-up:before { - content: "\E160"; } - -.glyphicon-log-in:before { - content: "\E161"; } - -.glyphicon-flash:before { - content: "\E162"; } - -.glyphicon-log-out:before { - content: "\E163"; } - -.glyphicon-new-window:before { - content: "\E164"; } - -.glyphicon-record:before { - content: "\E165"; } - -.glyphicon-save:before { - content: "\E166"; } - -.glyphicon-open:before { - content: "\E167"; } - -.glyphicon-saved:before { - content: "\E168"; } - -.glyphicon-import:before { - content: "\E169"; } - -.glyphicon-export:before { - content: "\E170"; } - -.glyphicon-send:before { - content: "\E171"; } - -.glyphicon-floppy-disk:before { - content: "\E172"; } - -.glyphicon-floppy-saved:before { - content: "\E173"; } - -.glyphicon-floppy-remove:before { - content: "\E174"; } - -.glyphicon-floppy-save:before { - content: "\E175"; } - -.glyphicon-floppy-open:before { - content: "\E176"; } - -.glyphicon-credit-card:before { - content: "\E177"; } - -.glyphicon-transfer:before { - content: "\E178"; } - -.glyphicon-cutlery:before { - content: "\E179"; } - -.glyphicon-header:before { - content: "\E180"; } - -.glyphicon-compressed:before { - content: "\E181"; } - -.glyphicon-earphone:before { - content: "\E182"; } - -.glyphicon-phone-alt:before { - content: "\E183"; } - -.glyphicon-tower:before { - content: "\E184"; } - -.glyphicon-stats:before { - content: "\E185"; } - -.glyphicon-sd-video:before { - content: "\E186"; } - -.glyphicon-hd-video:before { - content: "\E187"; } - -.glyphicon-subtitles:before { - content: "\E188"; } - -.glyphicon-sound-stereo:before { - content: "\E189"; } - -.glyphicon-sound-dolby:before { - content: "\E190"; } - -.glyphicon-sound-5-1:before { - content: "\E191"; } - -.glyphicon-sound-6-1:before { - content: "\E192"; } - -.glyphicon-sound-7-1:before { - content: "\E193"; } - -.glyphicon-copyright-mark:before { - content: "\E194"; } - -.glyphicon-registration-mark:before { - content: "\E195"; } - -.glyphicon-cloud-download:before { - content: "\E197"; } - -.glyphicon-cloud-upload:before { - content: "\E198"; } - -.glyphicon-tree-conifer:before { - content: "\E199"; } - -.glyphicon-tree-deciduous:before { - content: "\E200"; } - -.glyphicon-cd:before { - content: "\E201"; } - -.glyphicon-save-file:before { - content: "\E202"; } - -.glyphicon-open-file:before { - content: "\E203"; } - -.glyphicon-level-up:before { - content: "\E204"; } - -.glyphicon-copy:before { - content: "\E205"; } - -.glyphicon-paste:before { - content: "\E206"; } - -.glyphicon-alert:before { - content: "\E209"; } - -.glyphicon-equalizer:before { - content: "\E210"; } - -.glyphicon-king:before { - content: "\E211"; } - -.glyphicon-queen:before { - content: "\E212"; } - -.glyphicon-pawn:before { - content: "\E213"; } - -.glyphicon-bishop:before { - content: "\E214"; } - -.glyphicon-knight:before { - content: "\E215"; } - -.glyphicon-baby-formula:before { - content: "\E216"; } - -.glyphicon-tent:before { - content: "\26FA"; } - -.glyphicon-blackboard:before { - content: "\E218"; } - -.glyphicon-bed:before { - content: "\E219"; } - -.glyphicon-apple:before { - content: "\F8FF"; } - -.glyphicon-erase:before { - content: "\E221"; } - -.glyphicon-hourglass:before { - content: "\231B"; } - -.glyphicon-lamp:before { - content: "\E223"; } - -.glyphicon-duplicate:before { - content: "\E224"; } - -.glyphicon-piggy-bank:before { - content: "\E225"; } - -.glyphicon-scissors:before { - content: "\E226"; } - -.glyphicon-bitcoin:before { - content: "\E227"; } - -.glyphicon-btc:before { - content: "\E227"; } - -.glyphicon-xbt:before { - content: "\E227"; } - -.glyphicon-yen:before { - content: "\A5"; } - -.glyphicon-jpy:before { - content: "\A5"; } - -.glyphicon-ruble:before { - content: "\20BD"; } - -.glyphicon-rub:before { - content: "\20BD"; } - -.glyphicon-scale:before { - content: "\E230"; } - -.glyphicon-ice-lolly:before { - content: "\E231"; } - -.glyphicon-ice-lolly-tasted:before { - content: "\E232"; } - -.glyphicon-education:before { - content: "\E233"; } - -.glyphicon-option-horizontal:before { - content: "\E234"; } - -.glyphicon-option-vertical:before { - content: "\E235"; } - -.glyphicon-menu-hamburger:before { - content: "\E236"; } - -.glyphicon-modal-window:before { - content: "\E237"; } - -.glyphicon-oil:before { - content: "\E238"; } - -.glyphicon-grain:before { - content: "\E239"; } - -.glyphicon-sunglasses:before { - content: "\E240"; } - -.glyphicon-text-size:before { - content: "\E241"; } - -.glyphicon-text-color:before { - content: "\E242"; } - -.glyphicon-text-background:before { - content: "\E243"; } - -.glyphicon-object-align-top:before { - content: "\E244"; } - -.glyphicon-object-align-bottom:before { - content: "\E245"; } - -.glyphicon-object-align-horizontal:before { - content: "\E246"; } - -.glyphicon-object-align-left:before { - content: "\E247"; } - -.glyphicon-object-align-vertical:before { - content: "\E248"; } - -.glyphicon-object-align-right:before { - content: "\E249"; } - -.glyphicon-triangle-right:before { - content: "\E250"; } - -.glyphicon-triangle-left:before { - content: "\E251"; } - -.glyphicon-triangle-bottom:before { - content: "\E252"; } - -.glyphicon-triangle-top:before { - content: "\E253"; } - -.glyphicon-console:before { - content: "\E254"; } - -.glyphicon-superscript:before { - content: "\E255"; } - -.glyphicon-subscript:before { - content: "\E256"; } - -.glyphicon-menu-left:before { - content: "\E257"; } - -.glyphicon-menu-right:before { - content: "\E258"; } - -.glyphicon-menu-down:before { - content: "\E259"; } - -.glyphicon-menu-up:before { - content: "\E260"; } - -* { - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; } - -*:before, -*:after { - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; } - -html { - font-size: 10px; - -webkit-tap-highlight-color: rgba(0, 0, 0, 0); } - -body { - font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; - font-size: 14px; - line-height: 1.42857; - color: #333333; - background-color: #fff; } - -input, -button, -select, -textarea { - font-family: inherit; - font-size: inherit; - line-height: inherit; } - -a { - color: #337ab7; - text-decoration: none; } - a:hover, a:focus { - color: #23527c; - text-decoration: underline; } - a:focus { - outline: 5px auto -webkit-focus-ring-color; - outline-offset: -2px; } - -figure { - margin: 0; } - -img { - vertical-align: middle; } - -.img-responsive { - display: block; - max-width: 100%; - height: auto; } - -.img-rounded { - border-radius: 6px; } - -.img-thumbnail { - padding: 4px; - line-height: 1.42857; - background-color: #fff; - border: 1px solid #ddd; - border-radius: 4px; - -webkit-transition: all 0.2s ease-in-out; - -o-transition: all 0.2s ease-in-out; - transition: all 0.2s ease-in-out; - display: inline-block; - max-width: 100%; - height: auto; } - -.img-circle { - border-radius: 50%; } - -hr { - margin-top: 20px; - margin-bottom: 20px; - border: 0; - border-top: 1px solid #eeeeee; } - -.sr-only { - position: absolute; - width: 1px; - height: 1px; - margin: -1px; - padding: 0; - overflow: hidden; - clip: rect(0, 0, 0, 0); - border: 0; } - -.sr-only-focusable:active, .sr-only-focusable:focus { - position: static; - width: auto; - height: auto; - margin: 0; - overflow: visible; - clip: auto; } - -[role="button"] { - cursor: pointer; } - -h1, h2, h3, h4, h5, h6, -.h1, .h2, .h3, .h4, .h5, .h6 { - font-family: inherit; - font-weight: 500; - line-height: 1.1; - color: inherit; } - h1 small, - h1 .small, h2 small, - h2 .small, h3 small, - h3 .small, h4 small, - h4 .small, h5 small, - h5 .small, h6 small, - h6 .small, - .h1 small, - .h1 .small, .h2 small, - .h2 .small, .h3 small, - .h3 .small, .h4 small, - .h4 .small, .h5 small, - .h5 .small, .h6 small, - .h6 .small { - font-weight: normal; - line-height: 1; - color: #777777; } - -h1, .h1, -h2, .h2, -h3, .h3 { - margin-top: 20px; - margin-bottom: 10px; } - h1 small, - h1 .small, .h1 small, - .h1 .small, - h2 small, - h2 .small, .h2 small, - .h2 .small, - h3 small, - h3 .small, .h3 small, - .h3 .small { - font-size: 65%; } - -h4, .h4, -h5, .h5, -h6, .h6 { - margin-top: 10px; - margin-bottom: 10px; } - h4 small, - h4 .small, .h4 small, - .h4 .small, - h5 small, - h5 .small, .h5 small, - .h5 .small, - h6 small, - h6 .small, .h6 small, - .h6 .small { - font-size: 75%; } - -h1, .h1 { - font-size: 36px; } - -h2, .h2 { - font-size: 30px; } - -h3, .h3 { - font-size: 24px; } - -h4, .h4 { - font-size: 18px; } - -h5, .h5 { - font-size: 14px; } - -h6, .h6 { - font-size: 12px; } - -p { - margin: 0 0 10px; } - -.lead { - margin-bottom: 20px; - font-size: 16px; - font-weight: 300; - line-height: 1.4; } - @media (min-width: 768px) { - .lead { - font-size: 21px; } } - -small, -.small { - font-size: 85%; } - -mark, -.mark { - background-color: #fcf8e3; - padding: .2em; } - -.text-left { - text-align: left; } - -.text-right { - text-align: right; } - -.text-center { - text-align: center; } - -.text-justify { - text-align: justify; } - -.text-nowrap { - white-space: nowrap; } - -.text-lowercase { - text-transform: lowercase; } - -.text-uppercase, .initialism { - text-transform: uppercase; } - -.text-capitalize { - text-transform: capitalize; } - -.text-muted { - color: #777777; } - -.text-primary { - color: #337ab7; } - -a.text-primary:hover, -a.text-primary:focus { - color: #286090; } - -.text-success { - color: #3c763d; } - -a.text-success:hover, -a.text-success:focus { - color: #2b542c; } - -.text-info { - color: #31708f; } - -a.text-info:hover, -a.text-info:focus { - color: #245269; } - -.text-warning { - color: #8a6d3b; } - -a.text-warning:hover, -a.text-warning:focus { - color: #66512c; } - -.text-danger { - color: #a94442; } - -a.text-danger:hover, -a.text-danger:focus { - color: #843534; } - -.bg-primary { - color: #fff; } - -.bg-primary { - background-color: #337ab7; } - -a.bg-primary:hover, -a.bg-primary:focus { - background-color: #286090; } - -.bg-success { - background-color: #dff0d8; } - -a.bg-success:hover, -a.bg-success:focus { - background-color: #c1e2b3; } - -.bg-info { - background-color: #d9edf7; } - -a.bg-info:hover, -a.bg-info:focus { - background-color: #afd9ee; } - -.bg-warning { - background-color: #fcf8e3; } - -a.bg-warning:hover, -a.bg-warning:focus { - background-color: #f7ecb5; } - -.bg-danger { - background-color: #f2dede; } - -a.bg-danger:hover, -a.bg-danger:focus { - background-color: #e4b9b9; } - -.page-header { - padding-bottom: 9px; - margin: 40px 0 20px; - border-bottom: 1px solid #eeeeee; } - -ul, -ol { - margin-top: 0; - margin-bottom: 10px; } - ul ul, - ul ol, - ol ul, - ol ol { - margin-bottom: 0; } - -.list-unstyled { - padding-left: 0; - list-style: none; } - -.list-inline { - padding-left: 0; - list-style: none; - margin-left: -5px; } - .list-inline > li { - display: inline-block; - padding-left: 5px; - padding-right: 5px; } - -dl { - margin-top: 0; - margin-bottom: 20px; } - -dt, -dd { - line-height: 1.42857; } - -dt { - font-weight: bold; } - -dd { - margin-left: 0; } - -.dl-horizontal dd:before, .dl-horizontal dd:after { - content: " "; - display: table; } - -.dl-horizontal dd:after { - clear: both; } - -@media (min-width: 768px) { - .dl-horizontal dt { - float: left; - width: 160px; - clear: left; - text-align: right; - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; } - .dl-horizontal dd { - margin-left: 180px; } } - -abbr[title], -abbr[data-original-title] { - cursor: help; - border-bottom: 1px dotted #777777; } - -.initialism { - font-size: 90%; } - -blockquote { - padding: 10px 20px; - margin: 0 0 20px; - font-size: 17.5px; - border-left: 5px solid #eeeeee; } - blockquote p:last-child, - blockquote ul:last-child, - blockquote ol:last-child { - margin-bottom: 0; } - blockquote footer, - blockquote small, - blockquote .small { - display: block; - font-size: 80%; - line-height: 1.42857; - color: #777777; } - blockquote footer:before, - blockquote small:before, - blockquote .small:before { - content: '\2014 \A0'; } - -.blockquote-reverse, -blockquote.pull-right { - padding-right: 15px; - padding-left: 0; - border-right: 5px solid #eeeeee; - border-left: 0; - text-align: right; } - .blockquote-reverse footer:before, - .blockquote-reverse small:before, - .blockquote-reverse .small:before, - blockquote.pull-right footer:before, - blockquote.pull-right small:before, - blockquote.pull-right .small:before { - content: ''; } - .blockquote-reverse footer:after, - .blockquote-reverse small:after, - .blockquote-reverse .small:after, - blockquote.pull-right footer:after, - blockquote.pull-right small:after, - blockquote.pull-right .small:after { - content: '\A0 \2014'; } - -address { - margin-bottom: 20px; - font-style: normal; - line-height: 1.42857; } - -code, -kbd, -pre, -samp { - font-family: Menlo, Monaco, Consolas, "Courier New", monospace; } - -code { - padding: 2px 4px; - font-size: 90%; - color: #c7254e; - background-color: #f9f2f4; - border-radius: 4px; } - -kbd { - padding: 2px 4px; - font-size: 90%; - color: #fff; - background-color: #333; - border-radius: 3px; - box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.25); } - kbd kbd { - padding: 0; - font-size: 100%; - font-weight: bold; - box-shadow: none; } - -pre { - display: block; - padding: 9.5px; - margin: 0 0 10px; - font-size: 13px; - line-height: 1.42857; - word-break: break-all; - word-wrap: break-word; - color: #333333; - background-color: #f5f5f5; - border: 1px solid #ccc; - border-radius: 4px; } - pre code { - padding: 0; - font-size: inherit; - color: inherit; - white-space: pre-wrap; - background-color: transparent; - border-radius: 0; } - -.pre-scrollable { - max-height: 340px; - overflow-y: scroll; } - -.container { - margin-right: auto; - margin-left: auto; - padding-left: 15px; - padding-right: 15px; } - .container:before, .container:after { - content: " "; - display: table; } - .container:after { - clear: both; } - @media (min-width: 768px) { - .container { - width: 750px; } } - @media (min-width: 992px) { - .container { - width: 970px; } } - @media (min-width: 1200px) { - .container { - width: 1170px; } } - -.container-fluid { - margin-right: auto; - margin-left: auto; - padding-left: 15px; - padding-right: 15px; } - .container-fluid:before, .container-fluid:after { - content: " "; - display: table; } - .container-fluid:after { - clear: both; } - -.row { - margin-left: -15px; - margin-right: -15px; } - .row:before, .row:after { - content: " "; - display: table; } - .row:after { - clear: both; } - -.col-xs-1, .col-sm-1, .col-md-1, .col-lg-1, .col-xs-2, .col-sm-2, .col-md-2, .col-lg-2, .col-xs-3, .col-sm-3, .col-md-3, .col-lg-3, .col-xs-4, .col-sm-4, .col-md-4, .col-lg-4, .col-xs-5, .col-sm-5, .col-md-5, .col-lg-5, .col-xs-6, .col-sm-6, .col-md-6, .col-lg-6, .col-xs-7, .col-sm-7, .col-md-7, .col-lg-7, .col-xs-8, .col-sm-8, .col-md-8, .col-lg-8, .col-xs-9, .col-sm-9, .col-md-9, .col-lg-9, .col-xs-10, .col-sm-10, .col-md-10, .col-lg-10, .col-xs-11, .col-sm-11, .col-md-11, .col-lg-11, .col-xs-12, .col-sm-12, .col-md-12, .col-lg-12 { - position: relative; - min-height: 1px; - padding-left: 15px; - padding-right: 15px; } - -.col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11, .col-xs-12 { - float: left; } - -.col-xs-1 { - width: 8.33333%; } - -.col-xs-2 { - width: 16.66667%; } - -.col-xs-3 { - width: 25%; } - -.col-xs-4 { - width: 33.33333%; } - -.col-xs-5 { - width: 41.66667%; } - -.col-xs-6 { - width: 50%; } - -.col-xs-7 { - width: 58.33333%; } - -.col-xs-8 { - width: 66.66667%; } - -.col-xs-9 { - width: 75%; } - -.col-xs-10 { - width: 83.33333%; } - -.col-xs-11 { - width: 91.66667%; } - -.col-xs-12 { - width: 100%; } - -.col-xs-pull-0 { - right: auto; } - -.col-xs-pull-1 { - right: 8.33333%; } - -.col-xs-pull-2 { - right: 16.66667%; } - -.col-xs-pull-3 { - right: 25%; } - -.col-xs-pull-4 { - right: 33.33333%; } - -.col-xs-pull-5 { - right: 41.66667%; } - -.col-xs-pull-6 { - right: 50%; } - -.col-xs-pull-7 { - right: 58.33333%; } - -.col-xs-pull-8 { - right: 66.66667%; } - -.col-xs-pull-9 { - right: 75%; } - -.col-xs-pull-10 { - right: 83.33333%; } - -.col-xs-pull-11 { - right: 91.66667%; } - -.col-xs-pull-12 { - right: 100%; } - -.col-xs-push-0 { - left: auto; } - -.col-xs-push-1 { - left: 8.33333%; } - -.col-xs-push-2 { - left: 16.66667%; } - -.col-xs-push-3 { - left: 25%; } - -.col-xs-push-4 { - left: 33.33333%; } - -.col-xs-push-5 { - left: 41.66667%; } - -.col-xs-push-6 { - left: 50%; } - -.col-xs-push-7 { - left: 58.33333%; } - -.col-xs-push-8 { - left: 66.66667%; } - -.col-xs-push-9 { - left: 75%; } - -.col-xs-push-10 { - left: 83.33333%; } - -.col-xs-push-11 { - left: 91.66667%; } - -.col-xs-push-12 { - left: 100%; } - -.col-xs-offset-0 { - margin-left: 0%; } - -.col-xs-offset-1 { - margin-left: 8.33333%; } - -.col-xs-offset-2 { - margin-left: 16.66667%; } - -.col-xs-offset-3 { - margin-left: 25%; } - -.col-xs-offset-4 { - margin-left: 33.33333%; } - -.col-xs-offset-5 { - margin-left: 41.66667%; } - -.col-xs-offset-6 { - margin-left: 50%; } - -.col-xs-offset-7 { - margin-left: 58.33333%; } - -.col-xs-offset-8 { - margin-left: 66.66667%; } - -.col-xs-offset-9 { - margin-left: 75%; } - -.col-xs-offset-10 { - margin-left: 83.33333%; } - -.col-xs-offset-11 { - margin-left: 91.66667%; } - -.col-xs-offset-12 { - margin-left: 100%; } - -@media (min-width: 768px) { - .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12 { - float: left; } - .col-sm-1 { - width: 8.33333%; } - .col-sm-2 { - width: 16.66667%; } - .col-sm-3 { - width: 25%; } - .col-sm-4 { - width: 33.33333%; } - .col-sm-5 { - width: 41.66667%; } - .col-sm-6 { - width: 50%; } - .col-sm-7 { - width: 58.33333%; } - .col-sm-8 { - width: 66.66667%; } - .col-sm-9 { - width: 75%; } - .col-sm-10 { - width: 83.33333%; } - .col-sm-11 { - width: 91.66667%; } - .col-sm-12 { - width: 100%; } - .col-sm-pull-0 { - right: auto; } - .col-sm-pull-1 { - right: 8.33333%; } - .col-sm-pull-2 { - right: 16.66667%; } - .col-sm-pull-3 { - right: 25%; } - .col-sm-pull-4 { - right: 33.33333%; } - .col-sm-pull-5 { - right: 41.66667%; } - .col-sm-pull-6 { - right: 50%; } - .col-sm-pull-7 { - right: 58.33333%; } - .col-sm-pull-8 { - right: 66.66667%; } - .col-sm-pull-9 { - right: 75%; } - .col-sm-pull-10 { - right: 83.33333%; } - .col-sm-pull-11 { - right: 91.66667%; } - .col-sm-pull-12 { - right: 100%; } - .col-sm-push-0 { - left: auto; } - .col-sm-push-1 { - left: 8.33333%; } - .col-sm-push-2 { - left: 16.66667%; } - .col-sm-push-3 { - left: 25%; } - .col-sm-push-4 { - left: 33.33333%; } - .col-sm-push-5 { - left: 41.66667%; } - .col-sm-push-6 { - left: 50%; } - .col-sm-push-7 { - left: 58.33333%; } - .col-sm-push-8 { - left: 66.66667%; } - .col-sm-push-9 { - left: 75%; } - .col-sm-push-10 { - left: 83.33333%; } - .col-sm-push-11 { - left: 91.66667%; } - .col-sm-push-12 { - left: 100%; } - .col-sm-offset-0 { - margin-left: 0%; } - .col-sm-offset-1 { - margin-left: 8.33333%; } - .col-sm-offset-2 { - margin-left: 16.66667%; } - .col-sm-offset-3 { - margin-left: 25%; } - .col-sm-offset-4 { - margin-left: 33.33333%; } - .col-sm-offset-5 { - margin-left: 41.66667%; } - .col-sm-offset-6 { - margin-left: 50%; } - .col-sm-offset-7 { - margin-left: 58.33333%; } - .col-sm-offset-8 { - margin-left: 66.66667%; } - .col-sm-offset-9 { - margin-left: 75%; } - .col-sm-offset-10 { - margin-left: 83.33333%; } - .col-sm-offset-11 { - margin-left: 91.66667%; } - .col-sm-offset-12 { - margin-left: 100%; } } - -@media (min-width: 992px) { - .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12 { - float: left; } - .col-md-1 { - width: 8.33333%; } - .col-md-2 { - width: 16.66667%; } - .col-md-3 { - width: 25%; } - .col-md-4 { - width: 33.33333%; } - .col-md-5 { - width: 41.66667%; } - .col-md-6 { - width: 50%; } - .col-md-7 { - width: 58.33333%; } - .col-md-8 { - width: 66.66667%; } - .col-md-9 { - width: 75%; } - .col-md-10 { - width: 83.33333%; } - .col-md-11 { - width: 91.66667%; } - .col-md-12 { - width: 100%; } - .col-md-pull-0 { - right: auto; } - .col-md-pull-1 { - right: 8.33333%; } - .col-md-pull-2 { - right: 16.66667%; } - .col-md-pull-3 { - right: 25%; } - .col-md-pull-4 { - right: 33.33333%; } - .col-md-pull-5 { - right: 41.66667%; } - .col-md-pull-6 { - right: 50%; } - .col-md-pull-7 { - right: 58.33333%; } - .col-md-pull-8 { - right: 66.66667%; } - .col-md-pull-9 { - right: 75%; } - .col-md-pull-10 { - right: 83.33333%; } - .col-md-pull-11 { - right: 91.66667%; } - .col-md-pull-12 { - right: 100%; } - .col-md-push-0 { - left: auto; } - .col-md-push-1 { - left: 8.33333%; } - .col-md-push-2 { - left: 16.66667%; } - .col-md-push-3 { - left: 25%; } - .col-md-push-4 { - left: 33.33333%; } - .col-md-push-5 { - left: 41.66667%; } - .col-md-push-6 { - left: 50%; } - .col-md-push-7 { - left: 58.33333%; } - .col-md-push-8 { - left: 66.66667%; } - .col-md-push-9 { - left: 75%; } - .col-md-push-10 { - left: 83.33333%; } - .col-md-push-11 { - left: 91.66667%; } - .col-md-push-12 { - left: 100%; } - .col-md-offset-0 { - margin-left: 0%; } - .col-md-offset-1 { - margin-left: 8.33333%; } - .col-md-offset-2 { - margin-left: 16.66667%; } - .col-md-offset-3 { - margin-left: 25%; } - .col-md-offset-4 { - margin-left: 33.33333%; } - .col-md-offset-5 { - margin-left: 41.66667%; } - .col-md-offset-6 { - margin-left: 50%; } - .col-md-offset-7 { - margin-left: 58.33333%; } - .col-md-offset-8 { - margin-left: 66.66667%; } - .col-md-offset-9 { - margin-left: 75%; } - .col-md-offset-10 { - margin-left: 83.33333%; } - .col-md-offset-11 { - margin-left: 91.66667%; } - .col-md-offset-12 { - margin-left: 100%; } } - -@media (min-width: 1200px) { - .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12 { - float: left; } - .col-lg-1 { - width: 8.33333%; } - .col-lg-2 { - width: 16.66667%; } - .col-lg-3 { - width: 25%; } - .col-lg-4 { - width: 33.33333%; } - .col-lg-5 { - width: 41.66667%; } - .col-lg-6 { - width: 50%; } - .col-lg-7 { - width: 58.33333%; } - .col-lg-8 { - width: 66.66667%; } - .col-lg-9 { - width: 75%; } - .col-lg-10 { - width: 83.33333%; } - .col-lg-11 { - width: 91.66667%; } - .col-lg-12 { - width: 100%; } - .col-lg-pull-0 { - right: auto; } - .col-lg-pull-1 { - right: 8.33333%; } - .col-lg-pull-2 { - right: 16.66667%; } - .col-lg-pull-3 { - right: 25%; } - .col-lg-pull-4 { - right: 33.33333%; } - .col-lg-pull-5 { - right: 41.66667%; } - .col-lg-pull-6 { - right: 50%; } - .col-lg-pull-7 { - right: 58.33333%; } - .col-lg-pull-8 { - right: 66.66667%; } - .col-lg-pull-9 { - right: 75%; } - .col-lg-pull-10 { - right: 83.33333%; } - .col-lg-pull-11 { - right: 91.66667%; } - .col-lg-pull-12 { - right: 100%; } - .col-lg-push-0 { - left: auto; } - .col-lg-push-1 { - left: 8.33333%; } - .col-lg-push-2 { - left: 16.66667%; } - .col-lg-push-3 { - left: 25%; } - .col-lg-push-4 { - left: 33.33333%; } - .col-lg-push-5 { - left: 41.66667%; } - .col-lg-push-6 { - left: 50%; } - .col-lg-push-7 { - left: 58.33333%; } - .col-lg-push-8 { - left: 66.66667%; } - .col-lg-push-9 { - left: 75%; } - .col-lg-push-10 { - left: 83.33333%; } - .col-lg-push-11 { - left: 91.66667%; } - .col-lg-push-12 { - left: 100%; } - .col-lg-offset-0 { - margin-left: 0%; } - .col-lg-offset-1 { - margin-left: 8.33333%; } - .col-lg-offset-2 { - margin-left: 16.66667%; } - .col-lg-offset-3 { - margin-left: 25%; } - .col-lg-offset-4 { - margin-left: 33.33333%; } - .col-lg-offset-5 { - margin-left: 41.66667%; } - .col-lg-offset-6 { - margin-left: 50%; } - .col-lg-offset-7 { - margin-left: 58.33333%; } - .col-lg-offset-8 { - margin-left: 66.66667%; } - .col-lg-offset-9 { - margin-left: 75%; } - .col-lg-offset-10 { - margin-left: 83.33333%; } - .col-lg-offset-11 { - margin-left: 91.66667%; } - .col-lg-offset-12 { - margin-left: 100%; } } - -table { - background-color: transparent; } - -caption { - padding-top: 8px; - padding-bottom: 8px; - color: #777777; - text-align: left; } - -th { - text-align: left; } - -.table { - width: 100%; - max-width: 100%; - margin-bottom: 20px; } - .table > thead > tr > th, - .table > thead > tr > td, - .table > tbody > tr > th, - .table > tbody > tr > td, - .table > tfoot > tr > th, - .table > tfoot > tr > td { - padding: 8px; - line-height: 1.42857; - vertical-align: top; - border-top: 1px solid #ddd; } - .table > thead > tr > th { - vertical-align: bottom; - border-bottom: 2px solid #ddd; } - .table > caption + thead > tr:first-child > th, - .table > caption + thead > tr:first-child > td, - .table > colgroup + thead > tr:first-child > th, - .table > colgroup + thead > tr:first-child > td, - .table > thead:first-child > tr:first-child > th, - .table > thead:first-child > tr:first-child > td { - border-top: 0; } - .table > tbody + tbody { - border-top: 2px solid #ddd; } - .table .table { - background-color: #fff; } - -.table-condensed > thead > tr > th, -.table-condensed > thead > tr > td, -.table-condensed > tbody > tr > th, -.table-condensed > tbody > tr > td, -.table-condensed > tfoot > tr > th, -.table-condensed > tfoot > tr > td { - padding: 5px; } - -.table-bordered { - border: 1px solid #ddd; } - .table-bordered > thead > tr > th, - .table-bordered > thead > tr > td, - .table-bordered > tbody > tr > th, - .table-bordered > tbody > tr > td, - .table-bordered > tfoot > tr > th, - .table-bordered > tfoot > tr > td { - border: 1px solid #ddd; } - .table-bordered > thead > tr > th, - .table-bordered > thead > tr > td { - border-bottom-width: 2px; } - -.table-striped > tbody > tr:nth-of-type(odd) { - background-color: #f9f9f9; } - -.table-hover > tbody > tr:hover { - background-color: #f5f5f5; } - -table col[class*="col-"] { - position: static; - float: none; - display: table-column; } - -table td[class*="col-"], -table th[class*="col-"] { - position: static; - float: none; - display: table-cell; } - -.table > thead > tr > td.active, -.table > thead > tr > th.active, -.table > thead > tr.active > td, -.table > thead > tr.active > th, -.table > tbody > tr > td.active, -.table > tbody > tr > th.active, -.table > tbody > tr.active > td, -.table > tbody > tr.active > th, -.table > tfoot > tr > td.active, -.table > tfoot > tr > th.active, -.table > tfoot > tr.active > td, -.table > tfoot > tr.active > th { - background-color: #f5f5f5; } - -.table-hover > tbody > tr > td.active:hover, -.table-hover > tbody > tr > th.active:hover, -.table-hover > tbody > tr.active:hover > td, -.table-hover > tbody > tr:hover > .active, -.table-hover > tbody > tr.active:hover > th { - background-color: #e8e8e8; } - -.table > thead > tr > td.success, -.table > thead > tr > th.success, -.table > thead > tr.success > td, -.table > thead > tr.success > th, -.table > tbody > tr > td.success, -.table > tbody > tr > th.success, -.table > tbody > tr.success > td, -.table > tbody > tr.success > th, -.table > tfoot > tr > td.success, -.table > tfoot > tr > th.success, -.table > tfoot > tr.success > td, -.table > tfoot > tr.success > th { - background-color: #dff0d8; } - -.table-hover > tbody > tr > td.success:hover, -.table-hover > tbody > tr > th.success:hover, -.table-hover > tbody > tr.success:hover > td, -.table-hover > tbody > tr:hover > .success, -.table-hover > tbody > tr.success:hover > th { - background-color: #d0e9c6; } - -.table > thead > tr > td.info, -.table > thead > tr > th.info, -.table > thead > tr.info > td, -.table > thead > tr.info > th, -.table > tbody > tr > td.info, -.table > tbody > tr > th.info, -.table > tbody > tr.info > td, -.table > tbody > tr.info > th, -.table > tfoot > tr > td.info, -.table > tfoot > tr > th.info, -.table > tfoot > tr.info > td, -.table > tfoot > tr.info > th { - background-color: #d9edf7; } - -.table-hover > tbody > tr > td.info:hover, -.table-hover > tbody > tr > th.info:hover, -.table-hover > tbody > tr.info:hover > td, -.table-hover > tbody > tr:hover > .info, -.table-hover > tbody > tr.info:hover > th { - background-color: #c4e3f3; } - -.table > thead > tr > td.warning, -.table > thead > tr > th.warning, -.table > thead > tr.warning > td, -.table > thead > tr.warning > th, -.table > tbody > tr > td.warning, -.table > tbody > tr > th.warning, -.table > tbody > tr.warning > td, -.table > tbody > tr.warning > th, -.table > tfoot > tr > td.warning, -.table > tfoot > tr > th.warning, -.table > tfoot > tr.warning > td, -.table > tfoot > tr.warning > th { - background-color: #fcf8e3; } - -.table-hover > tbody > tr > td.warning:hover, -.table-hover > tbody > tr > th.warning:hover, -.table-hover > tbody > tr.warning:hover > td, -.table-hover > tbody > tr:hover > .warning, -.table-hover > tbody > tr.warning:hover > th { - background-color: #faf2cc; } - -.table > thead > tr > td.danger, -.table > thead > tr > th.danger, -.table > thead > tr.danger > td, -.table > thead > tr.danger > th, -.table > tbody > tr > td.danger, -.table > tbody > tr > th.danger, -.table > tbody > tr.danger > td, -.table > tbody > tr.danger > th, -.table > tfoot > tr > td.danger, -.table > tfoot > tr > th.danger, -.table > tfoot > tr.danger > td, -.table > tfoot > tr.danger > th { - background-color: #f2dede; } - -.table-hover > tbody > tr > td.danger:hover, -.table-hover > tbody > tr > th.danger:hover, -.table-hover > tbody > tr.danger:hover > td, -.table-hover > tbody > tr:hover > .danger, -.table-hover > tbody > tr.danger:hover > th { - background-color: #ebcccc; } - -.table-responsive { - overflow-x: auto; - min-height: 0.01%; } - @media screen and (max-width: 767px) { - .table-responsive { - width: 100%; - margin-bottom: 15px; - overflow-y: hidden; - -ms-overflow-style: -ms-autohiding-scrollbar; - border: 1px solid #ddd; } - .table-responsive > .table { - margin-bottom: 0; } - .table-responsive > .table > thead > tr > th, - .table-responsive > .table > thead > tr > td, - .table-responsive > .table > tbody > tr > th, - .table-responsive > .table > tbody > tr > td, - .table-responsive > .table > tfoot > tr > th, - .table-responsive > .table > tfoot > tr > td { - white-space: nowrap; } - .table-responsive > .table-bordered { - border: 0; } - .table-responsive > .table-bordered > thead > tr > th:first-child, - .table-responsive > .table-bordered > thead > tr > td:first-child, - .table-responsive > .table-bordered > tbody > tr > th:first-child, - .table-responsive > .table-bordered > tbody > tr > td:first-child, - .table-responsive > .table-bordered > tfoot > tr > th:first-child, - .table-responsive > .table-bordered > tfoot > tr > td:first-child { - border-left: 0; } - .table-responsive > .table-bordered > thead > tr > th:last-child, - .table-responsive > .table-bordered > thead > tr > td:last-child, - .table-responsive > .table-bordered > tbody > tr > th:last-child, - .table-responsive > .table-bordered > tbody > tr > td:last-child, - .table-responsive > .table-bordered > tfoot > tr > th:last-child, - .table-responsive > .table-bordered > tfoot > tr > td:last-child { - border-right: 0; } - .table-responsive > .table-bordered > tbody > tr:last-child > th, - .table-responsive > .table-bordered > tbody > tr:last-child > td, - .table-responsive > .table-bordered > tfoot > tr:last-child > th, - .table-responsive > .table-bordered > tfoot > tr:last-child > td { - border-bottom: 0; } } - -fieldset { - padding: 0; - margin: 0; - border: 0; - min-width: 0; } - -legend { - display: block; - width: 100%; - padding: 0; - margin-bottom: 20px; - font-size: 21px; - line-height: inherit; - color: #333333; - border: 0; - border-bottom: 1px solid #e5e5e5; } - -label { - display: inline-block; - max-width: 100%; - margin-bottom: 5px; - font-weight: bold; } - -input[type="search"] { - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; } - -input[type="radio"], -input[type="checkbox"] { - margin: 4px 0 0; - margin-top: 1px \9; - line-height: normal; } - -input[type="file"] { - display: block; } - -input[type="range"] { - display: block; - width: 100%; } - -select[multiple], -select[size] { - height: auto; } - -input[type="file"]:focus, -input[type="radio"]:focus, -input[type="checkbox"]:focus { - outline: 5px auto -webkit-focus-ring-color; - outline-offset: -2px; } - -output { - display: block; - padding-top: 7px; - font-size: 14px; - line-height: 1.42857; - color: #555555; } - -.form-control { - display: block; - width: 100%; - height: 34px; - padding: 6px 12px; - font-size: 14px; - line-height: 1.42857; - color: #555555; - background-color: #fff; - background-image: none; - border: 1px solid #ccc; - border-radius: 4px; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); - -webkit-transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s; - -o-transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s; - transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s; } - .form-control:focus { - border-color: #66afe9; - outline: 0; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(102, 175, 233, 0.6); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(102, 175, 233, 0.6); } - .form-control::-moz-placeholder { - color: #999; - opacity: 1; } - .form-control:-ms-input-placeholder { - color: #999; } - .form-control::-webkit-input-placeholder { - color: #999; } - .form-control::-ms-expand { - border: 0; - background-color: transparent; } - .form-control[disabled], .form-control[readonly], - fieldset[disabled] .form-control { - background-color: #eeeeee; - opacity: 1; } - .form-control[disabled], - fieldset[disabled] .form-control { - cursor: not-allowed; } - -textarea.form-control { - height: auto; } - -input[type="search"] { - -webkit-appearance: none; } - -@media screen and (-webkit-min-device-pixel-ratio: 0) { - input[type="date"].form-control, - input[type="time"].form-control, - input[type="datetime-local"].form-control, - input[type="month"].form-control { - line-height: 34px; } - input[type="date"].input-sm, .input-group-sm > input.form-control[type="date"], - .input-group-sm > input.input-group-addon[type="date"], - .input-group-sm > .input-group-btn > input.btn[type="date"], - .input-group-sm input[type="date"], - input[type="time"].input-sm, - .input-group-sm > input.form-control[type="time"], - .input-group-sm > input.input-group-addon[type="time"], - .input-group-sm > .input-group-btn > input.btn[type="time"], - .input-group-sm - input[type="time"], - input[type="datetime-local"].input-sm, - .input-group-sm > input.form-control[type="datetime-local"], - .input-group-sm > input.input-group-addon[type="datetime-local"], - .input-group-sm > .input-group-btn > input.btn[type="datetime-local"], - .input-group-sm - input[type="datetime-local"], - input[type="month"].input-sm, - .input-group-sm > input.form-control[type="month"], - .input-group-sm > input.input-group-addon[type="month"], - .input-group-sm > .input-group-btn > input.btn[type="month"], - .input-group-sm - input[type="month"] { - line-height: 30px; } - input[type="date"].input-lg, .input-group-lg > input.form-control[type="date"], - .input-group-lg > input.input-group-addon[type="date"], - .input-group-lg > .input-group-btn > input.btn[type="date"], - .input-group-lg input[type="date"], - input[type="time"].input-lg, - .input-group-lg > input.form-control[type="time"], - .input-group-lg > input.input-group-addon[type="time"], - .input-group-lg > .input-group-btn > input.btn[type="time"], - .input-group-lg - input[type="time"], - input[type="datetime-local"].input-lg, - .input-group-lg > input.form-control[type="datetime-local"], - .input-group-lg > input.input-group-addon[type="datetime-local"], - .input-group-lg > .input-group-btn > input.btn[type="datetime-local"], - .input-group-lg - input[type="datetime-local"], - input[type="month"].input-lg, - .input-group-lg > input.form-control[type="month"], - .input-group-lg > input.input-group-addon[type="month"], - .input-group-lg > .input-group-btn > input.btn[type="month"], - .input-group-lg - input[type="month"] { - line-height: 46px; } } - -.form-group { - margin-bottom: 15px; } - -.radio, -.checkbox { - position: relative; - display: block; - margin-top: 10px; - margin-bottom: 10px; } - .radio label, - .checkbox label { - min-height: 20px; - padding-left: 20px; - margin-bottom: 0; - font-weight: normal; - cursor: pointer; } - -.radio input[type="radio"], -.radio-inline input[type="radio"], -.checkbox input[type="checkbox"], -.checkbox-inline input[type="checkbox"] { - position: absolute; - margin-left: -20px; - margin-top: 4px \9; } - -.radio + .radio, -.checkbox + .checkbox { - margin-top: -5px; } - -.radio-inline, -.checkbox-inline { - position: relative; - display: inline-block; - padding-left: 20px; - margin-bottom: 0; - vertical-align: middle; - font-weight: normal; - cursor: pointer; } - -.radio-inline + .radio-inline, -.checkbox-inline + .checkbox-inline { - margin-top: 0; - margin-left: 10px; } - -input[type="radio"][disabled], input[type="radio"].disabled, -fieldset[disabled] input[type="radio"], -input[type="checkbox"][disabled], -input[type="checkbox"].disabled, -fieldset[disabled] -input[type="checkbox"] { - cursor: not-allowed; } - -.radio-inline.disabled, -fieldset[disabled] .radio-inline, -.checkbox-inline.disabled, -fieldset[disabled] -.checkbox-inline { - cursor: not-allowed; } - -.radio.disabled label, -fieldset[disabled] .radio label, -.checkbox.disabled label, -fieldset[disabled] -.checkbox label { - cursor: not-allowed; } - -.form-control-static { - padding-top: 7px; - padding-bottom: 7px; - margin-bottom: 0; - min-height: 34px; } - .form-control-static.input-lg, .input-group-lg > .form-control-static.form-control, - .input-group-lg > .form-control-static.input-group-addon, - .input-group-lg > .input-group-btn > .form-control-static.btn, .form-control-static.input-sm, .input-group-sm > .form-control-static.form-control, - .input-group-sm > .form-control-static.input-group-addon, - .input-group-sm > .input-group-btn > .form-control-static.btn { - padding-left: 0; - padding-right: 0; } - -.input-sm, .input-group-sm > .form-control, -.input-group-sm > .input-group-addon, -.input-group-sm > .input-group-btn > .btn { - height: 30px; - padding: 5px 10px; - font-size: 12px; - line-height: 1.5; - border-radius: 3px; } - -select.input-sm, .input-group-sm > select.form-control, -.input-group-sm > select.input-group-addon, -.input-group-sm > .input-group-btn > select.btn { - height: 30px; - line-height: 30px; } - -textarea.input-sm, .input-group-sm > textarea.form-control, -.input-group-sm > textarea.input-group-addon, -.input-group-sm > .input-group-btn > textarea.btn, -select[multiple].input-sm, -.input-group-sm > select.form-control[multiple], -.input-group-sm > select.input-group-addon[multiple], -.input-group-sm > .input-group-btn > select.btn[multiple] { - height: auto; } - -.form-group-sm .form-control { - height: 30px; - padding: 5px 10px; - font-size: 12px; - line-height: 1.5; - border-radius: 3px; } - -.form-group-sm select.form-control { - height: 30px; - line-height: 30px; } - -.form-group-sm textarea.form-control, -.form-group-sm select[multiple].form-control { - height: auto; } - -.form-group-sm .form-control-static { - height: 30px; - min-height: 32px; - padding: 6px 10px; - font-size: 12px; - line-height: 1.5; } - -.input-lg, .input-group-lg > .form-control, -.input-group-lg > .input-group-addon, -.input-group-lg > .input-group-btn > .btn { - height: 46px; - padding: 10px 16px; - font-size: 18px; - line-height: 1.33333; - border-radius: 6px; } - -select.input-lg, .input-group-lg > select.form-control, -.input-group-lg > select.input-group-addon, -.input-group-lg > .input-group-btn > select.btn { - height: 46px; - line-height: 46px; } - -textarea.input-lg, .input-group-lg > textarea.form-control, -.input-group-lg > textarea.input-group-addon, -.input-group-lg > .input-group-btn > textarea.btn, -select[multiple].input-lg, -.input-group-lg > select.form-control[multiple], -.input-group-lg > select.input-group-addon[multiple], -.input-group-lg > .input-group-btn > select.btn[multiple] { - height: auto; } - -.form-group-lg .form-control { - height: 46px; - padding: 10px 16px; - font-size: 18px; - line-height: 1.33333; - border-radius: 6px; } - -.form-group-lg select.form-control { - height: 46px; - line-height: 46px; } - -.form-group-lg textarea.form-control, -.form-group-lg select[multiple].form-control { - height: auto; } - -.form-group-lg .form-control-static { - height: 46px; - min-height: 38px; - padding: 11px 16px; - font-size: 18px; - line-height: 1.33333; } - -.has-feedback { - position: relative; } - .has-feedback .form-control { - padding-right: 42.5px; } - -.form-control-feedback { - position: absolute; - top: 0; - right: 0; - z-index: 2; - display: block; - width: 34px; - height: 34px; - line-height: 34px; - text-align: center; - pointer-events: none; } - -.input-lg + .form-control-feedback, .input-group-lg > .form-control + .form-control-feedback, .input-group-lg > .input-group-addon + .form-control-feedback, .input-group-lg > .input-group-btn > .btn + .form-control-feedback, -.input-group-lg + .form-control-feedback, -.form-group-lg .form-control + .form-control-feedback { - width: 46px; - height: 46px; - line-height: 46px; } - -.input-sm + .form-control-feedback, .input-group-sm > .form-control + .form-control-feedback, .input-group-sm > .input-group-addon + .form-control-feedback, .input-group-sm > .input-group-btn > .btn + .form-control-feedback, -.input-group-sm + .form-control-feedback, -.form-group-sm .form-control + .form-control-feedback { - width: 30px; - height: 30px; - line-height: 30px; } - -.has-success .help-block, -.has-success .control-label, -.has-success .radio, -.has-success .checkbox, -.has-success .radio-inline, -.has-success .checkbox-inline, -.has-success.radio label, -.has-success.checkbox label, -.has-success.radio-inline label, -.has-success.checkbox-inline label { - color: #3c763d; } - -.has-success .form-control { - border-color: #3c763d; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); } - .has-success .form-control:focus { - border-color: #2b542c; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168; - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168; } - -.has-success .input-group-addon { - color: #3c763d; - border-color: #3c763d; - background-color: #dff0d8; } - -.has-success .form-control-feedback { - color: #3c763d; } - -.has-warning .help-block, -.has-warning .control-label, -.has-warning .radio, -.has-warning .checkbox, -.has-warning .radio-inline, -.has-warning .checkbox-inline, -.has-warning.radio label, -.has-warning.checkbox label, -.has-warning.radio-inline label, -.has-warning.checkbox-inline label { - color: #8a6d3b; } - -.has-warning .form-control { - border-color: #8a6d3b; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); } - .has-warning .form-control:focus { - border-color: #66512c; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b; - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b; } - -.has-warning .input-group-addon { - color: #8a6d3b; - border-color: #8a6d3b; - background-color: #fcf8e3; } - -.has-warning .form-control-feedback { - color: #8a6d3b; } - -.has-error .help-block, -.has-error .control-label, -.has-error .radio, -.has-error .checkbox, -.has-error .radio-inline, -.has-error .checkbox-inline, -.has-error.radio label, -.has-error.checkbox label, -.has-error.radio-inline label, -.has-error.checkbox-inline label { - color: #a94442; } - -.has-error .form-control { - border-color: #a94442; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); } - .has-error .form-control:focus { - border-color: #843534; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483; - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483; } - -.has-error .input-group-addon { - color: #a94442; - border-color: #a94442; - background-color: #f2dede; } - -.has-error .form-control-feedback { - color: #a94442; } - -.has-feedback label ~ .form-control-feedback { - top: 25px; } - -.has-feedback label.sr-only ~ .form-control-feedback { - top: 0; } - -.help-block { - display: block; - margin-top: 5px; - margin-bottom: 10px; - color: #737373; } - -@media (min-width: 768px) { - .form-inline .form-group { - display: inline-block; - margin-bottom: 0; - vertical-align: middle; } - .form-inline .form-control { - display: inline-block; - width: auto; - vertical-align: middle; } - .form-inline .form-control-static { - display: inline-block; } - .form-inline .input-group { - display: inline-table; - vertical-align: middle; } - .form-inline .input-group .input-group-addon, - .form-inline .input-group .input-group-btn, - .form-inline .input-group .form-control { - width: auto; } - .form-inline .input-group > .form-control { - width: 100%; } - .form-inline .control-label { - margin-bottom: 0; - vertical-align: middle; } - .form-inline .radio, - .form-inline .checkbox { - display: inline-block; - margin-top: 0; - margin-bottom: 0; - vertical-align: middle; } - .form-inline .radio label, - .form-inline .checkbox label { - padding-left: 0; } - .form-inline .radio input[type="radio"], - .form-inline .checkbox input[type="checkbox"] { - position: relative; - margin-left: 0; } - .form-inline .has-feedback .form-control-feedback { - top: 0; } } - -.form-horizontal .radio, -.form-horizontal .checkbox, -.form-horizontal .radio-inline, -.form-horizontal .checkbox-inline { - margin-top: 0; - margin-bottom: 0; - padding-top: 7px; } - -.form-horizontal .radio, -.form-horizontal .checkbox { - min-height: 27px; } - -.form-horizontal .form-group { - margin-left: -15px; - margin-right: -15px; } - .form-horizontal .form-group:before, .form-horizontal .form-group:after { - content: " "; - display: table; } - .form-horizontal .form-group:after { - clear: both; } - -@media (min-width: 768px) { - .form-horizontal .control-label { - text-align: right; - margin-bottom: 0; - padding-top: 7px; } } - -.form-horizontal .has-feedback .form-control-feedback { - right: 15px; } - -@media (min-width: 768px) { - .form-horizontal .form-group-lg .control-label { - padding-top: 11px; - font-size: 18px; } } - -@media (min-width: 768px) { - .form-horizontal .form-group-sm .control-label { - padding-top: 6px; - font-size: 12px; } } - -.btn { - display: inline-block; - margin-bottom: 0; - font-weight: normal; - text-align: center; - vertical-align: middle; - touch-action: manipulation; - cursor: pointer; - background-image: none; - border: 1px solid transparent; - white-space: nowrap; - padding: 6px 12px; - font-size: 14px; - line-height: 1.42857; - border-radius: 4px; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; } - .btn:focus, .btn.focus, .btn:active:focus, .btn:active.focus, .btn.active:focus, .btn.active.focus { - outline: 5px auto -webkit-focus-ring-color; - outline-offset: -2px; } - .btn:hover, .btn:focus, .btn.focus { - color: #333; - text-decoration: none; } - .btn:active, .btn.active { - outline: 0; - background-image: none; - -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); - box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); } - .btn.disabled, .btn[disabled], - fieldset[disabled] .btn { - cursor: not-allowed; - opacity: 0.65; - filter: alpha(opacity=65); - -webkit-box-shadow: none; - box-shadow: none; } - -a.btn.disabled, -fieldset[disabled] a.btn { - pointer-events: none; } - -.btn-default { - color: #333; - background-color: #fff; - border-color: #ccc; } - .btn-default:focus, .btn-default.focus { - color: #333; - background-color: #e6e6e6; - border-color: #8c8c8c; } - .btn-default:hover { - color: #333; - background-color: #e6e6e6; - border-color: #adadad; } - .btn-default:active, .btn-default.active, - .open > .btn-default.dropdown-toggle { - color: #333; - background-color: #e6e6e6; - border-color: #adadad; } - .btn-default:active:hover, .btn-default:active:focus, .btn-default:active.focus, .btn-default.active:hover, .btn-default.active:focus, .btn-default.active.focus, - .open > .btn-default.dropdown-toggle:hover, - .open > .btn-default.dropdown-toggle:focus, - .open > .btn-default.dropdown-toggle.focus { - color: #333; - background-color: #d4d4d4; - border-color: #8c8c8c; } - .btn-default:active, .btn-default.active, - .open > .btn-default.dropdown-toggle { - background-image: none; } - .btn-default.disabled:hover, .btn-default.disabled:focus, .btn-default.disabled.focus, .btn-default[disabled]:hover, .btn-default[disabled]:focus, .btn-default[disabled].focus, - fieldset[disabled] .btn-default:hover, - fieldset[disabled] .btn-default:focus, - fieldset[disabled] .btn-default.focus { - background-color: #fff; - border-color: #ccc; } - .btn-default .badge { - color: #fff; - background-color: #333; } - -.btn-primary { - color: #fff; - background-color: #337ab7; - border-color: #2e6da4; } - .btn-primary:focus, .btn-primary.focus { - color: #fff; - background-color: #286090; - border-color: #122b40; } - .btn-primary:hover { - color: #fff; - background-color: #286090; - border-color: #204d74; } - .btn-primary:active, .btn-primary.active, - .open > .btn-primary.dropdown-toggle { - color: #fff; - background-color: #286090; - border-color: #204d74; } - .btn-primary:active:hover, .btn-primary:active:focus, .btn-primary:active.focus, .btn-primary.active:hover, .btn-primary.active:focus, .btn-primary.active.focus, - .open > .btn-primary.dropdown-toggle:hover, - .open > .btn-primary.dropdown-toggle:focus, - .open > .btn-primary.dropdown-toggle.focus { - color: #fff; - background-color: #204d74; - border-color: #122b40; } - .btn-primary:active, .btn-primary.active, - .open > .btn-primary.dropdown-toggle { - background-image: none; } - .btn-primary.disabled:hover, .btn-primary.disabled:focus, .btn-primary.disabled.focus, .btn-primary[disabled]:hover, .btn-primary[disabled]:focus, .btn-primary[disabled].focus, - fieldset[disabled] .btn-primary:hover, - fieldset[disabled] .btn-primary:focus, - fieldset[disabled] .btn-primary.focus { - background-color: #337ab7; - border-color: #2e6da4; } - .btn-primary .badge { - color: #337ab7; - background-color: #fff; } - -.btn-success { - color: #fff; - background-color: #5cb85c; - border-color: #4cae4c; } - .btn-success:focus, .btn-success.focus { - color: #fff; - background-color: #449d44; - border-color: #255625; } - .btn-success:hover { - color: #fff; - background-color: #449d44; - border-color: #398439; } - .btn-success:active, .btn-success.active, - .open > .btn-success.dropdown-toggle { - color: #fff; - background-color: #449d44; - border-color: #398439; } - .btn-success:active:hover, .btn-success:active:focus, .btn-success:active.focus, .btn-success.active:hover, .btn-success.active:focus, .btn-success.active.focus, - .open > .btn-success.dropdown-toggle:hover, - .open > .btn-success.dropdown-toggle:focus, - .open > .btn-success.dropdown-toggle.focus { - color: #fff; - background-color: #398439; - border-color: #255625; } - .btn-success:active, .btn-success.active, - .open > .btn-success.dropdown-toggle { - background-image: none; } - .btn-success.disabled:hover, .btn-success.disabled:focus, .btn-success.disabled.focus, .btn-success[disabled]:hover, .btn-success[disabled]:focus, .btn-success[disabled].focus, - fieldset[disabled] .btn-success:hover, - fieldset[disabled] .btn-success:focus, - fieldset[disabled] .btn-success.focus { - background-color: #5cb85c; - border-color: #4cae4c; } - .btn-success .badge { - color: #5cb85c; - background-color: #fff; } - -.btn-info { - color: #fff; - background-color: #5bc0de; - border-color: #46b8da; } - .btn-info:focus, .btn-info.focus { - color: #fff; - background-color: #31b0d5; - border-color: #1b6d85; } - .btn-info:hover { - color: #fff; - background-color: #31b0d5; - border-color: #269abc; } - .btn-info:active, .btn-info.active, - .open > .btn-info.dropdown-toggle { - color: #fff; - background-color: #31b0d5; - border-color: #269abc; } - .btn-info:active:hover, .btn-info:active:focus, .btn-info:active.focus, .btn-info.active:hover, .btn-info.active:focus, .btn-info.active.focus, - .open > .btn-info.dropdown-toggle:hover, - .open > .btn-info.dropdown-toggle:focus, - .open > .btn-info.dropdown-toggle.focus { - color: #fff; - background-color: #269abc; - border-color: #1b6d85; } - .btn-info:active, .btn-info.active, - .open > .btn-info.dropdown-toggle { - background-image: none; } - .btn-info.disabled:hover, .btn-info.disabled:focus, .btn-info.disabled.focus, .btn-info[disabled]:hover, .btn-info[disabled]:focus, .btn-info[disabled].focus, - fieldset[disabled] .btn-info:hover, - fieldset[disabled] .btn-info:focus, - fieldset[disabled] .btn-info.focus { - background-color: #5bc0de; - border-color: #46b8da; } - .btn-info .badge { - color: #5bc0de; - background-color: #fff; } - -.btn-warning { - color: #fff; - background-color: #f0ad4e; - border-color: #eea236; } - .btn-warning:focus, .btn-warning.focus { - color: #fff; - background-color: #ec971f; - border-color: #985f0d; } - .btn-warning:hover { - color: #fff; - background-color: #ec971f; - border-color: #d58512; } - .btn-warning:active, .btn-warning.active, - .open > .btn-warning.dropdown-toggle { - color: #fff; - background-color: #ec971f; - border-color: #d58512; } - .btn-warning:active:hover, .btn-warning:active:focus, .btn-warning:active.focus, .btn-warning.active:hover, .btn-warning.active:focus, .btn-warning.active.focus, - .open > .btn-warning.dropdown-toggle:hover, - .open > .btn-warning.dropdown-toggle:focus, - .open > .btn-warning.dropdown-toggle.focus { - color: #fff; - background-color: #d58512; - border-color: #985f0d; } - .btn-warning:active, .btn-warning.active, - .open > .btn-warning.dropdown-toggle { - background-image: none; } - .btn-warning.disabled:hover, .btn-warning.disabled:focus, .btn-warning.disabled.focus, .btn-warning[disabled]:hover, .btn-warning[disabled]:focus, .btn-warning[disabled].focus, - fieldset[disabled] .btn-warning:hover, - fieldset[disabled] .btn-warning:focus, - fieldset[disabled] .btn-warning.focus { - background-color: #f0ad4e; - border-color: #eea236; } - .btn-warning .badge { - color: #f0ad4e; - background-color: #fff; } - -.btn-danger { - color: #fff; - background-color: #d9534f; - border-color: #d43f3a; } - .btn-danger:focus, .btn-danger.focus { - color: #fff; - background-color: #c9302c; - border-color: #761c19; } - .btn-danger:hover { - color: #fff; - background-color: #c9302c; - border-color: #ac2925; } - .btn-danger:active, .btn-danger.active, - .open > .btn-danger.dropdown-toggle { - color: #fff; - background-color: #c9302c; - border-color: #ac2925; } - .btn-danger:active:hover, .btn-danger:active:focus, .btn-danger:active.focus, .btn-danger.active:hover, .btn-danger.active:focus, .btn-danger.active.focus, - .open > .btn-danger.dropdown-toggle:hover, - .open > .btn-danger.dropdown-toggle:focus, - .open > .btn-danger.dropdown-toggle.focus { - color: #fff; - background-color: #ac2925; - border-color: #761c19; } - .btn-danger:active, .btn-danger.active, - .open > .btn-danger.dropdown-toggle { - background-image: none; } - .btn-danger.disabled:hover, .btn-danger.disabled:focus, .btn-danger.disabled.focus, .btn-danger[disabled]:hover, .btn-danger[disabled]:focus, .btn-danger[disabled].focus, - fieldset[disabled] .btn-danger:hover, - fieldset[disabled] .btn-danger:focus, - fieldset[disabled] .btn-danger.focus { - background-color: #d9534f; - border-color: #d43f3a; } - .btn-danger .badge { - color: #d9534f; - background-color: #fff; } - -.btn-link { - color: #337ab7; - font-weight: normal; - border-radius: 0; } - .btn-link, .btn-link:active, .btn-link.active, .btn-link[disabled], - fieldset[disabled] .btn-link { - background-color: transparent; - -webkit-box-shadow: none; - box-shadow: none; } - .btn-link, .btn-link:hover, .btn-link:focus, .btn-link:active { - border-color: transparent; } - .btn-link:hover, .btn-link:focus { - color: #23527c; - text-decoration: underline; - background-color: transparent; } - .btn-link[disabled]:hover, .btn-link[disabled]:focus, - fieldset[disabled] .btn-link:hover, - fieldset[disabled] .btn-link:focus { - color: #777777; - text-decoration: none; } - -.btn-lg, .btn-group-lg > .btn { - padding: 10px 16px; - font-size: 18px; - line-height: 1.33333; - border-radius: 6px; } - -.btn-sm, .btn-group-sm > .btn { - padding: 5px 10px; - font-size: 12px; - line-height: 1.5; - border-radius: 3px; } - -.btn-xs, .btn-group-xs > .btn { - padding: 1px 5px; - font-size: 12px; - line-height: 1.5; - border-radius: 3px; } - -.btn-block { - display: block; - width: 100%; } - -.btn-block + .btn-block { - margin-top: 5px; } - -input[type="submit"].btn-block, -input[type="reset"].btn-block, -input[type="button"].btn-block { - width: 100%; } - -.fade { - opacity: 0; - -webkit-transition: opacity 0.15s linear; - -o-transition: opacity 0.15s linear; - transition: opacity 0.15s linear; } - .fade.in { - opacity: 1; } - -.collapse { - display: none; } - .collapse.in { - display: block; } - -tr.collapse.in { - display: table-row; } - -tbody.collapse.in { - display: table-row-group; } - -.collapsing { - position: relative; - height: 0; - overflow: hidden; - -webkit-transition-property: height, visibility; - transition-property: height, visibility; - -webkit-transition-duration: 0.35s; - transition-duration: 0.35s; - -webkit-transition-timing-function: ease; - transition-timing-function: ease; } - -.caret { - display: inline-block; - width: 0; - height: 0; - margin-left: 2px; - vertical-align: middle; - border-top: 4px dashed; - border-top: 4px solid \9; - border-right: 4px solid transparent; - border-left: 4px solid transparent; } - -.dropup, -.dropdown { - position: relative; } - -.dropdown-toggle:focus { - outline: 0; } - -.dropdown-menu { - position: absolute; - top: 100%; - left: 0; - z-index: 1000; - display: none; - float: left; - min-width: 160px; - padding: 5px 0; - margin: 2px 0 0; - list-style: none; - font-size: 14px; - text-align: left; - background-color: #fff; - border: 1px solid #ccc; - border: 1px solid rgba(0, 0, 0, 0.15); - border-radius: 4px; - -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175); - box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175); - background-clip: padding-box; } - .dropdown-menu.pull-right { - right: 0; - left: auto; } - .dropdown-menu .divider { - height: 1px; - margin: 9px 0; - overflow: hidden; - background-color: #e5e5e5; } - .dropdown-menu > li > a { - display: block; - padding: 3px 20px; - clear: both; - font-weight: normal; - line-height: 1.42857; - color: #333333; - white-space: nowrap; } - -.dropdown-menu > li > a:hover, .dropdown-menu > li > a:focus { - text-decoration: none; - color: #262626; - background-color: #f5f5f5; } - -.dropdown-menu > .active > a, .dropdown-menu > .active > a:hover, .dropdown-menu > .active > a:focus { - color: #fff; - text-decoration: none; - outline: 0; - background-color: #337ab7; } - -.dropdown-menu > .disabled > a, .dropdown-menu > .disabled > a:hover, .dropdown-menu > .disabled > a:focus { - color: #777777; } - -.dropdown-menu > .disabled > a:hover, .dropdown-menu > .disabled > a:focus { - text-decoration: none; - background-color: transparent; - background-image: none; - filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); - cursor: not-allowed; } - -.open > .dropdown-menu { - display: block; } - -.open > a { - outline: 0; } - -.dropdown-menu-right { - left: auto; - right: 0; } - -.dropdown-menu-left { - left: 0; - right: auto; } - -.dropdown-header { - display: block; - padding: 3px 20px; - font-size: 12px; - line-height: 1.42857; - color: #777777; - white-space: nowrap; } - -.dropdown-backdrop { - position: fixed; - left: 0; - right: 0; - bottom: 0; - top: 0; - z-index: 990; } - -.pull-right > .dropdown-menu { - right: 0; - left: auto; } - -.dropup .caret, -.navbar-fixed-bottom .dropdown .caret { - border-top: 0; - border-bottom: 4px dashed; - border-bottom: 4px solid \9; - content: ""; } - -.dropup .dropdown-menu, -.navbar-fixed-bottom .dropdown .dropdown-menu { - top: auto; - bottom: 100%; - margin-bottom: 2px; } - -@media (min-width: 768px) { - .navbar-right .dropdown-menu { - right: 0; - left: auto; } - .navbar-right .dropdown-menu-left { - left: 0; - right: auto; } } - -.btn-group, -.btn-group-vertical { - position: relative; - display: inline-block; - vertical-align: middle; } - .btn-group > .btn, - .btn-group-vertical > .btn { - position: relative; - float: left; } - .btn-group > .btn:hover, .btn-group > .btn:focus, .btn-group > .btn:active, .btn-group > .btn.active, - .btn-group-vertical > .btn:hover, - .btn-group-vertical > .btn:focus, - .btn-group-vertical > .btn:active, - .btn-group-vertical > .btn.active { - z-index: 2; } - -.btn-group .btn + .btn, -.btn-group .btn + .btn-group, -.btn-group .btn-group + .btn, -.btn-group .btn-group + .btn-group { - margin-left: -1px; } - -.btn-toolbar { - margin-left: -5px; } - .btn-toolbar:before, .btn-toolbar:after { - content: " "; - display: table; } - .btn-toolbar:after { - clear: both; } - .btn-toolbar .btn, - .btn-toolbar .btn-group, - .btn-toolbar .input-group { - float: left; } - .btn-toolbar > .btn, - .btn-toolbar > .btn-group, - .btn-toolbar > .input-group { - margin-left: 5px; } - -.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) { - border-radius: 0; } - -.btn-group > .btn:first-child { - margin-left: 0; } - .btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) { - border-bottom-right-radius: 0; - border-top-right-radius: 0; } - -.btn-group > .btn:last-child:not(:first-child), -.btn-group > .dropdown-toggle:not(:first-child) { - border-bottom-left-radius: 0; - border-top-left-radius: 0; } - -.btn-group > .btn-group { - float: left; } - -.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn { - border-radius: 0; } - -.btn-group > .btn-group:first-child:not(:last-child) > .btn:last-child, -.btn-group > .btn-group:first-child:not(:last-child) > .dropdown-toggle { - border-bottom-right-radius: 0; - border-top-right-radius: 0; } - -.btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child { - border-bottom-left-radius: 0; - border-top-left-radius: 0; } - -.btn-group .dropdown-toggle:active, -.btn-group.open .dropdown-toggle { - outline: 0; } - -.btn-group > .btn + .dropdown-toggle { - padding-left: 8px; - padding-right: 8px; } - -.btn-group > .btn-lg + .dropdown-toggle, .btn-group-lg.btn-group > .btn + .dropdown-toggle { - padding-left: 12px; - padding-right: 12px; } - -.btn-group.open .dropdown-toggle { - -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); - box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); } - .btn-group.open .dropdown-toggle.btn-link { - -webkit-box-shadow: none; - box-shadow: none; } - -.btn .caret { - margin-left: 0; } - -.btn-lg .caret, .btn-group-lg > .btn .caret { - border-width: 5px 5px 0; - border-bottom-width: 0; } - -.dropup .btn-lg .caret, .dropup .btn-group-lg > .btn .caret { - border-width: 0 5px 5px; } - -.btn-group-vertical > .btn, -.btn-group-vertical > .btn-group, -.btn-group-vertical > .btn-group > .btn { - display: block; - float: none; - width: 100%; - max-width: 100%; } - -.btn-group-vertical > .btn-group:before, .btn-group-vertical > .btn-group:after { - content: " "; - display: table; } - -.btn-group-vertical > .btn-group:after { - clear: both; } - -.btn-group-vertical > .btn-group > .btn { - float: none; } - -.btn-group-vertical > .btn + .btn, -.btn-group-vertical > .btn + .btn-group, -.btn-group-vertical > .btn-group + .btn, -.btn-group-vertical > .btn-group + .btn-group { - margin-top: -1px; - margin-left: 0; } - -.btn-group-vertical > .btn:not(:first-child):not(:last-child) { - border-radius: 0; } - -.btn-group-vertical > .btn:first-child:not(:last-child) { - border-top-right-radius: 4px; - border-top-left-radius: 4px; - border-bottom-right-radius: 0; - border-bottom-left-radius: 0; } - -.btn-group-vertical > .btn:last-child:not(:first-child) { - border-top-right-radius: 0; - border-top-left-radius: 0; - border-bottom-right-radius: 4px; - border-bottom-left-radius: 4px; } - -.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn { - border-radius: 0; } - -.btn-group-vertical > .btn-group:first-child:not(:last-child) > .btn:last-child, -.btn-group-vertical > .btn-group:first-child:not(:last-child) > .dropdown-toggle { - border-bottom-right-radius: 0; - border-bottom-left-radius: 0; } - -.btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child { - border-top-right-radius: 0; - border-top-left-radius: 0; } - -.btn-group-justified { - display: table; - width: 100%; - table-layout: fixed; - border-collapse: separate; } - .btn-group-justified > .btn, - .btn-group-justified > .btn-group { - float: none; - display: table-cell; - width: 1%; } - .btn-group-justified > .btn-group .btn { - width: 100%; } - .btn-group-justified > .btn-group .dropdown-menu { - left: auto; } - -[data-toggle="buttons"] > .btn input[type="radio"], -[data-toggle="buttons"] > .btn input[type="checkbox"], -[data-toggle="buttons"] > .btn-group > .btn input[type="radio"], -[data-toggle="buttons"] > .btn-group > .btn input[type="checkbox"] { - position: absolute; - clip: rect(0, 0, 0, 0); - pointer-events: none; } - -.input-group { - position: relative; - display: table; - border-collapse: separate; } - .input-group[class*="col-"] { - float: none; - padding-left: 0; - padding-right: 0; } - .input-group .form-control { - position: relative; - z-index: 2; - float: left; - width: 100%; - margin-bottom: 0; } - .input-group .form-control:focus { - z-index: 3; } - -.input-group-addon, -.input-group-btn, -.input-group .form-control { - display: table-cell; } - .input-group-addon:not(:first-child):not(:last-child), - .input-group-btn:not(:first-child):not(:last-child), - .input-group .form-control:not(:first-child):not(:last-child) { - border-radius: 0; } - -.input-group-addon, -.input-group-btn { - width: 1%; - white-space: nowrap; - vertical-align: middle; } - -.input-group-addon { - padding: 6px 12px; - font-size: 14px; - font-weight: normal; - line-height: 1; - color: #555555; - text-align: center; - background-color: #eeeeee; - border: 1px solid #ccc; - border-radius: 4px; } - .input-group-addon.input-sm, - .input-group-sm > .input-group-addon, - .input-group-sm > .input-group-btn > .input-group-addon.btn { - padding: 5px 10px; - font-size: 12px; - border-radius: 3px; } - .input-group-addon.input-lg, - .input-group-lg > .input-group-addon, - .input-group-lg > .input-group-btn > .input-group-addon.btn { - padding: 10px 16px; - font-size: 18px; - border-radius: 6px; } - .input-group-addon input[type="radio"], - .input-group-addon input[type="checkbox"] { - margin-top: 0; } - -.input-group .form-control:first-child, -.input-group-addon:first-child, -.input-group-btn:first-child > .btn, -.input-group-btn:first-child > .btn-group > .btn, -.input-group-btn:first-child > .dropdown-toggle, -.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle), -.input-group-btn:last-child > .btn-group:not(:last-child) > .btn { - border-bottom-right-radius: 0; - border-top-right-radius: 0; } - -.input-group-addon:first-child { - border-right: 0; } - -.input-group .form-control:last-child, -.input-group-addon:last-child, -.input-group-btn:last-child > .btn, -.input-group-btn:last-child > .btn-group > .btn, -.input-group-btn:last-child > .dropdown-toggle, -.input-group-btn:first-child > .btn:not(:first-child), -.input-group-btn:first-child > .btn-group:not(:first-child) > .btn { - border-bottom-left-radius: 0; - border-top-left-radius: 0; } - -.input-group-addon:last-child { - border-left: 0; } - -.input-group-btn { - position: relative; - font-size: 0; - white-space: nowrap; } - .input-group-btn > .btn { - position: relative; } - .input-group-btn > .btn + .btn { - margin-left: -1px; } - .input-group-btn > .btn:hover, .input-group-btn > .btn:focus, .input-group-btn > .btn:active { - z-index: 2; } - .input-group-btn:first-child > .btn, - .input-group-btn:first-child > .btn-group { - margin-right: -1px; } - .input-group-btn:last-child > .btn, - .input-group-btn:last-child > .btn-group { - z-index: 2; - margin-left: -1px; } - -.nav { - margin-bottom: 0; - padding-left: 0; - list-style: none; } - .nav:before, .nav:after { - content: " "; - display: table; } - .nav:after { - clear: both; } - .nav > li { - position: relative; - display: block; } - .nav > li > a { - position: relative; - display: block; - padding: 10px 15px; } - .nav > li > a:hover, .nav > li > a:focus { - text-decoration: none; - background-color: #eeeeee; } - .nav > li.disabled > a { - color: #777777; } - .nav > li.disabled > a:hover, .nav > li.disabled > a:focus { - color: #777777; - text-decoration: none; - background-color: transparent; - cursor: not-allowed; } - .nav .open > a, .nav .open > a:hover, .nav .open > a:focus { - background-color: #eeeeee; - border-color: #337ab7; } - .nav .nav-divider { - height: 1px; - margin: 9px 0; - overflow: hidden; - background-color: #e5e5e5; } - .nav > li > a > img { - max-width: none; } - -.nav-tabs { - border-bottom: 1px solid #ddd; } - .nav-tabs > li { - float: left; - margin-bottom: -1px; } - .nav-tabs > li > a { - margin-right: 2px; - line-height: 1.42857; - border: 1px solid transparent; - border-radius: 4px 4px 0 0; } - .nav-tabs > li > a:hover { - border-color: #eeeeee #eeeeee #ddd; } - .nav-tabs > li.active > a, .nav-tabs > li.active > a:hover, .nav-tabs > li.active > a:focus { - color: #555555; - background-color: #fff; - border: 1px solid #ddd; - border-bottom-color: transparent; - cursor: default; } - -.nav-pills > li { - float: left; } - .nav-pills > li > a { - border-radius: 4px; } - .nav-pills > li + li { - margin-left: 2px; } - .nav-pills > li.active > a, .nav-pills > li.active > a:hover, .nav-pills > li.active > a:focus { - color: #fff; - background-color: #337ab7; } - -.nav-stacked > li { - float: none; } - .nav-stacked > li + li { - margin-top: 2px; - margin-left: 0; } - -.nav-justified, .nav-tabs.nav-justified { - width: 100%; } - .nav-justified > li, .nav-tabs.nav-justified > li { - float: none; } - .nav-justified > li > a, .nav-tabs.nav-justified > li > a { - text-align: center; - margin-bottom: 5px; } - .nav-justified > .dropdown .dropdown-menu { - top: auto; - left: auto; } - @media (min-width: 768px) { - .nav-justified > li, .nav-tabs.nav-justified > li { - display: table-cell; - width: 1%; } - .nav-justified > li > a, .nav-tabs.nav-justified > li > a { - margin-bottom: 0; } } - -.nav-tabs-justified, .nav-tabs.nav-justified { - border-bottom: 0; } - .nav-tabs-justified > li > a, .nav-tabs.nav-justified > li > a { - margin-right: 0; - border-radius: 4px; } - .nav-tabs-justified > .active > a, .nav-tabs.nav-justified > .active > a, - .nav-tabs-justified > .active > a:hover, - .nav-tabs.nav-justified > .active > a:hover, - .nav-tabs-justified > .active > a:focus, - .nav-tabs.nav-justified > .active > a:focus { - border: 1px solid #ddd; } - @media (min-width: 768px) { - .nav-tabs-justified > li > a, .nav-tabs.nav-justified > li > a { - border-bottom: 1px solid #ddd; - border-radius: 4px 4px 0 0; } - .nav-tabs-justified > .active > a, .nav-tabs.nav-justified > .active > a, - .nav-tabs-justified > .active > a:hover, - .nav-tabs.nav-justified > .active > a:hover, - .nav-tabs-justified > .active > a:focus, - .nav-tabs.nav-justified > .active > a:focus { - border-bottom-color: #fff; } } - -.tab-content > .tab-pane { - display: none; } - -.tab-content > .active { - display: block; } - -.nav-tabs .dropdown-menu { - margin-top: -1px; - border-top-right-radius: 0; - border-top-left-radius: 0; } - -.navbar { - position: relative; - min-height: 50px; - margin-bottom: 20px; - border: 1px solid transparent; } - .navbar:before, .navbar:after { - content: " "; - display: table; } - .navbar:after { - clear: both; } - @media (min-width: 768px) { - .navbar { - border-radius: 4px; } } - -.navbar-header:before, .navbar-header:after { - content: " "; - display: table; } - -.navbar-header:after { - clear: both; } - -@media (min-width: 768px) { - .navbar-header { - float: left; } } - -.navbar-collapse { - overflow-x: visible; - padding-right: 15px; - padding-left: 15px; - border-top: 1px solid transparent; - box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1); - -webkit-overflow-scrolling: touch; } - .navbar-collapse:before, .navbar-collapse:after { - content: " "; - display: table; } - .navbar-collapse:after { - clear: both; } - .navbar-collapse.in { - overflow-y: auto; } - @media (min-width: 768px) { - .navbar-collapse { - width: auto; - border-top: 0; - box-shadow: none; } - .navbar-collapse.collapse { - display: block !important; - height: auto !important; - padding-bottom: 0; - overflow: visible !important; } - .navbar-collapse.in { - overflow-y: visible; } - .navbar-fixed-top .navbar-collapse, - .navbar-static-top .navbar-collapse, - .navbar-fixed-bottom .navbar-collapse { - padding-left: 0; - padding-right: 0; } } - -.navbar-fixed-top .navbar-collapse, -.navbar-fixed-bottom .navbar-collapse { - max-height: 340px; } - @media (max-device-width: 480px) and (orientation: landscape) { - .navbar-fixed-top .navbar-collapse, - .navbar-fixed-bottom .navbar-collapse { - max-height: 200px; } } - -.container > .navbar-header, -.container > .navbar-collapse, -.container-fluid > .navbar-header, -.container-fluid > .navbar-collapse { - margin-right: -15px; - margin-left: -15px; } - @media (min-width: 768px) { - .container > .navbar-header, - .container > .navbar-collapse, - .container-fluid > .navbar-header, - .container-fluid > .navbar-collapse { - margin-right: 0; - margin-left: 0; } } - -.navbar-static-top { - z-index: 1000; - border-width: 0 0 1px; } - @media (min-width: 768px) { - .navbar-static-top { - border-radius: 0; } } - -.navbar-fixed-top, -.navbar-fixed-bottom { - position: fixed; - right: 0; - left: 0; - z-index: 1030; } - @media (min-width: 768px) { - .navbar-fixed-top, - .navbar-fixed-bottom { - border-radius: 0; } } - -.navbar-fixed-top { - top: 0; - border-width: 0 0 1px; } - -.navbar-fixed-bottom { - bottom: 0; - margin-bottom: 0; - border-width: 1px 0 0; } - -.navbar-brand { - float: left; - padding: 15px 15px; - font-size: 18px; - line-height: 20px; - height: 50px; } - .navbar-brand:hover, .navbar-brand:focus { - text-decoration: none; } - .navbar-brand > img { - display: block; } - @media (min-width: 768px) { - .navbar > .container .navbar-brand, - .navbar > .container-fluid .navbar-brand { - margin-left: -15px; } } - -.navbar-toggle { - position: relative; - float: right; - margin-right: 15px; - padding: 9px 10px; - margin-top: 8px; - margin-bottom: 8px; - background-color: transparent; - background-image: none; - border: 1px solid transparent; - border-radius: 4px; } - .navbar-toggle:focus { - outline: 0; } - .navbar-toggle .icon-bar { - display: block; - width: 22px; - height: 2px; - border-radius: 1px; } - .navbar-toggle .icon-bar + .icon-bar { - margin-top: 4px; } - @media (min-width: 768px) { - .navbar-toggle { - display: none; } } - -.navbar-nav { - margin: 7.5px -15px; } - .navbar-nav > li > a { - padding-top: 10px; - padding-bottom: 10px; - line-height: 20px; } - @media (max-width: 767px) { - .navbar-nav .open .dropdown-menu { - position: static; - float: none; - width: auto; - margin-top: 0; - background-color: transparent; - border: 0; - box-shadow: none; } - .navbar-nav .open .dropdown-menu > li > a, - .navbar-nav .open .dropdown-menu .dropdown-header { - padding: 5px 15px 5px 25px; } - .navbar-nav .open .dropdown-menu > li > a { - line-height: 20px; } - .navbar-nav .open .dropdown-menu > li > a:hover, .navbar-nav .open .dropdown-menu > li > a:focus { - background-image: none; } } - @media (min-width: 768px) { - .navbar-nav { - float: left; - margin: 0; } - .navbar-nav > li { - float: left; } - .navbar-nav > li > a { - padding-top: 15px; - padding-bottom: 15px; } } - -.navbar-form { - margin-left: -15px; - margin-right: -15px; - padding: 10px 15px; - border-top: 1px solid transparent; - border-bottom: 1px solid transparent; - -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1); - box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1); - margin-top: 8px; - margin-bottom: 8px; } - @media (min-width: 768px) { - .navbar-form .form-group { - display: inline-block; - margin-bottom: 0; - vertical-align: middle; } - .navbar-form .form-control { - display: inline-block; - width: auto; - vertical-align: middle; } - .navbar-form .form-control-static { - display: inline-block; } - .navbar-form .input-group { - display: inline-table; - vertical-align: middle; } - .navbar-form .input-group .input-group-addon, - .navbar-form .input-group .input-group-btn, - .navbar-form .input-group .form-control { - width: auto; } - .navbar-form .input-group > .form-control { - width: 100%; } - .navbar-form .control-label { - margin-bottom: 0; - vertical-align: middle; } - .navbar-form .radio, - .navbar-form .checkbox { - display: inline-block; - margin-top: 0; - margin-bottom: 0; - vertical-align: middle; } - .navbar-form .radio label, - .navbar-form .checkbox label { - padding-left: 0; } - .navbar-form .radio input[type="radio"], - .navbar-form .checkbox input[type="checkbox"] { - position: relative; - margin-left: 0; } - .navbar-form .has-feedback .form-control-feedback { - top: 0; } } - @media (max-width: 767px) { - .navbar-form .form-group { - margin-bottom: 5px; } - .navbar-form .form-group:last-child { - margin-bottom: 0; } } - @media (min-width: 768px) { - .navbar-form { - width: auto; - border: 0; - margin-left: 0; - margin-right: 0; - padding-top: 0; - padding-bottom: 0; - -webkit-box-shadow: none; - box-shadow: none; } } - -.navbar-nav > li > .dropdown-menu { - margin-top: 0; - border-top-right-radius: 0; - border-top-left-radius: 0; } - -.navbar-fixed-bottom .navbar-nav > li > .dropdown-menu { - margin-bottom: 0; - border-top-right-radius: 4px; - border-top-left-radius: 4px; - border-bottom-right-radius: 0; - border-bottom-left-radius: 0; } - -.navbar-btn { - margin-top: 8px; - margin-bottom: 8px; } - .navbar-btn.btn-sm, .btn-group-sm > .navbar-btn.btn { - margin-top: 10px; - margin-bottom: 10px; } - .navbar-btn.btn-xs, .btn-group-xs > .navbar-btn.btn { - margin-top: 14px; - margin-bottom: 14px; } - -.navbar-text { - margin-top: 15px; - margin-bottom: 15px; } - @media (min-width: 768px) { - .navbar-text { - float: left; - margin-left: 15px; - margin-right: 15px; } } - -@media (min-width: 768px) { - .navbar-left { - float: left !important; } - .navbar-right { - float: right !important; - margin-right: -15px; } - .navbar-right ~ .navbar-right { - margin-right: 0; } } - -.navbar-default { - background-color: #f8f8f8; - border-color: #e7e7e7; } - .navbar-default .navbar-brand { - color: #777; } - .navbar-default .navbar-brand:hover, .navbar-default .navbar-brand:focus { - color: #5e5e5e; - background-color: transparent; } - .navbar-default .navbar-text { - color: #777; } - .navbar-default .navbar-nav > li > a { - color: #777; } - .navbar-default .navbar-nav > li > a:hover, .navbar-default .navbar-nav > li > a:focus { - color: #333; - background-color: transparent; } - .navbar-default .navbar-nav > .active > a, .navbar-default .navbar-nav > .active > a:hover, .navbar-default .navbar-nav > .active > a:focus { - color: #555; - background-color: #e7e7e7; } - .navbar-default .navbar-nav > .disabled > a, .navbar-default .navbar-nav > .disabled > a:hover, .navbar-default .navbar-nav > .disabled > a:focus { - color: #ccc; - background-color: transparent; } - .navbar-default .navbar-toggle { - border-color: #ddd; } - .navbar-default .navbar-toggle:hover, .navbar-default .navbar-toggle:focus { - background-color: #ddd; } - .navbar-default .navbar-toggle .icon-bar { - background-color: #888; } - .navbar-default .navbar-collapse, - .navbar-default .navbar-form { - border-color: #e7e7e7; } - .navbar-default .navbar-nav > .open > a, .navbar-default .navbar-nav > .open > a:hover, .navbar-default .navbar-nav > .open > a:focus { - background-color: #e7e7e7; - color: #555; } - @media (max-width: 767px) { - .navbar-default .navbar-nav .open .dropdown-menu > li > a { - color: #777; } - .navbar-default .navbar-nav .open .dropdown-menu > li > a:hover, .navbar-default .navbar-nav .open .dropdown-menu > li > a:focus { - color: #333; - background-color: transparent; } - .navbar-default .navbar-nav .open .dropdown-menu > .active > a, .navbar-default .navbar-nav .open .dropdown-menu > .active > a:hover, .navbar-default .navbar-nav .open .dropdown-menu > .active > a:focus { - color: #555; - background-color: #e7e7e7; } - .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a, .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:hover, .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:focus { - color: #ccc; - background-color: transparent; } } - .navbar-default .navbar-link { - color: #777; } - .navbar-default .navbar-link:hover { - color: #333; } - .navbar-default .btn-link { - color: #777; } - .navbar-default .btn-link:hover, .navbar-default .btn-link:focus { - color: #333; } - .navbar-default .btn-link[disabled]:hover, .navbar-default .btn-link[disabled]:focus, - fieldset[disabled] .navbar-default .btn-link:hover, - fieldset[disabled] .navbar-default .btn-link:focus { - color: #ccc; } - -.navbar-inverse { - background-color: #222; - border-color: #090909; } - .navbar-inverse .navbar-brand { - color: #9d9d9d; } - .navbar-inverse .navbar-brand:hover, .navbar-inverse .navbar-brand:focus { - color: #fff; - background-color: transparent; } - .navbar-inverse .navbar-text { - color: #9d9d9d; } - .navbar-inverse .navbar-nav > li > a { - color: #9d9d9d; } - .navbar-inverse .navbar-nav > li > a:hover, .navbar-inverse .navbar-nav > li > a:focus { - color: #fff; - background-color: transparent; } - .navbar-inverse .navbar-nav > .active > a, .navbar-inverse .navbar-nav > .active > a:hover, .navbar-inverse .navbar-nav > .active > a:focus { - color: #fff; - background-color: #090909; } - .navbar-inverse .navbar-nav > .disabled > a, .navbar-inverse .navbar-nav > .disabled > a:hover, .navbar-inverse .navbar-nav > .disabled > a:focus { - color: #444; - background-color: transparent; } - .navbar-inverse .navbar-toggle { - border-color: #333; } - .navbar-inverse .navbar-toggle:hover, .navbar-inverse .navbar-toggle:focus { - background-color: #333; } - .navbar-inverse .navbar-toggle .icon-bar { - background-color: #fff; } - .navbar-inverse .navbar-collapse, - .navbar-inverse .navbar-form { - border-color: #101010; } - .navbar-inverse .navbar-nav > .open > a, .navbar-inverse .navbar-nav > .open > a:hover, .navbar-inverse .navbar-nav > .open > a:focus { - background-color: #090909; - color: #fff; } - @media (max-width: 767px) { - .navbar-inverse .navbar-nav .open .dropdown-menu > .dropdown-header { - border-color: #090909; } - .navbar-inverse .navbar-nav .open .dropdown-menu .divider { - background-color: #090909; } - .navbar-inverse .navbar-nav .open .dropdown-menu > li > a { - color: #9d9d9d; } - .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:hover, .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:focus { - color: #fff; - background-color: transparent; } - .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a, .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:hover, .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:focus { - color: #fff; - background-color: #090909; } - .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a, .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:hover, .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:focus { - color: #444; - background-color: transparent; } } - .navbar-inverse .navbar-link { - color: #9d9d9d; } - .navbar-inverse .navbar-link:hover { - color: #fff; } - .navbar-inverse .btn-link { - color: #9d9d9d; } - .navbar-inverse .btn-link:hover, .navbar-inverse .btn-link:focus { - color: #fff; } - .navbar-inverse .btn-link[disabled]:hover, .navbar-inverse .btn-link[disabled]:focus, - fieldset[disabled] .navbar-inverse .btn-link:hover, - fieldset[disabled] .navbar-inverse .btn-link:focus { - color: #444; } - -.breadcrumb { - padding: 8px 15px; - margin-bottom: 20px; - list-style: none; - background-color: #f5f5f5; - border-radius: 4px; } - .breadcrumb > li { - display: inline-block; } - .breadcrumb > li + li:before { - content: "/\A0"; - padding: 0 5px; - color: #ccc; } - .breadcrumb > .active { - color: #777777; } - -.pagination { - display: inline-block; - padding-left: 0; - margin: 20px 0; - border-radius: 4px; } - .pagination > li { - display: inline; } - .pagination > li > a, - .pagination > li > span { - position: relative; - float: left; - padding: 6px 12px; - line-height: 1.42857; - text-decoration: none; - color: #337ab7; - background-color: #fff; - border: 1px solid #ddd; - margin-left: -1px; } - .pagination > li:first-child > a, - .pagination > li:first-child > span { - margin-left: 0; - border-bottom-left-radius: 4px; - border-top-left-radius: 4px; } - .pagination > li:last-child > a, - .pagination > li:last-child > span { - border-bottom-right-radius: 4px; - border-top-right-radius: 4px; } - .pagination > li > a:hover, .pagination > li > a:focus, - .pagination > li > span:hover, - .pagination > li > span:focus { - z-index: 2; - color: #23527c; - background-color: #eeeeee; - border-color: #ddd; } - .pagination > .active > a, .pagination > .active > a:hover, .pagination > .active > a:focus, - .pagination > .active > span, - .pagination > .active > span:hover, - .pagination > .active > span:focus { - z-index: 3; - color: #fff; - background-color: #337ab7; - border-color: #337ab7; - cursor: default; } - .pagination > .disabled > span, - .pagination > .disabled > span:hover, - .pagination > .disabled > span:focus, - .pagination > .disabled > a, - .pagination > .disabled > a:hover, - .pagination > .disabled > a:focus { - color: #777777; - background-color: #fff; - border-color: #ddd; - cursor: not-allowed; } - -.pagination-lg > li > a, -.pagination-lg > li > span { - padding: 10px 16px; - font-size: 18px; - line-height: 1.33333; } - -.pagination-lg > li:first-child > a, -.pagination-lg > li:first-child > span { - border-bottom-left-radius: 6px; - border-top-left-radius: 6px; } - -.pagination-lg > li:last-child > a, -.pagination-lg > li:last-child > span { - border-bottom-right-radius: 6px; - border-top-right-radius: 6px; } - -.pagination-sm > li > a, -.pagination-sm > li > span { - padding: 5px 10px; - font-size: 12px; - line-height: 1.5; } - -.pagination-sm > li:first-child > a, -.pagination-sm > li:first-child > span { - border-bottom-left-radius: 3px; - border-top-left-radius: 3px; } - -.pagination-sm > li:last-child > a, -.pagination-sm > li:last-child > span { - border-bottom-right-radius: 3px; - border-top-right-radius: 3px; } - -.pager { - padding-left: 0; - margin: 20px 0; - list-style: none; - text-align: center; } - .pager:before, .pager:after { - content: " "; - display: table; } - .pager:after { - clear: both; } - .pager li { - display: inline; } - .pager li > a, - .pager li > span { - display: inline-block; - padding: 5px 14px; - background-color: #fff; - border: 1px solid #ddd; - border-radius: 15px; } - .pager li > a:hover, - .pager li > a:focus { - text-decoration: none; - background-color: #eeeeee; } - .pager .next > a, - .pager .next > span { - float: right; } - .pager .previous > a, - .pager .previous > span { - float: left; } - .pager .disabled > a, - .pager .disabled > a:hover, - .pager .disabled > a:focus, - .pager .disabled > span { - color: #777777; - background-color: #fff; - cursor: not-allowed; } - -.label { - display: inline; - padding: .2em .6em .3em; - font-size: 75%; - font-weight: bold; - line-height: 1; - color: #fff; - text-align: center; - white-space: nowrap; - vertical-align: baseline; - border-radius: .25em; } - .label:empty { - display: none; } - .btn .label { - position: relative; - top: -1px; } - -a.label:hover, a.label:focus { - color: #fff; - text-decoration: none; - cursor: pointer; } - -.label-default { - background-color: #777777; } - .label-default[href]:hover, .label-default[href]:focus { - background-color: #5e5e5e; } - -.label-primary { - background-color: #337ab7; } - .label-primary[href]:hover, .label-primary[href]:focus { - background-color: #286090; } - -.label-success { - background-color: #5cb85c; } - .label-success[href]:hover, .label-success[href]:focus { - background-color: #449d44; } - -.label-info { - background-color: #5bc0de; } - .label-info[href]:hover, .label-info[href]:focus { - background-color: #31b0d5; } - -.label-warning { - background-color: #f0ad4e; } - .label-warning[href]:hover, .label-warning[href]:focus { - background-color: #ec971f; } - -.label-danger { - background-color: #d9534f; } - .label-danger[href]:hover, .label-danger[href]:focus { - background-color: #c9302c; } - -.badge { - display: inline-block; - min-width: 10px; - padding: 3px 7px; - font-size: 12px; - font-weight: bold; - color: #fff; - line-height: 1; - vertical-align: middle; - white-space: nowrap; - text-align: center; - background-color: #777777; - border-radius: 10px; } - .badge:empty { - display: none; } - .btn .badge { - position: relative; - top: -1px; } - .btn-xs .badge, .btn-group-xs > .btn .badge, - .btn-group-xs > .btn .badge { - top: 0; - padding: 1px 5px; } - .list-group-item.active > .badge, - .nav-pills > .active > a > .badge { - color: #337ab7; - background-color: #fff; } - .list-group-item > .badge { - float: right; } - .list-group-item > .badge + .badge { - margin-right: 5px; } - .nav-pills > li > a > .badge { - margin-left: 3px; } - -a.badge:hover, a.badge:focus { - color: #fff; - text-decoration: none; - cursor: pointer; } - -.jumbotron { - padding-top: 30px; - padding-bottom: 30px; - margin-bottom: 30px; - color: inherit; - background-color: #eeeeee; } - .jumbotron h1, - .jumbotron .h1 { - color: inherit; } - .jumbotron p { - margin-bottom: 15px; - font-size: 21px; - font-weight: 200; } - .jumbotron > hr { - border-top-color: #d5d5d5; } - .container .jumbotron, - .container-fluid .jumbotron { - border-radius: 6px; - padding-left: 15px; - padding-right: 15px; } - .jumbotron .container { - max-width: 100%; } - @media screen and (min-width: 768px) { - .jumbotron { - padding-top: 48px; - padding-bottom: 48px; } - .container .jumbotron, - .container-fluid .jumbotron { - padding-left: 60px; - padding-right: 60px; } - .jumbotron h1, - .jumbotron .h1 { - font-size: 63px; } } - -.thumbnail { - display: block; - padding: 4px; - margin-bottom: 20px; - line-height: 1.42857; - background-color: #fff; - border: 1px solid #ddd; - border-radius: 4px; - -webkit-transition: border 0.2s ease-in-out; - -o-transition: border 0.2s ease-in-out; - transition: border 0.2s ease-in-out; } - .thumbnail > img, - .thumbnail a > img { - display: block; - max-width: 100%; - height: auto; - margin-left: auto; - margin-right: auto; } - .thumbnail .caption { - padding: 9px; - color: #333333; } - -a.thumbnail:hover, -a.thumbnail:focus, -a.thumbnail.active { - border-color: #337ab7; } - -.alert { - padding: 15px; - margin-bottom: 20px; - border: 1px solid transparent; - border-radius: 4px; } - .alert h4 { - margin-top: 0; - color: inherit; } - .alert .alert-link { - font-weight: bold; } - .alert > p, - .alert > ul { - margin-bottom: 0; } - .alert > p + p { - margin-top: 5px; } - -.alert-dismissable, -.alert-dismissible { - padding-right: 35px; } - .alert-dismissable .close, - .alert-dismissible .close { - position: relative; - top: -2px; - right: -21px; - color: inherit; } - -.alert-success { - background-color: #dff0d8; - border-color: #d6e9c6; - color: #3c763d; } - .alert-success hr { - border-top-color: #c9e2b3; } - .alert-success .alert-link { - color: #2b542c; } - -.alert-info { - background-color: #d9edf7; - border-color: #bce8f1; - color: #31708f; } - .alert-info hr { - border-top-color: #a6e1ec; } - .alert-info .alert-link { - color: #245269; } - -.alert-warning { - background-color: #fcf8e3; - border-color: #faebcc; - color: #8a6d3b; } - .alert-warning hr { - border-top-color: #f7e1b5; } - .alert-warning .alert-link { - color: #66512c; } - -.alert-danger { - background-color: #f2dede; - border-color: #ebccd1; - color: #a94442; } - .alert-danger hr { - border-top-color: #e4b9c0; } - .alert-danger .alert-link { - color: #843534; } - -@-webkit-keyframes progress-bar-stripes { - from { - background-position: 40px 0; } - to { - background-position: 0 0; } } - -@keyframes progress-bar-stripes { - from { - background-position: 40px 0; } - to { - background-position: 0 0; } } - -.progress { - overflow: hidden; - height: 20px; - margin-bottom: 20px; - background-color: #f5f5f5; - border-radius: 4px; - -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); - box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); } - -.progress-bar { - float: left; - width: 0%; - height: 100%; - font-size: 12px; - line-height: 20px; - color: #fff; - text-align: center; - background-color: #337ab7; - -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); - box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); - -webkit-transition: width 0.6s ease; - -o-transition: width 0.6s ease; - transition: width 0.6s ease; } - -.progress-striped .progress-bar, -.progress-bar-striped { - background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-size: 40px 40px; } - -.progress.active .progress-bar, -.progress-bar.active { - -webkit-animation: progress-bar-stripes 2s linear infinite; - -o-animation: progress-bar-stripes 2s linear infinite; - animation: progress-bar-stripes 2s linear infinite; } - -.progress-bar-success { - background-color: #5cb85c; } - .progress-striped .progress-bar-success { - background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); } - -.progress-bar-info { - background-color: #5bc0de; } - .progress-striped .progress-bar-info { - background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); } - -.progress-bar-warning { - background-color: #f0ad4e; } - .progress-striped .progress-bar-warning { - background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); } - -.progress-bar-danger { - background-color: #d9534f; } - .progress-striped .progress-bar-danger { - background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); } - -.media { - margin-top: 15px; } - .media:first-child { - margin-top: 0; } - -.media, -.media-body { - zoom: 1; - overflow: hidden; } - -.media-body { - width: 10000px; } - -.media-object { - display: block; } - .media-object.img-thumbnail { - max-width: none; } - -.media-right, -.media > .pull-right { - padding-left: 10px; } - -.media-left, -.media > .pull-left { - padding-right: 10px; } - -.media-left, -.media-right, -.media-body { - display: table-cell; - vertical-align: top; } - -.media-middle { - vertical-align: middle; } - -.media-bottom { - vertical-align: bottom; } - -.media-heading { - margin-top: 0; - margin-bottom: 5px; } - -.media-list { - padding-left: 0; - list-style: none; } - -.list-group { - margin-bottom: 20px; - padding-left: 0; } - -.list-group-item { - position: relative; - display: block; - padding: 10px 15px; - margin-bottom: -1px; - background-color: #fff; - border: 1px solid #ddd; } - .list-group-item:first-child { - border-top-right-radius: 4px; - border-top-left-radius: 4px; } - .list-group-item:last-child { - margin-bottom: 0; - border-bottom-right-radius: 4px; - border-bottom-left-radius: 4px; } - -a.list-group-item, -button.list-group-item { - color: #555; } - a.list-group-item .list-group-item-heading, - button.list-group-item .list-group-item-heading { - color: #333; } - a.list-group-item:hover, a.list-group-item:focus, - button.list-group-item:hover, - button.list-group-item:focus { - text-decoration: none; - color: #555; - background-color: #f5f5f5; } - -button.list-group-item { - width: 100%; - text-align: left; } - -.list-group-item.disabled, .list-group-item.disabled:hover, .list-group-item.disabled:focus { - background-color: #eeeeee; - color: #777777; - cursor: not-allowed; } - .list-group-item.disabled .list-group-item-heading, .list-group-item.disabled:hover .list-group-item-heading, .list-group-item.disabled:focus .list-group-item-heading { - color: inherit; } - .list-group-item.disabled .list-group-item-text, .list-group-item.disabled:hover .list-group-item-text, .list-group-item.disabled:focus .list-group-item-text { - color: #777777; } - -.list-group-item.active, .list-group-item.active:hover, .list-group-item.active:focus { - z-index: 2; - color: #fff; - background-color: #337ab7; - border-color: #337ab7; } - .list-group-item.active .list-group-item-heading, - .list-group-item.active .list-group-item-heading > small, - .list-group-item.active .list-group-item-heading > .small, .list-group-item.active:hover .list-group-item-heading, - .list-group-item.active:hover .list-group-item-heading > small, - .list-group-item.active:hover .list-group-item-heading > .small, .list-group-item.active:focus .list-group-item-heading, - .list-group-item.active:focus .list-group-item-heading > small, - .list-group-item.active:focus .list-group-item-heading > .small { - color: inherit; } - .list-group-item.active .list-group-item-text, .list-group-item.active:hover .list-group-item-text, .list-group-item.active:focus .list-group-item-text { - color: #c7ddef; } - -.list-group-item-success { - color: #3c763d; - background-color: #dff0d8; } - -a.list-group-item-success, -button.list-group-item-success { - color: #3c763d; } - a.list-group-item-success .list-group-item-heading, - button.list-group-item-success .list-group-item-heading { - color: inherit; } - a.list-group-item-success:hover, a.list-group-item-success:focus, - button.list-group-item-success:hover, - button.list-group-item-success:focus { - color: #3c763d; - background-color: #d0e9c6; } - a.list-group-item-success.active, a.list-group-item-success.active:hover, a.list-group-item-success.active:focus, - button.list-group-item-success.active, - button.list-group-item-success.active:hover, - button.list-group-item-success.active:focus { - color: #fff; - background-color: #3c763d; - border-color: #3c763d; } - -.list-group-item-info { - color: #31708f; - background-color: #d9edf7; } - -a.list-group-item-info, -button.list-group-item-info { - color: #31708f; } - a.list-group-item-info .list-group-item-heading, - button.list-group-item-info .list-group-item-heading { - color: inherit; } - a.list-group-item-info:hover, a.list-group-item-info:focus, - button.list-group-item-info:hover, - button.list-group-item-info:focus { - color: #31708f; - background-color: #c4e3f3; } - a.list-group-item-info.active, a.list-group-item-info.active:hover, a.list-group-item-info.active:focus, - button.list-group-item-info.active, - button.list-group-item-info.active:hover, - button.list-group-item-info.active:focus { - color: #fff; - background-color: #31708f; - border-color: #31708f; } - -.list-group-item-warning { - color: #8a6d3b; - background-color: #fcf8e3; } - -a.list-group-item-warning, -button.list-group-item-warning { - color: #8a6d3b; } - a.list-group-item-warning .list-group-item-heading, - button.list-group-item-warning .list-group-item-heading { - color: inherit; } - a.list-group-item-warning:hover, a.list-group-item-warning:focus, - button.list-group-item-warning:hover, - button.list-group-item-warning:focus { - color: #8a6d3b; - background-color: #faf2cc; } - a.list-group-item-warning.active, a.list-group-item-warning.active:hover, a.list-group-item-warning.active:focus, - button.list-group-item-warning.active, - button.list-group-item-warning.active:hover, - button.list-group-item-warning.active:focus { - color: #fff; - background-color: #8a6d3b; - border-color: #8a6d3b; } - -.list-group-item-danger { - color: #a94442; - background-color: #f2dede; } - -a.list-group-item-danger, -button.list-group-item-danger { - color: #a94442; } - a.list-group-item-danger .list-group-item-heading, - button.list-group-item-danger .list-group-item-heading { - color: inherit; } - a.list-group-item-danger:hover, a.list-group-item-danger:focus, - button.list-group-item-danger:hover, - button.list-group-item-danger:focus { - color: #a94442; - background-color: #ebcccc; } - a.list-group-item-danger.active, a.list-group-item-danger.active:hover, a.list-group-item-danger.active:focus, - button.list-group-item-danger.active, - button.list-group-item-danger.active:hover, - button.list-group-item-danger.active:focus { - color: #fff; - background-color: #a94442; - border-color: #a94442; } - -.list-group-item-heading { - margin-top: 0; - margin-bottom: 5px; } - -.list-group-item-text { - margin-bottom: 0; - line-height: 1.3; } - -.panel { - margin-bottom: 20px; - background-color: #fff; - border: 1px solid transparent; - border-radius: 4px; - -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05); - box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05); } - -.panel-body { - padding: 15px; } - .panel-body:before, .panel-body:after { - content: " "; - display: table; } - .panel-body:after { - clear: both; } - -.panel-heading { - padding: 10px 15px; - border-bottom: 1px solid transparent; - border-top-right-radius: 3px; - border-top-left-radius: 3px; } - .panel-heading > .dropdown .dropdown-toggle { - color: inherit; } - -.panel-title { - margin-top: 0; - margin-bottom: 0; - font-size: 16px; - color: inherit; } - .panel-title > a, - .panel-title > small, - .panel-title > .small, - .panel-title > small > a, - .panel-title > .small > a { - color: inherit; } - -.panel-footer { - padding: 10px 15px; - background-color: #f5f5f5; - border-top: 1px solid #ddd; - border-bottom-right-radius: 3px; - border-bottom-left-radius: 3px; } - -.panel > .list-group, -.panel > .panel-collapse > .list-group { - margin-bottom: 0; } - .panel > .list-group .list-group-item, - .panel > .panel-collapse > .list-group .list-group-item { - border-width: 1px 0; - border-radius: 0; } - .panel > .list-group:first-child .list-group-item:first-child, - .panel > .panel-collapse > .list-group:first-child .list-group-item:first-child { - border-top: 0; - border-top-right-radius: 3px; - border-top-left-radius: 3px; } - .panel > .list-group:last-child .list-group-item:last-child, - .panel > .panel-collapse > .list-group:last-child .list-group-item:last-child { - border-bottom: 0; - border-bottom-right-radius: 3px; - border-bottom-left-radius: 3px; } - -.panel > .panel-heading + .panel-collapse > .list-group .list-group-item:first-child { - border-top-right-radius: 0; - border-top-left-radius: 0; } - -.panel-heading + .list-group .list-group-item:first-child { - border-top-width: 0; } - -.list-group + .panel-footer { - border-top-width: 0; } - -.panel > .table, -.panel > .table-responsive > .table, -.panel > .panel-collapse > .table { - margin-bottom: 0; } - .panel > .table caption, - .panel > .table-responsive > .table caption, - .panel > .panel-collapse > .table caption { - padding-left: 15px; - padding-right: 15px; } - -.panel > .table:first-child, -.panel > .table-responsive:first-child > .table:first-child { - border-top-right-radius: 3px; - border-top-left-radius: 3px; } - .panel > .table:first-child > thead:first-child > tr:first-child, - .panel > .table:first-child > tbody:first-child > tr:first-child, - .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child, - .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child { - border-top-left-radius: 3px; - border-top-right-radius: 3px; } - .panel > .table:first-child > thead:first-child > tr:first-child td:first-child, - .panel > .table:first-child > thead:first-child > tr:first-child th:first-child, - .panel > .table:first-child > tbody:first-child > tr:first-child td:first-child, - .panel > .table:first-child > tbody:first-child > tr:first-child th:first-child, - .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:first-child, - .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:first-child, - .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:first-child, - .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:first-child { - border-top-left-radius: 3px; } - .panel > .table:first-child > thead:first-child > tr:first-child td:last-child, - .panel > .table:first-child > thead:first-child > tr:first-child th:last-child, - .panel > .table:first-child > tbody:first-child > tr:first-child td:last-child, - .panel > .table:first-child > tbody:first-child > tr:first-child th:last-child, - .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:last-child, - .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:last-child, - .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:last-child, - .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:last-child { - border-top-right-radius: 3px; } - -.panel > .table:last-child, -.panel > .table-responsive:last-child > .table:last-child { - border-bottom-right-radius: 3px; - border-bottom-left-radius: 3px; } - .panel > .table:last-child > tbody:last-child > tr:last-child, - .panel > .table:last-child > tfoot:last-child > tr:last-child, - .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child, - .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child { - border-bottom-left-radius: 3px; - border-bottom-right-radius: 3px; } - .panel > .table:last-child > tbody:last-child > tr:last-child td:first-child, - .panel > .table:last-child > tbody:last-child > tr:last-child th:first-child, - .panel > .table:last-child > tfoot:last-child > tr:last-child td:first-child, - .panel > .table:last-child > tfoot:last-child > tr:last-child th:first-child, - .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:first-child, - .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:first-child, - .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:first-child, - .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:first-child { - border-bottom-left-radius: 3px; } - .panel > .table:last-child > tbody:last-child > tr:last-child td:last-child, - .panel > .table:last-child > tbody:last-child > tr:last-child th:last-child, - .panel > .table:last-child > tfoot:last-child > tr:last-child td:last-child, - .panel > .table:last-child > tfoot:last-child > tr:last-child th:last-child, - .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:last-child, - .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:last-child, - .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:last-child, - .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:last-child { - border-bottom-right-radius: 3px; } - -.panel > .panel-body + .table, -.panel > .panel-body + .table-responsive, -.panel > .table + .panel-body, -.panel > .table-responsive + .panel-body { - border-top: 1px solid #ddd; } - -.panel > .table > tbody:first-child > tr:first-child th, -.panel > .table > tbody:first-child > tr:first-child td { - border-top: 0; } - -.panel > .table-bordered, -.panel > .table-responsive > .table-bordered { - border: 0; } - .panel > .table-bordered > thead > tr > th:first-child, - .panel > .table-bordered > thead > tr > td:first-child, - .panel > .table-bordered > tbody > tr > th:first-child, - .panel > .table-bordered > tbody > tr > td:first-child, - .panel > .table-bordered > tfoot > tr > th:first-child, - .panel > .table-bordered > tfoot > tr > td:first-child, - .panel > .table-responsive > .table-bordered > thead > tr > th:first-child, - .panel > .table-responsive > .table-bordered > thead > tr > td:first-child, - .panel > .table-responsive > .table-bordered > tbody > tr > th:first-child, - .panel > .table-responsive > .table-bordered > tbody > tr > td:first-child, - .panel > .table-responsive > .table-bordered > tfoot > tr > th:first-child, - .panel > .table-responsive > .table-bordered > tfoot > tr > td:first-child { - border-left: 0; } - .panel > .table-bordered > thead > tr > th:last-child, - .panel > .table-bordered > thead > tr > td:last-child, - .panel > .table-bordered > tbody > tr > th:last-child, - .panel > .table-bordered > tbody > tr > td:last-child, - .panel > .table-bordered > tfoot > tr > th:last-child, - .panel > .table-bordered > tfoot > tr > td:last-child, - .panel > .table-responsive > .table-bordered > thead > tr > th:last-child, - .panel > .table-responsive > .table-bordered > thead > tr > td:last-child, - .panel > .table-responsive > .table-bordered > tbody > tr > th:last-child, - .panel > .table-responsive > .table-bordered > tbody > tr > td:last-child, - .panel > .table-responsive > .table-bordered > tfoot > tr > th:last-child, - .panel > .table-responsive > .table-bordered > tfoot > tr > td:last-child { - border-right: 0; } - .panel > .table-bordered > thead > tr:first-child > td, - .panel > .table-bordered > thead > tr:first-child > th, - .panel > .table-bordered > tbody > tr:first-child > td, - .panel > .table-bordered > tbody > tr:first-child > th, - .panel > .table-responsive > .table-bordered > thead > tr:first-child > td, - .panel > .table-responsive > .table-bordered > thead > tr:first-child > th, - .panel > .table-responsive > .table-bordered > tbody > tr:first-child > td, - .panel > .table-responsive > .table-bordered > tbody > tr:first-child > th { - border-bottom: 0; } - .panel > .table-bordered > tbody > tr:last-child > td, - .panel > .table-bordered > tbody > tr:last-child > th, - .panel > .table-bordered > tfoot > tr:last-child > td, - .panel > .table-bordered > tfoot > tr:last-child > th, - .panel > .table-responsive > .table-bordered > tbody > tr:last-child > td, - .panel > .table-responsive > .table-bordered > tbody > tr:last-child > th, - .panel > .table-responsive > .table-bordered > tfoot > tr:last-child > td, - .panel > .table-responsive > .table-bordered > tfoot > tr:last-child > th { - border-bottom: 0; } - -.panel > .table-responsive { - border: 0; - margin-bottom: 0; } - -.panel-group { - margin-bottom: 20px; } - .panel-group .panel { - margin-bottom: 0; - border-radius: 4px; } - .panel-group .panel + .panel { - margin-top: 5px; } - .panel-group .panel-heading { - border-bottom: 0; } - .panel-group .panel-heading + .panel-collapse > .panel-body, - .panel-group .panel-heading + .panel-collapse > .list-group { - border-top: 1px solid #ddd; } - .panel-group .panel-footer { - border-top: 0; } - .panel-group .panel-footer + .panel-collapse .panel-body { - border-bottom: 1px solid #ddd; } - -.panel-default { - border-color: #ddd; } - .panel-default > .panel-heading { - color: #333333; - background-color: #f5f5f5; - border-color: #ddd; } - .panel-default > .panel-heading + .panel-collapse > .panel-body { - border-top-color: #ddd; } - .panel-default > .panel-heading .badge { - color: #f5f5f5; - background-color: #333333; } - .panel-default > .panel-footer + .panel-collapse > .panel-body { - border-bottom-color: #ddd; } - -.panel-primary { - border-color: #337ab7; } - .panel-primary > .panel-heading { - color: #fff; - background-color: #337ab7; - border-color: #337ab7; } - .panel-primary > .panel-heading + .panel-collapse > .panel-body { - border-top-color: #337ab7; } - .panel-primary > .panel-heading .badge { - color: #337ab7; - background-color: #fff; } - .panel-primary > .panel-footer + .panel-collapse > .panel-body { - border-bottom-color: #337ab7; } - -.panel-success { - border-color: #d6e9c6; } - .panel-success > .panel-heading { - color: #3c763d; - background-color: #dff0d8; - border-color: #d6e9c6; } - .panel-success > .panel-heading + .panel-collapse > .panel-body { - border-top-color: #d6e9c6; } - .panel-success > .panel-heading .badge { - color: #dff0d8; - background-color: #3c763d; } - .panel-success > .panel-footer + .panel-collapse > .panel-body { - border-bottom-color: #d6e9c6; } - -.panel-info { - border-color: #bce8f1; } - .panel-info > .panel-heading { - color: #31708f; - background-color: #d9edf7; - border-color: #bce8f1; } - .panel-info > .panel-heading + .panel-collapse > .panel-body { - border-top-color: #bce8f1; } - .panel-info > .panel-heading .badge { - color: #d9edf7; - background-color: #31708f; } - .panel-info > .panel-footer + .panel-collapse > .panel-body { - border-bottom-color: #bce8f1; } - -.panel-warning { - border-color: #faebcc; } - .panel-warning > .panel-heading { - color: #8a6d3b; - background-color: #fcf8e3; - border-color: #faebcc; } - .panel-warning > .panel-heading + .panel-collapse > .panel-body { - border-top-color: #faebcc; } - .panel-warning > .panel-heading .badge { - color: #fcf8e3; - background-color: #8a6d3b; } - .panel-warning > .panel-footer + .panel-collapse > .panel-body { - border-bottom-color: #faebcc; } - -.panel-danger { - border-color: #ebccd1; } - .panel-danger > .panel-heading { - color: #a94442; - background-color: #f2dede; - border-color: #ebccd1; } - .panel-danger > .panel-heading + .panel-collapse > .panel-body { - border-top-color: #ebccd1; } - .panel-danger > .panel-heading .badge { - color: #f2dede; - background-color: #a94442; } - .panel-danger > .panel-footer + .panel-collapse > .panel-body { - border-bottom-color: #ebccd1; } - -.embed-responsive { - position: relative; - display: block; - height: 0; - padding: 0; - overflow: hidden; } - .embed-responsive .embed-responsive-item, - .embed-responsive iframe, - .embed-responsive embed, - .embed-responsive object, - .embed-responsive video { - position: absolute; - top: 0; - left: 0; - bottom: 0; - height: 100%; - width: 100%; - border: 0; } - -.embed-responsive-16by9 { - padding-bottom: 56.25%; } - -.embed-responsive-4by3 { - padding-bottom: 75%; } - -.well { - min-height: 20px; - padding: 19px; - margin-bottom: 20px; - background-color: #f5f5f5; - border: 1px solid #e3e3e3; - border-radius: 4px; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); } - .well blockquote { - border-color: #ddd; - border-color: rgba(0, 0, 0, 0.15); } - -.well-lg { - padding: 24px; - border-radius: 6px; } - -.well-sm { - padding: 9px; - border-radius: 3px; } - -.close { - float: right; - font-size: 21px; - font-weight: bold; - line-height: 1; - color: #000; - text-shadow: 0 1px 0 #fff; - opacity: 0.2; - filter: alpha(opacity=20); } - .close:hover, .close:focus { - color: #000; - text-decoration: none; - cursor: pointer; - opacity: 0.5; - filter: alpha(opacity=50); } - -button.close { - padding: 0; - cursor: pointer; - background: transparent; - border: 0; - -webkit-appearance: none; } - -.modal-open { - overflow: hidden; } - -.modal { - display: none; - overflow: hidden; - position: fixed; - top: 0; - right: 0; - bottom: 0; - left: 0; - z-index: 1050; - -webkit-overflow-scrolling: touch; - outline: 0; } - .modal.fade .modal-dialog { - -webkit-transform: translate(0, -25%); - -ms-transform: translate(0, -25%); - -o-transform: translate(0, -25%); - transform: translate(0, -25%); - -webkit-transition: -webkit-transform 0.3s ease-out; - -moz-transition: -moz-transform 0.3s ease-out; - -o-transition: -o-transform 0.3s ease-out; - transition: transform 0.3s ease-out; } - .modal.in .modal-dialog { - -webkit-transform: translate(0, 0); - -ms-transform: translate(0, 0); - -o-transform: translate(0, 0); - transform: translate(0, 0); } - -.modal-open .modal { - overflow-x: hidden; - overflow-y: auto; } - -.modal-dialog { - position: relative; - width: auto; - margin: 10px; } - -.modal-content { - position: relative; - background-color: #fff; - border: 1px solid #999; - border: 1px solid rgba(0, 0, 0, 0.2); - border-radius: 6px; - -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5); - box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5); - background-clip: padding-box; - outline: 0; } - -.modal-backdrop { - position: fixed; - top: 0; - right: 0; - bottom: 0; - left: 0; - z-index: 1040; - background-color: #000; } - .modal-backdrop.fade { - opacity: 0; - filter: alpha(opacity=0); } - .modal-backdrop.in { - opacity: 0.5; - filter: alpha(opacity=50); } - -.modal-header { - padding: 15px; - border-bottom: 1px solid #e5e5e5; } - .modal-header:before, .modal-header:after { - content: " "; - display: table; } - .modal-header:after { - clear: both; } - -.modal-header .close { - margin-top: -2px; } - -.modal-title { - margin: 0; - line-height: 1.42857; } - -.modal-body { - position: relative; - padding: 15px; } - -.modal-footer { - padding: 15px; - text-align: right; - border-top: 1px solid #e5e5e5; } - .modal-footer:before, .modal-footer:after { - content: " "; - display: table; } - .modal-footer:after { - clear: both; } - .modal-footer .btn + .btn { - margin-left: 5px; - margin-bottom: 0; } - .modal-footer .btn-group .btn + .btn { - margin-left: -1px; } - .modal-footer .btn-block + .btn-block { - margin-left: 0; } - -.modal-scrollbar-measure { - position: absolute; - top: -9999px; - width: 50px; - height: 50px; - overflow: scroll; } - -@media (min-width: 768px) { - .modal-dialog { - width: 600px; - margin: 30px auto; } - .modal-content { - -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5); - box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5); } - .modal-sm { - width: 300px; } } - -@media (min-width: 992px) { - .modal-lg { - width: 900px; } } - -.tooltip { - position: absolute; - z-index: 1070; - display: block; - font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; - font-style: normal; - font-weight: normal; - letter-spacing: normal; - line-break: auto; - line-height: 1.42857; - text-align: left; - text-align: start; - text-decoration: none; - text-shadow: none; - text-transform: none; - white-space: normal; - word-break: normal; - word-spacing: normal; - word-wrap: normal; - font-size: 12px; - opacity: 0; - filter: alpha(opacity=0); } - .tooltip.in { - opacity: 0.9; - filter: alpha(opacity=90); } - .tooltip.top { - margin-top: -3px; - padding: 5px 0; } - .tooltip.right { - margin-left: 3px; - padding: 0 5px; } - .tooltip.bottom { - margin-top: 3px; - padding: 5px 0; } - .tooltip.left { - margin-left: -3px; - padding: 0 5px; } - -.tooltip-inner { - max-width: 200px; - padding: 3px 8px; - color: #fff; - text-align: center; - background-color: #000; - border-radius: 4px; } - -.tooltip-arrow { - position: absolute; - width: 0; - height: 0; - border-color: transparent; - border-style: solid; } - -.tooltip.top .tooltip-arrow { - bottom: 0; - left: 50%; - margin-left: -5px; - border-width: 5px 5px 0; - border-top-color: #000; } - -.tooltip.top-left .tooltip-arrow { - bottom: 0; - right: 5px; - margin-bottom: -5px; - border-width: 5px 5px 0; - border-top-color: #000; } - -.tooltip.top-right .tooltip-arrow { - bottom: 0; - left: 5px; - margin-bottom: -5px; - border-width: 5px 5px 0; - border-top-color: #000; } - -.tooltip.right .tooltip-arrow { - top: 50%; - left: 0; - margin-top: -5px; - border-width: 5px 5px 5px 0; - border-right-color: #000; } - -.tooltip.left .tooltip-arrow { - top: 50%; - right: 0; - margin-top: -5px; - border-width: 5px 0 5px 5px; - border-left-color: #000; } - -.tooltip.bottom .tooltip-arrow { - top: 0; - left: 50%; - margin-left: -5px; - border-width: 0 5px 5px; - border-bottom-color: #000; } - -.tooltip.bottom-left .tooltip-arrow { - top: 0; - right: 5px; - margin-top: -5px; - border-width: 0 5px 5px; - border-bottom-color: #000; } - -.tooltip.bottom-right .tooltip-arrow { - top: 0; - left: 5px; - margin-top: -5px; - border-width: 0 5px 5px; - border-bottom-color: #000; } - -.popover { - position: absolute; - top: 0; - left: 0; - z-index: 1060; - display: none; - max-width: 276px; - padding: 1px; - font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; - font-style: normal; - font-weight: normal; - letter-spacing: normal; - line-break: auto; - line-height: 1.42857; - text-align: left; - text-align: start; - text-decoration: none; - text-shadow: none; - text-transform: none; - white-space: normal; - word-break: normal; - word-spacing: normal; - word-wrap: normal; - font-size: 14px; - background-color: #fff; - background-clip: padding-box; - border: 1px solid #ccc; - border: 1px solid rgba(0, 0, 0, 0.2); - border-radius: 6px; - -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); - box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); } - .popover.top { - margin-top: -10px; } - .popover.right { - margin-left: 10px; } - .popover.bottom { - margin-top: 10px; } - .popover.left { - margin-left: -10px; } - -.popover-title { - margin: 0; - padding: 8px 14px; - font-size: 14px; - background-color: #f7f7f7; - border-bottom: 1px solid #ebebeb; - border-radius: 5px 5px 0 0; } - -.popover-content { - padding: 9px 14px; } - -.popover > .arrow, .popover > .arrow:after { - position: absolute; - display: block; - width: 0; - height: 0; - border-color: transparent; - border-style: solid; } - -.popover > .arrow { - border-width: 11px; } - -.popover > .arrow:after { - border-width: 10px; - content: ""; } - -.popover.top > .arrow { - left: 50%; - margin-left: -11px; - border-bottom-width: 0; - border-top-color: #999999; - border-top-color: rgba(0, 0, 0, 0.25); - bottom: -11px; } - .popover.top > .arrow:after { - content: " "; - bottom: 1px; - margin-left: -10px; - border-bottom-width: 0; - border-top-color: #fff; } - -.popover.right > .arrow { - top: 50%; - left: -11px; - margin-top: -11px; - border-left-width: 0; - border-right-color: #999999; - border-right-color: rgba(0, 0, 0, 0.25); } - .popover.right > .arrow:after { - content: " "; - left: 1px; - bottom: -10px; - border-left-width: 0; - border-right-color: #fff; } - -.popover.bottom > .arrow { - left: 50%; - margin-left: -11px; - border-top-width: 0; - border-bottom-color: #999999; - border-bottom-color: rgba(0, 0, 0, 0.25); - top: -11px; } - .popover.bottom > .arrow:after { - content: " "; - top: 1px; - margin-left: -10px; - border-top-width: 0; - border-bottom-color: #fff; } - -.popover.left > .arrow { - top: 50%; - right: -11px; - margin-top: -11px; - border-right-width: 0; - border-left-color: #999999; - border-left-color: rgba(0, 0, 0, 0.25); } - .popover.left > .arrow:after { - content: " "; - right: 1px; - border-right-width: 0; - border-left-color: #fff; - bottom: -10px; } - -.carousel { - position: relative; } - -.carousel-inner { - position: relative; - overflow: hidden; - width: 100%; } - .carousel-inner > .item { - display: none; - position: relative; - -webkit-transition: 0.6s ease-in-out left; - -o-transition: 0.6s ease-in-out left; - transition: 0.6s ease-in-out left; } - .carousel-inner > .item > img, - .carousel-inner > .item > a > img { - display: block; - max-width: 100%; - height: auto; - line-height: 1; } - @media all and (transform-3d), (-webkit-transform-3d) { - .carousel-inner > .item { - -webkit-transition: -webkit-transform 0.6s ease-in-out; - -moz-transition: -moz-transform 0.6s ease-in-out; - -o-transition: -o-transform 0.6s ease-in-out; - transition: transform 0.6s ease-in-out; - -webkit-backface-visibility: hidden; - -moz-backface-visibility: hidden; - backface-visibility: hidden; - -webkit-perspective: 1000px; - -moz-perspective: 1000px; - perspective: 1000px; } - .carousel-inner > .item.next, .carousel-inner > .item.active.right { - -webkit-transform: translate3d(100%, 0, 0); - transform: translate3d(100%, 0, 0); - left: 0; } - .carousel-inner > .item.prev, .carousel-inner > .item.active.left { - -webkit-transform: translate3d(-100%, 0, 0); - transform: translate3d(-100%, 0, 0); - left: 0; } - .carousel-inner > .item.next.left, .carousel-inner > .item.prev.right, .carousel-inner > .item.active { - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - left: 0; } } - .carousel-inner > .active, - .carousel-inner > .next, - .carousel-inner > .prev { - display: block; } - .carousel-inner > .active { - left: 0; } - .carousel-inner > .next, - .carousel-inner > .prev { - position: absolute; - top: 0; - width: 100%; } - .carousel-inner > .next { - left: 100%; } - .carousel-inner > .prev { - left: -100%; } - .carousel-inner > .next.left, - .carousel-inner > .prev.right { - left: 0; } - .carousel-inner > .active.left { - left: -100%; } - .carousel-inner > .active.right { - left: 100%; } - -.carousel-control { - position: absolute; - top: 0; - left: 0; - bottom: 0; - width: 15%; - opacity: 0.5; - filter: alpha(opacity=50); - font-size: 20px; - color: #fff; - text-align: center; - text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6); - background-color: rgba(0, 0, 0, 0); } - .carousel-control.left { - background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%); - background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%); - background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1); } - .carousel-control.right { - left: auto; - right: 0; - background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%); - background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%); - background-image: linear-gradient(to right, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1); } - .carousel-control:hover, .carousel-control:focus { - outline: 0; - color: #fff; - text-decoration: none; - opacity: 0.9; - filter: alpha(opacity=90); } - .carousel-control .icon-prev, - .carousel-control .icon-next, - .carousel-control .glyphicon-chevron-left, - .carousel-control .glyphicon-chevron-right { - position: absolute; - top: 50%; - margin-top: -10px; - z-index: 5; - display: inline-block; } - .carousel-control .icon-prev, - .carousel-control .glyphicon-chevron-left { - left: 50%; - margin-left: -10px; } - .carousel-control .icon-next, - .carousel-control .glyphicon-chevron-right { - right: 50%; - margin-right: -10px; } - .carousel-control .icon-prev, - .carousel-control .icon-next { - width: 20px; - height: 20px; - line-height: 1; - font-family: serif; } - .carousel-control .icon-prev:before { - content: '\2039'; } - .carousel-control .icon-next:before { - content: '\203A'; } - -.carousel-indicators { - position: absolute; - bottom: 10px; - left: 50%; - z-index: 15; - width: 60%; - margin-left: -30%; - padding-left: 0; - list-style: none; - text-align: center; } - .carousel-indicators li { - display: inline-block; - width: 10px; - height: 10px; - margin: 1px; - text-indent: -999px; - border: 1px solid #fff; - border-radius: 10px; - cursor: pointer; - background-color: #000 \9; - background-color: rgba(0, 0, 0, 0); } - .carousel-indicators .active { - margin: 0; - width: 12px; - height: 12px; - background-color: #fff; } - -.carousel-caption { - position: absolute; - left: 15%; - right: 15%; - bottom: 20px; - z-index: 10; - padding-top: 20px; - padding-bottom: 20px; - color: #fff; - text-align: center; - text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6); } - .carousel-caption .btn { - text-shadow: none; } - -@media screen and (min-width: 768px) { - .carousel-control .glyphicon-chevron-left, - .carousel-control .glyphicon-chevron-right, - .carousel-control .icon-prev, - .carousel-control .icon-next { - width: 30px; - height: 30px; - margin-top: -10px; - font-size: 30px; } - .carousel-control .glyphicon-chevron-left, - .carousel-control .icon-prev { - margin-left: -10px; } - .carousel-control .glyphicon-chevron-right, - .carousel-control .icon-next { - margin-right: -10px; } - .carousel-caption { - left: 20%; - right: 20%; - padding-bottom: 30px; } - .carousel-indicators { - bottom: 20px; } } - -.clearfix:before, .clearfix:after { - content: " "; - display: table; } - -.clearfix:after { - clear: both; } - -.center-block { - display: block; - margin-left: auto; - margin-right: auto; } - -.pull-right { - float: right !important; } - -.pull-left { - float: left !important; } - -.hide { - display: none !important; } - -.show { - display: block !important; } - -.invisible { - visibility: hidden; } - -.text-hide { - font: 0/0 a; - color: transparent; - text-shadow: none; - background-color: transparent; - border: 0; } - -.hidden { - display: none !important; } - -.affix { - position: fixed; } - -@-ms-viewport { - width: device-width; } - -.visible-xs { - display: none !important; } - -.visible-sm { - display: none !important; } - -.visible-md { - display: none !important; } - -.visible-lg { - display: none !important; } - -.visible-xs-block, -.visible-xs-inline, -.visible-xs-inline-block, -.visible-sm-block, -.visible-sm-inline, -.visible-sm-inline-block, -.visible-md-block, -.visible-md-inline, -.visible-md-inline-block, -.visible-lg-block, -.visible-lg-inline, -.visible-lg-inline-block { - display: none !important; } - -@media (max-width: 767px) { - .visible-xs { - display: block !important; } - table.visible-xs { - display: table !important; } - tr.visible-xs { - display: table-row !important; } - th.visible-xs, - td.visible-xs { - display: table-cell !important; } } - -@media (max-width: 767px) { - .visible-xs-block { - display: block !important; } } - -@media (max-width: 767px) { - .visible-xs-inline { - display: inline !important; } } - -@media (max-width: 767px) { - .visible-xs-inline-block { - display: inline-block !important; } } - -@media (min-width: 768px) and (max-width: 991px) { - .visible-sm { - display: block !important; } - table.visible-sm { - display: table !important; } - tr.visible-sm { - display: table-row !important; } - th.visible-sm, - td.visible-sm { - display: table-cell !important; } } - -@media (min-width: 768px) and (max-width: 991px) { - .visible-sm-block { - display: block !important; } } - -@media (min-width: 768px) and (max-width: 991px) { - .visible-sm-inline { - display: inline !important; } } - -@media (min-width: 768px) and (max-width: 991px) { - .visible-sm-inline-block { - display: inline-block !important; } } - -@media (min-width: 992px) and (max-width: 1199px) { - .visible-md { - display: block !important; } - table.visible-md { - display: table !important; } - tr.visible-md { - display: table-row !important; } - th.visible-md, - td.visible-md { - display: table-cell !important; } } - -@media (min-width: 992px) and (max-width: 1199px) { - .visible-md-block { - display: block !important; } } - -@media (min-width: 992px) and (max-width: 1199px) { - .visible-md-inline { - display: inline !important; } } - -@media (min-width: 992px) and (max-width: 1199px) { - .visible-md-inline-block { - display: inline-block !important; } } - -@media (min-width: 1200px) { - .visible-lg { - display: block !important; } - table.visible-lg { - display: table !important; } - tr.visible-lg { - display: table-row !important; } - th.visible-lg, - td.visible-lg { - display: table-cell !important; } } - -@media (min-width: 1200px) { - .visible-lg-block { - display: block !important; } } - -@media (min-width: 1200px) { - .visible-lg-inline { - display: inline !important; } } - -@media (min-width: 1200px) { - .visible-lg-inline-block { - display: inline-block !important; } } - -@media (max-width: 767px) { - .hidden-xs { - display: none !important; } } - -@media (min-width: 768px) and (max-width: 991px) { - .hidden-sm { - display: none !important; } } - -@media (min-width: 992px) and (max-width: 1199px) { - .hidden-md { - display: none !important; } } - -@media (min-width: 1200px) { - .hidden-lg { - display: none !important; } } - -.visible-print { - display: none !important; } - -@media print { - .visible-print { - display: block !important; } - table.visible-print { - display: table !important; } - tr.visible-print { - display: table-row !important; } - th.visible-print, - td.visible-print { - display: table-cell !important; } } - -.visible-print-block { - display: none !important; } - @media print { - .visible-print-block { - display: block !important; } } - -.visible-print-inline { - display: none !important; } - @media print { - .visible-print-inline { - display: inline !important; } } - -.visible-print-inline-block { - display: none !important; } - @media print { - .visible-print-inline-block { - display: inline-block !important; } } - -@media print { - .hidden-print { - display: none !important; } } +/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */@media print{*,:after,:before{background:transparent!important;color:#000!important;box-shadow:none!important;text-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="#"]:after,a[href^="javascript:"]:after{content:""}blockquote,pre{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}img{max-width:100%!important}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}.navbar{display:none}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000!important}.label{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #ddd!important}}@font-face{font-family:Glyphicons Halflings;src:url(./fonts/glyphicons-halflings-regular.eot?f4769f9b);src:url(./fonts/glyphicons-halflings-regular.eot?f4769f9b?#iefix) format("embedded-opentype"),url(./fonts/glyphicons-halflings-regular.woff2?448c34a5) format("woff2"),url(./fonts/glyphicons-halflings-regular.woff?fa277232) format("woff"),url(./fonts/glyphicons-halflings-regular.ttf?e18bbf61) format("truetype"),url(./images/glyphicons-halflings-regular.svg?89889688#glyphicons_halflingsregular) format("svg")}.glyphicon{position:relative;top:1px;display:inline-block;font-family:Glyphicons Halflings;font-style:normal;font-weight:400;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.glyphicon-asterisk:before{content:"*"}.glyphicon-plus:before{content:"+"}.glyphicon-eur:before,.glyphicon-euro:before{content:"\20AC"}.glyphicon-minus:before{content:"\2212"}.glyphicon-cloud:before{content:"\2601"}.glyphicon-envelope:before{content:"\2709"}.glyphicon-pencil:before{content:"\270F"}.glyphicon-glass:before{content:"\E001"}.glyphicon-music:before{content:"\E002"}.glyphicon-search:before{content:"\E003"}.glyphicon-heart:before{content:"\E005"}.glyphicon-star:before{content:"\E006"}.glyphicon-star-empty:before{content:"\E007"}.glyphicon-user:before{content:"\E008"}.glyphicon-film:before{content:"\E009"}.glyphicon-th-large:before{content:"\E010"}.glyphicon-th:before{content:"\E011"}.glyphicon-th-list:before{content:"\E012"}.glyphicon-ok:before{content:"\E013"}.glyphicon-remove:before{content:"\E014"}.glyphicon-zoom-in:before{content:"\E015"}.glyphicon-zoom-out:before{content:"\E016"}.glyphicon-off:before{content:"\E017"}.glyphicon-signal:before{content:"\E018"}.glyphicon-cog:before{content:"\E019"}.glyphicon-trash:before{content:"\E020"}.glyphicon-home:before{content:"\E021"}.glyphicon-file:before{content:"\E022"}.glyphicon-time:before{content:"\E023"}.glyphicon-road:before{content:"\E024"}.glyphicon-download-alt:before{content:"\E025"}.glyphicon-download:before{content:"\E026"}.glyphicon-upload:before{content:"\E027"}.glyphicon-inbox:before{content:"\E028"}.glyphicon-play-circle:before{content:"\E029"}.glyphicon-repeat:before{content:"\E030"}.glyphicon-refresh:before{content:"\E031"}.glyphicon-list-alt:before{content:"\E032"}.glyphicon-lock:before{content:"\E033"}.glyphicon-flag:before{content:"\E034"}.glyphicon-headphones:before{content:"\E035"}.glyphicon-volume-off:before{content:"\E036"}.glyphicon-volume-down:before{content:"\E037"}.glyphicon-volume-up:before{content:"\E038"}.glyphicon-qrcode:before{content:"\E039"}.glyphicon-barcode:before{content:"\E040"}.glyphicon-tag:before{content:"\E041"}.glyphicon-tags:before{content:"\E042"}.glyphicon-book:before{content:"\E043"}.glyphicon-bookmark:before{content:"\E044"}.glyphicon-print:before{content:"\E045"}.glyphicon-camera:before{content:"\E046"}.glyphicon-font:before{content:"\E047"}.glyphicon-bold:before{content:"\E048"}.glyphicon-italic:before{content:"\E049"}.glyphicon-text-height:before{content:"\E050"}.glyphicon-text-width:before{content:"\E051"}.glyphicon-align-left:before{content:"\E052"}.glyphicon-align-center:before{content:"\E053"}.glyphicon-align-right:before{content:"\E054"}.glyphicon-align-justify:before{content:"\E055"}.glyphicon-list:before{content:"\E056"}.glyphicon-indent-left:before{content:"\E057"}.glyphicon-indent-right:before{content:"\E058"}.glyphicon-facetime-video:before{content:"\E059"}.glyphicon-picture:before{content:"\E060"}.glyphicon-map-marker:before{content:"\E062"}.glyphicon-adjust:before{content:"\E063"}.glyphicon-tint:before{content:"\E064"}.glyphicon-edit:before{content:"\E065"}.glyphicon-share:before{content:"\E066"}.glyphicon-check:before{content:"\E067"}.glyphicon-move:before{content:"\E068"}.glyphicon-step-backward:before{content:"\E069"}.glyphicon-fast-backward:before{content:"\E070"}.glyphicon-backward:before{content:"\E071"}.glyphicon-play:before{content:"\E072"}.glyphicon-pause:before{content:"\E073"}.glyphicon-stop:before{content:"\E074"}.glyphicon-forward:before{content:"\E075"}.glyphicon-fast-forward:before{content:"\E076"}.glyphicon-step-forward:before{content:"\E077"}.glyphicon-eject:before{content:"\E078"}.glyphicon-chevron-left:before{content:"\E079"}.glyphicon-chevron-right:before{content:"\E080"}.glyphicon-plus-sign:before{content:"\E081"}.glyphicon-minus-sign:before{content:"\E082"}.glyphicon-remove-sign:before{content:"\E083"}.glyphicon-ok-sign:before{content:"\E084"}.glyphicon-question-sign:before{content:"\E085"}.glyphicon-info-sign:before{content:"\E086"}.glyphicon-screenshot:before{content:"\E087"}.glyphicon-remove-circle:before{content:"\E088"}.glyphicon-ok-circle:before{content:"\E089"}.glyphicon-ban-circle:before{content:"\E090"}.glyphicon-arrow-left:before{content:"\E091"}.glyphicon-arrow-right:before{content:"\E092"}.glyphicon-arrow-up:before{content:"\E093"}.glyphicon-arrow-down:before{content:"\E094"}.glyphicon-share-alt:before{content:"\E095"}.glyphicon-resize-full:before{content:"\E096"}.glyphicon-resize-small:before{content:"\E097"}.glyphicon-exclamation-sign:before{content:"\E101"}.glyphicon-gift:before{content:"\E102"}.glyphicon-leaf:before{content:"\E103"}.glyphicon-fire:before{content:"\E104"}.glyphicon-eye-open:before{content:"\E105"}.glyphicon-eye-close:before{content:"\E106"}.glyphicon-warning-sign:before{content:"\E107"}.glyphicon-plane:before{content:"\E108"}.glyphicon-calendar:before{content:"\E109"}.glyphicon-random:before{content:"\E110"}.glyphicon-comment:before{content:"\E111"}.glyphicon-magnet:before{content:"\E112"}.glyphicon-chevron-up:before{content:"\E113"}.glyphicon-chevron-down:before{content:"\E114"}.glyphicon-retweet:before{content:"\E115"}.glyphicon-shopping-cart:before{content:"\E116"}.glyphicon-folder-close:before{content:"\E117"}.glyphicon-folder-open:before{content:"\E118"}.glyphicon-resize-vertical:before{content:"\E119"}.glyphicon-resize-horizontal:before{content:"\E120"}.glyphicon-hdd:before{content:"\E121"}.glyphicon-bullhorn:before{content:"\E122"}.glyphicon-bell:before{content:"\E123"}.glyphicon-certificate:before{content:"\E124"}.glyphicon-thumbs-up:before{content:"\E125"}.glyphicon-thumbs-down:before{content:"\E126"}.glyphicon-hand-right:before{content:"\E127"}.glyphicon-hand-left:before{content:"\E128"}.glyphicon-hand-up:before{content:"\E129"}.glyphicon-hand-down:before{content:"\E130"}.glyphicon-circle-arrow-right:before{content:"\E131"}.glyphicon-circle-arrow-left:before{content:"\E132"}.glyphicon-circle-arrow-up:before{content:"\E133"}.glyphicon-circle-arrow-down:before{content:"\E134"}.glyphicon-globe:before{content:"\E135"}.glyphicon-wrench:before{content:"\E136"}.glyphicon-tasks:before{content:"\E137"}.glyphicon-filter:before{content:"\E138"}.glyphicon-briefcase:before{content:"\E139"}.glyphicon-fullscreen:before{content:"\E140"}.glyphicon-dashboard:before{content:"\E141"}.glyphicon-paperclip:before{content:"\E142"}.glyphicon-heart-empty:before{content:"\E143"}.glyphicon-link:before{content:"\E144"}.glyphicon-phone:before{content:"\E145"}.glyphicon-pushpin:before{content:"\E146"}.glyphicon-usd:before{content:"\E148"}.glyphicon-gbp:before{content:"\E149"}.glyphicon-sort:before{content:"\E150"}.glyphicon-sort-by-alphabet:before{content:"\E151"}.glyphicon-sort-by-alphabet-alt:before{content:"\E152"}.glyphicon-sort-by-order:before{content:"\E153"}.glyphicon-sort-by-order-alt:before{content:"\E154"}.glyphicon-sort-by-attributes:before{content:"\E155"}.glyphicon-sort-by-attributes-alt:before{content:"\E156"}.glyphicon-unchecked:before{content:"\E157"}.glyphicon-expand:before{content:"\E158"}.glyphicon-collapse-down:before{content:"\E159"}.glyphicon-collapse-up:before{content:"\E160"}.glyphicon-log-in:before{content:"\E161"}.glyphicon-flash:before{content:"\E162"}.glyphicon-log-out:before{content:"\E163"}.glyphicon-new-window:before{content:"\E164"}.glyphicon-record:before{content:"\E165"}.glyphicon-save:before{content:"\E166"}.glyphicon-open:before{content:"\E167"}.glyphicon-saved:before{content:"\E168"}.glyphicon-import:before{content:"\E169"}.glyphicon-export:before{content:"\E170"}.glyphicon-send:before{content:"\E171"}.glyphicon-floppy-disk:before{content:"\E172"}.glyphicon-floppy-saved:before{content:"\E173"}.glyphicon-floppy-remove:before{content:"\E174"}.glyphicon-floppy-save:before{content:"\E175"}.glyphicon-floppy-open:before{content:"\E176"}.glyphicon-credit-card:before{content:"\E177"}.glyphicon-transfer:before{content:"\E178"}.glyphicon-cutlery:before{content:"\E179"}.glyphicon-header:before{content:"\E180"}.glyphicon-compressed:before{content:"\E181"}.glyphicon-earphone:before{content:"\E182"}.glyphicon-phone-alt:before{content:"\E183"}.glyphicon-tower:before{content:"\E184"}.glyphicon-stats:before{content:"\E185"}.glyphicon-sd-video:before{content:"\E186"}.glyphicon-hd-video:before{content:"\E187"}.glyphicon-subtitles:before{content:"\E188"}.glyphicon-sound-stereo:before{content:"\E189"}.glyphicon-sound-dolby:before{content:"\E190"}.glyphicon-sound-5-1:before{content:"\E191"}.glyphicon-sound-6-1:before{content:"\E192"}.glyphicon-sound-7-1:before{content:"\E193"}.glyphicon-copyright-mark:before{content:"\E194"}.glyphicon-registration-mark:before{content:"\E195"}.glyphicon-cloud-download:before{content:"\E197"}.glyphicon-cloud-upload:before{content:"\E198"}.glyphicon-tree-conifer:before{content:"\E199"}.glyphicon-tree-deciduous:before{content:"\E200"}.glyphicon-cd:before{content:"\E201"}.glyphicon-save-file:before{content:"\E202"}.glyphicon-open-file:before{content:"\E203"}.glyphicon-level-up:before{content:"\E204"}.glyphicon-copy:before{content:"\E205"}.glyphicon-paste:before{content:"\E206"}.glyphicon-alert:before{content:"\E209"}.glyphicon-equalizer:before{content:"\E210"}.glyphicon-king:before{content:"\E211"}.glyphicon-queen:before{content:"\E212"}.glyphicon-pawn:before{content:"\E213"}.glyphicon-bishop:before{content:"\E214"}.glyphicon-knight:before{content:"\E215"}.glyphicon-baby-formula:before{content:"\E216"}.glyphicon-tent:before{content:"\26FA"}.glyphicon-blackboard:before{content:"\E218"}.glyphicon-bed:before{content:"\E219"}.glyphicon-apple:before{content:"\F8FF"}.glyphicon-erase:before{content:"\E221"}.glyphicon-hourglass:before{content:"\231B"}.glyphicon-lamp:before{content:"\E223"}.glyphicon-duplicate:before{content:"\E224"}.glyphicon-piggy-bank:before{content:"\E225"}.glyphicon-scissors:before{content:"\E226"}.glyphicon-bitcoin:before,.glyphicon-btc:before,.glyphicon-xbt:before{content:"\E227"}.glyphicon-jpy:before,.glyphicon-yen:before{content:"\A5"}.glyphicon-rub:before,.glyphicon-ruble:before{content:"\20BD"}.glyphicon-scale:before{content:"\E230"}.glyphicon-ice-lolly:before{content:"\E231"}.glyphicon-ice-lolly-tasted:before{content:"\E232"}.glyphicon-education:before{content:"\E233"}.glyphicon-option-horizontal:before{content:"\E234"}.glyphicon-option-vertical:before{content:"\E235"}.glyphicon-menu-hamburger:before{content:"\E236"}.glyphicon-modal-window:before{content:"\E237"}.glyphicon-oil:before{content:"\E238"}.glyphicon-grain:before{content:"\E239"}.glyphicon-sunglasses:before{content:"\E240"}.glyphicon-text-size:before{content:"\E241"}.glyphicon-text-color:before{content:"\E242"}.glyphicon-text-background:before{content:"\E243"}.glyphicon-object-align-top:before{content:"\E244"}.glyphicon-object-align-bottom:before{content:"\E245"}.glyphicon-object-align-horizontal:before{content:"\E246"}.glyphicon-object-align-left:before{content:"\E247"}.glyphicon-object-align-vertical:before{content:"\E248"}.glyphicon-object-align-right:before{content:"\E249"}.glyphicon-triangle-right:before{content:"\E250"}.glyphicon-triangle-left:before{content:"\E251"}.glyphicon-triangle-bottom:before{content:"\E252"}.glyphicon-triangle-top:before{content:"\E253"}.glyphicon-console:before{content:"\E254"}.glyphicon-superscript:before{content:"\E255"}.glyphicon-subscript:before{content:"\E256"}.glyphicon-menu-left:before{content:"\E257"}.glyphicon-menu-right:before{content:"\E258"}.glyphicon-menu-down:before{content:"\E259"}.glyphicon-menu-up:before{content:"\E260"}*,:after,:before{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:10px;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:Helvetica Neue,Helvetica,Arial,sans-serif;font-size:14px;line-height:1.42857;color:#333;background-color:#fff}button,input,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#337ab7;text-decoration:none}a:focus,a:hover{color:#23527c;text-decoration:underline}a:focus{outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}figure{margin:0}img{vertical-align:middle}.img-responsive{display:block;max-width:100%;height:auto}.img-rounded{border-radius:6px}.img-thumbnail{padding:4px;line-height:1.42857;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out;display:inline-block;max-width:100%;height:auto}.img-circle{border-radius:50%}hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eee}[role=button]{cursor:pointer}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{font-family:inherit;font-weight:500;line-height:1.1;color:inherit}.h1 .small,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small,.h4 .small,.h4 small,.h5 .small,.h5 small,.h6 .small,.h6 small,h1 .small,h1 small,h2 .small,h2 small,h3 .small,h3 small,h4 .small,h4 small,h5 .small,h5 small,h6 .small,h6 small{font-weight:400;line-height:1;color:#777}.h1,.h2,.h3,h1,h2,h3{margin-top:20px;margin-bottom:10px}.h1 .small,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small,h1 .small,h1 small,h2 .small,h2 small,h3 .small,h3 small{font-size:65%}.h4,.h5,.h6,h4,h5,h6{margin-top:10px;margin-bottom:10px}.h4 .small,.h4 small,.h5 .small,.h5 small,.h6 .small,.h6 small,h4 .small,h4 small,h5 .small,h5 small,h6 .small,h6 small{font-size:75%}.h1,h1{font-size:36px}.h2,h2{font-size:30px}.h3,h3{font-size:24px}.h4,h4{font-size:18px}.h5,h5{font-size:14px}.h6,h6{font-size:12px}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:16px;font-weight:300;line-height:1.4}@media (min-width:768px){.lead{font-size:21px}}.small,small{font-size:85%}.mark,mark{background-color:#fcf8e3;padding:.2em}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-lowercase{text-transform:lowercase}.initialism,.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-muted{color:#777}.text-primary{color:#337ab7}a.text-primary:focus,a.text-primary:hover{color:#286090}.text-success{color:#3c763d}a.text-success:focus,a.text-success:hover{color:#2b542c}.text-info{color:#31708f}a.text-info:focus,a.text-info:hover{color:#245269}.text-warning{color:#8a6d3b}a.text-warning:focus,a.text-warning:hover{color:#66512c}.text-danger{color:#a94442}a.text-danger:focus,a.text-danger:hover{color:#843534}.bg-primary{color:#fff;background-color:#337ab7}a.bg-primary:focus,a.bg-primary:hover{background-color:#286090}.bg-success{background-color:#dff0d8}a.bg-success:focus,a.bg-success:hover{background-color:#c1e2b3}.bg-info{background-color:#d9edf7}a.bg-info:focus,a.bg-info:hover{background-color:#afd9ee}.bg-warning{background-color:#fcf8e3}a.bg-warning:focus,a.bg-warning:hover{background-color:#f7ecb5}.bg-danger{background-color:#f2dede}a.bg-danger:focus,a.bg-danger:hover{background-color:#e4b9b9}.page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eee}ol,ul{margin-top:0;margin-bottom:10px}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}.list-inline,.list-unstyled{padding-left:0;list-style:none}.list-inline{margin-left:-5px}.list-inline>li{display:inline-block;padding-left:5px;padding-right:5px}dl{margin-top:0;margin-bottom:20px}dd,dt{line-height:1.42857}dt{font-weight:700}dd{margin-left:0}.dl-horizontal dd:after,.dl-horizontal dd:before{content:" ";display:table}.dl-horizontal dd:after{clear:both}@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;clear:left;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}}abbr[data-original-title],abbr[title]{cursor:help;border-bottom:1px dotted #777}.initialism{font-size:90%}blockquote{padding:10px 20px;margin:0 0 20px;font-size:17.5px;border-left:5px solid #eee}blockquote ol:last-child,blockquote p:last-child,blockquote ul:last-child{margin-bottom:0}blockquote .small,blockquote footer,blockquote small{display:block;font-size:80%;line-height:1.42857;color:#777}blockquote .small:before,blockquote footer:before,blockquote small:before{content:"\2014 \A0"}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;border-right:5px solid #eee;border-left:0;text-align:right}.blockquote-reverse .small:before,.blockquote-reverse footer:before,.blockquote-reverse small:before,blockquote.pull-right .small:before,blockquote.pull-right footer:before,blockquote.pull-right small:before{content:""}.blockquote-reverse .small:after,.blockquote-reverse footer:after,.blockquote-reverse small:after,blockquote.pull-right .small:after,blockquote.pull-right footer:after,blockquote.pull-right small:after{content:"\A0 \2014"}address{margin-bottom:20px;font-style:normal;line-height:1.42857}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,Courier New,monospace}code{color:#c7254e;background-color:#f9f2f4;border-radius:4px}code,kbd{padding:2px 4px;font-size:90%}kbd{color:#fff;background-color:#333;border-radius:3px;box-shadow:inset 0 -1px 0 rgba(0,0,0,.25)}kbd kbd{padding:0;font-size:100%;font-weight:700;box-shadow:none}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:1.42857;word-break:break-all;word-wrap:break-word;color:#333;background-color:#f5f5f5;border:1px solid #ccc;border-radius:4px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}.container:after,.container:before{content:" ";display:table}.container:after{clear:both}@media (min-width:768px){.container{width:750px}}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.container-fluid{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}.container-fluid:after,.container-fluid:before{content:" ";display:table}.container-fluid:after{clear:both}.row{margin-left:-15px;margin-right:-15px}.row:after,.row:before{content:" ";display:table}.row:after{clear:both}.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12,.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12,.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12,.col-xs-1,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9,.col-xs-10,.col-xs-11,.col-xs-12{position:relative;min-height:1px;padding-left:15px;padding-right:15px}.col-xs-1,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9,.col-xs-10,.col-xs-11,.col-xs-12{float:left}.col-xs-1{width:8.33333%}.col-xs-2{width:16.66667%}.col-xs-3{width:25%}.col-xs-4{width:33.33333%}.col-xs-5{width:41.66667%}.col-xs-6{width:50%}.col-xs-7{width:58.33333%}.col-xs-8{width:66.66667%}.col-xs-9{width:75%}.col-xs-10{width:83.33333%}.col-xs-11{width:91.66667%}.col-xs-12{width:100%}.col-xs-pull-0{right:auto}.col-xs-pull-1{right:8.33333%}.col-xs-pull-2{right:16.66667%}.col-xs-pull-3{right:25%}.col-xs-pull-4{right:33.33333%}.col-xs-pull-5{right:41.66667%}.col-xs-pull-6{right:50%}.col-xs-pull-7{right:58.33333%}.col-xs-pull-8{right:66.66667%}.col-xs-pull-9{right:75%}.col-xs-pull-10{right:83.33333%}.col-xs-pull-11{right:91.66667%}.col-xs-pull-12{right:100%}.col-xs-push-0{left:auto}.col-xs-push-1{left:8.33333%}.col-xs-push-2{left:16.66667%}.col-xs-push-3{left:25%}.col-xs-push-4{left:33.33333%}.col-xs-push-5{left:41.66667%}.col-xs-push-6{left:50%}.col-xs-push-7{left:58.33333%}.col-xs-push-8{left:66.66667%}.col-xs-push-9{left:75%}.col-xs-push-10{left:83.33333%}.col-xs-push-11{left:91.66667%}.col-xs-push-12{left:100%}.col-xs-offset-0{margin-left:0}.col-xs-offset-1{margin-left:8.33333%}.col-xs-offset-2{margin-left:16.66667%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-4{margin-left:33.33333%}.col-xs-offset-5{margin-left:41.66667%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-7{margin-left:58.33333%}.col-xs-offset-8{margin-left:66.66667%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-10{margin-left:83.33333%}.col-xs-offset-11{margin-left:91.66667%}.col-xs-offset-12{margin-left:100%}@media (min-width:768px){.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12{float:left}.col-sm-1{width:8.33333%}.col-sm-2{width:16.66667%}.col-sm-3{width:25%}.col-sm-4{width:33.33333%}.col-sm-5{width:41.66667%}.col-sm-6{width:50%}.col-sm-7{width:58.33333%}.col-sm-8{width:66.66667%}.col-sm-9{width:75%}.col-sm-10{width:83.33333%}.col-sm-11{width:91.66667%}.col-sm-12{width:100%}.col-sm-pull-0{right:auto}.col-sm-pull-1{right:8.33333%}.col-sm-pull-2{right:16.66667%}.col-sm-pull-3{right:25%}.col-sm-pull-4{right:33.33333%}.col-sm-pull-5{right:41.66667%}.col-sm-pull-6{right:50%}.col-sm-pull-7{right:58.33333%}.col-sm-pull-8{right:66.66667%}.col-sm-pull-9{right:75%}.col-sm-pull-10{right:83.33333%}.col-sm-pull-11{right:91.66667%}.col-sm-pull-12{right:100%}.col-sm-push-0{left:auto}.col-sm-push-1{left:8.33333%}.col-sm-push-2{left:16.66667%}.col-sm-push-3{left:25%}.col-sm-push-4{left:33.33333%}.col-sm-push-5{left:41.66667%}.col-sm-push-6{left:50%}.col-sm-push-7{left:58.33333%}.col-sm-push-8{left:66.66667%}.col-sm-push-9{left:75%}.col-sm-push-10{left:83.33333%}.col-sm-push-11{left:91.66667%}.col-sm-push-12{left:100%}.col-sm-offset-0{margin-left:0}.col-sm-offset-1{margin-left:8.33333%}.col-sm-offset-2{margin-left:16.66667%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-4{margin-left:33.33333%}.col-sm-offset-5{margin-left:41.66667%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-7{margin-left:58.33333%}.col-sm-offset-8{margin-left:66.66667%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-10{margin-left:83.33333%}.col-sm-offset-11{margin-left:91.66667%}.col-sm-offset-12{margin-left:100%}}@media (min-width:992px){.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12{float:left}.col-md-1{width:8.33333%}.col-md-2{width:16.66667%}.col-md-3{width:25%}.col-md-4{width:33.33333%}.col-md-5{width:41.66667%}.col-md-6{width:50%}.col-md-7{width:58.33333%}.col-md-8{width:66.66667%}.col-md-9{width:75%}.col-md-10{width:83.33333%}.col-md-11{width:91.66667%}.col-md-12{width:100%}.col-md-pull-0{right:auto}.col-md-pull-1{right:8.33333%}.col-md-pull-2{right:16.66667%}.col-md-pull-3{right:25%}.col-md-pull-4{right:33.33333%}.col-md-pull-5{right:41.66667%}.col-md-pull-6{right:50%}.col-md-pull-7{right:58.33333%}.col-md-pull-8{right:66.66667%}.col-md-pull-9{right:75%}.col-md-pull-10{right:83.33333%}.col-md-pull-11{right:91.66667%}.col-md-pull-12{right:100%}.col-md-push-0{left:auto}.col-md-push-1{left:8.33333%}.col-md-push-2{left:16.66667%}.col-md-push-3{left:25%}.col-md-push-4{left:33.33333%}.col-md-push-5{left:41.66667%}.col-md-push-6{left:50%}.col-md-push-7{left:58.33333%}.col-md-push-8{left:66.66667%}.col-md-push-9{left:75%}.col-md-push-10{left:83.33333%}.col-md-push-11{left:91.66667%}.col-md-push-12{left:100%}.col-md-offset-0{margin-left:0}.col-md-offset-1{margin-left:8.33333%}.col-md-offset-2{margin-left:16.66667%}.col-md-offset-3{margin-left:25%}.col-md-offset-4{margin-left:33.33333%}.col-md-offset-5{margin-left:41.66667%}.col-md-offset-6{margin-left:50%}.col-md-offset-7{margin-left:58.33333%}.col-md-offset-8{margin-left:66.66667%}.col-md-offset-9{margin-left:75%}.col-md-offset-10{margin-left:83.33333%}.col-md-offset-11{margin-left:91.66667%}.col-md-offset-12{margin-left:100%}}@media (min-width:1200px){.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12{float:left}.col-lg-1{width:8.33333%}.col-lg-2{width:16.66667%}.col-lg-3{width:25%}.col-lg-4{width:33.33333%}.col-lg-5{width:41.66667%}.col-lg-6{width:50%}.col-lg-7{width:58.33333%}.col-lg-8{width:66.66667%}.col-lg-9{width:75%}.col-lg-10{width:83.33333%}.col-lg-11{width:91.66667%}.col-lg-12{width:100%}.col-lg-pull-0{right:auto}.col-lg-pull-1{right:8.33333%}.col-lg-pull-2{right:16.66667%}.col-lg-pull-3{right:25%}.col-lg-pull-4{right:33.33333%}.col-lg-pull-5{right:41.66667%}.col-lg-pull-6{right:50%}.col-lg-pull-7{right:58.33333%}.col-lg-pull-8{right:66.66667%}.col-lg-pull-9{right:75%}.col-lg-pull-10{right:83.33333%}.col-lg-pull-11{right:91.66667%}.col-lg-pull-12{right:100%}.col-lg-push-0{left:auto}.col-lg-push-1{left:8.33333%}.col-lg-push-2{left:16.66667%}.col-lg-push-3{left:25%}.col-lg-push-4{left:33.33333%}.col-lg-push-5{left:41.66667%}.col-lg-push-6{left:50%}.col-lg-push-7{left:58.33333%}.col-lg-push-8{left:66.66667%}.col-lg-push-9{left:75%}.col-lg-push-10{left:83.33333%}.col-lg-push-11{left:91.66667%}.col-lg-push-12{left:100%}.col-lg-offset-0{margin-left:0}.col-lg-offset-1{margin-left:8.33333%}.col-lg-offset-2{margin-left:16.66667%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-4{margin-left:33.33333%}.col-lg-offset-5{margin-left:41.66667%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-7{margin-left:58.33333%}.col-lg-offset-8{margin-left:66.66667%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-10{margin-left:83.33333%}.col-lg-offset-11{margin-left:91.66667%}.col-lg-offset-12{margin-left:100%}}table{background-color:transparent}caption{padding-top:8px;padding-bottom:8px;color:#777}caption,th{text-align:left}.table{width:100%;max-width:100%;margin-bottom:20px}.table>tbody>tr>td,.table>tbody>tr>th,.table>tfoot>tr>td,.table>tfoot>tr>th,.table>thead>tr>td,.table>thead>tr>th{padding:8px;line-height:1.42857;vertical-align:top;border-top:1px solid #ddd}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #ddd}.table>caption+thead>tr:first-child>td,.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>td,.table>thead:first-child>tr:first-child>th{border-top:0}.table>tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed>tbody>tr>td,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>td,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>thead>tr>th{padding:5px}.table-bordered,.table-bordered>tbody>tr>td,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>td,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border:1px solid #ddd}.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border-bottom-width:2px}.table-striped>tbody>tr:nth-of-type(odd){background-color:#f9f9f9}.table-hover>tbody>tr:hover{background-color:#f5f5f5}table col[class*=col-]{position:static;float:none;display:table-column}table td[class*=col-],table th[class*=col-]{position:static;float:none;display:table-cell}.table>tbody>tr.active>td,.table>tbody>tr.active>th,.table>tbody>tr>td.active,.table>tbody>tr>th.active,.table>tfoot>tr.active>td,.table>tfoot>tr.active>th,.table>tfoot>tr>td.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>thead>tr.active>th,.table>thead>tr>td.active,.table>thead>tr>th.active{background-color:#f5f5f5}.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr.active:hover>th,.table-hover>tbody>tr:hover>.active,.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover{background-color:#e8e8e8}.table>tbody>tr.success>td,.table>tbody>tr.success>th,.table>tbody>tr>td.success,.table>tbody>tr>th.success,.table>tfoot>tr.success>td,.table>tfoot>tr.success>th,.table>tfoot>tr>td.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>thead>tr.success>th,.table>thead>tr>td.success,.table>thead>tr>th.success{background-color:#dff0d8}.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr.success:hover>th,.table-hover>tbody>tr:hover>.success,.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover{background-color:#d0e9c6}.table>tbody>tr.info>td,.table>tbody>tr.info>th,.table>tbody>tr>td.info,.table>tbody>tr>th.info,.table>tfoot>tr.info>td,.table>tfoot>tr.info>th,.table>tfoot>tr>td.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>thead>tr.info>th,.table>thead>tr>td.info,.table>thead>tr>th.info{background-color:#d9edf7}.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr.info:hover>th,.table-hover>tbody>tr:hover>.info,.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover{background-color:#c4e3f3}.table>tbody>tr.warning>td,.table>tbody>tr.warning>th,.table>tbody>tr>td.warning,.table>tbody>tr>th.warning,.table>tfoot>tr.warning>td,.table>tfoot>tr.warning>th,.table>tfoot>tr>td.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>thead>tr.warning>th,.table>thead>tr>td.warning,.table>thead>tr>th.warning{background-color:#fcf8e3}.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr.warning:hover>th,.table-hover>tbody>tr:hover>.warning,.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover{background-color:#faf2cc}.table>tbody>tr.danger>td,.table>tbody>tr.danger>th,.table>tbody>tr>td.danger,.table>tbody>tr>th.danger,.table>tfoot>tr.danger>td,.table>tfoot>tr.danger>th,.table>tfoot>tr>td.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>thead>tr.danger>th,.table>thead>tr>td.danger,.table>thead>tr>th.danger{background-color:#f2dede}.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr.danger:hover>th,.table-hover>tbody>tr:hover>.danger,.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover{background-color:#ebcccc}.table-responsive{overflow-x:auto;min-height:.01%}@media screen and (max-width:767px){.table-responsive{width:100%;margin-bottom:15px;overflow-y:hidden;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #ddd}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>td,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>thead>tr>th{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}}fieldset{margin:0;min-width:0}fieldset,legend{padding:0;border:0}legend{display:block;width:100%;margin-bottom:20px;font-size:21px;line-height:inherit;color:#333;border-bottom:1px solid #e5e5e5}label{display:inline-block;max-width:100%;margin-bottom:5px;font-weight:700}input[type=search]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type=checkbox],input[type=radio]{margin:4px 0 0;margin-top:1px\9;line-height:normal}input[type=file]{display:block}input[type=range]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type=checkbox]:focus,input[type=file]:focus,input[type=radio]:focus{outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}output{padding-top:7px}.form-control,output{display:block;font-size:14px;line-height:1.42857;color:#555}.form-control{width:100%;height:34px;padding:6px 12px;background-color:#fff;background-image:none;border:1px solid #ccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out;-o-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}.form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.form-control::-moz-placeholder{color:#999;opacity:1}.form-control:-ms-input-placeholder{color:#999}.form-control::-webkit-input-placeholder{color:#999}.form-control::-ms-expand{border:0;background-color:transparent}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{background-color:#eee;opacity:1}.form-control[disabled],fieldset[disabled] .form-control{cursor:not-allowed}textarea.form-control{height:auto}input[type=search]{-webkit-appearance:none}@media screen and (-webkit-min-device-pixel-ratio:0){input[type=date].form-control,input[type=datetime-local].form-control,input[type=month].form-control,input[type=time].form-control{line-height:34px}.input-group-sm>.input-group-btn>input.btn[type=date],.input-group-sm>.input-group-btn>input.btn[type=datetime-local],.input-group-sm>.input-group-btn>input.btn[type=month],.input-group-sm>.input-group-btn>input.btn[type=time],.input-group-sm>input.form-control[type=date],.input-group-sm>input.form-control[type=datetime-local],.input-group-sm>input.form-control[type=month],.input-group-sm>input.form-control[type=time],.input-group-sm>input.input-group-addon[type=date],.input-group-sm>input.input-group-addon[type=datetime-local],.input-group-sm>input.input-group-addon[type=month],.input-group-sm>input.input-group-addon[type=time],.input-group-sm input[type=date],.input-group-sm input[type=datetime-local],.input-group-sm input[type=month],.input-group-sm input[type=time],input[type=date].input-sm,input[type=datetime-local].input-sm,input[type=month].input-sm,input[type=time].input-sm{line-height:30px}.input-group-lg>.input-group-btn>input.btn[type=date],.input-group-lg>.input-group-btn>input.btn[type=datetime-local],.input-group-lg>.input-group-btn>input.btn[type=month],.input-group-lg>.input-group-btn>input.btn[type=time],.input-group-lg>input.form-control[type=date],.input-group-lg>input.form-control[type=datetime-local],.input-group-lg>input.form-control[type=month],.input-group-lg>input.form-control[type=time],.input-group-lg>input.input-group-addon[type=date],.input-group-lg>input.input-group-addon[type=datetime-local],.input-group-lg>input.input-group-addon[type=month],.input-group-lg>input.input-group-addon[type=time],.input-group-lg input[type=date],.input-group-lg input[type=datetime-local],.input-group-lg input[type=month],.input-group-lg input[type=time],input[type=date].input-lg,input[type=datetime-local].input-lg,input[type=month].input-lg,input[type=time].input-lg{line-height:46px}}.form-group{margin-bottom:15px}.checkbox,.radio{position:relative;display:block;margin-top:10px;margin-bottom:10px}.checkbox label,.radio label{min-height:20px;padding-left:20px;margin-bottom:0;font-weight:400;cursor:pointer}.checkbox-inline input[type=checkbox],.checkbox input[type=checkbox],.radio-inline input[type=radio],.radio input[type=radio]{position:absolute;margin-left:-20px;margin-top:4px\9}.checkbox+.checkbox,.radio+.radio{margin-top:-5px}.checkbox-inline,.radio-inline{position:relative;display:inline-block;padding-left:20px;margin-bottom:0;vertical-align:middle;font-weight:400;cursor:pointer}.checkbox-inline+.checkbox-inline,.radio-inline+.radio-inline{margin-top:0;margin-left:10px}.checkbox-inline.disabled,.checkbox.disabled label,.radio-inline.disabled,.radio.disabled label,fieldset[disabled] .checkbox-inline,fieldset[disabled] .checkbox label,fieldset[disabled] .radio-inline,fieldset[disabled] .radio label,fieldset[disabled] input[type=checkbox],fieldset[disabled] input[type=radio],input[type=checkbox].disabled,input[type=checkbox][disabled],input[type=radio].disabled,input[type=radio][disabled]{cursor:not-allowed}.form-control-static{padding-top:7px;padding-bottom:7px;margin-bottom:0;min-height:34px}.form-control-static.input-lg,.form-control-static.input-sm,.input-group-lg>.form-control-static.form-control,.input-group-lg>.form-control-static.input-group-addon,.input-group-lg>.input-group-btn>.form-control-static.btn,.input-group-sm>.form-control-static.form-control,.input-group-sm>.form-control-static.input-group-addon,.input-group-sm>.input-group-btn>.form-control-static.btn{padding-left:0;padding-right:0}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn,.input-sm{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.input-group-sm>.input-group-btn>select.btn,.input-group-sm>select.form-control,.input-group-sm>select.input-group-addon,select.input-sm{height:30px;line-height:30px}.input-group-sm>.input-group-btn>select.btn[multiple],.input-group-sm>.input-group-btn>textarea.btn,.input-group-sm>select.form-control[multiple],.input-group-sm>select.input-group-addon[multiple],.input-group-sm>textarea.form-control,.input-group-sm>textarea.input-group-addon,select[multiple].input-sm,textarea.input-sm{height:auto}.form-group-sm .form-control{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.form-group-sm select.form-control{height:30px;line-height:30px}.form-group-sm select[multiple].form-control,.form-group-sm textarea.form-control{height:auto}.form-group-sm .form-control-static{height:30px;min-height:32px;padding:6px 10px;font-size:12px;line-height:1.5}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn,.input-lg{height:46px;padding:10px 16px;font-size:18px;line-height:1.33333;border-radius:6px}.input-group-lg>.input-group-btn>select.btn,.input-group-lg>select.form-control,.input-group-lg>select.input-group-addon,select.input-lg{height:46px;line-height:46px}.input-group-lg>.input-group-btn>select.btn[multiple],.input-group-lg>.input-group-btn>textarea.btn,.input-group-lg>select.form-control[multiple],.input-group-lg>select.input-group-addon[multiple],.input-group-lg>textarea.form-control,.input-group-lg>textarea.input-group-addon,select[multiple].input-lg,textarea.input-lg{height:auto}.form-group-lg .form-control{height:46px;padding:10px 16px;font-size:18px;line-height:1.33333;border-radius:6px}.form-group-lg select.form-control{height:46px;line-height:46px}.form-group-lg select[multiple].form-control,.form-group-lg textarea.form-control{height:auto}.form-group-lg .form-control-static{height:46px;min-height:38px;padding:11px 16px;font-size:18px;line-height:1.33333}.has-feedback{position:relative}.has-feedback .form-control{padding-right:42.5px}.form-control-feedback{position:absolute;top:0;right:0;z-index:2;display:block;width:34px;height:34px;line-height:34px;text-align:center;pointer-events:none}.form-group-lg .form-control+.form-control-feedback,.input-group-lg+.form-control-feedback,.input-group-lg>.form-control+.form-control-feedback,.input-group-lg>.input-group-addon+.form-control-feedback,.input-group-lg>.input-group-btn>.btn+.form-control-feedback,.input-lg+.form-control-feedback{width:46px;height:46px;line-height:46px}.form-group-sm .form-control+.form-control-feedback,.input-group-sm+.form-control-feedback,.input-group-sm>.form-control+.form-control-feedback,.input-group-sm>.input-group-addon+.form-control-feedback,.input-group-sm>.input-group-btn>.btn+.form-control-feedback,.input-sm+.form-control-feedback{width:30px;height:30px;line-height:30px}.has-success .checkbox,.has-success .checkbox-inline,.has-success.checkbox-inline label,.has-success.checkbox label,.has-success .control-label,.has-success .help-block,.has-success .radio,.has-success .radio-inline,.has-success.radio-inline label,.has-success.radio label{color:#3c763d}.has-success .form-control{border-color:#3c763d;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-success .form-control:focus{border-color:#2b542c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168}.has-success .input-group-addon{color:#3c763d;border-color:#3c763d;background-color:#dff0d8}.has-success .form-control-feedback{color:#3c763d}.has-warning .checkbox,.has-warning .checkbox-inline,.has-warning.checkbox-inline label,.has-warning.checkbox label,.has-warning .control-label,.has-warning .help-block,.has-warning .radio,.has-warning .radio-inline,.has-warning.radio-inline label,.has-warning.radio label{color:#8a6d3b}.has-warning .form-control{border-color:#8a6d3b;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-warning .form-control:focus{border-color:#66512c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b}.has-warning .input-group-addon{color:#8a6d3b;border-color:#8a6d3b;background-color:#fcf8e3}.has-warning .form-control-feedback{color:#8a6d3b}.has-error .checkbox,.has-error .checkbox-inline,.has-error.checkbox-inline label,.has-error.checkbox label,.has-error .control-label,.has-error .help-block,.has-error .radio,.has-error .radio-inline,.has-error.radio-inline label,.has-error.radio label{color:#a94442}.has-error .form-control{border-color:#a94442;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-error .form-control:focus{border-color:#843534;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483}.has-error .input-group-addon{color:#a94442;border-color:#a94442;background-color:#f2dede}.has-error .form-control-feedback{color:#a94442}.has-feedback label~.form-control-feedback{top:25px}.has-feedback label.sr-only~.form-control-feedback{top:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#737373}@media (min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-static{display:inline-block}.form-inline .input-group{display:inline-table;vertical-align:middle}.form-inline .input-group .form-control,.form-inline .input-group .input-group-addon,.form-inline .input-group .input-group-btn{width:auto}.form-inline .input-group>.form-control{width:100%}.form-inline .control-label{margin-bottom:0;vertical-align:middle}.form-inline .checkbox,.form-inline .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.form-inline .checkbox label,.form-inline .radio label{padding-left:0}.form-inline .checkbox input[type=checkbox],.form-inline .radio input[type=radio]{position:relative;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}}.form-horizontal .checkbox,.form-horizontal .checkbox-inline,.form-horizontal .radio,.form-horizontal .radio-inline{margin-top:0;margin-bottom:0;padding-top:7px}.form-horizontal .checkbox,.form-horizontal .radio{min-height:27px}.form-horizontal .form-group{margin-left:-15px;margin-right:-15px}.form-horizontal .form-group:after,.form-horizontal .form-group:before{content:" ";display:table}.form-horizontal .form-group:after{clear:both}@media (min-width:768px){.form-horizontal .control-label{text-align:right;margin-bottom:0;padding-top:7px}}.form-horizontal .has-feedback .form-control-feedback{right:15px}@media (min-width:768px){.form-horizontal .form-group-lg .control-label{padding-top:11px;font-size:18px}}@media (min-width:768px){.form-horizontal .form-group-sm .control-label{padding-top:6px;font-size:12px}}.btn{display:inline-block;margin-bottom:0;font-weight:400;text-align:center;vertical-align:middle;touch-action:manipulation;cursor:pointer;background-image:none;border:1px solid transparent;white-space:nowrap;padding:6px 12px;font-size:14px;line-height:1.42857;border-radius:4px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.btn.active.focus,.btn.active:focus,.btn.focus,.btn:active.focus,.btn:active:focus,.btn:focus{outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn.focus,.btn:focus,.btn:hover{color:#333;text-decoration:none}.btn.active,.btn:active{outline:0;background-image:none;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;opacity:.65;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none}a.btn.disabled,fieldset[disabled] a.btn{pointer-events:none}.btn-default{color:#333;background-color:#fff;border-color:#ccc}.btn-default.focus,.btn-default:focus{color:#333;background-color:#e6e6e6;border-color:#8c8c8c}.btn-default.active,.btn-default:active,.btn-default:hover,.open>.btn-default.dropdown-toggle{color:#333;background-color:#e6e6e6;border-color:#adadad}.btn-default.active.focus,.btn-default.active:focus,.btn-default.active:hover,.btn-default:active.focus,.btn-default:active:focus,.btn-default:active:hover,.open>.btn-default.dropdown-toggle.focus,.open>.btn-default.dropdown-toggle:focus,.open>.btn-default.dropdown-toggle:hover{color:#333;background-color:#d4d4d4;border-color:#8c8c8c}.btn-default.active,.btn-default:active,.open>.btn-default.dropdown-toggle{background-image:none}.btn-default.disabled.focus,.btn-default.disabled:focus,.btn-default.disabled:hover,.btn-default[disabled].focus,.btn-default[disabled]:focus,.btn-default[disabled]:hover,fieldset[disabled] .btn-default.focus,fieldset[disabled] .btn-default:focus,fieldset[disabled] .btn-default:hover{background-color:#fff;border-color:#ccc}.btn-default .badge{color:#fff;background-color:#333}.btn-primary{color:#fff;background-color:#337ab7;border-color:#2e6da4}.btn-primary.focus,.btn-primary:focus{color:#fff;background-color:#286090;border-color:#122b40}.btn-primary.active,.btn-primary:active,.btn-primary:hover,.open>.btn-primary.dropdown-toggle{color:#fff;background-color:#286090;border-color:#204d74}.btn-primary.active.focus,.btn-primary.active:focus,.btn-primary.active:hover,.btn-primary:active.focus,.btn-primary:active:focus,.btn-primary:active:hover,.open>.btn-primary.dropdown-toggle.focus,.open>.btn-primary.dropdown-toggle:focus,.open>.btn-primary.dropdown-toggle:hover{color:#fff;background-color:#204d74;border-color:#122b40}.btn-primary.active,.btn-primary:active,.open>.btn-primary.dropdown-toggle{background-image:none}.btn-primary.disabled.focus,.btn-primary.disabled:focus,.btn-primary.disabled:hover,.btn-primary[disabled].focus,.btn-primary[disabled]:focus,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary.focus,fieldset[disabled] .btn-primary:focus,fieldset[disabled] .btn-primary:hover{background-color:#337ab7;border-color:#2e6da4}.btn-primary .badge{color:#337ab7;background-color:#fff}.btn-success{color:#fff;background-color:#5cb85c;border-color:#4cae4c}.btn-success.focus,.btn-success:focus{color:#fff;background-color:#449d44;border-color:#255625}.btn-success.active,.btn-success:active,.btn-success:hover,.open>.btn-success.dropdown-toggle{color:#fff;background-color:#449d44;border-color:#398439}.btn-success.active.focus,.btn-success.active:focus,.btn-success.active:hover,.btn-success:active.focus,.btn-success:active:focus,.btn-success:active:hover,.open>.btn-success.dropdown-toggle.focus,.open>.btn-success.dropdown-toggle:focus,.open>.btn-success.dropdown-toggle:hover{color:#fff;background-color:#398439;border-color:#255625}.btn-success.active,.btn-success:active,.open>.btn-success.dropdown-toggle{background-image:none}.btn-success.disabled.focus,.btn-success.disabled:focus,.btn-success.disabled:hover,.btn-success[disabled].focus,.btn-success[disabled]:focus,.btn-success[disabled]:hover,fieldset[disabled] .btn-success.focus,fieldset[disabled] .btn-success:focus,fieldset[disabled] .btn-success:hover{background-color:#5cb85c;border-color:#4cae4c}.btn-success .badge{color:#5cb85c;background-color:#fff}.btn-info{color:#fff;background-color:#5bc0de;border-color:#46b8da}.btn-info.focus,.btn-info:focus{color:#fff;background-color:#31b0d5;border-color:#1b6d85}.btn-info.active,.btn-info:active,.btn-info:hover,.open>.btn-info.dropdown-toggle{color:#fff;background-color:#31b0d5;border-color:#269abc}.btn-info.active.focus,.btn-info.active:focus,.btn-info.active:hover,.btn-info:active.focus,.btn-info:active:focus,.btn-info:active:hover,.open>.btn-info.dropdown-toggle.focus,.open>.btn-info.dropdown-toggle:focus,.open>.btn-info.dropdown-toggle:hover{color:#fff;background-color:#269abc;border-color:#1b6d85}.btn-info.active,.btn-info:active,.open>.btn-info.dropdown-toggle{background-image:none}.btn-info.disabled.focus,.btn-info.disabled:focus,.btn-info.disabled:hover,.btn-info[disabled].focus,.btn-info[disabled]:focus,.btn-info[disabled]:hover,fieldset[disabled] .btn-info.focus,fieldset[disabled] .btn-info:focus,fieldset[disabled] .btn-info:hover{background-color:#5bc0de;border-color:#46b8da}.btn-info .badge{color:#5bc0de;background-color:#fff}.btn-warning{color:#fff;background-color:#f0ad4e;border-color:#eea236}.btn-warning.focus,.btn-warning:focus{color:#fff;background-color:#ec971f;border-color:#985f0d}.btn-warning.active,.btn-warning:active,.btn-warning:hover,.open>.btn-warning.dropdown-toggle{color:#fff;background-color:#ec971f;border-color:#d58512}.btn-warning.active.focus,.btn-warning.active:focus,.btn-warning.active:hover,.btn-warning:active.focus,.btn-warning:active:focus,.btn-warning:active:hover,.open>.btn-warning.dropdown-toggle.focus,.open>.btn-warning.dropdown-toggle:focus,.open>.btn-warning.dropdown-toggle:hover{color:#fff;background-color:#d58512;border-color:#985f0d}.btn-warning.active,.btn-warning:active,.open>.btn-warning.dropdown-toggle{background-image:none}.btn-warning.disabled.focus,.btn-warning.disabled:focus,.btn-warning.disabled:hover,.btn-warning[disabled].focus,.btn-warning[disabled]:focus,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning.focus,fieldset[disabled] .btn-warning:focus,fieldset[disabled] .btn-warning:hover{background-color:#f0ad4e;border-color:#eea236}.btn-warning .badge{color:#f0ad4e;background-color:#fff}.btn-danger{color:#fff;background-color:#d9534f;border-color:#d43f3a}.btn-danger.focus,.btn-danger:focus{color:#fff;background-color:#c9302c;border-color:#761c19}.btn-danger.active,.btn-danger:active,.btn-danger:hover,.open>.btn-danger.dropdown-toggle{color:#fff;background-color:#c9302c;border-color:#ac2925}.btn-danger.active.focus,.btn-danger.active:focus,.btn-danger.active:hover,.btn-danger:active.focus,.btn-danger:active:focus,.btn-danger:active:hover,.open>.btn-danger.dropdown-toggle.focus,.open>.btn-danger.dropdown-toggle:focus,.open>.btn-danger.dropdown-toggle:hover{color:#fff;background-color:#ac2925;border-color:#761c19}.btn-danger.active,.btn-danger:active,.open>.btn-danger.dropdown-toggle{background-image:none}.btn-danger.disabled.focus,.btn-danger.disabled:focus,.btn-danger.disabled:hover,.btn-danger[disabled].focus,.btn-danger[disabled]:focus,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger.focus,fieldset[disabled] .btn-danger:focus,fieldset[disabled] .btn-danger:hover{background-color:#d9534f;border-color:#d43f3a}.btn-danger .badge{color:#d9534f;background-color:#fff}.btn-link{color:#337ab7;font-weight:400;border-radius:0}.btn-link,.btn-link.active,.btn-link:active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:active,.btn-link:focus,.btn-link:hover{border-color:transparent}.btn-link:focus,.btn-link:hover{color:#23527c;text-decoration:underline;background-color:transparent}.btn-link[disabled]:focus,.btn-link[disabled]:hover,fieldset[disabled] .btn-link:focus,fieldset[disabled] .btn-link:hover{color:#777;text-decoration:none}.btn-group-lg>.btn,.btn-lg{padding:10px 16px;font-size:18px;line-height:1.33333;border-radius:6px}.btn-group-sm>.btn,.btn-sm{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-group-xs>.btn,.btn-xs{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:5px}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}tr.collapse.in{display:table-row}tbody.collapse.in{display:table-row-group}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition-property:height,visibility;transition-property:height,visibility;-webkit-transition-duration:.35s;transition-duration:.35s;-webkit-transition-timing-function:ease;transition-timing-function:ease}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px dashed;border-top:4px solid\9;border-right:4px solid transparent;border-left:4px solid transparent}.dropdown,.dropup{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;font-size:14px;text-align:left;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,.175);box-shadow:0 6px 12px rgba(0,0,0,.175);background-clip:padding-box}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:400;line-height:1.42857;color:#333;white-space:nowrap}.dropdown-menu>li>a:focus,.dropdown-menu>li>a:hover{text-decoration:none;color:#262626;background-color:#f5f5f5}.dropdown-menu>.active>a,.dropdown-menu>.active>a:focus,.dropdown-menu>.active>a:hover{color:#fff;text-decoration:none;outline:0;background-color:#337ab7}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{color:#777}.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{text-decoration:none;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);cursor:not-allowed}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-right{left:auto;right:0}.dropdown-menu-left{left:0;right:auto}.dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.42857;color:#777;white-space:nowrap}.dropdown-backdrop{position:fixed;left:0;right:0;bottom:0;top:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px dashed;border-bottom:4px solid\9;content:""}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:2px}@media (min-width:768px){.navbar-right .dropdown-menu{right:0;left:auto}.navbar-right .dropdown-menu-left{left:0;right:auto}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;float:left}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:2}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{margin-left:-5px}.btn-toolbar:after,.btn-toolbar:before{content:" ";display:table}.btn-toolbar:after{clear:both}.btn-toolbar .btn,.btn-toolbar .btn-group,.btn-toolbar .input-group{float:left}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.btn-group>.btn-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn-group:last-child:not(:first-child)>.btn:first-child{border-bottom-left-radius:0;border-top-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-left:8px;padding-right:8px}.btn-group-lg.btn-group>.btn+.dropdown-toggle,.btn-group>.btn-lg+.dropdown-toggle{padding-left:12px;padding-right:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn .caret{margin-left:0}.btn-group-lg>.btn .caret,.btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-group-lg>.btn .caret,.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group:after,.btn-group-vertical>.btn-group:before{content:" ";display:table}.btn-group-vertical>.btn-group:after{clear:both}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-right-radius:4px;border-top-left-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-top-right-radius:0;border-top-left-radius:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-right-radius:0;border-top-left-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{float:none;display:table-cell;width:1%}.btn-group-justified>.btn-group .btn{width:100%}.btn-group-justified>.btn-group .dropdown-menu{left:auto}[data-toggle=buttons]>.btn-group>.btn input[type=checkbox],[data-toggle=buttons]>.btn-group>.btn input[type=radio],[data-toggle=buttons]>.btn input[type=checkbox],[data-toggle=buttons]>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*=col-]{float:none;padding-left:0;padding-right:0}.input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.input-group .form-control:focus{z-index:3}.input-group-addon,.input-group-btn,.input-group .form-control{display:table-cell}.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child),.input-group .form-control:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:6px 12px;font-size:14px;font-weight:400;line-height:1;color:#555;text-align:center;background-color:#eee;border:1px solid #ccc;border-radius:4px}.input-group-addon.input-sm,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.input-group-addon.btn{padding:5px 10px;font-size:12px;border-radius:3px}.input-group-addon.input-lg,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.input-group-addon.btn{padding:10px 16px;font-size:18px;border-radius:6px}.input-group-addon input[type=checkbox],.input-group-addon input[type=radio]{margin-top:0}.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn-group:not(:last-child)>.btn,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group .form-control:first-child{border-bottom-right-radius:0;border-top-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group-addon:last-child,.input-group-btn:first-child>.btn-group:not(:first-child)>.btn,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle,.input-group .form-control:last-child{border-bottom-left-radius:0;border-top-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{font-size:0;white-space:nowrap}.input-group-btn,.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-1px}.input-group-btn>.btn:active,.input-group-btn>.btn:focus,.input-group-btn>.btn:hover{z-index:2}.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group{margin-right:-1px}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{z-index:2;margin-left:-1px}.nav{margin-bottom:0;padding-left:0;list-style:none}.nav:after,.nav:before{content:" ";display:table}.nav:after{clear:both}.nav>li,.nav>li>a{position:relative;display:block}.nav>li>a{padding:10px 15px}.nav>li>a:focus,.nav>li>a:hover{text-decoration:none;background-color:#eee}.nav>li.disabled>a{color:#777}.nav>li.disabled>a:focus,.nav>li.disabled>a:hover{color:#777;text-decoration:none;background-color:transparent;cursor:not-allowed}.nav .open>a,.nav .open>a:focus,.nav .open>a:hover{background-color:#eee;border-color:#337ab7}.nav .nav-divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.42857;border:1px solid transparent;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.nav-tabs>li.active>a,.nav-tabs>li.active>a:focus,.nav-tabs>li.active>a:hover{color:#555;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent;cursor:default}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:4px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:focus,.nav-pills>li.active>a:hover{color:#fff;background-color:#337ab7}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified,.nav-tabs.nav-justified{width:100%}.nav-justified>li,.nav-tabs.nav-justified>li{float:none}.nav-justified>li>a,.nav-tabs.nav-justified>li>a{text-align:center;margin-bottom:5px}.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-justified>li,.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a,.nav-tabs.nav-justified>li>a{margin-bottom:0}}.nav-tabs-justified,.nav-tabs.nav-justified{border-bottom:0}.nav-tabs-justified>li>a,.nav-tabs.nav-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border:1px solid #ddd}@media (min-width:768px){.nav-tabs-justified>li>a,.nav-tabs.nav-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border-bottom-color:#fff}}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-right-radius:0;border-top-left-radius:0}.navbar{position:relative;min-height:50px;margin-bottom:20px;border:1px solid transparent}.navbar:after,.navbar:before{content:" ";display:table}.navbar:after{clear:both}@media (min-width:768px){.navbar{border-radius:4px}}.navbar-header:after,.navbar-header:before{content:" ";display:table}.navbar-header:after{clear:both}@media (min-width:768px){.navbar-header{float:left}}.navbar-collapse{overflow-x:visible;padding-right:15px;padding-left:15px;border-top:1px solid transparent;box-shadow:inset 0 1px 0 hsla(0,0%,100%,.1);-webkit-overflow-scrolling:touch}.navbar-collapse:after,.navbar-collapse:before{content:" ";display:table}.navbar-collapse:after{clear:both}.navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.navbar-collapse{width:auto;border-top:0;box-shadow:none}.navbar-collapse.collapse{display:block!important;height:auto!important;padding-bottom:0;overflow:visible!important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse{padding-left:0;padding-right:0}}.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse{max-height:340px}@media (max-device-width:480px) and (orientation:landscape){.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse{max-height:200px}}.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:0;margin-left:0}}.navbar-static-top{z-index:1000;border-width:0 0 1px}@media (min-width:768px){.navbar-static-top{border-radius:0}}.navbar-fixed-bottom,.navbar-fixed-top{position:fixed;right:0;left:0;z-index:1030}@media (min-width:768px){.navbar-fixed-bottom,.navbar-fixed-top{border-radius:0}}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.navbar-brand{float:left;padding:15px;font-size:18px;line-height:20px;height:50px}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-brand>img{display:block}@media (min-width:768px){.navbar>.container-fluid .navbar-brand,.navbar>.container .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;margin-right:15px;padding:9px 10px;margin-top:8px;margin-bottom:8px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:4px}.navbar-toggle:focus{outline:0}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media (min-width:768px){.navbar-toggle{display:none}}.navbar-nav{margin:7.5px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:20px}@media (max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;box-shadow:none}.navbar-nav .open .dropdown-menu .dropdown-header,.navbar-nav .open .dropdown-menu>li>a{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:20px}.navbar-nav .open .dropdown-menu>li>a:focus,.navbar-nav .open .dropdown-menu>li>a:hover{background-image:none}}@media (min-width:768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:15px;padding-bottom:15px}}.navbar-form{margin:8px -15px;padding:10px 15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 hsla(0,0%,100%,.1),0 1px 0 hsla(0,0%,100%,.1);box-shadow:inset 0 1px 0 hsla(0,0%,100%,.1),0 1px 0 hsla(0,0%,100%,.1)}@media (min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .form-control-static{display:inline-block}.navbar-form .input-group{display:inline-table;vertical-align:middle}.navbar-form .input-group .form-control,.navbar-form .input-group .input-group-addon,.navbar-form .input-group .input-group-btn{width:auto}.navbar-form .input-group>.form-control{width:100%}.navbar-form .control-label{margin-bottom:0;vertical-align:middle}.navbar-form .checkbox,.navbar-form .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.navbar-form .checkbox label,.navbar-form .radio label{padding-left:0}.navbar-form .checkbox input[type=checkbox],.navbar-form .radio input[type=radio]{position:relative;margin-left:0}.navbar-form .has-feedback .form-control-feedback{top:0}}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}.navbar-form .form-group:last-child{margin-bottom:0}}@media (min-width:768px){.navbar-form{width:auto;border:0;margin-left:0;margin-right:0;padding-top:0;padding-bottom:0;-webkit-box-shadow:none;box-shadow:none}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-right-radius:0;border-top-left-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{margin-bottom:0;border-top-right-radius:4px;border-top-left-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-btn{margin-top:8px;margin-bottom:8px}.btn-group-sm>.navbar-btn.btn,.navbar-btn.btn-sm{margin-top:10px;margin-bottom:10px}.btn-group-xs>.navbar-btn.btn,.navbar-btn.btn-xs{margin-top:14px;margin-bottom:14px}.navbar-text{margin-top:15px;margin-bottom:15px}@media (min-width:768px){.navbar-text{float:left;margin-left:15px;margin-right:15px}}@media (min-width:768px){.navbar-left{float:left!important}.navbar-right{float:right!important;margin-right:-15px}.navbar-right~.navbar-right{margin-right:0}}.navbar-default{background-color:#f8f8f8;border-color:#e7e7e7}.navbar-default .navbar-brand{color:#777}.navbar-default .navbar-brand:focus,.navbar-default .navbar-brand:hover{color:#5e5e5e;background-color:transparent}.navbar-default .navbar-nav>li>a,.navbar-default .navbar-text{color:#777}.navbar-default .navbar-nav>li>a:focus,.navbar-default .navbar-nav>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:focus,.navbar-default .navbar-nav>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:focus,.navbar-default .navbar-nav>.disabled>a:hover{color:#ccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:#ddd}.navbar-default .navbar-toggle:focus,.navbar-default .navbar-toggle:hover{background-color:#ddd}.navbar-default .navbar-toggle .icon-bar{background-color:#888}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#e7e7e7}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:focus,.navbar-default .navbar-nav>.open>a:hover{background-color:#e7e7e7;color:#555}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#777}.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#ccc;background-color:transparent}}.navbar-default .navbar-link{color:#777}.navbar-default .navbar-link:hover{color:#333}.navbar-default .btn-link{color:#777}.navbar-default .btn-link:focus,.navbar-default .btn-link:hover{color:#333}.navbar-default .btn-link[disabled]:focus,.navbar-default .btn-link[disabled]:hover,fieldset[disabled] .navbar-default .btn-link:focus,fieldset[disabled] .navbar-default .btn-link:hover{color:#ccc}.navbar-inverse{background-color:#222;border-color:#090909}.navbar-inverse .navbar-brand{color:#9d9d9d}.navbar-inverse .navbar-brand:focus,.navbar-inverse .navbar-brand:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>li>a,.navbar-inverse .navbar-text{color:#9d9d9d}.navbar-inverse .navbar-nav>li>a:focus,.navbar-inverse .navbar-nav>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:focus,.navbar-inverse .navbar-nav>.active>a:hover{color:#fff;background-color:#090909}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:focus,.navbar-inverse .navbar-nav>.disabled>a:hover{color:#444;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#333}.navbar-inverse .navbar-toggle:focus,.navbar-inverse .navbar-toggle:hover{background-color:#333}.navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#101010}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:focus,.navbar-inverse .navbar-nav>.open>a:hover{background-color:#090909;color:#fff}@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#090909}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#090909}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#9d9d9d}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover{color:#fff;background-color:#090909}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#444;background-color:transparent}}.navbar-inverse .navbar-link{color:#9d9d9d}.navbar-inverse .navbar-link:hover{color:#fff}.navbar-inverse .btn-link{color:#9d9d9d}.navbar-inverse .btn-link:focus,.navbar-inverse .btn-link:hover{color:#fff}.navbar-inverse .btn-link[disabled]:focus,.navbar-inverse .btn-link[disabled]:hover,fieldset[disabled] .navbar-inverse .btn-link:focus,fieldset[disabled] .navbar-inverse .btn-link:hover{color:#444}.breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;background-color:#f5f5f5;border-radius:4px}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{content:"/\A0";padding:0 5px;color:#ccc}.breadcrumb>.active{color:#777}.pagination{display:inline-block;padding-left:0;margin:20px 0;border-radius:4px}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:6px 12px;line-height:1.42857;text-decoration:none;color:#337ab7;background-color:#fff;border:1px solid #ddd;margin-left:-1px}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-bottom-left-radius:4px;border-top-left-radius:4px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-bottom-right-radius:4px;border-top-right-radius:4px}.pagination>li>a:focus,.pagination>li>a:hover,.pagination>li>span:focus,.pagination>li>span:hover{z-index:2;color:#23527c;background-color:#eee;border-color:#ddd}.pagination>.active>a,.pagination>.active>a:focus,.pagination>.active>a:hover,.pagination>.active>span,.pagination>.active>span:focus,.pagination>.active>span:hover{z-index:3;color:#fff;background-color:#337ab7;border-color:#337ab7;cursor:default}.pagination>.disabled>a,.pagination>.disabled>a:focus,.pagination>.disabled>a:hover,.pagination>.disabled>span,.pagination>.disabled>span:focus,.pagination>.disabled>span:hover{color:#777;background-color:#fff;border-color:#ddd;cursor:not-allowed}.pagination-lg>li>a,.pagination-lg>li>span{padding:10px 16px;font-size:18px;line-height:1.33333}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-bottom-left-radius:6px;border-top-left-radius:6px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-bottom-right-radius:6px;border-top-right-radius:6px}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:12px;line-height:1.5}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-bottom-left-radius:3px;border-top-left-radius:3px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-bottom-right-radius:3px;border-top-right-radius:3px}.pager{padding-left:0;margin:20px 0;list-style:none;text-align:center}.pager:after,.pager:before{content:" ";display:table}.pager:after{clear:both}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;border-radius:15px}.pager li>a:focus,.pager li>a:hover{text-decoration:none;background-color:#eee}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:focus,.pager .disabled>a:hover,.pager .disabled>span{color:#777;background-color:#fff;cursor:not-allowed}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}.label:empty{display:none}.btn .label{position:relative;top:-1px}a.label:focus,a.label:hover{color:#fff;text-decoration:none;cursor:pointer}.label-default{background-color:#777}.label-default[href]:focus,.label-default[href]:hover{background-color:#5e5e5e}.label-primary{background-color:#337ab7}.label-primary[href]:focus,.label-primary[href]:hover{background-color:#286090}.label-success{background-color:#5cb85c}.label-success[href]:focus,.label-success[href]:hover{background-color:#449d44}.label-info{background-color:#5bc0de}.label-info[href]:focus,.label-info[href]:hover{background-color:#31b0d5}.label-warning{background-color:#f0ad4e}.label-warning[href]:focus,.label-warning[href]:hover{background-color:#ec971f}.label-danger{background-color:#d9534f}.label-danger[href]:focus,.label-danger[href]:hover{background-color:#c9302c}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:700;color:#fff;line-height:1;vertical-align:middle;white-space:nowrap;text-align:center;background-color:#777;border-radius:10px}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.btn-group-xs>.btn .badge,.btn-xs .badge{top:0;padding:1px 5px}.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#337ab7;background-color:#fff}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}.nav-pills>li>a>.badge{margin-left:3px}a.badge:focus,a.badge:hover{color:#fff;text-decoration:none;cursor:pointer}.jumbotron{padding-top:30px;padding-bottom:30px;margin-bottom:30px;background-color:#eee}.jumbotron,.jumbotron .h1,.jumbotron h1{color:inherit}.jumbotron p{margin-bottom:15px;font-size:21px;font-weight:200}.jumbotron>hr{border-top-color:#d5d5d5}.container-fluid .jumbotron,.container .jumbotron{border-radius:6px;padding-left:15px;padding-right:15px}.jumbotron .container{max-width:100%}@media screen and (min-width:768px){.jumbotron{padding-top:48px;padding-bottom:48px}.container-fluid .jumbotron,.container .jumbotron{padding-left:60px;padding-right:60px}.jumbotron .h1,.jumbotron h1{font-size:63px}}.thumbnail{display:block;padding:4px;margin-bottom:20px;line-height:1.42857;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:border .2s ease-in-out;-o-transition:border .2s ease-in-out;transition:border .2s ease-in-out}.thumbnail>img,.thumbnail a>img{display:block;max-width:100%;height:auto;margin-left:auto;margin-right:auto}.thumbnail .caption{padding:9px;color:#333}a.thumbnail.active,a.thumbnail:focus,a.thumbnail:hover{border-color:#337ab7}.alert{padding:15px;margin-bottom:20px;border:1px solid transparent;border-radius:4px}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:700}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable,.alert-dismissible{padding-right:35px}.alert-dismissable .close,.alert-dismissible .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{background-color:#dff0d8;border-color:#d6e9c6;color:#3c763d}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#2b542c}.alert-info{background-color:#d9edf7;border-color:#bce8f1;color:#31708f}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#245269}.alert-warning{background-color:#fcf8e3;border-color:#faebcc;color:#8a6d3b}.alert-warning hr{border-top-color:#f7e1b5}.alert-warning .alert-link{color:#66512c}.alert-danger{background-color:#f2dede;border-color:#ebccd1;color:#a94442}.alert-danger hr{border-top-color:#e4b9c0}.alert-danger .alert-link{color:#843534}@-webkit-keyframes progress-bar-stripes{0%{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{0%{background-position:40px 0}to{background-position:0 0}}.progress{overflow:hidden;height:20px;margin-bottom:20px;background-color:#f5f5f5;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1);box-shadow:inset 0 1px 2px rgba(0,0,0,.1)}.progress-bar{float:left;width:0;height:100%;font-size:12px;line-height:20px;color:#fff;text-align:center;background-color:#337ab7;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);-webkit-transition:width .6s ease;-o-transition:width .6s ease;transition:width .6s ease}.progress-bar-striped,.progress-striped .progress-bar{background-image:-webkit-linear-gradient(45deg,hsla(0,0%,100%,.15) 25%,transparent 0,transparent 50%,hsla(0,0%,100%,.15) 0,hsla(0,0%,100%,.15) 75%,transparent 0,transparent);background-image:-o-linear-gradient(45deg,hsla(0,0%,100%,.15) 25%,transparent 25%,transparent 50%,hsla(0,0%,100%,.15) 50%,hsla(0,0%,100%,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,hsla(0,0%,100%,.15) 25%,transparent 0,transparent 50%,hsla(0,0%,100%,.15) 0,hsla(0,0%,100%,.15) 75%,transparent 0,transparent);background-size:40px 40px}.progress-bar.active,.progress.active .progress-bar{-webkit-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-success{background-color:#5cb85c}.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg,hsla(0,0%,100%,.15) 25%,transparent 0,transparent 50%,hsla(0,0%,100%,.15) 0,hsla(0,0%,100%,.15) 75%,transparent 0,transparent);background-image:-o-linear-gradient(45deg,hsla(0,0%,100%,.15) 25%,transparent 25%,transparent 50%,hsla(0,0%,100%,.15) 50%,hsla(0,0%,100%,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,hsla(0,0%,100%,.15) 25%,transparent 0,transparent 50%,hsla(0,0%,100%,.15) 0,hsla(0,0%,100%,.15) 75%,transparent 0,transparent)}.progress-bar-info{background-color:#5bc0de}.progress-striped .progress-bar-info{background-image:-webkit-linear-gradient(45deg,hsla(0,0%,100%,.15) 25%,transparent 0,transparent 50%,hsla(0,0%,100%,.15) 0,hsla(0,0%,100%,.15) 75%,transparent 0,transparent);background-image:-o-linear-gradient(45deg,hsla(0,0%,100%,.15) 25%,transparent 25%,transparent 50%,hsla(0,0%,100%,.15) 50%,hsla(0,0%,100%,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,hsla(0,0%,100%,.15) 25%,transparent 0,transparent 50%,hsla(0,0%,100%,.15) 0,hsla(0,0%,100%,.15) 75%,transparent 0,transparent)}.progress-bar-warning{background-color:#f0ad4e}.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg,hsla(0,0%,100%,.15) 25%,transparent 0,transparent 50%,hsla(0,0%,100%,.15) 0,hsla(0,0%,100%,.15) 75%,transparent 0,transparent);background-image:-o-linear-gradient(45deg,hsla(0,0%,100%,.15) 25%,transparent 25%,transparent 50%,hsla(0,0%,100%,.15) 50%,hsla(0,0%,100%,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,hsla(0,0%,100%,.15) 25%,transparent 0,transparent 50%,hsla(0,0%,100%,.15) 0,hsla(0,0%,100%,.15) 75%,transparent 0,transparent)}.progress-bar-danger{background-color:#d9534f}.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg,hsla(0,0%,100%,.15) 25%,transparent 0,transparent 50%,hsla(0,0%,100%,.15) 0,hsla(0,0%,100%,.15) 75%,transparent 0,transparent);background-image:-o-linear-gradient(45deg,hsla(0,0%,100%,.15) 25%,transparent 25%,transparent 50%,hsla(0,0%,100%,.15) 50%,hsla(0,0%,100%,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,hsla(0,0%,100%,.15) 25%,transparent 0,transparent 50%,hsla(0,0%,100%,.15) 0,hsla(0,0%,100%,.15) 75%,transparent 0,transparent)}.media{margin-top:15px}.media:first-child{margin-top:0}.media,.media-body{zoom:1;overflow:hidden}.media-body{width:10000px}.media-object{display:block}.media-object.img-thumbnail{max-width:none}.media-right,.media>.pull-right{padding-left:10px}.media-left,.media>.pull-left{padding-right:10px}.media-body,.media-left,.media-right{display:table-cell;vertical-align:top}.media-middle{vertical-align:middle}.media-bottom{vertical-align:bottom}.media-heading{margin-top:0;margin-bottom:5px}.media-list{padding-left:0;list-style:none}.list-group{margin-bottom:20px;padding-left:0}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#fff;border:1px solid #ddd}.list-group-item:first-child{border-top-right-radius:4px;border-top-left-radius:4px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}a.list-group-item,button.list-group-item{color:#555}a.list-group-item .list-group-item-heading,button.list-group-item .list-group-item-heading{color:#333}a.list-group-item:focus,a.list-group-item:hover,button.list-group-item:focus,button.list-group-item:hover{text-decoration:none;color:#555;background-color:#f5f5f5}button.list-group-item{width:100%;text-align:left}.list-group-item.disabled,.list-group-item.disabled:focus,.list-group-item.disabled:hover{background-color:#eee;color:#777;cursor:not-allowed}.list-group-item.disabled .list-group-item-heading,.list-group-item.disabled:focus .list-group-item-heading,.list-group-item.disabled:hover .list-group-item-heading{color:inherit}.list-group-item.disabled .list-group-item-text,.list-group-item.disabled:focus .list-group-item-text,.list-group-item.disabled:hover .list-group-item-text{color:#777}.list-group-item.active,.list-group-item.active:focus,.list-group-item.active:hover{z-index:2;color:#fff;background-color:#337ab7;border-color:#337ab7}.list-group-item.active .list-group-item-heading,.list-group-item.active .list-group-item-heading>.small,.list-group-item.active .list-group-item-heading>small,.list-group-item.active:focus .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading>.small,.list-group-item.active:focus .list-group-item-heading>small,.list-group-item.active:hover .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading>.small,.list-group-item.active:hover .list-group-item-heading>small{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:focus .list-group-item-text,.list-group-item.active:hover .list-group-item-text{color:#c7ddef}.list-group-item-success{color:#3c763d;background-color:#dff0d8}a.list-group-item-success,button.list-group-item-success{color:#3c763d}a.list-group-item-success .list-group-item-heading,button.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:focus,a.list-group-item-success:hover,button.list-group-item-success:focus,button.list-group-item-success:hover{color:#3c763d;background-color:#d0e9c6}a.list-group-item-success.active,a.list-group-item-success.active:focus,a.list-group-item-success.active:hover,button.list-group-item-success.active,button.list-group-item-success.active:focus,button.list-group-item-success.active:hover{color:#fff;background-color:#3c763d;border-color:#3c763d}.list-group-item-info{color:#31708f;background-color:#d9edf7}a.list-group-item-info,button.list-group-item-info{color:#31708f}a.list-group-item-info .list-group-item-heading,button.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:focus,a.list-group-item-info:hover,button.list-group-item-info:focus,button.list-group-item-info:hover{color:#31708f;background-color:#c4e3f3}a.list-group-item-info.active,a.list-group-item-info.active:focus,a.list-group-item-info.active:hover,button.list-group-item-info.active,button.list-group-item-info.active:focus,button.list-group-item-info.active:hover{color:#fff;background-color:#31708f;border-color:#31708f}.list-group-item-warning{color:#8a6d3b;background-color:#fcf8e3}a.list-group-item-warning,button.list-group-item-warning{color:#8a6d3b}a.list-group-item-warning .list-group-item-heading,button.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:focus,a.list-group-item-warning:hover,button.list-group-item-warning:focus,button.list-group-item-warning:hover{color:#8a6d3b;background-color:#faf2cc}a.list-group-item-warning.active,a.list-group-item-warning.active:focus,a.list-group-item-warning.active:hover,button.list-group-item-warning.active,button.list-group-item-warning.active:focus,button.list-group-item-warning.active:hover{color:#fff;background-color:#8a6d3b;border-color:#8a6d3b}.list-group-item-danger{color:#a94442;background-color:#f2dede}a.list-group-item-danger,button.list-group-item-danger{color:#a94442}a.list-group-item-danger .list-group-item-heading,button.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:focus,a.list-group-item-danger:hover,button.list-group-item-danger:focus,button.list-group-item-danger:hover{color:#a94442;background-color:#ebcccc}a.list-group-item-danger.active,a.list-group-item-danger.active:focus,a.list-group-item-danger.active:hover,button.list-group-item-danger.active,button.list-group-item-danger.active:focus,button.list-group-item-danger.active:hover{color:#fff;background-color:#a94442;border-color:#a94442}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:20px;background-color:#fff;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.05);box-shadow:0 1px 1px rgba(0,0,0,.05)}.panel-body{padding:15px}.panel-body:after,.panel-body:before{content:" ";display:table}.panel-body:after{clear:both}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-right-radius:3px;border-top-left-radius:3px}.panel-heading>.dropdown .dropdown-toggle,.panel-title{color:inherit}.panel-title{margin-top:0;margin-bottom:0;font-size:16px}.panel-title>.small,.panel-title>.small>a,.panel-title>a,.panel-title>small,.panel-title>small>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #ddd;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.list-group,.panel>.panel-collapse>.list-group{margin-bottom:0}.panel>.list-group .list-group-item,.panel>.panel-collapse>.list-group .list-group-item{border-width:1px 0;border-radius:0}.panel>.list-group:first-child .list-group-item:first-child,.panel>.panel-collapse>.list-group:first-child .list-group-item:first-child{border-top:0;border-top-right-radius:3px;border-top-left-radius:3px}.panel>.list-group:last-child .list-group-item:last-child,.panel>.panel-collapse>.list-group:last-child .list-group-item:last-child{border-bottom:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.panel-heading+.panel-collapse>.list-group .list-group-item:first-child{border-top-right-radius:0;border-top-left-radius:0}.list-group+.panel-footer,.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.panel>.panel-collapse>.table,.panel>.table,.panel>.table-responsive>.table{margin-bottom:0}.panel>.panel-collapse>.table caption,.panel>.table-responsive>.table caption,.panel>.table caption{padding-left:15px;padding-right:15px}.panel>.table-responsive:first-child>.table:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child,.panel>.table:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child,.panel>.table:first-child>thead:first-child>tr:first-child{border-top-right-radius:3px;border-top-left-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child{border-top-left-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child{border-top-right-radius:3px}.panel>.table-responsive:last-child>.table:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child,.panel>.table:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:3px}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive,.panel>.table+.panel-body,.panel>.table-responsive+.panel-body{border-top:1px solid #ddd}.panel>.table>tbody:first-child>tr:first-child td,.panel>.table>tbody:first-child>tr:first-child th{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>th,.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-bordered>thead>tr:first-child>td,.panel>.table-bordered>thead>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th{border-bottom:0}.panel>.table-responsive{border:0;margin-bottom:0}.panel-group{margin-bottom:20px}.panel-group .panel{margin-bottom:0;border-radius:4px}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse>.list-group,.panel-group .panel-heading+.panel-collapse>.panel-body{border-top:1px solid #ddd}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #ddd}.panel-default{border-color:#ddd}.panel-default>.panel-heading{color:#333;background-color:#f5f5f5;border-color:#ddd}.panel-default>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ddd}.panel-default>.panel-heading .badge{color:#f5f5f5;background-color:#333}.panel-default>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ddd}.panel-primary{border-color:#337ab7}.panel-primary>.panel-heading{color:#fff;background-color:#337ab7;border-color:#337ab7}.panel-primary>.panel-heading+.panel-collapse>.panel-body{border-top-color:#337ab7}.panel-primary>.panel-heading .badge{color:#337ab7;background-color:#fff}.panel-primary>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#337ab7}.panel-success{border-color:#d6e9c6}.panel-success>.panel-heading{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.panel-success>.panel-heading+.panel-collapse>.panel-body{border-top-color:#d6e9c6}.panel-success>.panel-heading .badge{color:#dff0d8;background-color:#3c763d}.panel-success>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#d6e9c6}.panel-info{border-color:#bce8f1}.panel-info>.panel-heading{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.panel-info>.panel-heading+.panel-collapse>.panel-body{border-top-color:#bce8f1}.panel-info>.panel-heading .badge{color:#d9edf7;background-color:#31708f}.panel-info>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#bce8f1}.panel-warning{border-color:#faebcc}.panel-warning>.panel-heading{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.panel-warning>.panel-heading+.panel-collapse>.panel-body{border-top-color:#faebcc}.panel-warning>.panel-heading .badge{color:#fcf8e3;background-color:#8a6d3b}.panel-warning>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#faebcc}.panel-danger{border-color:#ebccd1}.panel-danger>.panel-heading{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.panel-danger>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ebccd1}.panel-danger>.panel-heading .badge{color:#f2dede;background-color:#a94442}.panel-danger>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ebccd1}.embed-responsive{position:relative;display:block;height:0;padding:0;overflow:hidden}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;left:0;bottom:0;height:100%;width:100%;border:0}.embed-responsive-16by9{padding-bottom:56.25%}.embed-responsive-4by3{padding-bottom:75%}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.05);box-shadow:inset 0 1px 1px rgba(0,0,0,.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,.15)}.well-lg{padding:24px;border-radius:6px}.well-sm{padding:9px;border-radius:3px}.close{float:right;font-size:21px;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.2;filter:alpha(opacity=20)}.close:focus,.close:hover{color:#000;text-decoration:none;cursor:pointer;opacity:.5;filter:alpha(opacity=50)}button.close{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none}.modal,.modal-open{overflow:hidden}.modal{display:none;position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transform:translateY(-25%);-ms-transform:translateY(-25%);-o-transform:translateY(-25%);transform:translateY(-25%);-webkit-transition:-webkit-transform .3s ease-out;-moz-transition:-moz-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:transform .3s ease-out}.modal.in .modal-dialog{-webkit-transform:translate(0);-ms-transform:translate(0);-o-transform:translate(0);transform:translate(0)}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-dialog{position:relative;width:auto;margin:10px}.modal-content{position:relative;background-color:#fff;border:1px solid #999;border:1px solid rgba(0,0,0,.2);border-radius:6px;-webkit-box-shadow:0 3px 9px rgba(0,0,0,.5);box-shadow:0 3px 9px rgba(0,0,0,.5);background-clip:padding-box;outline:0}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{opacity:0;filter:alpha(opacity=0)}.modal-backdrop.in{opacity:.5;filter:alpha(opacity=50)}.modal-header{padding:15px;border-bottom:1px solid #e5e5e5}.modal-header:after,.modal-header:before{content:" ";display:table}.modal-header:after{clear:both}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.42857}.modal-body{position:relative;padding:15px}.modal-footer{padding:15px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer:after,.modal-footer:before{content:" ";display:table}.modal-footer:after{clear:both}.modal-footer .btn+.btn{margin-left:5px;margin-bottom:0}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,.5);box-shadow:0 5px 15px rgba(0,0,0,.5)}.modal-sm{width:300px}}@media (min-width:992px){.modal-lg{width:900px}}.tooltip{position:absolute;z-index:1070;display:block;font-family:Helvetica Neue,Helvetica,Arial,sans-serif;font-style:normal;font-weight:400;letter-spacing:normal;line-break:auto;line-height:1.42857;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;white-space:normal;word-break:normal;word-spacing:normal;word-wrap:normal;font-size:12px;opacity:0;filter:alpha(opacity=0)}.tooltip.in{opacity:.9;filter:alpha(opacity=90)}.tooltip.top{margin-top:-3px;padding:5px 0}.tooltip.right{margin-left:3px;padding:0 5px}.tooltip.bottom{margin-top:3px;padding:5px 0}.tooltip.left{margin-left:-3px;padding:0 5px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;background-color:#000;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-left .tooltip-arrow{right:5px}.tooltip.top-left .tooltip-arrow,.tooltip.top-right .tooltip-arrow{bottom:0;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-right .tooltip-arrow{left:5px}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-left .tooltip-arrow{top:0;right:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-right .tooltip-arrow{top:0;left:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000}.popover{position:absolute;top:0;left:0;z-index:1060;display:none;max-width:276px;padding:1px;font-family:Helvetica Neue,Helvetica,Arial,sans-serif;font-style:normal;font-weight:400;letter-spacing:normal;line-break:auto;line-height:1.42857;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;white-space:normal;word-break:normal;word-spacing:normal;word-wrap:normal;font-size:14px;background-color:#fff;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2)}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{margin:0;padding:8px 14px;font-size:14px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:5px 5px 0 0}.popover-content{padding:9px 14px}.popover>.arrow,.popover>.arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover>.arrow{border-width:11px}.popover>.arrow:after{border-width:10px;content:""}.popover.top>.arrow{left:50%;margin-left:-11px;border-bottom-width:0;border-top-color:#999;border-top-color:rgba(0,0,0,.25);bottom:-11px}.popover.top>.arrow:after{content:" ";bottom:1px;margin-left:-10px;border-bottom-width:0;border-top-color:#fff}.popover.right>.arrow{top:50%;left:-11px;margin-top:-11px;border-left-width:0;border-right-color:#999;border-right-color:rgba(0,0,0,.25)}.popover.right>.arrow:after{content:" ";left:1px;bottom:-10px;border-left-width:0;border-right-color:#fff}.popover.bottom>.arrow{left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,.25);top:-11px}.popover.bottom>.arrow:after{content:" ";top:1px;margin-left:-10px;border-top-width:0;border-bottom-color:#fff}.popover.left>.arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999;border-left-color:rgba(0,0,0,.25)}.popover.left>.arrow:after{content:" ";right:1px;border-right-width:0;border-left-color:#fff;bottom:-10px}.carousel,.carousel-inner{position:relative}.carousel-inner{overflow:hidden;width:100%}.carousel-inner>.item{display:none;position:relative;-webkit-transition:left .6s ease-in-out;-o-transition:.6s ease-in-out left;transition:left .6s ease-in-out}.carousel-inner>.item>a>img,.carousel-inner>.item>img{display:block;max-width:100%;height:auto;line-height:1}@media (-webkit-transform-3d),(transform-3d){.carousel-inner>.item{-webkit-transition:-webkit-transform .6s ease-in-out;-moz-transition:-moz-transform .6s ease-in-out;-o-transition:-o-transform .6s ease-in-out;transition:transform .6s ease-in-out;-webkit-backface-visibility:hidden;-moz-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000px;-moz-perspective:1000px;perspective:1000px}.carousel-inner>.item.active.right,.carousel-inner>.item.next{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0);left:0}.carousel-inner>.item.active.left,.carousel-inner>.item.prev{-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0);left:0}.carousel-inner>.item.active,.carousel-inner>.item.next.left,.carousel-inner>.item.prev.right{-webkit-transform:translateZ(0);transform:translateZ(0);left:0}}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:0;left:0;bottom:0;width:15%;opacity:.5;filter:alpha(opacity=50);font-size:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6);background-color:transparent}.carousel-control.left{background-image:-webkit-linear-gradient(left,rgba(0,0,0,.5),rgba(0,0,0,.0001));background-image:-o-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:linear-gradient(90deg,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001));background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr="#80000000",endColorstr="#00000000",GradientType=1)}.carousel-control.right{left:auto;right:0;background-image:-webkit-linear-gradient(left,rgba(0,0,0,.0001),rgba(0,0,0,.5));background-image:-o-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:linear-gradient(90deg,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5));background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr="#00000000",endColorstr="#80000000",GradientType=1)}.carousel-control:focus,.carousel-control:hover{outline:0;color:#fff;text-decoration:none;opacity:.9;filter:alpha(opacity=90)}.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next,.carousel-control .icon-prev{position:absolute;top:50%;margin-top:-10px;z-index:5;display:inline-block}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{left:50%;margin-left:-10px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{right:50%;margin-right:-10px}.carousel-control .icon-next,.carousel-control .icon-prev{width:20px;height:20px;line-height:1;font-family:serif}.carousel-control .icon-prev:before{content:"\2039"}.carousel-control .icon-next:before{content:"\203A"}.carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;margin-left:-30%;padding-left:0;list-style:none;text-align:center}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;border:1px solid #fff;border-radius:10px;cursor:pointer;background-color:#000\9;background-color:transparent}.carousel-indicators .active{margin:0;width:12px;height:12px;background-color:#fff}.carousel-caption{position:absolute;left:15%;right:15%;bottom:20px;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6)}.carousel-caption .btn{text-shadow:none}@media screen and (min-width:768px){.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next,.carousel-control .icon-prev{width:30px;height:30px;margin-top:-10px;font-size:30px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{margin-left:-10px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{margin-right:-10px}.carousel-caption{left:20%;right:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.clearfix:after,.clearfix:before{content:" ";display:table}.clearfix:after{clear:both}.center-block{display:block;margin-left:auto;margin-right:auto}.pull-right{float:right!important}.pull-left{float:left!important}.hide{display:none!important}.show{display:block!important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none!important}.affix{position:fixed}@-ms-viewport{width:device-width}.visible-lg,.visible-lg-block,.visible-lg-inline,.visible-lg-inline-block,.visible-md,.visible-md-block,.visible-md-inline,.visible-md-inline-block,.visible-sm,.visible-sm-block,.visible-sm-inline,.visible-sm-inline-block,.visible-xs,.visible-xs-block,.visible-xs-inline,.visible-xs-inline-block{display:none!important}@media (max-width:767px){.visible-xs{display:block!important}table.visible-xs{display:table!important}tr.visible-xs{display:table-row!important}td.visible-xs,th.visible-xs{display:table-cell!important}}@media (max-width:767px){.visible-xs-block{display:block!important}}@media (max-width:767px){.visible-xs-inline{display:inline!important}}@media (max-width:767px){.visible-xs-inline-block{display:inline-block!important}}@media (min-width:768px) and (max-width:991px){.visible-sm{display:block!important}table.visible-sm{display:table!important}tr.visible-sm{display:table-row!important}td.visible-sm,th.visible-sm{display:table-cell!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-block{display:block!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline{display:inline!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline-block{display:inline-block!important}}@media (min-width:992px) and (max-width:1199px){.visible-md{display:block!important}table.visible-md{display:table!important}tr.visible-md{display:table-row!important}td.visible-md,th.visible-md{display:table-cell!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-block{display:block!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline{display:inline!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline-block{display:inline-block!important}}@media (min-width:1200px){.visible-lg{display:block!important}table.visible-lg{display:table!important}tr.visible-lg{display:table-row!important}td.visible-lg,th.visible-lg{display:table-cell!important}}@media (min-width:1200px){.visible-lg-block{display:block!important}}@media (min-width:1200px){.visible-lg-inline{display:inline!important}}@media (min-width:1200px){.visible-lg-inline-block{display:inline-block!important}}@media (max-width:767px){.hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1199px){.hidden-md{display:none!important}}@media (min-width:1200px){.hidden-lg{display:none!important}}.visible-print{display:none!important}@media print{.visible-print{display:block!important}table.visible-print{display:table!important}tr.visible-print{display:table-row!important}td.visible-print,th.visible-print{display:table-cell!important}}.visible-print-block{display:none!important}@media print{.visible-print-block{display:block!important}}.visible-print-inline{display:none!important}@media print{.visible-print-inline{display:inline!important}}.visible-print-inline-block{display:none!important}@media print{.visible-print-inline-block{display:inline-block!important}}@media print{.hidden-print{display:none!important}} /*! * Font Awesome Free 5.1.1 by @fontawesome - https://fontawesome.com * License - https://fontawesome.com/license (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) - */ -.fa, -.fas, -.far, -.fal, -.fab { - -moz-osx-font-smoothing: grayscale; - -webkit-font-smoothing: antialiased; - display: inline-block; - font-style: normal; - font-variant: normal; - text-rendering: auto; - line-height: 1; } - -.fa-lg { - font-size: 1.33333em; - line-height: 0.75em; - vertical-align: -.0667em; } - -.fa-xs { - font-size: .75em; } - -.fa-sm { - font-size: .875em; } - -.fa-1x { - font-size: 1em; } - -.fa-2x { - font-size: 2em; } - -.fa-3x { - font-size: 3em; } - -.fa-4x { - font-size: 4em; } - -.fa-5x { - font-size: 5em; } - -.fa-6x { - font-size: 6em; } - -.fa-7x { - font-size: 7em; } - -.fa-8x { - font-size: 8em; } - -.fa-9x { - font-size: 9em; } - -.fa-10x { - font-size: 10em; } - -.fa-fw { - text-align: center; - width: 1.25em; } - -.fa-ul { - list-style-type: none; - margin-left: 2.5em; - padding-left: 0; } - .fa-ul > li { - position: relative; } - -.fa-li { - left: -2em; - position: absolute; - text-align: center; - width: 2em; - line-height: inherit; } - -.fa-border { - border: solid 0.08em #eee; - border-radius: .1em; - padding: .2em .25em .15em; } - -.fa-pull-left { - float: left; } - -.fa-pull-right { - float: right; } - -.fa.fa-pull-left, -.fas.fa-pull-left, -.far.fa-pull-left, -.fal.fa-pull-left, -.fab.fa-pull-left { - margin-right: .3em; } - -.fa.fa-pull-right, -.fas.fa-pull-right, -.far.fa-pull-right, -.fal.fa-pull-right, -.fab.fa-pull-right { - margin-left: .3em; } - -.fa-spin { - animation: fa-spin 2s infinite linear; } - -.fa-pulse { - animation: fa-spin 1s infinite steps(8); } - -@keyframes fa-spin { - 0% { - transform: rotate(0deg); } - 100% { - transform: rotate(360deg); } } - -.fa-rotate-90 { - -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=1)"; - transform: rotate(90deg); } - -.fa-rotate-180 { - -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2)"; - transform: rotate(180deg); } - -.fa-rotate-270 { - -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=3)"; - transform: rotate(270deg); } - -.fa-flip-horizontal { - -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)"; - transform: scale(-1, 1); } - -.fa-flip-vertical { - -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)"; - transform: scale(1, -1); } - -.fa-flip-horizontal.fa-flip-vertical { - -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)"; - transform: scale(-1, -1); } - -:root .fa-rotate-90, -:root .fa-rotate-180, -:root .fa-rotate-270, -:root .fa-flip-horizontal, -:root .fa-flip-vertical { - filter: none; } - -.fa-stack { - display: inline-block; - height: 2em; - line-height: 2em; - position: relative; - vertical-align: middle; - width: 2em; } - -.fa-stack-1x, -.fa-stack-2x { - left: 0; - position: absolute; - text-align: center; - width: 100%; } - -.fa-stack-1x { - line-height: inherit; } - -.fa-stack-2x { - font-size: 2em; } - -.fa-inverse { - color: #fff; } - -/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen -readers do not read off random characters that represent icons */ -.fa-500px:before { - content: "\F26E"; } - -.fa-accessible-icon:before { - content: "\F368"; } - -.fa-accusoft:before { - content: "\F369"; } - -.fa-address-book:before { - content: "\F2B9"; } - -.fa-address-card:before { - content: "\F2BB"; } - -.fa-adjust:before { - content: "\F042"; } - -.fa-adn:before { - content: "\F170"; } - -.fa-adversal:before { - content: "\F36A"; } - -.fa-affiliatetheme:before { - content: "\F36B"; } - -.fa-algolia:before { - content: "\F36C"; } - -.fa-align-center:before { - content: "\F037"; } - -.fa-align-justify:before { - content: "\F039"; } - -.fa-align-left:before { - content: "\F036"; } - -.fa-align-right:before { - content: "\F038"; } - -.fa-allergies:before { - content: "\F461"; } - -.fa-amazon:before { - content: "\F270"; } - -.fa-amazon-pay:before { - content: "\F42C"; } - -.fa-ambulance:before { - content: "\F0F9"; } - -.fa-american-sign-language-interpreting:before { - content: "\F2A3"; } - -.fa-amilia:before { - content: "\F36D"; } - -.fa-anchor:before { - content: "\F13D"; } - -.fa-android:before { - content: "\F17B"; } - -.fa-angellist:before { - content: "\F209"; } - -.fa-angle-double-down:before { - content: "\F103"; } - -.fa-angle-double-left:before { - content: "\F100"; } - -.fa-angle-double-right:before { - content: "\F101"; } - -.fa-angle-double-up:before { - content: "\F102"; } - -.fa-angle-down:before { - content: "\F107"; } - -.fa-angle-left:before { - content: "\F104"; } - -.fa-angle-right:before { - content: "\F105"; } - -.fa-angle-up:before { - content: "\F106"; } - -.fa-angry:before { - content: "\F556"; } - -.fa-angrycreative:before { - content: "\F36E"; } - -.fa-angular:before { - content: "\F420"; } - -.fa-app-store:before { - content: "\F36F"; } - -.fa-app-store-ios:before { - content: "\F370"; } - -.fa-apper:before { - content: "\F371"; } - -.fa-apple:before { - content: "\F179"; } - -.fa-apple-pay:before { - content: "\F415"; } - -.fa-archive:before { - content: "\F187"; } - -.fa-archway:before { - content: "\F557"; } - -.fa-arrow-alt-circle-down:before { - content: "\F358"; } - -.fa-arrow-alt-circle-left:before { - content: "\F359"; } - -.fa-arrow-alt-circle-right:before { - content: "\F35A"; } - -.fa-arrow-alt-circle-up:before { - content: "\F35B"; } - -.fa-arrow-circle-down:before { - content: "\F0AB"; } - -.fa-arrow-circle-left:before { - content: "\F0A8"; } - -.fa-arrow-circle-right:before { - content: "\F0A9"; } - -.fa-arrow-circle-up:before { - content: "\F0AA"; } - -.fa-arrow-down:before { - content: "\F063"; } - -.fa-arrow-left:before { - content: "\F060"; } - -.fa-arrow-right:before { - content: "\F061"; } - -.fa-arrow-up:before { - content: "\F062"; } - -.fa-arrows-alt:before { - content: "\F0B2"; } - -.fa-arrows-alt-h:before { - content: "\F337"; } - -.fa-arrows-alt-v:before { - content: "\F338"; } - -.fa-assistive-listening-systems:before { - content: "\F2A2"; } - -.fa-asterisk:before { - content: "\F069"; } - -.fa-asymmetrik:before { - content: "\F372"; } - -.fa-at:before { - content: "\F1FA"; } - -.fa-atlas:before { - content: "\F558"; } - -.fa-audible:before { - content: "\F373"; } - -.fa-audio-description:before { - content: "\F29E"; } - -.fa-autoprefixer:before { - content: "\F41C"; } - -.fa-avianex:before { - content: "\F374"; } - -.fa-aviato:before { - content: "\F421"; } - -.fa-award:before { - content: "\F559"; } - -.fa-aws:before { - content: "\F375"; } - -.fa-backspace:before { - content: "\F55A"; } - -.fa-backward:before { - content: "\F04A"; } - -.fa-balance-scale:before { - content: "\F24E"; } - -.fa-ban:before { - content: "\F05E"; } - -.fa-band-aid:before { - content: "\F462"; } - -.fa-bandcamp:before { - content: "\F2D5"; } - -.fa-barcode:before { - content: "\F02A"; } - -.fa-bars:before { - content: "\F0C9"; } - -.fa-baseball-ball:before { - content: "\F433"; } - -.fa-basketball-ball:before { - content: "\F434"; } - -.fa-bath:before { - content: "\F2CD"; } - -.fa-battery-empty:before { - content: "\F244"; } - -.fa-battery-full:before { - content: "\F240"; } - -.fa-battery-half:before { - content: "\F242"; } - -.fa-battery-quarter:before { - content: "\F243"; } - -.fa-battery-three-quarters:before { - content: "\F241"; } - -.fa-bed:before { - content: "\F236"; } - -.fa-beer:before { - content: "\F0FC"; } - -.fa-behance:before { - content: "\F1B4"; } - -.fa-behance-square:before { - content: "\F1B5"; } - -.fa-bell:before { - content: "\F0F3"; } - -.fa-bell-slash:before { - content: "\F1F6"; } - -.fa-bezier-curve:before { - content: "\F55B"; } - -.fa-bicycle:before { - content: "\F206"; } - -.fa-bimobject:before { - content: "\F378"; } - -.fa-binoculars:before { - content: "\F1E5"; } - -.fa-birthday-cake:before { - content: "\F1FD"; } - -.fa-bitbucket:before { - content: "\F171"; } - -.fa-bitcoin:before { - content: "\F379"; } - -.fa-bity:before { - content: "\F37A"; } - -.fa-black-tie:before { - content: "\F27E"; } - -.fa-blackberry:before { - content: "\F37B"; } - -.fa-blender:before { - content: "\F517"; } - -.fa-blind:before { - content: "\F29D"; } - -.fa-blogger:before { - content: "\F37C"; } - -.fa-blogger-b:before { - content: "\F37D"; } - -.fa-bluetooth:before { - content: "\F293"; } - -.fa-bluetooth-b:before { - content: "\F294"; } - -.fa-bold:before { - content: "\F032"; } - -.fa-bolt:before { - content: "\F0E7"; } - -.fa-bomb:before { - content: "\F1E2"; } - -.fa-bong:before { - content: "\F55C"; } - -.fa-book:before { - content: "\F02D"; } - -.fa-book-open:before { - content: "\F518"; } - -.fa-bookmark:before { - content: "\F02E"; } - -.fa-bowling-ball:before { - content: "\F436"; } - -.fa-box:before { - content: "\F466"; } - -.fa-box-open:before { - content: "\F49E"; } - -.fa-boxes:before { - content: "\F468"; } - -.fa-braille:before { - content: "\F2A1"; } - -.fa-briefcase:before { - content: "\F0B1"; } - -.fa-briefcase-medical:before { - content: "\F469"; } - -.fa-broadcast-tower:before { - content: "\F519"; } - -.fa-broom:before { - content: "\F51A"; } - -.fa-brush:before { - content: "\F55D"; } - -.fa-btc:before { - content: "\F15A"; } - -.fa-bug:before { - content: "\F188"; } - -.fa-building:before { - content: "\F1AD"; } - -.fa-bullhorn:before { - content: "\F0A1"; } - -.fa-bullseye:before { - content: "\F140"; } - -.fa-burn:before { - content: "\F46A"; } - -.fa-buromobelexperte:before { - content: "\F37F"; } - -.fa-bus:before { - content: "\F207"; } - -.fa-bus-alt:before { - content: "\F55E"; } - -.fa-buysellads:before { - content: "\F20D"; } - -.fa-calculator:before { - content: "\F1EC"; } - -.fa-calendar:before { - content: "\F133"; } - -.fa-calendar-alt:before { - content: "\F073"; } - -.fa-calendar-check:before { - content: "\F274"; } - -.fa-calendar-minus:before { - content: "\F272"; } - -.fa-calendar-plus:before { - content: "\F271"; } - -.fa-calendar-times:before { - content: "\F273"; } - -.fa-camera:before { - content: "\F030"; } - -.fa-camera-retro:before { - content: "\F083"; } - -.fa-cannabis:before { - content: "\F55F"; } - -.fa-capsules:before { - content: "\F46B"; } - -.fa-car:before { - content: "\F1B9"; } - -.fa-caret-down:before { - content: "\F0D7"; } - -.fa-caret-left:before { - content: "\F0D9"; } - -.fa-caret-right:before { - content: "\F0DA"; } - -.fa-caret-square-down:before { - content: "\F150"; } - -.fa-caret-square-left:before { - content: "\F191"; } - -.fa-caret-square-right:before { - content: "\F152"; } - -.fa-caret-square-up:before { - content: "\F151"; } - -.fa-caret-up:before { - content: "\F0D8"; } - -.fa-cart-arrow-down:before { - content: "\F218"; } - -.fa-cart-plus:before { - content: "\F217"; } - -.fa-cc-amazon-pay:before { - content: "\F42D"; } - -.fa-cc-amex:before { - content: "\F1F3"; } - -.fa-cc-apple-pay:before { - content: "\F416"; } - -.fa-cc-diners-club:before { - content: "\F24C"; } - -.fa-cc-discover:before { - content: "\F1F2"; } - -.fa-cc-jcb:before { - content: "\F24B"; } - -.fa-cc-mastercard:before { - content: "\F1F1"; } - -.fa-cc-paypal:before { - content: "\F1F4"; } - -.fa-cc-stripe:before { - content: "\F1F5"; } - -.fa-cc-visa:before { - content: "\F1F0"; } - -.fa-centercode:before { - content: "\F380"; } - -.fa-certificate:before { - content: "\F0A3"; } - -.fa-chalkboard:before { - content: "\F51B"; } - -.fa-chalkboard-teacher:before { - content: "\F51C"; } - -.fa-chart-area:before { - content: "\F1FE"; } - -.fa-chart-bar:before { - content: "\F080"; } - -.fa-chart-line:before { - content: "\F201"; } - -.fa-chart-pie:before { - content: "\F200"; } - -.fa-check:before { - content: "\F00C"; } - -.fa-check-circle:before { - content: "\F058"; } - -.fa-check-double:before { - content: "\F560"; } - -.fa-check-square:before { - content: "\F14A"; } - -.fa-chess:before { - content: "\F439"; } - -.fa-chess-bishop:before { - content: "\F43A"; } - -.fa-chess-board:before { - content: "\F43C"; } - -.fa-chess-king:before { - content: "\F43F"; } - -.fa-chess-knight:before { - content: "\F441"; } - -.fa-chess-pawn:before { - content: "\F443"; } - -.fa-chess-queen:before { - content: "\F445"; } - -.fa-chess-rook:before { - content: "\F447"; } - -.fa-chevron-circle-down:before { - content: "\F13A"; } - -.fa-chevron-circle-left:before { - content: "\F137"; } - -.fa-chevron-circle-right:before { - content: "\F138"; } - -.fa-chevron-circle-up:before { - content: "\F139"; } - -.fa-chevron-down:before { - content: "\F078"; } - -.fa-chevron-left:before { - content: "\F053"; } - -.fa-chevron-right:before { - content: "\F054"; } - -.fa-chevron-up:before { - content: "\F077"; } - -.fa-child:before { - content: "\F1AE"; } - -.fa-chrome:before { - content: "\F268"; } - -.fa-church:before { - content: "\F51D"; } - -.fa-circle:before { - content: "\F111"; } - -.fa-circle-notch:before { - content: "\F1CE"; } - -.fa-clipboard:before { - content: "\F328"; } - -.fa-clipboard-check:before { - content: "\F46C"; } - -.fa-clipboard-list:before { - content: "\F46D"; } - -.fa-clock:before { - content: "\F017"; } - -.fa-clone:before { - content: "\F24D"; } - -.fa-closed-captioning:before { - content: "\F20A"; } - -.fa-cloud:before { - content: "\F0C2"; } - -.fa-cloud-download-alt:before { - content: "\F381"; } - -.fa-cloud-upload-alt:before { - content: "\F382"; } - -.fa-cloudscale:before { - content: "\F383"; } - -.fa-cloudsmith:before { - content: "\F384"; } - -.fa-cloudversify:before { - content: "\F385"; } - -.fa-cocktail:before { - content: "\F561"; } - -.fa-code:before { - content: "\F121"; } - -.fa-code-branch:before { - content: "\F126"; } - -.fa-codepen:before { - content: "\F1CB"; } - -.fa-codiepie:before { - content: "\F284"; } - -.fa-coffee:before { - content: "\F0F4"; } - -.fa-cog:before { - content: "\F013"; } - -.fa-cogs:before { - content: "\F085"; } - -.fa-coins:before { - content: "\F51E"; } - -.fa-columns:before { - content: "\F0DB"; } - -.fa-comment:before { - content: "\F075"; } - -.fa-comment-alt:before { - content: "\F27A"; } - -.fa-comment-dots:before { - content: "\F4AD"; } - -.fa-comment-slash:before { - content: "\F4B3"; } - -.fa-comments:before { - content: "\F086"; } - -.fa-compact-disc:before { - content: "\F51F"; } - -.fa-compass:before { - content: "\F14E"; } - -.fa-compress:before { - content: "\F066"; } - -.fa-concierge-bell:before { - content: "\F562"; } - -.fa-connectdevelop:before { - content: "\F20E"; } - -.fa-contao:before { - content: "\F26D"; } - -.fa-cookie:before { - content: "\F563"; } - -.fa-cookie-bite:before { - content: "\F564"; } - -.fa-copy:before { - content: "\F0C5"; } - -.fa-copyright:before { - content: "\F1F9"; } - -.fa-couch:before { - content: "\F4B8"; } - -.fa-cpanel:before { - content: "\F388"; } - -.fa-creative-commons:before { - content: "\F25E"; } - -.fa-creative-commons-by:before { - content: "\F4E7"; } - -.fa-creative-commons-nc:before { - content: "\F4E8"; } - -.fa-creative-commons-nc-eu:before { - content: "\F4E9"; } - -.fa-creative-commons-nc-jp:before { - content: "\F4EA"; } - -.fa-creative-commons-nd:before { - content: "\F4EB"; } - -.fa-creative-commons-pd:before { - content: "\F4EC"; } - -.fa-creative-commons-pd-alt:before { - content: "\F4ED"; } - -.fa-creative-commons-remix:before { - content: "\F4EE"; } - -.fa-creative-commons-sa:before { - content: "\F4EF"; } - -.fa-creative-commons-sampling:before { - content: "\F4F0"; } - -.fa-creative-commons-sampling-plus:before { - content: "\F4F1"; } - -.fa-creative-commons-share:before { - content: "\F4F2"; } - -.fa-credit-card:before { - content: "\F09D"; } - -.fa-crop:before { - content: "\F125"; } - -.fa-crop-alt:before { - content: "\F565"; } - -.fa-crosshairs:before { - content: "\F05B"; } - -.fa-crow:before { - content: "\F520"; } - -.fa-crown:before { - content: "\F521"; } - -.fa-css3:before { - content: "\F13C"; } - -.fa-css3-alt:before { - content: "\F38B"; } - -.fa-cube:before { - content: "\F1B2"; } - -.fa-cubes:before { - content: "\F1B3"; } - -.fa-cut:before { - content: "\F0C4"; } - -.fa-cuttlefish:before { - content: "\F38C"; } - -.fa-d-and-d:before { - content: "\F38D"; } - -.fa-dashcube:before { - content: "\F210"; } - -.fa-database:before { - content: "\F1C0"; } - -.fa-deaf:before { - content: "\F2A4"; } - -.fa-delicious:before { - content: "\F1A5"; } - -.fa-deploydog:before { - content: "\F38E"; } - -.fa-deskpro:before { - content: "\F38F"; } - -.fa-desktop:before { - content: "\F108"; } - -.fa-deviantart:before { - content: "\F1BD"; } - -.fa-diagnoses:before { - content: "\F470"; } - -.fa-dice:before { - content: "\F522"; } - -.fa-dice-five:before { - content: "\F523"; } - -.fa-dice-four:before { - content: "\F524"; } - -.fa-dice-one:before { - content: "\F525"; } - -.fa-dice-six:before { - content: "\F526"; } - -.fa-dice-three:before { - content: "\F527"; } - -.fa-dice-two:before { - content: "\F528"; } - -.fa-digg:before { - content: "\F1A6"; } - -.fa-digital-ocean:before { - content: "\F391"; } - -.fa-digital-tachograph:before { - content: "\F566"; } - -.fa-discord:before { - content: "\F392"; } - -.fa-discourse:before { - content: "\F393"; } - -.fa-divide:before { - content: "\F529"; } - -.fa-dizzy:before { - content: "\F567"; } - -.fa-dna:before { - content: "\F471"; } - -.fa-dochub:before { - content: "\F394"; } - -.fa-docker:before { - content: "\F395"; } - -.fa-dollar-sign:before { - content: "\F155"; } - -.fa-dolly:before { - content: "\F472"; } - -.fa-dolly-flatbed:before { - content: "\F474"; } - -.fa-donate:before { - content: "\F4B9"; } - -.fa-door-closed:before { - content: "\F52A"; } - -.fa-door-open:before { - content: "\F52B"; } - -.fa-dot-circle:before { - content: "\F192"; } - -.fa-dove:before { - content: "\F4BA"; } - -.fa-download:before { - content: "\F019"; } - -.fa-draft2digital:before { - content: "\F396"; } - -.fa-drafting-compass:before { - content: "\F568"; } - -.fa-dribbble:before { - content: "\F17D"; } - -.fa-dribbble-square:before { - content: "\F397"; } - -.fa-dropbox:before { - content: "\F16B"; } - -.fa-drum:before { - content: "\F569"; } - -.fa-drum-steelpan:before { - content: "\F56A"; } - -.fa-drupal:before { - content: "\F1A9"; } - -.fa-dumbbell:before { - content: "\F44B"; } - -.fa-dyalog:before { - content: "\F399"; } - -.fa-earlybirds:before { - content: "\F39A"; } - -.fa-ebay:before { - content: "\F4F4"; } - -.fa-edge:before { - content: "\F282"; } - -.fa-edit:before { - content: "\F044"; } - -.fa-eject:before { - content: "\F052"; } - -.fa-elementor:before { - content: "\F430"; } - -.fa-ellipsis-h:before { - content: "\F141"; } - -.fa-ellipsis-v:before { - content: "\F142"; } - -.fa-ember:before { - content: "\F423"; } - -.fa-empire:before { - content: "\F1D1"; } - -.fa-envelope:before { - content: "\F0E0"; } - -.fa-envelope-open:before { - content: "\F2B6"; } - -.fa-envelope-square:before { - content: "\F199"; } - -.fa-envira:before { - content: "\F299"; } - -.fa-equals:before { - content: "\F52C"; } - -.fa-eraser:before { - content: "\F12D"; } - -.fa-erlang:before { - content: "\F39D"; } - -.fa-ethereum:before { - content: "\F42E"; } - -.fa-etsy:before { - content: "\F2D7"; } - -.fa-euro-sign:before { - content: "\F153"; } - -.fa-exchange-alt:before { - content: "\F362"; } - -.fa-exclamation:before { - content: "\F12A"; } - -.fa-exclamation-circle:before { - content: "\F06A"; } - -.fa-exclamation-triangle:before { - content: "\F071"; } - -.fa-expand:before { - content: "\F065"; } - -.fa-expand-arrows-alt:before { - content: "\F31E"; } - -.fa-expeditedssl:before { - content: "\F23E"; } - -.fa-external-link-alt:before { - content: "\F35D"; } - -.fa-external-link-square-alt:before { - content: "\F360"; } - -.fa-eye:before { - content: "\F06E"; } - -.fa-eye-dropper:before { - content: "\F1FB"; } - -.fa-eye-slash:before { - content: "\F070"; } - -.fa-facebook:before { - content: "\F09A"; } - -.fa-facebook-f:before { - content: "\F39E"; } - -.fa-facebook-messenger:before { - content: "\F39F"; } - -.fa-facebook-square:before { - content: "\F082"; } - -.fa-fast-backward:before { - content: "\F049"; } - -.fa-fast-forward:before { - content: "\F050"; } - -.fa-fax:before { - content: "\F1AC"; } - -.fa-feather:before { - content: "\F52D"; } - -.fa-feather-alt:before { - content: "\F56B"; } - -.fa-female:before { - content: "\F182"; } - -.fa-fighter-jet:before { - content: "\F0FB"; } - -.fa-file:before { - content: "\F15B"; } - -.fa-file-alt:before { - content: "\F15C"; } - -.fa-file-archive:before { - content: "\F1C6"; } - -.fa-file-audio:before { - content: "\F1C7"; } - -.fa-file-code:before { - content: "\F1C9"; } - -.fa-file-contract:before { - content: "\F56C"; } - -.fa-file-download:before { - content: "\F56D"; } - -.fa-file-excel:before { - content: "\F1C3"; } - -.fa-file-export:before { - content: "\F56E"; } - -.fa-file-image:before { - content: "\F1C5"; } - -.fa-file-import:before { - content: "\F56F"; } - -.fa-file-invoice:before { - content: "\F570"; } - -.fa-file-invoice-dollar:before { - content: "\F571"; } - -.fa-file-medical:before { - content: "\F477"; } - -.fa-file-medical-alt:before { - content: "\F478"; } - -.fa-file-pdf:before { - content: "\F1C1"; } - -.fa-file-powerpoint:before { - content: "\F1C4"; } - -.fa-file-prescription:before { - content: "\F572"; } - -.fa-file-signature:before { - content: "\F573"; } - -.fa-file-upload:before { - content: "\F574"; } - -.fa-file-video:before { - content: "\F1C8"; } - -.fa-file-word:before { - content: "\F1C2"; } - -.fa-fill:before { - content: "\F575"; } - -.fa-fill-drip:before { - content: "\F576"; } - -.fa-film:before { - content: "\F008"; } - -.fa-filter:before { - content: "\F0B0"; } - -.fa-fingerprint:before { - content: "\F577"; } - -.fa-fire:before { - content: "\F06D"; } - -.fa-fire-extinguisher:before { - content: "\F134"; } - -.fa-firefox:before { - content: "\F269"; } - -.fa-first-aid:before { - content: "\F479"; } - -.fa-first-order:before { - content: "\F2B0"; } - -.fa-first-order-alt:before { - content: "\F50A"; } - -.fa-firstdraft:before { - content: "\F3A1"; } - -.fa-fish:before { - content: "\F578"; } - -.fa-flag:before { - content: "\F024"; } - -.fa-flag-checkered:before { - content: "\F11E"; } - -.fa-flask:before { - content: "\F0C3"; } - -.fa-flickr:before { - content: "\F16E"; } - -.fa-flipboard:before { - content: "\F44D"; } - -.fa-flushed:before { - content: "\F579"; } - -.fa-fly:before { - content: "\F417"; } - -.fa-folder:before { - content: "\F07B"; } - -.fa-folder-open:before { - content: "\F07C"; } - -.fa-font:before { - content: "\F031"; } - -.fa-font-awesome:before { - content: "\F2B4"; } - -.fa-font-awesome-alt:before { - content: "\F35C"; } - -.fa-font-awesome-flag:before { - content: "\F425"; } - -.fa-font-awesome-logo-full:before { - content: "\F4E6"; } - -.fa-fonticons:before { - content: "\F280"; } - -.fa-fonticons-fi:before { - content: "\F3A2"; } - -.fa-football-ball:before { - content: "\F44E"; } - -.fa-fort-awesome:before { - content: "\F286"; } - -.fa-fort-awesome-alt:before { - content: "\F3A3"; } - -.fa-forumbee:before { - content: "\F211"; } - -.fa-forward:before { - content: "\F04E"; } - -.fa-foursquare:before { - content: "\F180"; } - -.fa-free-code-camp:before { - content: "\F2C5"; } - -.fa-freebsd:before { - content: "\F3A4"; } - -.fa-frog:before { - content: "\F52E"; } - -.fa-frown:before { - content: "\F119"; } - -.fa-frown-open:before { - content: "\F57A"; } - -.fa-fulcrum:before { - content: "\F50B"; } - -.fa-futbol:before { - content: "\F1E3"; } - -.fa-galactic-republic:before { - content: "\F50C"; } - -.fa-galactic-senate:before { - content: "\F50D"; } - -.fa-gamepad:before { - content: "\F11B"; } - -.fa-gas-pump:before { - content: "\F52F"; } - -.fa-gavel:before { - content: "\F0E3"; } - -.fa-gem:before { - content: "\F3A5"; } - -.fa-genderless:before { - content: "\F22D"; } - -.fa-get-pocket:before { - content: "\F265"; } - -.fa-gg:before { - content: "\F260"; } - -.fa-gg-circle:before { - content: "\F261"; } - -.fa-gift:before { - content: "\F06B"; } - -.fa-git:before { - content: "\F1D3"; } - -.fa-git-square:before { - content: "\F1D2"; } - -.fa-github:before { - content: "\F09B"; } - -.fa-github-alt:before { - content: "\F113"; } - -.fa-github-square:before { - content: "\F092"; } - -.fa-gitkraken:before { - content: "\F3A6"; } - -.fa-gitlab:before { - content: "\F296"; } - -.fa-gitter:before { - content: "\F426"; } - -.fa-glass-martini:before { - content: "\F000"; } - -.fa-glass-martini-alt:before { - content: "\F57B"; } - -.fa-glasses:before { - content: "\F530"; } - -.fa-glide:before { - content: "\F2A5"; } - -.fa-glide-g:before { - content: "\F2A6"; } - -.fa-globe:before { - content: "\F0AC"; } - -.fa-globe-africa:before { - content: "\F57C"; } - -.fa-globe-americas:before { - content: "\F57D"; } - -.fa-globe-asia:before { - content: "\F57E"; } - -.fa-gofore:before { - content: "\F3A7"; } - -.fa-golf-ball:before { - content: "\F450"; } - -.fa-goodreads:before { - content: "\F3A8"; } - -.fa-goodreads-g:before { - content: "\F3A9"; } - -.fa-google:before { - content: "\F1A0"; } - -.fa-google-drive:before { - content: "\F3AA"; } - -.fa-google-play:before { - content: "\F3AB"; } - -.fa-google-plus:before { - content: "\F2B3"; } - -.fa-google-plus-g:before { - content: "\F0D5"; } - -.fa-google-plus-square:before { - content: "\F0D4"; } - -.fa-google-wallet:before { - content: "\F1EE"; } - -.fa-graduation-cap:before { - content: "\F19D"; } - -.fa-gratipay:before { - content: "\F184"; } - -.fa-grav:before { - content: "\F2D6"; } - -.fa-greater-than:before { - content: "\F531"; } - -.fa-greater-than-equal:before { - content: "\F532"; } - -.fa-grimace:before { - content: "\F57F"; } - -.fa-grin:before { - content: "\F580"; } - -.fa-grin-alt:before { - content: "\F581"; } - -.fa-grin-beam:before { - content: "\F582"; } - -.fa-grin-beam-sweat:before { - content: "\F583"; } - -.fa-grin-hearts:before { - content: "\F584"; } - -.fa-grin-squint:before { - content: "\F585"; } - -.fa-grin-squint-tears:before { - content: "\F586"; } - -.fa-grin-stars:before { - content: "\F587"; } - -.fa-grin-tears:before { - content: "\F588"; } - -.fa-grin-tongue:before { - content: "\F589"; } - -.fa-grin-tongue-squint:before { - content: "\F58A"; } - -.fa-grin-tongue-wink:before { - content: "\F58B"; } - -.fa-grin-wink:before { - content: "\F58C"; } - -.fa-grip-horizontal:before { - content: "\F58D"; } - -.fa-grip-vertical:before { - content: "\F58E"; } - -.fa-gripfire:before { - content: "\F3AC"; } - -.fa-grunt:before { - content: "\F3AD"; } - -.fa-gulp:before { - content: "\F3AE"; } - -.fa-h-square:before { - content: "\F0FD"; } - -.fa-hacker-news:before { - content: "\F1D4"; } - -.fa-hacker-news-square:before { - content: "\F3AF"; } - -.fa-hand-holding:before { - content: "\F4BD"; } - -.fa-hand-holding-heart:before { - content: "\F4BE"; } - -.fa-hand-holding-usd:before { - content: "\F4C0"; } - -.fa-hand-lizard:before { - content: "\F258"; } - -.fa-hand-paper:before { - content: "\F256"; } - -.fa-hand-peace:before { - content: "\F25B"; } - -.fa-hand-point-down:before { - content: "\F0A7"; } - -.fa-hand-point-left:before { - content: "\F0A5"; } - -.fa-hand-point-right:before { - content: "\F0A4"; } - -.fa-hand-point-up:before { - content: "\F0A6"; } - -.fa-hand-pointer:before { - content: "\F25A"; } - -.fa-hand-rock:before { - content: "\F255"; } - -.fa-hand-scissors:before { - content: "\F257"; } - -.fa-hand-spock:before { - content: "\F259"; } - -.fa-hands:before { - content: "\F4C2"; } - -.fa-hands-helping:before { - content: "\F4C4"; } - -.fa-handshake:before { - content: "\F2B5"; } - -.fa-hashtag:before { - content: "\F292"; } - -.fa-hdd:before { - content: "\F0A0"; } - -.fa-heading:before { - content: "\F1DC"; } - -.fa-headphones:before { - content: "\F025"; } - -.fa-headphones-alt:before { - content: "\F58F"; } - -.fa-headset:before { - content: "\F590"; } - -.fa-heart:before { - content: "\F004"; } - -.fa-heartbeat:before { - content: "\F21E"; } - -.fa-helicopter:before { - content: "\F533"; } - -.fa-highlighter:before { - content: "\F591"; } - -.fa-hips:before { - content: "\F452"; } - -.fa-hire-a-helper:before { - content: "\F3B0"; } - -.fa-history:before { - content: "\F1DA"; } - -.fa-hockey-puck:before { - content: "\F453"; } - -.fa-home:before { - content: "\F015"; } - -.fa-hooli:before { - content: "\F427"; } - -.fa-hornbill:before { - content: "\F592"; } - -.fa-hospital:before { - content: "\F0F8"; } - -.fa-hospital-alt:before { - content: "\F47D"; } - -.fa-hospital-symbol:before { - content: "\F47E"; } - -.fa-hot-tub:before { - content: "\F593"; } - -.fa-hotel:before { - content: "\F594"; } - -.fa-hotjar:before { - content: "\F3B1"; } - -.fa-hourglass:before { - content: "\F254"; } - -.fa-hourglass-end:before { - content: "\F253"; } - -.fa-hourglass-half:before { - content: "\F252"; } - -.fa-hourglass-start:before { - content: "\F251"; } - -.fa-houzz:before { - content: "\F27C"; } - -.fa-html5:before { - content: "\F13B"; } - -.fa-hubspot:before { - content: "\F3B2"; } - -.fa-i-cursor:before { - content: "\F246"; } - -.fa-id-badge:before { - content: "\F2C1"; } - -.fa-id-card:before { - content: "\F2C2"; } - -.fa-id-card-alt:before { - content: "\F47F"; } - -.fa-image:before { - content: "\F03E"; } - -.fa-images:before { - content: "\F302"; } - -.fa-imdb:before { - content: "\F2D8"; } - -.fa-inbox:before { - content: "\F01C"; } - -.fa-indent:before { - content: "\F03C"; } - -.fa-industry:before { - content: "\F275"; } - -.fa-infinity:before { - content: "\F534"; } - -.fa-info:before { - content: "\F129"; } - -.fa-info-circle:before { - content: "\F05A"; } - -.fa-instagram:before { - content: "\F16D"; } - -.fa-internet-explorer:before { - content: "\F26B"; } - -.fa-ioxhost:before { - content: "\F208"; } - -.fa-italic:before { - content: "\F033"; } - -.fa-itunes:before { - content: "\F3B4"; } - -.fa-itunes-note:before { - content: "\F3B5"; } - -.fa-java:before { - content: "\F4E4"; } - -.fa-jedi-order:before { - content: "\F50E"; } - -.fa-jenkins:before { - content: "\F3B6"; } - -.fa-joget:before { - content: "\F3B7"; } - -.fa-joint:before { - content: "\F595"; } - -.fa-joomla:before { - content: "\F1AA"; } - -.fa-js:before { - content: "\F3B8"; } - -.fa-js-square:before { - content: "\F3B9"; } - -.fa-jsfiddle:before { - content: "\F1CC"; } - -.fa-key:before { - content: "\F084"; } - -.fa-keybase:before { - content: "\F4F5"; } - -.fa-keyboard:before { - content: "\F11C"; } - -.fa-keycdn:before { - content: "\F3BA"; } - -.fa-kickstarter:before { - content: "\F3BB"; } - -.fa-kickstarter-k:before { - content: "\F3BC"; } - -.fa-kiss:before { - content: "\F596"; } - -.fa-kiss-beam:before { - content: "\F597"; } - -.fa-kiss-wink-heart:before { - content: "\F598"; } - -.fa-kiwi-bird:before { - content: "\F535"; } - -.fa-korvue:before { - content: "\F42F"; } - -.fa-language:before { - content: "\F1AB"; } - -.fa-laptop:before { - content: "\F109"; } - -.fa-laravel:before { - content: "\F3BD"; } - -.fa-lastfm:before { - content: "\F202"; } - -.fa-lastfm-square:before { - content: "\F203"; } - -.fa-laugh:before { - content: "\F599"; } - -.fa-laugh-beam:before { - content: "\F59A"; } - -.fa-laugh-squint:before { - content: "\F59B"; } - -.fa-laugh-wink:before { - content: "\F59C"; } - -.fa-leaf:before { - content: "\F06C"; } - -.fa-leanpub:before { - content: "\F212"; } - -.fa-lemon:before { - content: "\F094"; } - -.fa-less:before { - content: "\F41D"; } - -.fa-less-than:before { - content: "\F536"; } - -.fa-less-than-equal:before { - content: "\F537"; } - -.fa-level-down-alt:before { - content: "\F3BE"; } - -.fa-level-up-alt:before { - content: "\F3BF"; } - -.fa-life-ring:before { - content: "\F1CD"; } - -.fa-lightbulb:before { - content: "\F0EB"; } - -.fa-line:before { - content: "\F3C0"; } - -.fa-link:before { - content: "\F0C1"; } - -.fa-linkedin:before { - content: "\F08C"; } - -.fa-linkedin-in:before { - content: "\F0E1"; } - -.fa-linode:before { - content: "\F2B8"; } - -.fa-linux:before { - content: "\F17C"; } - -.fa-lira-sign:before { - content: "\F195"; } - -.fa-list:before { - content: "\F03A"; } - -.fa-list-alt:before { - content: "\F022"; } - -.fa-list-ol:before { - content: "\F0CB"; } - -.fa-list-ul:before { - content: "\F0CA"; } - -.fa-location-arrow:before { - content: "\F124"; } - -.fa-lock:before { - content: "\F023"; } - -.fa-lock-open:before { - content: "\F3C1"; } - -.fa-long-arrow-alt-down:before { - content: "\F309"; } - -.fa-long-arrow-alt-left:before { - content: "\F30A"; } - -.fa-long-arrow-alt-right:before { - content: "\F30B"; } - -.fa-long-arrow-alt-up:before { - content: "\F30C"; } - -.fa-low-vision:before { - content: "\F2A8"; } - -.fa-luggage-cart:before { - content: "\F59D"; } - -.fa-lyft:before { - content: "\F3C3"; } - -.fa-magento:before { - content: "\F3C4"; } - -.fa-magic:before { - content: "\F0D0"; } - -.fa-magnet:before { - content: "\F076"; } - -.fa-mailchimp:before { - content: "\F59E"; } - -.fa-male:before { - content: "\F183"; } - -.fa-mandalorian:before { - content: "\F50F"; } - -.fa-map:before { - content: "\F279"; } - -.fa-map-marked:before { - content: "\F59F"; } - -.fa-map-marked-alt:before { - content: "\F5A0"; } - -.fa-map-marker:before { - content: "\F041"; } - -.fa-map-marker-alt:before { - content: "\F3C5"; } - -.fa-map-pin:before { - content: "\F276"; } - -.fa-map-signs:before { - content: "\F277"; } - -.fa-marker:before { - content: "\F5A1"; } - -.fa-mars:before { - content: "\F222"; } - -.fa-mars-double:before { - content: "\F227"; } - -.fa-mars-stroke:before { - content: "\F229"; } - -.fa-mars-stroke-h:before { - content: "\F22B"; } - -.fa-mars-stroke-v:before { - content: "\F22A"; } - -.fa-mastodon:before { - content: "\F4F6"; } - -.fa-maxcdn:before { - content: "\F136"; } - -.fa-medal:before { - content: "\F5A2"; } - -.fa-medapps:before { - content: "\F3C6"; } - -.fa-medium:before { - content: "\F23A"; } - -.fa-medium-m:before { - content: "\F3C7"; } - -.fa-medkit:before { - content: "\F0FA"; } - -.fa-medrt:before { - content: "\F3C8"; } - -.fa-meetup:before { - content: "\F2E0"; } - -.fa-megaport:before { - content: "\F5A3"; } - -.fa-meh:before { - content: "\F11A"; } - -.fa-meh-blank:before { - content: "\F5A4"; } - -.fa-meh-rolling-eyes:before { - content: "\F5A5"; } - -.fa-memory:before { - content: "\F538"; } - -.fa-mercury:before { - content: "\F223"; } - -.fa-microchip:before { - content: "\F2DB"; } - -.fa-microphone:before { - content: "\F130"; } - -.fa-microphone-alt:before { - content: "\F3C9"; } - -.fa-microphone-alt-slash:before { - content: "\F539"; } - -.fa-microphone-slash:before { - content: "\F131"; } - -.fa-microsoft:before { - content: "\F3CA"; } - -.fa-minus:before { - content: "\F068"; } - -.fa-minus-circle:before { - content: "\F056"; } - -.fa-minus-square:before { - content: "\F146"; } - -.fa-mix:before { - content: "\F3CB"; } - -.fa-mixcloud:before { - content: "\F289"; } - -.fa-mizuni:before { - content: "\F3CC"; } - -.fa-mobile:before { - content: "\F10B"; } - -.fa-mobile-alt:before { - content: "\F3CD"; } - -.fa-modx:before { - content: "\F285"; } - -.fa-monero:before { - content: "\F3D0"; } - -.fa-money-bill:before { - content: "\F0D6"; } - -.fa-money-bill-alt:before { - content: "\F3D1"; } - -.fa-money-bill-wave:before { - content: "\F53A"; } - -.fa-money-bill-wave-alt:before { - content: "\F53B"; } - -.fa-money-check:before { - content: "\F53C"; } - -.fa-money-check-alt:before { - content: "\F53D"; } - -.fa-monument:before { - content: "\F5A6"; } - -.fa-moon:before { - content: "\F186"; } - -.fa-mortar-pestle:before { - content: "\F5A7"; } - -.fa-motorcycle:before { - content: "\F21C"; } - -.fa-mouse-pointer:before { - content: "\F245"; } - -.fa-music:before { - content: "\F001"; } - -.fa-napster:before { - content: "\F3D2"; } - -.fa-neuter:before { - content: "\F22C"; } - -.fa-newspaper:before { - content: "\F1EA"; } - -.fa-nimblr:before { - content: "\F5A8"; } - -.fa-nintendo-switch:before { - content: "\F418"; } - -.fa-node:before { - content: "\F419"; } - -.fa-node-js:before { - content: "\F3D3"; } - -.fa-not-equal:before { - content: "\F53E"; } - -.fa-notes-medical:before { - content: "\F481"; } - -.fa-npm:before { - content: "\F3D4"; } - -.fa-ns8:before { - content: "\F3D5"; } - -.fa-nutritionix:before { - content: "\F3D6"; } - -.fa-object-group:before { - content: "\F247"; } - -.fa-object-ungroup:before { - content: "\F248"; } - -.fa-odnoklassniki:before { - content: "\F263"; } - -.fa-odnoklassniki-square:before { - content: "\F264"; } - -.fa-old-republic:before { - content: "\F510"; } - -.fa-opencart:before { - content: "\F23D"; } - -.fa-openid:before { - content: "\F19B"; } - -.fa-opera:before { - content: "\F26A"; } - -.fa-optin-monster:before { - content: "\F23C"; } - -.fa-osi:before { - content: "\F41A"; } - -.fa-outdent:before { - content: "\F03B"; } - -.fa-page4:before { - content: "\F3D7"; } - -.fa-pagelines:before { - content: "\F18C"; } - -.fa-paint-brush:before { - content: "\F1FC"; } - -.fa-paint-roller:before { - content: "\F5AA"; } - -.fa-palette:before { - content: "\F53F"; } - -.fa-palfed:before { - content: "\F3D8"; } - -.fa-pallet:before { - content: "\F482"; } - -.fa-paper-plane:before { - content: "\F1D8"; } - -.fa-paperclip:before { - content: "\F0C6"; } - -.fa-parachute-box:before { - content: "\F4CD"; } - -.fa-paragraph:before { - content: "\F1DD"; } - -.fa-parking:before { - content: "\F540"; } - -.fa-passport:before { - content: "\F5AB"; } - -.fa-paste:before { - content: "\F0EA"; } - -.fa-patreon:before { - content: "\F3D9"; } - -.fa-pause:before { - content: "\F04C"; } - -.fa-pause-circle:before { - content: "\F28B"; } - -.fa-paw:before { - content: "\F1B0"; } - -.fa-paypal:before { - content: "\F1ED"; } - -.fa-pen:before { - content: "\F304"; } - -.fa-pen-alt:before { - content: "\F305"; } - -.fa-pen-fancy:before { - content: "\F5AC"; } - -.fa-pen-nib:before { - content: "\F5AD"; } - -.fa-pen-square:before { - content: "\F14B"; } - -.fa-pencil-alt:before { - content: "\F303"; } - -.fa-pencil-ruler:before { - content: "\F5AE"; } - -.fa-people-carry:before { - content: "\F4CE"; } - -.fa-percent:before { - content: "\F295"; } - -.fa-percentage:before { - content: "\F541"; } - -.fa-periscope:before { - content: "\F3DA"; } - -.fa-phabricator:before { - content: "\F3DB"; } - -.fa-phoenix-framework:before { - content: "\F3DC"; } - -.fa-phoenix-squadron:before { - content: "\F511"; } - -.fa-phone:before { - content: "\F095"; } - -.fa-phone-slash:before { - content: "\F3DD"; } - -.fa-phone-square:before { - content: "\F098"; } - -.fa-phone-volume:before { - content: "\F2A0"; } - -.fa-php:before { - content: "\F457"; } - -.fa-pied-piper:before { - content: "\F2AE"; } - -.fa-pied-piper-alt:before { - content: "\F1A8"; } - -.fa-pied-piper-hat:before { - content: "\F4E5"; } - -.fa-pied-piper-pp:before { - content: "\F1A7"; } - -.fa-piggy-bank:before { - content: "\F4D3"; } - -.fa-pills:before { - content: "\F484"; } - -.fa-pinterest:before { - content: "\F0D2"; } - -.fa-pinterest-p:before { - content: "\F231"; } - -.fa-pinterest-square:before { - content: "\F0D3"; } - -.fa-plane:before { - content: "\F072"; } - -.fa-plane-arrival:before { - content: "\F5AF"; } - -.fa-plane-departure:before { - content: "\F5B0"; } - -.fa-play:before { - content: "\F04B"; } - -.fa-play-circle:before { - content: "\F144"; } - -.fa-playstation:before { - content: "\F3DF"; } - -.fa-plug:before { - content: "\F1E6"; } - -.fa-plus:before { - content: "\F067"; } - -.fa-plus-circle:before { - content: "\F055"; } - -.fa-plus-square:before { - content: "\F0FE"; } - -.fa-podcast:before { - content: "\F2CE"; } - -.fa-poo:before { - content: "\F2FE"; } - -.fa-portrait:before { - content: "\F3E0"; } - -.fa-pound-sign:before { - content: "\F154"; } - -.fa-power-off:before { - content: "\F011"; } - -.fa-prescription:before { - content: "\F5B1"; } - -.fa-prescription-bottle:before { - content: "\F485"; } - -.fa-prescription-bottle-alt:before { - content: "\F486"; } - -.fa-print:before { - content: "\F02F"; } - -.fa-procedures:before { - content: "\F487"; } - -.fa-product-hunt:before { - content: "\F288"; } - -.fa-project-diagram:before { - content: "\F542"; } - -.fa-pushed:before { - content: "\F3E1"; } - -.fa-puzzle-piece:before { - content: "\F12E"; } - -.fa-python:before { - content: "\F3E2"; } - -.fa-qq:before { - content: "\F1D6"; } - -.fa-qrcode:before { - content: "\F029"; } - -.fa-question:before { - content: "\F128"; } - -.fa-question-circle:before { - content: "\F059"; } - -.fa-quidditch:before { - content: "\F458"; } - -.fa-quinscape:before { - content: "\F459"; } - -.fa-quora:before { - content: "\F2C4"; } - -.fa-quote-left:before { - content: "\F10D"; } - -.fa-quote-right:before { - content: "\F10E"; } - -.fa-r-project:before { - content: "\F4F7"; } - -.fa-random:before { - content: "\F074"; } - -.fa-ravelry:before { - content: "\F2D9"; } - -.fa-react:before { - content: "\F41B"; } - -.fa-readme:before { - content: "\F4D5"; } - -.fa-rebel:before { - content: "\F1D0"; } - -.fa-receipt:before { - content: "\F543"; } - -.fa-recycle:before { - content: "\F1B8"; } - -.fa-red-river:before { - content: "\F3E3"; } - -.fa-reddit:before { - content: "\F1A1"; } - -.fa-reddit-alien:before { - content: "\F281"; } - -.fa-reddit-square:before { - content: "\F1A2"; } - -.fa-redo:before { - content: "\F01E"; } - -.fa-redo-alt:before { - content: "\F2F9"; } - -.fa-registered:before { - content: "\F25D"; } - -.fa-rendact:before { - content: "\F3E4"; } - -.fa-renren:before { - content: "\F18B"; } - -.fa-reply:before { - content: "\F3E5"; } - -.fa-reply-all:before { - content: "\F122"; } - -.fa-replyd:before { - content: "\F3E6"; } - -.fa-researchgate:before { - content: "\F4F8"; } - -.fa-resolving:before { - content: "\F3E7"; } - -.fa-retweet:before { - content: "\F079"; } - -.fa-rev:before { - content: "\F5B2"; } - -.fa-ribbon:before { - content: "\F4D6"; } - -.fa-road:before { - content: "\F018"; } - -.fa-robot:before { - content: "\F544"; } - -.fa-rocket:before { - content: "\F135"; } - -.fa-rocketchat:before { - content: "\F3E8"; } - -.fa-rockrms:before { - content: "\F3E9"; } - -.fa-rss:before { - content: "\F09E"; } - -.fa-rss-square:before { - content: "\F143"; } - -.fa-ruble-sign:before { - content: "\F158"; } - -.fa-ruler:before { - content: "\F545"; } - -.fa-ruler-combined:before { - content: "\F546"; } - -.fa-ruler-horizontal:before { - content: "\F547"; } - -.fa-ruler-vertical:before { - content: "\F548"; } - -.fa-rupee-sign:before { - content: "\F156"; } - -.fa-sad-cry:before { - content: "\F5B3"; } - -.fa-sad-tear:before { - content: "\F5B4"; } - -.fa-safari:before { - content: "\F267"; } - -.fa-sass:before { - content: "\F41E"; } - -.fa-save:before { - content: "\F0C7"; } - -.fa-schlix:before { - content: "\F3EA"; } - -.fa-school:before { - content: "\F549"; } - -.fa-screwdriver:before { - content: "\F54A"; } - -.fa-scribd:before { - content: "\F28A"; } - -.fa-search:before { - content: "\F002"; } - -.fa-search-minus:before { - content: "\F010"; } - -.fa-search-plus:before { - content: "\F00E"; } - -.fa-searchengin:before { - content: "\F3EB"; } - -.fa-seedling:before { - content: "\F4D8"; } - -.fa-sellcast:before { - content: "\F2DA"; } - -.fa-sellsy:before { - content: "\F213"; } - -.fa-server:before { - content: "\F233"; } - -.fa-servicestack:before { - content: "\F3EC"; } - -.fa-share:before { - content: "\F064"; } - -.fa-share-alt:before { - content: "\F1E0"; } - -.fa-share-alt-square:before { - content: "\F1E1"; } - -.fa-share-square:before { - content: "\F14D"; } - -.fa-shekel-sign:before { - content: "\F20B"; } - -.fa-shield-alt:before { - content: "\F3ED"; } - -.fa-ship:before { - content: "\F21A"; } - -.fa-shipping-fast:before { - content: "\F48B"; } - -.fa-shirtsinbulk:before { - content: "\F214"; } - -.fa-shoe-prints:before { - content: "\F54B"; } - -.fa-shopping-bag:before { - content: "\F290"; } - -.fa-shopping-basket:before { - content: "\F291"; } - -.fa-shopping-cart:before { - content: "\F07A"; } - -.fa-shopware:before { - content: "\F5B5"; } - -.fa-shower:before { - content: "\F2CC"; } - -.fa-shuttle-van:before { - content: "\F5B6"; } - -.fa-sign:before { - content: "\F4D9"; } - -.fa-sign-in-alt:before { - content: "\F2F6"; } - -.fa-sign-language:before { - content: "\F2A7"; } - -.fa-sign-out-alt:before { - content: "\F2F5"; } - -.fa-signal:before { - content: "\F012"; } - -.fa-signature:before { - content: "\F5B7"; } - -.fa-simplybuilt:before { - content: "\F215"; } - -.fa-sistrix:before { - content: "\F3EE"; } - -.fa-sitemap:before { - content: "\F0E8"; } - -.fa-sith:before { - content: "\F512"; } - -.fa-skull:before { - content: "\F54C"; } - -.fa-skyatlas:before { - content: "\F216"; } - -.fa-skype:before { - content: "\F17E"; } - -.fa-slack:before { - content: "\F198"; } - -.fa-slack-hash:before { - content: "\F3EF"; } - -.fa-sliders-h:before { - content: "\F1DE"; } - -.fa-slideshare:before { - content: "\F1E7"; } - -.fa-smile:before { - content: "\F118"; } - -.fa-smile-beam:before { - content: "\F5B8"; } - -.fa-smile-wink:before { - content: "\F4DA"; } - -.fa-smoking:before { - content: "\F48D"; } - -.fa-smoking-ban:before { - content: "\F54D"; } - -.fa-snapchat:before { - content: "\F2AB"; } - -.fa-snapchat-ghost:before { - content: "\F2AC"; } - -.fa-snapchat-square:before { - content: "\F2AD"; } - -.fa-snowflake:before { - content: "\F2DC"; } - -.fa-solar-panel:before { - content: "\F5BA"; } - -.fa-sort:before { - content: "\F0DC"; } - -.fa-sort-alpha-down:before { - content: "\F15D"; } - -.fa-sort-alpha-up:before { - content: "\F15E"; } - -.fa-sort-amount-down:before { - content: "\F160"; } - -.fa-sort-amount-up:before { - content: "\F161"; } - -.fa-sort-down:before { - content: "\F0DD"; } - -.fa-sort-numeric-down:before { - content: "\F162"; } - -.fa-sort-numeric-up:before { - content: "\F163"; } - -.fa-sort-up:before { - content: "\F0DE"; } - -.fa-soundcloud:before { - content: "\F1BE"; } - -.fa-spa:before { - content: "\F5BB"; } - -.fa-space-shuttle:before { - content: "\F197"; } - -.fa-speakap:before { - content: "\F3F3"; } - -.fa-spinner:before { - content: "\F110"; } - -.fa-splotch:before { - content: "\F5BC"; } - -.fa-spotify:before { - content: "\F1BC"; } - -.fa-spray-can:before { - content: "\F5BD"; } - -.fa-square:before { - content: "\F0C8"; } - -.fa-square-full:before { - content: "\F45C"; } - -.fa-squarespace:before { - content: "\F5BE"; } - -.fa-stack-exchange:before { - content: "\F18D"; } - -.fa-stack-overflow:before { - content: "\F16C"; } - -.fa-stamp:before { - content: "\F5BF"; } - -.fa-star:before { - content: "\F005"; } - -.fa-star-half:before { - content: "\F089"; } - -.fa-star-half-alt:before { - content: "\F5C0"; } - -.fa-staylinked:before { - content: "\F3F5"; } - -.fa-steam:before { - content: "\F1B6"; } - -.fa-steam-square:before { - content: "\F1B7"; } - -.fa-steam-symbol:before { - content: "\F3F6"; } - -.fa-step-backward:before { - content: "\F048"; } - -.fa-step-forward:before { - content: "\F051"; } - -.fa-stethoscope:before { - content: "\F0F1"; } - -.fa-sticker-mule:before { - content: "\F3F7"; } - -.fa-sticky-note:before { - content: "\F249"; } - -.fa-stop:before { - content: "\F04D"; } - -.fa-stop-circle:before { - content: "\F28D"; } - -.fa-stopwatch:before { - content: "\F2F2"; } - -.fa-store:before { - content: "\F54E"; } - -.fa-store-alt:before { - content: "\F54F"; } - -.fa-strava:before { - content: "\F428"; } - -.fa-stream:before { - content: "\F550"; } - -.fa-street-view:before { - content: "\F21D"; } - -.fa-strikethrough:before { - content: "\F0CC"; } - -.fa-stripe:before { - content: "\F429"; } - -.fa-stripe-s:before { - content: "\F42A"; } - -.fa-stroopwafel:before { - content: "\F551"; } - -.fa-studiovinari:before { - content: "\F3F8"; } - -.fa-stumbleupon:before { - content: "\F1A4"; } - -.fa-stumbleupon-circle:before { - content: "\F1A3"; } - -.fa-subscript:before { - content: "\F12C"; } - -.fa-subway:before { - content: "\F239"; } - -.fa-suitcase:before { - content: "\F0F2"; } - -.fa-suitcase-rolling:before { - content: "\F5C1"; } - -.fa-sun:before { - content: "\F185"; } - -.fa-superpowers:before { - content: "\F2DD"; } - -.fa-superscript:before { - content: "\F12B"; } - -.fa-supple:before { - content: "\F3F9"; } - -.fa-surprise:before { - content: "\F5C2"; } - -.fa-swatchbook:before { - content: "\F5C3"; } - -.fa-swimmer:before { - content: "\F5C4"; } - -.fa-swimming-pool:before { - content: "\F5C5"; } - -.fa-sync:before { - content: "\F021"; } - -.fa-sync-alt:before { - content: "\F2F1"; } - -.fa-syringe:before { - content: "\F48E"; } - -.fa-table:before { - content: "\F0CE"; } - -.fa-table-tennis:before { - content: "\F45D"; } - -.fa-tablet:before { - content: "\F10A"; } - -.fa-tablet-alt:before { - content: "\F3FA"; } - -.fa-tablets:before { - content: "\F490"; } - -.fa-tachometer-alt:before { - content: "\F3FD"; } - -.fa-tag:before { - content: "\F02B"; } - -.fa-tags:before { - content: "\F02C"; } - -.fa-tape:before { - content: "\F4DB"; } - -.fa-tasks:before { - content: "\F0AE"; } - -.fa-taxi:before { - content: "\F1BA"; } - -.fa-teamspeak:before { - content: "\F4F9"; } - -.fa-telegram:before { - content: "\F2C6"; } - -.fa-telegram-plane:before { - content: "\F3FE"; } - -.fa-tencent-weibo:before { - content: "\F1D5"; } - -.fa-terminal:before { - content: "\F120"; } - -.fa-text-height:before { - content: "\F034"; } - -.fa-text-width:before { - content: "\F035"; } - -.fa-th:before { - content: "\F00A"; } - -.fa-th-large:before { - content: "\F009"; } - -.fa-th-list:before { - content: "\F00B"; } - -.fa-themeco:before { - content: "\F5C6"; } - -.fa-themeisle:before { - content: "\F2B2"; } - -.fa-thermometer:before { - content: "\F491"; } - -.fa-thermometer-empty:before { - content: "\F2CB"; } - -.fa-thermometer-full:before { - content: "\F2C7"; } - -.fa-thermometer-half:before { - content: "\F2C9"; } - -.fa-thermometer-quarter:before { - content: "\F2CA"; } - -.fa-thermometer-three-quarters:before { - content: "\F2C8"; } - -.fa-thumbs-down:before { - content: "\F165"; } - -.fa-thumbs-up:before { - content: "\F164"; } - -.fa-thumbtack:before { - content: "\F08D"; } - -.fa-ticket-alt:before { - content: "\F3FF"; } - -.fa-times:before { - content: "\F00D"; } - -.fa-times-circle:before { - content: "\F057"; } - -.fa-tint:before { - content: "\F043"; } - -.fa-tint-slash:before { - content: "\F5C7"; } - -.fa-tired:before { - content: "\F5C8"; } - -.fa-toggle-off:before { - content: "\F204"; } - -.fa-toggle-on:before { - content: "\F205"; } - -.fa-toolbox:before { - content: "\F552"; } - -.fa-tooth:before { - content: "\F5C9"; } - -.fa-trade-federation:before { - content: "\F513"; } - -.fa-trademark:before { - content: "\F25C"; } - -.fa-train:before { - content: "\F238"; } - -.fa-transgender:before { - content: "\F224"; } - -.fa-transgender-alt:before { - content: "\F225"; } - -.fa-trash:before { - content: "\F1F8"; } - -.fa-trash-alt:before { - content: "\F2ED"; } - -.fa-tree:before { - content: "\F1BB"; } - -.fa-trello:before { - content: "\F181"; } - -.fa-tripadvisor:before { - content: "\F262"; } - -.fa-trophy:before { - content: "\F091"; } - -.fa-truck:before { - content: "\F0D1"; } - -.fa-truck-loading:before { - content: "\F4DE"; } - -.fa-truck-moving:before { - content: "\F4DF"; } - -.fa-tshirt:before { - content: "\F553"; } - -.fa-tty:before { - content: "\F1E4"; } - -.fa-tumblr:before { - content: "\F173"; } - -.fa-tumblr-square:before { - content: "\F174"; } - -.fa-tv:before { - content: "\F26C"; } - -.fa-twitch:before { - content: "\F1E8"; } - -.fa-twitter:before { - content: "\F099"; } - -.fa-twitter-square:before { - content: "\F081"; } - -.fa-typo3:before { - content: "\F42B"; } - -.fa-uber:before { - content: "\F402"; } - -.fa-uikit:before { - content: "\F403"; } - -.fa-umbrella:before { - content: "\F0E9"; } - -.fa-umbrella-beach:before { - content: "\F5CA"; } - -.fa-underline:before { - content: "\F0CD"; } - -.fa-undo:before { - content: "\F0E2"; } - -.fa-undo-alt:before { - content: "\F2EA"; } - -.fa-uniregistry:before { - content: "\F404"; } - -.fa-universal-access:before { - content: "\F29A"; } - -.fa-university:before { - content: "\F19C"; } - -.fa-unlink:before { - content: "\F127"; } - -.fa-unlock:before { - content: "\F09C"; } - -.fa-unlock-alt:before { - content: "\F13E"; } - -.fa-untappd:before { - content: "\F405"; } - -.fa-upload:before { - content: "\F093"; } - -.fa-usb:before { - content: "\F287"; } - -.fa-user:before { - content: "\F007"; } - -.fa-user-alt:before { - content: "\F406"; } - -.fa-user-alt-slash:before { - content: "\F4FA"; } - -.fa-user-astronaut:before { - content: "\F4FB"; } - -.fa-user-check:before { - content: "\F4FC"; } - -.fa-user-circle:before { - content: "\F2BD"; } - -.fa-user-clock:before { - content: "\F4FD"; } - -.fa-user-cog:before { - content: "\F4FE"; } - -.fa-user-edit:before { - content: "\F4FF"; } - -.fa-user-friends:before { - content: "\F500"; } - -.fa-user-graduate:before { - content: "\F501"; } - -.fa-user-lock:before { - content: "\F502"; } - -.fa-user-md:before { - content: "\F0F0"; } - -.fa-user-minus:before { - content: "\F503"; } - -.fa-user-ninja:before { - content: "\F504"; } - -.fa-user-plus:before { - content: "\F234"; } - -.fa-user-secret:before { - content: "\F21B"; } - -.fa-user-shield:before { - content: "\F505"; } - -.fa-user-slash:before { - content: "\F506"; } - -.fa-user-tag:before { - content: "\F507"; } - -.fa-user-tie:before { - content: "\F508"; } - -.fa-user-times:before { - content: "\F235"; } - -.fa-users:before { - content: "\F0C0"; } - -.fa-users-cog:before { - content: "\F509"; } - -.fa-ussunnah:before { - content: "\F407"; } - -.fa-utensil-spoon:before { - content: "\F2E5"; } - -.fa-utensils:before { - content: "\F2E7"; } - -.fa-vaadin:before { - content: "\F408"; } - -.fa-vector-square:before { - content: "\F5CB"; } - -.fa-venus:before { - content: "\F221"; } - -.fa-venus-double:before { - content: "\F226"; } - -.fa-venus-mars:before { - content: "\F228"; } - -.fa-viacoin:before { - content: "\F237"; } - -.fa-viadeo:before { - content: "\F2A9"; } - -.fa-viadeo-square:before { - content: "\F2AA"; } - -.fa-vial:before { - content: "\F492"; } - -.fa-vials:before { - content: "\F493"; } - -.fa-viber:before { - content: "\F409"; } - -.fa-video:before { - content: "\F03D"; } - -.fa-video-slash:before { - content: "\F4E2"; } - -.fa-vimeo:before { - content: "\F40A"; } - -.fa-vimeo-square:before { - content: "\F194"; } - -.fa-vimeo-v:before { - content: "\F27D"; } - -.fa-vine:before { - content: "\F1CA"; } - -.fa-vk:before { - content: "\F189"; } - -.fa-vnv:before { - content: "\F40B"; } - -.fa-volleyball-ball:before { - content: "\F45F"; } - -.fa-volume-down:before { - content: "\F027"; } - -.fa-volume-off:before { - content: "\F026"; } - -.fa-volume-up:before { - content: "\F028"; } - -.fa-vuejs:before { - content: "\F41F"; } - -.fa-walking:before { - content: "\F554"; } - -.fa-wallet:before { - content: "\F555"; } - -.fa-warehouse:before { - content: "\F494"; } - -.fa-weebly:before { - content: "\F5CC"; } - -.fa-weibo:before { - content: "\F18A"; } - -.fa-weight:before { - content: "\F496"; } - -.fa-weight-hanging:before { - content: "\F5CD"; } - -.fa-weixin:before { - content: "\F1D7"; } - -.fa-whatsapp:before { - content: "\F232"; } - -.fa-whatsapp-square:before { - content: "\F40C"; } - -.fa-wheelchair:before { - content: "\F193"; } - -.fa-whmcs:before { - content: "\F40D"; } - -.fa-wifi:before { - content: "\F1EB"; } - -.fa-wikipedia-w:before { - content: "\F266"; } - -.fa-window-close:before { - content: "\F410"; } - -.fa-window-maximize:before { - content: "\F2D0"; } - -.fa-window-minimize:before { - content: "\F2D1"; } - -.fa-window-restore:before { - content: "\F2D2"; } - -.fa-windows:before { - content: "\F17A"; } - -.fa-wine-glass:before { - content: "\F4E3"; } - -.fa-wine-glass-alt:before { - content: "\F5CE"; } - -.fa-wix:before { - content: "\F5CF"; } - -.fa-wolf-pack-battalion:before { - content: "\F514"; } - -.fa-won-sign:before { - content: "\F159"; } - -.fa-wordpress:before { - content: "\F19A"; } - -.fa-wordpress-simple:before { - content: "\F411"; } - -.fa-wpbeginner:before { - content: "\F297"; } - -.fa-wpexplorer:before { - content: "\F2DE"; } - -.fa-wpforms:before { - content: "\F298"; } - -.fa-wrench:before { - content: "\F0AD"; } - -.fa-x-ray:before { - content: "\F497"; } - -.fa-xbox:before { - content: "\F412"; } - -.fa-xing:before { - content: "\F168"; } - -.fa-xing-square:before { - content: "\F169"; } - -.fa-y-combinator:before { - content: "\F23B"; } - -.fa-yahoo:before { - content: "\F19E"; } - -.fa-yandex:before { - content: "\F413"; } - -.fa-yandex-international:before { - content: "\F414"; } - -.fa-yelp:before { - content: "\F1E9"; } - -.fa-yen-sign:before { - content: "\F157"; } - -.fa-yoast:before { - content: "\F2B1"; } - -.fa-youtube:before { - content: "\F167"; } - -.fa-youtube-square:before { - content: "\F431"; } - -.sr-only { - border: 0; - clip: rect(0, 0, 0, 0); - height: 1px; - margin: -1px; - overflow: hidden; - padding: 0; - position: absolute; - width: 1px; } - -.sr-only-focusable:active, .sr-only-focusable:focus { - clip: auto; - height: auto; - margin: 0; - overflow: visible; - position: static; - width: auto; } + */.fa,.fab,.fal,.far,.fas{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1}.fa-lg{font-size:1.33333em;line-height:.75em;vertical-align:-.0667em}.fa-xs{font-size:.75em}.fa-sm{font-size:.875em}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:2.5em;padding-left:0}.fa-ul>li{position:relative}.fa-li{left:-2em;position:absolute;text-align:center;width:2em;line-height:inherit}.fa-border{border:.08em solid #eee;border-radius:.1em;padding:.2em .25em .15em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left,.fab.fa-pull-left,.fal.fa-pull-left,.far.fa-pull-left,.fas.fa-pull-left{margin-right:.3em}.fa.fa-pull-right,.fab.fa-pull-right,.fal.fa-pull-right,.far.fa-pull-right,.fas.fa-pull-right{margin-left:.3em}.fa-spin{animation:fa-spin 2s infinite linear}.fa-pulse{animation:fa-spin 1s infinite steps(8)}@keyframes fa-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";transform:scaleX(-1)}.fa-flip-vertical{transform:scaleY(-1)}.fa-flip-horizontal.fa-flip-vertical,.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)"}.fa-flip-horizontal.fa-flip-vertical{transform:scale(-1)}:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270{filter:none}.fa-stack{display:inline-block;height:2em;line-height:2em;position:relative;vertical-align:middle;width:2em}.fa-stack-1x,.fa-stack-2x{left:0;position:absolute;text-align:center;width:100%}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-500px:before{content:"\F26E"}.fa-accessible-icon:before{content:"\F368"}.fa-accusoft:before{content:"\F369"}.fa-address-book:before{content:"\F2B9"}.fa-address-card:before{content:"\F2BB"}.fa-adjust:before{content:"\F042"}.fa-adn:before{content:"\F170"}.fa-adversal:before{content:"\F36A"}.fa-affiliatetheme:before{content:"\F36B"}.fa-algolia:before{content:"\F36C"}.fa-align-center:before{content:"\F037"}.fa-align-justify:before{content:"\F039"}.fa-align-left:before{content:"\F036"}.fa-align-right:before{content:"\F038"}.fa-allergies:before{content:"\F461"}.fa-amazon:before{content:"\F270"}.fa-amazon-pay:before{content:"\F42C"}.fa-ambulance:before{content:"\F0F9"}.fa-american-sign-language-interpreting:before{content:"\F2A3"}.fa-amilia:before{content:"\F36D"}.fa-anchor:before{content:"\F13D"}.fa-android:before{content:"\F17B"}.fa-angellist:before{content:"\F209"}.fa-angle-double-down:before{content:"\F103"}.fa-angle-double-left:before{content:"\F100"}.fa-angle-double-right:before{content:"\F101"}.fa-angle-double-up:before{content:"\F102"}.fa-angle-down:before{content:"\F107"}.fa-angle-left:before{content:"\F104"}.fa-angle-right:before{content:"\F105"}.fa-angle-up:before{content:"\F106"}.fa-angry:before{content:"\F556"}.fa-angrycreative:before{content:"\F36E"}.fa-angular:before{content:"\F420"}.fa-app-store:before{content:"\F36F"}.fa-app-store-ios:before{content:"\F370"}.fa-apper:before{content:"\F371"}.fa-apple:before{content:"\F179"}.fa-apple-pay:before{content:"\F415"}.fa-archive:before{content:"\F187"}.fa-archway:before{content:"\F557"}.fa-arrow-alt-circle-down:before{content:"\F358"}.fa-arrow-alt-circle-left:before{content:"\F359"}.fa-arrow-alt-circle-right:before{content:"\F35A"}.fa-arrow-alt-circle-up:before{content:"\F35B"}.fa-arrow-circle-down:before{content:"\F0AB"}.fa-arrow-circle-left:before{content:"\F0A8"}.fa-arrow-circle-right:before{content:"\F0A9"}.fa-arrow-circle-up:before{content:"\F0AA"}.fa-arrow-down:before{content:"\F063"}.fa-arrow-left:before{content:"\F060"}.fa-arrow-right:before{content:"\F061"}.fa-arrow-up:before{content:"\F062"}.fa-arrows-alt:before{content:"\F0B2"}.fa-arrows-alt-h:before{content:"\F337"}.fa-arrows-alt-v:before{content:"\F338"}.fa-assistive-listening-systems:before{content:"\F2A2"}.fa-asterisk:before{content:"\F069"}.fa-asymmetrik:before{content:"\F372"}.fa-at:before{content:"\F1FA"}.fa-atlas:before{content:"\F558"}.fa-audible:before{content:"\F373"}.fa-audio-description:before{content:"\F29E"}.fa-autoprefixer:before{content:"\F41C"}.fa-avianex:before{content:"\F374"}.fa-aviato:before{content:"\F421"}.fa-award:before{content:"\F559"}.fa-aws:before{content:"\F375"}.fa-backspace:before{content:"\F55A"}.fa-backward:before{content:"\F04A"}.fa-balance-scale:before{content:"\F24E"}.fa-ban:before{content:"\F05E"}.fa-band-aid:before{content:"\F462"}.fa-bandcamp:before{content:"\F2D5"}.fa-barcode:before{content:"\F02A"}.fa-bars:before{content:"\F0C9"}.fa-baseball-ball:before{content:"\F433"}.fa-basketball-ball:before{content:"\F434"}.fa-bath:before{content:"\F2CD"}.fa-battery-empty:before{content:"\F244"}.fa-battery-full:before{content:"\F240"}.fa-battery-half:before{content:"\F242"}.fa-battery-quarter:before{content:"\F243"}.fa-battery-three-quarters:before{content:"\F241"}.fa-bed:before{content:"\F236"}.fa-beer:before{content:"\F0FC"}.fa-behance:before{content:"\F1B4"}.fa-behance-square:before{content:"\F1B5"}.fa-bell:before{content:"\F0F3"}.fa-bell-slash:before{content:"\F1F6"}.fa-bezier-curve:before{content:"\F55B"}.fa-bicycle:before{content:"\F206"}.fa-bimobject:before{content:"\F378"}.fa-binoculars:before{content:"\F1E5"}.fa-birthday-cake:before{content:"\F1FD"}.fa-bitbucket:before{content:"\F171"}.fa-bitcoin:before{content:"\F379"}.fa-bity:before{content:"\F37A"}.fa-black-tie:before{content:"\F27E"}.fa-blackberry:before{content:"\F37B"}.fa-blender:before{content:"\F517"}.fa-blind:before{content:"\F29D"}.fa-blogger:before{content:"\F37C"}.fa-blogger-b:before{content:"\F37D"}.fa-bluetooth:before{content:"\F293"}.fa-bluetooth-b:before{content:"\F294"}.fa-bold:before{content:"\F032"}.fa-bolt:before{content:"\F0E7"}.fa-bomb:before{content:"\F1E2"}.fa-bong:before{content:"\F55C"}.fa-book:before{content:"\F02D"}.fa-book-open:before{content:"\F518"}.fa-bookmark:before{content:"\F02E"}.fa-bowling-ball:before{content:"\F436"}.fa-box:before{content:"\F466"}.fa-box-open:before{content:"\F49E"}.fa-boxes:before{content:"\F468"}.fa-braille:before{content:"\F2A1"}.fa-briefcase:before{content:"\F0B1"}.fa-briefcase-medical:before{content:"\F469"}.fa-broadcast-tower:before{content:"\F519"}.fa-broom:before{content:"\F51A"}.fa-brush:before{content:"\F55D"}.fa-btc:before{content:"\F15A"}.fa-bug:before{content:"\F188"}.fa-building:before{content:"\F1AD"}.fa-bullhorn:before{content:"\F0A1"}.fa-bullseye:before{content:"\F140"}.fa-burn:before{content:"\F46A"}.fa-buromobelexperte:before{content:"\F37F"}.fa-bus:before{content:"\F207"}.fa-bus-alt:before{content:"\F55E"}.fa-buysellads:before{content:"\F20D"}.fa-calculator:before{content:"\F1EC"}.fa-calendar:before{content:"\F133"}.fa-calendar-alt:before{content:"\F073"}.fa-calendar-check:before{content:"\F274"}.fa-calendar-minus:before{content:"\F272"}.fa-calendar-plus:before{content:"\F271"}.fa-calendar-times:before{content:"\F273"}.fa-camera:before{content:"\F030"}.fa-camera-retro:before{content:"\F083"}.fa-cannabis:before{content:"\F55F"}.fa-capsules:before{content:"\F46B"}.fa-car:before{content:"\F1B9"}.fa-caret-down:before{content:"\F0D7"}.fa-caret-left:before{content:"\F0D9"}.fa-caret-right:before{content:"\F0DA"}.fa-caret-square-down:before{content:"\F150"}.fa-caret-square-left:before{content:"\F191"}.fa-caret-square-right:before{content:"\F152"}.fa-caret-square-up:before{content:"\F151"}.fa-caret-up:before{content:"\F0D8"}.fa-cart-arrow-down:before{content:"\F218"}.fa-cart-plus:before{content:"\F217"}.fa-cc-amazon-pay:before{content:"\F42D"}.fa-cc-amex:before{content:"\F1F3"}.fa-cc-apple-pay:before{content:"\F416"}.fa-cc-diners-club:before{content:"\F24C"}.fa-cc-discover:before{content:"\F1F2"}.fa-cc-jcb:before{content:"\F24B"}.fa-cc-mastercard:before{content:"\F1F1"}.fa-cc-paypal:before{content:"\F1F4"}.fa-cc-stripe:before{content:"\F1F5"}.fa-cc-visa:before{content:"\F1F0"}.fa-centercode:before{content:"\F380"}.fa-certificate:before{content:"\F0A3"}.fa-chalkboard:before{content:"\F51B"}.fa-chalkboard-teacher:before{content:"\F51C"}.fa-chart-area:before{content:"\F1FE"}.fa-chart-bar:before{content:"\F080"}.fa-chart-line:before{content:"\F201"}.fa-chart-pie:before{content:"\F200"}.fa-check:before{content:"\F00C"}.fa-check-circle:before{content:"\F058"}.fa-check-double:before{content:"\F560"}.fa-check-square:before{content:"\F14A"}.fa-chess:before{content:"\F439"}.fa-chess-bishop:before{content:"\F43A"}.fa-chess-board:before{content:"\F43C"}.fa-chess-king:before{content:"\F43F"}.fa-chess-knight:before{content:"\F441"}.fa-chess-pawn:before{content:"\F443"}.fa-chess-queen:before{content:"\F445"}.fa-chess-rook:before{content:"\F447"}.fa-chevron-circle-down:before{content:"\F13A"}.fa-chevron-circle-left:before{content:"\F137"}.fa-chevron-circle-right:before{content:"\F138"}.fa-chevron-circle-up:before{content:"\F139"}.fa-chevron-down:before{content:"\F078"}.fa-chevron-left:before{content:"\F053"}.fa-chevron-right:before{content:"\F054"}.fa-chevron-up:before{content:"\F077"}.fa-child:before{content:"\F1AE"}.fa-chrome:before{content:"\F268"}.fa-church:before{content:"\F51D"}.fa-circle:before{content:"\F111"}.fa-circle-notch:before{content:"\F1CE"}.fa-clipboard:before{content:"\F328"}.fa-clipboard-check:before{content:"\F46C"}.fa-clipboard-list:before{content:"\F46D"}.fa-clock:before{content:"\F017"}.fa-clone:before{content:"\F24D"}.fa-closed-captioning:before{content:"\F20A"}.fa-cloud:before{content:"\F0C2"}.fa-cloud-download-alt:before{content:"\F381"}.fa-cloud-upload-alt:before{content:"\F382"}.fa-cloudscale:before{content:"\F383"}.fa-cloudsmith:before{content:"\F384"}.fa-cloudversify:before{content:"\F385"}.fa-cocktail:before{content:"\F561"}.fa-code:before{content:"\F121"}.fa-code-branch:before{content:"\F126"}.fa-codepen:before{content:"\F1CB"}.fa-codiepie:before{content:"\F284"}.fa-coffee:before{content:"\F0F4"}.fa-cog:before{content:"\F013"}.fa-cogs:before{content:"\F085"}.fa-coins:before{content:"\F51E"}.fa-columns:before{content:"\F0DB"}.fa-comment:before{content:"\F075"}.fa-comment-alt:before{content:"\F27A"}.fa-comment-dots:before{content:"\F4AD"}.fa-comment-slash:before{content:"\F4B3"}.fa-comments:before{content:"\F086"}.fa-compact-disc:before{content:"\F51F"}.fa-compass:before{content:"\F14E"}.fa-compress:before{content:"\F066"}.fa-concierge-bell:before{content:"\F562"}.fa-connectdevelop:before{content:"\F20E"}.fa-contao:before{content:"\F26D"}.fa-cookie:before{content:"\F563"}.fa-cookie-bite:before{content:"\F564"}.fa-copy:before{content:"\F0C5"}.fa-copyright:before{content:"\F1F9"}.fa-couch:before{content:"\F4B8"}.fa-cpanel:before{content:"\F388"}.fa-creative-commons:before{content:"\F25E"}.fa-creative-commons-by:before{content:"\F4E7"}.fa-creative-commons-nc:before{content:"\F4E8"}.fa-creative-commons-nc-eu:before{content:"\F4E9"}.fa-creative-commons-nc-jp:before{content:"\F4EA"}.fa-creative-commons-nd:before{content:"\F4EB"}.fa-creative-commons-pd:before{content:"\F4EC"}.fa-creative-commons-pd-alt:before{content:"\F4ED"}.fa-creative-commons-remix:before{content:"\F4EE"}.fa-creative-commons-sa:before{content:"\F4EF"}.fa-creative-commons-sampling:before{content:"\F4F0"}.fa-creative-commons-sampling-plus:before{content:"\F4F1"}.fa-creative-commons-share:before{content:"\F4F2"}.fa-credit-card:before{content:"\F09D"}.fa-crop:before{content:"\F125"}.fa-crop-alt:before{content:"\F565"}.fa-crosshairs:before{content:"\F05B"}.fa-crow:before{content:"\F520"}.fa-crown:before{content:"\F521"}.fa-css3:before{content:"\F13C"}.fa-css3-alt:before{content:"\F38B"}.fa-cube:before{content:"\F1B2"}.fa-cubes:before{content:"\F1B3"}.fa-cut:before{content:"\F0C4"}.fa-cuttlefish:before{content:"\F38C"}.fa-d-and-d:before{content:"\F38D"}.fa-dashcube:before{content:"\F210"}.fa-database:before{content:"\F1C0"}.fa-deaf:before{content:"\F2A4"}.fa-delicious:before{content:"\F1A5"}.fa-deploydog:before{content:"\F38E"}.fa-deskpro:before{content:"\F38F"}.fa-desktop:before{content:"\F108"}.fa-deviantart:before{content:"\F1BD"}.fa-diagnoses:before{content:"\F470"}.fa-dice:before{content:"\F522"}.fa-dice-five:before{content:"\F523"}.fa-dice-four:before{content:"\F524"}.fa-dice-one:before{content:"\F525"}.fa-dice-six:before{content:"\F526"}.fa-dice-three:before{content:"\F527"}.fa-dice-two:before{content:"\F528"}.fa-digg:before{content:"\F1A6"}.fa-digital-ocean:before{content:"\F391"}.fa-digital-tachograph:before{content:"\F566"}.fa-discord:before{content:"\F392"}.fa-discourse:before{content:"\F393"}.fa-divide:before{content:"\F529"}.fa-dizzy:before{content:"\F567"}.fa-dna:before{content:"\F471"}.fa-dochub:before{content:"\F394"}.fa-docker:before{content:"\F395"}.fa-dollar-sign:before{content:"\F155"}.fa-dolly:before{content:"\F472"}.fa-dolly-flatbed:before{content:"\F474"}.fa-donate:before{content:"\F4B9"}.fa-door-closed:before{content:"\F52A"}.fa-door-open:before{content:"\F52B"}.fa-dot-circle:before{content:"\F192"}.fa-dove:before{content:"\F4BA"}.fa-download:before{content:"\F019"}.fa-draft2digital:before{content:"\F396"}.fa-drafting-compass:before{content:"\F568"}.fa-dribbble:before{content:"\F17D"}.fa-dribbble-square:before{content:"\F397"}.fa-dropbox:before{content:"\F16B"}.fa-drum:before{content:"\F569"}.fa-drum-steelpan:before{content:"\F56A"}.fa-drupal:before{content:"\F1A9"}.fa-dumbbell:before{content:"\F44B"}.fa-dyalog:before{content:"\F399"}.fa-earlybirds:before{content:"\F39A"}.fa-ebay:before{content:"\F4F4"}.fa-edge:before{content:"\F282"}.fa-edit:before{content:"\F044"}.fa-eject:before{content:"\F052"}.fa-elementor:before{content:"\F430"}.fa-ellipsis-h:before{content:"\F141"}.fa-ellipsis-v:before{content:"\F142"}.fa-ember:before{content:"\F423"}.fa-empire:before{content:"\F1D1"}.fa-envelope:before{content:"\F0E0"}.fa-envelope-open:before{content:"\F2B6"}.fa-envelope-square:before{content:"\F199"}.fa-envira:before{content:"\F299"}.fa-equals:before{content:"\F52C"}.fa-eraser:before{content:"\F12D"}.fa-erlang:before{content:"\F39D"}.fa-ethereum:before{content:"\F42E"}.fa-etsy:before{content:"\F2D7"}.fa-euro-sign:before{content:"\F153"}.fa-exchange-alt:before{content:"\F362"}.fa-exclamation:before{content:"\F12A"}.fa-exclamation-circle:before{content:"\F06A"}.fa-exclamation-triangle:before{content:"\F071"}.fa-expand:before{content:"\F065"}.fa-expand-arrows-alt:before{content:"\F31E"}.fa-expeditedssl:before{content:"\F23E"}.fa-external-link-alt:before{content:"\F35D"}.fa-external-link-square-alt:before{content:"\F360"}.fa-eye:before{content:"\F06E"}.fa-eye-dropper:before{content:"\F1FB"}.fa-eye-slash:before{content:"\F070"}.fa-facebook:before{content:"\F09A"}.fa-facebook-f:before{content:"\F39E"}.fa-facebook-messenger:before{content:"\F39F"}.fa-facebook-square:before{content:"\F082"}.fa-fast-backward:before{content:"\F049"}.fa-fast-forward:before{content:"\F050"}.fa-fax:before{content:"\F1AC"}.fa-feather:before{content:"\F52D"}.fa-feather-alt:before{content:"\F56B"}.fa-female:before{content:"\F182"}.fa-fighter-jet:before{content:"\F0FB"}.fa-file:before{content:"\F15B"}.fa-file-alt:before{content:"\F15C"}.fa-file-archive:before{content:"\F1C6"}.fa-file-audio:before{content:"\F1C7"}.fa-file-code:before{content:"\F1C9"}.fa-file-contract:before{content:"\F56C"}.fa-file-download:before{content:"\F56D"}.fa-file-excel:before{content:"\F1C3"}.fa-file-export:before{content:"\F56E"}.fa-file-image:before{content:"\F1C5"}.fa-file-import:before{content:"\F56F"}.fa-file-invoice:before{content:"\F570"}.fa-file-invoice-dollar:before{content:"\F571"}.fa-file-medical:before{content:"\F477"}.fa-file-medical-alt:before{content:"\F478"}.fa-file-pdf:before{content:"\F1C1"}.fa-file-powerpoint:before{content:"\F1C4"}.fa-file-prescription:before{content:"\F572"}.fa-file-signature:before{content:"\F573"}.fa-file-upload:before{content:"\F574"}.fa-file-video:before{content:"\F1C8"}.fa-file-word:before{content:"\F1C2"}.fa-fill:before{content:"\F575"}.fa-fill-drip:before{content:"\F576"}.fa-film:before{content:"\F008"}.fa-filter:before{content:"\F0B0"}.fa-fingerprint:before{content:"\F577"}.fa-fire:before{content:"\F06D"}.fa-fire-extinguisher:before{content:"\F134"}.fa-firefox:before{content:"\F269"}.fa-first-aid:before{content:"\F479"}.fa-first-order:before{content:"\F2B0"}.fa-first-order-alt:before{content:"\F50A"}.fa-firstdraft:before{content:"\F3A1"}.fa-fish:before{content:"\F578"}.fa-flag:before{content:"\F024"}.fa-flag-checkered:before{content:"\F11E"}.fa-flask:before{content:"\F0C3"}.fa-flickr:before{content:"\F16E"}.fa-flipboard:before{content:"\F44D"}.fa-flushed:before{content:"\F579"}.fa-fly:before{content:"\F417"}.fa-folder:before{content:"\F07B"}.fa-folder-open:before{content:"\F07C"}.fa-font:before{content:"\F031"}.fa-font-awesome:before{content:"\F2B4"}.fa-font-awesome-alt:before{content:"\F35C"}.fa-font-awesome-flag:before{content:"\F425"}.fa-font-awesome-logo-full:before{content:"\F4E6"}.fa-fonticons:before{content:"\F280"}.fa-fonticons-fi:before{content:"\F3A2"}.fa-football-ball:before{content:"\F44E"}.fa-fort-awesome:before{content:"\F286"}.fa-fort-awesome-alt:before{content:"\F3A3"}.fa-forumbee:before{content:"\F211"}.fa-forward:before{content:"\F04E"}.fa-foursquare:before{content:"\F180"}.fa-free-code-camp:before{content:"\F2C5"}.fa-freebsd:before{content:"\F3A4"}.fa-frog:before{content:"\F52E"}.fa-frown:before{content:"\F119"}.fa-frown-open:before{content:"\F57A"}.fa-fulcrum:before{content:"\F50B"}.fa-futbol:before{content:"\F1E3"}.fa-galactic-republic:before{content:"\F50C"}.fa-galactic-senate:before{content:"\F50D"}.fa-gamepad:before{content:"\F11B"}.fa-gas-pump:before{content:"\F52F"}.fa-gavel:before{content:"\F0E3"}.fa-gem:before{content:"\F3A5"}.fa-genderless:before{content:"\F22D"}.fa-get-pocket:before{content:"\F265"}.fa-gg:before{content:"\F260"}.fa-gg-circle:before{content:"\F261"}.fa-gift:before{content:"\F06B"}.fa-git:before{content:"\F1D3"}.fa-git-square:before{content:"\F1D2"}.fa-github:before{content:"\F09B"}.fa-github-alt:before{content:"\F113"}.fa-github-square:before{content:"\F092"}.fa-gitkraken:before{content:"\F3A6"}.fa-gitlab:before{content:"\F296"}.fa-gitter:before{content:"\F426"}.fa-glass-martini:before{content:"\F000"}.fa-glass-martini-alt:before{content:"\F57B"}.fa-glasses:before{content:"\F530"}.fa-glide:before{content:"\F2A5"}.fa-glide-g:before{content:"\F2A6"}.fa-globe:before{content:"\F0AC"}.fa-globe-africa:before{content:"\F57C"}.fa-globe-americas:before{content:"\F57D"}.fa-globe-asia:before{content:"\F57E"}.fa-gofore:before{content:"\F3A7"}.fa-golf-ball:before{content:"\F450"}.fa-goodreads:before{content:"\F3A8"}.fa-goodreads-g:before{content:"\F3A9"}.fa-google:before{content:"\F1A0"}.fa-google-drive:before{content:"\F3AA"}.fa-google-play:before{content:"\F3AB"}.fa-google-plus:before{content:"\F2B3"}.fa-google-plus-g:before{content:"\F0D5"}.fa-google-plus-square:before{content:"\F0D4"}.fa-google-wallet:before{content:"\F1EE"}.fa-graduation-cap:before{content:"\F19D"}.fa-gratipay:before{content:"\F184"}.fa-grav:before{content:"\F2D6"}.fa-greater-than:before{content:"\F531"}.fa-greater-than-equal:before{content:"\F532"}.fa-grimace:before{content:"\F57F"}.fa-grin:before{content:"\F580"}.fa-grin-alt:before{content:"\F581"}.fa-grin-beam:before{content:"\F582"}.fa-grin-beam-sweat:before{content:"\F583"}.fa-grin-hearts:before{content:"\F584"}.fa-grin-squint:before{content:"\F585"}.fa-grin-squint-tears:before{content:"\F586"}.fa-grin-stars:before{content:"\F587"}.fa-grin-tears:before{content:"\F588"}.fa-grin-tongue:before{content:"\F589"}.fa-grin-tongue-squint:before{content:"\F58A"}.fa-grin-tongue-wink:before{content:"\F58B"}.fa-grin-wink:before{content:"\F58C"}.fa-grip-horizontal:before{content:"\F58D"}.fa-grip-vertical:before{content:"\F58E"}.fa-gripfire:before{content:"\F3AC"}.fa-grunt:before{content:"\F3AD"}.fa-gulp:before{content:"\F3AE"}.fa-h-square:before{content:"\F0FD"}.fa-hacker-news:before{content:"\F1D4"}.fa-hacker-news-square:before{content:"\F3AF"}.fa-hand-holding:before{content:"\F4BD"}.fa-hand-holding-heart:before{content:"\F4BE"}.fa-hand-holding-usd:before{content:"\F4C0"}.fa-hand-lizard:before{content:"\F258"}.fa-hand-paper:before{content:"\F256"}.fa-hand-peace:before{content:"\F25B"}.fa-hand-point-down:before{content:"\F0A7"}.fa-hand-point-left:before{content:"\F0A5"}.fa-hand-point-right:before{content:"\F0A4"}.fa-hand-point-up:before{content:"\F0A6"}.fa-hand-pointer:before{content:"\F25A"}.fa-hand-rock:before{content:"\F255"}.fa-hand-scissors:before{content:"\F257"}.fa-hand-spock:before{content:"\F259"}.fa-hands:before{content:"\F4C2"}.fa-hands-helping:before{content:"\F4C4"}.fa-handshake:before{content:"\F2B5"}.fa-hashtag:before{content:"\F292"}.fa-hdd:before{content:"\F0A0"}.fa-heading:before{content:"\F1DC"}.fa-headphones:before{content:"\F025"}.fa-headphones-alt:before{content:"\F58F"}.fa-headset:before{content:"\F590"}.fa-heart:before{content:"\F004"}.fa-heartbeat:before{content:"\F21E"}.fa-helicopter:before{content:"\F533"}.fa-highlighter:before{content:"\F591"}.fa-hips:before{content:"\F452"}.fa-hire-a-helper:before{content:"\F3B0"}.fa-history:before{content:"\F1DA"}.fa-hockey-puck:before{content:"\F453"}.fa-home:before{content:"\F015"}.fa-hooli:before{content:"\F427"}.fa-hornbill:before{content:"\F592"}.fa-hospital:before{content:"\F0F8"}.fa-hospital-alt:before{content:"\F47D"}.fa-hospital-symbol:before{content:"\F47E"}.fa-hot-tub:before{content:"\F593"}.fa-hotel:before{content:"\F594"}.fa-hotjar:before{content:"\F3B1"}.fa-hourglass:before{content:"\F254"}.fa-hourglass-end:before{content:"\F253"}.fa-hourglass-half:before{content:"\F252"}.fa-hourglass-start:before{content:"\F251"}.fa-houzz:before{content:"\F27C"}.fa-html5:before{content:"\F13B"}.fa-hubspot:before{content:"\F3B2"}.fa-i-cursor:before{content:"\F246"}.fa-id-badge:before{content:"\F2C1"}.fa-id-card:before{content:"\F2C2"}.fa-id-card-alt:before{content:"\F47F"}.fa-image:before{content:"\F03E"}.fa-images:before{content:"\F302"}.fa-imdb:before{content:"\F2D8"}.fa-inbox:before{content:"\F01C"}.fa-indent:before{content:"\F03C"}.fa-industry:before{content:"\F275"}.fa-infinity:before{content:"\F534"}.fa-info:before{content:"\F129"}.fa-info-circle:before{content:"\F05A"}.fa-instagram:before{content:"\F16D"}.fa-internet-explorer:before{content:"\F26B"}.fa-ioxhost:before{content:"\F208"}.fa-italic:before{content:"\F033"}.fa-itunes:before{content:"\F3B4"}.fa-itunes-note:before{content:"\F3B5"}.fa-java:before{content:"\F4E4"}.fa-jedi-order:before{content:"\F50E"}.fa-jenkins:before{content:"\F3B6"}.fa-joget:before{content:"\F3B7"}.fa-joint:before{content:"\F595"}.fa-joomla:before{content:"\F1AA"}.fa-js:before{content:"\F3B8"}.fa-js-square:before{content:"\F3B9"}.fa-jsfiddle:before{content:"\F1CC"}.fa-key:before{content:"\F084"}.fa-keybase:before{content:"\F4F5"}.fa-keyboard:before{content:"\F11C"}.fa-keycdn:before{content:"\F3BA"}.fa-kickstarter:before{content:"\F3BB"}.fa-kickstarter-k:before{content:"\F3BC"}.fa-kiss:before{content:"\F596"}.fa-kiss-beam:before{content:"\F597"}.fa-kiss-wink-heart:before{content:"\F598"}.fa-kiwi-bird:before{content:"\F535"}.fa-korvue:before{content:"\F42F"}.fa-language:before{content:"\F1AB"}.fa-laptop:before{content:"\F109"}.fa-laravel:before{content:"\F3BD"}.fa-lastfm:before{content:"\F202"}.fa-lastfm-square:before{content:"\F203"}.fa-laugh:before{content:"\F599"}.fa-laugh-beam:before{content:"\F59A"}.fa-laugh-squint:before{content:"\F59B"}.fa-laugh-wink:before{content:"\F59C"}.fa-leaf:before{content:"\F06C"}.fa-leanpub:before{content:"\F212"}.fa-lemon:before{content:"\F094"}.fa-less:before{content:"\F41D"}.fa-less-than:before{content:"\F536"}.fa-less-than-equal:before{content:"\F537"}.fa-level-down-alt:before{content:"\F3BE"}.fa-level-up-alt:before{content:"\F3BF"}.fa-life-ring:before{content:"\F1CD"}.fa-lightbulb:before{content:"\F0EB"}.fa-line:before{content:"\F3C0"}.fa-link:before{content:"\F0C1"}.fa-linkedin:before{content:"\F08C"}.fa-linkedin-in:before{content:"\F0E1"}.fa-linode:before{content:"\F2B8"}.fa-linux:before{content:"\F17C"}.fa-lira-sign:before{content:"\F195"}.fa-list:before{content:"\F03A"}.fa-list-alt:before{content:"\F022"}.fa-list-ol:before{content:"\F0CB"}.fa-list-ul:before{content:"\F0CA"}.fa-location-arrow:before{content:"\F124"}.fa-lock:before{content:"\F023"}.fa-lock-open:before{content:"\F3C1"}.fa-long-arrow-alt-down:before{content:"\F309"}.fa-long-arrow-alt-left:before{content:"\F30A"}.fa-long-arrow-alt-right:before{content:"\F30B"}.fa-long-arrow-alt-up:before{content:"\F30C"}.fa-low-vision:before{content:"\F2A8"}.fa-luggage-cart:before{content:"\F59D"}.fa-lyft:before{content:"\F3C3"}.fa-magento:before{content:"\F3C4"}.fa-magic:before{content:"\F0D0"}.fa-magnet:before{content:"\F076"}.fa-mailchimp:before{content:"\F59E"}.fa-male:before{content:"\F183"}.fa-mandalorian:before{content:"\F50F"}.fa-map:before{content:"\F279"}.fa-map-marked:before{content:"\F59F"}.fa-map-marked-alt:before{content:"\F5A0"}.fa-map-marker:before{content:"\F041"}.fa-map-marker-alt:before{content:"\F3C5"}.fa-map-pin:before{content:"\F276"}.fa-map-signs:before{content:"\F277"}.fa-marker:before{content:"\F5A1"}.fa-mars:before{content:"\F222"}.fa-mars-double:before{content:"\F227"}.fa-mars-stroke:before{content:"\F229"}.fa-mars-stroke-h:before{content:"\F22B"}.fa-mars-stroke-v:before{content:"\F22A"}.fa-mastodon:before{content:"\F4F6"}.fa-maxcdn:before{content:"\F136"}.fa-medal:before{content:"\F5A2"}.fa-medapps:before{content:"\F3C6"}.fa-medium:before{content:"\F23A"}.fa-medium-m:before{content:"\F3C7"}.fa-medkit:before{content:"\F0FA"}.fa-medrt:before{content:"\F3C8"}.fa-meetup:before{content:"\F2E0"}.fa-megaport:before{content:"\F5A3"}.fa-meh:before{content:"\F11A"}.fa-meh-blank:before{content:"\F5A4"}.fa-meh-rolling-eyes:before{content:"\F5A5"}.fa-memory:before{content:"\F538"}.fa-mercury:before{content:"\F223"}.fa-microchip:before{content:"\F2DB"}.fa-microphone:before{content:"\F130"}.fa-microphone-alt:before{content:"\F3C9"}.fa-microphone-alt-slash:before{content:"\F539"}.fa-microphone-slash:before{content:"\F131"}.fa-microsoft:before{content:"\F3CA"}.fa-minus:before{content:"\F068"}.fa-minus-circle:before{content:"\F056"}.fa-minus-square:before{content:"\F146"}.fa-mix:before{content:"\F3CB"}.fa-mixcloud:before{content:"\F289"}.fa-mizuni:before{content:"\F3CC"}.fa-mobile:before{content:"\F10B"}.fa-mobile-alt:before{content:"\F3CD"}.fa-modx:before{content:"\F285"}.fa-monero:before{content:"\F3D0"}.fa-money-bill:before{content:"\F0D6"}.fa-money-bill-alt:before{content:"\F3D1"}.fa-money-bill-wave:before{content:"\F53A"}.fa-money-bill-wave-alt:before{content:"\F53B"}.fa-money-check:before{content:"\F53C"}.fa-money-check-alt:before{content:"\F53D"}.fa-monument:before{content:"\F5A6"}.fa-moon:before{content:"\F186"}.fa-mortar-pestle:before{content:"\F5A7"}.fa-motorcycle:before{content:"\F21C"}.fa-mouse-pointer:before{content:"\F245"}.fa-music:before{content:"\F001"}.fa-napster:before{content:"\F3D2"}.fa-neuter:before{content:"\F22C"}.fa-newspaper:before{content:"\F1EA"}.fa-nimblr:before{content:"\F5A8"}.fa-nintendo-switch:before{content:"\F418"}.fa-node:before{content:"\F419"}.fa-node-js:before{content:"\F3D3"}.fa-not-equal:before{content:"\F53E"}.fa-notes-medical:before{content:"\F481"}.fa-npm:before{content:"\F3D4"}.fa-ns8:before{content:"\F3D5"}.fa-nutritionix:before{content:"\F3D6"}.fa-object-group:before{content:"\F247"}.fa-object-ungroup:before{content:"\F248"}.fa-odnoklassniki:before{content:"\F263"}.fa-odnoklassniki-square:before{content:"\F264"}.fa-old-republic:before{content:"\F510"}.fa-opencart:before{content:"\F23D"}.fa-openid:before{content:"\F19B"}.fa-opera:before{content:"\F26A"}.fa-optin-monster:before{content:"\F23C"}.fa-osi:before{content:"\F41A"}.fa-outdent:before{content:"\F03B"}.fa-page4:before{content:"\F3D7"}.fa-pagelines:before{content:"\F18C"}.fa-paint-brush:before{content:"\F1FC"}.fa-paint-roller:before{content:"\F5AA"}.fa-palette:before{content:"\F53F"}.fa-palfed:before{content:"\F3D8"}.fa-pallet:before{content:"\F482"}.fa-paper-plane:before{content:"\F1D8"}.fa-paperclip:before{content:"\F0C6"}.fa-parachute-box:before{content:"\F4CD"}.fa-paragraph:before{content:"\F1DD"}.fa-parking:before{content:"\F540"}.fa-passport:before{content:"\F5AB"}.fa-paste:before{content:"\F0EA"}.fa-patreon:before{content:"\F3D9"}.fa-pause:before{content:"\F04C"}.fa-pause-circle:before{content:"\F28B"}.fa-paw:before{content:"\F1B0"}.fa-paypal:before{content:"\F1ED"}.fa-pen:before{content:"\F304"}.fa-pen-alt:before{content:"\F305"}.fa-pen-fancy:before{content:"\F5AC"}.fa-pen-nib:before{content:"\F5AD"}.fa-pen-square:before{content:"\F14B"}.fa-pencil-alt:before{content:"\F303"}.fa-pencil-ruler:before{content:"\F5AE"}.fa-people-carry:before{content:"\F4CE"}.fa-percent:before{content:"\F295"}.fa-percentage:before{content:"\F541"}.fa-periscope:before{content:"\F3DA"}.fa-phabricator:before{content:"\F3DB"}.fa-phoenix-framework:before{content:"\F3DC"}.fa-phoenix-squadron:before{content:"\F511"}.fa-phone:before{content:"\F095"}.fa-phone-slash:before{content:"\F3DD"}.fa-phone-square:before{content:"\F098"}.fa-phone-volume:before{content:"\F2A0"}.fa-php:before{content:"\F457"}.fa-pied-piper:before{content:"\F2AE"}.fa-pied-piper-alt:before{content:"\F1A8"}.fa-pied-piper-hat:before{content:"\F4E5"}.fa-pied-piper-pp:before{content:"\F1A7"}.fa-piggy-bank:before{content:"\F4D3"}.fa-pills:before{content:"\F484"}.fa-pinterest:before{content:"\F0D2"}.fa-pinterest-p:before{content:"\F231"}.fa-pinterest-square:before{content:"\F0D3"}.fa-plane:before{content:"\F072"}.fa-plane-arrival:before{content:"\F5AF"}.fa-plane-departure:before{content:"\F5B0"}.fa-play:before{content:"\F04B"}.fa-play-circle:before{content:"\F144"}.fa-playstation:before{content:"\F3DF"}.fa-plug:before{content:"\F1E6"}.fa-plus:before{content:"\F067"}.fa-plus-circle:before{content:"\F055"}.fa-plus-square:before{content:"\F0FE"}.fa-podcast:before{content:"\F2CE"}.fa-poo:before{content:"\F2FE"}.fa-portrait:before{content:"\F3E0"}.fa-pound-sign:before{content:"\F154"}.fa-power-off:before{content:"\F011"}.fa-prescription:before{content:"\F5B1"}.fa-prescription-bottle:before{content:"\F485"}.fa-prescription-bottle-alt:before{content:"\F486"}.fa-print:before{content:"\F02F"}.fa-procedures:before{content:"\F487"}.fa-product-hunt:before{content:"\F288"}.fa-project-diagram:before{content:"\F542"}.fa-pushed:before{content:"\F3E1"}.fa-puzzle-piece:before{content:"\F12E"}.fa-python:before{content:"\F3E2"}.fa-qq:before{content:"\F1D6"}.fa-qrcode:before{content:"\F029"}.fa-question:before{content:"\F128"}.fa-question-circle:before{content:"\F059"}.fa-quidditch:before{content:"\F458"}.fa-quinscape:before{content:"\F459"}.fa-quora:before{content:"\F2C4"}.fa-quote-left:before{content:"\F10D"}.fa-quote-right:before{content:"\F10E"}.fa-r-project:before{content:"\F4F7"}.fa-random:before{content:"\F074"}.fa-ravelry:before{content:"\F2D9"}.fa-react:before{content:"\F41B"}.fa-readme:before{content:"\F4D5"}.fa-rebel:before{content:"\F1D0"}.fa-receipt:before{content:"\F543"}.fa-recycle:before{content:"\F1B8"}.fa-red-river:before{content:"\F3E3"}.fa-reddit:before{content:"\F1A1"}.fa-reddit-alien:before{content:"\F281"}.fa-reddit-square:before{content:"\F1A2"}.fa-redo:before{content:"\F01E"}.fa-redo-alt:before{content:"\F2F9"}.fa-registered:before{content:"\F25D"}.fa-rendact:before{content:"\F3E4"}.fa-renren:before{content:"\F18B"}.fa-reply:before{content:"\F3E5"}.fa-reply-all:before{content:"\F122"}.fa-replyd:before{content:"\F3E6"}.fa-researchgate:before{content:"\F4F8"}.fa-resolving:before{content:"\F3E7"}.fa-retweet:before{content:"\F079"}.fa-rev:before{content:"\F5B2"}.fa-ribbon:before{content:"\F4D6"}.fa-road:before{content:"\F018"}.fa-robot:before{content:"\F544"}.fa-rocket:before{content:"\F135"}.fa-rocketchat:before{content:"\F3E8"}.fa-rockrms:before{content:"\F3E9"}.fa-rss:before{content:"\F09E"}.fa-rss-square:before{content:"\F143"}.fa-ruble-sign:before{content:"\F158"}.fa-ruler:before{content:"\F545"}.fa-ruler-combined:before{content:"\F546"}.fa-ruler-horizontal:before{content:"\F547"}.fa-ruler-vertical:before{content:"\F548"}.fa-rupee-sign:before{content:"\F156"}.fa-sad-cry:before{content:"\F5B3"}.fa-sad-tear:before{content:"\F5B4"}.fa-safari:before{content:"\F267"}.fa-sass:before{content:"\F41E"}.fa-save:before{content:"\F0C7"}.fa-schlix:before{content:"\F3EA"}.fa-school:before{content:"\F549"}.fa-screwdriver:before{content:"\F54A"}.fa-scribd:before{content:"\F28A"}.fa-search:before{content:"\F002"}.fa-search-minus:before{content:"\F010"}.fa-search-plus:before{content:"\F00E"}.fa-searchengin:before{content:"\F3EB"}.fa-seedling:before{content:"\F4D8"}.fa-sellcast:before{content:"\F2DA"}.fa-sellsy:before{content:"\F213"}.fa-server:before{content:"\F233"}.fa-servicestack:before{content:"\F3EC"}.fa-share:before{content:"\F064"}.fa-share-alt:before{content:"\F1E0"}.fa-share-alt-square:before{content:"\F1E1"}.fa-share-square:before{content:"\F14D"}.fa-shekel-sign:before{content:"\F20B"}.fa-shield-alt:before{content:"\F3ED"}.fa-ship:before{content:"\F21A"}.fa-shipping-fast:before{content:"\F48B"}.fa-shirtsinbulk:before{content:"\F214"}.fa-shoe-prints:before{content:"\F54B"}.fa-shopping-bag:before{content:"\F290"}.fa-shopping-basket:before{content:"\F291"}.fa-shopping-cart:before{content:"\F07A"}.fa-shopware:before{content:"\F5B5"}.fa-shower:before{content:"\F2CC"}.fa-shuttle-van:before{content:"\F5B6"}.fa-sign:before{content:"\F4D9"}.fa-sign-in-alt:before{content:"\F2F6"}.fa-sign-language:before{content:"\F2A7"}.fa-sign-out-alt:before{content:"\F2F5"}.fa-signal:before{content:"\F012"}.fa-signature:before{content:"\F5B7"}.fa-simplybuilt:before{content:"\F215"}.fa-sistrix:before{content:"\F3EE"}.fa-sitemap:before{content:"\F0E8"}.fa-sith:before{content:"\F512"}.fa-skull:before{content:"\F54C"}.fa-skyatlas:before{content:"\F216"}.fa-skype:before{content:"\F17E"}.fa-slack:before{content:"\F198"}.fa-slack-hash:before{content:"\F3EF"}.fa-sliders-h:before{content:"\F1DE"}.fa-slideshare:before{content:"\F1E7"}.fa-smile:before{content:"\F118"}.fa-smile-beam:before{content:"\F5B8"}.fa-smile-wink:before{content:"\F4DA"}.fa-smoking:before{content:"\F48D"}.fa-smoking-ban:before{content:"\F54D"}.fa-snapchat:before{content:"\F2AB"}.fa-snapchat-ghost:before{content:"\F2AC"}.fa-snapchat-square:before{content:"\F2AD"}.fa-snowflake:before{content:"\F2DC"}.fa-solar-panel:before{content:"\F5BA"}.fa-sort:before{content:"\F0DC"}.fa-sort-alpha-down:before{content:"\F15D"}.fa-sort-alpha-up:before{content:"\F15E"}.fa-sort-amount-down:before{content:"\F160"}.fa-sort-amount-up:before{content:"\F161"}.fa-sort-down:before{content:"\F0DD"}.fa-sort-numeric-down:before{content:"\F162"}.fa-sort-numeric-up:before{content:"\F163"}.fa-sort-up:before{content:"\F0DE"}.fa-soundcloud:before{content:"\F1BE"}.fa-spa:before{content:"\F5BB"}.fa-space-shuttle:before{content:"\F197"}.fa-speakap:before{content:"\F3F3"}.fa-spinner:before{content:"\F110"}.fa-splotch:before{content:"\F5BC"}.fa-spotify:before{content:"\F1BC"}.fa-spray-can:before{content:"\F5BD"}.fa-square:before{content:"\F0C8"}.fa-square-full:before{content:"\F45C"}.fa-squarespace:before{content:"\F5BE"}.fa-stack-exchange:before{content:"\F18D"}.fa-stack-overflow:before{content:"\F16C"}.fa-stamp:before{content:"\F5BF"}.fa-star:before{content:"\F005"}.fa-star-half:before{content:"\F089"}.fa-star-half-alt:before{content:"\F5C0"}.fa-staylinked:before{content:"\F3F5"}.fa-steam:before{content:"\F1B6"}.fa-steam-square:before{content:"\F1B7"}.fa-steam-symbol:before{content:"\F3F6"}.fa-step-backward:before{content:"\F048"}.fa-step-forward:before{content:"\F051"}.fa-stethoscope:before{content:"\F0F1"}.fa-sticker-mule:before{content:"\F3F7"}.fa-sticky-note:before{content:"\F249"}.fa-stop:before{content:"\F04D"}.fa-stop-circle:before{content:"\F28D"}.fa-stopwatch:before{content:"\F2F2"}.fa-store:before{content:"\F54E"}.fa-store-alt:before{content:"\F54F"}.fa-strava:before{content:"\F428"}.fa-stream:before{content:"\F550"}.fa-street-view:before{content:"\F21D"}.fa-strikethrough:before{content:"\F0CC"}.fa-stripe:before{content:"\F429"}.fa-stripe-s:before{content:"\F42A"}.fa-stroopwafel:before{content:"\F551"}.fa-studiovinari:before{content:"\F3F8"}.fa-stumbleupon:before{content:"\F1A4"}.fa-stumbleupon-circle:before{content:"\F1A3"}.fa-subscript:before{content:"\F12C"}.fa-subway:before{content:"\F239"}.fa-suitcase:before{content:"\F0F2"}.fa-suitcase-rolling:before{content:"\F5C1"}.fa-sun:before{content:"\F185"}.fa-superpowers:before{content:"\F2DD"}.fa-superscript:before{content:"\F12B"}.fa-supple:before{content:"\F3F9"}.fa-surprise:before{content:"\F5C2"}.fa-swatchbook:before{content:"\F5C3"}.fa-swimmer:before{content:"\F5C4"}.fa-swimming-pool:before{content:"\F5C5"}.fa-sync:before{content:"\F021"}.fa-sync-alt:before{content:"\F2F1"}.fa-syringe:before{content:"\F48E"}.fa-table:before{content:"\F0CE"}.fa-table-tennis:before{content:"\F45D"}.fa-tablet:before{content:"\F10A"}.fa-tablet-alt:before{content:"\F3FA"}.fa-tablets:before{content:"\F490"}.fa-tachometer-alt:before{content:"\F3FD"}.fa-tag:before{content:"\F02B"}.fa-tags:before{content:"\F02C"}.fa-tape:before{content:"\F4DB"}.fa-tasks:before{content:"\F0AE"}.fa-taxi:before{content:"\F1BA"}.fa-teamspeak:before{content:"\F4F9"}.fa-telegram:before{content:"\F2C6"}.fa-telegram-plane:before{content:"\F3FE"}.fa-tencent-weibo:before{content:"\F1D5"}.fa-terminal:before{content:"\F120"}.fa-text-height:before{content:"\F034"}.fa-text-width:before{content:"\F035"}.fa-th:before{content:"\F00A"}.fa-th-large:before{content:"\F009"}.fa-th-list:before{content:"\F00B"}.fa-themeco:before{content:"\F5C6"}.fa-themeisle:before{content:"\F2B2"}.fa-thermometer:before{content:"\F491"}.fa-thermometer-empty:before{content:"\F2CB"}.fa-thermometer-full:before{content:"\F2C7"}.fa-thermometer-half:before{content:"\F2C9"}.fa-thermometer-quarter:before{content:"\F2CA"}.fa-thermometer-three-quarters:before{content:"\F2C8"}.fa-thumbs-down:before{content:"\F165"}.fa-thumbs-up:before{content:"\F164"}.fa-thumbtack:before{content:"\F08D"}.fa-ticket-alt:before{content:"\F3FF"}.fa-times:before{content:"\F00D"}.fa-times-circle:before{content:"\F057"}.fa-tint:before{content:"\F043"}.fa-tint-slash:before{content:"\F5C7"}.fa-tired:before{content:"\F5C8"}.fa-toggle-off:before{content:"\F204"}.fa-toggle-on:before{content:"\F205"}.fa-toolbox:before{content:"\F552"}.fa-tooth:before{content:"\F5C9"}.fa-trade-federation:before{content:"\F513"}.fa-trademark:before{content:"\F25C"}.fa-train:before{content:"\F238"}.fa-transgender:before{content:"\F224"}.fa-transgender-alt:before{content:"\F225"}.fa-trash:before{content:"\F1F8"}.fa-trash-alt:before{content:"\F2ED"}.fa-tree:before{content:"\F1BB"}.fa-trello:before{content:"\F181"}.fa-tripadvisor:before{content:"\F262"}.fa-trophy:before{content:"\F091"}.fa-truck:before{content:"\F0D1"}.fa-truck-loading:before{content:"\F4DE"}.fa-truck-moving:before{content:"\F4DF"}.fa-tshirt:before{content:"\F553"}.fa-tty:before{content:"\F1E4"}.fa-tumblr:before{content:"\F173"}.fa-tumblr-square:before{content:"\F174"}.fa-tv:before{content:"\F26C"}.fa-twitch:before{content:"\F1E8"}.fa-twitter:before{content:"\F099"}.fa-twitter-square:before{content:"\F081"}.fa-typo3:before{content:"\F42B"}.fa-uber:before{content:"\F402"}.fa-uikit:before{content:"\F403"}.fa-umbrella:before{content:"\F0E9"}.fa-umbrella-beach:before{content:"\F5CA"}.fa-underline:before{content:"\F0CD"}.fa-undo:before{content:"\F0E2"}.fa-undo-alt:before{content:"\F2EA"}.fa-uniregistry:before{content:"\F404"}.fa-universal-access:before{content:"\F29A"}.fa-university:before{content:"\F19C"}.fa-unlink:before{content:"\F127"}.fa-unlock:before{content:"\F09C"}.fa-unlock-alt:before{content:"\F13E"}.fa-untappd:before{content:"\F405"}.fa-upload:before{content:"\F093"}.fa-usb:before{content:"\F287"}.fa-user:before{content:"\F007"}.fa-user-alt:before{content:"\F406"}.fa-user-alt-slash:before{content:"\F4FA"}.fa-user-astronaut:before{content:"\F4FB"}.fa-user-check:before{content:"\F4FC"}.fa-user-circle:before{content:"\F2BD"}.fa-user-clock:before{content:"\F4FD"}.fa-user-cog:before{content:"\F4FE"}.fa-user-edit:before{content:"\F4FF"}.fa-user-friends:before{content:"\F500"}.fa-user-graduate:before{content:"\F501"}.fa-user-lock:before{content:"\F502"}.fa-user-md:before{content:"\F0F0"}.fa-user-minus:before{content:"\F503"}.fa-user-ninja:before{content:"\F504"}.fa-user-plus:before{content:"\F234"}.fa-user-secret:before{content:"\F21B"}.fa-user-shield:before{content:"\F505"}.fa-user-slash:before{content:"\F506"}.fa-user-tag:before{content:"\F507"}.fa-user-tie:before{content:"\F508"}.fa-user-times:before{content:"\F235"}.fa-users:before{content:"\F0C0"}.fa-users-cog:before{content:"\F509"}.fa-ussunnah:before{content:"\F407"}.fa-utensil-spoon:before{content:"\F2E5"}.fa-utensils:before{content:"\F2E7"}.fa-vaadin:before{content:"\F408"}.fa-vector-square:before{content:"\F5CB"}.fa-venus:before{content:"\F221"}.fa-venus-double:before{content:"\F226"}.fa-venus-mars:before{content:"\F228"}.fa-viacoin:before{content:"\F237"}.fa-viadeo:before{content:"\F2A9"}.fa-viadeo-square:before{content:"\F2AA"}.fa-vial:before{content:"\F492"}.fa-vials:before{content:"\F493"}.fa-viber:before{content:"\F409"}.fa-video:before{content:"\F03D"}.fa-video-slash:before{content:"\F4E2"}.fa-vimeo:before{content:"\F40A"}.fa-vimeo-square:before{content:"\F194"}.fa-vimeo-v:before{content:"\F27D"}.fa-vine:before{content:"\F1CA"}.fa-vk:before{content:"\F189"}.fa-vnv:before{content:"\F40B"}.fa-volleyball-ball:before{content:"\F45F"}.fa-volume-down:before{content:"\F027"}.fa-volume-off:before{content:"\F026"}.fa-volume-up:before{content:"\F028"}.fa-vuejs:before{content:"\F41F"}.fa-walking:before{content:"\F554"}.fa-wallet:before{content:"\F555"}.fa-warehouse:before{content:"\F494"}.fa-weebly:before{content:"\F5CC"}.fa-weibo:before{content:"\F18A"}.fa-weight:before{content:"\F496"}.fa-weight-hanging:before{content:"\F5CD"}.fa-weixin:before{content:"\F1D7"}.fa-whatsapp:before{content:"\F232"}.fa-whatsapp-square:before{content:"\F40C"}.fa-wheelchair:before{content:"\F193"}.fa-whmcs:before{content:"\F40D"}.fa-wifi:before{content:"\F1EB"}.fa-wikipedia-w:before{content:"\F266"}.fa-window-close:before{content:"\F410"}.fa-window-maximize:before{content:"\F2D0"}.fa-window-minimize:before{content:"\F2D1"}.fa-window-restore:before{content:"\F2D2"}.fa-windows:before{content:"\F17A"}.fa-wine-glass:before{content:"\F4E3"}.fa-wine-glass-alt:before{content:"\F5CE"}.fa-wix:before{content:"\F5CF"}.fa-wolf-pack-battalion:before{content:"\F514"}.fa-won-sign:before{content:"\F159"}.fa-wordpress:before{content:"\F19A"}.fa-wordpress-simple:before{content:"\F411"}.fa-wpbeginner:before{content:"\F297"}.fa-wpexplorer:before{content:"\F2DE"}.fa-wpforms:before{content:"\F298"}.fa-wrench:before{content:"\F0AD"}.fa-x-ray:before{content:"\F497"}.fa-xbox:before{content:"\F412"}.fa-xing:before{content:"\F168"}.fa-xing-square:before{content:"\F169"}.fa-y-combinator:before{content:"\F23B"}.fa-yahoo:before{content:"\F19E"}.fa-yandex:before{content:"\F413"}.fa-yandex-international:before{content:"\F414"}.fa-yelp:before{content:"\F1E9"}.fa-yen-sign:before{content:"\F157"}.fa-yoast:before{content:"\F2B1"}.fa-youtube:before{content:"\F167"}.fa-youtube-square:before{content:"\F431"}.sr-only{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.sr-only-focusable:active,.sr-only-focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto} /*! * Font Awesome Free 5.1.1 by @fontawesome - https://fontawesome.com * License - https://fontawesome.com/license (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) - */ -@font-face { - font-family: 'Font Awesome 5 Free'; - font-style: normal; - font-weight: 400; - src: url(./fonts/fa-regular-400.eot?0b7928f6); - src: url(./fonts/fa-regular-400.eot?0b7928f6?#iefix) format("embedded-opentype"), url(./fonts/fa-regular-400.woff2?930c1264) format("woff2"), url(./fonts/fa-regular-400.woff?d9e29124) format("woff"), url(./fonts/fa-regular-400.ttf?cdd8fa76) format("truetype"), url(./images/fa-regular-400.svg?4e41caaf#fontawesome) format("svg"); } - -.far { - font-family: 'Font Awesome 5 Free'; - font-weight: 400; } + */@font-face{font-family:Font Awesome\ 5 Free;font-style:normal;font-weight:400;src:url(./fonts/fa-regular-400.eot?0b7928f6);src:url(./fonts/fa-regular-400.eot?0b7928f6?#iefix) format("embedded-opentype"),url(./fonts/fa-regular-400.woff2?930c1264) format("woff2"),url(./fonts/fa-regular-400.woff?d9e29124) format("woff"),url(./fonts/fa-regular-400.ttf?cdd8fa76) format("truetype"),url(./images/fa-regular-400.svg?4e41caaf#fontawesome) format("svg")}.far{font-weight:400} /*! * Font Awesome Free 5.1.1 by @fontawesome - https://fontawesome.com * License - https://fontawesome.com/license (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) - */ -@font-face { - font-family: 'Font Awesome 5 Free'; - font-style: normal; - font-weight: 900; - src: url(./fonts/fa-solid-900.eot?0b93480e); - src: url(./fonts/fa-solid-900.eot?0b93480e?#iefix) format("embedded-opentype"), url(./fonts/fa-solid-900.woff2?e8a92a29) format("woff2"), url(./fonts/fa-solid-900.woff?dfc040d5) format("woff"), url(./fonts/fa-solid-900.ttf?a7a790d4) format("truetype"), url(./images/fa-solid-900.svg?666a82cb#fontawesome) format("svg"); } - -.fa, -.fas { - font-family: 'Font Awesome 5 Free'; - font-weight: 900; } + */@font-face{font-family:Font Awesome\ 5 Free;font-style:normal;font-weight:900;src:url(./fonts/fa-solid-900.eot?0b93480e);src:url(./fonts/fa-solid-900.eot?0b93480e?#iefix) format("embedded-opentype"),url(./fonts/fa-solid-900.woff2?e8a92a29) format("woff2"),url(./fonts/fa-solid-900.woff?dfc040d5) format("woff"),url(./fonts/fa-solid-900.ttf?a7a790d4) format("truetype"),url(./images/fa-solid-900.svg?666a82cb#fontawesome) format("svg")}.fa,.far,.fas{font-family:Font Awesome\ 5 Free}.fa,.fas{font-weight:900} /*! * Font Awesome Free 5.1.1 by @fontawesome - https://fontawesome.com * License - https://fontawesome.com/license (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) - */ -@font-face { - font-family: 'Font Awesome 5 Brands'; - font-style: normal; - font-weight: normal; - src: url(./fonts/fa-brands-400.eot?69b310ed); - src: url(./fonts/fa-brands-400.eot?69b310ed?#iefix) format("embedded-opentype"), url(./fonts/fa-brands-400.woff2?66f625f1) format("woff2"), url(./fonts/fa-brands-400.woff?e9f83339) format("woff"), url(./fonts/fa-brands-400.ttf?d94572dd) format("truetype"), url(./images/fa-brands-400.svg?5da7e33c#fontawesome) format("svg"); } - -.fab { - font-family: 'Font Awesome 5 Brands'; } -/*! + */@font-face{font-family:Font Awesome\ 5 Brands;font-style:normal;font-weight:400;src:url(./fonts/fa-brands-400.eot?69b310ed);src:url(./fonts/fa-brands-400.eot?69b310ed?#iefix) format("embedded-opentype"),url(./fonts/fa-brands-400.woff2?66f625f1) format("woff2"),url(./fonts/fa-brands-400.woff?e9f83339) format("woff"),url(./fonts/fa-brands-400.ttf?d94572dd) format("truetype"),url(./images/fa-brands-400.svg?5da7e33c#fontawesome) format("svg")}.fab{font-family:Font Awesome\ 5 Brands}/*! * AdminLTE v2.4.8 * Author: Almsaeed Studio * Website: Almsaeed Studio * License: Open source - MIT * Please visit http://opensource.org/licenses/MIT for more information - */html,body{height:100%}.layout-boxed html,.layout-boxed body{height:100%}body{font-family:'Source Sans Pro','Helvetica Neue',Helvetica,Arial,sans-serif;font-weight:400;overflow-x:hidden;overflow-y:auto}.wrapper{height:100%;position:relative;overflow-x:hidden;overflow-y:auto}.wrapper:before,.wrapper:after{content:" ";display:table}.wrapper:after{clear:both}.layout-boxed .wrapper{max-width:1250px;margin:0 auto;min-height:100%;box-shadow:0 0 8px rgba(0,0,0,0.5);position:relative}.layout-boxed{background-color:#f9fafc}.content-wrapper,.main-footer{-webkit-transition:-webkit-transform .3s ease-in-out,margin .3s ease-in-out;-moz-transition:-moz-transform .3s ease-in-out,margin .3s ease-in-out;-o-transition:-o-transform .3s ease-in-out,margin .3s ease-in-out;transition:transform .3s ease-in-out,margin .3s ease-in-out;margin-left:230px;z-index:820}.layout-top-nav .content-wrapper,.layout-top-nav .main-footer{margin-left:0}@media (max-width:767px){.content-wrapper,.main-footer{margin-left:0}}@media (min-width:768px){.sidebar-collapse .content-wrapper,.sidebar-collapse .main-footer{margin-left:0}}@media (max-width:767px){.sidebar-open .content-wrapper,.sidebar-open .main-footer{-webkit-transform:translate(230px, 0);-ms-transform:translate(230px, 0);-o-transform:translate(230px, 0);transform:translate(230px, 0)}}.content-wrapper{min-height:100%;background-color:#ecf0f5;z-index:800}.main-footer{background:#fff;padding:15px;color:#444;border-top:1px solid #d2d6de}.fixed .main-header,.fixed .main-sidebar,.fixed .left-side{position:fixed}.fixed .main-header{top:0;right:0;left:0}.fixed .content-wrapper,.fixed .right-side{padding-top:50px}@media (max-width:767px){.fixed .content-wrapper,.fixed .right-side{padding-top:100px}}.fixed.layout-boxed .wrapper{max-width:100%}.fixed .wrapper{overflow:hidden}.hold-transition .content-wrapper,.hold-transition .right-side,.hold-transition .main-footer,.hold-transition .main-sidebar,.hold-transition .left-side,.hold-transition .main-header .navbar,.hold-transition .main-header .logo,.hold-transition .menu-open .fa-angle-left{-webkit-transition:none;-o-transition:none;transition:none}.content{min-height:250px;padding:15px;margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{font-family:'Source Sans Pro',sans-serif}a{color:#3c8dbc}a:hover,a:active,a:focus{outline:none;text-decoration:none;color:#72afd2}.page-header{margin:10px 0 20px 0;font-size:22px}.page-header>small{color:#666;display:block;margin-top:5px}.main-header{position:relative;max-height:100px;z-index:1030}.main-header .navbar{-webkit-transition:margin-left .3s ease-in-out;-o-transition:margin-left .3s ease-in-out;transition:margin-left .3s ease-in-out;margin-bottom:0;margin-left:230px;border:none;min-height:50px;border-radius:0}.layout-top-nav .main-header .navbar{margin-left:0}.main-header #navbar-search-input.form-control{background:rgba(255,255,255,0.2);border-color:transparent}.main-header #navbar-search-input.form-control:focus,.main-header #navbar-search-input.form-control:active{border-color:rgba(0,0,0,0.1);background:rgba(255,255,255,0.9)}.main-header #navbar-search-input.form-control::-moz-placeholder{color:#ccc;opacity:1}.main-header #navbar-search-input.form-control:-ms-input-placeholder{color:#ccc}.main-header #navbar-search-input.form-control::-webkit-input-placeholder{color:#ccc}.main-header .navbar-custom-menu,.main-header .navbar-right{float:right}@media (max-width:991px){.main-header .navbar-custom-menu a,.main-header .navbar-right a{color:inherit;background:transparent}}@media (max-width:767px){.main-header .navbar-right{float:none}.navbar-collapse .main-header .navbar-right{margin:7.5px -15px}.main-header .navbar-right>li{color:inherit;border:0}}.main-header .sidebar-toggle{float:left;background-color:transparent;background-image:none;padding:15px 15px;font-family:fontAwesome}.main-header .sidebar-toggle:before{content:"\F0C9"}.main-header .sidebar-toggle:hover{color:#fff}.main-header .sidebar-toggle:focus,.main-header .sidebar-toggle:active{background:transparent}.main-header .sidebar-toggle .icon-bar{display:none}.main-header .navbar .nav>li.user>a>.fa,.main-header .navbar .nav>li.user>a>.glyphicon,.main-header .navbar .nav>li.user>a>.ion{margin-right:5px}.main-header .navbar .nav>li>a>.label{position:absolute;top:9px;right:7px;text-align:center;font-size:9px;padding:2px 3px;line-height:.9}.main-header .logo{-webkit-transition:width .3s ease-in-out;-o-transition:width .3s ease-in-out;transition:width .3s ease-in-out;display:block;float:left;height:50px;font-size:20px;line-height:50px;text-align:center;width:230px;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;padding:0 15px;font-weight:300;overflow:hidden}.main-header .logo .logo-lg{display:block}.main-header .logo .logo-mini{display:none}.main-header .navbar-brand{color:#fff}.content-header{position:relative;padding:15px 15px 0 15px}.content-header>h1{margin:0;font-size:24px}.content-header>h1>small{font-size:15px;display:inline-block;padding-left:4px;font-weight:300}.content-header>.breadcrumb{float:right;background:transparent;margin-top:0;margin-bottom:0;font-size:12px;padding:7px 5px;position:absolute;top:15px;right:10px;border-radius:2px}.content-header>.breadcrumb>li>a{color:#444;text-decoration:none;display:inline-block}.content-header>.breadcrumb>li>a>.fa,.content-header>.breadcrumb>li>a>.glyphicon,.content-header>.breadcrumb>li>a>.ion{margin-right:5px}.content-header>.breadcrumb>li+li:before{content:'>\A0'}@media (max-width:991px){.content-header>.breadcrumb{position:relative;margin-top:5px;top:0;right:0;float:none;background:#d2d6de;padding-left:10px}.content-header>.breadcrumb li:before{color:#97a0b3}}.navbar-toggle{color:#fff;border:0;margin:0;padding:15px 15px}@media (max-width:991px){.navbar-custom-menu .navbar-nav>li{float:left}.navbar-custom-menu .navbar-nav{margin:0;float:left}.navbar-custom-menu .navbar-nav>li>a{padding-top:15px;padding-bottom:15px;line-height:20px}}@media (max-width:767px){.main-header{position:relative}.main-header .logo,.main-header .navbar{width:100%;float:none}.main-header .navbar{margin:0}.main-header .navbar-custom-menu{float:right}}@media (max-width:991px){.navbar-collapse.pull-left{float:none !important}.navbar-collapse.pull-left+.navbar-custom-menu{display:block;position:absolute;top:0;right:40px}}.main-sidebar{position:absolute;top:0;left:0;padding-top:50px;min-height:100%;width:230px;z-index:810;-webkit-transition:-webkit-transform .3s ease-in-out,width .3s ease-in-out;-moz-transition:-moz-transform .3s ease-in-out,width .3s ease-in-out;-o-transition:-o-transform .3s ease-in-out,width .3s ease-in-out;transition:transform .3s ease-in-out,width .3s ease-in-out}@media (max-width:767px){.main-sidebar{padding-top:100px}}@media (max-width:767px){.main-sidebar{-webkit-transform:translate(-230px, 0);-ms-transform:translate(-230px, 0);-o-transform:translate(-230px, 0);transform:translate(-230px, 0)}}@media (min-width:768px){.sidebar-collapse .main-sidebar{-webkit-transform:translate(-230px, 0);-ms-transform:translate(-230px, 0);-o-transform:translate(-230px, 0);transform:translate(-230px, 0)}}@media (max-width:767px){.sidebar-open .main-sidebar{-webkit-transform:translate(0, 0);-ms-transform:translate(0, 0);-o-transform:translate(0, 0);transform:translate(0, 0)}}.sidebar{padding-bottom:10px}.sidebar-form input:focus{border-color:transparent}.user-panel{position:relative;width:100%;padding:10px;overflow:hidden}.user-panel:before,.user-panel:after{content:" ";display:table}.user-panel:after{clear:both}.user-panel>.image>img{width:100%;max-width:45px;height:auto}.user-panel>.info{padding:5px 5px 5px 15px;line-height:1;position:absolute;left:55px}.user-panel>.info>p{font-weight:600;margin-bottom:9px}.user-panel>.info>a{text-decoration:none;padding-right:5px;margin-top:3px;font-size:11px}.user-panel>.info>a>.fa,.user-panel>.info>a>.ion,.user-panel>.info>a>.glyphicon{margin-right:3px}.sidebar-menu{list-style:none;margin:0;padding:0}.sidebar-menu>li{position:relative;margin:0;padding:0}.sidebar-menu>li>a{padding:12px 5px 12px 15px;display:block}.sidebar-menu>li>a>.fa,.sidebar-menu>li>a>.glyphicon,.sidebar-menu>li>a>.ion{width:20px}.sidebar-menu>li .label,.sidebar-menu>li .badge{margin-right:5px}.sidebar-menu>li .badge{margin-top:3px}.sidebar-menu li.header{padding:10px 25px 10px 15px;font-size:12px}.sidebar-menu li>a>.fa-angle-left,.sidebar-menu li>a>.pull-right-container>.fa-angle-left{width:auto;height:auto;padding:0;margin-right:10px;-webkit-transition:transform .5s ease;-o-transition:transform .5s ease;transition:transform .5s ease}.sidebar-menu li>a>.fa-angle-left{position:absolute;top:50%;right:10px;margin-top:-8px}.sidebar-menu .menu-open>a>.fa-angle-left,.sidebar-menu .menu-open>a>.pull-right-container>.fa-angle-left{-webkit-transform:rotate(-90deg);-ms-transform:rotate(-90deg);-o-transform:rotate(-90deg);transform:rotate(-90deg)}.sidebar-menu .active>.treeview-menu{display:block}@media (min-width:768px){.sidebar-mini.sidebar-collapse .content-wrapper,.sidebar-mini.sidebar-collapse .right-side,.sidebar-mini.sidebar-collapse .main-footer{margin-left:50px !important;z-index:840}.sidebar-mini.sidebar-collapse .main-sidebar{-webkit-transform:translate(0, 0);-ms-transform:translate(0, 0);-o-transform:translate(0, 0);transform:translate(0, 0);width:50px !important;z-index:850}.sidebar-mini.sidebar-collapse .sidebar-menu>li{position:relative}.sidebar-mini.sidebar-collapse .sidebar-menu>li>a{margin-right:0}.sidebar-mini.sidebar-collapse .sidebar-menu>li>a>span{border-top-right-radius:4px}.sidebar-mini.sidebar-collapse .sidebar-menu>li:not(.treeview)>a>span{border-bottom-right-radius:4px}.sidebar-mini.sidebar-collapse .sidebar-menu>li>.treeview-menu{padding-top:5px;padding-bottom:5px;border-bottom-right-radius:4px}.sidebar-mini.sidebar-collapse .main-sidebar .user-panel>.info,.sidebar-mini.sidebar-collapse .sidebar-form,.sidebar-mini.sidebar-collapse .sidebar-menu>li>a>span,.sidebar-mini.sidebar-collapse .sidebar-menu>li>.treeview-menu,.sidebar-mini.sidebar-collapse .sidebar-menu>li>a>.pull-right,.sidebar-mini.sidebar-collapse .sidebar-menu li.header{display:none !important;-webkit-transform:translateZ(0)}.sidebar-mini.sidebar-collapse .main-header .logo{width:50px}.sidebar-mini.sidebar-collapse .main-header .logo>.logo-mini{display:block;margin-left:-15px;margin-right:-15px;font-size:18px}.sidebar-mini.sidebar-collapse .main-header .logo>.logo-lg{display:none}.sidebar-mini.sidebar-collapse .main-header .navbar{margin-left:50px}}@media (min-width:768px){.sidebar-mini:not(.sidebar-mini-expand-feature).sidebar-collapse .sidebar-menu>li:hover>a>span:not(.pull-right),.sidebar-mini:not(.sidebar-mini-expand-feature).sidebar-collapse .sidebar-menu>li:hover>.treeview-menu{display:block !important;position:absolute;width:180px;left:50px}.sidebar-mini:not(.sidebar-mini-expand-feature).sidebar-collapse .sidebar-menu>li:hover>a>span{top:0;margin-left:-3px;padding:12px 5px 12px 20px;background-color:inherit}.sidebar-mini:not(.sidebar-mini-expand-feature).sidebar-collapse .sidebar-menu>li:hover>a>.pull-right-container{position:relative !important;float:right;width:auto !important;left:180px !important;top:-22px !important;z-index:900}.sidebar-mini:not(.sidebar-mini-expand-feature).sidebar-collapse .sidebar-menu>li:hover>a>.pull-right-container>.label:not(:first-of-type){display:none}.sidebar-mini:not(.sidebar-mini-expand-feature).sidebar-collapse .sidebar-menu>li:hover>.treeview-menu{top:44px;margin-left:0}}.sidebar-expanded-on-hover .main-footer,.sidebar-expanded-on-hover .content-wrapper{margin-left:50px}.sidebar-expanded-on-hover .main-sidebar{box-shadow:3px 0 8px rgba(0,0,0,0.125)}.sidebar-menu,.main-sidebar .user-panel,.sidebar-menu>li.header{white-space:nowrap;overflow:hidden}.sidebar-menu:hover{overflow:visible}.sidebar-form,.sidebar-menu>li.header{overflow:hidden;text-overflow:clip}.sidebar-menu li>a{position:relative}.sidebar-menu li>a>.pull-right-container{position:absolute;right:10px;top:50%;margin-top:-7px}.control-sidebar-bg{position:fixed;z-index:1000;bottom:0}.control-sidebar-bg,.control-sidebar{top:0;right:-230px;width:230px;-webkit-transition:right .3s ease-in-out;-o-transition:right .3s ease-in-out;transition:right .3s ease-in-out}.control-sidebar{position:absolute;padding-top:50px;z-index:1010}@media (max-width:767px){.control-sidebar{padding-top:100px}}.control-sidebar>.tab-content{padding:10px 15px}.control-sidebar.control-sidebar-open,.control-sidebar.control-sidebar-open+.control-sidebar-bg{right:0}.control-sidebar-open .control-sidebar-bg,.control-sidebar-open .control-sidebar{right:0}@media (min-width:768px){.control-sidebar-open .content-wrapper,.control-sidebar-open .right-side,.control-sidebar-open .main-footer{margin-right:230px}}.fixed .control-sidebar{position:fixed;height:100%;overflow-y:auto;padding-bottom:50px}.nav-tabs.control-sidebar-tabs>li:first-of-type>a,.nav-tabs.control-sidebar-tabs>li:first-of-type>a:hover,.nav-tabs.control-sidebar-tabs>li:first-of-type>a:focus{border-left-width:0}.nav-tabs.control-sidebar-tabs>li>a{border-radius:0}.nav-tabs.control-sidebar-tabs>li>a,.nav-tabs.control-sidebar-tabs>li>a:hover{border-top:none;border-right:none;border-left:1px solid transparent;border-bottom:1px solid transparent}.nav-tabs.control-sidebar-tabs>li>a .icon{font-size:16px}.nav-tabs.control-sidebar-tabs>li.active>a,.nav-tabs.control-sidebar-tabs>li.active>a:hover,.nav-tabs.control-sidebar-tabs>li.active>a:focus,.nav-tabs.control-sidebar-tabs>li.active>a:active{border-top:none;border-right:none;border-bottom:none}@media (max-width:768px){.nav-tabs.control-sidebar-tabs{display:table}.nav-tabs.control-sidebar-tabs>li{display:table-cell}}.control-sidebar-heading{font-weight:400;font-size:16px;padding:10px 0;margin-bottom:10px}.control-sidebar-subheading{display:block;font-weight:400;font-size:14px}.control-sidebar-menu{list-style:none;padding:0;margin:0 -15px}.control-sidebar-menu>li>a{display:block;padding:10px 15px}.control-sidebar-menu>li>a:before,.control-sidebar-menu>li>a:after{content:" ";display:table}.control-sidebar-menu>li>a:after{clear:both}.control-sidebar-menu>li>a>.control-sidebar-subheading{margin-top:0}.control-sidebar-menu .menu-icon{float:left;width:35px;height:35px;border-radius:50%;text-align:center;line-height:35px}.control-sidebar-menu .menu-info{margin-left:45px;margin-top:3px}.control-sidebar-menu .menu-info>.control-sidebar-subheading{margin:0}.control-sidebar-menu .menu-info>p{margin:0;font-size:11px}.control-sidebar-menu .progress{margin:0}.control-sidebar-dark{color:#b8c7ce}.control-sidebar-dark,.control-sidebar-dark+.control-sidebar-bg{background:#222d32}.control-sidebar-dark .nav-tabs.control-sidebar-tabs{border-bottom:#1c2529}.control-sidebar-dark .nav-tabs.control-sidebar-tabs>li>a{background:#181f23;color:#b8c7ce}.control-sidebar-dark .nav-tabs.control-sidebar-tabs>li>a,.control-sidebar-dark .nav-tabs.control-sidebar-tabs>li>a:hover,.control-sidebar-dark .nav-tabs.control-sidebar-tabs>li>a:focus{border-left-color:#141a1d;border-bottom-color:#141a1d}.control-sidebar-dark .nav-tabs.control-sidebar-tabs>li>a:hover,.control-sidebar-dark .nav-tabs.control-sidebar-tabs>li>a:focus,.control-sidebar-dark .nav-tabs.control-sidebar-tabs>li>a:active{background:#1c2529}.control-sidebar-dark .nav-tabs.control-sidebar-tabs>li>a:hover{color:#fff}.control-sidebar-dark .nav-tabs.control-sidebar-tabs>li.active>a,.control-sidebar-dark .nav-tabs.control-sidebar-tabs>li.active>a:hover,.control-sidebar-dark .nav-tabs.control-sidebar-tabs>li.active>a:focus,.control-sidebar-dark .nav-tabs.control-sidebar-tabs>li.active>a:active{background:#222d32;color:#fff}.control-sidebar-dark .control-sidebar-heading,.control-sidebar-dark .control-sidebar-subheading{color:#fff}.control-sidebar-dark .control-sidebar-menu>li>a:hover{background:#1e282c}.control-sidebar-dark .control-sidebar-menu>li>a .menu-info>p{color:#b8c7ce}.control-sidebar-light{color:#5e5e5e}.control-sidebar-light,.control-sidebar-light+.control-sidebar-bg{background:#f9fafc;border-left:1px solid #d2d6de}.control-sidebar-light .nav-tabs.control-sidebar-tabs{border-bottom:#d2d6de}.control-sidebar-light .nav-tabs.control-sidebar-tabs>li>a{background:#e8ecf4;color:#444}.control-sidebar-light .nav-tabs.control-sidebar-tabs>li>a,.control-sidebar-light .nav-tabs.control-sidebar-tabs>li>a:hover,.control-sidebar-light .nav-tabs.control-sidebar-tabs>li>a:focus{border-left-color:#d2d6de;border-bottom-color:#d2d6de}.control-sidebar-light .nav-tabs.control-sidebar-tabs>li>a:hover,.control-sidebar-light .nav-tabs.control-sidebar-tabs>li>a:focus,.control-sidebar-light .nav-tabs.control-sidebar-tabs>li>a:active{background:#eff1f7}.control-sidebar-light .nav-tabs.control-sidebar-tabs>li.active>a,.control-sidebar-light .nav-tabs.control-sidebar-tabs>li.active>a:hover,.control-sidebar-light .nav-tabs.control-sidebar-tabs>li.active>a:focus,.control-sidebar-light .nav-tabs.control-sidebar-tabs>li.active>a:active{background:#f9fafc;color:#111}.control-sidebar-light .control-sidebar-heading,.control-sidebar-light .control-sidebar-subheading{color:#111}.control-sidebar-light .control-sidebar-menu{margin-left:-14px}.control-sidebar-light .control-sidebar-menu>li>a:hover{background:#f4f4f5}.control-sidebar-light .control-sidebar-menu>li>a .menu-info>p{color:#5e5e5e}.dropdown-menu{box-shadow:none;border-color:#eee}.dropdown-menu>li>a{color:#777}.dropdown-menu>li>a>.glyphicon,.dropdown-menu>li>a>.fa,.dropdown-menu>li>a>.ion{margin-right:10px}.dropdown-menu>li>a:hover{background-color:#e1e3e9;color:#333}.dropdown-menu>.divider{background-color:#eee}.navbar-nav>.notifications-menu>.dropdown-menu,.navbar-nav>.messages-menu>.dropdown-menu,.navbar-nav>.tasks-menu>.dropdown-menu{width:280px;padding:0 0 0 0;margin:0;top:100%}.navbar-nav>.notifications-menu>.dropdown-menu>li,.navbar-nav>.messages-menu>.dropdown-menu>li,.navbar-nav>.tasks-menu>.dropdown-menu>li{position:relative}.navbar-nav>.notifications-menu>.dropdown-menu>li.header,.navbar-nav>.messages-menu>.dropdown-menu>li.header,.navbar-nav>.tasks-menu>.dropdown-menu>li.header{border-top-left-radius:4px;border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0;background-color:#ffffff;padding:7px 10px;border-bottom:1px solid #f4f4f4;color:#444444;font-size:14px}.navbar-nav>.notifications-menu>.dropdown-menu>li.footer>a,.navbar-nav>.messages-menu>.dropdown-menu>li.footer>a,.navbar-nav>.tasks-menu>.dropdown-menu>li.footer>a{border-top-left-radius:0;border-top-right-radius:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px;font-size:12px;background-color:#fff;padding:7px 10px;border-bottom:1px solid #eeeeee;color:#444 !important;text-align:center}@media (max-width:991px){.navbar-nav>.notifications-menu>.dropdown-menu>li.footer>a,.navbar-nav>.messages-menu>.dropdown-menu>li.footer>a,.navbar-nav>.tasks-menu>.dropdown-menu>li.footer>a{background:#fff !important;color:#444 !important}}.navbar-nav>.notifications-menu>.dropdown-menu>li.footer>a:hover,.navbar-nav>.messages-menu>.dropdown-menu>li.footer>a:hover,.navbar-nav>.tasks-menu>.dropdown-menu>li.footer>a:hover{text-decoration:none;font-weight:normal}.navbar-nav>.notifications-menu>.dropdown-menu>li .menu,.navbar-nav>.messages-menu>.dropdown-menu>li .menu,.navbar-nav>.tasks-menu>.dropdown-menu>li .menu{max-height:200px;margin:0;padding:0;list-style:none;overflow-x:hidden}.navbar-nav>.notifications-menu>.dropdown-menu>li .menu>li>a,.navbar-nav>.messages-menu>.dropdown-menu>li .menu>li>a,.navbar-nav>.tasks-menu>.dropdown-menu>li .menu>li>a{display:block;white-space:nowrap;border-bottom:1px solid #f4f4f4}.navbar-nav>.notifications-menu>.dropdown-menu>li .menu>li>a:hover,.navbar-nav>.messages-menu>.dropdown-menu>li .menu>li>a:hover,.navbar-nav>.tasks-menu>.dropdown-menu>li .menu>li>a:hover{background:#f4f4f4;text-decoration:none}.navbar-nav>.notifications-menu>.dropdown-menu>li .menu>li>a{color:#444444;overflow:hidden;text-overflow:ellipsis;padding:10px}.navbar-nav>.notifications-menu>.dropdown-menu>li .menu>li>a>.glyphicon,.navbar-nav>.notifications-menu>.dropdown-menu>li .menu>li>a>.fa,.navbar-nav>.notifications-menu>.dropdown-menu>li .menu>li>a>.ion{width:20px}.navbar-nav>.messages-menu>.dropdown-menu>li .menu>li>a{margin:0;padding:10px 10px}.navbar-nav>.messages-menu>.dropdown-menu>li .menu>li>a>div>img{margin:auto 10px auto auto;width:40px;height:40px}.navbar-nav>.messages-menu>.dropdown-menu>li .menu>li>a>h4{padding:0;margin:0 0 0 45px;color:#444444;font-size:15px;position:relative}.navbar-nav>.messages-menu>.dropdown-menu>li .menu>li>a>h4>small{color:#999999;font-size:10px;position:absolute;top:0;right:0}.navbar-nav>.messages-menu>.dropdown-menu>li .menu>li>a>p{margin:0 0 0 45px;font-size:12px;color:#888888}.navbar-nav>.messages-menu>.dropdown-menu>li .menu>li>a:before,.navbar-nav>.messages-menu>.dropdown-menu>li .menu>li>a:after{content:" ";display:table}.navbar-nav>.messages-menu>.dropdown-menu>li .menu>li>a:after{clear:both}.navbar-nav>.tasks-menu>.dropdown-menu>li .menu>li>a{padding:10px}.navbar-nav>.tasks-menu>.dropdown-menu>li .menu>li>a>h3{font-size:14px;padding:0;margin:0 0 10px 0;color:#666666}.navbar-nav>.tasks-menu>.dropdown-menu>li .menu>li>a>.progress{padding:0;margin:0}.navbar-nav>.user-menu>.dropdown-menu{border-top-right-radius:0;border-top-left-radius:0;padding:1px 0 0 0;border-top-width:0;width:280px}.navbar-nav>.user-menu>.dropdown-menu,.navbar-nav>.user-menu>.dropdown-menu>.user-body{border-bottom-right-radius:4px;border-bottom-left-radius:4px}.navbar-nav>.user-menu>.dropdown-menu>li.user-header{height:175px;padding:10px;text-align:center}.navbar-nav>.user-menu>.dropdown-menu>li.user-header>img{z-index:5;height:90px;width:90px;border:3px solid;border-color:transparent;border-color:rgba(255,255,255,0.2)}.navbar-nav>.user-menu>.dropdown-menu>li.user-header>p{z-index:5;color:#fff;color:rgba(255,255,255,0.8);font-size:17px;margin-top:10px}.navbar-nav>.user-menu>.dropdown-menu>li.user-header>p>small{display:block;font-size:12px}.navbar-nav>.user-menu>.dropdown-menu>.user-body{padding:15px;border-bottom:1px solid #f4f4f4;border-top:1px solid #dddddd}.navbar-nav>.user-menu>.dropdown-menu>.user-body:before,.navbar-nav>.user-menu>.dropdown-menu>.user-body:after{content:" ";display:table}.navbar-nav>.user-menu>.dropdown-menu>.user-body:after{clear:both}.navbar-nav>.user-menu>.dropdown-menu>.user-body a{color:#444 !important}@media (max-width:991px){.navbar-nav>.user-menu>.dropdown-menu>.user-body a{background:#fff !important;color:#444 !important}}.navbar-nav>.user-menu>.dropdown-menu>.user-footer{background-color:#f9f9f9;padding:10px}.navbar-nav>.user-menu>.dropdown-menu>.user-footer:before,.navbar-nav>.user-menu>.dropdown-menu>.user-footer:after{content:" ";display:table}.navbar-nav>.user-menu>.dropdown-menu>.user-footer:after{clear:both}.navbar-nav>.user-menu>.dropdown-menu>.user-footer .btn-default{color:#666666}@media (max-width:991px){.navbar-nav>.user-menu>.dropdown-menu>.user-footer .btn-default:hover{background-color:#f9f9f9}}.navbar-nav>.user-menu .user-image{float:left;width:25px;height:25px;border-radius:50%;margin-right:10px;margin-top:-2px}@media (max-width:767px){.navbar-nav>.user-menu .user-image{float:none;margin-right:0;margin-top:-8px;line-height:10px}}.open:not(.dropup)>.animated-dropdown-menu{backface-visibility:visible !important;-webkit-animation:flipInX .7s both;-o-animation:flipInX .7s both;animation:flipInX .7s both}@keyframes flipInX{0%{transform:perspective(400px) rotate3d(1, 0, 0, 90deg);transition-timing-function:ease-in;opacity:0}40%{transform:perspective(400px) rotate3d(1, 0, 0, -20deg);transition-timing-function:ease-in}60%{transform:perspective(400px) rotate3d(1, 0, 0, 10deg);opacity:1}80%{transform:perspective(400px) rotate3d(1, 0, 0, -5deg)}100%{transform:perspective(400px)}}@-webkit-keyframes flipInX{0%{-webkit-transform:perspective(400px) rotate3d(1, 0, 0, 90deg);-webkit-transition-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotate3d(1, 0, 0, -20deg);-webkit-transition-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotate3d(1, 0, 0, 10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotate3d(1, 0, 0, -5deg)}100%{-webkit-transform:perspective(400px)}}.navbar-custom-menu>.navbar-nav>li{position:relative}.navbar-custom-menu>.navbar-nav>li>.dropdown-menu{position:absolute;right:0;left:auto}@media (max-width:991px){.navbar-custom-menu>.navbar-nav{float:right}.navbar-custom-menu>.navbar-nav>li{position:static}.navbar-custom-menu>.navbar-nav>li>.dropdown-menu{position:absolute;right:5%;left:auto;border:1px solid #ddd;background:#fff}}.form-control{border-radius:0;box-shadow:none;border-color:#d2d6de}.form-control:focus{border-color:#3c8dbc;box-shadow:none}.form-control::-moz-placeholder,.form-control:-ms-input-placeholder,.form-control::-webkit-input-placeholder{color:#bbb;opacity:1}.form-control:not(select){-webkit-appearance:none;-moz-appearance:none;appearance:none}.form-group.has-success label{color:#00a65a}.form-group.has-success .form-control,.form-group.has-success .input-group-addon{border-color:#00a65a;box-shadow:none}.form-group.has-success .help-block{color:#00a65a}.form-group.has-warning label{color:#f39c12}.form-group.has-warning .form-control,.form-group.has-warning .input-group-addon{border-color:#f39c12;box-shadow:none}.form-group.has-warning .help-block{color:#f39c12}.form-group.has-error label{color:#dd4b39}.form-group.has-error .form-control,.form-group.has-error .input-group-addon{border-color:#dd4b39;box-shadow:none}.form-group.has-error .help-block{color:#dd4b39}.input-group .input-group-addon{border-radius:0;border-color:#d2d6de;background-color:#fff}.btn-group-vertical .btn.btn-flat:first-of-type,.btn-group-vertical .btn.btn-flat:last-of-type{border-radius:0}.icheck>label{padding-left:0}.form-control-feedback.fa{line-height:34px}.input-lg+.form-control-feedback.fa,.input-group-lg+.form-control-feedback.fa,.form-group-lg .form-control+.form-control-feedback.fa{line-height:46px}.input-sm+.form-control-feedback.fa,.input-group-sm+.form-control-feedback.fa,.form-group-sm .form-control+.form-control-feedback.fa{line-height:30px}.progress,.progress>.progress-bar{-webkit-box-shadow:none;box-shadow:none}.progress,.progress>.progress-bar,.progress .progress-bar,.progress>.progress-bar .progress-bar{border-radius:1px}.progress.sm,.progress-sm{height:10px}.progress.sm,.progress-sm,.progress.sm .progress-bar,.progress-sm .progress-bar{border-radius:1px}.progress.xs,.progress-xs{height:7px}.progress.xs,.progress-xs,.progress.xs .progress-bar,.progress-xs .progress-bar{border-radius:1px}.progress.xxs,.progress-xxs{height:3px}.progress.xxs,.progress-xxs,.progress.xxs .progress-bar,.progress-xxs .progress-bar{border-radius:1px}.progress.vertical{position:relative;width:30px;height:200px;display:inline-block;margin-right:10px}.progress.vertical>.progress-bar{width:100%;position:absolute;bottom:0}.progress.vertical.sm,.progress.vertical.progress-sm{width:20px}.progress.vertical.xs,.progress.vertical.progress-xs{width:10px}.progress.vertical.xxs,.progress.vertical.progress-xxs{width:3px}.progress-group .progress-text{font-weight:600}.progress-group .progress-number{float:right}.table tr>td .progress{margin:0}.progress-bar-light-blue,.progress-bar-primary{background-color:#3c8dbc}.progress-striped .progress-bar-light-blue,.progress-striped .progress-bar-primary{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-green,.progress-bar-success{background-color:#00a65a}.progress-striped .progress-bar-green,.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-aqua,.progress-bar-info{background-color:#00c0ef}.progress-striped .progress-bar-aqua,.progress-striped .progress-bar-info{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-yellow,.progress-bar-warning{background-color:#f39c12}.progress-striped .progress-bar-yellow,.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-red,.progress-bar-danger{background-color:#dd4b39}.progress-striped .progress-bar-red,.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.small-box{border-radius:2px;position:relative;display:block;margin-bottom:20px;box-shadow:0 1px 1px rgba(0,0,0,0.1)}.small-box>.inner{padding:10px}.small-box>.small-box-footer{position:relative;text-align:center;padding:3px 0;color:#fff;color:rgba(255,255,255,0.8);display:block;z-index:10;background:rgba(0,0,0,0.1);text-decoration:none}.small-box>.small-box-footer:hover{color:#fff;background:rgba(0,0,0,0.15)}.small-box h3{font-size:38px;font-weight:bold;margin:0 0 10px 0;white-space:nowrap;padding:0}.small-box p{font-size:15px}.small-box p>small{display:block;color:#f9f9f9;font-size:13px;margin-top:5px}.small-box h3,.small-box p{z-index:5}.small-box .icon{-webkit-transition:all .3s linear;-o-transition:all .3s linear;transition:all .3s linear;position:absolute;top:-10px;right:10px;z-index:0;font-size:90px;color:rgba(0,0,0,0.15)}.small-box:hover{text-decoration:none;color:#f9f9f9}.small-box:hover .icon{font-size:95px}@media (max-width:767px){.small-box{text-align:center}.small-box .icon{display:none}.small-box p{font-size:12px}}.box{position:relative;border-radius:3px;background:#ffffff;border-top:3px solid #d2d6de;margin-bottom:20px;width:100%;box-shadow:0 1px 1px rgba(0,0,0,0.1)}.box.box-primary{border-top-color:#3c8dbc}.box.box-info{border-top-color:#00c0ef}.box.box-danger{border-top-color:#dd4b39}.box.box-warning{border-top-color:#f39c12}.box.box-success{border-top-color:#00a65a}.box.box-default{border-top-color:#d2d6de}.box.collapsed-box .box-body,.box.collapsed-box .box-footer{display:none}.box .nav-stacked>li{border-bottom:1px solid #f4f4f4;margin:0}.box .nav-stacked>li:last-of-type{border-bottom:none}.box.height-control .box-body{max-height:300px;overflow:auto}.box .border-right{border-right:1px solid #f4f4f4}.box .border-left{border-left:1px solid #f4f4f4}.box.box-solid{border-top:0}.box.box-solid>.box-header .btn.btn-default{background:transparent}.box.box-solid>.box-header .btn:hover,.box.box-solid>.box-header a:hover{background:rgba(0,0,0,0.1)}.box.box-solid.box-default{border:1px solid #d2d6de}.box.box-solid.box-default>.box-header{color:#444;background:#d2d6de;background-color:#d2d6de}.box.box-solid.box-default>.box-header a,.box.box-solid.box-default>.box-header .btn{color:#444}.box.box-solid.box-primary{border:1px solid #3c8dbc}.box.box-solid.box-primary>.box-header{color:#fff;background:#3c8dbc;background-color:#3c8dbc}.box.box-solid.box-primary>.box-header a,.box.box-solid.box-primary>.box-header .btn{color:#fff}.box.box-solid.box-info{border:1px solid #00c0ef}.box.box-solid.box-info>.box-header{color:#fff;background:#00c0ef;background-color:#00c0ef}.box.box-solid.box-info>.box-header a,.box.box-solid.box-info>.box-header .btn{color:#fff}.box.box-solid.box-danger{border:1px solid #dd4b39}.box.box-solid.box-danger>.box-header{color:#fff;background:#dd4b39;background-color:#dd4b39}.box.box-solid.box-danger>.box-header a,.box.box-solid.box-danger>.box-header .btn{color:#fff}.box.box-solid.box-warning{border:1px solid #f39c12}.box.box-solid.box-warning>.box-header{color:#fff;background:#f39c12;background-color:#f39c12}.box.box-solid.box-warning>.box-header a,.box.box-solid.box-warning>.box-header .btn{color:#fff}.box.box-solid.box-success{border:1px solid #00a65a}.box.box-solid.box-success>.box-header{color:#fff;background:#00a65a;background-color:#00a65a}.box.box-solid.box-success>.box-header a,.box.box-solid.box-success>.box-header .btn{color:#fff}.box.box-solid>.box-header>.box-tools .btn{border:0;box-shadow:none}.box.box-solid[class*='bg']>.box-header{color:#fff}.box .box-group>.box{margin-bottom:5px}.box .knob-label{text-align:center;color:#333;font-weight:100;font-size:12px;margin-bottom:0.3em}.box>.overlay,.overlay-wrapper>.overlay,.box>.loading-img,.overlay-wrapper>.loading-img{position:absolute;top:0;left:0;width:100%;height:100%}.box .overlay,.overlay-wrapper .overlay{z-index:50;background:rgba(255,255,255,0.7);border-radius:3px}.box .overlay>.fa,.overlay-wrapper .overlay>.fa{position:absolute;top:50%;left:50%;margin-left:-15px;margin-top:-15px;color:#000;font-size:30px}.box .overlay.dark,.overlay-wrapper .overlay.dark{background:rgba(0,0,0,0.5)}.box-header:before,.box-body:before,.box-footer:before,.box-header:after,.box-body:after,.box-footer:after{content:" ";display:table}.box-header:after,.box-body:after,.box-footer:after{clear:both}.box-header{color:#444;display:block;padding:10px;position:relative}.box-header.with-border{border-bottom:1px solid #f4f4f4}.collapsed-box .box-header.with-border{border-bottom:none}.box-header>.fa,.box-header>.glyphicon,.box-header>.ion,.box-header .box-title{display:inline-block;font-size:18px;margin:0;line-height:1}.box-header>.fa,.box-header>.glyphicon,.box-header>.ion{margin-right:5px}.box-header>.box-tools{position:absolute;right:10px;top:5px}.box-header>.box-tools [data-toggle="tooltip"]{position:relative}.box-header>.box-tools.pull-right .dropdown-menu{right:0;left:auto}.box-header>.box-tools .dropdown-menu>li>a{color:#444!important}.btn-box-tool{padding:5px;font-size:12px;background:transparent;color:#97a0b3}.open .btn-box-tool,.btn-box-tool:hover{color:#606c84}.btn-box-tool.btn:active{box-shadow:none}.box-body{border-top-left-radius:0;border-top-right-radius:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px;padding:10px}.no-header .box-body{border-top-right-radius:3px;border-top-left-radius:3px}.box-body>.table{margin-bottom:0}.box-body .fc{margin-top:5px}.box-body .full-width-chart{margin:-19px}.box-body.no-padding .full-width-chart{margin:-9px}.box-body .box-pane{border-top-left-radius:0;border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:3px}.box-body .box-pane-right{border-top-left-radius:0;border-top-right-radius:0;border-bottom-right-radius:3px;border-bottom-left-radius:0}.box-footer{border-top-left-radius:0;border-top-right-radius:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px;border-top:1px solid #f4f4f4;padding:10px;background-color:#fff}.chart-legend{margin:10px 0}@media (max-width:991px){.chart-legend>li{float:left;margin-right:10px}}.box-comments{background:#f7f7f7}.box-comments .box-comment{padding:8px 0;border-bottom:1px solid #eee}.box-comments .box-comment:before,.box-comments .box-comment:after{content:" ";display:table}.box-comments .box-comment:after{clear:both}.box-comments .box-comment:last-of-type{border-bottom:0}.box-comments .box-comment:first-of-type{padding-top:0}.box-comments .box-comment img{float:left}.box-comments .comment-text{margin-left:40px;color:#555}.box-comments .username{color:#444;display:block;font-weight:600}.box-comments .text-muted{font-weight:400;font-size:12px}.todo-list{margin:0;padding:0;list-style:none;overflow:auto}.todo-list>li{border-radius:2px;padding:10px;background:#f4f4f4;margin-bottom:2px;border-left:2px solid #e6e7e8;color:#444}.todo-list>li:last-of-type{margin-bottom:0}.todo-list>li>input[type='checkbox']{margin:0 10px 0 5px}.todo-list>li .text{display:inline-block;margin-left:5px;font-weight:600}.todo-list>li .label{margin-left:10px;font-size:9px}.todo-list>li .tools{display:none;float:right;color:#dd4b39}.todo-list>li .tools>.fa,.todo-list>li .tools>.glyphicon,.todo-list>li .tools>.ion{margin-right:5px;cursor:pointer}.todo-list>li:hover .tools{display:inline-block}.todo-list>li.done{color:#999}.todo-list>li.done .text{text-decoration:line-through;font-weight:500}.todo-list>li.done .label{background:#d2d6de !important}.todo-list .danger{border-left-color:#dd4b39}.todo-list .warning{border-left-color:#f39c12}.todo-list .info{border-left-color:#00c0ef}.todo-list .success{border-left-color:#00a65a}.todo-list .primary{border-left-color:#3c8dbc}.todo-list .handle{display:inline-block;cursor:move;margin:0 5px}.chat{padding:5px 20px 5px 10px}.chat .item{margin-bottom:10px}.chat .item:before,.chat .item:after{content:" ";display:table}.chat .item:after{clear:both}.chat .item>img{width:40px;height:40px;border:2px solid transparent;border-radius:50%}.chat .item>.online{border:2px solid #00a65a}.chat .item>.offline{border:2px solid #dd4b39}.chat .item>.message{margin-left:55px;margin-top:-40px}.chat .item>.message>.name{display:block;font-weight:600}.chat .item>.attachment{border-radius:3px;background:#f4f4f4;margin-left:65px;margin-right:15px;padding:10px}.chat .item>.attachment>h4{margin:0 0 5px 0;font-weight:600;font-size:14px}.chat .item>.attachment>p,.chat .item>.attachment>.filename{font-weight:600;font-size:13px;font-style:italic;margin:0}.chat .item>.attachment:before,.chat .item>.attachment:after{content:" ";display:table}.chat .item>.attachment:after{clear:both}.box-input{max-width:200px}.modal .panel-body{color:#444}.info-box{display:block;min-height:90px;background:#fff;width:100%;box-shadow:0 1px 1px rgba(0,0,0,0.1);border-radius:2px;margin-bottom:15px}.info-box small{font-size:14px}.info-box .progress{background:rgba(0,0,0,0.2);margin:5px -10px 5px -10px;height:2px}.info-box .progress,.info-box .progress .progress-bar{border-radius:0}.info-box .progress .progress-bar{background:#fff}.info-box-icon{border-top-left-radius:2px;border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:2px;display:block;float:left;height:90px;width:90px;text-align:center;font-size:45px;line-height:90px;background:rgba(0,0,0,0.2)}.info-box-icon>img{max-width:100%}.info-box-content{padding:5px 10px;margin-left:90px}.info-box-number{display:block;font-weight:bold;font-size:18px}.progress-description,.info-box-text{display:block;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.info-box-text{text-transform:uppercase}.info-box-more{display:block}.progress-description{margin:0}.timeline{position:relative;margin:0 0 30px 0;padding:0;list-style:none}.timeline:before{content:'';position:absolute;top:0;bottom:0;width:4px;background:#ddd;left:31px;margin:0;border-radius:2px}.timeline>li{position:relative;margin-right:10px;margin-bottom:15px}.timeline>li:before,.timeline>li:after{content:" ";display:table}.timeline>li:after{clear:both}.timeline>li>.timeline-item{-webkit-box-shadow:0 1px 1px rgba(0,0,0,0.1);box-shadow:0 1px 1px rgba(0,0,0,0.1);border-radius:3px;margin-top:0;background:#fff;color:#444;margin-left:60px;margin-right:15px;padding:0;position:relative}.timeline>li>.timeline-item>.time{color:#999;float:right;padding:10px;font-size:12px}.timeline>li>.timeline-item>.timeline-header{margin:0;color:#555;border-bottom:1px solid #f4f4f4;padding:10px;font-size:16px;line-height:1.1}.timeline>li>.timeline-item>.timeline-header>a{font-weight:600}.timeline>li>.timeline-item>.timeline-body,.timeline>li>.timeline-item>.timeline-footer{padding:10px}.timeline>li>.fa,.timeline>li>.glyphicon,.timeline>li>.ion{width:30px;height:30px;font-size:15px;line-height:30px;position:absolute;color:#666;background:#d2d6de;border-radius:50%;text-align:center;left:18px;top:0}.timeline>.time-label>span{font-weight:600;padding:5px;display:inline-block;background-color:#fff;border-radius:4px}.timeline-inverse>li>.timeline-item{background:#f0f0f0;border:1px solid #ddd;-webkit-box-shadow:none;box-shadow:none}.timeline-inverse>li>.timeline-item>.timeline-header{border-bottom-color:#ddd}.btn{border-radius:3px;-webkit-box-shadow:none;box-shadow:none;border:1px solid transparent}.btn.uppercase{text-transform:uppercase}.btn.btn-flat{border-radius:0;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;border-width:1px}.btn:active{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);-moz-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn:focus{outline:none}.btn.btn-file{position:relative;overflow:hidden}.btn.btn-file>input[type='file']{position:absolute;top:0;right:0;min-width:100%;min-height:100%;font-size:100px;text-align:right;opacity:0;filter:alpha(opacity=0);outline:none;background:white;cursor:inherit;display:block}.btn-default{background-color:#f4f4f4;color:#444;border-color:#ddd}.btn-default:hover,.btn-default:active,.btn-default.hover{background-color:#e7e7e7}.btn-primary{background-color:#3c8dbc;border-color:#367fa9}.btn-primary:hover,.btn-primary:active,.btn-primary.hover{background-color:#367fa9}.btn-success{background-color:#00a65a;border-color:#008d4c}.btn-success:hover,.btn-success:active,.btn-success.hover{background-color:#008d4c}.btn-info{background-color:#00c0ef;border-color:#00acd6}.btn-info:hover,.btn-info:active,.btn-info.hover{background-color:#00acd6}.btn-danger{background-color:#dd4b39;border-color:#d73925}.btn-danger:hover,.btn-danger:active,.btn-danger.hover{background-color:#d73925}.btn-warning{background-color:#f39c12;border-color:#e08e0b}.btn-warning:hover,.btn-warning:active,.btn-warning.hover{background-color:#e08e0b}.btn-outline{border:1px solid #fff;background:transparent;color:#fff}.btn-outline:hover,.btn-outline:focus,.btn-outline:active{color:rgba(255,255,255,0.7);border-color:rgba(255,255,255,0.7)}.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn[class*='bg-']:hover{-webkit-box-shadow:inset 0 0 100px rgba(0,0,0,0.2);box-shadow:inset 0 0 100px rgba(0,0,0,0.2)}.btn-app{border-radius:3px;position:relative;padding:15px 5px;margin:0 0 10px 10px;min-width:80px;height:60px;text-align:center;color:#666;border:1px solid #ddd;background-color:#f4f4f4;font-size:12px}.btn-app>.fa,.btn-app>.glyphicon,.btn-app>.ion{font-size:20px;display:block}.btn-app:hover{background:#f4f4f4;color:#444;border-color:#aaa}.btn-app:active,.btn-app:focus{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);-moz-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn-app>.badge{position:absolute;top:-3px;right:-10px;font-size:10px;font-weight:400}.callout{border-radius:3px;margin:0 0 20px 0;padding:15px 30px 15px 15px;border-left:5px solid #eee}.callout a{color:#fff;text-decoration:underline}.callout a:hover{color:#eee}.callout h4{margin-top:0;font-weight:600}.callout p:last-child{margin-bottom:0}.callout code,.callout .highlight{background-color:#fff}.callout.callout-danger{border-color:#c23321}.callout.callout-warning{border-color:#c87f0a}.callout.callout-info{border-color:#0097bc}.callout.callout-success{border-color:#00733e}.alert{border-radius:3px}.alert h4{font-weight:600}.alert .icon{margin-right:10px}.alert .close{color:#000;opacity:.2;filter:alpha(opacity=20)}.alert .close:hover{opacity:.5;filter:alpha(opacity=50)}.alert a{color:#fff;text-decoration:underline}.alert-success{border-color:#008d4c}.alert-danger,.alert-error{border-color:#d73925}.alert-warning{border-color:#e08e0b}.alert-info{border-color:#00acd6}.nav>li>a:hover,.nav>li>a:active,.nav>li>a:focus{color:#444;background:#f7f7f7}.nav-pills>li>a{border-radius:0;border-top:3px solid transparent;color:#444}.nav-pills>li>a>.fa,.nav-pills>li>a>.glyphicon,.nav-pills>li>a>.ion{margin-right:5px}.nav-pills>li.active>a,.nav-pills>li.active>a:hover,.nav-pills>li.active>a:focus{border-top-color:#3c8dbc}.nav-pills>li.active>a{font-weight:600}.nav-stacked>li>a{border-radius:0;border-top:0;border-left:3px solid transparent;color:#444}.nav-stacked>li.active>a,.nav-stacked>li.active>a:hover{background:transparent;color:#444;border-top:0;border-left-color:#3c8dbc}.nav-stacked>li.header{border-bottom:1px solid #ddd;color:#777;margin-bottom:10px;padding:5px 10px;text-transform:uppercase}.nav-tabs-custom{margin-bottom:20px;background:#fff;box-shadow:0 1px 1px rgba(0,0,0,0.1);border-radius:3px}.nav-tabs-custom>.nav-tabs{margin:0;border-bottom-color:#f4f4f4;border-top-right-radius:3px;border-top-left-radius:3px}.nav-tabs-custom>.nav-tabs>li{border-top:3px solid transparent;margin-bottom:-2px;margin-right:5px}.nav-tabs-custom>.nav-tabs>li.disabled>a{color:#777}.nav-tabs-custom>.nav-tabs>li>a{color:#444;border-radius:0}.nav-tabs-custom>.nav-tabs>li>a.text-muted{color:#999}.nav-tabs-custom>.nav-tabs>li>a,.nav-tabs-custom>.nav-tabs>li>a:hover{background:transparent;margin:0}.nav-tabs-custom>.nav-tabs>li>a:hover{color:#999}.nav-tabs-custom>.nav-tabs>li:not(.active)>a:hover,.nav-tabs-custom>.nav-tabs>li:not(.active)>a:focus,.nav-tabs-custom>.nav-tabs>li:not(.active)>a:active{border-color:transparent}.nav-tabs-custom>.nav-tabs>li.active{border-top-color:#3c8dbc}.nav-tabs-custom>.nav-tabs>li.active>a,.nav-tabs-custom>.nav-tabs>li.active:hover>a{background-color:#fff;color:#444}.nav-tabs-custom>.nav-tabs>li.active>a{border-top-color:transparent;border-left-color:#f4f4f4;border-right-color:#f4f4f4}.nav-tabs-custom>.nav-tabs>li:first-of-type{margin-left:0}.nav-tabs-custom>.nav-tabs>li:first-of-type.active>a{border-left-color:transparent}.nav-tabs-custom>.nav-tabs.pull-right{float:none !important}.nav-tabs-custom>.nav-tabs.pull-right>li{float:right}.nav-tabs-custom>.nav-tabs.pull-right>li:first-of-type{margin-right:0}.nav-tabs-custom>.nav-tabs.pull-right>li:first-of-type>a{border-left-width:1px}.nav-tabs-custom>.nav-tabs.pull-right>li:first-of-type.active>a{border-left-color:#f4f4f4;border-right-color:transparent}.nav-tabs-custom>.nav-tabs>li.header{line-height:35px;padding:0 10px;font-size:20px;color:#444}.nav-tabs-custom>.nav-tabs>li.header>.fa,.nav-tabs-custom>.nav-tabs>li.header>.glyphicon,.nav-tabs-custom>.nav-tabs>li.header>.ion{margin-right:5px}.nav-tabs-custom>.tab-content{background:#fff;padding:10px;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.nav-tabs-custom .dropdown.open>a:active,.nav-tabs-custom .dropdown.open>a:focus{background:transparent;color:#999}.nav-tabs-custom.tab-primary>.nav-tabs>li.active{border-top-color:#3c8dbc}.nav-tabs-custom.tab-info>.nav-tabs>li.active{border-top-color:#00c0ef}.nav-tabs-custom.tab-danger>.nav-tabs>li.active{border-top-color:#dd4b39}.nav-tabs-custom.tab-warning>.nav-tabs>li.active{border-top-color:#f39c12}.nav-tabs-custom.tab-success>.nav-tabs>li.active{border-top-color:#00a65a}.nav-tabs-custom.tab-default>.nav-tabs>li.active{border-top-color:#d2d6de}.pagination>li>a{background:#fafafa;color:#666}.pagination.pagination-flat>li>a{border-radius:0 !important}.products-list{list-style:none;margin:0;padding:0}.products-list>.item{border-radius:3px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,0.1);box-shadow:0 1px 1px rgba(0,0,0,0.1);padding:10px 0;background:#fff}.products-list>.item:before,.products-list>.item:after{content:" ";display:table}.products-list>.item:after{clear:both}.products-list .product-img{float:left}.products-list .product-img img{width:50px;height:50px}.products-list .product-info{margin-left:60px}.products-list .product-title{font-weight:600}.products-list .product-description{display:block;color:#999;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.product-list-in-box>.item{-webkit-box-shadow:none;box-shadow:none;border-radius:0;border-bottom:1px solid #f4f4f4}.product-list-in-box>.item:last-of-type{border-bottom-width:0}.table>thead>tr>th,.table>tbody>tr>th,.table>tfoot>tr>th,.table>thead>tr>td,.table>tbody>tr>td,.table>tfoot>tr>td{border-top:1px solid #f4f4f4}.table>thead>tr>th{border-bottom:2px solid #f4f4f4}.table tr td .progress{margin-top:5px}.table-bordered{border:1px solid #f4f4f4}.table-bordered>thead>tr>th,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>tbody>tr>td,.table-bordered>tfoot>tr>td{border:1px solid #f4f4f4}.table-bordered>thead>tr>th,.table-bordered>thead>tr>td{border-bottom-width:2px}.table.no-border,.table.no-border td,.table.no-border th{border:0}table.text-center,table.text-center td,table.text-center th{text-align:center}.table.align th{text-align:left}.table.align td{text-align:right}.label-default{background-color:#d2d6de;color:#444}.direct-chat .box-body{border-bottom-right-radius:0;border-bottom-left-radius:0;position:relative;overflow-x:hidden;padding:0}.direct-chat.chat-pane-open .direct-chat-contacts{-webkit-transform:translate(0, 0);-ms-transform:translate(0, 0);-o-transform:translate(0, 0);transform:translate(0, 0)}.direct-chat-messages{-webkit-transform:translate(0, 0);-ms-transform:translate(0, 0);-o-transform:translate(0, 0);transform:translate(0, 0);padding:10px;height:250px;overflow:auto}.direct-chat-msg,.direct-chat-text{display:block}.direct-chat-msg{margin-bottom:10px}.direct-chat-msg:before,.direct-chat-msg:after{content:" ";display:table}.direct-chat-msg:after{clear:both}.direct-chat-messages,.direct-chat-contacts{-webkit-transition:-webkit-transform .5s ease-in-out;-moz-transition:-moz-transform .5s ease-in-out;-o-transition:-o-transform .5s ease-in-out;transition:transform .5s ease-in-out}.direct-chat-text{border-radius:5px;position:relative;padding:5px 10px;background:#d2d6de;border:1px solid #d2d6de;margin:5px 0 0 50px;color:#444}.direct-chat-text:after,.direct-chat-text:before{position:absolute;right:100%;top:15px;border:solid transparent;border-right-color:#d2d6de;content:' ';height:0;width:0;pointer-events:none}.direct-chat-text:after{border-width:5px;margin-top:-5px}.direct-chat-text:before{border-width:6px;margin-top:-6px}.right .direct-chat-text{margin-right:50px;margin-left:0}.right .direct-chat-text:after,.right .direct-chat-text:before{right:auto;left:100%;border-right-color:transparent;border-left-color:#d2d6de}.direct-chat-img{border-radius:50%;float:left;width:40px;height:40px}.right .direct-chat-img{float:right}.direct-chat-info{display:block;margin-bottom:2px;font-size:12px}.direct-chat-name{font-weight:600}.direct-chat-timestamp{color:#999}.direct-chat-contacts-open .direct-chat-contacts{-webkit-transform:translate(0, 0);-ms-transform:translate(0, 0);-o-transform:translate(0, 0);transform:translate(0, 0)}.direct-chat-contacts{-webkit-transform:translate(101%, 0);-ms-transform:translate(101%, 0);-o-transform:translate(101%, 0);transform:translate(101%, 0);position:absolute;top:0;bottom:0;height:250px;width:100%;background:#222d32;color:#fff;overflow:auto}.contacts-list>li{border-bottom:1px solid rgba(0,0,0,0.2);padding:10px;margin:0}.contacts-list>li:before,.contacts-list>li:after{content:" ";display:table}.contacts-list>li:after{clear:both}.contacts-list>li:last-of-type{border-bottom:none}.contacts-list-img{border-radius:50%;width:40px;float:left}.contacts-list-info{margin-left:45px;color:#fff}.contacts-list-name,.contacts-list-status{display:block}.contacts-list-name{font-weight:600}.contacts-list-status{font-size:12px}.contacts-list-date{color:#aaa;font-weight:normal}.contacts-list-msg{color:#999}.direct-chat-danger .right>.direct-chat-text{background:#dd4b39;border-color:#dd4b39;color:#fff}.direct-chat-danger .right>.direct-chat-text:after,.direct-chat-danger .right>.direct-chat-text:before{border-left-color:#dd4b39}.direct-chat-primary .right>.direct-chat-text{background:#3c8dbc;border-color:#3c8dbc;color:#fff}.direct-chat-primary .right>.direct-chat-text:after,.direct-chat-primary .right>.direct-chat-text:before{border-left-color:#3c8dbc}.direct-chat-warning .right>.direct-chat-text{background:#f39c12;border-color:#f39c12;color:#fff}.direct-chat-warning .right>.direct-chat-text:after,.direct-chat-warning .right>.direct-chat-text:before{border-left-color:#f39c12}.direct-chat-info .right>.direct-chat-text{background:#00c0ef;border-color:#00c0ef;color:#fff}.direct-chat-info .right>.direct-chat-text:after,.direct-chat-info .right>.direct-chat-text:before{border-left-color:#00c0ef}.direct-chat-success .right>.direct-chat-text{background:#00a65a;border-color:#00a65a;color:#fff}.direct-chat-success .right>.direct-chat-text:after,.direct-chat-success .right>.direct-chat-text:before{border-left-color:#00a65a}.users-list>li{width:25%;float:left;padding:10px;text-align:center}.users-list>li img{border-radius:50%;max-width:100%;height:auto}.users-list>li>a:hover,.users-list>li>a:hover .users-list-name{color:#999}.users-list-name,.users-list-date{display:block}.users-list-name{font-weight:600;color:#444;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.users-list-date{color:#999;font-size:12px}.carousel-control.left,.carousel-control.right{background-image:none}.carousel-control>.fa{font-size:40px;position:absolute;top:50%;z-index:5;display:inline-block;margin-top:-20px}.modal{background:rgba(0,0,0,0.3)}.modal-content{border-radius:0;-webkit-box-shadow:0 2px 3px rgba(0,0,0,0.125);box-shadow:0 2px 3px rgba(0,0,0,0.125);border:0}@media (min-width:768px){.modal-content{-webkit-box-shadow:0 2px 3px rgba(0,0,0,0.125);box-shadow:0 2px 3px rgba(0,0,0,0.125)}}.modal-header{border-bottom-color:#f4f4f4}.modal-footer{border-top-color:#f4f4f4}.modal-primary .modal-header,.modal-primary .modal-footer{border-color:#307095}.modal-warning .modal-header,.modal-warning .modal-footer{border-color:#c87f0a}.modal-info .modal-header,.modal-info .modal-footer{border-color:#0097bc}.modal-success .modal-header,.modal-success .modal-footer{border-color:#00733e}.modal-danger .modal-header,.modal-danger .modal-footer{border-color:#c23321}.box-widget{border:none;position:relative}.widget-user .widget-user-header{padding:20px;height:120px;border-top-right-radius:3px;border-top-left-radius:3px}.widget-user .widget-user-username{margin-top:0;margin-bottom:5px;font-size:25px;font-weight:300;text-shadow:0 1px 1px rgba(0,0,0,0.2)}.widget-user .widget-user-desc{margin-top:0}.widget-user .widget-user-image{position:absolute;top:65px;left:50%;margin-left:-45px}.widget-user .widget-user-image>img{width:90px;height:auto;border:3px solid #fff}.widget-user .box-footer{padding-top:30px}.widget-user-2 .widget-user-header{padding:20px;border-top-right-radius:3px;border-top-left-radius:3px}.widget-user-2 .widget-user-username{margin-top:5px;margin-bottom:5px;font-size:25px;font-weight:300}.widget-user-2 .widget-user-desc{margin-top:0}.widget-user-2 .widget-user-username,.widget-user-2 .widget-user-desc{margin-left:75px}.widget-user-2 .widget-user-image>img{width:65px;height:auto;float:left}.treeview-menu{display:none;list-style:none;padding:0;margin:0;padding-left:5px}.treeview-menu .treeview-menu{padding-left:20px}.treeview-menu>li{margin:0}.treeview-menu>li>a{padding:5px 5px 5px 15px;display:block;font-size:14px}.treeview-menu>li>a>.fa,.treeview-menu>li>a>.glyphicon,.treeview-menu>li>a>.ion{width:20px}.treeview-menu>li>a>.pull-right-container>.fa-angle-left,.treeview-menu>li>a>.pull-right-container>.fa-angle-down,.treeview-menu>li>a>.fa-angle-left,.treeview-menu>li>a>.fa-angle-down{width:auto}.mailbox-messages>.table{margin:0}.mailbox-controls{padding:5px}.mailbox-controls.with-border{border-bottom:1px solid #f4f4f4}.mailbox-read-info{border-bottom:1px solid #f4f4f4;padding:10px}.mailbox-read-info h3{font-size:20px;margin:0}.mailbox-read-info h5{margin:0;padding:5px 0 0 0}.mailbox-read-time{color:#999;font-size:13px}.mailbox-read-message{padding:10px}.mailbox-attachments li{float:left;width:200px;border:1px solid #eee;margin-bottom:10px;margin-right:10px}.mailbox-attachment-name{font-weight:bold;color:#666}.mailbox-attachment-icon,.mailbox-attachment-info,.mailbox-attachment-size{display:block}.mailbox-attachment-info{padding:10px;background:#f4f4f4}.mailbox-attachment-size{color:#999;font-size:12px}.mailbox-attachment-icon{text-align:center;font-size:65px;color:#666;padding:20px 10px}.mailbox-attachment-icon.has-img{padding:0}.mailbox-attachment-icon.has-img>img{max-width:100%;height:auto}.lockscreen{background:#d2d6de}.lockscreen-logo{font-size:35px;text-align:center;margin-bottom:25px;font-weight:300}.lockscreen-logo a{color:#444}.lockscreen-wrapper{max-width:400px;margin:0 auto;margin-top:10%}.lockscreen .lockscreen-name{text-align:center;font-weight:600}.lockscreen-item{border-radius:4px;padding:0;background:#fff;position:relative;margin:10px auto 30px auto;width:290px}.lockscreen-image{border-radius:50%;position:absolute;left:-10px;top:-25px;background:#fff;padding:5px;z-index:10}.lockscreen-image>img{border-radius:50%;width:70px;height:70px}.lockscreen-credentials{margin-left:70px}.lockscreen-credentials .form-control{border:0}.lockscreen-credentials .btn{background-color:#fff;border:0;padding:0 10px}.lockscreen-footer{margin-top:10px}.login-logo,.register-logo{font-size:35px;text-align:center;margin-bottom:25px;font-weight:300}.login-logo a,.register-logo a{color:#444}.login-page,.register-page{background:#d2d6de}.login-box,.register-box{width:360px;margin:7% auto}@media (max-width:768px){.login-box,.register-box{width:90%;margin-top:20px}}.login-box-body,.register-box-body{background:#fff;padding:20px;border-top:0;color:#666}.login-box-body .form-control-feedback,.register-box-body .form-control-feedback{color:#777}.login-box-msg,.register-box-msg{margin:0;text-align:center;padding:0 20px 20px 20px}.social-auth-links{margin:10px 0}.error-page{width:600px;margin:20px auto 0 auto}@media (max-width:991px){.error-page{width:100%}}.error-page>.headline{float:left;font-size:100px;font-weight:300}@media (max-width:991px){.error-page>.headline{float:none;text-align:center}}.error-page>.error-content{margin-left:190px;display:block}@media (max-width:991px){.error-page>.error-content{margin-left:0}}.error-page>.error-content>h3{font-weight:300;font-size:25px}@media (max-width:991px){.error-page>.error-content>h3{text-align:center}}.invoice{position:relative;background:#fff;border:1px solid #f4f4f4;padding:20px;margin:10px 25px}.invoice-title{margin-top:0}.profile-user-img{margin:0 auto;width:100px;padding:3px;border:3px solid #d2d6de}.profile-username{font-size:21px;margin-top:5px}.post{border-bottom:1px solid #d2d6de;margin-bottom:15px;padding-bottom:15px;color:#666}.post:last-of-type{border-bottom:0;margin-bottom:0;padding-bottom:0}.post .user-block{margin-bottom:15px}.btn-social{position:relative;padding-left:44px;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.btn-social>:first-child{position:absolute;left:0;top:0;bottom:0;width:32px;line-height:34px;font-size:1.6em;text-align:center;border-right:1px solid rgba(0,0,0,0.2)}.btn-social.btn-lg{padding-left:61px}.btn-social.btn-lg>:first-child{line-height:45px;width:45px;font-size:1.8em}.btn-social.btn-sm{padding-left:38px}.btn-social.btn-sm>:first-child{line-height:28px;width:28px;font-size:1.4em}.btn-social.btn-xs{padding-left:30px}.btn-social.btn-xs>:first-child{line-height:20px;width:20px;font-size:1.2em}.btn-social-icon{position:relative;padding-left:44px;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;height:34px;width:34px;padding:0}.btn-social-icon>:first-child{position:absolute;left:0;top:0;bottom:0;width:32px;line-height:34px;font-size:1.6em;text-align:center;border-right:1px solid rgba(0,0,0,0.2)}.btn-social-icon.btn-lg{padding-left:61px}.btn-social-icon.btn-lg>:first-child{line-height:45px;width:45px;font-size:1.8em}.btn-social-icon.btn-sm{padding-left:38px}.btn-social-icon.btn-sm>:first-child{line-height:28px;width:28px;font-size:1.4em}.btn-social-icon.btn-xs{padding-left:30px}.btn-social-icon.btn-xs>:first-child{line-height:20px;width:20px;font-size:1.2em}.btn-social-icon>:first-child{border:none;text-align:center;width:100%}.btn-social-icon.btn-lg{height:45px;width:45px;padding-left:0;padding-right:0}.btn-social-icon.btn-sm{height:30px;width:30px;padding-left:0;padding-right:0}.btn-social-icon.btn-xs{height:22px;width:22px;padding-left:0;padding-right:0}.btn-adn{color:#fff;background-color:#d87a68;border-color:rgba(0,0,0,0.2)}.btn-adn:focus,.btn-adn.focus{color:#fff;background-color:#ce563f;border-color:rgba(0,0,0,0.2)}.btn-adn:hover{color:#fff;background-color:#ce563f;border-color:rgba(0,0,0,0.2)}.btn-adn:active,.btn-adn.active,.open>.dropdown-toggle.btn-adn{color:#fff;background-color:#ce563f;border-color:rgba(0,0,0,0.2)}.btn-adn:active,.btn-adn.active,.open>.dropdown-toggle.btn-adn{background-image:none}.btn-adn .badge{color:#d87a68;background-color:#fff}.btn-bitbucket{color:#fff;background-color:#205081;border-color:rgba(0,0,0,0.2)}.btn-bitbucket:focus,.btn-bitbucket.focus{color:#fff;background-color:#163758;border-color:rgba(0,0,0,0.2)}.btn-bitbucket:hover{color:#fff;background-color:#163758;border-color:rgba(0,0,0,0.2)}.btn-bitbucket:active,.btn-bitbucket.active,.open>.dropdown-toggle.btn-bitbucket{color:#fff;background-color:#163758;border-color:rgba(0,0,0,0.2)}.btn-bitbucket:active,.btn-bitbucket.active,.open>.dropdown-toggle.btn-bitbucket{background-image:none}.btn-bitbucket .badge{color:#205081;background-color:#fff}.btn-dropbox{color:#fff;background-color:#1087dd;border-color:rgba(0,0,0,0.2)}.btn-dropbox:focus,.btn-dropbox.focus{color:#fff;background-color:#0d6aad;border-color:rgba(0,0,0,0.2)}.btn-dropbox:hover{color:#fff;background-color:#0d6aad;border-color:rgba(0,0,0,0.2)}.btn-dropbox:active,.btn-dropbox.active,.open>.dropdown-toggle.btn-dropbox{color:#fff;background-color:#0d6aad;border-color:rgba(0,0,0,0.2)}.btn-dropbox:active,.btn-dropbox.active,.open>.dropdown-toggle.btn-dropbox{background-image:none}.btn-dropbox .badge{color:#1087dd;background-color:#fff}.btn-facebook{color:#fff;background-color:#3b5998;border-color:rgba(0,0,0,0.2)}.btn-facebook:focus,.btn-facebook.focus{color:#fff;background-color:#2d4373;border-color:rgba(0,0,0,0.2)}.btn-facebook:hover{color:#fff;background-color:#2d4373;border-color:rgba(0,0,0,0.2)}.btn-facebook:active,.btn-facebook.active,.open>.dropdown-toggle.btn-facebook{color:#fff;background-color:#2d4373;border-color:rgba(0,0,0,0.2)}.btn-facebook:active,.btn-facebook.active,.open>.dropdown-toggle.btn-facebook{background-image:none}.btn-facebook .badge{color:#3b5998;background-color:#fff}.btn-flickr{color:#fff;background-color:#ff0084;border-color:rgba(0,0,0,0.2)}.btn-flickr:focus,.btn-flickr.focus{color:#fff;background-color:#cc006a;border-color:rgba(0,0,0,0.2)}.btn-flickr:hover{color:#fff;background-color:#cc006a;border-color:rgba(0,0,0,0.2)}.btn-flickr:active,.btn-flickr.active,.open>.dropdown-toggle.btn-flickr{color:#fff;background-color:#cc006a;border-color:rgba(0,0,0,0.2)}.btn-flickr:active,.btn-flickr.active,.open>.dropdown-toggle.btn-flickr{background-image:none}.btn-flickr .badge{color:#ff0084;background-color:#fff}.btn-foursquare{color:#fff;background-color:#f94877;border-color:rgba(0,0,0,0.2)}.btn-foursquare:focus,.btn-foursquare.focus{color:#fff;background-color:#f71752;border-color:rgba(0,0,0,0.2)}.btn-foursquare:hover{color:#fff;background-color:#f71752;border-color:rgba(0,0,0,0.2)}.btn-foursquare:active,.btn-foursquare.active,.open>.dropdown-toggle.btn-foursquare{color:#fff;background-color:#f71752;border-color:rgba(0,0,0,0.2)}.btn-foursquare:active,.btn-foursquare.active,.open>.dropdown-toggle.btn-foursquare{background-image:none}.btn-foursquare .badge{color:#f94877;background-color:#fff}.btn-github{color:#fff;background-color:#444;border-color:rgba(0,0,0,0.2)}.btn-github:focus,.btn-github.focus{color:#fff;background-color:#2b2b2b;border-color:rgba(0,0,0,0.2)}.btn-github:hover{color:#fff;background-color:#2b2b2b;border-color:rgba(0,0,0,0.2)}.btn-github:active,.btn-github.active,.open>.dropdown-toggle.btn-github{color:#fff;background-color:#2b2b2b;border-color:rgba(0,0,0,0.2)}.btn-github:active,.btn-github.active,.open>.dropdown-toggle.btn-github{background-image:none}.btn-github .badge{color:#444;background-color:#fff}.btn-google{color:#fff;background-color:#dd4b39;border-color:rgba(0,0,0,0.2)}.btn-google:focus,.btn-google.focus{color:#fff;background-color:#c23321;border-color:rgba(0,0,0,0.2)}.btn-google:hover{color:#fff;background-color:#c23321;border-color:rgba(0,0,0,0.2)}.btn-google:active,.btn-google.active,.open>.dropdown-toggle.btn-google{color:#fff;background-color:#c23321;border-color:rgba(0,0,0,0.2)}.btn-google:active,.btn-google.active,.open>.dropdown-toggle.btn-google{background-image:none}.btn-google .badge{color:#dd4b39;background-color:#fff}.btn-instagram{color:#fff;background-color:#3f729b;border-color:rgba(0,0,0,0.2)}.btn-instagram:focus,.btn-instagram.focus{color:#fff;background-color:#305777;border-color:rgba(0,0,0,0.2)}.btn-instagram:hover{color:#fff;background-color:#305777;border-color:rgba(0,0,0,0.2)}.btn-instagram:active,.btn-instagram.active,.open>.dropdown-toggle.btn-instagram{color:#fff;background-color:#305777;border-color:rgba(0,0,0,0.2)}.btn-instagram:active,.btn-instagram.active,.open>.dropdown-toggle.btn-instagram{background-image:none}.btn-instagram .badge{color:#3f729b;background-color:#fff}.btn-linkedin{color:#fff;background-color:#007bb6;border-color:rgba(0,0,0,0.2)}.btn-linkedin:focus,.btn-linkedin.focus{color:#fff;background-color:#005983;border-color:rgba(0,0,0,0.2)}.btn-linkedin:hover{color:#fff;background-color:#005983;border-color:rgba(0,0,0,0.2)}.btn-linkedin:active,.btn-linkedin.active,.open>.dropdown-toggle.btn-linkedin{color:#fff;background-color:#005983;border-color:rgba(0,0,0,0.2)}.btn-linkedin:active,.btn-linkedin.active,.open>.dropdown-toggle.btn-linkedin{background-image:none}.btn-linkedin .badge{color:#007bb6;background-color:#fff}.btn-microsoft{color:#fff;background-color:#2672ec;border-color:rgba(0,0,0,0.2)}.btn-microsoft:focus,.btn-microsoft.focus{color:#fff;background-color:#125acd;border-color:rgba(0,0,0,0.2)}.btn-microsoft:hover{color:#fff;background-color:#125acd;border-color:rgba(0,0,0,0.2)}.btn-microsoft:active,.btn-microsoft.active,.open>.dropdown-toggle.btn-microsoft{color:#fff;background-color:#125acd;border-color:rgba(0,0,0,0.2)}.btn-microsoft:active,.btn-microsoft.active,.open>.dropdown-toggle.btn-microsoft{background-image:none}.btn-microsoft .badge{color:#2672ec;background-color:#fff}.btn-openid{color:#fff;background-color:#f7931e;border-color:rgba(0,0,0,0.2)}.btn-openid:focus,.btn-openid.focus{color:#fff;background-color:#da7908;border-color:rgba(0,0,0,0.2)}.btn-openid:hover{color:#fff;background-color:#da7908;border-color:rgba(0,0,0,0.2)}.btn-openid:active,.btn-openid.active,.open>.dropdown-toggle.btn-openid{color:#fff;background-color:#da7908;border-color:rgba(0,0,0,0.2)}.btn-openid:active,.btn-openid.active,.open>.dropdown-toggle.btn-openid{background-image:none}.btn-openid .badge{color:#f7931e;background-color:#fff}.btn-pinterest{color:#fff;background-color:#cb2027;border-color:rgba(0,0,0,0.2)}.btn-pinterest:focus,.btn-pinterest.focus{color:#fff;background-color:#9f191f;border-color:rgba(0,0,0,0.2)}.btn-pinterest:hover{color:#fff;background-color:#9f191f;border-color:rgba(0,0,0,0.2)}.btn-pinterest:active,.btn-pinterest.active,.open>.dropdown-toggle.btn-pinterest{color:#fff;background-color:#9f191f;border-color:rgba(0,0,0,0.2)}.btn-pinterest:active,.btn-pinterest.active,.open>.dropdown-toggle.btn-pinterest{background-image:none}.btn-pinterest .badge{color:#cb2027;background-color:#fff}.btn-reddit{color:#000;background-color:#eff7ff;border-color:rgba(0,0,0,0.2)}.btn-reddit:focus,.btn-reddit.focus{color:#000;background-color:#bcddff;border-color:rgba(0,0,0,0.2)}.btn-reddit:hover{color:#000;background-color:#bcddff;border-color:rgba(0,0,0,0.2)}.btn-reddit:active,.btn-reddit.active,.open>.dropdown-toggle.btn-reddit{color:#000;background-color:#bcddff;border-color:rgba(0,0,0,0.2)}.btn-reddit:active,.btn-reddit.active,.open>.dropdown-toggle.btn-reddit{background-image:none}.btn-reddit .badge{color:#eff7ff;background-color:#000}.btn-soundcloud{color:#fff;background-color:#f50;border-color:rgba(0,0,0,0.2)}.btn-soundcloud:focus,.btn-soundcloud.focus{color:#fff;background-color:#c40;border-color:rgba(0,0,0,0.2)}.btn-soundcloud:hover{color:#fff;background-color:#c40;border-color:rgba(0,0,0,0.2)}.btn-soundcloud:active,.btn-soundcloud.active,.open>.dropdown-toggle.btn-soundcloud{color:#fff;background-color:#c40;border-color:rgba(0,0,0,0.2)}.btn-soundcloud:active,.btn-soundcloud.active,.open>.dropdown-toggle.btn-soundcloud{background-image:none}.btn-soundcloud .badge{color:#f50;background-color:#fff}.btn-tumblr{color:#fff;background-color:#2c4762;border-color:rgba(0,0,0,0.2)}.btn-tumblr:focus,.btn-tumblr.focus{color:#fff;background-color:#1c2d3f;border-color:rgba(0,0,0,0.2)}.btn-tumblr:hover{color:#fff;background-color:#1c2d3f;border-color:rgba(0,0,0,0.2)}.btn-tumblr:active,.btn-tumblr.active,.open>.dropdown-toggle.btn-tumblr{color:#fff;background-color:#1c2d3f;border-color:rgba(0,0,0,0.2)}.btn-tumblr:active,.btn-tumblr.active,.open>.dropdown-toggle.btn-tumblr{background-image:none}.btn-tumblr .badge{color:#2c4762;background-color:#fff}.btn-twitter{color:#fff;background-color:#55acee;border-color:rgba(0,0,0,0.2)}.btn-twitter:focus,.btn-twitter.focus{color:#fff;background-color:#2795e9;border-color:rgba(0,0,0,0.2)}.btn-twitter:hover{color:#fff;background-color:#2795e9;border-color:rgba(0,0,0,0.2)}.btn-twitter:active,.btn-twitter.active,.open>.dropdown-toggle.btn-twitter{color:#fff;background-color:#2795e9;border-color:rgba(0,0,0,0.2)}.btn-twitter:active,.btn-twitter.active,.open>.dropdown-toggle.btn-twitter{background-image:none}.btn-twitter .badge{color:#55acee;background-color:#fff}.btn-vimeo{color:#fff;background-color:#1ab7ea;border-color:rgba(0,0,0,0.2)}.btn-vimeo:focus,.btn-vimeo.focus{color:#fff;background-color:#1295bf;border-color:rgba(0,0,0,0.2)}.btn-vimeo:hover{color:#fff;background-color:#1295bf;border-color:rgba(0,0,0,0.2)}.btn-vimeo:active,.btn-vimeo.active,.open>.dropdown-toggle.btn-vimeo{color:#fff;background-color:#1295bf;border-color:rgba(0,0,0,0.2)}.btn-vimeo:active,.btn-vimeo.active,.open>.dropdown-toggle.btn-vimeo{background-image:none}.btn-vimeo .badge{color:#1ab7ea;background-color:#fff}.btn-vk{color:#fff;background-color:#587ea3;border-color:rgba(0,0,0,0.2)}.btn-vk:focus,.btn-vk.focus{color:#fff;background-color:#466482;border-color:rgba(0,0,0,0.2)}.btn-vk:hover{color:#fff;background-color:#466482;border-color:rgba(0,0,0,0.2)}.btn-vk:active,.btn-vk.active,.open>.dropdown-toggle.btn-vk{color:#fff;background-color:#466482;border-color:rgba(0,0,0,0.2)}.btn-vk:active,.btn-vk.active,.open>.dropdown-toggle.btn-vk{background-image:none}.btn-vk .badge{color:#587ea3;background-color:#fff}.btn-yahoo{color:#fff;background-color:#720e9e;border-color:rgba(0,0,0,0.2)}.btn-yahoo:focus,.btn-yahoo.focus{color:#fff;background-color:#500a6f;border-color:rgba(0,0,0,0.2)}.btn-yahoo:hover{color:#fff;background-color:#500a6f;border-color:rgba(0,0,0,0.2)}.btn-yahoo:active,.btn-yahoo.active,.open>.dropdown-toggle.btn-yahoo{color:#fff;background-color:#500a6f;border-color:rgba(0,0,0,0.2)}.btn-yahoo:active,.btn-yahoo.active,.open>.dropdown-toggle.btn-yahoo{background-image:none}.btn-yahoo .badge{color:#720e9e;background-color:#fff}.fc-button{background:#f4f4f4;background-image:none;color:#444;border-color:#ddd;border-bottom-color:#ddd}.fc-button:hover,.fc-button:active,.fc-button.hover{background-color:#e9e9e9}.fc-header-title h2{font-size:15px;line-height:1.6em;color:#666;margin-left:10px}.fc-header-right{padding-right:10px}.fc-header-left{padding-left:10px}.fc-widget-header{background:#fafafa}.fc-grid{width:100%;border:0}.fc-widget-header:first-of-type,.fc-widget-content:first-of-type{border-left:0;border-right:0}.fc-widget-header:last-of-type,.fc-widget-content:last-of-type{border-right:0}.fc-toolbar{padding:10px;margin:0}.fc-day-number{font-size:20px;font-weight:300;padding-right:10px}.fc-color-picker{list-style:none;margin:0;padding:0}.fc-color-picker>li{float:left;font-size:30px;margin-right:5px;line-height:30px}.fc-color-picker>li .fa{-webkit-transition:-webkit-transform linear .3s;-moz-transition:-moz-transform linear .3s;-o-transition:-o-transform linear .3s;transition:transform linear .3s}.fc-color-picker>li .fa:hover{-webkit-transform:rotate(30deg);-ms-transform:rotate(30deg);-o-transform:rotate(30deg);transform:rotate(30deg)}#add-new-event{-webkit-transition:all linear .3s;-o-transition:all linear .3s;transition:all linear .3s}.external-event{padding:5px 10px;font-weight:bold;margin-bottom:4px;box-shadow:0 1px 1px rgba(0,0,0,0.1);text-shadow:0 1px 1px rgba(0,0,0,0.1);border-radius:3px;cursor:move}.external-event:hover{box-shadow:inset 0 0 90px rgba(0,0,0,0.2)}.select2-container--default.select2-container--focus,.select2-selection.select2-container--focus,.select2-container--default:focus,.select2-selection:focus,.select2-container--default:active,.select2-selection:active{outline:none}.select2-container--default .select2-selection--single,.select2-selection .select2-selection--single{border:1px solid #d2d6de;border-radius:0;padding:6px 12px;height:34px}.select2-container--default.select2-container--open{border-color:#3c8dbc}.select2-dropdown{border:1px solid #d2d6de;border-radius:0}.select2-container--default .select2-results__option--highlighted[aria-selected]{background-color:#3c8dbc;color:white}.select2-results__option{padding:6px 12px;user-select:none;-webkit-user-select:none}.select2-container .select2-selection--single .select2-selection__rendered{padding-left:0;padding-right:0;height:auto;margin-top:-4px}.select2-container[dir="rtl"] .select2-selection--single .select2-selection__rendered{padding-right:6px;padding-left:20px}.select2-container--default .select2-selection--single .select2-selection__arrow{height:28px;right:3px}.select2-container--default .select2-selection--single .select2-selection__arrow b{margin-top:0}.select2-dropdown .select2-search__field,.select2-search--inline .select2-search__field{border:1px solid #d2d6de}.select2-dropdown .select2-search__field:focus,.select2-search--inline .select2-search__field:focus{outline:none}.select2-container--default.select2-container--focus .select2-selection--multiple,.select2-container--default .select2-search--dropdown .select2-search__field{border-color:#3c8dbc !important}.select2-container--default .select2-results__option[aria-disabled=true]{color:#999}.select2-container--default .select2-results__option[aria-selected=true]{background-color:#ddd}.select2-container--default .select2-results__option[aria-selected=true],.select2-container--default .select2-results__option[aria-selected=true]:hover{color:#444}.select2-container--default .select2-selection--multiple{border:1px solid #d2d6de;border-radius:0}.select2-container--default .select2-selection--multiple:focus{border-color:#3c8dbc}.select2-container--default.select2-container--focus .select2-selection--multiple{border-color:#d2d6de}.select2-container--default .select2-selection--multiple .select2-selection__choice{background-color:#3c8dbc;border-color:#367fa9;padding:1px 10px;color:#fff}.select2-container--default .select2-selection--multiple .select2-selection__choice__remove{margin-right:5px;color:rgba(255,255,255,0.7)}.select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover{color:#fff}.select2-container .select2-selection--single .select2-selection__rendered{padding-right:10px}.box .datepicker-inline,.box .datepicker-inline .datepicker-days,.box .datepicker-inline>table,.box .datepicker-inline .datepicker-days>table{width:100%}.box .datepicker-inline td:hover,.box .datepicker-inline .datepicker-days td:hover,.box .datepicker-inline>table td:hover,.box .datepicker-inline .datepicker-days>table td:hover{background-color:rgba(255,255,255,0.3)}.box .datepicker-inline td.day.old,.box .datepicker-inline .datepicker-days td.day.old,.box .datepicker-inline>table td.day.old,.box .datepicker-inline .datepicker-days>table td.day.old,.box .datepicker-inline td.day.new,.box .datepicker-inline .datepicker-days td.day.new,.box .datepicker-inline>table td.day.new,.box .datepicker-inline .datepicker-days>table td.day.new{color:#777}.pad{padding:10px}.margin{margin:10px}.margin-bottom{margin-bottom:20px}.margin-bottom-none{margin-bottom:0}.margin-r-5{margin-right:5px}.inline{display:inline}.description-block{display:block;margin:10px 0;text-align:center}.description-block.margin-bottom{margin-bottom:25px}.description-block>.description-header{margin:0;padding:0;font-weight:600;font-size:16px}.description-block>.description-text{text-transform:uppercase}.bg-red,.bg-yellow,.bg-aqua,.bg-blue,.bg-light-blue,.bg-green,.bg-navy,.bg-teal,.bg-olive,.bg-lime,.bg-orange,.bg-fuchsia,.bg-purple,.bg-maroon,.bg-black,.bg-red-active,.bg-yellow-active,.bg-aqua-active,.bg-blue-active,.bg-light-blue-active,.bg-green-active,.bg-navy-active,.bg-teal-active,.bg-olive-active,.bg-lime-active,.bg-orange-active,.bg-fuchsia-active,.bg-purple-active,.bg-maroon-active,.bg-black-active,.callout.callout-danger,.callout.callout-warning,.callout.callout-info,.callout.callout-success,.alert-success,.alert-danger,.alert-error,.alert-warning,.alert-info,.label-danger,.label-info,.label-warning,.label-primary,.label-success,.modal-primary .modal-body,.modal-primary .modal-header,.modal-primary .modal-footer,.modal-warning .modal-body,.modal-warning .modal-header,.modal-warning .modal-footer,.modal-info .modal-body,.modal-info .modal-header,.modal-info .modal-footer,.modal-success .modal-body,.modal-success .modal-header,.modal-success .modal-footer,.modal-danger .modal-body,.modal-danger .modal-header,.modal-danger .modal-footer{color:#fff !important}.bg-gray{color:#000;background-color:#d2d6de !important}.bg-gray-light{background-color:#f7f7f7}.bg-black{background-color:#111 !important}.bg-red,.callout.callout-danger,.alert-danger,.alert-error,.label-danger,.modal-danger .modal-body{background-color:#dd4b39 !important}.bg-yellow,.callout.callout-warning,.alert-warning,.label-warning,.modal-warning .modal-body{background-color:#f39c12 !important}.bg-aqua,.callout.callout-info,.alert-info,.label-info,.modal-info .modal-body{background-color:#00c0ef !important}.bg-blue{background-color:#0073b7 !important}.bg-light-blue,.label-primary,.modal-primary .modal-body{background-color:#3c8dbc !important}.bg-green,.callout.callout-success,.alert-success,.label-success,.modal-success .modal-body{background-color:#00a65a !important}.bg-navy{background-color:#001f3f !important}.bg-teal{background-color:#39cccc !important}.bg-olive{background-color:#3d9970 !important}.bg-lime{background-color:#01ff70 !important}.bg-orange{background-color:#ff851b !important}.bg-fuchsia{background-color:#f012be !important}.bg-purple{background-color:#605ca8 !important}.bg-maroon{background-color:#d81b60 !important}.bg-gray-active{color:#000;background-color:#b5bbc8 !important}.bg-black-active{background-color:#000 !important}.bg-red-active,.modal-danger .modal-header,.modal-danger .modal-footer{background-color:#d33724 !important}.bg-yellow-active,.modal-warning .modal-header,.modal-warning .modal-footer{background-color:#db8b0b !important}.bg-aqua-active,.modal-info .modal-header,.modal-info .modal-footer{background-color:#00a7d0 !important}.bg-blue-active{background-color:#005384 !important}.bg-light-blue-active,.modal-primary .modal-header,.modal-primary .modal-footer{background-color:#357ca5 !important}.bg-green-active,.modal-success .modal-header,.modal-success .modal-footer{background-color:#008d4c !important}.bg-navy-active{background-color:#001a35 !important}.bg-teal-active{background-color:#30bbbb !important}.bg-olive-active{background-color:#368763 !important}.bg-lime-active{background-color:#00e765 !important}.bg-orange-active{background-color:#ff7701 !important}.bg-fuchsia-active{background-color:#db0ead !important}.bg-purple-active{background-color:#555299 !important}.bg-maroon-active{background-color:#ca195a !important}[class^="bg-"].disabled{opacity:.65;filter:alpha(opacity=65)}.text-red{color:#dd4b39 !important}.text-yellow{color:#f39c12 !important}.text-aqua{color:#00c0ef !important}.text-blue{color:#0073b7 !important}.text-black{color:#111 !important}.text-light-blue{color:#3c8dbc !important}.text-green{color:#00a65a !important}.text-gray{color:#d2d6de !important}.text-navy{color:#001f3f !important}.text-teal{color:#39cccc !important}.text-olive{color:#3d9970 !important}.text-lime{color:#01ff70 !important}.text-orange{color:#ff851b !important}.text-fuchsia{color:#f012be !important}.text-purple{color:#605ca8 !important}.text-maroon{color:#d81b60 !important}.link-muted{color:#7a869d}.link-muted:hover,.link-muted:focus{color:#606c84}.link-black{color:#666}.link-black:hover,.link-black:focus{color:#999}.hide{display:none !important}.no-border{border:0 !important}.no-padding{padding:0 !important}.no-margin{margin:0 !important}.no-shadow{box-shadow:none !important}.list-unstyled,.chart-legend,.contacts-list,.users-list,.mailbox-attachments{list-style:none;margin:0;padding:0}.list-group-unbordered>.list-group-item{border-left:0;border-right:0;border-radius:0;padding-left:0;padding-right:0}.flat{border-radius:0 !important}.text-bold,.text-bold.table td,.text-bold.table th{font-weight:700}.text-sm{font-size:12px}.jqstooltip{padding:5px !important;width:auto !important;height:auto !important}.bg-teal-gradient{background:#39cccc !important;background:-webkit-gradient(linear, left bottom, left top, color-stop(0, #39cccc), color-stop(1, #7adddd)) !important;background:-ms-linear-gradient(bottom, #39cccc, #7adddd) !important;background:-moz-linear-gradient(center bottom, #39cccc 0, #7adddd 100%) !important;background:-o-linear-gradient(#7adddd, #39cccc) !important;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#7adddd', endColorstr='#39cccc', GradientType=0) !important;color:#fff}.bg-light-blue-gradient{background:#3c8dbc !important;background:-webkit-gradient(linear, left bottom, left top, color-stop(0, #3c8dbc), color-stop(1, #67a8ce)) !important;background:-ms-linear-gradient(bottom, #3c8dbc, #67a8ce) !important;background:-moz-linear-gradient(center bottom, #3c8dbc 0, #67a8ce 100%) !important;background:-o-linear-gradient(#67a8ce, #3c8dbc) !important;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#67a8ce', endColorstr='#3c8dbc', GradientType=0) !important;color:#fff}.bg-blue-gradient{background:#0073b7 !important;background:-webkit-gradient(linear, left bottom, left top, color-stop(0, #0073b7), color-stop(1, #0089db)) !important;background:-ms-linear-gradient(bottom, #0073b7, #0089db) !important;background:-moz-linear-gradient(center bottom, #0073b7 0, #0089db 100%) !important;background:-o-linear-gradient(#0089db, #0073b7) !important;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#0089db', endColorstr='#0073b7', GradientType=0) !important;color:#fff}.bg-aqua-gradient{background:#00c0ef !important;background:-webkit-gradient(linear, left bottom, left top, color-stop(0, #00c0ef), color-stop(1, #14d1ff)) !important;background:-ms-linear-gradient(bottom, #00c0ef, #14d1ff) !important;background:-moz-linear-gradient(center bottom, #00c0ef 0, #14d1ff 100%) !important;background:-o-linear-gradient(#14d1ff, #00c0ef) !important;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#14d1ff', endColorstr='#00c0ef', GradientType=0) !important;color:#fff}.bg-yellow-gradient{background:#f39c12 !important;background:-webkit-gradient(linear, left bottom, left top, color-stop(0, #f39c12), color-stop(1, #f7bc60)) !important;background:-ms-linear-gradient(bottom, #f39c12, #f7bc60) !important;background:-moz-linear-gradient(center bottom, #f39c12 0, #f7bc60 100%) !important;background:-o-linear-gradient(#f7bc60, #f39c12) !important;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#f7bc60', endColorstr='#f39c12', GradientType=0) !important;color:#fff}.bg-purple-gradient{background:#605ca8 !important;background:-webkit-gradient(linear, left bottom, left top, color-stop(0, #605ca8), color-stop(1, #9491c4)) !important;background:-ms-linear-gradient(bottom, #605ca8, #9491c4) !important;background:-moz-linear-gradient(center bottom, #605ca8 0, #9491c4 100%) !important;background:-o-linear-gradient(#9491c4, #605ca8) !important;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#9491c4', endColorstr='#605ca8', GradientType=0) !important;color:#fff}.bg-green-gradient{background:#00a65a !important;background:-webkit-gradient(linear, left bottom, left top, color-stop(0, #00a65a), color-stop(1, #00ca6d)) !important;background:-ms-linear-gradient(bottom, #00a65a, #00ca6d) !important;background:-moz-linear-gradient(center bottom, #00a65a 0, #00ca6d 100%) !important;background:-o-linear-gradient(#00ca6d, #00a65a) !important;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00ca6d', endColorstr='#00a65a', GradientType=0) !important;color:#fff}.bg-red-gradient{background:#dd4b39 !important;background:-webkit-gradient(linear, left bottom, left top, color-stop(0, #dd4b39), color-stop(1, #e47365)) !important;background:-ms-linear-gradient(bottom, #dd4b39, #e47365) !important;background:-moz-linear-gradient(center bottom, #dd4b39 0, #e47365 100%) !important;background:-o-linear-gradient(#e47365, #dd4b39) !important;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#e47365', endColorstr='#dd4b39', GradientType=0) !important;color:#fff}.bg-black-gradient{background:#111 !important;background:-webkit-gradient(linear, left bottom, left top, color-stop(0, #111), color-stop(1, #2b2b2b)) !important;background:-ms-linear-gradient(bottom, #111, #2b2b2b) !important;background:-moz-linear-gradient(center bottom, #111 0, #2b2b2b 100%) !important;background:-o-linear-gradient(#2b2b2b, #111) !important;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#2b2b2b', endColorstr='#111111', GradientType=0) !important;color:#fff}.bg-maroon-gradient{background:#d81b60 !important;background:-webkit-gradient(linear, left bottom, left top, color-stop(0, #d81b60), color-stop(1, #e73f7c)) !important;background:-ms-linear-gradient(bottom, #d81b60, #e73f7c) !important;background:-moz-linear-gradient(center bottom, #d81b60 0, #e73f7c 100%) !important;background:-o-linear-gradient(#e73f7c, #d81b60) !important;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#e73f7c', endColorstr='#d81b60', GradientType=0) !important;color:#fff}.description-block .description-icon{font-size:16px}.no-pad-top{padding-top:0}.position-static{position:static !important}.list-header{font-size:15px;padding:10px 4px;font-weight:bold;color:#666}.list-seperator{height:1px;background:#f4f4f4;margin:15px 0 9px 0}.list-link>a{padding:4px;color:#777}.list-link>a:hover{color:#222}.font-light{font-weight:300}.user-block:before,.user-block:after{content:" ";display:table}.user-block:after{clear:both}.user-block img{width:40px;height:40px;float:left}.user-block .username,.user-block .description,.user-block .comment{display:block;margin-left:50px}.user-block .username{font-size:16px;font-weight:600}.user-block .description{color:#999;font-size:13px}.user-block.user-block-sm .username,.user-block.user-block-sm .description,.user-block.user-block-sm .comment{margin-left:40px}.user-block.user-block-sm .username{font-size:14px}.img-sm,.img-md,.img-lg,.box-comments .box-comment img,.user-block.user-block-sm img{float:left}.img-sm,.box-comments .box-comment img,.user-block.user-block-sm img{width:30px !important;height:30px !important}.img-sm+.img-push{margin-left:40px}.img-md{width:60px;height:60px}.img-md+.img-push{margin-left:70px}.img-lg{width:100px;height:100px}.img-lg+.img-push{margin-left:110px}.img-bordered{border:3px solid #d2d6de;padding:3px}.img-bordered-sm{border:2px solid #d2d6de;padding:2px}.attachment-block{border:1px solid #f4f4f4;padding:5px;margin-bottom:10px;background:#f7f7f7}.attachment-block .attachment-img{max-width:100px;max-height:100px;height:auto;float:left}.attachment-block .attachment-pushed{margin-left:110px}.attachment-block .attachment-heading{margin:0}.attachment-block .attachment-text{color:#555}.connectedSortable{min-height:100px}.ui-helper-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.sort-highlight{background:#f4f4f4;border:1px dashed #ddd;margin-bottom:10px}.full-opacity-hover{opacity:.65;filter:alpha(opacity=65)}.full-opacity-hover:hover{opacity:1;filter:alpha(opacity=100)}.chart{position:relative;overflow:hidden;width:100%}.chart svg,.chart canvas{width:100% !important}@media print{.no-print,.main-sidebar,.left-side,.main-header,.content-header{display:none !important}.content-wrapper,.right-side,.main-footer{margin-left:0 !important;min-height:0 !important;-webkit-transform:translate(0, 0) !important;-ms-transform:translate(0, 0) !important;-o-transform:translate(0, 0) !important;transform:translate(0, 0) !important}.fixed .content-wrapper,.fixed .right-side{padding-top:0 !important}.invoice{width:100%;border:0;margin:0;padding:0}.invoice-col{float:left;width:33.3333333%}.table-responsive{overflow:auto}.table-responsive>.table tr th,.table-responsive>.table tr td{white-space:normal !important}}/* - * Skin: Blue - * ---------- - */ -.skin-blue .main-header .navbar { - background-color: #3c8dbc; -} -.skin-blue .main-header .navbar .nav > li > a { - color: #ffffff; -} -.skin-blue .main-header .navbar .nav > li > a:hover, -.skin-blue .main-header .navbar .nav > li > a:active, -.skin-blue .main-header .navbar .nav > li > a:focus, -.skin-blue .main-header .navbar .nav .open > a, -.skin-blue .main-header .navbar .nav .open > a:hover, -.skin-blue .main-header .navbar .nav .open > a:focus, -.skin-blue .main-header .navbar .nav > .active > a { - background: rgba(0, 0, 0, 0.1); - color: #f6f6f6; -} -.skin-blue .main-header .navbar .sidebar-toggle { - color: #ffffff; -} -.skin-blue .main-header .navbar .sidebar-toggle:hover { - color: #f6f6f6; - background: rgba(0, 0, 0, 0.1); -} -.skin-blue .main-header .navbar .sidebar-toggle { - color: #fff; -} -.skin-blue .main-header .navbar .sidebar-toggle:hover { - background-color: #367fa9; -} -@media (max-width: 767px) { - .skin-blue .main-header .navbar .dropdown-menu li.divider { - background-color: rgba(255, 255, 255, 0.1); - } - .skin-blue .main-header .navbar .dropdown-menu li a { - color: #fff; - } - .skin-blue .main-header .navbar .dropdown-menu li a:hover { - background: #367fa9; - } -} -.skin-blue .main-header .logo { - background-color: #367fa9; - color: #ffffff; - border-bottom: 0 solid transparent; -} -.skin-blue .main-header .logo:hover { - background-color: #357ca5; -} -.skin-blue .main-header li.user-header { - background-color: #3c8dbc; -} -.skin-blue .content-header { - background: transparent; -} -.skin-blue .wrapper, -.skin-blue .main-sidebar, -.skin-blue .left-side { - background-color: #222d32; -} -.skin-blue .user-panel > .info, -.skin-blue .user-panel > .info > a { - color: #fff; -} -.skin-blue .sidebar-menu > li.header { - color: #4b646f; - background: #1a2226; -} -.skin-blue .sidebar-menu > li > a { - border-left: 3px solid transparent; -} -.skin-blue .sidebar-menu > li:hover > a, -.skin-blue .sidebar-menu > li.active > a, -.skin-blue .sidebar-menu > li.menu-open > a { - color: #ffffff; - background: #1e282c; -} -.skin-blue .sidebar-menu > li.active > a { - border-left-color: #3c8dbc; -} -.skin-blue .sidebar-menu > li > .treeview-menu { - margin: 0 1px; - background: #2c3b41; -} -.skin-blue .sidebar a { - color: #b8c7ce; -} -.skin-blue .sidebar a:hover { - text-decoration: none; -} -.skin-blue .sidebar-menu .treeview-menu > li > a { - color: #8aa4af; -} -.skin-blue .sidebar-menu .treeview-menu > li.active > a, -.skin-blue .sidebar-menu .treeview-menu > li > a:hover { - color: #ffffff; -} -.skin-blue .sidebar-form { - border-radius: 3px; - border: 1px solid #374850; - margin: 10px 10px; -} -.skin-blue .sidebar-form input[type="text"], -.skin-blue .sidebar-form .btn { - box-shadow: none; - background-color: #374850; - border: 1px solid transparent; - height: 35px; -} -.skin-blue .sidebar-form input[type="text"] { - color: #666; - border-top-left-radius: 2px; - border-top-right-radius: 0; - border-bottom-right-radius: 0; - border-bottom-left-radius: 2px; -} -.skin-blue .sidebar-form input[type="text"]:focus, -.skin-blue .sidebar-form input[type="text"]:focus + .input-group-btn .btn { - background-color: #fff; - color: #666; -} -.skin-blue .sidebar-form input[type="text"]:focus + .input-group-btn .btn { - border-left-color: #fff; -} -.skin-blue .sidebar-form .btn { - color: #999; - border-top-left-radius: 0; - border-top-right-radius: 2px; - border-bottom-right-radius: 2px; - border-bottom-left-radius: 0; -} -.skin-blue.layout-top-nav .main-header > .logo { - background-color: #3c8dbc; - color: #ffffff; - border-bottom: 0 solid transparent; -} -.skin-blue.layout-top-nav .main-header > .logo:hover { - background-color: #3b8ab8; -} -/* - * Skin: Blue - * ---------- - */ -.skin-blue-light .main-header .navbar { - background-color: #3c8dbc; -} -.skin-blue-light .main-header .navbar .nav > li > a { - color: #ffffff; -} -.skin-blue-light .main-header .navbar .nav > li > a:hover, -.skin-blue-light .main-header .navbar .nav > li > a:active, -.skin-blue-light .main-header .navbar .nav > li > a:focus, -.skin-blue-light .main-header .navbar .nav .open > a, -.skin-blue-light .main-header .navbar .nav .open > a:hover, -.skin-blue-light .main-header .navbar .nav .open > a:focus, -.skin-blue-light .main-header .navbar .nav > .active > a { - background: rgba(0, 0, 0, 0.1); - color: #f6f6f6; -} -.skin-blue-light .main-header .navbar .sidebar-toggle { - color: #ffffff; -} -.skin-blue-light .main-header .navbar .sidebar-toggle:hover { - color: #f6f6f6; - background: rgba(0, 0, 0, 0.1); -} -.skin-blue-light .main-header .navbar .sidebar-toggle { - color: #fff; -} -.skin-blue-light .main-header .navbar .sidebar-toggle:hover { - background-color: #367fa9; -} -@media (max-width: 767px) { - .skin-blue-light .main-header .navbar .dropdown-menu li.divider { - background-color: rgba(255, 255, 255, 0.1); - } - .skin-blue-light .main-header .navbar .dropdown-menu li a { - color: #fff; - } - .skin-blue-light .main-header .navbar .dropdown-menu li a:hover { - background: #367fa9; - } -} -.skin-blue-light .main-header .logo { - background-color: #3c8dbc; - color: #ffffff; - border-bottom: 0 solid transparent; -} -.skin-blue-light .main-header .logo:hover { - background-color: #3b8ab8; -} -.skin-blue-light .main-header li.user-header { - background-color: #3c8dbc; -} -.skin-blue-light .content-header { - background: transparent; -} -.skin-blue-light .wrapper, -.skin-blue-light .main-sidebar, -.skin-blue-light .left-side { - background-color: #f9fafc; -} -.skin-blue-light .main-sidebar { - border-right: 1px solid #d2d6de; -} -.skin-blue-light .user-panel > .info, -.skin-blue-light .user-panel > .info > a { - color: #444444; -} -.skin-blue-light .sidebar-menu > li { - -webkit-transition: border-left-color 0.3s ease; - -o-transition: border-left-color 0.3s ease; - transition: border-left-color 0.3s ease; -} -.skin-blue-light .sidebar-menu > li.header { - color: #848484; - background: #f9fafc; -} -.skin-blue-light .sidebar-menu > li > a { - border-left: 3px solid transparent; - font-weight: 600; -} -.skin-blue-light .sidebar-menu > li:hover > a, -.skin-blue-light .sidebar-menu > li.active > a { - color: #000000; - background: #f4f4f5; -} -.skin-blue-light .sidebar-menu > li.active { - border-left-color: #3c8dbc; -} -.skin-blue-light .sidebar-menu > li.active > a { - font-weight: 600; -} -.skin-blue-light .sidebar-menu > li > .treeview-menu { - background: #f4f4f5; -} -.skin-blue-light .sidebar a { - color: #444444; -} -.skin-blue-light .sidebar a:hover { - text-decoration: none; -} -.skin-blue-light .sidebar-menu .treeview-menu > li > a { - color: #777777; -} -.skin-blue-light .sidebar-menu .treeview-menu > li.active > a, -.skin-blue-light .sidebar-menu .treeview-menu > li > a:hover { - color: #000000; -} -.skin-blue-light .sidebar-menu .treeview-menu > li.active > a { - font-weight: 600; -} -.skin-blue-light .sidebar-form { - border-radius: 3px; - border: 1px solid #d2d6de; - margin: 10px 10px; -} -.skin-blue-light .sidebar-form input[type="text"], -.skin-blue-light .sidebar-form .btn { - box-shadow: none; - background-color: #fff; - border: 1px solid transparent; - height: 35px; -} -.skin-blue-light .sidebar-form input[type="text"] { - color: #666; - border-top-left-radius: 2px; - border-top-right-radius: 0; - border-bottom-right-radius: 0; - border-bottom-left-radius: 2px; -} -.skin-blue-light .sidebar-form input[type="text"]:focus, -.skin-blue-light .sidebar-form input[type="text"]:focus + .input-group-btn .btn { - background-color: #fff; - color: #666; -} -.skin-blue-light .sidebar-form input[type="text"]:focus + .input-group-btn .btn { - border-left-color: #fff; -} -.skin-blue-light .sidebar-form .btn { - color: #999; - border-top-left-radius: 0; - border-top-right-radius: 2px; - border-bottom-right-radius: 2px; - border-bottom-left-radius: 0; -} -@media (min-width: 768px) { - .skin-blue-light.sidebar-mini.sidebar-collapse .sidebar-menu > li > .treeview-menu { - border-left: 1px solid #d2d6de; - } -} -.skin-blue-light .main-footer { - border-top-color: #d2d6de; -} -.skin-blue.layout-top-nav .main-header > .logo { - background-color: #3c8dbc; - color: #ffffff; - border-bottom: 0 solid transparent; -} -.skin-blue.layout-top-nav .main-header > .logo:hover { - background-color: #3b8ab8; -} -/* - * Skin: Black - * ----------- - */ -/* skin-black navbar */ -.skin-black .main-header { - -webkit-box-shadow: 0px 1px 1px rgba(0, 0, 0, 0.05); - box-shadow: 0px 1px 1px rgba(0, 0, 0, 0.05); -} -.skin-black .main-header .navbar-toggle { - color: #333; -} -.skin-black .main-header .navbar-brand { - color: #333; - border-right: 1px solid #eee; -} -.skin-black .main-header .navbar { - background-color: #ffffff; -} -.skin-black .main-header .navbar .nav > li > a { - color: #333333; -} -.skin-black .main-header .navbar .nav > li > a:hover, -.skin-black .main-header .navbar .nav > li > a:active, -.skin-black .main-header .navbar .nav > li > a:focus, -.skin-black .main-header .navbar .nav .open > a, -.skin-black .main-header .navbar .nav .open > a:hover, -.skin-black .main-header .navbar .nav .open > a:focus, -.skin-black .main-header .navbar .nav > .active > a { - background: #ffffff; - color: #999999; -} -.skin-black .main-header .navbar .sidebar-toggle { - color: #333333; -} -.skin-black .main-header .navbar .sidebar-toggle:hover { - color: #999999; - background: #ffffff; -} -.skin-black .main-header .navbar > .sidebar-toggle { - color: #333; - border-right: 1px solid #eee; -} -.skin-black .main-header .navbar .navbar-nav > li > a { - border-right: 1px solid #eee; -} -.skin-black .main-header .navbar .navbar-custom-menu .navbar-nav > li > a, -.skin-black .main-header .navbar .navbar-right > li > a { - border-left: 1px solid #eee; - border-right-width: 0; -} -.skin-black .main-header .logo { - background-color: #ffffff; - color: #333333; - border-bottom: 0 solid transparent; - border-right: 1px solid #eee; -} -.skin-black .main-header .logo:hover { - background-color: #fcfcfc; -} -@media (max-width: 767px) { - .skin-black .main-header .logo { - background-color: #222222; - color: #ffffff; - border-bottom: 0 solid transparent; - border-right: none; - } - .skin-black .main-header .logo:hover { - background-color: #1f1f1f; - } -} -.skin-black .main-header li.user-header { - background-color: #222; -} -.skin-black .content-header { - background: transparent; - box-shadow: none; -} -.skin-black .wrapper, -.skin-black .main-sidebar, -.skin-black .left-side { - background-color: #222d32; -} -.skin-black .user-panel > .info, -.skin-black .user-panel > .info > a { - color: #fff; -} -.skin-black .sidebar-menu > li.header { - color: #4b646f; - background: #1a2226; -} -.skin-black .sidebar-menu > li > a { - border-left: 3px solid transparent; -} -.skin-black .sidebar-menu > li:hover > a, -.skin-black .sidebar-menu > li.active > a, -.skin-black .sidebar-menu > li.menu-open > a { - color: #ffffff; - background: #1e282c; -} -.skin-black .sidebar-menu > li.active > a { - border-left-color: #ffffff; -} -.skin-black .sidebar-menu > li > .treeview-menu { - margin: 0 1px; - background: #2c3b41; -} -.skin-black .sidebar a { - color: #b8c7ce; -} -.skin-black .sidebar a:hover { - text-decoration: none; -} -.skin-black .sidebar-menu .treeview-menu > li > a { - color: #8aa4af; -} -.skin-black .sidebar-menu .treeview-menu > li.active > a, -.skin-black .sidebar-menu .treeview-menu > li > a:hover { - color: #ffffff; -} -.skin-black .sidebar-form { - border-radius: 3px; - border: 1px solid #374850; - margin: 10px 10px; -} -.skin-black .sidebar-form input[type="text"], -.skin-black .sidebar-form .btn { - box-shadow: none; - background-color: #374850; - border: 1px solid transparent; - height: 35px; -} -.skin-black .sidebar-form input[type="text"] { - color: #666; - border-top-left-radius: 2px; - border-top-right-radius: 0; - border-bottom-right-radius: 0; - border-bottom-left-radius: 2px; -} -.skin-black .sidebar-form input[type="text"]:focus, -.skin-black .sidebar-form input[type="text"]:focus + .input-group-btn .btn { - background-color: #fff; - color: #666; -} -.skin-black .sidebar-form input[type="text"]:focus + .input-group-btn .btn { - border-left-color: #fff; -} -.skin-black .sidebar-form .btn { - color: #999; - border-top-left-radius: 0; - border-top-right-radius: 2px; - border-bottom-right-radius: 2px; - border-bottom-left-radius: 0; -} -.skin-black .pace .pace-progress { - background: #222; -} -.skin-black .pace .pace-activity { - border-top-color: #222; - border-left-color: #222; -} -/* - * Skin: Black - * ----------- - */ -/* skin-black navbar */ -.skin-black-light .main-header { - border-bottom: 1px solid #d2d6de; -} -.skin-black-light .main-header .navbar-toggle { - color: #333; -} -.skin-black-light .main-header .navbar-brand { - color: #333; - border-right: 1px solid #d2d6de; -} -.skin-black-light .main-header .navbar { - background-color: #ffffff; -} -.skin-black-light .main-header .navbar .nav > li > a { - color: #333333; -} -.skin-black-light .main-header .navbar .nav > li > a:hover, -.skin-black-light .main-header .navbar .nav > li > a:active, -.skin-black-light .main-header .navbar .nav > li > a:focus, -.skin-black-light .main-header .navbar .nav .open > a, -.skin-black-light .main-header .navbar .nav .open > a:hover, -.skin-black-light .main-header .navbar .nav .open > a:focus, -.skin-black-light .main-header .navbar .nav > .active > a { - background: #ffffff; - color: #999999; -} -.skin-black-light .main-header .navbar .sidebar-toggle { - color: #333333; -} -.skin-black-light .main-header .navbar .sidebar-toggle:hover { - color: #999999; - background: #ffffff; -} -.skin-black-light .main-header .navbar > .sidebar-toggle { - color: #333; - border-right: 1px solid #d2d6de; -} -.skin-black-light .main-header .navbar .navbar-nav > li > a { - border-right: 1px solid #d2d6de; -} -.skin-black-light .main-header .navbar .navbar-custom-menu .navbar-nav > li > a, -.skin-black-light .main-header .navbar .navbar-right > li > a { - border-left: 1px solid #d2d6de; - border-right-width: 0; -} -.skin-black-light .main-header .logo { - background-color: #ffffff; - color: #333333; - border-bottom: 0 solid transparent; - border-right: 1px solid #d2d6de; -} -.skin-black-light .main-header .logo:hover { - background-color: #fcfcfc; -} -@media (max-width: 767px) { - .skin-black-light .main-header .logo { - background-color: #222222; - color: #ffffff; - border-bottom: 0 solid transparent; - border-right: none; - } - .skin-black-light .main-header .logo:hover { - background-color: #1f1f1f; - } -} -.skin-black-light .main-header li.user-header { - background-color: #222; -} -.skin-black-light .content-header { - background: transparent; - box-shadow: none; -} -.skin-black-light .wrapper, -.skin-black-light .main-sidebar, -.skin-black-light .left-side { - background-color: #f9fafc; -} -.skin-black-light .main-sidebar { - border-right: 1px solid #d2d6de; -} -.skin-black-light .user-panel > .info, -.skin-black-light .user-panel > .info > a { - color: #444444; -} -.skin-black-light .sidebar-menu > li { - -webkit-transition: border-left-color 0.3s ease; - -o-transition: border-left-color 0.3s ease; - transition: border-left-color 0.3s ease; -} -.skin-black-light .sidebar-menu > li.header { - color: #848484; - background: #f9fafc; -} -.skin-black-light .sidebar-menu > li > a { - border-left: 3px solid transparent; - font-weight: 600; -} -.skin-black-light .sidebar-menu > li:hover > a, -.skin-black-light .sidebar-menu > li.active > a { - color: #000000; - background: #f4f4f5; -} -.skin-black-light .sidebar-menu > li.active { - border-left-color: #ffffff; -} -.skin-black-light .sidebar-menu > li.active > a { - font-weight: 600; -} -.skin-black-light .sidebar-menu > li > .treeview-menu { - background: #f4f4f5; -} -.skin-black-light .sidebar a { - color: #444444; -} -.skin-black-light .sidebar a:hover { - text-decoration: none; -} -.skin-black-light .sidebar-menu .treeview-menu > li > a { - color: #777777; -} -.skin-black-light .sidebar-menu .treeview-menu > li.active > a, -.skin-black-light .sidebar-menu .treeview-menu > li > a:hover { - color: #000000; -} -.skin-black-light .sidebar-menu .treeview-menu > li.active > a { - font-weight: 600; -} -.skin-black-light .sidebar-form { - border-radius: 3px; - border: 1px solid #d2d6de; - margin: 10px 10px; -} -.skin-black-light .sidebar-form input[type="text"], -.skin-black-light .sidebar-form .btn { - box-shadow: none; - background-color: #fff; - border: 1px solid transparent; - height: 35px; -} -.skin-black-light .sidebar-form input[type="text"] { - color: #666; - border-top-left-radius: 2px; - border-top-right-radius: 0; - border-bottom-right-radius: 0; - border-bottom-left-radius: 2px; -} -.skin-black-light .sidebar-form input[type="text"]:focus, -.skin-black-light .sidebar-form input[type="text"]:focus + .input-group-btn .btn { - background-color: #fff; - color: #666; -} -.skin-black-light .sidebar-form input[type="text"]:focus + .input-group-btn .btn { - border-left-color: #fff; -} -.skin-black-light .sidebar-form .btn { - color: #999; - border-top-left-radius: 0; - border-top-right-radius: 2px; - border-bottom-right-radius: 2px; - border-bottom-left-radius: 0; -} -@media (min-width: 768px) { - .skin-black-light.sidebar-mini.sidebar-collapse .sidebar-menu > li > .treeview-menu { - border-left: 1px solid #d2d6de; - } -} -/* - * Skin: Green - * ----------- - */ -.skin-green .main-header .navbar { - background-color: #00a65a; -} -.skin-green .main-header .navbar .nav > li > a { - color: #ffffff; -} -.skin-green .main-header .navbar .nav > li > a:hover, -.skin-green .main-header .navbar .nav > li > a:active, -.skin-green .main-header .navbar .nav > li > a:focus, -.skin-green .main-header .navbar .nav .open > a, -.skin-green .main-header .navbar .nav .open > a:hover, -.skin-green .main-header .navbar .nav .open > a:focus, -.skin-green .main-header .navbar .nav > .active > a { - background: rgba(0, 0, 0, 0.1); - color: #f6f6f6; -} -.skin-green .main-header .navbar .sidebar-toggle { - color: #ffffff; -} -.skin-green .main-header .navbar .sidebar-toggle:hover { - color: #f6f6f6; - background: rgba(0, 0, 0, 0.1); -} -.skin-green .main-header .navbar .sidebar-toggle { - color: #fff; -} -.skin-green .main-header .navbar .sidebar-toggle:hover { - background-color: #008d4c; -} -@media (max-width: 767px) { - .skin-green .main-header .navbar .dropdown-menu li.divider { - background-color: rgba(255, 255, 255, 0.1); - } - .skin-green .main-header .navbar .dropdown-menu li a { - color: #fff; - } - .skin-green .main-header .navbar .dropdown-menu li a:hover { - background: #008d4c; - } -} -.skin-green .main-header .logo { - background-color: #008d4c; - color: #ffffff; - border-bottom: 0 solid transparent; -} -.skin-green .main-header .logo:hover { - background-color: #008749; -} -.skin-green .main-header li.user-header { - background-color: #00a65a; -} -.skin-green .content-header { - background: transparent; -} -.skin-green .wrapper, -.skin-green .main-sidebar, -.skin-green .left-side { - background-color: #222d32; -} -.skin-green .user-panel > .info, -.skin-green .user-panel > .info > a { - color: #fff; -} -.skin-green .sidebar-menu > li.header { - color: #4b646f; - background: #1a2226; -} -.skin-green .sidebar-menu > li > a { - border-left: 3px solid transparent; -} -.skin-green .sidebar-menu > li:hover > a, -.skin-green .sidebar-menu > li.active > a, -.skin-green .sidebar-menu > li.menu-open > a { - color: #ffffff; - background: #1e282c; -} -.skin-green .sidebar-menu > li.active > a { - border-left-color: #00a65a; -} -.skin-green .sidebar-menu > li > .treeview-menu { - margin: 0 1px; - background: #2c3b41; -} -.skin-green .sidebar a { - color: #b8c7ce; -} -.skin-green .sidebar a:hover { - text-decoration: none; -} -.skin-green .sidebar-menu .treeview-menu > li > a { - color: #8aa4af; -} -.skin-green .sidebar-menu .treeview-menu > li.active > a, -.skin-green .sidebar-menu .treeview-menu > li > a:hover { - color: #ffffff; -} -.skin-green .sidebar-form { - border-radius: 3px; - border: 1px solid #374850; - margin: 10px 10px; -} -.skin-green .sidebar-form input[type="text"], -.skin-green .sidebar-form .btn { - box-shadow: none; - background-color: #374850; - border: 1px solid transparent; - height: 35px; -} -.skin-green .sidebar-form input[type="text"] { - color: #666; - border-top-left-radius: 2px; - border-top-right-radius: 0; - border-bottom-right-radius: 0; - border-bottom-left-radius: 2px; -} -.skin-green .sidebar-form input[type="text"]:focus, -.skin-green .sidebar-form input[type="text"]:focus + .input-group-btn .btn { - background-color: #fff; - color: #666; -} -.skin-green .sidebar-form input[type="text"]:focus + .input-group-btn .btn { - border-left-color: #fff; -} -.skin-green .sidebar-form .btn { - color: #999; - border-top-left-radius: 0; - border-top-right-radius: 2px; - border-bottom-right-radius: 2px; - border-bottom-left-radius: 0; -} -/* - * Skin: Green - * ----------- - */ -.skin-green-light .main-header .navbar { - background-color: #00a65a; -} -.skin-green-light .main-header .navbar .nav > li > a { - color: #ffffff; -} -.skin-green-light .main-header .navbar .nav > li > a:hover, -.skin-green-light .main-header .navbar .nav > li > a:active, -.skin-green-light .main-header .navbar .nav > li > a:focus, -.skin-green-light .main-header .navbar .nav .open > a, -.skin-green-light .main-header .navbar .nav .open > a:hover, -.skin-green-light .main-header .navbar .nav .open > a:focus, -.skin-green-light .main-header .navbar .nav > .active > a { - background: rgba(0, 0, 0, 0.1); - color: #f6f6f6; -} -.skin-green-light .main-header .navbar .sidebar-toggle { - color: #ffffff; -} -.skin-green-light .main-header .navbar .sidebar-toggle:hover { - color: #f6f6f6; - background: rgba(0, 0, 0, 0.1); -} -.skin-green-light .main-header .navbar .sidebar-toggle { - color: #fff; -} -.skin-green-light .main-header .navbar .sidebar-toggle:hover { - background-color: #008d4c; -} -@media (max-width: 767px) { - .skin-green-light .main-header .navbar .dropdown-menu li.divider { - background-color: rgba(255, 255, 255, 0.1); - } - .skin-green-light .main-header .navbar .dropdown-menu li a { - color: #fff; - } - .skin-green-light .main-header .navbar .dropdown-menu li a:hover { - background: #008d4c; - } -} -.skin-green-light .main-header .logo { - background-color: #00a65a; - color: #ffffff; - border-bottom: 0 solid transparent; -} -.skin-green-light .main-header .logo:hover { - background-color: #00a157; -} -.skin-green-light .main-header li.user-header { - background-color: #00a65a; -} -.skin-green-light .content-header { - background: transparent; -} -.skin-green-light .wrapper, -.skin-green-light .main-sidebar, -.skin-green-light .left-side { - background-color: #f9fafc; -} -.skin-green-light .main-sidebar { - border-right: 1px solid #d2d6de; -} -.skin-green-light .user-panel > .info, -.skin-green-light .user-panel > .info > a { - color: #444444; -} -.skin-green-light .sidebar-menu > li { - -webkit-transition: border-left-color 0.3s ease; - -o-transition: border-left-color 0.3s ease; - transition: border-left-color 0.3s ease; -} -.skin-green-light .sidebar-menu > li.header { - color: #848484; - background: #f9fafc; -} -.skin-green-light .sidebar-menu > li > a { - border-left: 3px solid transparent; - font-weight: 600; -} -.skin-green-light .sidebar-menu > li:hover > a, -.skin-green-light .sidebar-menu > li.active > a { - color: #000000; - background: #f4f4f5; -} -.skin-green-light .sidebar-menu > li.active { - border-left-color: #00a65a; -} -.skin-green-light .sidebar-menu > li.active > a { - font-weight: 600; -} -.skin-green-light .sidebar-menu > li > .treeview-menu { - background: #f4f4f5; -} -.skin-green-light .sidebar a { - color: #444444; -} -.skin-green-light .sidebar a:hover { - text-decoration: none; -} -.skin-green-light .sidebar-menu .treeview-menu > li > a { - color: #777777; -} -.skin-green-light .sidebar-menu .treeview-menu > li.active > a, -.skin-green-light .sidebar-menu .treeview-menu > li > a:hover { - color: #000000; -} -.skin-green-light .sidebar-menu .treeview-menu > li.active > a { - font-weight: 600; -} -.skin-green-light .sidebar-form { - border-radius: 3px; - border: 1px solid #d2d6de; - margin: 10px 10px; -} -.skin-green-light .sidebar-form input[type="text"], -.skin-green-light .sidebar-form .btn { - box-shadow: none; - background-color: #fff; - border: 1px solid transparent; - height: 35px; -} -.skin-green-light .sidebar-form input[type="text"] { - color: #666; - border-top-left-radius: 2px; - border-top-right-radius: 0; - border-bottom-right-radius: 0; - border-bottom-left-radius: 2px; -} -.skin-green-light .sidebar-form input[type="text"]:focus, -.skin-green-light .sidebar-form input[type="text"]:focus + .input-group-btn .btn { - background-color: #fff; - color: #666; -} -.skin-green-light .sidebar-form input[type="text"]:focus + .input-group-btn .btn { - border-left-color: #fff; -} -.skin-green-light .sidebar-form .btn { - color: #999; - border-top-left-radius: 0; - border-top-right-radius: 2px; - border-bottom-right-radius: 2px; - border-bottom-left-radius: 0; -} -@media (min-width: 768px) { - .skin-green-light.sidebar-mini.sidebar-collapse .sidebar-menu > li > .treeview-menu { - border-left: 1px solid #d2d6de; - } -} -/* - * Skin: Red - * --------- - */ -.skin-red .main-header .navbar { - background-color: #dd4b39; -} -.skin-red .main-header .navbar .nav > li > a { - color: #ffffff; -} -.skin-red .main-header .navbar .nav > li > a:hover, -.skin-red .main-header .navbar .nav > li > a:active, -.skin-red .main-header .navbar .nav > li > a:focus, -.skin-red .main-header .navbar .nav .open > a, -.skin-red .main-header .navbar .nav .open > a:hover, -.skin-red .main-header .navbar .nav .open > a:focus, -.skin-red .main-header .navbar .nav > .active > a { - background: rgba(0, 0, 0, 0.1); - color: #f6f6f6; -} -.skin-red .main-header .navbar .sidebar-toggle { - color: #ffffff; -} -.skin-red .main-header .navbar .sidebar-toggle:hover { - color: #f6f6f6; - background: rgba(0, 0, 0, 0.1); -} -.skin-red .main-header .navbar .sidebar-toggle { - color: #fff; -} -.skin-red .main-header .navbar .sidebar-toggle:hover { - background-color: #d73925; -} -@media (max-width: 767px) { - .skin-red .main-header .navbar .dropdown-menu li.divider { - background-color: rgba(255, 255, 255, 0.1); - } - .skin-red .main-header .navbar .dropdown-menu li a { - color: #fff; - } - .skin-red .main-header .navbar .dropdown-menu li a:hover { - background: #d73925; - } -} -.skin-red .main-header .logo { - background-color: #d73925; - color: #ffffff; - border-bottom: 0 solid transparent; -} -.skin-red .main-header .logo:hover { - background-color: #d33724; -} -.skin-red .main-header li.user-header { - background-color: #dd4b39; -} -.skin-red .content-header { - background: transparent; -} -.skin-red .wrapper, -.skin-red .main-sidebar, -.skin-red .left-side { - background-color: #222d32; -} -.skin-red .user-panel > .info, -.skin-red .user-panel > .info > a { - color: #fff; -} -.skin-red .sidebar-menu > li.header { - color: #4b646f; - background: #1a2226; -} -.skin-red .sidebar-menu > li > a { - border-left: 3px solid transparent; -} -.skin-red .sidebar-menu > li:hover > a, -.skin-red .sidebar-menu > li.active > a, -.skin-red .sidebar-menu > li.menu-open > a { - color: #ffffff; - background: #1e282c; -} -.skin-red .sidebar-menu > li.active > a { - border-left-color: #dd4b39; -} -.skin-red .sidebar-menu > li > .treeview-menu { - margin: 0 1px; - background: #2c3b41; -} -.skin-red .sidebar a { - color: #b8c7ce; -} -.skin-red .sidebar a:hover { - text-decoration: none; -} -.skin-red .sidebar-menu .treeview-menu > li > a { - color: #8aa4af; -} -.skin-red .sidebar-menu .treeview-menu > li.active > a, -.skin-red .sidebar-menu .treeview-menu > li > a:hover { - color: #ffffff; -} -.skin-red .sidebar-form { - border-radius: 3px; - border: 1px solid #374850; - margin: 10px 10px; -} -.skin-red .sidebar-form input[type="text"], -.skin-red .sidebar-form .btn { - box-shadow: none; - background-color: #374850; - border: 1px solid transparent; - height: 35px; -} -.skin-red .sidebar-form input[type="text"] { - color: #666; - border-top-left-radius: 2px; - border-top-right-radius: 0; - border-bottom-right-radius: 0; - border-bottom-left-radius: 2px; -} -.skin-red .sidebar-form input[type="text"]:focus, -.skin-red .sidebar-form input[type="text"]:focus + .input-group-btn .btn { - background-color: #fff; - color: #666; -} -.skin-red .sidebar-form input[type="text"]:focus + .input-group-btn .btn { - border-left-color: #fff; -} -.skin-red .sidebar-form .btn { - color: #999; - border-top-left-radius: 0; - border-top-right-radius: 2px; - border-bottom-right-radius: 2px; - border-bottom-left-radius: 0; -} -/* - * Skin: Red - * --------- - */ -.skin-red-light .main-header .navbar { - background-color: #dd4b39; -} -.skin-red-light .main-header .navbar .nav > li > a { - color: #ffffff; -} -.skin-red-light .main-header .navbar .nav > li > a:hover, -.skin-red-light .main-header .navbar .nav > li > a:active, -.skin-red-light .main-header .navbar .nav > li > a:focus, -.skin-red-light .main-header .navbar .nav .open > a, -.skin-red-light .main-header .navbar .nav .open > a:hover, -.skin-red-light .main-header .navbar .nav .open > a:focus, -.skin-red-light .main-header .navbar .nav > .active > a { - background: rgba(0, 0, 0, 0.1); - color: #f6f6f6; -} -.skin-red-light .main-header .navbar .sidebar-toggle { - color: #ffffff; -} -.skin-red-light .main-header .navbar .sidebar-toggle:hover { - color: #f6f6f6; - background: rgba(0, 0, 0, 0.1); -} -.skin-red-light .main-header .navbar .sidebar-toggle { - color: #fff; -} -.skin-red-light .main-header .navbar .sidebar-toggle:hover { - background-color: #d73925; -} -@media (max-width: 767px) { - .skin-red-light .main-header .navbar .dropdown-menu li.divider { - background-color: rgba(255, 255, 255, 0.1); - } - .skin-red-light .main-header .navbar .dropdown-menu li a { - color: #fff; - } - .skin-red-light .main-header .navbar .dropdown-menu li a:hover { - background: #d73925; - } -} -.skin-red-light .main-header .logo { - background-color: #dd4b39; - color: #ffffff; - border-bottom: 0 solid transparent; -} -.skin-red-light .main-header .logo:hover { - background-color: #dc4735; -} -.skin-red-light .main-header li.user-header { - background-color: #dd4b39; -} -.skin-red-light .content-header { - background: transparent; -} -.skin-red-light .wrapper, -.skin-red-light .main-sidebar, -.skin-red-light .left-side { - background-color: #f9fafc; -} -.skin-red-light .main-sidebar { - border-right: 1px solid #d2d6de; -} -.skin-red-light .user-panel > .info, -.skin-red-light .user-panel > .info > a { - color: #444444; -} -.skin-red-light .sidebar-menu > li { - -webkit-transition: border-left-color 0.3s ease; - -o-transition: border-left-color 0.3s ease; - transition: border-left-color 0.3s ease; -} -.skin-red-light .sidebar-menu > li.header { - color: #848484; - background: #f9fafc; -} -.skin-red-light .sidebar-menu > li > a { - border-left: 3px solid transparent; - font-weight: 600; -} -.skin-red-light .sidebar-menu > li:hover > a, -.skin-red-light .sidebar-menu > li.active > a { - color: #000000; - background: #f4f4f5; -} -.skin-red-light .sidebar-menu > li.active { - border-left-color: #dd4b39; -} -.skin-red-light .sidebar-menu > li.active > a { - font-weight: 600; -} -.skin-red-light .sidebar-menu > li > .treeview-menu { - background: #f4f4f5; -} -.skin-red-light .sidebar a { - color: #444444; -} -.skin-red-light .sidebar a:hover { - text-decoration: none; -} -.skin-red-light .sidebar-menu .treeview-menu > li > a { - color: #777777; -} -.skin-red-light .sidebar-menu .treeview-menu > li.active > a, -.skin-red-light .sidebar-menu .treeview-menu > li > a:hover { - color: #000000; -} -.skin-red-light .sidebar-menu .treeview-menu > li.active > a { - font-weight: 600; -} -.skin-red-light .sidebar-form { - border-radius: 3px; - border: 1px solid #d2d6de; - margin: 10px 10px; -} -.skin-red-light .sidebar-form input[type="text"], -.skin-red-light .sidebar-form .btn { - box-shadow: none; - background-color: #fff; - border: 1px solid transparent; - height: 35px; -} -.skin-red-light .sidebar-form input[type="text"] { - color: #666; - border-top-left-radius: 2px; - border-top-right-radius: 0; - border-bottom-right-radius: 0; - border-bottom-left-radius: 2px; -} -.skin-red-light .sidebar-form input[type="text"]:focus, -.skin-red-light .sidebar-form input[type="text"]:focus + .input-group-btn .btn { - background-color: #fff; - color: #666; -} -.skin-red-light .sidebar-form input[type="text"]:focus + .input-group-btn .btn { - border-left-color: #fff; -} -.skin-red-light .sidebar-form .btn { - color: #999; - border-top-left-radius: 0; - border-top-right-radius: 2px; - border-bottom-right-radius: 2px; - border-bottom-left-radius: 0; -} -@media (min-width: 768px) { - .skin-red-light.sidebar-mini.sidebar-collapse .sidebar-menu > li > .treeview-menu { - border-left: 1px solid #d2d6de; - } -} -/* - * Skin: Yellow - * ------------ - */ -.skin-yellow .main-header .navbar { - background-color: #f39c12; -} -.skin-yellow .main-header .navbar .nav > li > a { - color: #ffffff; -} -.skin-yellow .main-header .navbar .nav > li > a:hover, -.skin-yellow .main-header .navbar .nav > li > a:active, -.skin-yellow .main-header .navbar .nav > li > a:focus, -.skin-yellow .main-header .navbar .nav .open > a, -.skin-yellow .main-header .navbar .nav .open > a:hover, -.skin-yellow .main-header .navbar .nav .open > a:focus, -.skin-yellow .main-header .navbar .nav > .active > a { - background: rgba(0, 0, 0, 0.1); - color: #f6f6f6; -} -.skin-yellow .main-header .navbar .sidebar-toggle { - color: #ffffff; -} -.skin-yellow .main-header .navbar .sidebar-toggle:hover { - color: #f6f6f6; - background: rgba(0, 0, 0, 0.1); -} -.skin-yellow .main-header .navbar .sidebar-toggle { - color: #fff; -} -.skin-yellow .main-header .navbar .sidebar-toggle:hover { - background-color: #e08e0b; -} -@media (max-width: 767px) { - .skin-yellow .main-header .navbar .dropdown-menu li.divider { - background-color: rgba(255, 255, 255, 0.1); - } - .skin-yellow .main-header .navbar .dropdown-menu li a { - color: #fff; - } - .skin-yellow .main-header .navbar .dropdown-menu li a:hover { - background: #e08e0b; - } -} -.skin-yellow .main-header .logo { - background-color: #e08e0b; - color: #ffffff; - border-bottom: 0 solid transparent; -} -.skin-yellow .main-header .logo:hover { - background-color: #db8b0b; -} -.skin-yellow .main-header li.user-header { - background-color: #f39c12; -} -.skin-yellow .content-header { - background: transparent; -} -.skin-yellow .wrapper, -.skin-yellow .main-sidebar, -.skin-yellow .left-side { - background-color: #222d32; -} -.skin-yellow .user-panel > .info, -.skin-yellow .user-panel > .info > a { - color: #fff; -} -.skin-yellow .sidebar-menu > li.header { - color: #4b646f; - background: #1a2226; -} -.skin-yellow .sidebar-menu > li > a { - border-left: 3px solid transparent; -} -.skin-yellow .sidebar-menu > li:hover > a, -.skin-yellow .sidebar-menu > li.active > a, -.skin-yellow .sidebar-menu > li.menu-open > a { - color: #ffffff; - background: #1e282c; -} -.skin-yellow .sidebar-menu > li.active > a { - border-left-color: #f39c12; -} -.skin-yellow .sidebar-menu > li > .treeview-menu { - margin: 0 1px; - background: #2c3b41; -} -.skin-yellow .sidebar a { - color: #b8c7ce; -} -.skin-yellow .sidebar a:hover { - text-decoration: none; -} -.skin-yellow .sidebar-menu .treeview-menu > li > a { - color: #8aa4af; -} -.skin-yellow .sidebar-menu .treeview-menu > li.active > a, -.skin-yellow .sidebar-menu .treeview-menu > li > a:hover { - color: #ffffff; -} -.skin-yellow .sidebar-form { - border-radius: 3px; - border: 1px solid #374850; - margin: 10px 10px; -} -.skin-yellow .sidebar-form input[type="text"], -.skin-yellow .sidebar-form .btn { - box-shadow: none; - background-color: #374850; - border: 1px solid transparent; - height: 35px; -} -.skin-yellow .sidebar-form input[type="text"] { - color: #666; - border-top-left-radius: 2px; - border-top-right-radius: 0; - border-bottom-right-radius: 0; - border-bottom-left-radius: 2px; -} -.skin-yellow .sidebar-form input[type="text"]:focus, -.skin-yellow .sidebar-form input[type="text"]:focus + .input-group-btn .btn { - background-color: #fff; - color: #666; -} -.skin-yellow .sidebar-form input[type="text"]:focus + .input-group-btn .btn { - border-left-color: #fff; -} -.skin-yellow .sidebar-form .btn { - color: #999; - border-top-left-radius: 0; - border-top-right-radius: 2px; - border-bottom-right-radius: 2px; - border-bottom-left-radius: 0; -} -/* - * Skin: Yellow - * ------------ - */ -.skin-yellow-light .main-header .navbar { - background-color: #f39c12; -} -.skin-yellow-light .main-header .navbar .nav > li > a { - color: #ffffff; -} -.skin-yellow-light .main-header .navbar .nav > li > a:hover, -.skin-yellow-light .main-header .navbar .nav > li > a:active, -.skin-yellow-light .main-header .navbar .nav > li > a:focus, -.skin-yellow-light .main-header .navbar .nav .open > a, -.skin-yellow-light .main-header .navbar .nav .open > a:hover, -.skin-yellow-light .main-header .navbar .nav .open > a:focus, -.skin-yellow-light .main-header .navbar .nav > .active > a { - background: rgba(0, 0, 0, 0.1); - color: #f6f6f6; -} -.skin-yellow-light .main-header .navbar .sidebar-toggle { - color: #ffffff; -} -.skin-yellow-light .main-header .navbar .sidebar-toggle:hover { - color: #f6f6f6; - background: rgba(0, 0, 0, 0.1); -} -.skin-yellow-light .main-header .navbar .sidebar-toggle { - color: #fff; -} -.skin-yellow-light .main-header .navbar .sidebar-toggle:hover { - background-color: #e08e0b; -} -@media (max-width: 767px) { - .skin-yellow-light .main-header .navbar .dropdown-menu li.divider { - background-color: rgba(255, 255, 255, 0.1); - } - .skin-yellow-light .main-header .navbar .dropdown-menu li a { - color: #fff; - } - .skin-yellow-light .main-header .navbar .dropdown-menu li a:hover { - background: #e08e0b; - } -} -.skin-yellow-light .main-header .logo { - background-color: #f39c12; - color: #ffffff; - border-bottom: 0 solid transparent; -} -.skin-yellow-light .main-header .logo:hover { - background-color: #f39a0d; -} -.skin-yellow-light .main-header li.user-header { - background-color: #f39c12; -} -.skin-yellow-light .content-header { - background: transparent; -} -.skin-yellow-light .wrapper, -.skin-yellow-light .main-sidebar, -.skin-yellow-light .left-side { - background-color: #f9fafc; -} -.skin-yellow-light .main-sidebar { - border-right: 1px solid #d2d6de; -} -.skin-yellow-light .user-panel > .info, -.skin-yellow-light .user-panel > .info > a { - color: #444444; -} -.skin-yellow-light .sidebar-menu > li { - -webkit-transition: border-left-color 0.3s ease; - -o-transition: border-left-color 0.3s ease; - transition: border-left-color 0.3s ease; -} -.skin-yellow-light .sidebar-menu > li.header { - color: #848484; - background: #f9fafc; -} -.skin-yellow-light .sidebar-menu > li > a { - border-left: 3px solid transparent; - font-weight: 600; -} -.skin-yellow-light .sidebar-menu > li:hover > a, -.skin-yellow-light .sidebar-menu > li.active > a { - color: #000000; - background: #f4f4f5; -} -.skin-yellow-light .sidebar-menu > li.active { - border-left-color: #f39c12; -} -.skin-yellow-light .sidebar-menu > li.active > a { - font-weight: 600; -} -.skin-yellow-light .sidebar-menu > li > .treeview-menu { - background: #f4f4f5; -} -.skin-yellow-light .sidebar a { - color: #444444; -} -.skin-yellow-light .sidebar a:hover { - text-decoration: none; -} -.skin-yellow-light .sidebar-menu .treeview-menu > li > a { - color: #777777; -} -.skin-yellow-light .sidebar-menu .treeview-menu > li.active > a, -.skin-yellow-light .sidebar-menu .treeview-menu > li > a:hover { - color: #000000; -} -.skin-yellow-light .sidebar-menu .treeview-menu > li.active > a { - font-weight: 600; -} -.skin-yellow-light .sidebar-form { - border-radius: 3px; - border: 1px solid #d2d6de; - margin: 10px 10px; -} -.skin-yellow-light .sidebar-form input[type="text"], -.skin-yellow-light .sidebar-form .btn { - box-shadow: none; - background-color: #fff; - border: 1px solid transparent; - height: 35px; -} -.skin-yellow-light .sidebar-form input[type="text"] { - color: #666; - border-top-left-radius: 2px; - border-top-right-radius: 0; - border-bottom-right-radius: 0; - border-bottom-left-radius: 2px; -} -.skin-yellow-light .sidebar-form input[type="text"]:focus, -.skin-yellow-light .sidebar-form input[type="text"]:focus + .input-group-btn .btn { - background-color: #fff; - color: #666; -} -.skin-yellow-light .sidebar-form input[type="text"]:focus + .input-group-btn .btn { - border-left-color: #fff; -} -.skin-yellow-light .sidebar-form .btn { - color: #999; - border-top-left-radius: 0; - border-top-right-radius: 2px; - border-bottom-right-radius: 2px; - border-bottom-left-radius: 0; -} -@media (min-width: 768px) { - .skin-yellow-light.sidebar-mini.sidebar-collapse .sidebar-menu > li > .treeview-menu { - border-left: 1px solid #d2d6de; - } -} -/* - * Skin: Purple - * ------------ - */ -.skin-purple .main-header .navbar { - background-color: #605ca8; -} -.skin-purple .main-header .navbar .nav > li > a { - color: #ffffff; -} -.skin-purple .main-header .navbar .nav > li > a:hover, -.skin-purple .main-header .navbar .nav > li > a:active, -.skin-purple .main-header .navbar .nav > li > a:focus, -.skin-purple .main-header .navbar .nav .open > a, -.skin-purple .main-header .navbar .nav .open > a:hover, -.skin-purple .main-header .navbar .nav .open > a:focus, -.skin-purple .main-header .navbar .nav > .active > a { - background: rgba(0, 0, 0, 0.1); - color: #f6f6f6; -} -.skin-purple .main-header .navbar .sidebar-toggle { - color: #ffffff; -} -.skin-purple .main-header .navbar .sidebar-toggle:hover { - color: #f6f6f6; - background: rgba(0, 0, 0, 0.1); -} -.skin-purple .main-header .navbar .sidebar-toggle { - color: #fff; -} -.skin-purple .main-header .navbar .sidebar-toggle:hover { - background-color: #555299; -} -@media (max-width: 767px) { - .skin-purple .main-header .navbar .dropdown-menu li.divider { - background-color: rgba(255, 255, 255, 0.1); - } - .skin-purple .main-header .navbar .dropdown-menu li a { - color: #fff; - } - .skin-purple .main-header .navbar .dropdown-menu li a:hover { - background: #555299; - } -} -.skin-purple .main-header .logo { - background-color: #555299; - color: #ffffff; - border-bottom: 0 solid transparent; -} -.skin-purple .main-header .logo:hover { - background-color: #545096; -} -.skin-purple .main-header li.user-header { - background-color: #605ca8; -} -.skin-purple .content-header { - background: transparent; -} -.skin-purple .wrapper, -.skin-purple .main-sidebar, -.skin-purple .left-side { - background-color: #222d32; -} -.skin-purple .user-panel > .info, -.skin-purple .user-panel > .info > a { - color: #fff; -} -.skin-purple .sidebar-menu > li.header { - color: #4b646f; - background: #1a2226; -} -.skin-purple .sidebar-menu > li > a { - border-left: 3px solid transparent; -} -.skin-purple .sidebar-menu > li:hover > a, -.skin-purple .sidebar-menu > li.active > a, -.skin-purple .sidebar-menu > li.menu-open > a { - color: #ffffff; - background: #1e282c; -} -.skin-purple .sidebar-menu > li.active > a { - border-left-color: #605ca8; -} -.skin-purple .sidebar-menu > li > .treeview-menu { - margin: 0 1px; - background: #2c3b41; -} -.skin-purple .sidebar a { - color: #b8c7ce; -} -.skin-purple .sidebar a:hover { - text-decoration: none; -} -.skin-purple .sidebar-menu .treeview-menu > li > a { - color: #8aa4af; -} -.skin-purple .sidebar-menu .treeview-menu > li.active > a, -.skin-purple .sidebar-menu .treeview-menu > li > a:hover { - color: #ffffff; -} -.skin-purple .sidebar-form { - border-radius: 3px; - border: 1px solid #374850; - margin: 10px 10px; -} -.skin-purple .sidebar-form input[type="text"], -.skin-purple .sidebar-form .btn { - box-shadow: none; - background-color: #374850; - border: 1px solid transparent; - height: 35px; -} -.skin-purple .sidebar-form input[type="text"] { - color: #666; - border-top-left-radius: 2px; - border-top-right-radius: 0; - border-bottom-right-radius: 0; - border-bottom-left-radius: 2px; -} -.skin-purple .sidebar-form input[type="text"]:focus, -.skin-purple .sidebar-form input[type="text"]:focus + .input-group-btn .btn { - background-color: #fff; - color: #666; -} -.skin-purple .sidebar-form input[type="text"]:focus + .input-group-btn .btn { - border-left-color: #fff; -} -.skin-purple .sidebar-form .btn { - color: #999; - border-top-left-radius: 0; - border-top-right-radius: 2px; - border-bottom-right-radius: 2px; - border-bottom-left-radius: 0; -} -/* - * Skin: Purple - * ------------ - */ -.skin-purple-light .main-header .navbar { - background-color: #605ca8; -} -.skin-purple-light .main-header .navbar .nav > li > a { - color: #ffffff; -} -.skin-purple-light .main-header .navbar .nav > li > a:hover, -.skin-purple-light .main-header .navbar .nav > li > a:active, -.skin-purple-light .main-header .navbar .nav > li > a:focus, -.skin-purple-light .main-header .navbar .nav .open > a, -.skin-purple-light .main-header .navbar .nav .open > a:hover, -.skin-purple-light .main-header .navbar .nav .open > a:focus, -.skin-purple-light .main-header .navbar .nav > .active > a { - background: rgba(0, 0, 0, 0.1); - color: #f6f6f6; -} -.skin-purple-light .main-header .navbar .sidebar-toggle { - color: #ffffff; -} -.skin-purple-light .main-header .navbar .sidebar-toggle:hover { - color: #f6f6f6; - background: rgba(0, 0, 0, 0.1); -} -.skin-purple-light .main-header .navbar .sidebar-toggle { - color: #fff; -} -.skin-purple-light .main-header .navbar .sidebar-toggle:hover { - background-color: #555299; -} -@media (max-width: 767px) { - .skin-purple-light .main-header .navbar .dropdown-menu li.divider { - background-color: rgba(255, 255, 255, 0.1); - } - .skin-purple-light .main-header .navbar .dropdown-menu li a { - color: #fff; - } - .skin-purple-light .main-header .navbar .dropdown-menu li a:hover { - background: #555299; - } -} -.skin-purple-light .main-header .logo { - background-color: #605ca8; - color: #ffffff; - border-bottom: 0 solid transparent; -} -.skin-purple-light .main-header .logo:hover { - background-color: #5d59a6; -} -.skin-purple-light .main-header li.user-header { - background-color: #605ca8; -} -.skin-purple-light .content-header { - background: transparent; -} -.skin-purple-light .wrapper, -.skin-purple-light .main-sidebar, -.skin-purple-light .left-side { - background-color: #f9fafc; -} -.skin-purple-light .main-sidebar { - border-right: 1px solid #d2d6de; -} -.skin-purple-light .user-panel > .info, -.skin-purple-light .user-panel > .info > a { - color: #444444; -} -.skin-purple-light .sidebar-menu > li { - -webkit-transition: border-left-color 0.3s ease; - -o-transition: border-left-color 0.3s ease; - transition: border-left-color 0.3s ease; -} -.skin-purple-light .sidebar-menu > li.header { - color: #848484; - background: #f9fafc; -} -.skin-purple-light .sidebar-menu > li > a { - border-left: 3px solid transparent; - font-weight: 600; -} -.skin-purple-light .sidebar-menu > li:hover > a, -.skin-purple-light .sidebar-menu > li.active > a { - color: #000000; - background: #f4f4f5; -} -.skin-purple-light .sidebar-menu > li.active { - border-left-color: #605ca8; -} -.skin-purple-light .sidebar-menu > li.active > a { - font-weight: 600; -} -.skin-purple-light .sidebar-menu > li > .treeview-menu { - background: #f4f4f5; -} -.skin-purple-light .sidebar a { - color: #444444; -} -.skin-purple-light .sidebar a:hover { - text-decoration: none; -} -.skin-purple-light .sidebar-menu .treeview-menu > li > a { - color: #777777; -} -.skin-purple-light .sidebar-menu .treeview-menu > li.active > a, -.skin-purple-light .sidebar-menu .treeview-menu > li > a:hover { - color: #000000; -} -.skin-purple-light .sidebar-menu .treeview-menu > li.active > a { - font-weight: 600; -} -.skin-purple-light .sidebar-form { - border-radius: 3px; - border: 1px solid #d2d6de; - margin: 10px 10px; -} -.skin-purple-light .sidebar-form input[type="text"], -.skin-purple-light .sidebar-form .btn { - box-shadow: none; - background-color: #fff; - border: 1px solid transparent; - height: 35px; -} -.skin-purple-light .sidebar-form input[type="text"] { - color: #666; - border-top-left-radius: 2px; - border-top-right-radius: 0; - border-bottom-right-radius: 0; - border-bottom-left-radius: 2px; -} -.skin-purple-light .sidebar-form input[type="text"]:focus, -.skin-purple-light .sidebar-form input[type="text"]:focus + .input-group-btn .btn { - background-color: #fff; - color: #666; -} -.skin-purple-light .sidebar-form input[type="text"]:focus + .input-group-btn .btn { - border-left-color: #fff; -} -.skin-purple-light .sidebar-form .btn { - color: #999; - border-top-left-radius: 0; - border-top-right-radius: 2px; - border-bottom-right-radius: 2px; - border-bottom-left-radius: 0; -} -@media (min-width: 768px) { - .skin-purple-light.sidebar-mini.sidebar-collapse .sidebar-menu > li > .treeview-menu { - border-left: 1px solid #d2d6de; - } -} -/* - * This theme was upgraded to FONT AWESOME 5 - * which is not supported by the original "AdminLTE" theme yet. - * - * So we have to do add add some additional styles: - */ -.sidebar-menu > li > a > .far, -.sidebar-menu > li > a > .fas, -.sidebar-menu > li > a > .fal, -.sidebar-menu > li > a > .fab { - width: 20px; } - -.sidebar-menu .treeview-menu > li > a > .far, -.sidebar-menu .treeview-menu > li > a > .fas, -.sidebar-menu .treeview-menu > li > a > .fal, -.sidebar-menu .treeview-menu > li > a > .fab { - width: 20px; } - -.main-header .sidebar-toggle { - font-family: "Font Awesome 5 Free"; - font-weight: 900; } - -.login-page form label { - padding-left: 5px; } - -.control-label.required:after { - content: " *"; - font-size: 110%; } - -.timeline > li > .far, -.timeline > li > .fas, -.timeline > li > .fal, -.timeline > li > .fab { - width: 30px; - height: 30px; - font-size: 15px; - line-height: 30px; - position: absolute; - color: #666; - background: #d2d6de; - border-radius: 50%; - text-align: center; - left: 18px; - top: 0; } -/* iCheck plugin Square skin, blue ------------------------------------ */ -.icheckbox_square-blue, -.iradio_square-blue { - display: inline-block; - *display: inline; - vertical-align: middle; - margin: 0; - padding: 0; - width: 22px; - height: 22px; - background: url(./images/blue.png?96f8a905) no-repeat; - border: none; - cursor: pointer; -} - -.icheckbox_square-blue { - background-position: 0 0; -} - .icheckbox_square-blue.hover { - background-position: -24px 0; - } - .icheckbox_square-blue.checked { - background-position: -48px 0; - } - .icheckbox_square-blue.disabled { - background-position: -72px 0; - cursor: default; - } - .icheckbox_square-blue.checked.disabled { - background-position: -96px 0; - } - -.iradio_square-blue { - background-position: -120px 0; -} - .iradio_square-blue.hover { - background-position: -144px 0; - } - .iradio_square-blue.checked { - background-position: -168px 0; - } - .iradio_square-blue.disabled { - background-position: -192px 0; - cursor: default; - } - .iradio_square-blue.checked.disabled { - background-position: -216px 0; - } - -/* HiDPI support */ -@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) { - .icheckbox_square-blue, - .iradio_square-blue { - background-image: url(./images/blue@2x.png?2694acfd); - -webkit-background-size: 240px 24px; - background-size: 240px 24px; - } -}/* - * This file is part of the Kimai time-tracking app. - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -.error-page { - margin-bottom: 50px; } - -@media print { - .sf-toolbar, .control-sidebar { - display: none !important; } } - -/* - * This file is part of the Kimai time-tracking app. - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -.content { - padding: 15px 0; } - -.content-header h1 small { - display: none; } - -@media (min-width: 768px) { - .content-header h1 small { - display: inline-block; } - .content { - padding: 15px; } } - -td.timesheet-description ul { - padding-left: 15px; } - -td.timesheet-description p { - margin: 0; } - -/* - * This file is part of the Kimai time-tracking app. - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -/* Page based action buttons in the upper right corner of the content area */ -.content-header > .breadcrumb { - position: absolute; - float: right; - background: transparent; } - -/* Right sidebar with additional tabs for personal settings and "About Kimai" section */ -.control-sidebar select { - color: #555555; - background-color: #fff; } - -.control-sidebar div.image img.img-circle { - max-width: 34px; } - -.toolbar-pad { - padding: 10px; } - -/* The filter form is available on most pages above the datatable */ -@media (min-width: 768px) { - .toolbar form.navbar-form { - font-size: 14px; } - .toolbar form.navbar-form .form-control { - display: inline-block; - width: 100%; - vertical-align: middle; } - .toolbar form.navbar-form .control-label { - width: 100%; } - .toolbar form.navbar-form .input-group { - width: 100%; } - .toolbar-pad { - padding: 10px 0; } } - -/* ================================ SIDEBAR ================================ */ -/* Used for the Sidebar UserPanel (which is deactivated right now) */ -.user-panel > .info { - left: 80px; } - -/* ================================ FOOTER ================================ */ -footer.main-footer { - padding: 5px; - font-size: 80%; } - -/* - * This file is part of the Kimai time-tracking app. - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -.invoice { - margin: 0; - border: none; } - -@media (min-width: 768px) { - .invoice { - margin: 25px; } } - -.page-header-small { - font-size: 14px; } - -div.invoice-address { - margin-top: 30px; - margin-bottom: 30px; } - -table.invoice-meta th { - padding-right: 40px; } - -table.invoice-sum th { - width: 70%; } - -table.invoice-sum th, table.invoice-sum td { - text-align: right; } - -/* ================================ FREELANCER INVOICE ================================ */ -#freelancer-invoice { - font: 15px/1 "Helvetica Neue", Helvetica, Arial, sans-serif; - box-sizing: border-box; - /* table */ - /* header */ - /* article */ - /* table meta & balance */ - /* table meta */ - /* table balance */ - /* table items */ - /* footer */ - /* aside */ } - #freelancer-invoice h1 { - font: bold 100% sans-serif; - letter-spacing: 0.5em; - text-align: center; - text-transform: uppercase; } - #freelancer-invoice h2 { - font: bold 1.5em sans-serif; - margin-bottom: 1em; } - #freelancer-invoice table { - table-layout: fixed; - width: 100%; } - #freelancer-invoice table { - border-collapse: separate; - border-spacing: 0; } - #freelancer-invoice header:after { - clear: both; - content: ""; - display: table; - font-size: 1em; } - #freelancer-invoice header address { - float: left; - font-style: normal; - line-height: 1.25; - margin: 0 1em 1em 0; - font-weight: bold; - font-size: 0.7em; } - #freelancer-invoice article address { - font-size: 1em; - float: left; - margin: 1em 0; } - #freelancer-invoice article.address { - margin-bottom: 1.5em; } - #freelancer-invoice article.footer { - margin-top: 60px; } - #freelancer-invoice article, #freelancer-invoice table.meta, #freelancer-invoice table.inventory { - margin: 1em 0; } - #freelancer-invoice article:after { - clear: both; - content: ""; - display: table; } - #freelancer-invoice article h1 { - clip: rect(0 0 0 0); - position: absolute; } - #freelancer-invoice article p { - margin-bottom: 20px; } - #freelancer-invoice table.meta:after, #freelancer-invoice table.balance:after { - clear: both; - content: ""; - display: table; } - #freelancer-invoice table.meta { - float: right; - width: 50%; - font-size: 85%; } - #freelancer-invoice table.meta th { - text-align: right; - font-weight: normal; } - #freelancer-invoice table.meta td { - width: 120px; - text-align: right; } - #freelancer-invoice table.balance { - float: right; } - #freelancer-invoice table.balance th { - text-align: right; - font-weight: normal; } - #freelancer-invoice table.balance td { - width: 140px; - text-align: right; } - #freelancer-invoice table.balance .total { - font-weight: bold; } - #freelancer-invoice table.inventory { - clear: both; - width: 100%; - margin-top: 2em; - border-bottom: 1px solid #000; } - #freelancer-invoice table.inventory th { - font-weight: bold; - border-width: 0 0 1px 0; - border-bottom: 1px solid #000; } - #freelancer-invoice table.inventory th, - #freelancer-invoice table.inventory td { - padding: 5px; } - #freelancer-invoice table.inventory td:nth-child(1), - #freelancer-invoice table.inventory th:nth-child(1) { - text-align: left; } - #freelancer-invoice table.inventory td:nth-child(2), - #freelancer-invoice table.inventory th:nth-child(2) { - text-align: center; - width: 20%; } - #freelancer-invoice table.inventory td:nth-child(3), - #freelancer-invoice table.inventory th:nth-child(3) { - text-align: center; - width: 20%; } - #freelancer-invoice table.inventory td:nth-child(4), - #freelancer-invoice table.inventory th:nth-child(4) { - text-align: right; - width: 20%; } - #freelancer-invoice footer { - margin-top: 50px; } - #freelancer-invoice footer table { - border-top: 1px solid #000; - font-size: 0.8em; - padding-top: 5px; } - #freelancer-invoice footer th { - text-align: left; - font-weight: bold; - margin-bottom: 10px; } - #freelancer-invoice footer table th:nth-child(1) { - width: 32%; } - #freelancer-invoice footer table th:nth-child(3) { - width: 28%; } - #freelancer-invoice footer td { - text-align: left; - vertical-align: bottom; } - #freelancer-invoice aside { - position: absolute; - top: 10in; - width: 7.5in; } - #freelancer-invoice aside h1 { - border: none; - border-width: 0 0 1px; - margin: 0 0 1em; } - #freelancer-invoice aside h1 { - border-color: #999; - border-bottom-style: solid; } - #freelancer-invoice aside p { - font-size: 85%; } - #freelancer-invoice aside div { - margin-top: 15px; } - #freelancer-invoice aside div p { - line-height: 1.4; } - #freelancer-invoice aside p span { - width: 130px; - font-weight: bold; - display: inline-block; } - -@media print { - * { - -webkit-print-color-adjust: exact; } - body, .wrapper, #freelancer-invoice { - margin: 0; - padding: 0; } - #freelancer-invoice { - margin: 1em 2em; } - #freelancer-invoice span:empty { - display: none; } - #freelancer-invoice .add, #freelancer-invoice .cut { - display: none; } - .invoice { - width: unset; } } - -/* - * This file is part of the Kimai time-tracking app. - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -/* Loading indicator: overwritten from AdminLTE for positioning and supporting fas classes */ -.box .overlay > .fas, -section.content .overlay > .fas, -.overlay-wrapper .overlay > .fas { - position: absolute; - top: 50vh; - left: 50vw; - margin-left: -15px; - margin-top: -15px; - color: #000; - font-size: 30px; } - -.box > .overlay, -.overlay-wrapper > .overlay, -section.content > .overlay, -.box > .loading-img, -.overlay-wrapper > .loading-img { - position: absolute; - top: 0; - left: 0; - width: 100%; - height: 100%; } - -.box .overlay, -section.content .overlay, -.overlay-wrapper .overlay { - z-index: 50; - background: rgba(255, 255, 255, 0.7); - border-radius: 3px; } - -.box .overlay.dark, -section.content .overlay.dark, -.overlay-wrapper .overlay.dark { - background: rgba(0, 0, 0, 0.5); } - -/* -dataTables.bootstrap.css -*/ -div.dataTables_length label { - font-weight: normal; - text-align: left; - white-space: nowrap; } - -div.dataTables_length select { - width: 75px; - display: inline-block; } - -div.dataTables_filter { - text-align: right; } - -div.dataTables_filter label { - font-weight: normal; - white-space: nowrap; - text-align: left; } - -div.dataTables_filter input { - margin-left: 0.5em; - display: inline-block; - width: auto; } - -div.dataTables_info { - padding-top: 8px; - white-space: nowrap; } - -div.dataTables_paginate { - margin: 0; - white-space: nowrap; - text-align: right; } - -div.dataTables_paginate ul.pagination { - margin: 2px 0; - white-space: nowrap; } - -@media screen and (max-width: 767px) { - div.dataTables_length, - div.dataTables_filter, - div.dataTables_info, - div.dataTables_paginate { - text-align: center; } - div.DTTT { - margin-bottom: 0.5em; } } - -table.dataTable td, -table.dataTable th { - -webkit-box-sizing: content-box; - -moz-box-sizing: content-box; - box-sizing: content-box; } - -table.dataTable { - clear: both; - /*margin-top: 6px !important; - margin-bottom: 6px !important;*/ - margin-bottom: 0px !important; - max-width: none !important; } - -table.dataTable thead .sorting, -table.dataTable thead .sorting_asc, -table.dataTable thead .sorting_desc, -table.dataTable thead .sorting_asc_disabled, -table.dataTable thead .sorting_desc_disabled { - cursor: pointer; - position: relative; } - -table.dataTable thead .sorting:after, -table.dataTable thead .sorting_asc:after, -table.dataTable thead .sorting_desc:after { - position: absolute; - top: 8px; - right: 8px; - display: block; - font-family: 'Glyphicons Halflings'; - opacity: 0.5; } - -table.dataTable thead .sorting:after { - opacity: 0.2; - content: "\E150"; - /* sort */ } - -table.dataTable thead .sorting_asc:after { - content: "\E155"; - /* sort-by-attributes */ } - -table.dataTable thead .sorting_desc:after { - content: "\E156"; - /* sort-by-attributes-alt */ } - -div.dataTables_scrollBody table.dataTable thead .sorting:after, -div.dataTables_scrollBody table.dataTable thead .sorting_asc:after, -div.dataTables_scrollBody table.dataTable thead .sorting_desc:after { - display: none; } - -table.dataTable thead .sorting_asc_disabled:after, -table.dataTable thead .sorting_desc_disabled:after { - color: #eee; } - -table.dataTable thead > tr > th { - white-space: nowrap; } - -/* -table.dataTable thead > tr > th { - padding-right: 30px; -} -*/ -table.dataTable th:active { - outline: none; } - -/* Condensed */ -table.dataTable.table-condensed thead > tr > th { - padding-right: 20px; } - -table.dataTable.table-condensed thead .sorting:after, -table.dataTable.table-condensed thead .sorting_asc:after, -table.dataTable.table-condensed thead .sorting_desc:after { - top: 6px; - right: 6px; } - -/* Scrolling */ -div.dataTables_scrollHead table { - margin-bottom: 0 !important; - border-bottom-left-radius: 0; - border-bottom-right-radius: 0; } - -div.dataTables_scrollHead table thead tr:last-child th:first-child, -div.dataTables_scrollHead table thead tr:last-child td:first-child { - border-bottom-left-radius: 0 !important; - border-bottom-right-radius: 0 !important; } - -div.dataTables_scrollBody table { - border-top: none; - margin-top: 0 !important; - margin-bottom: 0 !important; } - -div.dataTables_scrollBody tbody tr:first-child th, -div.dataTables_scrollBody tbody tr:first-child td { - border-top: none; } - -div.dataTables_scrollFoot table { - margin-top: 0 !important; - border-top: none; } - -/* Frustratingly the border-collapse:collapse used by Bootstrap makes the column - width calculations when using scrolling impossible to align columns. We have - to use separate - */ -table.table-bordered.dataTable { - border-collapse: separate !important; } - -table.table-bordered thead th, -table.table-bordered thead td { - border-left-width: 0; - border-top-width: 0; } - -table.table-bordered tbody th, -table.table-bordered tbody td { - border-left-width: 0; - border-bottom-width: 0; } - -table.table-bordered tfoot th, -table.table-bordered tfoot td { - border-left-width: 0; - border-bottom-width: 0; } - -table.table-bordered th:last-child, -table.table-bordered td:last-child { - border-right-width: 0; } - -div.dataTables_scrollHead table.table-bordered { - border-bottom-width: 0; } - -/* - * TableTools styles - */ -.table.dataTable tbody tr.active td, -.table.dataTable tbody tr.active th { - background-color: #08C; - color: white; } - -.table.dataTable tbody tr.active:hover td, -.table.dataTable tbody tr.active:hover th { - background-color: #0075b0 !important; } - -.table.dataTable tbody tr.active th > a, -.table.dataTable tbody tr.active td > a { - color: white; } - -.table-striped.dataTable tbody tr.active:nth-child(odd) td, -.table-striped.dataTable tbody tr.active:nth-child(odd) th { - background-color: #017ebc; } - -table.dataTable { - /* summary row, like the timesheet table provides */ } - table.dataTable tr.summary td { - font-weight: bold; - border-bottom: 1px solid #ccc; } - table.dataTable td { - /* - Make sure that the action buttons do not line-break if another column takes all available space - See https://github.com/twbs/bootstrap/issues/9939#issuecomment-37682952 - */ } - table.dataTable td .btn-group { - display: flex; } - table.dataTable td .label { - font-size: 85%; - font-weight: 500; - padding: .3em .6em .3em; } - -.popover-content .calendar-entry ul { - padding: 0 0 0 10px; } - -/* - * This file is part of the Kimai time-tracking app. - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -section.dashboard .info-box .info-box-text { - white-space: normal; } - -/* - * This file is part of the Kimai time-tracking app. - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -.navbar-nav li > a.ddt-large { - padding: 16px 12px 11px 12px; - font-size: 10px; } - -.navbar-nav li.messages-menu ul.menu li .pull-left i { - color: #dd4b39; } - -.navbar-nav .messages-menu > .dropdown-menu > li .menu > li > a > p { - overflow: hidden; - text-overflow: ellipsis; } - -.navbar-nav .start_record { - text-align: center; } - -.navbar-nav .dropdown-menu { - max-width: 90vw; - width: unset !important; } - -/* -.ticktac:hover i.running{ - color: #4ff131; -} - -li.open .ticktac i.running{ - color: #4ff131; -} - -.ticktac i.stopped{ - color: #fff; -} - -.ticktac:hover i.stopped{ - color: #4ff131; -} -.user-panel>.info { - left: 40px; - padding-top: 0px; -} -*/ -.drp-calendar .calendar-table td.today:not(.active) { - background-color: #cde0f1; - color: #357ebd; } - -.drp-calendar .calendar-table select.yearselect { - width: unset; } -/*! + */.layout-boxed body,.layout-boxed html,body,html{height:100%}body{font-family:Source Sans Pro,Helvetica Neue,Helvetica,Arial,sans-serif;font-weight:400}.wrapper,body{overflow-x:hidden;overflow-y:auto}.wrapper{height:100%;position:relative}.wrapper:after,.wrapper:before{content:" ";display:table}.wrapper:after{clear:both}.layout-boxed .wrapper{max-width:1250px;margin:0 auto;min-height:100%;box-shadow:0 0 8px rgba(0,0,0,.5);position:relative}.layout-boxed{background-color:#f9fafc}.content-wrapper,.main-footer{-webkit-transition:-webkit-transform .3s ease-in-out,margin .3s ease-in-out;-moz-transition:-moz-transform .3s ease-in-out,margin .3s ease-in-out;-o-transition:-o-transform .3s ease-in-out,margin .3s ease-in-out;transition:transform .3s ease-in-out,margin .3s ease-in-out;margin-left:230px;z-index:820}.layout-top-nav .content-wrapper,.layout-top-nav .main-footer{margin-left:0}@media (max-width:767px){.content-wrapper,.main-footer{margin-left:0}}@media (min-width:768px){.sidebar-collapse .content-wrapper,.sidebar-collapse .main-footer{margin-left:0}}@media (max-width:767px){.sidebar-open .content-wrapper,.sidebar-open .main-footer{-webkit-transform:translate(230px);-ms-transform:translate(230px);-o-transform:translate(230px);transform:translate(230px)}}.content-wrapper{min-height:100%;background-color:#ecf0f5;z-index:800}.main-footer{background:#fff;padding:15px;color:#444;border-top:1px solid #d2d6de}.fixed .left-side,.fixed .main-header,.fixed .main-sidebar{position:fixed}.fixed .main-header{top:0;right:0;left:0}.fixed .content-wrapper,.fixed .right-side{padding-top:50px}@media (max-width:767px){.fixed .content-wrapper,.fixed .right-side{padding-top:100px}}.fixed.layout-boxed .wrapper{max-width:100%}.fixed .wrapper{overflow:hidden}.hold-transition .content-wrapper,.hold-transition .left-side,.hold-transition .main-footer,.hold-transition .main-header .logo,.hold-transition .main-header .navbar,.hold-transition .main-sidebar,.hold-transition .menu-open .fa-angle-left,.hold-transition .right-side{-webkit-transition:none;-o-transition:none;transition:none}.content{min-height:250px;padding:15px;margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{font-family:Source Sans Pro,sans-serif}a{color:#3c8dbc}a:active,a:focus,a:hover{outline:none;text-decoration:none;color:#72afd2}.page-header{margin:10px 0 20px;font-size:22px}.page-header>small{color:#666;display:block;margin-top:5px}.main-header{position:relative;max-height:100px;z-index:1030}.main-header .navbar{-webkit-transition:margin-left .3s ease-in-out;-o-transition:margin-left .3s ease-in-out;transition:margin-left .3s ease-in-out;margin-bottom:0;margin-left:230px;border:none;min-height:50px;border-radius:0}.layout-top-nav .main-header .navbar{margin-left:0}.main-header #navbar-search-input.form-control{background:hsla(0,0%,100%,.2);border-color:transparent}.main-header #navbar-search-input.form-control:active,.main-header #navbar-search-input.form-control:focus{border-color:rgba(0,0,0,.1);background:hsla(0,0%,100%,.9)}.main-header #navbar-search-input.form-control::-moz-placeholder{color:#ccc;opacity:1}.main-header #navbar-search-input.form-control:-ms-input-placeholder{color:#ccc}.main-header #navbar-search-input.form-control::-webkit-input-placeholder{color:#ccc}.main-header .navbar-custom-menu,.main-header .navbar-right{float:right}@media (max-width:991px){.main-header .navbar-custom-menu a,.main-header .navbar-right a{color:inherit;background:transparent}}@media (max-width:767px){.main-header .navbar-right{float:none}.navbar-collapse .main-header .navbar-right{margin:7.5px -15px}.main-header .navbar-right>li{color:inherit;border:0}}.main-header .sidebar-toggle{float:left;background-color:transparent;background-image:none;padding:15px;font-family:fontAwesome}.main-header .sidebar-toggle:before{content:"\F0C9"}.main-header .sidebar-toggle:hover{color:#fff}.main-header .sidebar-toggle:active,.main-header .sidebar-toggle:focus{background:transparent}.main-header .sidebar-toggle .icon-bar{display:none}.main-header .navbar .nav>li.user>a>.fa,.main-header .navbar .nav>li.user>a>.glyphicon,.main-header .navbar .nav>li.user>a>.ion{margin-right:5px}.main-header .navbar .nav>li>a>.label{position:absolute;top:9px;right:7px;text-align:center;font-size:9px;padding:2px 3px;line-height:.9}.main-header .logo{-webkit-transition:width .3s ease-in-out;-o-transition:width .3s ease-in-out;transition:width .3s ease-in-out;display:block;float:left;height:50px;font-size:20px;line-height:50px;text-align:center;width:230px;font-family:Helvetica Neue,Helvetica,Arial,sans-serif;padding:0 15px;font-weight:300;overflow:hidden}.main-header .logo .logo-lg{display:block}.main-header .logo .logo-mini{display:none}.main-header .navbar-brand{color:#fff}.content-header{position:relative;padding:15px 15px 0}.content-header>h1{margin:0;font-size:24px}.content-header>h1>small{font-size:15px;display:inline-block;padding-left:4px;font-weight:300}.content-header>.breadcrumb{float:right;background:transparent;margin-top:0;margin-bottom:0;font-size:12px;padding:7px 5px;position:absolute;top:15px;right:10px;border-radius:2px}.content-header>.breadcrumb>li>a{color:#444;text-decoration:none;display:inline-block}.content-header>.breadcrumb>li>a>.fa,.content-header>.breadcrumb>li>a>.glyphicon,.content-header>.breadcrumb>li>a>.ion{margin-right:5px}.content-header>.breadcrumb>li+li:before{content:">\A0"}@media (max-width:991px){.content-header>.breadcrumb{position:relative;margin-top:5px;top:0;right:0;float:none;background:#d2d6de;padding-left:10px}.content-header>.breadcrumb li:before{color:#97a0b3}}.navbar-toggle{color:#fff;border:0;margin:0;padding:15px}@media (max-width:991px){.navbar-custom-menu .navbar-nav>li{float:left}.navbar-custom-menu .navbar-nav{margin:0;float:left}.navbar-custom-menu .navbar-nav>li>a{padding-top:15px;padding-bottom:15px;line-height:20px}}@media (max-width:767px){.main-header{position:relative}.main-header .logo,.main-header .navbar{width:100%;float:none}.main-header .navbar{margin:0}.main-header .navbar-custom-menu{float:right}}@media (max-width:991px){.navbar-collapse.pull-left{float:none!important}.navbar-collapse.pull-left+.navbar-custom-menu{display:block;position:absolute;top:0;right:40px}}.main-sidebar{position:absolute;top:0;left:0;padding-top:50px;min-height:100%;width:230px;z-index:810;-webkit-transition:-webkit-transform .3s ease-in-out,width .3s ease-in-out;-moz-transition:-moz-transform .3s ease-in-out,width .3s ease-in-out;-o-transition:-o-transform .3s ease-in-out,width .3s ease-in-out;transition:transform .3s ease-in-out,width .3s ease-in-out}@media (max-width:767px){.main-sidebar{padding-top:100px;-webkit-transform:translate(-230px);-ms-transform:translate(-230px);-o-transform:translate(-230px);transform:translate(-230px)}}@media (min-width:768px){.sidebar-collapse .main-sidebar{-webkit-transform:translate(-230px);-ms-transform:translate(-230px);-o-transform:translate(-230px);transform:translate(-230px)}}@media (max-width:767px){.sidebar-open .main-sidebar{-webkit-transform:translate(0);-ms-transform:translate(0);-o-transform:translate(0);transform:translate(0)}}.sidebar{padding-bottom:10px}.sidebar-form input:focus{border-color:transparent}.user-panel{position:relative;width:100%;padding:10px;overflow:hidden}.user-panel:after,.user-panel:before{content:" ";display:table}.user-panel:after{clear:both}.user-panel>.image>img{width:100%;max-width:45px;height:auto}.user-panel>.info{padding:5px 5px 5px 15px;line-height:1;position:absolute;left:55px}.user-panel>.info>p{font-weight:600;margin-bottom:9px}.user-panel>.info>a{text-decoration:none;padding-right:5px;margin-top:3px;font-size:11px}.user-panel>.info>a>.fa,.user-panel>.info>a>.glyphicon,.user-panel>.info>a>.ion{margin-right:3px}.sidebar-menu{list-style:none;margin:0;padding:0}.sidebar-menu>li{position:relative;margin:0;padding:0}.sidebar-menu>li>a{padding:12px 5px 12px 15px;display:block}.sidebar-menu>li>a>.fa,.sidebar-menu>li>a>.glyphicon,.sidebar-menu>li>a>.ion{width:20px}.sidebar-menu>li .badge,.sidebar-menu>li .label{margin-right:5px}.sidebar-menu>li .badge{margin-top:3px}.sidebar-menu li.header{padding:10px 25px 10px 15px;font-size:12px}.sidebar-menu li>a>.fa-angle-left,.sidebar-menu li>a>.pull-right-container>.fa-angle-left{width:auto;height:auto;padding:0;margin-right:10px;-webkit-transition:transform .5s ease;-o-transition:transform .5s ease;transition:transform .5s ease}.sidebar-menu li>a>.fa-angle-left{position:absolute;top:50%;right:10px;margin-top:-8px}.sidebar-menu .menu-open>a>.fa-angle-left,.sidebar-menu .menu-open>a>.pull-right-container>.fa-angle-left{-webkit-transform:rotate(-90deg);-ms-transform:rotate(-90deg);-o-transform:rotate(-90deg);transform:rotate(-90deg)}.sidebar-menu .active>.treeview-menu{display:block}@media (min-width:768px){.sidebar-mini.sidebar-collapse .content-wrapper,.sidebar-mini.sidebar-collapse .main-footer,.sidebar-mini.sidebar-collapse .right-side{margin-left:50px!important;z-index:840}.sidebar-mini.sidebar-collapse .main-sidebar{-webkit-transform:translate(0);-ms-transform:translate(0);-o-transform:translate(0);transform:translate(0);width:50px!important;z-index:850}.sidebar-mini.sidebar-collapse .sidebar-menu>li{position:relative}.sidebar-mini.sidebar-collapse .sidebar-menu>li>a{margin-right:0}.sidebar-mini.sidebar-collapse .sidebar-menu>li>a>span{border-top-right-radius:4px}.sidebar-mini.sidebar-collapse .sidebar-menu>li:not(.treeview)>a>span{border-bottom-right-radius:4px}.sidebar-mini.sidebar-collapse .sidebar-menu>li>.treeview-menu{padding-top:5px;padding-bottom:5px;border-bottom-right-radius:4px}.sidebar-mini.sidebar-collapse .main-sidebar .user-panel>.info,.sidebar-mini.sidebar-collapse .sidebar-form,.sidebar-mini.sidebar-collapse .sidebar-menu>li>.treeview-menu,.sidebar-mini.sidebar-collapse .sidebar-menu>li>a>.pull-right,.sidebar-mini.sidebar-collapse .sidebar-menu>li>a>span,.sidebar-mini.sidebar-collapse .sidebar-menu li.header{display:none!important;-webkit-transform:translateZ(0)}.sidebar-mini.sidebar-collapse .main-header .logo{width:50px}.sidebar-mini.sidebar-collapse .main-header .logo>.logo-mini{display:block;margin-left:-15px;margin-right:-15px;font-size:18px}.sidebar-mini.sidebar-collapse .main-header .logo>.logo-lg{display:none}.sidebar-mini.sidebar-collapse .main-header .navbar{margin-left:50px}}@media (min-width:768px){.sidebar-mini:not(.sidebar-mini-expand-feature).sidebar-collapse .sidebar-menu>li:hover>.treeview-menu,.sidebar-mini:not(.sidebar-mini-expand-feature).sidebar-collapse .sidebar-menu>li:hover>a>span:not(.pull-right){display:block!important;position:absolute;width:180px;left:50px}.sidebar-mini:not(.sidebar-mini-expand-feature).sidebar-collapse .sidebar-menu>li:hover>a>span{top:0;margin-left:-3px;padding:12px 5px 12px 20px;background-color:inherit}.sidebar-mini:not(.sidebar-mini-expand-feature).sidebar-collapse .sidebar-menu>li:hover>a>.pull-right-container{position:relative!important;float:right;width:auto!important;left:180px!important;top:-22px!important;z-index:900}.sidebar-mini:not(.sidebar-mini-expand-feature).sidebar-collapse .sidebar-menu>li:hover>a>.pull-right-container>.label:not(:first-of-type){display:none}.sidebar-mini:not(.sidebar-mini-expand-feature).sidebar-collapse .sidebar-menu>li:hover>.treeview-menu{top:44px;margin-left:0}}.sidebar-expanded-on-hover .content-wrapper,.sidebar-expanded-on-hover .main-footer{margin-left:50px}.sidebar-expanded-on-hover .main-sidebar{box-shadow:3px 0 8px rgba(0,0,0,.125)}.main-sidebar .user-panel,.sidebar-menu,.sidebar-menu>li.header{white-space:nowrap;overflow:hidden}.sidebar-menu:hover{overflow:visible}.sidebar-form,.sidebar-menu>li.header{overflow:hidden;text-overflow:clip}.sidebar-menu li>a{position:relative}.sidebar-menu li>a>.pull-right-container{position:absolute;right:10px;top:50%;margin-top:-7px}.control-sidebar-bg{position:fixed;z-index:1000;bottom:0}.control-sidebar,.control-sidebar-bg{top:0;right:-230px;width:230px;-webkit-transition:right .3s ease-in-out;-o-transition:right .3s ease-in-out;transition:right .3s ease-in-out}.control-sidebar{position:absolute;padding-top:50px;z-index:1010}@media (max-width:767px){.control-sidebar{padding-top:100px}}.control-sidebar>.tab-content{padding:10px 15px}.control-sidebar-open .control-sidebar,.control-sidebar-open .control-sidebar-bg,.control-sidebar.control-sidebar-open,.control-sidebar.control-sidebar-open+.control-sidebar-bg{right:0}@media (min-width:768px){.control-sidebar-open .content-wrapper,.control-sidebar-open .main-footer,.control-sidebar-open .right-side{margin-right:230px}}.fixed .control-sidebar{position:fixed;height:100%;overflow-y:auto;padding-bottom:50px}.nav-tabs.control-sidebar-tabs>li:first-of-type>a,.nav-tabs.control-sidebar-tabs>li:first-of-type>a:focus,.nav-tabs.control-sidebar-tabs>li:first-of-type>a:hover{border-left-width:0}.nav-tabs.control-sidebar-tabs>li>a{border-radius:0}.nav-tabs.control-sidebar-tabs>li>a,.nav-tabs.control-sidebar-tabs>li>a:hover{border-top:none;border-right:none;border-left:1px solid transparent;border-bottom:1px solid transparent}.nav-tabs.control-sidebar-tabs>li>a .icon{font-size:16px}.nav-tabs.control-sidebar-tabs>li.active>a,.nav-tabs.control-sidebar-tabs>li.active>a:active,.nav-tabs.control-sidebar-tabs>li.active>a:focus,.nav-tabs.control-sidebar-tabs>li.active>a:hover{border-top:none;border-right:none;border-bottom:none}@media (max-width:768px){.nav-tabs.control-sidebar-tabs{display:table}.nav-tabs.control-sidebar-tabs>li{display:table-cell}}.control-sidebar-heading{font-weight:400;font-size:16px;padding:10px 0;margin-bottom:10px}.control-sidebar-subheading{display:block;font-weight:400;font-size:14px}.control-sidebar-menu{list-style:none;padding:0;margin:0 -15px}.control-sidebar-menu>li>a{display:block;padding:10px 15px}.control-sidebar-menu>li>a:after,.control-sidebar-menu>li>a:before{content:" ";display:table}.control-sidebar-menu>li>a:after{clear:both}.control-sidebar-menu>li>a>.control-sidebar-subheading{margin-top:0}.control-sidebar-menu .menu-icon{float:left;width:35px;height:35px;border-radius:50%;text-align:center;line-height:35px}.control-sidebar-menu .menu-info{margin-left:45px;margin-top:3px}.control-sidebar-menu .menu-info>.control-sidebar-subheading{margin:0}.control-sidebar-menu .menu-info>p{margin:0;font-size:11px}.control-sidebar-menu .progress{margin:0}.control-sidebar-dark{color:#b8c7ce}.control-sidebar-dark,.control-sidebar-dark+.control-sidebar-bg{background:#222d32}.control-sidebar-dark .nav-tabs.control-sidebar-tabs{border-bottom:#1c2529}.control-sidebar-dark .nav-tabs.control-sidebar-tabs>li>a{background:#181f23;color:#b8c7ce}.control-sidebar-dark .nav-tabs.control-sidebar-tabs>li>a,.control-sidebar-dark .nav-tabs.control-sidebar-tabs>li>a:focus,.control-sidebar-dark .nav-tabs.control-sidebar-tabs>li>a:hover{border-left-color:#141a1d;border-bottom-color:#141a1d}.control-sidebar-dark .nav-tabs.control-sidebar-tabs>li>a:active,.control-sidebar-dark .nav-tabs.control-sidebar-tabs>li>a:focus,.control-sidebar-dark .nav-tabs.control-sidebar-tabs>li>a:hover{background:#1c2529}.control-sidebar-dark .nav-tabs.control-sidebar-tabs>li>a:hover{color:#fff}.control-sidebar-dark .nav-tabs.control-sidebar-tabs>li.active>a,.control-sidebar-dark .nav-tabs.control-sidebar-tabs>li.active>a:active,.control-sidebar-dark .nav-tabs.control-sidebar-tabs>li.active>a:focus,.control-sidebar-dark .nav-tabs.control-sidebar-tabs>li.active>a:hover{background:#222d32;color:#fff}.control-sidebar-dark .control-sidebar-heading,.control-sidebar-dark .control-sidebar-subheading{color:#fff}.control-sidebar-dark .control-sidebar-menu>li>a:hover{background:#1e282c}.control-sidebar-dark .control-sidebar-menu>li>a .menu-info>p{color:#b8c7ce}.control-sidebar-light{color:#5e5e5e}.control-sidebar-light,.control-sidebar-light+.control-sidebar-bg{background:#f9fafc;border-left:1px solid #d2d6de}.control-sidebar-light .nav-tabs.control-sidebar-tabs{border-bottom:#d2d6de}.control-sidebar-light .nav-tabs.control-sidebar-tabs>li>a{background:#e8ecf4;color:#444}.control-sidebar-light .nav-tabs.control-sidebar-tabs>li>a,.control-sidebar-light .nav-tabs.control-sidebar-tabs>li>a:focus,.control-sidebar-light .nav-tabs.control-sidebar-tabs>li>a:hover{border-left-color:#d2d6de;border-bottom-color:#d2d6de}.control-sidebar-light .nav-tabs.control-sidebar-tabs>li>a:active,.control-sidebar-light .nav-tabs.control-sidebar-tabs>li>a:focus,.control-sidebar-light .nav-tabs.control-sidebar-tabs>li>a:hover{background:#eff1f7}.control-sidebar-light .nav-tabs.control-sidebar-tabs>li.active>a,.control-sidebar-light .nav-tabs.control-sidebar-tabs>li.active>a:active,.control-sidebar-light .nav-tabs.control-sidebar-tabs>li.active>a:focus,.control-sidebar-light .nav-tabs.control-sidebar-tabs>li.active>a:hover{background:#f9fafc;color:#111}.control-sidebar-light .control-sidebar-heading,.control-sidebar-light .control-sidebar-subheading{color:#111}.control-sidebar-light .control-sidebar-menu{margin-left:-14px}.control-sidebar-light .control-sidebar-menu>li>a:hover{background:#f4f4f5}.control-sidebar-light .control-sidebar-menu>li>a .menu-info>p{color:#5e5e5e}.dropdown-menu{box-shadow:none;border-color:#eee}.dropdown-menu>li>a{color:#777}.dropdown-menu>li>a>.fa,.dropdown-menu>li>a>.glyphicon,.dropdown-menu>li>a>.ion{margin-right:10px}.dropdown-menu>li>a:hover{background-color:#e1e3e9;color:#333}.dropdown-menu>.divider{background-color:#eee}.navbar-nav>.messages-menu>.dropdown-menu,.navbar-nav>.notifications-menu>.dropdown-menu,.navbar-nav>.tasks-menu>.dropdown-menu{width:280px;padding:0;margin:0;top:100%}.navbar-nav>.messages-menu>.dropdown-menu>li,.navbar-nav>.notifications-menu>.dropdown-menu>li,.navbar-nav>.tasks-menu>.dropdown-menu>li{position:relative}.navbar-nav>.messages-menu>.dropdown-menu>li.header,.navbar-nav>.notifications-menu>.dropdown-menu>li.header,.navbar-nav>.tasks-menu>.dropdown-menu>li.header{border-top-left-radius:4px;border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0;background-color:#fff;padding:7px 10px;border-bottom:1px solid #f4f4f4;color:#444;font-size:14px}.navbar-nav>.messages-menu>.dropdown-menu>li.footer>a,.navbar-nav>.notifications-menu>.dropdown-menu>li.footer>a,.navbar-nav>.tasks-menu>.dropdown-menu>li.footer>a{border-top-left-radius:0;border-top-right-radius:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px;font-size:12px;background-color:#fff;padding:7px 10px;border-bottom:1px solid #eee;color:#444!important;text-align:center}@media (max-width:991px){.navbar-nav>.messages-menu>.dropdown-menu>li.footer>a,.navbar-nav>.notifications-menu>.dropdown-menu>li.footer>a,.navbar-nav>.tasks-menu>.dropdown-menu>li.footer>a{background:#fff!important;color:#444!important}}.navbar-nav>.messages-menu>.dropdown-menu>li.footer>a:hover,.navbar-nav>.notifications-menu>.dropdown-menu>li.footer>a:hover,.navbar-nav>.tasks-menu>.dropdown-menu>li.footer>a:hover{text-decoration:none;font-weight:400}.navbar-nav>.messages-menu>.dropdown-menu>li .menu,.navbar-nav>.notifications-menu>.dropdown-menu>li .menu,.navbar-nav>.tasks-menu>.dropdown-menu>li .menu{max-height:200px;margin:0;padding:0;list-style:none;overflow-x:hidden}.navbar-nav>.messages-menu>.dropdown-menu>li .menu>li>a,.navbar-nav>.notifications-menu>.dropdown-menu>li .menu>li>a,.navbar-nav>.tasks-menu>.dropdown-menu>li .menu>li>a{display:block;white-space:nowrap;border-bottom:1px solid #f4f4f4}.navbar-nav>.messages-menu>.dropdown-menu>li .menu>li>a:hover,.navbar-nav>.notifications-menu>.dropdown-menu>li .menu>li>a:hover,.navbar-nav>.tasks-menu>.dropdown-menu>li .menu>li>a:hover{background:#f4f4f4;text-decoration:none}.navbar-nav>.notifications-menu>.dropdown-menu>li .menu>li>a{color:#444;overflow:hidden;text-overflow:ellipsis;padding:10px}.navbar-nav>.notifications-menu>.dropdown-menu>li .menu>li>a>.fa,.navbar-nav>.notifications-menu>.dropdown-menu>li .menu>li>a>.glyphicon,.navbar-nav>.notifications-menu>.dropdown-menu>li .menu>li>a>.ion{width:20px}.navbar-nav>.messages-menu>.dropdown-menu>li .menu>li>a{margin:0;padding:10px}.navbar-nav>.messages-menu>.dropdown-menu>li .menu>li>a>div>img{margin:auto 10px auto auto;width:40px;height:40px}.navbar-nav>.messages-menu>.dropdown-menu>li .menu>li>a>h4{padding:0;margin:0 0 0 45px;color:#444;font-size:15px;position:relative}.navbar-nav>.messages-menu>.dropdown-menu>li .menu>li>a>h4>small{color:#999;font-size:10px;position:absolute;top:0;right:0}.navbar-nav>.messages-menu>.dropdown-menu>li .menu>li>a>p{margin:0 0 0 45px;font-size:12px;color:#888}.navbar-nav>.messages-menu>.dropdown-menu>li .menu>li>a:after,.navbar-nav>.messages-menu>.dropdown-menu>li .menu>li>a:before{content:" ";display:table}.navbar-nav>.messages-menu>.dropdown-menu>li .menu>li>a:after{clear:both}.navbar-nav>.tasks-menu>.dropdown-menu>li .menu>li>a{padding:10px}.navbar-nav>.tasks-menu>.dropdown-menu>li .menu>li>a>h3{font-size:14px;padding:0;margin:0 0 10px;color:#666}.navbar-nav>.tasks-menu>.dropdown-menu>li .menu>li>a>.progress{padding:0;margin:0}.navbar-nav>.user-menu>.dropdown-menu{border-top-right-radius:0;border-top-left-radius:0;padding:1px 0 0;border-top-width:0;width:280px}.navbar-nav>.user-menu>.dropdown-menu,.navbar-nav>.user-menu>.dropdown-menu>.user-body{border-bottom-right-radius:4px;border-bottom-left-radius:4px}.navbar-nav>.user-menu>.dropdown-menu>li.user-header{height:175px;padding:10px;text-align:center}.navbar-nav>.user-menu>.dropdown-menu>li.user-header>img{z-index:5;height:90px;width:90px;border:3px solid;border-color:transparent;border-color:hsla(0,0%,100%,.2)}.navbar-nav>.user-menu>.dropdown-menu>li.user-header>p{z-index:5;color:#fff;color:hsla(0,0%,100%,.8);font-size:17px;margin-top:10px}.navbar-nav>.user-menu>.dropdown-menu>li.user-header>p>small{display:block;font-size:12px}.navbar-nav>.user-menu>.dropdown-menu>.user-body{padding:15px;border-bottom:1px solid #f4f4f4;border-top:1px solid #ddd}.navbar-nav>.user-menu>.dropdown-menu>.user-body:after,.navbar-nav>.user-menu>.dropdown-menu>.user-body:before{content:" ";display:table}.navbar-nav>.user-menu>.dropdown-menu>.user-body:after{clear:both}.navbar-nav>.user-menu>.dropdown-menu>.user-body a{color:#444!important}@media (max-width:991px){.navbar-nav>.user-menu>.dropdown-menu>.user-body a{background:#fff!important;color:#444!important}}.navbar-nav>.user-menu>.dropdown-menu>.user-footer{background-color:#f9f9f9;padding:10px}.navbar-nav>.user-menu>.dropdown-menu>.user-footer:after,.navbar-nav>.user-menu>.dropdown-menu>.user-footer:before{content:" ";display:table}.navbar-nav>.user-menu>.dropdown-menu>.user-footer:after{clear:both}.navbar-nav>.user-menu>.dropdown-menu>.user-footer .btn-default{color:#666}@media (max-width:991px){.navbar-nav>.user-menu>.dropdown-menu>.user-footer .btn-default:hover{background-color:#f9f9f9}}.navbar-nav>.user-menu .user-image{float:left;width:25px;height:25px;border-radius:50%;margin-right:10px;margin-top:-2px}@media (max-width:767px){.navbar-nav>.user-menu .user-image{float:none;margin-right:0;margin-top:-8px;line-height:10px}}.open:not(.dropup)>.animated-dropdown-menu{backface-visibility:visible!important;-webkit-animation:flipInX .7s both;-o-animation:flipInX .7s both;animation:flipInX .7s both}@keyframes flipInX{0%{transform:perspective(400px) rotateX(90deg);transition-timing-function:ease-in;opacity:0}40%{transform:perspective(400px) rotateX(-20deg);transition-timing-function:ease-in}60%{transform:perspective(400px) rotateX(10deg);opacity:1}80%{transform:perspective(400px) rotateX(-5deg)}to{transform:perspective(400px)}}@-webkit-keyframes flipInX{0%{-webkit-transform:perspective(400px) rotateX(90deg);-webkit-transition-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotateX(-20deg);-webkit-transition-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotateX(10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotateX(-5deg)}to{-webkit-transform:perspective(400px)}}.navbar-custom-menu>.navbar-nav>li{position:relative}.navbar-custom-menu>.navbar-nav>li>.dropdown-menu{position:absolute;right:0;left:auto}@media (max-width:991px){.navbar-custom-menu>.navbar-nav{float:right}.navbar-custom-menu>.navbar-nav>li{position:static}.navbar-custom-menu>.navbar-nav>li>.dropdown-menu{position:absolute;right:5%;left:auto;border:1px solid #ddd;background:#fff}}.form-control{border-radius:0;box-shadow:none;border-color:#d2d6de}.form-control:focus{border-color:#3c8dbc;box-shadow:none}.form-control:-ms-input-placeholder,.form-control::-moz-placeholder,.form-control::-webkit-input-placeholder{color:#bbb;opacity:1}.form-control:not(select){-webkit-appearance:none;-moz-appearance:none;appearance:none}.form-group.has-success label{color:#00a65a}.form-group.has-success .form-control,.form-group.has-success .input-group-addon{border-color:#00a65a;box-shadow:none}.form-group.has-success .help-block{color:#00a65a}.form-group.has-warning label{color:#f39c12}.form-group.has-warning .form-control,.form-group.has-warning .input-group-addon{border-color:#f39c12;box-shadow:none}.form-group.has-warning .help-block{color:#f39c12}.form-group.has-error label{color:#dd4b39}.form-group.has-error .form-control,.form-group.has-error .input-group-addon{border-color:#dd4b39;box-shadow:none}.form-group.has-error .help-block{color:#dd4b39}.input-group .input-group-addon{border-radius:0;border-color:#d2d6de;background-color:#fff}.btn-group-vertical .btn.btn-flat:first-of-type,.btn-group-vertical .btn.btn-flat:last-of-type{border-radius:0}.icheck>label{padding-left:0}.form-control-feedback.fa{line-height:34px}.form-group-lg .form-control+.form-control-feedback.fa,.input-group-lg+.form-control-feedback.fa,.input-lg+.form-control-feedback.fa{line-height:46px}.form-group-sm .form-control+.form-control-feedback.fa,.input-group-sm+.form-control-feedback.fa,.input-sm+.form-control-feedback.fa{line-height:30px}.progress,.progress>.progress-bar{-webkit-box-shadow:none;box-shadow:none}.progress,.progress .progress-bar,.progress>.progress-bar,.progress>.progress-bar .progress-bar{border-radius:1px}.progress-sm,.progress.sm{height:10px}.progress-sm,.progress-sm .progress-bar,.progress.sm,.progress.sm .progress-bar{border-radius:1px}.progress-xs,.progress.xs{height:7px}.progress-xs,.progress-xs .progress-bar,.progress.xs,.progress.xs .progress-bar{border-radius:1px}.progress-xxs,.progress.xxs{height:3px}.progress-xxs,.progress-xxs .progress-bar,.progress.xxs,.progress.xxs .progress-bar{border-radius:1px}.progress.vertical{position:relative;width:30px;height:200px;display:inline-block;margin-right:10px}.progress.vertical>.progress-bar{width:100%;position:absolute;bottom:0}.progress.vertical.progress-sm,.progress.vertical.sm{width:20px}.progress.vertical.progress-xs,.progress.vertical.xs{width:10px}.progress.vertical.progress-xxs,.progress.vertical.xxs{width:3px}.progress-group .progress-text{font-weight:600}.progress-group .progress-number{float:right}.table tr>td .progress{margin:0}.progress-bar-light-blue,.progress-bar-primary{background-color:#3c8dbc}.progress-striped .progress-bar-light-blue,.progress-striped .progress-bar-primary{background-image:-webkit-linear-gradient(45deg,hsla(0,0%,100%,.15) 25%,transparent 0,transparent 50%,hsla(0,0%,100%,.15) 0,hsla(0,0%,100%,.15) 75%,transparent 0,transparent);background-image:-o-linear-gradient(45deg,hsla(0,0%,100%,.15) 25%,transparent 25%,transparent 50%,hsla(0,0%,100%,.15) 50%,hsla(0,0%,100%,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,hsla(0,0%,100%,.15) 25%,transparent 0,transparent 50%,hsla(0,0%,100%,.15) 0,hsla(0,0%,100%,.15) 75%,transparent 0,transparent)}.progress-bar-green,.progress-bar-success{background-color:#00a65a}.progress-striped .progress-bar-green,.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg,hsla(0,0%,100%,.15) 25%,transparent 0,transparent 50%,hsla(0,0%,100%,.15) 0,hsla(0,0%,100%,.15) 75%,transparent 0,transparent);background-image:-o-linear-gradient(45deg,hsla(0,0%,100%,.15) 25%,transparent 25%,transparent 50%,hsla(0,0%,100%,.15) 50%,hsla(0,0%,100%,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,hsla(0,0%,100%,.15) 25%,transparent 0,transparent 50%,hsla(0,0%,100%,.15) 0,hsla(0,0%,100%,.15) 75%,transparent 0,transparent)}.progress-bar-aqua,.progress-bar-info{background-color:#00c0ef}.progress-striped .progress-bar-aqua,.progress-striped .progress-bar-info{background-image:-webkit-linear-gradient(45deg,hsla(0,0%,100%,.15) 25%,transparent 0,transparent 50%,hsla(0,0%,100%,.15) 0,hsla(0,0%,100%,.15) 75%,transparent 0,transparent);background-image:-o-linear-gradient(45deg,hsla(0,0%,100%,.15) 25%,transparent 25%,transparent 50%,hsla(0,0%,100%,.15) 50%,hsla(0,0%,100%,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,hsla(0,0%,100%,.15) 25%,transparent 0,transparent 50%,hsla(0,0%,100%,.15) 0,hsla(0,0%,100%,.15) 75%,transparent 0,transparent)}.progress-bar-warning,.progress-bar-yellow{background-color:#f39c12}.progress-striped .progress-bar-warning,.progress-striped .progress-bar-yellow{background-image:-webkit-linear-gradient(45deg,hsla(0,0%,100%,.15) 25%,transparent 0,transparent 50%,hsla(0,0%,100%,.15) 0,hsla(0,0%,100%,.15) 75%,transparent 0,transparent);background-image:-o-linear-gradient(45deg,hsla(0,0%,100%,.15) 25%,transparent 25%,transparent 50%,hsla(0,0%,100%,.15) 50%,hsla(0,0%,100%,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,hsla(0,0%,100%,.15) 25%,transparent 0,transparent 50%,hsla(0,0%,100%,.15) 0,hsla(0,0%,100%,.15) 75%,transparent 0,transparent)}.progress-bar-danger,.progress-bar-red{background-color:#dd4b39}.progress-striped .progress-bar-danger,.progress-striped .progress-bar-red{background-image:-webkit-linear-gradient(45deg,hsla(0,0%,100%,.15) 25%,transparent 0,transparent 50%,hsla(0,0%,100%,.15) 0,hsla(0,0%,100%,.15) 75%,transparent 0,transparent);background-image:-o-linear-gradient(45deg,hsla(0,0%,100%,.15) 25%,transparent 25%,transparent 50%,hsla(0,0%,100%,.15) 50%,hsla(0,0%,100%,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,hsla(0,0%,100%,.15) 25%,transparent 0,transparent 50%,hsla(0,0%,100%,.15) 0,hsla(0,0%,100%,.15) 75%,transparent 0,transparent)}.small-box{border-radius:2px;position:relative;display:block;margin-bottom:20px;box-shadow:0 1px 1px rgba(0,0,0,.1)}.small-box>.inner{padding:10px}.small-box>.small-box-footer{position:relative;text-align:center;padding:3px 0;color:#fff;color:hsla(0,0%,100%,.8);display:block;z-index:10;background:rgba(0,0,0,.1);text-decoration:none}.small-box>.small-box-footer:hover{color:#fff;background:rgba(0,0,0,.15)}.small-box h3{font-size:38px;font-weight:700;margin:0 0 10px;white-space:nowrap;padding:0}.small-box p{font-size:15px}.small-box p>small{display:block;color:#f9f9f9;font-size:13px;margin-top:5px}.small-box h3,.small-box p{z-index:5}.small-box .icon{-webkit-transition:all .3s linear;-o-transition:all .3s linear;transition:all .3s linear;position:absolute;top:-10px;right:10px;z-index:0;font-size:90px;color:rgba(0,0,0,.15)}.small-box:hover{text-decoration:none;color:#f9f9f9}.small-box:hover .icon{font-size:95px}@media (max-width:767px){.small-box{text-align:center}.small-box .icon{display:none}.small-box p{font-size:12px}}.box{position:relative;border-radius:3px;background:#fff;border-top:3px solid #d2d6de;margin-bottom:20px;width:100%;box-shadow:0 1px 1px rgba(0,0,0,.1)}.box.box-primary{border-top-color:#3c8dbc}.box.box-info{border-top-color:#00c0ef}.box.box-danger{border-top-color:#dd4b39}.box.box-warning{border-top-color:#f39c12}.box.box-success{border-top-color:#00a65a}.box.box-default{border-top-color:#d2d6de}.box.collapsed-box .box-body,.box.collapsed-box .box-footer{display:none}.box .nav-stacked>li{border-bottom:1px solid #f4f4f4;margin:0}.box .nav-stacked>li:last-of-type{border-bottom:none}.box.height-control .box-body{max-height:300px;overflow:auto}.box .border-right{border-right:1px solid #f4f4f4}.box .border-left{border-left:1px solid #f4f4f4}.box.box-solid{border-top:0}.box.box-solid>.box-header .btn.btn-default{background:transparent}.box.box-solid>.box-header .btn:hover,.box.box-solid>.box-header a:hover{background:rgba(0,0,0,.1)}.box.box-solid.box-default{border:1px solid #d2d6de}.box.box-solid.box-default>.box-header{color:#444;background:#d2d6de;background-color:#d2d6de}.box.box-solid.box-default>.box-header .btn,.box.box-solid.box-default>.box-header a{color:#444}.box.box-solid.box-primary{border:1px solid #3c8dbc}.box.box-solid.box-primary>.box-header{color:#fff;background:#3c8dbc;background-color:#3c8dbc}.box.box-solid.box-primary>.box-header .btn,.box.box-solid.box-primary>.box-header a{color:#fff}.box.box-solid.box-info{border:1px solid #00c0ef}.box.box-solid.box-info>.box-header{color:#fff;background:#00c0ef;background-color:#00c0ef}.box.box-solid.box-info>.box-header .btn,.box.box-solid.box-info>.box-header a{color:#fff}.box.box-solid.box-danger{border:1px solid #dd4b39}.box.box-solid.box-danger>.box-header{color:#fff;background:#dd4b39;background-color:#dd4b39}.box.box-solid.box-danger>.box-header .btn,.box.box-solid.box-danger>.box-header a{color:#fff}.box.box-solid.box-warning{border:1px solid #f39c12}.box.box-solid.box-warning>.box-header{color:#fff;background:#f39c12;background-color:#f39c12}.box.box-solid.box-warning>.box-header .btn,.box.box-solid.box-warning>.box-header a{color:#fff}.box.box-solid.box-success{border:1px solid #00a65a}.box.box-solid.box-success>.box-header{color:#fff;background:#00a65a;background-color:#00a65a}.box.box-solid.box-success>.box-header .btn,.box.box-solid.box-success>.box-header a{color:#fff}.box.box-solid>.box-header>.box-tools .btn{border:0;box-shadow:none}.box.box-solid[class*=bg]>.box-header{color:#fff}.box .box-group>.box{margin-bottom:5px}.box .knob-label{text-align:center;color:#333;font-weight:100;font-size:12px;margin-bottom:.3em}.box>.loading-img,.box>.overlay,.overlay-wrapper>.loading-img,.overlay-wrapper>.overlay{position:absolute;top:0;left:0;width:100%;height:100%}.box .overlay,.overlay-wrapper .overlay{z-index:50;background:hsla(0,0%,100%,.7);border-radius:3px}.box .overlay>.fa,.overlay-wrapper .overlay>.fa{position:absolute;top:50%;left:50%;margin-left:-15px;margin-top:-15px;color:#000;font-size:30px}.box .overlay.dark,.overlay-wrapper .overlay.dark{background:rgba(0,0,0,.5)}.box-body:after,.box-body:before,.box-footer:after,.box-footer:before,.box-header:after,.box-header:before{content:" ";display:table}.box-body:after,.box-footer:after,.box-header:after{clear:both}.box-header{color:#444;display:block;padding:10px;position:relative}.box-header.with-border{border-bottom:1px solid #f4f4f4}.collapsed-box .box-header.with-border{border-bottom:none}.box-header .box-title,.box-header>.fa,.box-header>.glyphicon,.box-header>.ion{display:inline-block;font-size:18px;margin:0;line-height:1}.box-header>.fa,.box-header>.glyphicon,.box-header>.ion{margin-right:5px}.box-header>.box-tools{position:absolute;right:10px;top:5px}.box-header>.box-tools [data-toggle=tooltip]{position:relative}.box-header>.box-tools.pull-right .dropdown-menu{right:0;left:auto}.box-header>.box-tools .dropdown-menu>li>a{color:#444!important}.btn-box-tool{padding:5px;font-size:12px;background:transparent;color:#97a0b3}.btn-box-tool:hover,.open .btn-box-tool{color:#606c84}.btn-box-tool.btn:active{box-shadow:none}.box-body{border-top-left-radius:0;border-top-right-radius:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px;padding:10px}.no-header .box-body{border-top-right-radius:3px;border-top-left-radius:3px}.box-body>.table{margin-bottom:0}.box-body .fc{margin-top:5px}.box-body .full-width-chart{margin:-19px}.box-body.no-padding .full-width-chart{margin:-9px}.box-body .box-pane{border-top-left-radius:0;border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:3px}.box-body .box-pane-right{border-bottom-left-radius:0}.box-body .box-pane-right,.box-footer{border-top-left-radius:0;border-top-right-radius:0;border-bottom-right-radius:3px}.box-footer{border-bottom-left-radius:3px;border-top:1px solid #f4f4f4;padding:10px;background-color:#fff}.chart-legend{margin:10px 0}@media (max-width:991px){.chart-legend>li{float:left;margin-right:10px}}.box-comments{background:#f7f7f7}.box-comments .box-comment{padding:8px 0;border-bottom:1px solid #eee}.box-comments .box-comment:after,.box-comments .box-comment:before{content:" ";display:table}.box-comments .box-comment:after{clear:both}.box-comments .box-comment:last-of-type{border-bottom:0}.box-comments .box-comment:first-of-type{padding-top:0}.box-comments .box-comment img{float:left}.box-comments .comment-text{margin-left:40px;color:#555}.box-comments .username{color:#444;display:block;font-weight:600}.box-comments .text-muted{font-weight:400;font-size:12px}.todo-list{margin:0;padding:0;list-style:none;overflow:auto}.todo-list>li{border-radius:2px;padding:10px;background:#f4f4f4;margin-bottom:2px;border-left:2px solid #e6e7e8;color:#444}.todo-list>li:last-of-type{margin-bottom:0}.todo-list>li>input[type=checkbox]{margin:0 10px 0 5px}.todo-list>li .text{display:inline-block;margin-left:5px;font-weight:600}.todo-list>li .label{margin-left:10px;font-size:9px}.todo-list>li .tools{display:none;float:right;color:#dd4b39}.todo-list>li .tools>.fa,.todo-list>li .tools>.glyphicon,.todo-list>li .tools>.ion{margin-right:5px;cursor:pointer}.todo-list>li:hover .tools{display:inline-block}.todo-list>li.done{color:#999}.todo-list>li.done .text{text-decoration:line-through;font-weight:500}.todo-list>li.done .label{background:#d2d6de!important}.todo-list .danger{border-left-color:#dd4b39}.todo-list .warning{border-left-color:#f39c12}.todo-list .info{border-left-color:#00c0ef}.todo-list .success{border-left-color:#00a65a}.todo-list .primary{border-left-color:#3c8dbc}.todo-list .handle{display:inline-block;cursor:move;margin:0 5px}.chat{padding:5px 20px 5px 10px}.chat .item{margin-bottom:10px}.chat .item:after,.chat .item:before{content:" ";display:table}.chat .item:after{clear:both}.chat .item>img{width:40px;height:40px;border:2px solid transparent;border-radius:50%}.chat .item>.online{border:2px solid #00a65a}.chat .item>.offline{border:2px solid #dd4b39}.chat .item>.message{margin-left:55px;margin-top:-40px}.chat .item>.message>.name{display:block;font-weight:600}.chat .item>.attachment{border-radius:3px;background:#f4f4f4;margin-left:65px;margin-right:15px;padding:10px}.chat .item>.attachment>h4{margin:0 0 5px;font-weight:600;font-size:14px}.chat .item>.attachment>.filename,.chat .item>.attachment>p{font-weight:600;font-size:13px;font-style:italic;margin:0}.chat .item>.attachment:after,.chat .item>.attachment:before{content:" ";display:table}.chat .item>.attachment:after{clear:both}.box-input{max-width:200px}.modal .panel-body{color:#444}.info-box{display:block;min-height:90px;background:#fff;width:100%;box-shadow:0 1px 1px rgba(0,0,0,.1);border-radius:2px;margin-bottom:15px}.info-box small{font-size:14px}.info-box .progress{background:rgba(0,0,0,.2);margin:5px -10px;height:2px}.info-box .progress,.info-box .progress .progress-bar{border-radius:0}.info-box .progress .progress-bar{background:#fff}.info-box-icon{border-top-left-radius:2px;border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:2px;display:block;float:left;height:90px;width:90px;text-align:center;font-size:45px;line-height:90px;background:rgba(0,0,0,.2)}.info-box-icon>img{max-width:100%}.info-box-content{padding:5px 10px;margin-left:90px}.info-box-number{display:block;font-weight:700;font-size:18px}.info-box-text,.progress-description{display:block;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.info-box-text{text-transform:uppercase}.info-box-more{display:block}.progress-description{margin:0}.timeline{position:relative;margin:0 0 30px;padding:0;list-style:none}.timeline:before{content:"";position:absolute;top:0;bottom:0;width:4px;background:#ddd;left:31px;margin:0;border-radius:2px}.timeline>li{position:relative;margin-right:10px;margin-bottom:15px}.timeline>li:after,.timeline>li:before{content:" ";display:table}.timeline>li:after{clear:both}.timeline>li>.timeline-item{-webkit-box-shadow:0 1px 1px rgba(0,0,0,.1);box-shadow:0 1px 1px rgba(0,0,0,.1);border-radius:3px;margin-top:0;background:#fff;color:#444;margin-left:60px;margin-right:15px;padding:0;position:relative}.timeline>li>.timeline-item>.time{color:#999;float:right;padding:10px;font-size:12px}.timeline>li>.timeline-item>.timeline-header{margin:0;color:#555;border-bottom:1px solid #f4f4f4;padding:10px;font-size:16px;line-height:1.1}.timeline>li>.timeline-item>.timeline-header>a{font-weight:600}.timeline>li>.timeline-item>.timeline-body,.timeline>li>.timeline-item>.timeline-footer{padding:10px}.timeline>li>.fa,.timeline>li>.glyphicon,.timeline>li>.ion{width:30px;height:30px;font-size:15px;line-height:30px;position:absolute;color:#666;background:#d2d6de;border-radius:50%;text-align:center;left:18px;top:0}.timeline>.time-label>span{font-weight:600;padding:5px;display:inline-block;background-color:#fff;border-radius:4px}.timeline-inverse>li>.timeline-item{background:#f0f0f0;border:1px solid #ddd;-webkit-box-shadow:none;box-shadow:none}.timeline-inverse>li>.timeline-item>.timeline-header{border-bottom-color:#ddd}.btn{border-radius:3px;-webkit-box-shadow:none;box-shadow:none;border:1px solid transparent}.btn.uppercase{text-transform:uppercase}.btn.btn-flat{border-radius:0;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;border-width:1px}.btn:active{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);-moz-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn:focus{outline:none}.btn.btn-file{position:relative;overflow:hidden}.btn.btn-file>input[type=file]{position:absolute;top:0;right:0;min-width:100%;min-height:100%;font-size:100px;text-align:right;opacity:0;filter:alpha(opacity=0);outline:none;background:#fff;cursor:inherit;display:block}.btn-default{background-color:#f4f4f4;color:#444;border-color:#ddd}.btn-default.hover,.btn-default:active,.btn-default:hover{background-color:#e7e7e7}.btn-primary{background-color:#3c8dbc;border-color:#367fa9}.btn-primary.hover,.btn-primary:active,.btn-primary:hover{background-color:#367fa9}.btn-success{background-color:#00a65a;border-color:#008d4c}.btn-success.hover,.btn-success:active,.btn-success:hover{background-color:#008d4c}.btn-info{background-color:#00c0ef;border-color:#00acd6}.btn-info.hover,.btn-info:active,.btn-info:hover{background-color:#00acd6}.btn-danger{background-color:#dd4b39;border-color:#d73925}.btn-danger.hover,.btn-danger:active,.btn-danger:hover{background-color:#d73925}.btn-warning{background-color:#f39c12;border-color:#e08e0b}.btn-warning.hover,.btn-warning:active,.btn-warning:hover{background-color:#e08e0b}.btn-outline{border:1px solid #fff;background:transparent;color:#fff}.btn-outline:active,.btn-outline:focus,.btn-outline:hover{color:hsla(0,0%,100%,.7);border-color:hsla(0,0%,100%,.7)}.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn[class*=bg-]:hover{-webkit-box-shadow:inset 0 0 100px rgba(0,0,0,.2);box-shadow:inset 0 0 100px rgba(0,0,0,.2)}.btn-app{border-radius:3px;position:relative;padding:15px 5px;margin:0 0 10px 10px;min-width:80px;height:60px;text-align:center;color:#666;border:1px solid #ddd;background-color:#f4f4f4;font-size:12px}.btn-app>.fa,.btn-app>.glyphicon,.btn-app>.ion{font-size:20px;display:block}.btn-app:hover{background:#f4f4f4;color:#444;border-color:#aaa}.btn-app:active,.btn-app:focus{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);-moz-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn-app>.badge{position:absolute;top:-3px;right:-10px;font-size:10px;font-weight:400}.callout{border-radius:3px;margin:0 0 20px;padding:15px 30px 15px 15px;border-left:5px solid #eee}.callout a{color:#fff;text-decoration:underline}.callout a:hover{color:#eee}.callout h4{margin-top:0;font-weight:600}.callout p:last-child{margin-bottom:0}.callout .highlight,.callout code{background-color:#fff}.callout.callout-danger{border-color:#c23321}.callout.callout-warning{border-color:#c87f0a}.callout.callout-info{border-color:#0097bc}.callout.callout-success{border-color:#00733e}.alert{border-radius:3px}.alert h4{font-weight:600}.alert .icon{margin-right:10px}.alert .close{color:#000;opacity:.2;filter:alpha(opacity=20)}.alert .close:hover{opacity:.5;filter:alpha(opacity=50)}.alert a{color:#fff;text-decoration:underline}.alert-success{border-color:#008d4c}.alert-danger,.alert-error{border-color:#d73925}.alert-warning{border-color:#e08e0b}.alert-info{border-color:#00acd6}.nav>li>a:active,.nav>li>a:focus,.nav>li>a:hover{color:#444;background:#f7f7f7}.nav-pills>li>a{border-radius:0;border-top:3px solid transparent;color:#444}.nav-pills>li>a>.fa,.nav-pills>li>a>.glyphicon,.nav-pills>li>a>.ion{margin-right:5px}.nav-pills>li.active>a,.nav-pills>li.active>a:focus,.nav-pills>li.active>a:hover{border-top-color:#3c8dbc}.nav-pills>li.active>a{font-weight:600}.nav-stacked>li>a{border-radius:0;border-top:0;border-left:3px solid transparent;color:#444}.nav-stacked>li.active>a,.nav-stacked>li.active>a:hover{background:transparent;color:#444;border-top:0;border-left-color:#3c8dbc}.nav-stacked>li.header{border-bottom:1px solid #ddd;color:#777;margin-bottom:10px;padding:5px 10px;text-transform:uppercase}.nav-tabs-custom{margin-bottom:20px;background:#fff;box-shadow:0 1px 1px rgba(0,0,0,.1);border-radius:3px}.nav-tabs-custom>.nav-tabs{margin:0;border-bottom-color:#f4f4f4;border-top-right-radius:3px;border-top-left-radius:3px}.nav-tabs-custom>.nav-tabs>li{border-top:3px solid transparent;margin-bottom:-2px;margin-right:5px}.nav-tabs-custom>.nav-tabs>li.disabled>a{color:#777}.nav-tabs-custom>.nav-tabs>li>a{color:#444;border-radius:0}.nav-tabs-custom>.nav-tabs>li>a.text-muted{color:#999}.nav-tabs-custom>.nav-tabs>li>a,.nav-tabs-custom>.nav-tabs>li>a:hover{background:transparent;margin:0}.nav-tabs-custom>.nav-tabs>li>a:hover{color:#999}.nav-tabs-custom>.nav-tabs>li:not(.active)>a:active,.nav-tabs-custom>.nav-tabs>li:not(.active)>a:focus,.nav-tabs-custom>.nav-tabs>li:not(.active)>a:hover{border-color:transparent}.nav-tabs-custom>.nav-tabs>li.active{border-top-color:#3c8dbc}.nav-tabs-custom>.nav-tabs>li.active:hover>a,.nav-tabs-custom>.nav-tabs>li.active>a{background-color:#fff;color:#444}.nav-tabs-custom>.nav-tabs>li.active>a{border-top-color:transparent;border-left-color:#f4f4f4;border-right-color:#f4f4f4}.nav-tabs-custom>.nav-tabs>li:first-of-type{margin-left:0}.nav-tabs-custom>.nav-tabs>li:first-of-type.active>a{border-left-color:transparent}.nav-tabs-custom>.nav-tabs.pull-right{float:none!important}.nav-tabs-custom>.nav-tabs.pull-right>li{float:right}.nav-tabs-custom>.nav-tabs.pull-right>li:first-of-type{margin-right:0}.nav-tabs-custom>.nav-tabs.pull-right>li:first-of-type>a{border-left-width:1px}.nav-tabs-custom>.nav-tabs.pull-right>li:first-of-type.active>a{border-left-color:#f4f4f4;border-right-color:transparent}.nav-tabs-custom>.nav-tabs>li.header{line-height:35px;padding:0 10px;font-size:20px;color:#444}.nav-tabs-custom>.nav-tabs>li.header>.fa,.nav-tabs-custom>.nav-tabs>li.header>.glyphicon,.nav-tabs-custom>.nav-tabs>li.header>.ion{margin-right:5px}.nav-tabs-custom>.tab-content{background:#fff;padding:10px;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.nav-tabs-custom .dropdown.open>a:active,.nav-tabs-custom .dropdown.open>a:focus{background:transparent;color:#999}.nav-tabs-custom.tab-primary>.nav-tabs>li.active{border-top-color:#3c8dbc}.nav-tabs-custom.tab-info>.nav-tabs>li.active{border-top-color:#00c0ef}.nav-tabs-custom.tab-danger>.nav-tabs>li.active{border-top-color:#dd4b39}.nav-tabs-custom.tab-warning>.nav-tabs>li.active{border-top-color:#f39c12}.nav-tabs-custom.tab-success>.nav-tabs>li.active{border-top-color:#00a65a}.nav-tabs-custom.tab-default>.nav-tabs>li.active{border-top-color:#d2d6de}.pagination>li>a{background:#fafafa;color:#666}.pagination.pagination-flat>li>a{border-radius:0!important}.products-list{list-style:none;margin:0;padding:0}.products-list>.item{border-radius:3px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.1);box-shadow:0 1px 1px rgba(0,0,0,.1);padding:10px 0;background:#fff}.products-list>.item:after,.products-list>.item:before{content:" ";display:table}.products-list>.item:after{clear:both}.products-list .product-img{float:left}.products-list .product-img img{width:50px;height:50px}.products-list .product-info{margin-left:60px}.products-list .product-title{font-weight:600}.products-list .product-description{display:block;color:#999;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.product-list-in-box>.item{-webkit-box-shadow:none;box-shadow:none;border-radius:0;border-bottom:1px solid #f4f4f4}.product-list-in-box>.item:last-of-type{border-bottom-width:0}.table>tbody>tr>td,.table>tbody>tr>th,.table>tfoot>tr>td,.table>tfoot>tr>th,.table>thead>tr>td,.table>thead>tr>th{border-top:1px solid #f4f4f4}.table>thead>tr>th{border-bottom:2px solid #f4f4f4}.table tr td .progress{margin-top:5px}.table-bordered,.table-bordered>tbody>tr>td,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>td,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border:1px solid #f4f4f4}.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border-bottom-width:2px}.table.no-border,.table.no-border td,.table.no-border th{border:0}table.text-center,table.text-center td,table.text-center th{text-align:center}.table.align th{text-align:left}.table.align td{text-align:right}.label-default{background-color:#d2d6de;color:#444}.direct-chat .box-body{border-bottom-right-radius:0;border-bottom-left-radius:0;position:relative;overflow-x:hidden;padding:0}.direct-chat-messages,.direct-chat.chat-pane-open .direct-chat-contacts{-webkit-transform:translate(0);-ms-transform:translate(0);-o-transform:translate(0);transform:translate(0)}.direct-chat-messages{padding:10px;height:250px;overflow:auto}.direct-chat-msg,.direct-chat-text{display:block}.direct-chat-msg{margin-bottom:10px}.direct-chat-msg:after,.direct-chat-msg:before{content:" ";display:table}.direct-chat-msg:after{clear:both}.direct-chat-contacts,.direct-chat-messages{-webkit-transition:-webkit-transform .5s ease-in-out;-moz-transition:-moz-transform .5s ease-in-out;-o-transition:-o-transform .5s ease-in-out;transition:transform .5s ease-in-out}.direct-chat-text{border-radius:5px;position:relative;padding:5px 10px;background:#d2d6de;border:1px solid #d2d6de;margin:5px 0 0 50px;color:#444}.direct-chat-text:after,.direct-chat-text:before{position:absolute;right:100%;top:15px;border:solid transparent;border-right-color:#d2d6de;content:" ";height:0;width:0;pointer-events:none}.direct-chat-text:after{border-width:5px;margin-top:-5px}.direct-chat-text:before{border-width:6px;margin-top:-6px}.right .direct-chat-text{margin-right:50px;margin-left:0}.right .direct-chat-text:after,.right .direct-chat-text:before{right:auto;left:100%;border-right-color:transparent;border-left-color:#d2d6de}.direct-chat-img{border-radius:50%;float:left;width:40px;height:40px}.right .direct-chat-img{float:right}.direct-chat-info{display:block;margin-bottom:2px;font-size:12px}.direct-chat-name{font-weight:600}.direct-chat-timestamp{color:#999}.direct-chat-contacts-open .direct-chat-contacts{-webkit-transform:translate(0);-ms-transform:translate(0);-o-transform:translate(0);transform:translate(0)}.direct-chat-contacts{-webkit-transform:translate(101%);-ms-transform:translate(101%);-o-transform:translate(101%);transform:translate(101%);position:absolute;top:0;bottom:0;height:250px;width:100%;background:#222d32;color:#fff;overflow:auto}.contacts-list>li{border-bottom:1px solid rgba(0,0,0,.2);padding:10px;margin:0}.contacts-list>li:after,.contacts-list>li:before{content:" ";display:table}.contacts-list>li:after{clear:both}.contacts-list>li:last-of-type{border-bottom:none}.contacts-list-img{border-radius:50%;width:40px;float:left}.contacts-list-info{margin-left:45px;color:#fff}.contacts-list-name,.contacts-list-status{display:block}.contacts-list-name{font-weight:600}.contacts-list-status{font-size:12px}.contacts-list-date{color:#aaa;font-weight:400}.contacts-list-msg{color:#999}.direct-chat-danger .right>.direct-chat-text{background:#dd4b39;border-color:#dd4b39;color:#fff}.direct-chat-danger .right>.direct-chat-text:after,.direct-chat-danger .right>.direct-chat-text:before{border-left-color:#dd4b39}.direct-chat-primary .right>.direct-chat-text{background:#3c8dbc;border-color:#3c8dbc;color:#fff}.direct-chat-primary .right>.direct-chat-text:after,.direct-chat-primary .right>.direct-chat-text:before{border-left-color:#3c8dbc}.direct-chat-warning .right>.direct-chat-text{background:#f39c12;border-color:#f39c12;color:#fff}.direct-chat-warning .right>.direct-chat-text:after,.direct-chat-warning .right>.direct-chat-text:before{border-left-color:#f39c12}.direct-chat-info .right>.direct-chat-text{background:#00c0ef;border-color:#00c0ef;color:#fff}.direct-chat-info .right>.direct-chat-text:after,.direct-chat-info .right>.direct-chat-text:before{border-left-color:#00c0ef}.direct-chat-success .right>.direct-chat-text{background:#00a65a;border-color:#00a65a;color:#fff}.direct-chat-success .right>.direct-chat-text:after,.direct-chat-success .right>.direct-chat-text:before{border-left-color:#00a65a}.users-list>li{width:25%;float:left;padding:10px;text-align:center}.users-list>li img{border-radius:50%;max-width:100%;height:auto}.users-list>li>a:hover,.users-list>li>a:hover .users-list-name{color:#999}.users-list-date,.users-list-name{display:block}.users-list-name{font-weight:600;color:#444;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.users-list-date{color:#999;font-size:12px}.carousel-control.left,.carousel-control.right{background-image:none}.carousel-control>.fa{font-size:40px;position:absolute;top:50%;z-index:5;display:inline-block;margin-top:-20px}.modal{background:rgba(0,0,0,.3)}.modal-content{border-radius:0;-webkit-box-shadow:0 2px 3px rgba(0,0,0,.125);box-shadow:0 2px 3px rgba(0,0,0,.125);border:0}@media (min-width:768px){.modal-content{-webkit-box-shadow:0 2px 3px rgba(0,0,0,.125);box-shadow:0 2px 3px rgba(0,0,0,.125)}}.modal-header{border-bottom-color:#f4f4f4}.modal-footer{border-top-color:#f4f4f4}.modal-primary .modal-footer,.modal-primary .modal-header{border-color:#307095}.modal-warning .modal-footer,.modal-warning .modal-header{border-color:#c87f0a}.modal-info .modal-footer,.modal-info .modal-header{border-color:#0097bc}.modal-success .modal-footer,.modal-success .modal-header{border-color:#00733e}.modal-danger .modal-footer,.modal-danger .modal-header{border-color:#c23321}.box-widget{border:none;position:relative}.widget-user .widget-user-header{padding:20px;height:120px;border-top-right-radius:3px;border-top-left-radius:3px}.widget-user .widget-user-username{margin-top:0;margin-bottom:5px;font-size:25px;font-weight:300;text-shadow:0 1px 1px rgba(0,0,0,.2)}.widget-user .widget-user-desc{margin-top:0}.widget-user .widget-user-image{position:absolute;top:65px;left:50%;margin-left:-45px}.widget-user .widget-user-image>img{width:90px;height:auto;border:3px solid #fff}.widget-user .box-footer{padding-top:30px}.widget-user-2 .widget-user-header{padding:20px;border-top-right-radius:3px;border-top-left-radius:3px}.widget-user-2 .widget-user-username{margin-top:5px;margin-bottom:5px;font-size:25px;font-weight:300}.widget-user-2 .widget-user-desc{margin-top:0}.widget-user-2 .widget-user-desc,.widget-user-2 .widget-user-username{margin-left:75px}.widget-user-2 .widget-user-image>img{width:65px;height:auto;float:left}.treeview-menu{display:none;list-style:none;padding:0;margin:0;padding-left:5px}.treeview-menu .treeview-menu{padding-left:20px}.treeview-menu>li{margin:0}.treeview-menu>li>a{padding:5px 5px 5px 15px;display:block;font-size:14px}.treeview-menu>li>a>.fa,.treeview-menu>li>a>.glyphicon,.treeview-menu>li>a>.ion{width:20px}.treeview-menu>li>a>.fa-angle-down,.treeview-menu>li>a>.fa-angle-left,.treeview-menu>li>a>.pull-right-container>.fa-angle-down,.treeview-menu>li>a>.pull-right-container>.fa-angle-left{width:auto}.mailbox-messages>.table{margin:0}.mailbox-controls{padding:5px}.mailbox-controls.with-border,.mailbox-read-info{border-bottom:1px solid #f4f4f4}.mailbox-read-info{padding:10px}.mailbox-read-info h3{font-size:20px;margin:0}.mailbox-read-info h5{margin:0;padding:5px 0 0}.mailbox-read-time{color:#999;font-size:13px}.mailbox-read-message{padding:10px}.mailbox-attachments li{float:left;width:200px;border:1px solid #eee;margin-bottom:10px;margin-right:10px}.mailbox-attachment-name{font-weight:700;color:#666}.mailbox-attachment-icon,.mailbox-attachment-info,.mailbox-attachment-size{display:block}.mailbox-attachment-info{padding:10px;background:#f4f4f4}.mailbox-attachment-size{color:#999;font-size:12px}.mailbox-attachment-icon{text-align:center;font-size:65px;color:#666;padding:20px 10px}.mailbox-attachment-icon.has-img{padding:0}.mailbox-attachment-icon.has-img>img{max-width:100%;height:auto}.lockscreen{background:#d2d6de}.lockscreen-logo{font-size:35px;text-align:center;margin-bottom:25px;font-weight:300}.lockscreen-logo a{color:#444}.lockscreen-wrapper{max-width:400px;margin:0 auto;margin-top:10%}.lockscreen .lockscreen-name{text-align:center;font-weight:600}.lockscreen-item{border-radius:4px;padding:0;background:#fff;position:relative;margin:10px auto 30px;width:290px}.lockscreen-image{border-radius:50%;position:absolute;left:-10px;top:-25px;background:#fff;padding:5px;z-index:10}.lockscreen-image>img{border-radius:50%;width:70px;height:70px}.lockscreen-credentials{margin-left:70px}.lockscreen-credentials .form-control{border:0}.lockscreen-credentials .btn{background-color:#fff;border:0;padding:0 10px}.lockscreen-footer{margin-top:10px}.login-logo,.register-logo{font-size:35px;text-align:center;margin-bottom:25px;font-weight:300}.login-logo a,.register-logo a{color:#444}.login-page,.register-page{background:#d2d6de}.login-box,.register-box{width:360px;margin:7% auto}@media (max-width:768px){.login-box,.register-box{width:90%;margin-top:20px}}.login-box-body,.register-box-body{background:#fff;padding:20px;border-top:0;color:#666}.login-box-body .form-control-feedback,.register-box-body .form-control-feedback{color:#777}.login-box-msg,.register-box-msg{margin:0;text-align:center;padding:0 20px 20px}.social-auth-links{margin:10px 0}.error-page{width:600px;margin:20px auto 0}@media (max-width:991px){.error-page{width:100%}}.error-page>.headline{float:left;font-size:100px;font-weight:300}@media (max-width:991px){.error-page>.headline{float:none;text-align:center}}.error-page>.error-content{margin-left:190px;display:block}@media (max-width:991px){.error-page>.error-content{margin-left:0}}.error-page>.error-content>h3{font-weight:300;font-size:25px}@media (max-width:991px){.error-page>.error-content>h3{text-align:center}}.invoice{position:relative;background:#fff;border:1px solid #f4f4f4;padding:20px;margin:10px 25px}.invoice-title{margin-top:0}.profile-user-img{margin:0 auto;width:100px;padding:3px;border:3px solid #d2d6de}.profile-username{font-size:21px;margin-top:5px}.post{border-bottom:1px solid #d2d6de;margin-bottom:15px;padding-bottom:15px;color:#666}.post:last-of-type{border-bottom:0;margin-bottom:0;padding-bottom:0}.post .user-block{margin-bottom:15px}.btn-social{position:relative;padding-left:44px;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.btn-social>:first-child{position:absolute;left:0;top:0;bottom:0;width:32px;line-height:34px;font-size:1.6em;text-align:center;border-right:1px solid rgba(0,0,0,.2)}.btn-social.btn-lg{padding-left:61px}.btn-social.btn-lg>:first-child{line-height:45px;width:45px;font-size:1.8em}.btn-social.btn-sm{padding-left:38px}.btn-social.btn-sm>:first-child{line-height:28px;width:28px;font-size:1.4em}.btn-social.btn-xs{padding-left:30px}.btn-social.btn-xs>:first-child{line-height:20px;width:20px;font-size:1.2em}.btn-social-icon{position:relative;padding-left:44px;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;height:34px;width:34px;padding:0}.btn-social-icon>:first-child{position:absolute;left:0;top:0;bottom:0;width:32px;line-height:34px;font-size:1.6em;border-right:1px solid rgba(0,0,0,.2)}.btn-social-icon.btn-lg{padding-left:61px}.btn-social-icon.btn-lg>:first-child{line-height:45px;width:45px;font-size:1.8em}.btn-social-icon.btn-sm{padding-left:38px}.btn-social-icon.btn-sm>:first-child{line-height:28px;width:28px;font-size:1.4em}.btn-social-icon.btn-xs{padding-left:30px}.btn-social-icon.btn-xs>:first-child{line-height:20px;width:20px;font-size:1.2em}.btn-social-icon>:first-child{border:none;text-align:center;width:100%}.btn-social-icon.btn-lg{height:45px;width:45px;padding-left:0;padding-right:0}.btn-social-icon.btn-sm{height:30px;width:30px;padding-left:0;padding-right:0}.btn-social-icon.btn-xs{height:22px;width:22px;padding-left:0;padding-right:0}.btn-adn{color:#fff;background-color:#d87a68;border-color:rgba(0,0,0,.2)}.btn-adn.active,.btn-adn.focus,.btn-adn:active,.btn-adn:focus,.btn-adn:hover,.open>.dropdown-toggle.btn-adn{color:#fff;background-color:#ce563f;border-color:rgba(0,0,0,.2)}.btn-adn.active,.btn-adn:active,.open>.dropdown-toggle.btn-adn{background-image:none}.btn-adn .badge{color:#d87a68;background-color:#fff}.btn-bitbucket{color:#fff;background-color:#205081;border-color:rgba(0,0,0,.2)}.btn-bitbucket.active,.btn-bitbucket.focus,.btn-bitbucket:active,.btn-bitbucket:focus,.btn-bitbucket:hover,.open>.dropdown-toggle.btn-bitbucket{color:#fff;background-color:#163758;border-color:rgba(0,0,0,.2)}.btn-bitbucket.active,.btn-bitbucket:active,.open>.dropdown-toggle.btn-bitbucket{background-image:none}.btn-bitbucket .badge{color:#205081;background-color:#fff}.btn-dropbox{color:#fff;background-color:#1087dd;border-color:rgba(0,0,0,.2)}.btn-dropbox.active,.btn-dropbox.focus,.btn-dropbox:active,.btn-dropbox:focus,.btn-dropbox:hover,.open>.dropdown-toggle.btn-dropbox{color:#fff;background-color:#0d6aad;border-color:rgba(0,0,0,.2)}.btn-dropbox.active,.btn-dropbox:active,.open>.dropdown-toggle.btn-dropbox{background-image:none}.btn-dropbox .badge{color:#1087dd;background-color:#fff}.btn-facebook{color:#fff;background-color:#3b5998;border-color:rgba(0,0,0,.2)}.btn-facebook.active,.btn-facebook.focus,.btn-facebook:active,.btn-facebook:focus,.btn-facebook:hover,.open>.dropdown-toggle.btn-facebook{color:#fff;background-color:#2d4373;border-color:rgba(0,0,0,.2)}.btn-facebook.active,.btn-facebook:active,.open>.dropdown-toggle.btn-facebook{background-image:none}.btn-facebook .badge{color:#3b5998;background-color:#fff}.btn-flickr{color:#fff;background-color:#ff0084;border-color:rgba(0,0,0,.2)}.btn-flickr.active,.btn-flickr.focus,.btn-flickr:active,.btn-flickr:focus,.btn-flickr:hover,.open>.dropdown-toggle.btn-flickr{color:#fff;background-color:#cc006a;border-color:rgba(0,0,0,.2)}.btn-flickr.active,.btn-flickr:active,.open>.dropdown-toggle.btn-flickr{background-image:none}.btn-flickr .badge{color:#ff0084;background-color:#fff}.btn-foursquare{color:#fff;background-color:#f94877;border-color:rgba(0,0,0,.2)}.btn-foursquare.active,.btn-foursquare.focus,.btn-foursquare:active,.btn-foursquare:focus,.btn-foursquare:hover,.open>.dropdown-toggle.btn-foursquare{color:#fff;background-color:#f71752;border-color:rgba(0,0,0,.2)}.btn-foursquare.active,.btn-foursquare:active,.open>.dropdown-toggle.btn-foursquare{background-image:none}.btn-foursquare .badge{color:#f94877;background-color:#fff}.btn-github{color:#fff;background-color:#444;border-color:rgba(0,0,0,.2)}.btn-github.active,.btn-github.focus,.btn-github:active,.btn-github:focus,.btn-github:hover,.open>.dropdown-toggle.btn-github{color:#fff;background-color:#2b2b2b;border-color:rgba(0,0,0,.2)}.btn-github.active,.btn-github:active,.open>.dropdown-toggle.btn-github{background-image:none}.btn-github .badge{color:#444;background-color:#fff}.btn-google{color:#fff;background-color:#dd4b39;border-color:rgba(0,0,0,.2)}.btn-google.active,.btn-google.focus,.btn-google:active,.btn-google:focus,.btn-google:hover,.open>.dropdown-toggle.btn-google{color:#fff;background-color:#c23321;border-color:rgba(0,0,0,.2)}.btn-google.active,.btn-google:active,.open>.dropdown-toggle.btn-google{background-image:none}.btn-google .badge{color:#dd4b39;background-color:#fff}.btn-instagram{color:#fff;background-color:#3f729b;border-color:rgba(0,0,0,.2)}.btn-instagram.active,.btn-instagram.focus,.btn-instagram:active,.btn-instagram:focus,.btn-instagram:hover,.open>.dropdown-toggle.btn-instagram{color:#fff;background-color:#305777;border-color:rgba(0,0,0,.2)}.btn-instagram.active,.btn-instagram:active,.open>.dropdown-toggle.btn-instagram{background-image:none}.btn-instagram .badge{color:#3f729b;background-color:#fff}.btn-linkedin{color:#fff;background-color:#007bb6;border-color:rgba(0,0,0,.2)}.btn-linkedin.active,.btn-linkedin.focus,.btn-linkedin:active,.btn-linkedin:focus,.btn-linkedin:hover,.open>.dropdown-toggle.btn-linkedin{color:#fff;background-color:#005983;border-color:rgba(0,0,0,.2)}.btn-linkedin.active,.btn-linkedin:active,.open>.dropdown-toggle.btn-linkedin{background-image:none}.btn-linkedin .badge{color:#007bb6;background-color:#fff}.btn-microsoft{color:#fff;background-color:#2672ec;border-color:rgba(0,0,0,.2)}.btn-microsoft.active,.btn-microsoft.focus,.btn-microsoft:active,.btn-microsoft:focus,.btn-microsoft:hover,.open>.dropdown-toggle.btn-microsoft{color:#fff;background-color:#125acd;border-color:rgba(0,0,0,.2)}.btn-microsoft.active,.btn-microsoft:active,.open>.dropdown-toggle.btn-microsoft{background-image:none}.btn-microsoft .badge{color:#2672ec;background-color:#fff}.btn-openid{color:#fff;background-color:#f7931e;border-color:rgba(0,0,0,.2)}.btn-openid.active,.btn-openid.focus,.btn-openid:active,.btn-openid:focus,.btn-openid:hover,.open>.dropdown-toggle.btn-openid{color:#fff;background-color:#da7908;border-color:rgba(0,0,0,.2)}.btn-openid.active,.btn-openid:active,.open>.dropdown-toggle.btn-openid{background-image:none}.btn-openid .badge{color:#f7931e;background-color:#fff}.btn-pinterest{color:#fff;background-color:#cb2027;border-color:rgba(0,0,0,.2)}.btn-pinterest.active,.btn-pinterest.focus,.btn-pinterest:active,.btn-pinterest:focus,.btn-pinterest:hover,.open>.dropdown-toggle.btn-pinterest{color:#fff;background-color:#9f191f;border-color:rgba(0,0,0,.2)}.btn-pinterest.active,.btn-pinterest:active,.open>.dropdown-toggle.btn-pinterest{background-image:none}.btn-pinterest .badge{color:#cb2027;background-color:#fff}.btn-reddit{color:#000;background-color:#eff7ff;border-color:rgba(0,0,0,.2)}.btn-reddit.active,.btn-reddit.focus,.btn-reddit:active,.btn-reddit:focus,.btn-reddit:hover,.open>.dropdown-toggle.btn-reddit{color:#000;background-color:#bcddff;border-color:rgba(0,0,0,.2)}.btn-reddit.active,.btn-reddit:active,.open>.dropdown-toggle.btn-reddit{background-image:none}.btn-reddit .badge{color:#eff7ff;background-color:#000}.btn-soundcloud{color:#fff;background-color:#f50;border-color:rgba(0,0,0,.2)}.btn-soundcloud.active,.btn-soundcloud.focus,.btn-soundcloud:active,.btn-soundcloud:focus,.btn-soundcloud:hover,.open>.dropdown-toggle.btn-soundcloud{color:#fff;background-color:#c40;border-color:rgba(0,0,0,.2)}.btn-soundcloud.active,.btn-soundcloud:active,.open>.dropdown-toggle.btn-soundcloud{background-image:none}.btn-soundcloud .badge{color:#f50;background-color:#fff}.btn-tumblr{color:#fff;background-color:#2c4762;border-color:rgba(0,0,0,.2)}.btn-tumblr.active,.btn-tumblr.focus,.btn-tumblr:active,.btn-tumblr:focus,.btn-tumblr:hover,.open>.dropdown-toggle.btn-tumblr{color:#fff;background-color:#1c2d3f;border-color:rgba(0,0,0,.2)}.btn-tumblr.active,.btn-tumblr:active,.open>.dropdown-toggle.btn-tumblr{background-image:none}.btn-tumblr .badge{color:#2c4762;background-color:#fff}.btn-twitter{color:#fff;background-color:#55acee;border-color:rgba(0,0,0,.2)}.btn-twitter.active,.btn-twitter.focus,.btn-twitter:active,.btn-twitter:focus,.btn-twitter:hover,.open>.dropdown-toggle.btn-twitter{color:#fff;background-color:#2795e9;border-color:rgba(0,0,0,.2)}.btn-twitter.active,.btn-twitter:active,.open>.dropdown-toggle.btn-twitter{background-image:none}.btn-twitter .badge{color:#55acee;background-color:#fff}.btn-vimeo{color:#fff;background-color:#1ab7ea;border-color:rgba(0,0,0,.2)}.btn-vimeo.active,.btn-vimeo.focus,.btn-vimeo:active,.btn-vimeo:focus,.btn-vimeo:hover,.open>.dropdown-toggle.btn-vimeo{color:#fff;background-color:#1295bf;border-color:rgba(0,0,0,.2)}.btn-vimeo.active,.btn-vimeo:active,.open>.dropdown-toggle.btn-vimeo{background-image:none}.btn-vimeo .badge{color:#1ab7ea;background-color:#fff}.btn-vk{color:#fff;background-color:#587ea3;border-color:rgba(0,0,0,.2)}.btn-vk.active,.btn-vk.focus,.btn-vk:active,.btn-vk:focus,.btn-vk:hover,.open>.dropdown-toggle.btn-vk{color:#fff;background-color:#466482;border-color:rgba(0,0,0,.2)}.btn-vk.active,.btn-vk:active,.open>.dropdown-toggle.btn-vk{background-image:none}.btn-vk .badge{color:#587ea3;background-color:#fff}.btn-yahoo{color:#fff;background-color:#720e9e;border-color:rgba(0,0,0,.2)}.btn-yahoo.active,.btn-yahoo.focus,.btn-yahoo:active,.btn-yahoo:focus,.btn-yahoo:hover,.open>.dropdown-toggle.btn-yahoo{color:#fff;background-color:#500a6f;border-color:rgba(0,0,0,.2)}.btn-yahoo.active,.btn-yahoo:active,.open>.dropdown-toggle.btn-yahoo{background-image:none}.btn-yahoo .badge{color:#720e9e;background-color:#fff}.fc-button{background:#f4f4f4;background-image:none;color:#444;border-color:#ddd;border-bottom-color:#ddd}.fc-button.hover,.fc-button:active,.fc-button:hover{background-color:#e9e9e9}.fc-header-title h2{font-size:15px;line-height:1.6em;color:#666;margin-left:10px}.fc-header-right{padding-right:10px}.fc-header-left{padding-left:10px}.fc-widget-header{background:#fafafa}.fc-grid{width:100%;border:0}.fc-widget-content:first-of-type,.fc-widget-header:first-of-type{border-left:0;border-right:0}.fc-widget-content:last-of-type,.fc-widget-header:last-of-type{border-right:0}.fc-toolbar{padding:10px;margin:0}.fc-day-number{font-size:20px;font-weight:300;padding-right:10px}.fc-color-picker{list-style:none;margin:0;padding:0}.fc-color-picker>li{float:left;font-size:30px;margin-right:5px;line-height:30px}.fc-color-picker>li .fa{-webkit-transition:-webkit-transform .3s linear;-moz-transition:-moz-transform linear .3s;-o-transition:-o-transform linear .3s;transition:transform .3s linear}.fc-color-picker>li .fa:hover{-webkit-transform:rotate(30deg);-ms-transform:rotate(30deg);-o-transform:rotate(30deg);transform:rotate(30deg)}#add-new-event{-webkit-transition:all .3s linear;-o-transition:all linear .3s;transition:all .3s linear}.external-event{padding:5px 10px;font-weight:700;margin-bottom:4px;box-shadow:0 1px 1px rgba(0,0,0,.1);text-shadow:0 1px 1px rgba(0,0,0,.1);border-radius:3px;cursor:move}.external-event:hover{box-shadow:inset 0 0 90px rgba(0,0,0,.2)}.select2-container--default.select2-container--focus,.select2-container--default:active,.select2-container--default:focus,.select2-selection.select2-container--focus,.select2-selection:active,.select2-selection:focus{outline:none}.select2-container--default .select2-selection--single,.select2-selection .select2-selection--single{border:1px solid #d2d6de;border-radius:0;padding:6px 12px;height:34px}.select2-container--default.select2-container--open{border-color:#3c8dbc}.select2-dropdown{border:1px solid #d2d6de;border-radius:0}.select2-container--default .select2-results__option--highlighted[aria-selected]{background-color:#3c8dbc;color:#fff}.select2-results__option{padding:6px 12px;user-select:none;-webkit-user-select:none}.select2-container .select2-selection--single .select2-selection__rendered{padding-left:0;padding-right:0;height:auto;margin-top:-4px}.select2-container[dir=rtl] .select2-selection--single .select2-selection__rendered{padding-right:6px;padding-left:20px}.select2-container--default .select2-selection--single .select2-selection__arrow{height:28px;right:3px}.select2-container--default .select2-selection--single .select2-selection__arrow b{margin-top:0}.select2-dropdown .select2-search__field,.select2-search--inline .select2-search__field{border:1px solid #d2d6de}.select2-dropdown .select2-search__field:focus,.select2-search--inline .select2-search__field:focus{outline:none}.select2-container--default.select2-container--focus .select2-selection--multiple,.select2-container--default .select2-search--dropdown .select2-search__field{border-color:#3c8dbc!important}.select2-container--default .select2-results__option[aria-disabled=true]{color:#999}.select2-container--default .select2-results__option[aria-selected=true]{background-color:#ddd}.select2-container--default .select2-results__option[aria-selected=true],.select2-container--default .select2-results__option[aria-selected=true]:hover{color:#444}.select2-container--default .select2-selection--multiple{border:1px solid #d2d6de;border-radius:0}.select2-container--default .select2-selection--multiple:focus{border-color:#3c8dbc}.select2-container--default.select2-container--focus .select2-selection--multiple{border-color:#d2d6de}.select2-container--default .select2-selection--multiple .select2-selection__choice{background-color:#3c8dbc;border-color:#367fa9;padding:1px 10px;color:#fff}.select2-container--default .select2-selection--multiple .select2-selection__choice__remove{margin-right:5px;color:hsla(0,0%,100%,.7)}.select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover{color:#fff}.select2-container .select2-selection--single .select2-selection__rendered{padding-right:10px}.box .datepicker-inline,.box .datepicker-inline .datepicker-days,.box .datepicker-inline .datepicker-days>table,.box .datepicker-inline>table{width:100%}.box .datepicker-inline .datepicker-days>table td:hover,.box .datepicker-inline .datepicker-days td:hover,.box .datepicker-inline>table td:hover,.box .datepicker-inline td:hover{background-color:hsla(0,0%,100%,.3)}.box .datepicker-inline .datepicker-days>table td.day.new,.box .datepicker-inline .datepicker-days>table td.day.old,.box .datepicker-inline .datepicker-days td.day.new,.box .datepicker-inline .datepicker-days td.day.old,.box .datepicker-inline>table td.day.new,.box .datepicker-inline>table td.day.old,.box .datepicker-inline td.day.new,.box .datepicker-inline td.day.old{color:#777}.pad{padding:10px}.margin{margin:10px}.margin-bottom{margin-bottom:20px}.margin-bottom-none{margin-bottom:0}.margin-r-5{margin-right:5px}.inline{display:inline}.description-block{display:block;margin:10px 0;text-align:center}.description-block.margin-bottom{margin-bottom:25px}.description-block>.description-header{margin:0;padding:0;font-weight:600;font-size:16px}.description-block>.description-text{text-transform:uppercase}.alert-danger,.alert-error,.alert-info,.alert-success,.alert-warning,.bg-aqua,.bg-aqua-active,.bg-black,.bg-black-active,.bg-blue,.bg-blue-active,.bg-fuchsia,.bg-fuchsia-active,.bg-green,.bg-green-active,.bg-light-blue,.bg-light-blue-active,.bg-lime,.bg-lime-active,.bg-maroon,.bg-maroon-active,.bg-navy,.bg-navy-active,.bg-olive,.bg-olive-active,.bg-orange,.bg-orange-active,.bg-purple,.bg-purple-active,.bg-red,.bg-red-active,.bg-teal,.bg-teal-active,.bg-yellow,.bg-yellow-active,.callout.callout-danger,.callout.callout-info,.callout.callout-success,.callout.callout-warning,.label-danger,.label-info,.label-primary,.label-success,.label-warning,.modal-danger .modal-body,.modal-danger .modal-footer,.modal-danger .modal-header,.modal-info .modal-body,.modal-info .modal-footer,.modal-info .modal-header,.modal-primary .modal-body,.modal-primary .modal-footer,.modal-primary .modal-header,.modal-success .modal-body,.modal-success .modal-footer,.modal-success .modal-header,.modal-warning .modal-body,.modal-warning .modal-footer,.modal-warning .modal-header{color:#fff!important}.bg-gray{color:#000;background-color:#d2d6de!important}.bg-gray-light{background-color:#f7f7f7}.bg-black{background-color:#111!important}.alert-danger,.alert-error,.bg-red,.callout.callout-danger,.label-danger,.modal-danger .modal-body{background-color:#dd4b39!important}.alert-warning,.bg-yellow,.callout.callout-warning,.label-warning,.modal-warning .modal-body{background-color:#f39c12!important}.alert-info,.bg-aqua,.callout.callout-info,.label-info,.modal-info .modal-body{background-color:#00c0ef!important}.bg-blue{background-color:#0073b7!important}.bg-light-blue,.label-primary,.modal-primary .modal-body{background-color:#3c8dbc!important}.alert-success,.bg-green,.callout.callout-success,.label-success,.modal-success .modal-body{background-color:#00a65a!important}.bg-navy{background-color:#001f3f!important}.bg-teal{background-color:#39cccc!important}.bg-olive{background-color:#3d9970!important}.bg-lime{background-color:#01ff70!important}.bg-orange{background-color:#ff851b!important}.bg-fuchsia{background-color:#f012be!important}.bg-purple{background-color:#605ca8!important}.bg-maroon{background-color:#d81b60!important}.bg-gray-active{color:#000;background-color:#b5bbc8!important}.bg-black-active{background-color:#000!important}.bg-red-active,.modal-danger .modal-footer,.modal-danger .modal-header{background-color:#d33724!important}.bg-yellow-active,.modal-warning .modal-footer,.modal-warning .modal-header{background-color:#db8b0b!important}.bg-aqua-active,.modal-info .modal-footer,.modal-info .modal-header{background-color:#00a7d0!important}.bg-blue-active{background-color:#005384!important}.bg-light-blue-active,.modal-primary .modal-footer,.modal-primary .modal-header{background-color:#357ca5!important}.bg-green-active,.modal-success .modal-footer,.modal-success .modal-header{background-color:#008d4c!important}.bg-navy-active{background-color:#001a35!important}.bg-teal-active{background-color:#30bbbb!important}.bg-olive-active{background-color:#368763!important}.bg-lime-active{background-color:#00e765!important}.bg-orange-active{background-color:#ff7701!important}.bg-fuchsia-active{background-color:#db0ead!important}.bg-purple-active{background-color:#555299!important}.bg-maroon-active{background-color:#ca195a!important}[class^=bg-].disabled{opacity:.65;filter:alpha(opacity=65)}.text-red{color:#dd4b39!important}.text-yellow{color:#f39c12!important}.text-aqua{color:#00c0ef!important}.text-blue{color:#0073b7!important}.text-black{color:#111!important}.text-light-blue{color:#3c8dbc!important}.text-green{color:#00a65a!important}.text-gray{color:#d2d6de!important}.text-navy{color:#001f3f!important}.text-teal{color:#39cccc!important}.text-olive{color:#3d9970!important}.text-lime{color:#01ff70!important}.text-orange{color:#ff851b!important}.text-fuchsia{color:#f012be!important}.text-purple{color:#605ca8!important}.text-maroon{color:#d81b60!important}.link-muted{color:#7a869d}.link-muted:focus,.link-muted:hover{color:#606c84}.link-black{color:#666}.link-black:focus,.link-black:hover{color:#999}.hide{display:none!important}.no-border{border:0!important}.no-padding{padding:0!important}.no-margin{margin:0!important}.no-shadow{box-shadow:none!important}.chart-legend,.contacts-list,.list-unstyled,.mailbox-attachments,.users-list{list-style:none;margin:0;padding:0}.list-group-unbordered>.list-group-item{border-left:0;border-right:0;border-radius:0;padding-left:0;padding-right:0}.flat{border-radius:0!important}.text-bold,.text-bold.table td,.text-bold.table th{font-weight:700}.text-sm{font-size:12px}.jqstooltip{padding:5px!important;width:auto!important;height:auto!important}.bg-teal-gradient{background:#39cccc!important;background:-webkit-gradient(linear,left bottom,left top,color-stop(0,#39cccc),color-stop(1,#7adddd))!important;background:-ms-linear-gradient(bottom,#39cccc,#7adddd)!important;background:-moz-linear-gradient(center bottom,#39cccc 0,#7adddd 100%)!important;background:-o-linear-gradient(#7adddd,#39cccc)!important;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr="#7adddd",endColorstr="#39cccc",GradientType=0)!important;color:#fff}.bg-light-blue-gradient{background:#3c8dbc!important;background:-webkit-gradient(linear,left bottom,left top,color-stop(0,#3c8dbc),color-stop(1,#67a8ce))!important;background:-ms-linear-gradient(bottom,#3c8dbc,#67a8ce)!important;background:-moz-linear-gradient(center bottom,#3c8dbc 0,#67a8ce 100%)!important;background:-o-linear-gradient(#67a8ce,#3c8dbc)!important;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr="#67a8ce",endColorstr="#3c8dbc",GradientType=0)!important;color:#fff}.bg-blue-gradient{background:#0073b7!important;background:-webkit-gradient(linear,left bottom,left top,color-stop(0,#0073b7),color-stop(1,#0089db))!important;background:-ms-linear-gradient(bottom,#0073b7,#0089db)!important;background:-moz-linear-gradient(center bottom,#0073b7 0,#0089db 100%)!important;background:-o-linear-gradient(#0089db,#0073b7)!important;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr="#0089db",endColorstr="#0073b7",GradientType=0)!important;color:#fff}.bg-aqua-gradient{background:#00c0ef!important;background:-webkit-gradient(linear,left bottom,left top,color-stop(0,#00c0ef),color-stop(1,#14d1ff))!important;background:-ms-linear-gradient(bottom,#00c0ef,#14d1ff)!important;background:-moz-linear-gradient(center bottom,#00c0ef 0,#14d1ff 100%)!important;background:-o-linear-gradient(#14d1ff,#00c0ef)!important;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr="#14d1ff",endColorstr="#00c0ef",GradientType=0)!important;color:#fff}.bg-yellow-gradient{background:#f39c12!important;background:-webkit-gradient(linear,left bottom,left top,color-stop(0,#f39c12),color-stop(1,#f7bc60))!important;background:-ms-linear-gradient(bottom,#f39c12,#f7bc60)!important;background:-moz-linear-gradient(center bottom,#f39c12 0,#f7bc60 100%)!important;background:-o-linear-gradient(#f7bc60,#f39c12)!important;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr="#f7bc60",endColorstr="#f39c12",GradientType=0)!important;color:#fff}.bg-purple-gradient{background:#605ca8!important;background:-webkit-gradient(linear,left bottom,left top,color-stop(0,#605ca8),color-stop(1,#9491c4))!important;background:-ms-linear-gradient(bottom,#605ca8,#9491c4)!important;background:-moz-linear-gradient(center bottom,#605ca8 0,#9491c4 100%)!important;background:-o-linear-gradient(#9491c4,#605ca8)!important;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr="#9491c4",endColorstr="#605ca8",GradientType=0)!important;color:#fff}.bg-green-gradient{background:#00a65a!important;background:-webkit-gradient(linear,left bottom,left top,color-stop(0,#00a65a),color-stop(1,#00ca6d))!important;background:-ms-linear-gradient(bottom,#00a65a,#00ca6d)!important;background:-moz-linear-gradient(center bottom,#00a65a 0,#00ca6d 100%)!important;background:-o-linear-gradient(#00ca6d,#00a65a)!important;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr="#00ca6d",endColorstr="#00a65a",GradientType=0)!important;color:#fff}.bg-red-gradient{background:#dd4b39!important;background:-webkit-gradient(linear,left bottom,left top,color-stop(0,#dd4b39),color-stop(1,#e47365))!important;background:-ms-linear-gradient(bottom,#dd4b39,#e47365)!important;background:-moz-linear-gradient(center bottom,#dd4b39 0,#e47365 100%)!important;background:-o-linear-gradient(#e47365,#dd4b39)!important;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr="#e47365",endColorstr="#dd4b39",GradientType=0)!important;color:#fff}.bg-black-gradient{background:#111!important;background:-webkit-gradient(linear,left bottom,left top,color-stop(0,#111),color-stop(1,#2b2b2b))!important;background:-ms-linear-gradient(bottom,#111,#2b2b2b)!important;background:-moz-linear-gradient(center bottom,#111 0,#2b2b2b 100%)!important;background:-o-linear-gradient(#2b2b2b,#111)!important;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr="#2b2b2b",endColorstr="#111111",GradientType=0)!important;color:#fff}.bg-maroon-gradient{background:#d81b60!important;background:-webkit-gradient(linear,left bottom,left top,color-stop(0,#d81b60),color-stop(1,#e73f7c))!important;background:-ms-linear-gradient(bottom,#d81b60,#e73f7c)!important;background:-moz-linear-gradient(center bottom,#d81b60 0,#e73f7c 100%)!important;background:-o-linear-gradient(#e73f7c,#d81b60)!important;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr="#e73f7c",endColorstr="#d81b60",GradientType=0)!important;color:#fff}.description-block .description-icon{font-size:16px}.no-pad-top{padding-top:0}.position-static{position:static!important}.list-header{font-size:15px;padding:10px 4px;font-weight:700;color:#666}.list-seperator{height:1px;background:#f4f4f4;margin:15px 0 9px}.list-link>a{padding:4px;color:#777}.list-link>a:hover{color:#222}.font-light{font-weight:300}.user-block:after,.user-block:before{content:" ";display:table}.user-block:after{clear:both}.user-block img{width:40px;height:40px;float:left}.user-block .comment,.user-block .description,.user-block .username{display:block;margin-left:50px}.user-block .username{font-size:16px;font-weight:600}.user-block .description{color:#999;font-size:13px}.user-block.user-block-sm .comment,.user-block.user-block-sm .description,.user-block.user-block-sm .username{margin-left:40px}.user-block.user-block-sm .username{font-size:14px}.box-comments .box-comment img,.img-lg,.img-md,.img-sm,.user-block.user-block-sm img{float:left}.box-comments .box-comment img,.img-sm,.user-block.user-block-sm img{width:30px!important;height:30px!important}.img-sm+.img-push{margin-left:40px}.img-md{width:60px;height:60px}.img-md+.img-push{margin-left:70px}.img-lg{width:100px;height:100px}.img-lg+.img-push{margin-left:110px}.img-bordered{border:3px solid #d2d6de;padding:3px}.img-bordered-sm{border:2px solid #d2d6de;padding:2px}.attachment-block{border:1px solid #f4f4f4;padding:5px;margin-bottom:10px;background:#f7f7f7}.attachment-block .attachment-img{max-width:100px;max-height:100px;height:auto;float:left}.attachment-block .attachment-pushed{margin-left:110px}.attachment-block .attachment-heading{margin:0}.attachment-block .attachment-text{color:#555}.connectedSortable{min-height:100px}.ui-helper-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.sort-highlight{background:#f4f4f4;border:1px dashed #ddd;margin-bottom:10px}.full-opacity-hover{opacity:.65;filter:alpha(opacity=65)}.full-opacity-hover:hover{opacity:1;filter:alpha(opacity=100)}.chart{position:relative;overflow:hidden;width:100%}.chart canvas,.chart svg{width:100%!important}@media print{.content-header,.left-side,.main-header,.main-sidebar,.no-print{display:none!important}.content-wrapper,.main-footer,.right-side{margin-left:0!important;min-height:0!important;-webkit-transform:translate(0)!important;-ms-transform:translate(0)!important;-o-transform:translate(0)!important;transform:translate(0)!important}.fixed .content-wrapper,.fixed .right-side{padding-top:0!important}.invoice{width:100%;border:0;margin:0;padding:0}.invoice-col{float:left;width:33.3333333%}.table-responsive{overflow:auto}.table-responsive>.table tr td,.table-responsive>.table tr th{white-space:normal!important}}.skin-blue .main-header .navbar{background-color:#3c8dbc}.skin-blue .main-header .navbar .nav>li>a{color:#fff}.skin-blue .main-header .navbar .nav .open>a,.skin-blue .main-header .navbar .nav .open>a:focus,.skin-blue .main-header .navbar .nav .open>a:hover,.skin-blue .main-header .navbar .nav>.active>a,.skin-blue .main-header .navbar .nav>li>a:active,.skin-blue .main-header .navbar .nav>li>a:focus,.skin-blue .main-header .navbar .nav>li>a:hover,.skin-blue .main-header .navbar .sidebar-toggle:hover{background:rgba(0,0,0,.1);color:#f6f6f6}.skin-blue .main-header .navbar .sidebar-toggle{color:#fff}.skin-blue .main-header .navbar .sidebar-toggle:hover{background-color:#367fa9}@media (max-width:767px){.skin-blue .main-header .navbar .dropdown-menu li.divider{background-color:hsla(0,0%,100%,.1)}.skin-blue .main-header .navbar .dropdown-menu li a{color:#fff}.skin-blue .main-header .navbar .dropdown-menu li a:hover{background:#367fa9}}.skin-blue .main-header .logo{background-color:#367fa9;color:#fff;border-bottom:0 solid transparent}.skin-blue .main-header .logo:hover{background-color:#357ca5}.skin-blue .main-header li.user-header{background-color:#3c8dbc}.skin-blue .content-header{background:transparent}.skin-blue .left-side,.skin-blue .main-sidebar,.skin-blue .wrapper{background-color:#222d32}.skin-blue .user-panel>.info,.skin-blue .user-panel>.info>a{color:#fff}.skin-blue .sidebar-menu>li.header{color:#4b646f;background:#1a2226}.skin-blue .sidebar-menu>li>a{border-left:3px solid transparent}.skin-blue .sidebar-menu>li.active>a,.skin-blue .sidebar-menu>li.menu-open>a,.skin-blue .sidebar-menu>li:hover>a{color:#fff;background:#1e282c}.skin-blue .sidebar-menu>li.active>a{border-left-color:#3c8dbc}.skin-blue .sidebar-menu>li>.treeview-menu{margin:0 1px;background:#2c3b41}.skin-blue .sidebar a{color:#b8c7ce}.skin-blue .sidebar a:hover{text-decoration:none}.skin-blue .sidebar-menu .treeview-menu>li>a{color:#8aa4af}.skin-blue .sidebar-menu .treeview-menu>li.active>a,.skin-blue .sidebar-menu .treeview-menu>li>a:hover{color:#fff}.skin-blue .sidebar-form{border-radius:3px;border:1px solid #374850;margin:10px}.skin-blue .sidebar-form .btn,.skin-blue .sidebar-form input[type=text]{box-shadow:none;background-color:#374850;border:1px solid transparent;height:35px}.skin-blue .sidebar-form input[type=text]{color:#666;border-top-left-radius:2px;border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:2px}.skin-blue .sidebar-form input[type=text]:focus,.skin-blue .sidebar-form input[type=text]:focus+.input-group-btn .btn{background-color:#fff;color:#666}.skin-blue .sidebar-form input[type=text]:focus+.input-group-btn .btn{border-left-color:#fff}.skin-blue .sidebar-form .btn{color:#999;border-top-left-radius:0;border-top-right-radius:2px;border-bottom-right-radius:2px;border-bottom-left-radius:0}.skin-blue-light .main-header .navbar{background-color:#3c8dbc}.skin-blue-light .main-header .navbar .nav>li>a{color:#fff}.skin-blue-light .main-header .navbar .nav .open>a,.skin-blue-light .main-header .navbar .nav .open>a:focus,.skin-blue-light .main-header .navbar .nav .open>a:hover,.skin-blue-light .main-header .navbar .nav>.active>a,.skin-blue-light .main-header .navbar .nav>li>a:active,.skin-blue-light .main-header .navbar .nav>li>a:focus,.skin-blue-light .main-header .navbar .nav>li>a:hover,.skin-blue-light .main-header .navbar .sidebar-toggle:hover{background:rgba(0,0,0,.1);color:#f6f6f6}.skin-blue-light .main-header .navbar .sidebar-toggle{color:#fff}.skin-blue-light .main-header .navbar .sidebar-toggle:hover{background-color:#367fa9}@media (max-width:767px){.skin-blue-light .main-header .navbar .dropdown-menu li.divider{background-color:hsla(0,0%,100%,.1)}.skin-blue-light .main-header .navbar .dropdown-menu li a{color:#fff}.skin-blue-light .main-header .navbar .dropdown-menu li a:hover{background:#367fa9}}.skin-blue-light .main-header .logo{background-color:#3c8dbc;color:#fff;border-bottom:0 solid transparent}.skin-blue-light .main-header .logo:hover{background-color:#3b8ab8}.skin-blue-light .main-header li.user-header{background-color:#3c8dbc}.skin-blue-light .content-header{background:transparent}.skin-blue-light .left-side,.skin-blue-light .main-sidebar,.skin-blue-light .wrapper{background-color:#f9fafc}.skin-blue-light .main-sidebar{border-right:1px solid #d2d6de}.skin-blue-light .user-panel>.info,.skin-blue-light .user-panel>.info>a{color:#444}.skin-blue-light .sidebar-menu>li{-webkit-transition:border-left-color .3s ease;-o-transition:border-left-color .3s ease;transition:border-left-color .3s ease}.skin-blue-light .sidebar-menu>li.header{color:#848484;background:#f9fafc}.skin-blue-light .sidebar-menu>li>a{border-left:3px solid transparent;font-weight:600}.skin-blue-light .sidebar-menu>li.active>a,.skin-blue-light .sidebar-menu>li:hover>a{color:#000;background:#f4f4f5}.skin-blue-light .sidebar-menu>li.active{border-left-color:#3c8dbc}.skin-blue-light .sidebar-menu>li.active>a{font-weight:600}.skin-blue-light .sidebar-menu>li>.treeview-menu{background:#f4f4f5}.skin-blue-light .sidebar a{color:#444}.skin-blue-light .sidebar a:hover{text-decoration:none}.skin-blue-light .sidebar-menu .treeview-menu>li>a{color:#777}.skin-blue-light .sidebar-menu .treeview-menu>li.active>a,.skin-blue-light .sidebar-menu .treeview-menu>li>a:hover{color:#000}.skin-blue-light .sidebar-menu .treeview-menu>li.active>a{font-weight:600}.skin-blue-light .sidebar-form{border-radius:3px;border:1px solid #d2d6de;margin:10px}.skin-blue-light .sidebar-form .btn,.skin-blue-light .sidebar-form input[type=text]{box-shadow:none;background-color:#fff;border:1px solid transparent;height:35px}.skin-blue-light .sidebar-form input[type=text]{color:#666;border-top-left-radius:2px;border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:2px}.skin-blue-light .sidebar-form input[type=text]:focus,.skin-blue-light .sidebar-form input[type=text]:focus+.input-group-btn .btn{background-color:#fff;color:#666}.skin-blue-light .sidebar-form input[type=text]:focus+.input-group-btn .btn{border-left-color:#fff}.skin-blue-light .sidebar-form .btn{color:#999;border-top-left-radius:0;border-top-right-radius:2px;border-bottom-right-radius:2px;border-bottom-left-radius:0}@media (min-width:768px){.skin-blue-light.sidebar-mini.sidebar-collapse .sidebar-menu>li>.treeview-menu{border-left:1px solid #d2d6de}}.skin-blue-light .main-footer{border-top-color:#d2d6de}.skin-blue.layout-top-nav .main-header>.logo{background-color:#3c8dbc;color:#fff;border-bottom:0 solid transparent}.skin-blue.layout-top-nav .main-header>.logo:hover{background-color:#3b8ab8}.skin-black .main-header{-webkit-box-shadow:0 1px 1px rgba(0,0,0,.05);box-shadow:0 1px 1px rgba(0,0,0,.05)}.skin-black .main-header .navbar-toggle{color:#333}.skin-black .main-header .navbar-brand{color:#333;border-right:1px solid #eee}.skin-black .main-header .navbar{background-color:#fff}.skin-black .main-header .navbar .nav>li>a{color:#333}.skin-black .main-header .navbar .nav .open>a,.skin-black .main-header .navbar .nav .open>a:focus,.skin-black .main-header .navbar .nav .open>a:hover,.skin-black .main-header .navbar .nav>.active>a,.skin-black .main-header .navbar .nav>li>a:active,.skin-black .main-header .navbar .nav>li>a:focus,.skin-black .main-header .navbar .nav>li>a:hover{background:#fff;color:#999}.skin-black .main-header .navbar .sidebar-toggle{color:#333}.skin-black .main-header .navbar .sidebar-toggle:hover{color:#999;background:#fff}.skin-black .main-header .navbar>.sidebar-toggle{color:#333;border-right:1px solid #eee}.skin-black .main-header .navbar .navbar-nav>li>a{border-right:1px solid #eee}.skin-black .main-header .navbar .navbar-custom-menu .navbar-nav>li>a,.skin-black .main-header .navbar .navbar-right>li>a{border-left:1px solid #eee;border-right-width:0}.skin-black .main-header .logo{background-color:#fff;color:#333;border-bottom:0 solid transparent;border-right:1px solid #eee}.skin-black .main-header .logo:hover{background-color:#fcfcfc}@media (max-width:767px){.skin-black .main-header .logo{background-color:#222;color:#fff;border-bottom:0 solid transparent;border-right:none}.skin-black .main-header .logo:hover{background-color:#1f1f1f}}.skin-black .main-header li.user-header{background-color:#222}.skin-black .content-header{background:transparent;box-shadow:none}.skin-black .left-side,.skin-black .main-sidebar,.skin-black .wrapper{background-color:#222d32}.skin-black .user-panel>.info,.skin-black .user-panel>.info>a{color:#fff}.skin-black .sidebar-menu>li.header{color:#4b646f;background:#1a2226}.skin-black .sidebar-menu>li>a{border-left:3px solid transparent}.skin-black .sidebar-menu>li.active>a,.skin-black .sidebar-menu>li.menu-open>a,.skin-black .sidebar-menu>li:hover>a{color:#fff;background:#1e282c}.skin-black .sidebar-menu>li.active>a{border-left-color:#fff}.skin-black .sidebar-menu>li>.treeview-menu{margin:0 1px;background:#2c3b41}.skin-black .sidebar a{color:#b8c7ce}.skin-black .sidebar a:hover{text-decoration:none}.skin-black .sidebar-menu .treeview-menu>li>a{color:#8aa4af}.skin-black .sidebar-menu .treeview-menu>li.active>a,.skin-black .sidebar-menu .treeview-menu>li>a:hover{color:#fff}.skin-black .sidebar-form{border-radius:3px;border:1px solid #374850;margin:10px}.skin-black .sidebar-form .btn,.skin-black .sidebar-form input[type=text]{box-shadow:none;background-color:#374850;border:1px solid transparent;height:35px}.skin-black .sidebar-form input[type=text]{color:#666;border-top-left-radius:2px;border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:2px}.skin-black .sidebar-form input[type=text]:focus,.skin-black .sidebar-form input[type=text]:focus+.input-group-btn .btn{background-color:#fff;color:#666}.skin-black .sidebar-form input[type=text]:focus+.input-group-btn .btn{border-left-color:#fff}.skin-black .sidebar-form .btn{color:#999;border-top-left-radius:0;border-top-right-radius:2px;border-bottom-right-radius:2px;border-bottom-left-radius:0}.skin-black .pace .pace-progress{background:#222}.skin-black .pace .pace-activity{border-top-color:#222;border-left-color:#222}.skin-black-light .main-header{border-bottom:1px solid #d2d6de}.skin-black-light .main-header .navbar-toggle{color:#333}.skin-black-light .main-header .navbar-brand{color:#333;border-right:1px solid #d2d6de}.skin-black-light .main-header .navbar{background-color:#fff}.skin-black-light .main-header .navbar .nav>li>a{color:#333}.skin-black-light .main-header .navbar .nav .open>a,.skin-black-light .main-header .navbar .nav .open>a:focus,.skin-black-light .main-header .navbar .nav .open>a:hover,.skin-black-light .main-header .navbar .nav>.active>a,.skin-black-light .main-header .navbar .nav>li>a:active,.skin-black-light .main-header .navbar .nav>li>a:focus,.skin-black-light .main-header .navbar .nav>li>a:hover{background:#fff;color:#999}.skin-black-light .main-header .navbar .sidebar-toggle{color:#333}.skin-black-light .main-header .navbar .sidebar-toggle:hover{color:#999;background:#fff}.skin-black-light .main-header .navbar>.sidebar-toggle{color:#333;border-right:1px solid #d2d6de}.skin-black-light .main-header .navbar .navbar-nav>li>a{border-right:1px solid #d2d6de}.skin-black-light .main-header .navbar .navbar-custom-menu .navbar-nav>li>a,.skin-black-light .main-header .navbar .navbar-right>li>a{border-left:1px solid #d2d6de;border-right-width:0}.skin-black-light .main-header .logo{background-color:#fff;color:#333;border-bottom:0 solid transparent;border-right:1px solid #d2d6de}.skin-black-light .main-header .logo:hover{background-color:#fcfcfc}@media (max-width:767px){.skin-black-light .main-header .logo{background-color:#222;color:#fff;border-bottom:0 solid transparent;border-right:none}.skin-black-light .main-header .logo:hover{background-color:#1f1f1f}}.skin-black-light .main-header li.user-header{background-color:#222}.skin-black-light .content-header{background:transparent;box-shadow:none}.skin-black-light .left-side,.skin-black-light .main-sidebar,.skin-black-light .wrapper{background-color:#f9fafc}.skin-black-light .main-sidebar{border-right:1px solid #d2d6de}.skin-black-light .user-panel>.info,.skin-black-light .user-panel>.info>a{color:#444}.skin-black-light .sidebar-menu>li{-webkit-transition:border-left-color .3s ease;-o-transition:border-left-color .3s ease;transition:border-left-color .3s ease}.skin-black-light .sidebar-menu>li.header{color:#848484;background:#f9fafc}.skin-black-light .sidebar-menu>li>a{border-left:3px solid transparent;font-weight:600}.skin-black-light .sidebar-menu>li.active>a,.skin-black-light .sidebar-menu>li:hover>a{color:#000;background:#f4f4f5}.skin-black-light .sidebar-menu>li.active{border-left-color:#fff}.skin-black-light .sidebar-menu>li.active>a{font-weight:600}.skin-black-light .sidebar-menu>li>.treeview-menu{background:#f4f4f5}.skin-black-light .sidebar a{color:#444}.skin-black-light .sidebar a:hover{text-decoration:none}.skin-black-light .sidebar-menu .treeview-menu>li>a{color:#777}.skin-black-light .sidebar-menu .treeview-menu>li.active>a,.skin-black-light .sidebar-menu .treeview-menu>li>a:hover{color:#000}.skin-black-light .sidebar-menu .treeview-menu>li.active>a{font-weight:600}.skin-black-light .sidebar-form{border-radius:3px;border:1px solid #d2d6de;margin:10px}.skin-black-light .sidebar-form .btn,.skin-black-light .sidebar-form input[type=text]{box-shadow:none;background-color:#fff;border:1px solid transparent;height:35px}.skin-black-light .sidebar-form input[type=text]{color:#666;border-top-left-radius:2px;border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:2px}.skin-black-light .sidebar-form input[type=text]:focus,.skin-black-light .sidebar-form input[type=text]:focus+.input-group-btn .btn{background-color:#fff;color:#666}.skin-black-light .sidebar-form input[type=text]:focus+.input-group-btn .btn{border-left-color:#fff}.skin-black-light .sidebar-form .btn{color:#999;border-top-left-radius:0;border-top-right-radius:2px;border-bottom-right-radius:2px;border-bottom-left-radius:0}@media (min-width:768px){.skin-black-light.sidebar-mini.sidebar-collapse .sidebar-menu>li>.treeview-menu{border-left:1px solid #d2d6de}}.skin-green .main-header .navbar{background-color:#00a65a}.skin-green .main-header .navbar .nav>li>a{color:#fff}.skin-green .main-header .navbar .nav .open>a,.skin-green .main-header .navbar .nav .open>a:focus,.skin-green .main-header .navbar .nav .open>a:hover,.skin-green .main-header .navbar .nav>.active>a,.skin-green .main-header .navbar .nav>li>a:active,.skin-green .main-header .navbar .nav>li>a:focus,.skin-green .main-header .navbar .nav>li>a:hover,.skin-green .main-header .navbar .sidebar-toggle:hover{background:rgba(0,0,0,.1);color:#f6f6f6}.skin-green .main-header .navbar .sidebar-toggle{color:#fff}.skin-green .main-header .navbar .sidebar-toggle:hover{background-color:#008d4c}@media (max-width:767px){.skin-green .main-header .navbar .dropdown-menu li.divider{background-color:hsla(0,0%,100%,.1)}.skin-green .main-header .navbar .dropdown-menu li a{color:#fff}.skin-green .main-header .navbar .dropdown-menu li a:hover{background:#008d4c}}.skin-green .main-header .logo{background-color:#008d4c;color:#fff;border-bottom:0 solid transparent}.skin-green .main-header .logo:hover{background-color:#008749}.skin-green .main-header li.user-header{background-color:#00a65a}.skin-green .content-header{background:transparent}.skin-green .left-side,.skin-green .main-sidebar,.skin-green .wrapper{background-color:#222d32}.skin-green .user-panel>.info,.skin-green .user-panel>.info>a{color:#fff}.skin-green .sidebar-menu>li.header{color:#4b646f;background:#1a2226}.skin-green .sidebar-menu>li>a{border-left:3px solid transparent}.skin-green .sidebar-menu>li.active>a,.skin-green .sidebar-menu>li.menu-open>a,.skin-green .sidebar-menu>li:hover>a{color:#fff;background:#1e282c}.skin-green .sidebar-menu>li.active>a{border-left-color:#00a65a}.skin-green .sidebar-menu>li>.treeview-menu{margin:0 1px;background:#2c3b41}.skin-green .sidebar a{color:#b8c7ce}.skin-green .sidebar a:hover{text-decoration:none}.skin-green .sidebar-menu .treeview-menu>li>a{color:#8aa4af}.skin-green .sidebar-menu .treeview-menu>li.active>a,.skin-green .sidebar-menu .treeview-menu>li>a:hover{color:#fff}.skin-green .sidebar-form{border-radius:3px;border:1px solid #374850;margin:10px}.skin-green .sidebar-form .btn,.skin-green .sidebar-form input[type=text]{box-shadow:none;background-color:#374850;border:1px solid transparent;height:35px}.skin-green .sidebar-form input[type=text]{color:#666;border-top-left-radius:2px;border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:2px}.skin-green .sidebar-form input[type=text]:focus,.skin-green .sidebar-form input[type=text]:focus+.input-group-btn .btn{background-color:#fff;color:#666}.skin-green .sidebar-form input[type=text]:focus+.input-group-btn .btn{border-left-color:#fff}.skin-green .sidebar-form .btn{color:#999;border-top-left-radius:0;border-top-right-radius:2px;border-bottom-right-radius:2px;border-bottom-left-radius:0}.skin-green-light .main-header .navbar{background-color:#00a65a}.skin-green-light .main-header .navbar .nav>li>a{color:#fff}.skin-green-light .main-header .navbar .nav .open>a,.skin-green-light .main-header .navbar .nav .open>a:focus,.skin-green-light .main-header .navbar .nav .open>a:hover,.skin-green-light .main-header .navbar .nav>.active>a,.skin-green-light .main-header .navbar .nav>li>a:active,.skin-green-light .main-header .navbar .nav>li>a:focus,.skin-green-light .main-header .navbar .nav>li>a:hover,.skin-green-light .main-header .navbar .sidebar-toggle:hover{background:rgba(0,0,0,.1);color:#f6f6f6}.skin-green-light .main-header .navbar .sidebar-toggle{color:#fff}.skin-green-light .main-header .navbar .sidebar-toggle:hover{background-color:#008d4c}@media (max-width:767px){.skin-green-light .main-header .navbar .dropdown-menu li.divider{background-color:hsla(0,0%,100%,.1)}.skin-green-light .main-header .navbar .dropdown-menu li a{color:#fff}.skin-green-light .main-header .navbar .dropdown-menu li a:hover{background:#008d4c}}.skin-green-light .main-header .logo{background-color:#00a65a;color:#fff;border-bottom:0 solid transparent}.skin-green-light .main-header .logo:hover{background-color:#00a157}.skin-green-light .main-header li.user-header{background-color:#00a65a}.skin-green-light .content-header{background:transparent}.skin-green-light .left-side,.skin-green-light .main-sidebar,.skin-green-light .wrapper{background-color:#f9fafc}.skin-green-light .main-sidebar{border-right:1px solid #d2d6de}.skin-green-light .user-panel>.info,.skin-green-light .user-panel>.info>a{color:#444}.skin-green-light .sidebar-menu>li{-webkit-transition:border-left-color .3s ease;-o-transition:border-left-color .3s ease;transition:border-left-color .3s ease}.skin-green-light .sidebar-menu>li.header{color:#848484;background:#f9fafc}.skin-green-light .sidebar-menu>li>a{border-left:3px solid transparent;font-weight:600}.skin-green-light .sidebar-menu>li.active>a,.skin-green-light .sidebar-menu>li:hover>a{color:#000;background:#f4f4f5}.skin-green-light .sidebar-menu>li.active{border-left-color:#00a65a}.skin-green-light .sidebar-menu>li.active>a{font-weight:600}.skin-green-light .sidebar-menu>li>.treeview-menu{background:#f4f4f5}.skin-green-light .sidebar a{color:#444}.skin-green-light .sidebar a:hover{text-decoration:none}.skin-green-light .sidebar-menu .treeview-menu>li>a{color:#777}.skin-green-light .sidebar-menu .treeview-menu>li.active>a,.skin-green-light .sidebar-menu .treeview-menu>li>a:hover{color:#000}.skin-green-light .sidebar-menu .treeview-menu>li.active>a{font-weight:600}.skin-green-light .sidebar-form{border-radius:3px;border:1px solid #d2d6de;margin:10px}.skin-green-light .sidebar-form .btn,.skin-green-light .sidebar-form input[type=text]{box-shadow:none;background-color:#fff;border:1px solid transparent;height:35px}.skin-green-light .sidebar-form input[type=text]{color:#666;border-top-left-radius:2px;border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:2px}.skin-green-light .sidebar-form input[type=text]:focus,.skin-green-light .sidebar-form input[type=text]:focus+.input-group-btn .btn{background-color:#fff;color:#666}.skin-green-light .sidebar-form input[type=text]:focus+.input-group-btn .btn{border-left-color:#fff}.skin-green-light .sidebar-form .btn{color:#999;border-top-left-radius:0;border-top-right-radius:2px;border-bottom-right-radius:2px;border-bottom-left-radius:0}@media (min-width:768px){.skin-green-light.sidebar-mini.sidebar-collapse .sidebar-menu>li>.treeview-menu{border-left:1px solid #d2d6de}}.skin-red .main-header .navbar{background-color:#dd4b39}.skin-red .main-header .navbar .nav>li>a{color:#fff}.skin-red .main-header .navbar .nav .open>a,.skin-red .main-header .navbar .nav .open>a:focus,.skin-red .main-header .navbar .nav .open>a:hover,.skin-red .main-header .navbar .nav>.active>a,.skin-red .main-header .navbar .nav>li>a:active,.skin-red .main-header .navbar .nav>li>a:focus,.skin-red .main-header .navbar .nav>li>a:hover,.skin-red .main-header .navbar .sidebar-toggle:hover{background:rgba(0,0,0,.1);color:#f6f6f6}.skin-red .main-header .navbar .sidebar-toggle{color:#fff}.skin-red .main-header .navbar .sidebar-toggle:hover{background-color:#d73925}@media (max-width:767px){.skin-red .main-header .navbar .dropdown-menu li.divider{background-color:hsla(0,0%,100%,.1)}.skin-red .main-header .navbar .dropdown-menu li a{color:#fff}.skin-red .main-header .navbar .dropdown-menu li a:hover{background:#d73925}}.skin-red .main-header .logo{background-color:#d73925;color:#fff;border-bottom:0 solid transparent}.skin-red .main-header .logo:hover{background-color:#d33724}.skin-red .main-header li.user-header{background-color:#dd4b39}.skin-red .content-header{background:transparent}.skin-red .left-side,.skin-red .main-sidebar,.skin-red .wrapper{background-color:#222d32}.skin-red .user-panel>.info,.skin-red .user-panel>.info>a{color:#fff}.skin-red .sidebar-menu>li.header{color:#4b646f;background:#1a2226}.skin-red .sidebar-menu>li>a{border-left:3px solid transparent}.skin-red .sidebar-menu>li.active>a,.skin-red .sidebar-menu>li.menu-open>a,.skin-red .sidebar-menu>li:hover>a{color:#fff;background:#1e282c}.skin-red .sidebar-menu>li.active>a{border-left-color:#dd4b39}.skin-red .sidebar-menu>li>.treeview-menu{margin:0 1px;background:#2c3b41}.skin-red .sidebar a{color:#b8c7ce}.skin-red .sidebar a:hover{text-decoration:none}.skin-red .sidebar-menu .treeview-menu>li>a{color:#8aa4af}.skin-red .sidebar-menu .treeview-menu>li.active>a,.skin-red .sidebar-menu .treeview-menu>li>a:hover{color:#fff}.skin-red .sidebar-form{border-radius:3px;border:1px solid #374850;margin:10px}.skin-red .sidebar-form .btn,.skin-red .sidebar-form input[type=text]{box-shadow:none;background-color:#374850;border:1px solid transparent;height:35px}.skin-red .sidebar-form input[type=text]{color:#666;border-top-left-radius:2px;border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:2px}.skin-red .sidebar-form input[type=text]:focus,.skin-red .sidebar-form input[type=text]:focus+.input-group-btn .btn{background-color:#fff;color:#666}.skin-red .sidebar-form input[type=text]:focus+.input-group-btn .btn{border-left-color:#fff}.skin-red .sidebar-form .btn{color:#999;border-top-left-radius:0;border-top-right-radius:2px;border-bottom-right-radius:2px;border-bottom-left-radius:0}.skin-red-light .main-header .navbar{background-color:#dd4b39}.skin-red-light .main-header .navbar .nav>li>a{color:#fff}.skin-red-light .main-header .navbar .nav .open>a,.skin-red-light .main-header .navbar .nav .open>a:focus,.skin-red-light .main-header .navbar .nav .open>a:hover,.skin-red-light .main-header .navbar .nav>.active>a,.skin-red-light .main-header .navbar .nav>li>a:active,.skin-red-light .main-header .navbar .nav>li>a:focus,.skin-red-light .main-header .navbar .nav>li>a:hover,.skin-red-light .main-header .navbar .sidebar-toggle:hover{background:rgba(0,0,0,.1);color:#f6f6f6}.skin-red-light .main-header .navbar .sidebar-toggle{color:#fff}.skin-red-light .main-header .navbar .sidebar-toggle:hover{background-color:#d73925}@media (max-width:767px){.skin-red-light .main-header .navbar .dropdown-menu li.divider{background-color:hsla(0,0%,100%,.1)}.skin-red-light .main-header .navbar .dropdown-menu li a{color:#fff}.skin-red-light .main-header .navbar .dropdown-menu li a:hover{background:#d73925}}.skin-red-light .main-header .logo{background-color:#dd4b39;color:#fff;border-bottom:0 solid transparent}.skin-red-light .main-header .logo:hover{background-color:#dc4735}.skin-red-light .main-header li.user-header{background-color:#dd4b39}.skin-red-light .content-header{background:transparent}.skin-red-light .left-side,.skin-red-light .main-sidebar,.skin-red-light .wrapper{background-color:#f9fafc}.skin-red-light .main-sidebar{border-right:1px solid #d2d6de}.skin-red-light .user-panel>.info,.skin-red-light .user-panel>.info>a{color:#444}.skin-red-light .sidebar-menu>li{-webkit-transition:border-left-color .3s ease;-o-transition:border-left-color .3s ease;transition:border-left-color .3s ease}.skin-red-light .sidebar-menu>li.header{color:#848484;background:#f9fafc}.skin-red-light .sidebar-menu>li>a{border-left:3px solid transparent;font-weight:600}.skin-red-light .sidebar-menu>li.active>a,.skin-red-light .sidebar-menu>li:hover>a{color:#000;background:#f4f4f5}.skin-red-light .sidebar-menu>li.active{border-left-color:#dd4b39}.skin-red-light .sidebar-menu>li.active>a{font-weight:600}.skin-red-light .sidebar-menu>li>.treeview-menu{background:#f4f4f5}.skin-red-light .sidebar a{color:#444}.skin-red-light .sidebar a:hover{text-decoration:none}.skin-red-light .sidebar-menu .treeview-menu>li>a{color:#777}.skin-red-light .sidebar-menu .treeview-menu>li.active>a,.skin-red-light .sidebar-menu .treeview-menu>li>a:hover{color:#000}.skin-red-light .sidebar-menu .treeview-menu>li.active>a{font-weight:600}.skin-red-light .sidebar-form{border-radius:3px;border:1px solid #d2d6de;margin:10px}.skin-red-light .sidebar-form .btn,.skin-red-light .sidebar-form input[type=text]{box-shadow:none;background-color:#fff;border:1px solid transparent;height:35px}.skin-red-light .sidebar-form input[type=text]{color:#666;border-top-left-radius:2px;border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:2px}.skin-red-light .sidebar-form input[type=text]:focus,.skin-red-light .sidebar-form input[type=text]:focus+.input-group-btn .btn{background-color:#fff;color:#666}.skin-red-light .sidebar-form input[type=text]:focus+.input-group-btn .btn{border-left-color:#fff}.skin-red-light .sidebar-form .btn{color:#999;border-top-left-radius:0;border-top-right-radius:2px;border-bottom-right-radius:2px;border-bottom-left-radius:0}@media (min-width:768px){.skin-red-light.sidebar-mini.sidebar-collapse .sidebar-menu>li>.treeview-menu{border-left:1px solid #d2d6de}}.skin-yellow .main-header .navbar{background-color:#f39c12}.skin-yellow .main-header .navbar .nav>li>a{color:#fff}.skin-yellow .main-header .navbar .nav .open>a,.skin-yellow .main-header .navbar .nav .open>a:focus,.skin-yellow .main-header .navbar .nav .open>a:hover,.skin-yellow .main-header .navbar .nav>.active>a,.skin-yellow .main-header .navbar .nav>li>a:active,.skin-yellow .main-header .navbar .nav>li>a:focus,.skin-yellow .main-header .navbar .nav>li>a:hover,.skin-yellow .main-header .navbar .sidebar-toggle:hover{background:rgba(0,0,0,.1);color:#f6f6f6}.skin-yellow .main-header .navbar .sidebar-toggle{color:#fff}.skin-yellow .main-header .navbar .sidebar-toggle:hover{background-color:#e08e0b}@media (max-width:767px){.skin-yellow .main-header .navbar .dropdown-menu li.divider{background-color:hsla(0,0%,100%,.1)}.skin-yellow .main-header .navbar .dropdown-menu li a{color:#fff}.skin-yellow .main-header .navbar .dropdown-menu li a:hover{background:#e08e0b}}.skin-yellow .main-header .logo{background-color:#e08e0b;color:#fff;border-bottom:0 solid transparent}.skin-yellow .main-header .logo:hover{background-color:#db8b0b}.skin-yellow .main-header li.user-header{background-color:#f39c12}.skin-yellow .content-header{background:transparent}.skin-yellow .left-side,.skin-yellow .main-sidebar,.skin-yellow .wrapper{background-color:#222d32}.skin-yellow .user-panel>.info,.skin-yellow .user-panel>.info>a{color:#fff}.skin-yellow .sidebar-menu>li.header{color:#4b646f;background:#1a2226}.skin-yellow .sidebar-menu>li>a{border-left:3px solid transparent}.skin-yellow .sidebar-menu>li.active>a,.skin-yellow .sidebar-menu>li.menu-open>a,.skin-yellow .sidebar-menu>li:hover>a{color:#fff;background:#1e282c}.skin-yellow .sidebar-menu>li.active>a{border-left-color:#f39c12}.skin-yellow .sidebar-menu>li>.treeview-menu{margin:0 1px;background:#2c3b41}.skin-yellow .sidebar a{color:#b8c7ce}.skin-yellow .sidebar a:hover{text-decoration:none}.skin-yellow .sidebar-menu .treeview-menu>li>a{color:#8aa4af}.skin-yellow .sidebar-menu .treeview-menu>li.active>a,.skin-yellow .sidebar-menu .treeview-menu>li>a:hover{color:#fff}.skin-yellow .sidebar-form{border-radius:3px;border:1px solid #374850;margin:10px}.skin-yellow .sidebar-form .btn,.skin-yellow .sidebar-form input[type=text]{box-shadow:none;background-color:#374850;border:1px solid transparent;height:35px}.skin-yellow .sidebar-form input[type=text]{color:#666;border-top-left-radius:2px;border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:2px}.skin-yellow .sidebar-form input[type=text]:focus,.skin-yellow .sidebar-form input[type=text]:focus+.input-group-btn .btn{background-color:#fff;color:#666}.skin-yellow .sidebar-form input[type=text]:focus+.input-group-btn .btn{border-left-color:#fff}.skin-yellow .sidebar-form .btn{color:#999;border-top-left-radius:0;border-top-right-radius:2px;border-bottom-right-radius:2px;border-bottom-left-radius:0}.skin-yellow-light .main-header .navbar{background-color:#f39c12}.skin-yellow-light .main-header .navbar .nav>li>a{color:#fff}.skin-yellow-light .main-header .navbar .nav .open>a,.skin-yellow-light .main-header .navbar .nav .open>a:focus,.skin-yellow-light .main-header .navbar .nav .open>a:hover,.skin-yellow-light .main-header .navbar .nav>.active>a,.skin-yellow-light .main-header .navbar .nav>li>a:active,.skin-yellow-light .main-header .navbar .nav>li>a:focus,.skin-yellow-light .main-header .navbar .nav>li>a:hover,.skin-yellow-light .main-header .navbar .sidebar-toggle:hover{background:rgba(0,0,0,.1);color:#f6f6f6}.skin-yellow-light .main-header .navbar .sidebar-toggle{color:#fff}.skin-yellow-light .main-header .navbar .sidebar-toggle:hover{background-color:#e08e0b}@media (max-width:767px){.skin-yellow-light .main-header .navbar .dropdown-menu li.divider{background-color:hsla(0,0%,100%,.1)}.skin-yellow-light .main-header .navbar .dropdown-menu li a{color:#fff}.skin-yellow-light .main-header .navbar .dropdown-menu li a:hover{background:#e08e0b}}.skin-yellow-light .main-header .logo{background-color:#f39c12;color:#fff;border-bottom:0 solid transparent}.skin-yellow-light .main-header .logo:hover{background-color:#f39a0d}.skin-yellow-light .main-header li.user-header{background-color:#f39c12}.skin-yellow-light .content-header{background:transparent}.skin-yellow-light .left-side,.skin-yellow-light .main-sidebar,.skin-yellow-light .wrapper{background-color:#f9fafc}.skin-yellow-light .main-sidebar{border-right:1px solid #d2d6de}.skin-yellow-light .user-panel>.info,.skin-yellow-light .user-panel>.info>a{color:#444}.skin-yellow-light .sidebar-menu>li{-webkit-transition:border-left-color .3s ease;-o-transition:border-left-color .3s ease;transition:border-left-color .3s ease}.skin-yellow-light .sidebar-menu>li.header{color:#848484;background:#f9fafc}.skin-yellow-light .sidebar-menu>li>a{border-left:3px solid transparent;font-weight:600}.skin-yellow-light .sidebar-menu>li.active>a,.skin-yellow-light .sidebar-menu>li:hover>a{color:#000;background:#f4f4f5}.skin-yellow-light .sidebar-menu>li.active{border-left-color:#f39c12}.skin-yellow-light .sidebar-menu>li.active>a{font-weight:600}.skin-yellow-light .sidebar-menu>li>.treeview-menu{background:#f4f4f5}.skin-yellow-light .sidebar a{color:#444}.skin-yellow-light .sidebar a:hover{text-decoration:none}.skin-yellow-light .sidebar-menu .treeview-menu>li>a{color:#777}.skin-yellow-light .sidebar-menu .treeview-menu>li.active>a,.skin-yellow-light .sidebar-menu .treeview-menu>li>a:hover{color:#000}.skin-yellow-light .sidebar-menu .treeview-menu>li.active>a{font-weight:600}.skin-yellow-light .sidebar-form{border-radius:3px;border:1px solid #d2d6de;margin:10px}.skin-yellow-light .sidebar-form .btn,.skin-yellow-light .sidebar-form input[type=text]{box-shadow:none;background-color:#fff;border:1px solid transparent;height:35px}.skin-yellow-light .sidebar-form input[type=text]{color:#666;border-top-left-radius:2px;border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:2px}.skin-yellow-light .sidebar-form input[type=text]:focus,.skin-yellow-light .sidebar-form input[type=text]:focus+.input-group-btn .btn{background-color:#fff;color:#666}.skin-yellow-light .sidebar-form input[type=text]:focus+.input-group-btn .btn{border-left-color:#fff}.skin-yellow-light .sidebar-form .btn{color:#999;border-top-left-radius:0;border-top-right-radius:2px;border-bottom-right-radius:2px;border-bottom-left-radius:0}@media (min-width:768px){.skin-yellow-light.sidebar-mini.sidebar-collapse .sidebar-menu>li>.treeview-menu{border-left:1px solid #d2d6de}}.skin-purple .main-header .navbar{background-color:#605ca8}.skin-purple .main-header .navbar .nav>li>a{color:#fff}.skin-purple .main-header .navbar .nav .open>a,.skin-purple .main-header .navbar .nav .open>a:focus,.skin-purple .main-header .navbar .nav .open>a:hover,.skin-purple .main-header .navbar .nav>.active>a,.skin-purple .main-header .navbar .nav>li>a:active,.skin-purple .main-header .navbar .nav>li>a:focus,.skin-purple .main-header .navbar .nav>li>a:hover,.skin-purple .main-header .navbar .sidebar-toggle:hover{background:rgba(0,0,0,.1);color:#f6f6f6}.skin-purple .main-header .navbar .sidebar-toggle{color:#fff}.skin-purple .main-header .navbar .sidebar-toggle:hover{background-color:#555299}@media (max-width:767px){.skin-purple .main-header .navbar .dropdown-menu li.divider{background-color:hsla(0,0%,100%,.1)}.skin-purple .main-header .navbar .dropdown-menu li a{color:#fff}.skin-purple .main-header .navbar .dropdown-menu li a:hover{background:#555299}}.skin-purple .main-header .logo{background-color:#555299;color:#fff;border-bottom:0 solid transparent}.skin-purple .main-header .logo:hover{background-color:#545096}.skin-purple .main-header li.user-header{background-color:#605ca8}.skin-purple .content-header{background:transparent}.skin-purple .left-side,.skin-purple .main-sidebar,.skin-purple .wrapper{background-color:#222d32}.skin-purple .user-panel>.info,.skin-purple .user-panel>.info>a{color:#fff}.skin-purple .sidebar-menu>li.header{color:#4b646f;background:#1a2226}.skin-purple .sidebar-menu>li>a{border-left:3px solid transparent}.skin-purple .sidebar-menu>li.active>a,.skin-purple .sidebar-menu>li.menu-open>a,.skin-purple .sidebar-menu>li:hover>a{color:#fff;background:#1e282c}.skin-purple .sidebar-menu>li.active>a{border-left-color:#605ca8}.skin-purple .sidebar-menu>li>.treeview-menu{margin:0 1px;background:#2c3b41}.skin-purple .sidebar a{color:#b8c7ce}.skin-purple .sidebar a:hover{text-decoration:none}.skin-purple .sidebar-menu .treeview-menu>li>a{color:#8aa4af}.skin-purple .sidebar-menu .treeview-menu>li.active>a,.skin-purple .sidebar-menu .treeview-menu>li>a:hover{color:#fff}.skin-purple .sidebar-form{border-radius:3px;border:1px solid #374850;margin:10px}.skin-purple .sidebar-form .btn,.skin-purple .sidebar-form input[type=text]{box-shadow:none;background-color:#374850;border:1px solid transparent;height:35px}.skin-purple .sidebar-form input[type=text]{color:#666;border-top-left-radius:2px;border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:2px}.skin-purple .sidebar-form input[type=text]:focus,.skin-purple .sidebar-form input[type=text]:focus+.input-group-btn .btn{background-color:#fff;color:#666}.skin-purple .sidebar-form input[type=text]:focus+.input-group-btn .btn{border-left-color:#fff}.skin-purple .sidebar-form .btn{color:#999;border-top-left-radius:0;border-top-right-radius:2px;border-bottom-right-radius:2px;border-bottom-left-radius:0}.skin-purple-light .main-header .navbar{background-color:#605ca8}.skin-purple-light .main-header .navbar .nav>li>a{color:#fff}.skin-purple-light .main-header .navbar .nav .open>a,.skin-purple-light .main-header .navbar .nav .open>a:focus,.skin-purple-light .main-header .navbar .nav .open>a:hover,.skin-purple-light .main-header .navbar .nav>.active>a,.skin-purple-light .main-header .navbar .nav>li>a:active,.skin-purple-light .main-header .navbar .nav>li>a:focus,.skin-purple-light .main-header .navbar .nav>li>a:hover,.skin-purple-light .main-header .navbar .sidebar-toggle:hover{background:rgba(0,0,0,.1);color:#f6f6f6}.skin-purple-light .main-header .navbar .sidebar-toggle{color:#fff}.skin-purple-light .main-header .navbar .sidebar-toggle:hover{background-color:#555299}@media (max-width:767px){.skin-purple-light .main-header .navbar .dropdown-menu li.divider{background-color:hsla(0,0%,100%,.1)}.skin-purple-light .main-header .navbar .dropdown-menu li a{color:#fff}.skin-purple-light .main-header .navbar .dropdown-menu li a:hover{background:#555299}}.skin-purple-light .main-header .logo{background-color:#605ca8;color:#fff;border-bottom:0 solid transparent}.skin-purple-light .main-header .logo:hover{background-color:#5d59a6}.skin-purple-light .main-header li.user-header{background-color:#605ca8}.skin-purple-light .content-header{background:transparent}.skin-purple-light .left-side,.skin-purple-light .main-sidebar,.skin-purple-light .wrapper{background-color:#f9fafc}.skin-purple-light .main-sidebar{border-right:1px solid #d2d6de}.skin-purple-light .user-panel>.info,.skin-purple-light .user-panel>.info>a{color:#444}.skin-purple-light .sidebar-menu>li{-webkit-transition:border-left-color .3s ease;-o-transition:border-left-color .3s ease;transition:border-left-color .3s ease}.skin-purple-light .sidebar-menu>li.header{color:#848484;background:#f9fafc}.skin-purple-light .sidebar-menu>li>a{border-left:3px solid transparent;font-weight:600}.skin-purple-light .sidebar-menu>li.active>a,.skin-purple-light .sidebar-menu>li:hover>a{color:#000;background:#f4f4f5}.skin-purple-light .sidebar-menu>li.active{border-left-color:#605ca8}.skin-purple-light .sidebar-menu>li.active>a{font-weight:600}.skin-purple-light .sidebar-menu>li>.treeview-menu{background:#f4f4f5}.skin-purple-light .sidebar a{color:#444}.skin-purple-light .sidebar a:hover{text-decoration:none}.skin-purple-light .sidebar-menu .treeview-menu>li>a{color:#777}.skin-purple-light .sidebar-menu .treeview-menu>li.active>a,.skin-purple-light .sidebar-menu .treeview-menu>li>a:hover{color:#000}.skin-purple-light .sidebar-menu .treeview-menu>li.active>a{font-weight:600}.skin-purple-light .sidebar-form{border-radius:3px;border:1px solid #d2d6de;margin:10px}.skin-purple-light .sidebar-form .btn,.skin-purple-light .sidebar-form input[type=text]{box-shadow:none;background-color:#fff;border:1px solid transparent;height:35px}.skin-purple-light .sidebar-form input[type=text]{color:#666;border-top-left-radius:2px;border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:2px}.skin-purple-light .sidebar-form input[type=text]:focus,.skin-purple-light .sidebar-form input[type=text]:focus+.input-group-btn .btn{background-color:#fff;color:#666}.skin-purple-light .sidebar-form input[type=text]:focus+.input-group-btn .btn{border-left-color:#fff}.skin-purple-light .sidebar-form .btn{color:#999;border-top-left-radius:0;border-top-right-radius:2px;border-bottom-right-radius:2px;border-bottom-left-radius:0}@media (min-width:768px){.skin-purple-light.sidebar-mini.sidebar-collapse .sidebar-menu>li>.treeview-menu{border-left:1px solid #d2d6de}}.sidebar-menu .treeview-menu>li>a>.fab,.sidebar-menu .treeview-menu>li>a>.fal,.sidebar-menu .treeview-menu>li>a>.far,.sidebar-menu .treeview-menu>li>a>.fas,.sidebar-menu>li>a>.fab,.sidebar-menu>li>a>.fal,.sidebar-menu>li>a>.far,.sidebar-menu>li>a>.fas{width:20px}.main-header .sidebar-toggle{font-family:Font Awesome\ 5 Free;font-weight:900}.login-page form label{padding-left:5px}.control-label.required:after{content:" *";font-size:110%}.timeline>li>.fab,.timeline>li>.fal,.timeline>li>.far,.timeline>li>.fas{width:30px;height:30px;font-size:15px;line-height:30px;position:absolute;color:#666;background:#d2d6de;border-radius:50%;text-align:center;left:18px;top:0}.icheckbox_square-blue,.iradio_square-blue{display:inline-block;*display:inline;vertical-align:middle;margin:0;padding:0;width:22px;height:22px;background:url(./images/blue.png?96f8a905) no-repeat;border:none;cursor:pointer}.icheckbox_square-blue{background-position:0 0}.icheckbox_square-blue.hover{background-position:-24px 0}.icheckbox_square-blue.checked{background-position:-48px 0}.icheckbox_square-blue.disabled{background-position:-72px 0;cursor:default}.icheckbox_square-blue.checked.disabled{background-position:-96px 0}.iradio_square-blue{background-position:-120px 0}.iradio_square-blue.hover{background-position:-144px 0}.iradio_square-blue.checked{background-position:-168px 0}.iradio_square-blue.disabled{background-position:-192px 0;cursor:default}.iradio_square-blue.checked.disabled{background-position:-216px 0}@media (-o-min-device-pixel-ratio:5/4),(-webkit-min-device-pixel-ratio:1.25),(min-resolution:120dpi){.icheckbox_square-blue,.iradio_square-blue{background-image:url(./images/blue@2x.png?2694acfd);-webkit-background-size:240px 24px;background-size:240px 24px}}.error-page{margin-bottom:50px}@media print{.control-sidebar,.sf-toolbar{display:none!important}}.content{padding:15px 0}.content-header h1 small{display:none}@media (min-width:768px){.content-header h1 small{display:inline-block}.content{padding:15px}}td.timesheet-description ul{padding-left:15px}td.timesheet-description p{margin:0}.content-header>.breadcrumb{position:absolute;float:right;background:transparent}.control-sidebar select{color:#555;background-color:#fff}.control-sidebar div.image img.img-circle{max-width:34px}.toolbar-pad{padding:10px}@media (min-width:768px){.toolbar form.navbar-form{font-size:14px}.toolbar form.navbar-form .form-control{display:inline-block;width:100%;vertical-align:middle}.toolbar form.navbar-form .control-label,.toolbar form.navbar-form .input-group{width:100%}.toolbar-pad{padding:10px 0}}.user-panel>.info{left:80px}footer.main-footer{padding:5px;font-size:80%}.invoice{margin:0;border:none}@media (min-width:768px){.invoice{margin:25px}}.page-header-small{font-size:14px}div.invoice-address{margin-top:30px;margin-bottom:30px}table.invoice-meta th{padding-right:40px}table.invoice-sum th{width:70%}table.invoice-sum td,table.invoice-sum th{text-align:right}#freelancer-invoice{font:15px/1 Helvetica Neue,Helvetica,Arial,sans-serif;box-sizing:border-box}#freelancer-invoice h1{font:700 100% sans-serif;letter-spacing:.5em;text-align:center;text-transform:uppercase}#freelancer-invoice h2{font:700 1.5em sans-serif;margin-bottom:1em}#freelancer-invoice table{table-layout:fixed;width:100%;border-collapse:separate;border-spacing:0}#freelancer-invoice header:after{clear:both;content:"";display:table;font-size:1em}#freelancer-invoice header address{float:left;font-style:normal;line-height:1.25;margin:0 1em 1em 0;font-weight:700;font-size:.7em}#freelancer-invoice article address{font-size:1em;float:left;margin:1em 0}#freelancer-invoice article.address{margin-bottom:1.5em}#freelancer-invoice article.footer{margin-top:60px}#freelancer-invoice article,#freelancer-invoice table.inventory,#freelancer-invoice table.meta{margin:1em 0}#freelancer-invoice article:after{clear:both;content:"";display:table}#freelancer-invoice article h1{clip:rect(0 0 0 0);position:absolute}#freelancer-invoice article p{margin-bottom:20px}#freelancer-invoice table.balance:after,#freelancer-invoice table.meta:after{clear:both;content:"";display:table}#freelancer-invoice table.meta{float:right;width:50%;font-size:85%}#freelancer-invoice table.meta th{text-align:right;font-weight:400}#freelancer-invoice table.meta td{width:120px;text-align:right}#freelancer-invoice table.balance{float:right}#freelancer-invoice table.balance th{text-align:right;font-weight:400}#freelancer-invoice table.balance td{width:140px;text-align:right}#freelancer-invoice table.balance .total{font-weight:700}#freelancer-invoice table.inventory{clear:both;width:100%;margin-top:2em;border-bottom:1px solid #000}#freelancer-invoice table.inventory th{font-weight:700;border-width:0 0 1px;border-bottom:1px solid #000}#freelancer-invoice table.inventory td,#freelancer-invoice table.inventory th{padding:5px}#freelancer-invoice table.inventory td:first-child,#freelancer-invoice table.inventory th:first-child{text-align:left}#freelancer-invoice table.inventory td:nth-child(2),#freelancer-invoice table.inventory td:nth-child(3),#freelancer-invoice table.inventory th:nth-child(2),#freelancer-invoice table.inventory th:nth-child(3){text-align:center;width:20%}#freelancer-invoice table.inventory td:nth-child(4),#freelancer-invoice table.inventory th:nth-child(4){text-align:right;width:20%}#freelancer-invoice footer{margin-top:50px}#freelancer-invoice footer table{border-top:1px solid #000;font-size:.8em;padding-top:5px}#freelancer-invoice footer th{text-align:left;font-weight:700;margin-bottom:10px}#freelancer-invoice footer table th:first-child{width:32%}#freelancer-invoice footer table th:nth-child(3){width:28%}#freelancer-invoice footer td{text-align:left;vertical-align:bottom}#freelancer-invoice aside{position:absolute;top:10in;width:7.5in}#freelancer-invoice aside h1{border:none;border-width:0 0 1px;margin:0 0 1em;border-color:#999;border-bottom-style:solid}#freelancer-invoice aside p{font-size:85%}#freelancer-invoice aside div{margin-top:15px}#freelancer-invoice aside div p{line-height:1.4}#freelancer-invoice aside p span{width:130px;font-weight:700;display:inline-block}@media print{*{-webkit-print-color-adjust:exact}#freelancer-invoice,.wrapper,body{margin:0;padding:0}#freelancer-invoice{margin:1em 2em}#freelancer-invoice .add,#freelancer-invoice .cut,#freelancer-invoice span:empty{display:none}.invoice{width:unset}}.box .overlay>.fas,.overlay-wrapper .overlay>.fas,section.content .overlay>.fas{position:absolute;top:50vh;left:50vw;margin-left:-15px;margin-top:-15px;color:#000;font-size:30px}.box>.loading-img,.box>.overlay,.overlay-wrapper>.loading-img,.overlay-wrapper>.overlay,section.content>.overlay{position:absolute;top:0;left:0;width:100%;height:100%}.box .overlay,.overlay-wrapper .overlay,section.content .overlay{z-index:50;background:hsla(0,0%,100%,.7);border-radius:3px}.box .overlay.dark,.overlay-wrapper .overlay.dark,section.content .overlay.dark{background:rgba(0,0,0,.5)}div.dataTables_length label{font-weight:400;text-align:left;white-space:nowrap}div.dataTables_length select{width:75px;display:inline-block}div.dataTables_filter{text-align:right}div.dataTables_filter label{font-weight:400;white-space:nowrap;text-align:left}div.dataTables_filter input{margin-left:.5em;display:inline-block;width:auto}div.dataTables_info{padding-top:8px;white-space:nowrap}div.dataTables_paginate{margin:0;white-space:nowrap;text-align:right}div.dataTables_paginate ul.pagination{margin:2px 0;white-space:nowrap}@media screen and (max-width:767px){div.dataTables_filter,div.dataTables_info,div.dataTables_length,div.dataTables_paginate{text-align:center}div.DTTT{margin-bottom:.5em}}table.dataTable td,table.dataTable th{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}table.dataTable{clear:both;margin-bottom:0!important;max-width:none!important}table.dataTable thead .sorting,table.dataTable thead .sorting_asc,table.dataTable thead .sorting_asc_disabled,table.dataTable thead .sorting_desc,table.dataTable thead .sorting_desc_disabled{cursor:pointer;position:relative}table.dataTable thead .sorting:after,table.dataTable thead .sorting_asc:after,table.dataTable thead .sorting_desc:after{position:absolute;top:8px;right:8px;display:block;font-family:Glyphicons Halflings;opacity:.5}table.dataTable thead .sorting:after{opacity:.2;content:"\E150"}table.dataTable thead .sorting_asc:after{content:"\E155"}table.dataTable thead .sorting_desc:after{content:"\E156"}div.dataTables_scrollBody table.dataTable thead .sorting:after,div.dataTables_scrollBody table.dataTable thead .sorting_asc:after,div.dataTables_scrollBody table.dataTable thead .sorting_desc:after{display:none}table.dataTable thead .sorting_asc_disabled:after,table.dataTable thead .sorting_desc_disabled:after{color:#eee}table.dataTable thead>tr>th{white-space:nowrap}table.dataTable th:active{outline:none}table.dataTable.table-condensed thead>tr>th{padding-right:20px}table.dataTable.table-condensed thead .sorting:after,table.dataTable.table-condensed thead .sorting_asc:after,table.dataTable.table-condensed thead .sorting_desc:after{top:6px;right:6px}div.dataTables_scrollHead table{margin-bottom:0!important;border-bottom-left-radius:0;border-bottom-right-radius:0}div.dataTables_scrollHead table thead tr:last-child td:first-child,div.dataTables_scrollHead table thead tr:last-child th:first-child{border-bottom-left-radius:0!important;border-bottom-right-radius:0!important}div.dataTables_scrollBody table{border-top:none;margin-top:0!important;margin-bottom:0!important}div.dataTables_scrollBody tbody tr:first-child td,div.dataTables_scrollBody tbody tr:first-child th{border-top:none}div.dataTables_scrollFoot table{margin-top:0!important;border-top:none}table.table-bordered.dataTable{border-collapse:separate!important}table.table-bordered thead td,table.table-bordered thead th{border-left-width:0;border-top-width:0}table.table-bordered tbody td,table.table-bordered tbody th,table.table-bordered tfoot td,table.table-bordered tfoot th{border-left-width:0;border-bottom-width:0}table.table-bordered td:last-child,table.table-bordered th:last-child{border-right-width:0}div.dataTables_scrollHead table.table-bordered{border-bottom-width:0}.table.dataTable tbody tr.active td,.table.dataTable tbody tr.active th{background-color:#08c;color:#fff}.table.dataTable tbody tr.active:hover td,.table.dataTable tbody tr.active:hover th{background-color:#0075b0!important}.table.dataTable tbody tr.active td>a,.table.dataTable tbody tr.active th>a{color:#fff}.table-striped.dataTable tbody tr.active:nth-child(odd) td,.table-striped.dataTable tbody tr.active:nth-child(odd) th{background-color:#017ebc}table.dataTable tr.summary td{font-weight:700;border-bottom:1px solid #ccc}table.dataTable td .btn-group{display:flex}table.dataTable td .label{font-size:85%;font-weight:500;padding:.3em .6em}.popover-content .calendar-entry ul{padding:0 0 0 10px}section.dashboard .info-box .info-box-text{white-space:normal}.navbar-nav li>a.ddt-large{padding:16px 12px 11px;font-size:10px}.navbar-nav li.messages-menu ul.menu li .pull-left i{color:#dd4b39}.navbar-nav .messages-menu>.dropdown-menu>li .menu>li>a>p{overflow:hidden;text-overflow:ellipsis}.navbar-nav .start_record{text-align:center}.navbar-nav .dropdown-menu{max-width:90vw;width:unset!important}.drp-calendar .calendar-table td.today:not(.active){background-color:#cde0f1;color:#357ebd}.drp-calendar .calendar-table select.yearselect{width:unset}/*! * FullCalendar v3.9.0 * Docs & License: https://fullcalendar.io/ * (c) 2018 Adam Shaw - */.fc button,.fc table,body .fc{font-size:1em}.fc-bg,.fc-row .fc-bgevent-skeleton,.fc-row .fc-highlight-skeleton{bottom:0}.fc-icon,.fc-unselectable{-webkit-touch-callout:none;-khtml-user-select:none}.fc{direction:ltr;text-align:left}.fc-rtl{text-align:right}.fc th,.fc-basic-view td.fc-week-number,.fc-icon,.fc-toolbar{text-align:center}.fc-highlight{background:#bce8f1;opacity:.3}.fc-bgevent{background:#8fdf82;opacity:.3}.fc-nonbusiness{background:#d7d7d7}.fc button{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;margin:0;height:2.1em;padding:0 .6em;white-space:nowrap;cursor:pointer}.fc button::-moz-focus-inner{margin:0;padding:0}.fc-state-default{border:1px solid;background-color:#f5f5f5;background-image:-moz-linear-gradient(top,#fff,#e6e6e6);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fff),to(#e6e6e6));background-image:-webkit-linear-gradient(top,#fff,#e6e6e6);background-image:-o-linear-gradient(top,#fff,#e6e6e6);background-image:linear-gradient(to bottom,#fff,#e6e6e6);background-repeat:repeat-x;border-color:#e6e6e6 #e6e6e6 #bfbfbf;border-color:rgba(0,0,0,.1) rgba(0,0,0,.1) rgba(0,0,0,.25);color:#333;text-shadow:0 1px 1px rgba(255,255,255,.75);box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 1px 2px rgba(0,0,0,.05)}.fc-state-default.fc-corner-left{border-top-left-radius:4px;border-bottom-left-radius:4px}.fc-state-default.fc-corner-right{border-top-right-radius:4px;border-bottom-right-radius:4px}.fc button .fc-icon{position:relative;top:-.05em;margin:0 .2em;vertical-align:middle}.fc-state-active,.fc-state-disabled,.fc-state-down,.fc-state-hover{color:#333;background-color:#e6e6e6}.fc-state-hover{color:#333;text-decoration:none;background-position:0 -15px;-webkit-transition:background-position .1s linear;-moz-transition:background-position .1s linear;-o-transition:background-position .1s linear;transition:background-position .1s linear}.fc-state-active,.fc-state-down{background-color:#ccc;background-image:none;box-shadow:inset 0 2px 4px rgba(0,0,0,.15),0 1px 2px rgba(0,0,0,.05)}.fc-state-disabled{cursor:default;background-image:none;opacity:.65;box-shadow:none}.fc-event.fc-draggable,.fc-event[href],.fc-popover .fc-header .fc-close,a[data-goto]{cursor:pointer}.fc-button-group{display:inline-block}.fc .fc-button-group>*{float:left;margin:0 0 0 -1px}.fc .fc-button-group>:first-child{margin-left:0}.fc-popover{position:absolute;box-shadow:0 2px 6px rgba(0,0,0,.15)}.fc-popover .fc-header{padding:2px 4px}.fc-popover .fc-header .fc-title{margin:0 2px}.fc-ltr .fc-popover .fc-header .fc-title,.fc-rtl .fc-popover .fc-header .fc-close{float:left}.fc-ltr .fc-popover .fc-header .fc-close,.fc-rtl .fc-popover .fc-header .fc-title{float:right}.fc-divider{border-style:solid;border-width:1px}hr.fc-divider{height:0;margin:0;padding:0 0 2px;border-width:1px 0}.fc-bg table,.fc-row .fc-bgevent-skeleton table,.fc-row .fc-highlight-skeleton table{height:100%}.fc-clear{clear:both}.fc-bg,.fc-bgevent-skeleton,.fc-helper-skeleton,.fc-highlight-skeleton{position:absolute;top:0;left:0;right:0}.fc table{width:100%;box-sizing:border-box;table-layout:fixed;border-collapse:collapse;border-spacing:0}.fc td,.fc th{border-style:solid;border-width:1px;padding:0;vertical-align:top}.fc td.fc-today{border-style:double}a[data-goto]:hover{text-decoration:underline}.fc .fc-row{border-style:solid;border-width:0}.fc-row table{border-left:0 hidden transparent;border-right:0 hidden transparent;border-bottom:0 hidden transparent}.fc-row:first-child table{border-top:0 hidden transparent}.fc-row{position:relative}.fc-row .fc-bg{z-index:1}.fc-row .fc-bgevent-skeleton td,.fc-row .fc-highlight-skeleton td{border-color:transparent}.fc-row .fc-bgevent-skeleton{z-index:2}.fc-row .fc-highlight-skeleton{z-index:3}.fc-row .fc-content-skeleton{position:relative;z-index:4;padding-bottom:2px}.fc-row .fc-helper-skeleton{z-index:5}.fc .fc-row .fc-content-skeleton table,.fc .fc-row .fc-content-skeleton td,.fc .fc-row .fc-helper-skeleton td{background:0 0;border-color:transparent}.fc-row .fc-content-skeleton td,.fc-row .fc-helper-skeleton td{border-bottom:0}.fc-row .fc-content-skeleton tbody td,.fc-row .fc-helper-skeleton tbody td{border-top:0}.fc-scroller{-webkit-overflow-scrolling:touch}.fc-icon,.fc-row.fc-rigid,.fc-time-grid-event{overflow:hidden}.fc-scroller>.fc-day-grid,.fc-scroller>.fc-time-grid{position:relative;width:100%}.fc-event{position:relative;display:block;font-size:.85em;line-height:1.3;border-radius:3px;border:1px solid #3a87ad}.fc-event,.fc-event-dot{background-color:#3a87ad}.fc-event,.fc-event:hover{color:#fff;text-decoration:none}.fc-not-allowed,.fc-not-allowed .fc-event{cursor:not-allowed}.fc-event .fc-bg{z-index:1;background:#fff;opacity:.25}.fc-event .fc-content{position:relative;z-index:2}.fc-event .fc-resizer{position:absolute;z-index:4;display:none}.fc-event.fc-allow-mouse-resize .fc-resizer,.fc-event.fc-selected .fc-resizer{display:block}.fc-event.fc-selected .fc-resizer:before{content:"";position:absolute;z-index:9999;top:50%;left:50%;width:40px;height:40px;margin-left:-20px;margin-top:-20px}.fc-event.fc-selected{z-index:9999!important;box-shadow:0 2px 5px rgba(0,0,0,.2)}.fc-event.fc-selected.fc-dragging{box-shadow:0 2px 7px rgba(0,0,0,.3)}.fc-h-event.fc-selected:before{content:"";position:absolute;z-index:3;top:-10px;bottom:-10px;left:0;right:0}.fc-ltr .fc-h-event.fc-not-start,.fc-rtl .fc-h-event.fc-not-end{margin-left:0;border-left-width:0;padding-left:1px;border-top-left-radius:0;border-bottom-left-radius:0}.fc-ltr .fc-h-event.fc-not-end,.fc-rtl .fc-h-event.fc-not-start{margin-right:0;border-right-width:0;padding-right:1px;border-top-right-radius:0;border-bottom-right-radius:0}.fc-ltr .fc-h-event .fc-start-resizer,.fc-rtl .fc-h-event .fc-end-resizer{cursor:w-resize;left:-1px}.fc-ltr .fc-h-event .fc-end-resizer,.fc-rtl .fc-h-event .fc-start-resizer{cursor:e-resize;right:-1px}.fc-h-event.fc-allow-mouse-resize .fc-resizer{width:7px;top:-1px;bottom:-1px}.fc-h-event.fc-selected .fc-resizer{border-radius:4px;border-width:1px;width:6px;height:6px;border-style:solid;border-color:inherit;background:#fff;top:50%;margin-top:-4px}.fc-ltr .fc-h-event.fc-selected .fc-start-resizer,.fc-rtl .fc-h-event.fc-selected .fc-end-resizer{margin-left:-4px}.fc-ltr .fc-h-event.fc-selected .fc-end-resizer,.fc-rtl .fc-h-event.fc-selected .fc-start-resizer{margin-right:-4px}.fc-day-grid-event{margin:1px 2px 0;padding:0 1px}tr:first-child>td>.fc-day-grid-event{margin-top:2px}.fc-day-grid-event.fc-selected:after{content:"";position:absolute;z-index:1;top:-1px;right:-1px;bottom:-1px;left:-1px;background:#000;opacity:.25}.fc-day-grid-event .fc-content{white-space:nowrap;overflow:hidden}.fc-day-grid-event .fc-time{font-weight:700}.fc-ltr .fc-day-grid-event.fc-allow-mouse-resize .fc-start-resizer,.fc-rtl .fc-day-grid-event.fc-allow-mouse-resize .fc-end-resizer{margin-left:-2px}.fc-ltr .fc-day-grid-event.fc-allow-mouse-resize .fc-end-resizer,.fc-rtl .fc-day-grid-event.fc-allow-mouse-resize .fc-start-resizer{margin-right:-2px}a.fc-more{margin:1px 3px;font-size:.85em;cursor:pointer;text-decoration:none}a.fc-more:hover{text-decoration:underline}.fc.fc-bootstrap3 a,.ui-widget .fc-event{text-decoration:none}.fc-limited{display:none}.fc-icon,.fc-toolbar .fc-center{display:inline-block}.fc-day-grid .fc-row{z-index:1}.fc-more-popover{z-index:2;width:220px}.fc-more-popover .fc-event-container{padding:10px}.fc-bootstrap3 .fc-popover .panel-body,.fc-bootstrap4 .fc-popover .card-body{padding:0}.fc-now-indicator{position:absolute;border:0 solid red}.fc-bootstrap3 .fc-today.alert,.fc-bootstrap4 .fc-today.alert{border-radius:0}.fc-unselectable{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.fc-unthemed .fc-content,.fc-unthemed .fc-divider,.fc-unthemed .fc-list-heading td,.fc-unthemed .fc-list-view,.fc-unthemed .fc-popover,.fc-unthemed .fc-row,.fc-unthemed tbody,.fc-unthemed td,.fc-unthemed th,.fc-unthemed thead{border-color:#ddd}.fc-unthemed .fc-popover{background-color:#fff;border-width:1px;border-style:solid}.fc-unthemed .fc-divider,.fc-unthemed .fc-list-heading td,.fc-unthemed .fc-popover .fc-header{background:#eee}.fc-unthemed td.fc-today{background:#fcf8e3}.fc-unthemed .fc-disabled-day{background:#d7d7d7;opacity:.3}.fc-icon{height:1em;line-height:1em;font-size:1em;font-family:"Courier New",Courier,monospace;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.fc-icon:after{position:relative}.fc-icon-left-single-arrow:after{content:"\2039";font-weight:700;font-size:200%;top:-7%}.fc-icon-right-single-arrow:after{content:"\203A";font-weight:700;font-size:200%;top:-7%}.fc-icon-left-double-arrow:after{content:"\AB";font-size:160%;top:-7%}.fc-icon-right-double-arrow:after{content:"\BB";font-size:160%;top:-7%}.fc-icon-left-triangle:after{content:"\25C4";font-size:125%;top:3%}.fc-icon-right-triangle:after{content:"\25BA";font-size:125%;top:3%}.fc-icon-down-triangle:after{content:"\25BC";font-size:125%;top:2%}.fc-icon-x:after{content:"\D7";font-size:200%;top:6%}.fc-unthemed .fc-popover .fc-header .fc-close{color:#666;font-size:.9em;margin-top:2px}.fc-unthemed .fc-list-item:hover td{background-color:#f5f5f5}.ui-widget .fc-disabled-day{background-image:none}.fc-bootstrap3 .fc-time-grid .fc-slats table,.fc-bootstrap4 .fc-time-grid .fc-slats table,.fc-time-grid .fc-slats .ui-widget-content{background:0 0}.fc-popover>.ui-widget-header+.ui-widget-content{border-top:0}.fc-bootstrap3 hr.fc-divider,.fc-bootstrap4 hr.fc-divider{border-color:inherit}.ui-widget .fc-event{color:#fff;font-weight:400}.ui-widget td.fc-axis{font-weight:400}.fc.fc-bootstrap3 a[data-goto]:hover{text-decoration:underline}.fc.fc-bootstrap4 a{text-decoration:none}.fc.fc-bootstrap4 a[data-goto]:hover{text-decoration:underline}.fc-bootstrap4 a.fc-event:not([href]):not([tabindex]){color:#fff}.fc-bootstrap4 .fc-popover.card{position:absolute}.fc-toolbar.fc-header-toolbar{margin-bottom:1em}.fc-toolbar.fc-footer-toolbar{margin-top:1em}.fc-toolbar .fc-left{float:left}.fc-toolbar .fc-right{float:right}.fc .fc-toolbar>*>*{float:left;margin-left:.75em}.fc .fc-toolbar>*>:first-child{margin-left:0}.fc-toolbar h2{margin:0}.fc-toolbar button{position:relative}.fc-toolbar .fc-state-hover,.fc-toolbar .ui-state-hover{z-index:2}.fc-toolbar .fc-state-down{z-index:3}.fc-toolbar .fc-state-active,.fc-toolbar .ui-state-active{z-index:4}.fc-toolbar button:focus{z-index:5}.fc-view-container *,.fc-view-container :after,.fc-view-container :before{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}.fc-view,.fc-view>table{position:relative;z-index:1}.fc-basicDay-view .fc-content-skeleton,.fc-basicWeek-view .fc-content-skeleton{padding-bottom:1em}.fc-basic-view .fc-body .fc-row{min-height:4em}.fc-row.fc-rigid .fc-content-skeleton{position:absolute;top:0;left:0;right:0}.fc-day-top.fc-other-month{opacity:.3}.fc-basic-view .fc-day-number,.fc-basic-view .fc-week-number{padding:2px}.fc-basic-view th.fc-day-number,.fc-basic-view th.fc-week-number{padding:0 2px}.fc-ltr .fc-basic-view .fc-day-top .fc-day-number{float:right}.fc-rtl .fc-basic-view .fc-day-top .fc-day-number{float:left}.fc-ltr .fc-basic-view .fc-day-top .fc-week-number{float:left;border-radius:0 0 3px}.fc-rtl .fc-basic-view .fc-day-top .fc-week-number{float:right;border-radius:0 0 0 3px}.fc-basic-view .fc-day-top .fc-week-number{min-width:1.5em;text-align:center;background-color:#f2f2f2;color:grey}.fc-basic-view td.fc-week-number>*{display:inline-block;min-width:1.25em}.fc-agenda-view .fc-day-grid{position:relative;z-index:2}.fc-agenda-view .fc-day-grid .fc-row{min-height:3em}.fc-agenda-view .fc-day-grid .fc-row .fc-content-skeleton{padding-bottom:1em}.fc .fc-axis{vertical-align:middle;padding:0 4px;white-space:nowrap}.fc-ltr .fc-axis{text-align:right}.fc-rtl .fc-axis{text-align:left}.fc-time-grid,.fc-time-grid-container{position:relative;z-index:1}.fc-time-grid{min-height:100%}.fc-time-grid table{border:0 hidden transparent}.fc-time-grid>.fc-bg{z-index:1}.fc-time-grid .fc-slats,.fc-time-grid>hr{position:relative;z-index:2}.fc-time-grid .fc-content-col{position:relative}.fc-time-grid .fc-content-skeleton{position:absolute;z-index:3;top:0;left:0;right:0}.fc-time-grid .fc-business-container{position:relative;z-index:1}.fc-time-grid .fc-bgevent-container{position:relative;z-index:2}.fc-time-grid .fc-highlight-container{z-index:3;position:relative}.fc-time-grid .fc-event-container{position:relative;z-index:4}.fc-time-grid .fc-now-indicator-line{z-index:5}.fc-time-grid .fc-helper-container{position:relative;z-index:6}.fc-time-grid .fc-slats td{height:1.5em;border-bottom:0}.fc-time-grid .fc-slats .fc-minor td{border-top-style:dotted}.fc-time-grid .fc-highlight{position:absolute;left:0;right:0}.fc-ltr .fc-time-grid .fc-event-container{margin:0 2.5% 0 2px}.fc-rtl .fc-time-grid .fc-event-container{margin:0 2px 0 2.5%}.fc-time-grid .fc-bgevent,.fc-time-grid .fc-event{position:absolute;z-index:1}.fc-time-grid .fc-bgevent{left:0;right:0}.fc-v-event.fc-not-start{border-top-width:0;padding-top:1px;border-top-left-radius:0;border-top-right-radius:0}.fc-v-event.fc-not-end{border-bottom-width:0;padding-bottom:1px;border-bottom-left-radius:0;border-bottom-right-radius:0}.fc-time-grid-event.fc-selected{overflow:visible}.fc-time-grid-event.fc-selected .fc-bg{display:none}.fc-time-grid-event .fc-content{overflow:hidden}.fc-time-grid-event .fc-time,.fc-time-grid-event .fc-title{padding:0 1px}.fc-time-grid-event .fc-time{font-size:.85em;white-space:nowrap}.fc-time-grid-event.fc-short .fc-content{white-space:nowrap}.fc-time-grid-event.fc-short .fc-time,.fc-time-grid-event.fc-short .fc-title{display:inline-block;vertical-align:top}.fc-time-grid-event.fc-short .fc-time span{display:none}.fc-time-grid-event.fc-short .fc-time:before{content:attr(data-start)}.fc-time-grid-event.fc-short .fc-time:after{content:"\A0-\A0"}.fc-time-grid-event.fc-short .fc-title{font-size:.85em;padding:0}.fc-time-grid-event.fc-allow-mouse-resize .fc-resizer{left:0;right:0;bottom:0;height:8px;overflow:hidden;line-height:8px;font-size:11px;font-family:monospace;text-align:center;cursor:s-resize}.fc-time-grid-event.fc-allow-mouse-resize .fc-resizer:after{content:"="}.fc-time-grid-event.fc-selected .fc-resizer{border-radius:5px;border-width:1px;width:8px;height:8px;border-style:solid;border-color:inherit;background:#fff;left:50%;margin-left:-5px;bottom:-5px}.fc-time-grid .fc-now-indicator-line{border-top-width:1px;left:0;right:0}.fc-time-grid .fc-now-indicator-arrow{margin-top:-5px}.fc-ltr .fc-time-grid .fc-now-indicator-arrow{left:0;border-width:5px 0 5px 6px;border-top-color:transparent;border-bottom-color:transparent}.fc-rtl .fc-time-grid .fc-now-indicator-arrow{right:0;border-width:5px 6px 5px 0;border-top-color:transparent;border-bottom-color:transparent}.fc-event-dot{display:inline-block;width:10px;height:10px;border-radius:5px}.fc-rtl .fc-list-view{direction:rtl}.fc-list-view{border-width:1px;border-style:solid}.fc .fc-list-table{table-layout:auto}.fc-list-table td{border-width:1px 0 0;padding:8px 14px}.fc-list-table tr:first-child td{border-top-width:0}.fc-list-heading{border-bottom-width:1px}.fc-list-heading td{font-weight:700}.fc-ltr .fc-list-heading-main{float:left}.fc-ltr .fc-list-heading-alt,.fc-rtl .fc-list-heading-main{float:right}.fc-rtl .fc-list-heading-alt{float:left}.fc-list-item.fc-has-url{cursor:pointer}.fc-list-item-marker,.fc-list-item-time{white-space:nowrap;width:1px}.fc-ltr .fc-list-item-marker{padding-right:0}.fc-rtl .fc-list-item-marker{padding-left:0}.fc-list-item-title a{text-decoration:none;color:inherit}.fc-list-item-title a[href]:hover{text-decoration:underline}.fc-list-empty-wrap2{position:absolute;top:0;left:0;right:0;bottom:0}.fc-list-empty-wrap1{width:100%;height:100%;display:table}.fc-list-empty{display:table-cell;vertical-align:middle;text-align:center}.fc-unthemed .fc-list-empty{background-color:#eee} -/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvZGF0ZXJhbmdlcGlja2VyL2RhdGVyYW5nZXBpY2tlci5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC1zZWxlY3QvZGlzdC9jc3MvYm9vdHN0cmFwLXNlbGVjdC5taW4uY3NzIiwid2VicGFjazovLy8uL3ZlbmRvci9rZXZpbnBhcHN0L2FkbWlubHRlLWJ1bmRsZS9SZXNvdXJjZXMvYXNzZXRzL2FkbWluLWx0ZS5zY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ib290c3RyYXAtc2Fzcy9hc3NldHMvc3R5bGVzaGVldHMvX2Jvb3RzdHJhcC5zY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ib290c3RyYXAtc2Fzcy9hc3NldHMvc3R5bGVzaGVldHMvYm9vdHN0cmFwL19ub3JtYWxpemUuc2NzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYm9vdHN0cmFwLXNhc3MvYXNzZXRzL3N0eWxlc2hlZXRzL2Jvb3RzdHJhcC9fcHJpbnQuc2NzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYm9vdHN0cmFwLXNhc3MvYXNzZXRzL3N0eWxlc2hlZXRzL2Jvb3RzdHJhcC9fZ2x5cGhpY29ucy5zY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ib290c3RyYXAtc2Fzcy9hc3NldHMvc3R5bGVzaGVldHMvYm9vdHN0cmFwL19zY2FmZm9sZGluZy5zY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ib290c3RyYXAtc2Fzcy9hc3NldHMvc3R5bGVzaGVldHMvYm9vdHN0cmFwL21peGlucy9fdmVuZG9yLXByZWZpeGVzLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC1zYXNzL2Fzc2V0cy9zdHlsZXNoZWV0cy9ib290c3RyYXAvX3ZhcmlhYmxlcy5zY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ib290c3RyYXAtc2Fzcy9hc3NldHMvc3R5bGVzaGVldHMvYm9vdHN0cmFwL21peGlucy9fdGFiLWZvY3VzLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC1zYXNzL2Fzc2V0cy9zdHlsZXNoZWV0cy9ib290c3RyYXAvbWl4aW5zL19pbWFnZS5zY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ib290c3RyYXAtc2Fzcy9hc3NldHMvc3R5bGVzaGVldHMvYm9vdHN0cmFwL190eXBlLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC1zYXNzL2Fzc2V0cy9zdHlsZXNoZWV0cy9ib290c3RyYXAvbWl4aW5zL190ZXh0LWVtcGhhc2lzLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC1zYXNzL2Fzc2V0cy9zdHlsZXNoZWV0cy9ib290c3RyYXAvbWl4aW5zL19iYWNrZ3JvdW5kLXZhcmlhbnQuc2NzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYm9vdHN0cmFwLXNhc3MvYXNzZXRzL3N0eWxlc2hlZXRzL2Jvb3RzdHJhcC9taXhpbnMvX2NsZWFyZml4LnNjc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC1zYXNzL2Fzc2V0cy9zdHlsZXNoZWV0cy9ib290c3RyYXAvbWl4aW5zL190ZXh0LW92ZXJmbG93LnNjc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC1zYXNzL2Fzc2V0cy9zdHlsZXNoZWV0cy9ib290c3RyYXAvX2NvZGUuc2NzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYm9vdHN0cmFwLXNhc3MvYXNzZXRzL3N0eWxlc2hlZXRzL2Jvb3RzdHJhcC9fZ3JpZC5zY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ib290c3RyYXAtc2Fzcy9hc3NldHMvc3R5bGVzaGVldHMvYm9vdHN0cmFwL21peGlucy9fZ3JpZC5zY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ib290c3RyYXAtc2Fzcy9hc3NldHMvc3R5bGVzaGVldHMvYm9vdHN0cmFwL21peGlucy9fZ3JpZC1mcmFtZXdvcmsuc2NzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYm9vdHN0cmFwLXNhc3MvYXNzZXRzL3N0eWxlc2hlZXRzL2Jvb3RzdHJhcC9fdGFibGVzLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC1zYXNzL2Fzc2V0cy9zdHlsZXNoZWV0cy9ib290c3RyYXAvbWl4aW5zL190YWJsZS1yb3cuc2NzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYm9vdHN0cmFwLXNhc3MvYXNzZXRzL3N0eWxlc2hlZXRzL2Jvb3RzdHJhcC9fZm9ybXMuc2NzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYm9vdHN0cmFwLXNhc3MvYXNzZXRzL3N0eWxlc2hlZXRzL2Jvb3RzdHJhcC9taXhpbnMvX2Zvcm1zLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC1zYXNzL2Fzc2V0cy9zdHlsZXNoZWV0cy9ib290c3RyYXAvX2J1dHRvbnMuc2NzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYm9vdHN0cmFwLXNhc3MvYXNzZXRzL3N0eWxlc2hlZXRzL2Jvb3RzdHJhcC9taXhpbnMvX2J1dHRvbnMuc2NzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYm9vdHN0cmFwLXNhc3MvYXNzZXRzL3N0eWxlc2hlZXRzL2Jvb3RzdHJhcC9taXhpbnMvX29wYWNpdHkuc2NzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYm9vdHN0cmFwLXNhc3MvYXNzZXRzL3N0eWxlc2hlZXRzL2Jvb3RzdHJhcC9fY29tcG9uZW50LWFuaW1hdGlvbnMuc2NzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYm9vdHN0cmFwLXNhc3MvYXNzZXRzL3N0eWxlc2hlZXRzL2Jvb3RzdHJhcC9fZHJvcGRvd25zLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC1zYXNzL2Fzc2V0cy9zdHlsZXNoZWV0cy9ib290c3RyYXAvbWl4aW5zL19uYXYtZGl2aWRlci5zY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ib290c3RyYXAtc2Fzcy9hc3NldHMvc3R5bGVzaGVldHMvYm9vdHN0cmFwL21peGlucy9fcmVzZXQtZmlsdGVyLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC1zYXNzL2Fzc2V0cy9zdHlsZXNoZWV0cy9ib290c3RyYXAvX2J1dHRvbi1ncm91cHMuc2NzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYm9vdHN0cmFwLXNhc3MvYXNzZXRzL3N0eWxlc2hlZXRzL2Jvb3RzdHJhcC9taXhpbnMvX2JvcmRlci1yYWRpdXMuc2NzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYm9vdHN0cmFwLXNhc3MvYXNzZXRzL3N0eWxlc2hlZXRzL2Jvb3RzdHJhcC9faW5wdXQtZ3JvdXBzLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC1zYXNzL2Fzc2V0cy9zdHlsZXNoZWV0cy9ib290c3RyYXAvX25hdnMuc2NzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYm9vdHN0cmFwLXNhc3MvYXNzZXRzL3N0eWxlc2hlZXRzL2Jvb3RzdHJhcC9fbmF2YmFyLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC1zYXNzL2Fzc2V0cy9zdHlsZXNoZWV0cy9ib290c3RyYXAvbWl4aW5zL19uYXYtdmVydGljYWwtYWxpZ24uc2NzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYm9vdHN0cmFwLXNhc3MvYXNzZXRzL3N0eWxlc2hlZXRzL2Jvb3RzdHJhcC9fYnJlYWRjcnVtYnMuc2NzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYm9vdHN0cmFwLXNhc3MvYXNzZXRzL3N0eWxlc2hlZXRzL2Jvb3RzdHJhcC9fcGFnaW5hdGlvbi5zY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ib290c3RyYXAtc2Fzcy9hc3NldHMvc3R5bGVzaGVldHMvYm9vdHN0cmFwL21peGlucy9fcGFnaW5hdGlvbi5zY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ib290c3RyYXAtc2Fzcy9hc3NldHMvc3R5bGVzaGVldHMvYm9vdHN0cmFwL19wYWdlci5zY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ib290c3RyYXAtc2Fzcy9hc3NldHMvc3R5bGVzaGVldHMvYm9vdHN0cmFwL19sYWJlbHMuc2NzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYm9vdHN0cmFwLXNhc3MvYXNzZXRzL3N0eWxlc2hlZXRzL2Jvb3RzdHJhcC9taXhpbnMvX2xhYmVscy5zY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ib290c3RyYXAtc2Fzcy9hc3NldHMvc3R5bGVzaGVldHMvYm9vdHN0cmFwL19iYWRnZXMuc2NzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYm9vdHN0cmFwLXNhc3MvYXNzZXRzL3N0eWxlc2hlZXRzL2Jvb3RzdHJhcC9fanVtYm90cm9uLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC1zYXNzL2Fzc2V0cy9zdHlsZXNoZWV0cy9ib290c3RyYXAvX3RodW1ibmFpbHMuc2NzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYm9vdHN0cmFwLXNhc3MvYXNzZXRzL3N0eWxlc2hlZXRzL2Jvb3RzdHJhcC9fYWxlcnRzLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC1zYXNzL2Fzc2V0cy9zdHlsZXNoZWV0cy9ib290c3RyYXAvbWl4aW5zL19hbGVydHMuc2NzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYm9vdHN0cmFwLXNhc3MvYXNzZXRzL3N0eWxlc2hlZXRzL2Jvb3RzdHJhcC9fcHJvZ3Jlc3MtYmFycy5zY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ib290c3RyYXAtc2Fzcy9hc3NldHMvc3R5bGVzaGVldHMvYm9vdHN0cmFwL21peGlucy9fZ3JhZGllbnRzLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC1zYXNzL2Fzc2V0cy9zdHlsZXNoZWV0cy9ib290c3RyYXAvbWl4aW5zL19wcm9ncmVzcy1iYXIuc2NzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYm9vdHN0cmFwLXNhc3MvYXNzZXRzL3N0eWxlc2hlZXRzL2Jvb3RzdHJhcC9fbWVkaWEuc2NzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYm9vdHN0cmFwLXNhc3MvYXNzZXRzL3N0eWxlc2hlZXRzL2Jvb3RzdHJhcC9fbGlzdC1ncm91cC5zY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ib290c3RyYXAtc2Fzcy9hc3NldHMvc3R5bGVzaGVldHMvYm9vdHN0cmFwL21peGlucy9fbGlzdC1ncm91cC5zY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ib290c3RyYXAtc2Fzcy9hc3NldHMvc3R5bGVzaGVldHMvYm9vdHN0cmFwL19wYW5lbHMuc2NzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYm9vdHN0cmFwLXNhc3MvYXNzZXRzL3N0eWxlc2hlZXRzL2Jvb3RzdHJhcC9taXhpbnMvX3BhbmVscy5zY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ib290c3RyYXAtc2Fzcy9hc3NldHMvc3R5bGVzaGVldHMvYm9vdHN0cmFwL19yZXNwb25zaXZlLWVtYmVkLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC1zYXNzL2Fzc2V0cy9zdHlsZXNoZWV0cy9ib290c3RyYXAvX3dlbGxzLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC1zYXNzL2Fzc2V0cy9zdHlsZXNoZWV0cy9ib290c3RyYXAvX2Nsb3NlLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC1zYXNzL2Fzc2V0cy9zdHlsZXNoZWV0cy9ib290c3RyYXAvX21vZGFscy5zY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ib290c3RyYXAtc2Fzcy9hc3NldHMvc3R5bGVzaGVldHMvYm9vdHN0cmFwL190b29sdGlwLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC1zYXNzL2Fzc2V0cy9zdHlsZXNoZWV0cy9ib290c3RyYXAvbWl4aW5zL19yZXNldC10ZXh0LnNjc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC1zYXNzL2Fzc2V0cy9zdHlsZXNoZWV0cy9ib290c3RyYXAvX3BvcG92ZXJzLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC1zYXNzL2Fzc2V0cy9zdHlsZXNoZWV0cy9ib290c3RyYXAvX2Nhcm91c2VsLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC1zYXNzL2Fzc2V0cy9zdHlsZXNoZWV0cy9ib290c3RyYXAvX3V0aWxpdGllcy5zY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ib290c3RyYXAtc2Fzcy9hc3NldHMvc3R5bGVzaGVldHMvYm9vdHN0cmFwL21peGlucy9fY2VudGVyLWJsb2NrLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC1zYXNzL2Fzc2V0cy9zdHlsZXNoZWV0cy9ib290c3RyYXAvbWl4aW5zL19oaWRlLXRleHQuc2NzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYm9vdHN0cmFwLXNhc3MvYXNzZXRzL3N0eWxlc2hlZXRzL2Jvb3RzdHJhcC9fcmVzcG9uc2l2ZS11dGlsaXRpZXMuc2NzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYm9vdHN0cmFwLXNhc3MvYXNzZXRzL3N0eWxlc2hlZXRzL2Jvb3RzdHJhcC9taXhpbnMvX3Jlc3BvbnNpdmUtdmlzaWJpbGl0eS5zY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9AZm9ydGF3ZXNvbWUvZm9udGF3ZXNvbWUtZnJlZS9zY3NzL2ZvbnRhd2Vzb21lLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0Bmb3J0YXdlc29tZS9mb250YXdlc29tZS1mcmVlL3Njc3MvX2NvcmUuc2NzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQGZvcnRhd2Vzb21lL2ZvbnRhd2Vzb21lLWZyZWUvc2Nzcy9fbGFyZ2VyLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0Bmb3J0YXdlc29tZS9mb250YXdlc29tZS1mcmVlL3Njc3MvX2ZpeGVkLXdpZHRoLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0Bmb3J0YXdlc29tZS9mb250YXdlc29tZS1mcmVlL3Njc3MvX2xpc3Quc2NzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQGZvcnRhd2Vzb21lL2ZvbnRhd2Vzb21lLWZyZWUvc2Nzcy9fdmFyaWFibGVzLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0Bmb3J0YXdlc29tZS9mb250YXdlc29tZS1mcmVlL3Njc3MvX2JvcmRlcmVkLXB1bGxlZC5zY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9AZm9ydGF3ZXNvbWUvZm9udGF3ZXNvbWUtZnJlZS9zY3NzL19hbmltYXRlZC5zY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9AZm9ydGF3ZXNvbWUvZm9udGF3ZXNvbWUtZnJlZS9zY3NzL19yb3RhdGVkLWZsaXBwZWQuc2NzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQGZvcnRhd2Vzb21lL2ZvbnRhd2Vzb21lLWZyZWUvc2Nzcy9fbWl4aW5zLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0Bmb3J0YXdlc29tZS9mb250YXdlc29tZS1mcmVlL3Njc3MvX3N0YWNrZWQuc2NzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQGZvcnRhd2Vzb21lL2ZvbnRhd2Vzb21lLWZyZWUvc2Nzcy9faWNvbnMuc2NzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQGZvcnRhd2Vzb21lL2ZvbnRhd2Vzb21lLWZyZWUvc2Nzcy9fc2NyZWVuLXJlYWRlci5zY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9AZm9ydGF3ZXNvbWUvZm9udGF3ZXNvbWUtZnJlZS9zY3NzL3JlZ3VsYXIuc2NzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQGZvcnRhd2Vzb21lL2ZvbnRhd2Vzb21lLWZyZWUvc2Nzcy9zb2xpZC5zY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9AZm9ydGF3ZXNvbWUvZm9udGF3ZXNvbWUtZnJlZS9zY3NzL2JyYW5kcy5zY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hZG1pbi1sdGUvZGlzdC9jc3MvQWRtaW5MVEUubWluLmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYWRtaW4tbHRlL2Rpc3QvY3NzL3NraW5zL19hbGwtc2tpbnMuY3NzIiwid2VicGFjazovLy8uL3ZlbmRvci9rZXZpbnBhcHN0L2FkbWlubHRlLWJ1bmRsZS9SZXNvdXJjZXMvYXNzZXRzL2FkbWluLWx0ZS1leHRlbnNpb25zLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2ljaGVjay9za2lucy9zcXVhcmUvYmx1ZS5jc3MiLCJ3ZWJwYWNrOi8vLy4vYXNzZXRzL3Nhc3MvYXBwLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vYXNzZXRzL3Nhc3MvY29udGVudC5zY3NzIiwid2VicGFjazovLy8uL2Fzc2V0cy9zYXNzL3Rvb2xiYXIuc2NzcyIsIndlYnBhY2s6Ly8vLi9hc3NldHMvc2Fzcy9pbnZvaWNlLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vYXNzZXRzL3Nhc3MvZGF0YXRhYmxlLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vYXNzZXRzL3Nhc3MvY2FsZW5kYXIuc2NzcyIsIndlYnBhY2s6Ly8vLi9hc3NldHMvc2Fzcy9kYXNoYm9hcmQuc2NzcyIsIndlYnBhY2s6Ly8vLi9hc3NldHMvc2Fzcy9uYXZiYXIuc2NzcyIsIndlYnBhY2s6Ly8vLi9hc3NldHMvc2Fzcy9kYXRlcmFuZ2VwaWNrZXIuc2NzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvZnVsbGNhbGVuZGFyL2Rpc3QvZnVsbGNhbGVuZGFyLm1pbi5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSxtQkFBbUI7RUFDbkIsZUFBZTtFQUNmLHVCQUF1QjtFQUN2QixtQkFBbUI7RUFDbkIsdUJBQXVCO0VBQ3ZCLGFBQWE7RUFDYixnQkFBZ0I7RUFDaEIsV0FBVztFQUNYLGdCQUFnQjtFQUNoQixXQUFXO0VBQ1gsV0FBVztFQUNYLGNBQWM7RUFDZCxjQUFjO0VBQ2QsbUJBQW1CO0VBQ25CLGdCQUFnQjtFQUNoQixpQkFBaUI7Q0FDbEI7O0FBRUQ7RUFDRSxtQkFBbUI7RUFDbkIsc0JBQXNCO0VBQ3RCLHdDQUF3QztFQUN4QyxZQUFZO0NBQ2I7O0FBRUQ7RUFDRSxVQUFVO0VBQ1Ysb0NBQW9DO0VBQ3BDLG1DQUFtQztFQUNuQyw4QkFBOEI7Q0FDL0I7O0FBRUQ7RUFDRSxVQUFVO0VBQ1Ysb0NBQW9DO0VBQ3BDLDhCQUE4QjtFQUM5QixtQ0FBbUM7Q0FDcEM7O0FBRUQ7RUFDRSxXQUFXO0NBQ1o7O0FBRUQ7RUFDRSxZQUFZO0NBQ2I7O0FBRUQ7RUFDRSxRQUFRO0VBQ1IsU0FBUztFQUNULFNBQVM7RUFDVCxrQkFBa0I7RUFDbEIsbUJBQW1CO0NBQ3BCOztBQUVEO0VBQ0UsUUFBUTtFQUNSLFNBQVM7RUFDVCxTQUFTO0VBQ1Qsa0JBQWtCO0VBQ2xCLG1CQUFtQjtDQUNwQjs7QUFFRDtFQUNFLFVBQVU7Q0FDWDs7QUFFRDtFQUNFLFdBQVc7Q0FDWjs7QUFFRDtFQUNFLGlCQUFpQjtDQUNsQjs7QUFFRDtFQUNFLGFBQWE7RUFDYixhQUFhO0VBQ2IsdUJBQXVCO0VBQ3ZCLDJCQUEyQjtDQUM1Qjs7QUFFRDtFQUNFLGFBQWE7RUFDYixhQUFhO0VBQ2IsdUJBQXVCO0VBQ3ZCLDJCQUEyQjtDQUM1Qjs7QUFFRDtFQUNFLFlBQVk7Q0FDYjs7QUFFRDtFQUNFLGNBQWM7Q0FDZjs7QUFFRDtFQUNFLGVBQWU7Q0FDaEI7O0FBRUQ7RUFDRSxlQUFlO0NBQ2hCOztBQUVEO0VBQ0UsY0FBYztDQUNmOztBQUVEO0VBQ0UsY0FBYztFQUNkLGlCQUFpQjtDQUNsQjs7QUFFRDtFQUNFLHVCQUF1QjtDQUN4Qjs7QUFFRDtFQUNFLGFBQWE7Q0FDZDs7QUFFRDtFQUNFLGFBQWE7Q0FDZDs7QUFFRDtFQUNFLFlBQVk7RUFDWixvQkFBb0I7RUFDcEIsMEJBQTBCO0VBQzFCLGlCQUFpQjtFQUNqQixzQkFBc0I7RUFDdEIsYUFBYTtDQUNkOztBQUVEO0VBQ0UsMEJBQTBCO0VBQzFCLGtDQUFrQztDQUNuQzs7QUFFRDtFQUNFLDBCQUEwQjtFQUMxQixrQ0FBa0M7Q0FDbkM7O0FBRUQ7RUFDRSxvQkFBb0I7RUFDcEIsbUJBQW1CO0VBQ25CLHVCQUF1QjtFQUN2QixnQkFBZ0I7RUFDaEIsWUFBWTtFQUNaLGFBQWE7RUFDYixrQkFBa0I7RUFDbEIsZ0JBQWdCO0VBQ2hCLG1CQUFtQjtFQUNuQiw4QkFBOEI7RUFDOUIsb0JBQW9CO0VBQ3BCLGdCQUFnQjtDQUNqQjs7QUFFRDtFQUNFLHVCQUF1QjtFQUN2QixtQkFBbUI7RUFDbkIsdUJBQXVCO0NBQ3hCOztBQUVEO0VBQ0UsWUFBWTtFQUNaLFVBQVU7RUFDVixrQkFBa0I7RUFDbEIsMEJBQTBCO0NBQzNCOztBQUVEO0VBQ0UsdUJBQXVCO0VBQ3ZCLDBCQUEwQjtFQUMxQixlQUFlO0NBQ2hCOztBQUVEO0VBQ0UsZUFBZTtFQUNmLFlBQVk7Q0FDYjs7QUFFRDtFQUNFLHVCQUF1QjtFQUN2QiwwQkFBMEI7RUFDMUIsWUFBWTtDQUNiOztBQUVEO0VBQ0UsMEJBQTBCO0VBQzFCLDBCQUEwQjtFQUMxQixZQUFZO0VBQ1osaUJBQWlCO0NBQ2xCOztBQUVEO0VBQ0UsMkJBQTJCO0NBQzVCOztBQUVEO0VBQ0UsMkJBQTJCO0NBQzVCOztBQUVEO0VBQ0UsbUJBQW1CO0NBQ3BCOztBQUVEO0VBQ0UsMEJBQTBCO0VBQzFCLDBCQUEwQjtFQUMxQixZQUFZO0NBQ2I7O0FBRUQ7RUFDRSxZQUFZO0NBQ2I7O0FBRUQ7RUFDRSxZQUFZO0VBQ1osb0JBQW9CO0VBQ3BCLDhCQUE4QjtDQUMvQjs7QUFFRDtFQUNFLGdCQUFnQjtFQUNoQixhQUFhO0VBQ2IsYUFBYTtFQUNiLFVBQVU7RUFDVixnQkFBZ0I7Q0FDakI7O0FBRUQ7RUFDRSxpQkFBaUI7RUFDakIsV0FBVztDQUNaOztBQUVEO0VBQ0UsV0FBVztDQUNaOztBQUVEO0VBQ0UsWUFBWTtFQUNaLGVBQWU7RUFDZixpQkFBaUI7RUFDakIsdUJBQXVCO0VBQ3ZCLGFBQWE7RUFDYixXQUFXO0VBQ1gsZ0JBQWdCO0NBQ2pCOztBQUVEO0VBQ0UsbUJBQW1CO0VBQ25CLHdCQUF3QjtFQUN4QixrQkFBa0I7RUFDbEIsbUJBQW1CO0NBQ3BCOztBQUVEO0VBQ0UsWUFBWTtFQUNaLG9CQUFvQjtDQUNyQjs7QUFFRDtFQUNFLFlBQVk7RUFDWixrQkFBa0I7RUFDbEIsYUFBYTtFQUNiLDJCQUEyQjtFQUMzQixjQUFjO0VBQ2Qsa0JBQWtCO0VBQ2xCLHVCQUF1QjtDQUN4Qjs7QUFFRDtFQUNFLHNCQUFzQjtFQUN0QixnQkFBZ0I7RUFDaEIsbUJBQW1CO0NBQ3BCOztBQUVEO0VBQ0UsaUJBQWlCO0VBQ2pCLGdCQUFnQjtFQUNoQixrQkFBa0I7RUFDbEIsaUJBQWlCO0NBQ2xCOztBQUVEO0VBQ0UsNEJBQTRCO0NBQzdCOztBQUVEO0VBQ0UsWUFBWTtFQUNaLGlCQUFpQjtFQUNqQixVQUFVO0NBQ1g7O0FBRUQ7RUFDRSxnQkFBZ0I7Q0FDakI7O0FBRUQ7RUFDRSxpQkFBaUI7RUFDakIsZUFBZTtFQUNmLFdBQVc7RUFDWCxZQUFZO0NBQ2I7O0FBRUQ7RUFDRSxnQkFBZ0I7RUFDaEIsa0JBQWtCO0VBQ2xCLGdCQUFnQjtDQUNqQjs7QUFFRDtFQUNFLHVCQUF1QjtDQUN4Qjs7QUFFRDtFQUNFLHVCQUF1QjtFQUN2QixZQUFZO0NBQ2I7O0FBRUQsNEJBQTRCO0FBQzVCO0VBQ0U7SUFDRSxZQUFZLEVBQUU7SUFDZDtNQUNFLGFBQWEsRUFBRTtJQUNqQjtNQUNFLFlBQVksRUFBRTtJQUNoQjtNQUNFLFlBQVksRUFBRTtJQUNoQjtNQUNFLFlBQVksRUFBRTtJQUNoQjtNQUNFLGFBQWEsRUFBRTtJQUNqQjtNQUNFLGVBQWU7TUFDZixpQkFBaUIsRUFBRTtNQUNuQjtRQUNFLFlBQVk7UUFDWixnQkFBZ0IsRUFBRTtRQUNsQjtVQUNFLG1CQUFtQjtVQUNuQiwyQkFBMkI7VUFDM0IsOEJBQThCLEVBQUU7TUFDcEM7UUFDRSxlQUFlLEVBQUU7UUFDakI7VUFDRSxrQkFBa0I7VUFDbEIsMEJBQTBCO1VBQzFCLDZCQUE2QixFQUFFO01BQ25DO1FBQ0UsbUJBQW1CLEVBQUU7TUFDdkI7UUFDRSxZQUFZLEVBQUU7SUFDbEI7TUFDRSxlQUFlO01BQ2Ysa0JBQWtCLEVBQUU7TUFDcEI7UUFDRSxhQUFhO1FBQ2IsZUFBZSxFQUFFO1FBQ2pCO1VBQ0Usa0JBQWtCO1VBQ2xCLDBCQUEwQjtVQUMxQiw2QkFBNkIsRUFBRTtNQUNuQztRQUNFLGdCQUFnQixFQUFFO1FBQ2xCO1VBQ0UsbUJBQW1CO1VBQ25CLDJCQUEyQjtVQUMzQiw4QkFBOEIsRUFBRTtNQUNwQztRQUNFLG1CQUFtQixFQUFFO01BQ3ZCO1FBQ0Usa0JBQWtCO1FBQ2xCLGFBQWEsRUFBRSxFQUFFO0FBQ3pCO0VBQ0U7SUFDRSxZQUFZLEVBQUU7RUFDaEI7SUFDRSxZQUFZLEVBQUU7RUFDaEI7SUFDRSxhQUFhLEVBQUU7RUFDakI7SUFDRSx1QkFBdUIsRUFBRSxFQUFFO0FDblkvQjs7Ozs7R0FLRyxzRkFBc0Ysc0JBQXNCLENBQUMsa0JBQWtCLGFBQWEsQ0FBQyxtQ0FBbUMsa0JBQWtCLFdBQVcsVUFBVSxpQkFBaUIsa0JBQWtCLENBQUMsMk5BQTJOLFVBQVUsQ0FBQyw4aURBQThpRCwwQkFBMEIsQ0FBQyx5QkFBeUIsNEJBQTRCLFNBQVMsU0FBUyx3QkFBd0IscUJBQXFCLHNCQUFzQixvQkFBb0Isb0JBQW9CLFdBQVcsQ0FBQyx1Q0FBdUMsTUFBTSxPQUFPLHdCQUF3QixxQkFBcUIsU0FBUyxDQUFDLDhNQUE4TSxvQkFBb0IsQ0FBQyxrSEFBa0gsb0JBQW9CLENBQUMsNEJBQTRCLG9CQUFvQixDQUFDLHNGQUFzRixXQUFXLENBQUMseUNBQXlDLG1DQUFtQyxvREFBb0QsbUJBQW1CLENBQUMsK0JBQStCLGdCQUFnQixVQUFVLFdBQVcsQ0FBQyxxRUFBcUUsVUFBVSxDQUFDLCtDQUErQyxZQUFZLENBQUMsdUZBQXVGLGVBQWUsQ0FBQyx1RUFBdUUsV0FBVyxxQkFBcUIsYUFBYSxDQUFDLGlKQUFpSixXQUFXLENBQUMsZ0dBQWdHLGVBQWUsQ0FBQyw0RkFBNEYsU0FBUyxDQUFDLDhIQUE4SCxZQUFZLGtCQUFrQixvQkFBb0IscUJBQXFCLENBQUMsc0dBQXNHLGtCQUFrQixvQkFBb0IscUJBQXFCLENBQUMsbURBQW1ELG9CQUFvQixDQUFDLG1EQUFtRCxrQkFBa0IsQ0FBQyw2Q0FBNkMsVUFBVSxDQUFDLHVEQUF1RCxrQkFBa0IsQ0FBQyxtRUFBbUUsbUJBQW1CLENBQUMsK0JBQStCLGtCQUFrQixNQUFNLE9BQU8sbUJBQW1CLG1CQUFtQixDQUFDLDhDQUE4QyxZQUFZLENBQUMsMENBQTBDLFdBQVcsb0JBQW9CLENBQUMsa0RBQWtELGtCQUFrQixNQUFNLE9BQU8sb0JBQW9CLHNCQUFzQix1QkFBdUIscUJBQXFCLFlBQVksV0FBVyxlQUFlLENBQUMsd0RBQXdELHFCQUFxQixDQUFDLDhEQUE4RCxlQUFlLENBQUMsMENBQTBDLGtCQUFrQixRQUFRLFdBQVcsZ0JBQWdCLHFCQUFxQixDQUFDLDZEQUE2RCxxQkFBcUIsQ0FBQyxnREFBZ0QsVUFBVSxDQUFDLGlDQUFpQyxlQUFlLDhCQUE4QiwyQkFBMkIscUJBQXFCLENBQUMsOENBQThDLG1CQUFtQixDQUFDLHVDQUF1QyxnQkFBZ0IsV0FBVyxTQUFTLFVBQVUsU0FBUyxnQkFBZ0Isd0JBQXdCLGVBQWUsQ0FBQyxvQ0FBb0MsaUJBQWlCLENBQUMsaURBQWlELFVBQVUsQ0FBQywrQ0FBK0Msa0JBQWtCLENBQUMsc0NBQXNDLGVBQWUseUJBQXlCLHNCQUFzQixxQkFBcUIsZ0JBQWdCLENBQUMsMENBQTBDLGtCQUFrQixtQkFBbUIsQ0FBQyxzREFBc0QsWUFBWSxDQUFDLGdEQUFnRCxvQkFBb0IsQ0FBQywwQ0FBMEMsaUJBQWlCLENBQUMseUNBQXlDLGtCQUFrQixXQUFXLFVBQVUsWUFBWSxnQkFBZ0IsZ0JBQWdCLG1CQUFtQix5QkFBeUIsbURBQW1ELDJDQUEyQyxvQkFBb0IsV0FBVyw4QkFBOEIsMkJBQTJCLHFCQUFxQixDQUFDLDhCQUE4QixZQUFZLG1CQUFtQixhQUFhLGtCQUFrQixDQUFDLDREQUE0RCxnQkFBZ0IsZUFBZSxTQUFTLENBQUMsMElBQTBJLGNBQWMsQ0FBQyxvREFBb0QsZ0JBQWdCLFNBQVMsZUFBZSxDQUFDLHFFQUFxRSxrQkFBa0IscUJBQXFCLFdBQVcsT0FBTyxDQUFDLDBEQUEwRCxpQkFBaUIsQ0FBQyx1Q0FBdUMsV0FBVyxjQUFjLFdBQVcsV0FBVyxtQkFBbUIsNkJBQTZCLGdDQUFnQyw0QkFBNEIsMkJBQTJCLHVCQUF1QixDQUFDLGdIQUFnSCxZQUFZLENBQUMseUVBQXlFLFdBQVcsa0NBQWtDLG1DQUFtQyw2Q0FBNkMsa0JBQWtCLFlBQVksU0FBUyxZQUFZLENBQUMsd0VBQXdFLFdBQVcsa0NBQWtDLG1DQUFtQyw2QkFBNkIsa0JBQWtCLFlBQVksVUFBVSxZQUFZLENBQUMsZ0ZBQWdGLFlBQVksU0FBUywwQ0FBMEMsZUFBZSxDQUFDLCtFQUErRSxZQUFZLFNBQVMsMEJBQTBCLGVBQWUsQ0FBQyxvRkFBb0YsV0FBVyxTQUFTLENBQUMsbUZBQW1GLFdBQVcsU0FBUyxDQUFDLHNUQUFzVCxhQUFhLENBQUMsNENBQTRDLGVBQWUsQ0FBQyxlQUFlLFdBQVcsOEJBQThCLDJCQUEyQixxQkFBcUIsQ0FBQyxpQ0FBaUMsU0FBUyxDQUFDLGVBQWUsV0FBVyxXQUFXLDhCQUE4QiwyQkFBMkIscUJBQXFCLENBQUMsaUNBQWlDLFVBQVUsQ0FBQyw2QkFBNkIsaUJBQWlCLENBQUMsNEJBQTRCLGdCQUFnQixXQUFXLFVBQVUsQ0NMcjBTLGlCQUFpQjtBQ0FqQjs7OztHQUlHO0FDSkgsNEVBQTRFO0FBUTVFO0VBQ0Usd0JBQXVCO0VBQ3ZCLDJCQUEwQjtFQUMxQiwrQkFBOEIsRUFDL0I7O0FBTUQ7RUFDRSxVQUFTLEVBQ1Y7O0FBWUQ7Ozs7Ozs7Ozs7Ozs7RUFhRSxlQUFjLEVBQ2Y7O0FBT0Q7Ozs7RUFJRSxzQkFBcUI7RUFDckIseUJBQXdCLEVBQ3pCOztBQU9EO0VBQ0UsY0FBYTtFQUNiLFVBQVMsRUFDVjs7QUYxQkQ7O0VFbUNFLGNBQWEsRUFDZDs7QUFTRDtFQUNFLDhCQUE2QixFQUM5Qjs7QUFPRDs7RUFFRSxXQUFVLEVBQ1g7O0FBU0Q7RUFDRSwwQkFBeUIsRUFDMUI7O0FBTUQ7O0VBRUUsa0JBQWlCLEVBQ2xCOztBQU1EO0VBQ0UsbUJBQWtCLEVBQ25COztBQU9EO0VBQ0UsZUFBYztFQUNkLGlCQUFnQixFQUNqQjs7QUFNRDtFQUNFLGlCQUFnQjtFQUNoQixZQUFXLEVBQ1o7O0FBTUQ7RUFDRSxlQUFjLEVBQ2Y7O0FBTUQ7O0VBRUUsZUFBYztFQUNkLGVBQWM7RUFDZCxtQkFBa0I7RUFDbEIseUJBQXdCLEVBQ3pCOztBQUVEO0VBQ0UsWUFBVyxFQUNaOztBQUVEO0VBQ0UsZ0JBQWUsRUFDaEI7O0FBU0Q7RUFDRSxVQUFTLEVBQ1Y7O0FBTUQ7RUFDRSxpQkFBZ0IsRUFDakI7O0FBU0Q7RUFDRSxpQkFBZ0IsRUFDakI7O0FBTUQ7RUFDRSx3QkFBdUI7RUFDdkIsVUFBUyxFQUNWOztBQU1EO0VBQ0UsZUFBYyxFQUNmOztBQU1EOzs7O0VBSUUsa0NBQWlDO0VBQ2pDLGVBQWMsRUFDZjs7QUFpQkQ7Ozs7O0VBS0UsZUFBYztFQUNkLGNBQWE7RUFDYixVQUFTLEVBQ1Y7O0FBTUQ7RUFDRSxrQkFBaUIsRUFDbEI7O0FBU0Q7O0VBRUUscUJBQW9CLEVBQ3JCOztBQVVEOzs7O0VBSUUsMkJBQTBCO0VBQzFCLGdCQUFlLEVBQ2hCOztBQU1EOztFQUVFLGdCQUFlLEVBQ2hCOztBQU1EOztFQUVFLFVBQVM7RUFDVCxXQUFVLEVBQ1g7O0FBT0Q7RUFDRSxvQkFBbUIsRUFDcEI7O0FBVUQ7O0VBRUUsdUJBQXNCO0VBQ3RCLFdBQVUsRUFDWDs7QUFRRDs7RUFFRSxhQUFZLEVBQ2I7O0FBT0Q7RUFDRSw4QkFBNkI7RUFDN0Isd0JBQXVCLEVBQ3hCOztBQVFEOztFQUVFLHlCQUF3QixFQUN6Qjs7QUFNRDtFQUNFLDBCQUF5QjtFQUN6QixjQUFhO0VBQ2IsK0JBQThCLEVBQy9COztBQU9EO0VBQ0UsVUFBUztFQUNULFdBQVUsRUFDWDs7QUFNRDtFQUNFLGVBQWMsRUFDZjs7QUFPRDtFQUNFLGtCQUFpQixFQUNsQjs7QUFTRDtFQUNFLDBCQUF5QjtFQUN6QixrQkFBaUIsRUFDbEI7O0FBRUQ7O0VBRUUsV0FBVSxFQUNYOztBQ3ZhRCxxRkFBcUY7QUFPckY7RUFDSTs7O0lBR0ksbUNBQWtDO0lBQ2xDLHVCQUFzQjtJQUN0Qiw0QkFBMkI7SUFDM0IsNkJBQTRCLEVBQy9CO0VBRUQ7O0lBRUksMkJBQTBCLEVBQzdCO0VBRUQ7SUFDSSw2QkFBNEIsRUFDL0I7RUFFRDtJQUNJLDhCQUE2QixFQUNoQztFQUlEOztJQUVJLFlBQVcsRUFDZDtFQUVEOztJQUVJLHVCQUFzQjtJQUN0Qix5QkFBd0IsRUFDM0I7RUFFRDtJQUNJLDRCQUEyQixFQUM5QjtFQUVEOztJQUVJLHlCQUF3QixFQUMzQjtFRHNJTDtJQ25JUSwyQkFBMEIsRUFDN0I7RUFFRDs7O0lBR0ksV0FBVTtJQUNWLFVBQVMsRUFDWjtFQUVEOztJQUVJLHdCQUF1QixFQUMxQjtFQUtEO0lBQ0ksY0FBYSxFQUNoQjtFQUNEOztJQUdRLGtDQUFpQyxFQUNwQztFQUVMO0lBQ0ksdUJBQXNCLEVBQ3pCO0VBRUQ7SUFDSSxxQ0FBb0MsRUFNdkM7SUFQRDs7TUFLUSxrQ0FBaUMsRUFDcEM7RUFFTDs7SUFHUSxrQ0FBaUMsRUFDcEM7O0FDckZQO0VBQ0Usb0NBQW1DO0VBQ25DLG1DQUFrSjtFQUNsSiwyUEFJME07O0FBSzlNO0VBQ0UsbUJBQWtCO0VBQ2xCLFNBQVE7RUFDUixzQkFBcUI7RUFDckIsb0NBQW1DO0VBQ25DLG1CQUFrQjtFQUNsQixvQkFBbUI7RUFDbkIsZUFBYztFQUNkLG9DQUFtQztFQUNuQyxtQ0FBa0MsRUFDbkM7O0FBR0Q7RUFBK0MsYUFBZ0IsRUFBSTs7QUFDbkU7RUFBK0MsYUFBZ0IsRUFBSTs7QUFDbkU7O0VBQytDLGlCQUFnQixFQUFJOztBQUNuRTtFQUErQyxpQkFBZ0IsRUFBSTs7QUFDbkU7RUFBK0MsaUJBQWdCLEVBQUk7O0FBQ25FO0VBQStDLGlCQUFnQixFQUFJOztBQUNuRTtFQUErQyxpQkFBZ0IsRUFBSTs7QUFDbkU7RUFBK0MsaUJBQWdCLEVBQUk7O0FBQ25FO0VBQStDLGlCQUFnQixFQUFJOztBQUNuRTtFQUErQyxpQkFBZ0IsRUFBSTs7QUFDbkU7RUFBK0MsaUJBQWdCLEVBQUk7O0FBQ25FO0VBQStDLGlCQUFnQixFQUFJOztBQUNuRTtFQUErQyxpQkFBZ0IsRUFBSTs7QUFDbkU7RUFBK0MsaUJBQWdCLEVBQUk7O0FBQ25FO0VBQStDLGlCQUFnQixFQUFJOztBQUNuRTtFQUErQyxpQkFBZ0IsRUFBSTs7QUFDbkU7RUFBK0MsaUJBQWdCLEVBQUk7O0FBQ25FO0VBQStDLGlCQUFnQixFQUFJOztBQUNuRTtFQUErQyxpQkFBZ0IsRUFBSTs7QUFDbkU7RUFBK0MsaUJBQWdCLEVBQUk7O0FBQ25FO0VBQStDLGlCQUFnQixFQUFJOztBQUNuRTtFQUErQyxpQkFBZ0IsRUFBSTs7QUFDbkU7RUFBK0MsaUJBQWdCLEVBQUk7O0FBQ25FO0VBQStDLGlCQUFnQixFQUFJOztBQUNuRTtFQUErQyxpQkFBZ0IsRUFBSTs7QUFDbkU7RUFBK0MsaUJBQWdCLEVBQUk7O0FBQ25FO0VBQStDLGlCQUFnQixFQUFJOztBQUNuRTtFQUErQyxpQkFBZ0IsRUFBSTs7QUFDbkU7RUFBK0MsaUJBQWdCLEVBQUk7O0FBQ25FO0VBQStDLGlCQUFnQixFQUFJOztBQUNuRTtFQUErQyxpQkFBZ0IsRUFBSTs7QUFDbkU7RUFBK0MsaUJBQWdCLEVBQUk7O0FBQ25FO0VBQStDLGlCQUFnQixFQUFJOztBQUNuRTtFQUErQyxpQkFBZ0IsRUFBSTs7QUFDbkU7RUFBK0MsaUJBQWdCLEVBQUk7O0FBQ25FO0VBQStDLGlCQUFnQixFQUFJOztBQUNuRTtFQUErQyxpQkFBZ0IsRUFBSTs7QUFDbkU7RUFBK0MsaUJBQWdCLEVBQUk7O0FBQ25FO0VBQStDLGlCQUFnQixFQUFJOztBQUNuRTtFQUErQyxpQkFBZ0IsRUFBSTs7QUFDbkU7RUFBK0MsaUJBQWdCLEVBQUk7O0FBQ25FO0VBQStDLGlCQUFnQixFQUFJOztBQUNuRTtFQUErQyxpQkFBZ0IsRUFBSTs7QUFDbkU7RUFBK0MsaUJBQWdCLEVBQUk7O0FBQ25FO0VBQStDLGlCQUFnQixFQUFJOztBQUNuRTtFQUErQyxpQkFBZ0IsRUFBSTs7QUFDbkU7RUFBK0MsaUJBQWdCLEVBQUk7O0FBQ25FO0VBQStDLGlCQUFnQixFQUFJOztBQUNuRTtFQUErQyxpQkFBZ0IsRUFBSTs7QUFDbkU7RUFBK0MsaUJBQWdCLEVBQUk7O0FBQ25FO0VBQStDLGlCQUFnQixFQUFJOztBQUNuRTtFQUErQyxpQkFBZ0IsRUFBSTs7QUFDbkU7RUFBK0MsaUJBQWdCLEVBQUk7O0FBQ25FO0VBQStDLGlCQUFnQixFQUFJOztBQUNuRTtFQUErQyxpQkFBZ0IsRUFBSTs7QUFDbkU7RUFBK0MsaUJBQWdCLEVBQUk7O0FBQ25FO0VBQStDLGlCQUFnQixFQUFJOztBQUNuRTtFQUErQyxpQkFBZ0IsRUFBSTs7QUFDbkU7RUFBK0MsaUJBQWdCLEVBQUk7O0FBQ25FO0VBQStDLGlCQUFnQixFQUFJOztBQUNuRTtFQUErQyxpQkFBZ0IsRUFBSTs7QUFDbkU7RUFBK0MsaUJBQWdCLEVBQUk7O0FBQ25FO0VBQStDLGlCQUFnQixFQUFJOztBQUNuRTtFQUErQyxpQkFBZ0IsRUFBSTs7QUFDbkU7RUFBK0MsaUJBQWdCLEVBQUk7O0FBQ25FO0VBQStDLGlCQUFnQixFQUFJOztBQUNuRTtFQUErQyxpQkFBZ0IsRUFBSTs7QUFDbkU7RUFBK0MsaUJBQWdCLEVBQUk7O0FBQ25FO0VBQStDLGlCQUFnQixFQUFJOztBQUNuRTtFQUErQyxpQkFBZ0IsRUFBSTs7QUFDbkU7RUFBK0MsaUJBQWdCLEVBQUk7O0FBQ25FO0VBQStDLGlCQUFnQixFQUFJOztBQUNuRTtFQUErQyxpQkFBZ0IsRUFBSTs7QUFDbkU7RUFBK0MsaUJBQWdCLEVBQUk7O0FBQ25FO0VBQStDLGlCQUFnQixFQUFJOztBQUNuRTtFQUErQyxpQkFBZ0IsRUFBSTs7QUFDbkU7RUFBK0MsaUJBQWdCLEVBQUk7O0FBQ25FO0VBQStDLGlCQUFnQixFQUFJOztBQUNuRTtFQUErQyxpQkFBZ0IsRUFBSTs7QUFDbkU7RUFBK0MsaUJBQWdCLEVBQUk7O0FBQ25FO0VBQStDLGlCQUFnQixFQUFJOztBQUNuRTtFQUErQyxpQkFBZ0IsRUFBSTs7QUFDbkU7RUFBK0MsaUJBQWdCLEVBQUk7O0FBQ25FO0VBQStDLGlCQUFnQixFQUFJOztBQUNuRTtFQUErQyxpQkFBZ0IsRUFBSTs7QUFDbkU7RUFBK0MsaUJBQWdCLEVBQUk7O0FBQ25FO0VBQStDLGlCQUFnQixFQUFJOztBQUNuRTtFQUErQyxpQkFBZ0IsRUFBSTs7QUFDbkU7RUFBK0MsaUJBQWdCLEVBQUk7O0FBQ25FO0VBQStDLGlCQUFnQixFQUFJOztBQUNuRTtFQUErQyxpQkFBZ0IsRUFBSTs7QUFDbkU7RUFBK0MsaUJBQWdCLEVBQUk7O0FBQ25FO0VBQStDLGlCQUFnQixFQUFJOztBQUNuRTtFQUErQyxpQkFBZ0IsRUFBSTs7QUFDbkU7RUFBK0MsaUJBQWdCLEVBQUk7O0FBQ25FO0VBQStDLGlCQUFnQixFQUFJOztBQUNuRTtFQUErQyxpQkFBZ0IsRUFBSTs7QUFDbkU7RUFBK0MsaUJBQWdCLEVBQUk7O0FBQ25FO0VBQStDLGlCQUFnQixFQUFJOztBQUNuRTtFQUErQyxpQkFBZ0IsRUFBSTs7QUFDbkU7RUFBK0MsaUJBQWdCLEVBQUk7O0FBQ25FO0VBQStDLGlCQUFnQixFQUFJOztBQUNuRTtFQUErQyxpQkFBZ0IsRUFBSTs7QUFDbkU7RUFBK0MsaUJBQWdCLEVBQUk7O0FBQ25FO0VBQStDLGlCQUFnQixFQUFJOztBQUNuRTtFQUErQyxpQkFBZ0IsRUFBSTs7QUFDbkU7RUFBK0MsaUJBQWdCLEVBQUk7O0FBQ25FO0VBQStDLGlCQUFnQixFQUFJOztBQUNuRTtFQUErQyxpQkFBZ0IsRUFBSTs7QUFDbkU7RUFBK0MsaUJBQWdCLEVBQUk7O0FBQ25FO0VBQStDLGlCQUFnQixFQUFJOztBQUNuRTtFQUErQyxpQkFBZ0IsRUFBSTs7QUFDbkU7RUFBK0MsaUJBQWdCLEVBQUk7O0FBQ25FO0VBQStDLGlCQUFnQixFQUFJOztBQUNuRTtFQUErQyxpQkFBZ0IsRUFBSTs7QUFDbkU7RUFBK0MsaUJBQWdCLEVBQUk7O0FBQ25FO0VBQStDLGlCQUFnQixFQUFJOztBQUNuRTtFQUErQyxpQkFBZ0IsRUFBSTs7QUFDbkU7RUFBK0MsaUJBQWdCLEVBQUk7O0FBQ25FO0VBQStDLGlCQUFnQixFQUFJOztBQUNuRTtFQUErQyxpQkFBZ0IsRUFBSTs7QUFDbkU7RUFBK0MsaUJBQWdCLEVBQUk7O0FBQ25FO0VBQStDLGlCQUFnQixFQUFJOztBQUNuRTtFQUErQyxpQkFBZ0IsRUFBSTs7QUFDbkU7RUFBK0MsaUJBQWdCLEVBQUk7O0FBQ25FO0VBQStDLGlCQUFnQixFQUFJOztBQUNuRTtFQUErQyxpQkFBZ0IsRUFBSTs7QUFDbkU7RUFBK0MsaUJBQWdCLEVBQUk7O0FBQ25FO0VBQStDLGlCQUFnQixFQUFJOztBQUNuRTtFQUErQyxpQkFBZ0IsRUFBSTs7QUFDbkU7RUFBK0MsaUJBQWdCLEVBQUk7O0FBQ25FO0VBQStDLGlCQUFnQixFQUFJOztBQUNuRTtFQUErQyxpQkFBZ0IsRUFBSTs7QUFDbkU7RUFBK0MsaUJBQWdCLEVBQUk7O0FBQ25FO0VBQStDLGlCQUFnQixFQUFJOztBQUNuRTtFQUErQyxpQkFBZ0IsRUFBSTs7QUFDbkU7RUFBK0MsaUJBQWdCLEVBQUk7O0FBQ25FO0VBQStDLGlCQUFnQixFQUFJOztBQUNuRTtFQUErQyxpQkFBZ0IsRUFBSTs7QUFDbkU7RUFBK0MsaUJBQWdCLEVBQUk7O0FBQ25FO0VBQStDLGlCQUFnQixFQUFJOztBQUNuRTtFQUErQyxpQkFBZ0IsRUFBSTs7QUFDbkU7RUFBK0MsaUJBQWdCLEVBQUk7O0FBQ25FO0VBQStDLGlCQUFnQixFQUFJOztBQUNuRTtFQUErQyxpQkFBZ0IsRUFBSTs7QUFDbkU7RUFBK0MsaUJBQWdCLEVBQUk7O0FBQ25FO0VBQStDLGlCQUFnQixFQUFJOztBQUNuRTtFQUErQyxpQkFBZ0IsRUFBSTs7QUFDbkU7RUFBK0MsaUJBQWdCLEVBQUk7O0FBQ25FO0VBQStDLGlCQUFnQixFQUFJOztBQUNuRTtFQUErQyxpQkFBZ0IsRUFBSTs7QUFDbkU7RUFBK0MsaUJBQWdCLEVBQUk7O0FBQ25FO0VBQStDLGlCQUFnQixFQUFJOztBQUNuRTtFQUErQyxpQkFBZ0IsRUFBSTs7QUFDbkU7RUFBK0MsaUJBQWdCLEVBQUk7O0FBQ25FO0VBQStDLGlCQUFnQixFQUFJOztBQUNuRTtFQUErQyxpQkFBZ0IsRUFBSTs7QUFDbkU7RUFBK0MsaUJBQWdCLEVBQUk7O0FBQ25FO0VBQStDLGlCQUFnQixFQUFJOztBQUNuRTtFQUErQyxpQkFBZ0IsRUFBSTs7QUFDbkU7RUFBK0MsaUJBQWdCLEVBQUk7O0FBQ25FO0VBQStDLGlCQUFnQixFQUFJOztBQUNuRTtFQUErQyxpQkFBZ0IsRUFBSTs7QUFDbkU7RUFBK0MsaUJBQWdCLEVBQUk7O0FBQ25FO0VBQStDLGlCQUFnQixFQUFJOztBQUNuRTtFQUErQyxpQkFBZ0IsRUFBSTs7QUFDbkU7RUFBK0MsaUJBQWdCLEVBQUk7O0FBQ25FO0VBQStDLGlCQUFnQixFQUFJOztBQUNuRTtFQUErQyxpQkFBZ0IsRUFBSTs7QUFDbkU7RUFBK0MsaUJBQWdCLEVBQUk7O0FBQ25FO0VBQStDLGlCQUFnQixFQUFJOztBQUNuRTtFQUErQyxpQkFBZ0IsRUFBSTs7QUFDbkU7RUFBK0MsaUJBQWdCLEVBQUk7O0FBQ25FO0VBQStDLGlCQUFnQixFQUFJOztBQUNuRTtFQUErQyxpQkFBZ0IsRUFBSTs7QUFDbkU7RUFBK0MsaUJBQWdCLEVBQUk7O0FBQ25FO0VBQStDLGlCQUFnQixFQUFJOztBQUNuRTtFQUErQyxpQkFBZ0IsRUFBSTs7QUFDbkU7RUFBK0MsaUJBQWdCLEVBQUk7O0FBQ25FO0VBQStDLGlCQUFnQixFQUFJOztBQUNuRTtFQUErQyxpQkFBZ0IsRUFBSTs7QUFDbkU7RUFBK0MsaUJBQWdCLEVBQUk7O0FBQ25FO0VBQStDLGlCQUFnQixFQUFJOztBQUNuRTtFQUErQyxpQkFBZ0IsRUFBSTs7QUFDbkU7RUFBK0MsaUJBQWdCLEVBQUk7O0FBQ25FO0VBQStDLGlCQUFnQixFQUFJOztBQUNuRTtFQUErQyxpQkFBZ0IsRUFBSTs7QUFDbkU7RUFBK0MsaUJBQWdCLEVBQUk7O0FBQ25FO0VBQStDLGlCQUFnQixFQUFJOztBQUNuRTtFQUErQyxpQkFBZ0IsRUFBSTs7QUFDbkU7RUFBK0MsaUJBQWdCLEVBQUk7O0FBQ25FO0VBQStDLGlCQUFnQixFQUFJOztBQUNuRTtFQUErQyxpQkFBZ0IsRUFBSTs7QUFDbkU7RUFBK0MsaUJBQWdCLEVBQUk7O0FBQ25FO0VBQStDLGlCQUFnQixFQUFJOztBQUNuRTtFQUErQyxpQkFBZ0IsRUFBSTs7QUFDbkU7RUFBK0MsaUJBQWdCLEVBQUk7O0FBQ25FO0VBQStDLGlCQUFnQixFQUFJOztBQUNuRTtFQUErQyxpQkFBZ0IsRUFBSTs7QUFDbkU7RUFBK0MsaUJBQWdCLEVBQUk7O0FBQ25FO0VBQStDLGlCQUFnQixFQUFJOztBQUNuRTtFQUErQyxpQkFBZ0IsRUFBSTs7QUFDbkU7RUFBK0MsaUJBQWdCLEVBQUk7O0FBQ25FO0VBQStDLGlCQUFnQixFQUFJOztBQUNuRTtFQUErQyxpQkFBZ0IsRUFBSTs7QUFDbkU7RUFBK0MsaUJBQWdCLEVBQUk7O0FBU25FO0VBQStDLGlCQUFnQixFQUFJOztBQUNuRTtFQUErQyxpQkFBZ0IsRUFBSTs7QUFDbkU7RUFBK0MsaUJBQWdCLEVBQUk7O0FBQ25FO0VBQStDLGlCQUFnQixFQUFJOztBQUNuRTtFQUErQyxpQkFBZ0IsRUFBSTs7QUFDbkU7RUFBK0MsaUJBQWdCLEVBQUk7O0FBQ25FO0VBQStDLGlCQUFnQixFQUFJOztBQUNuRTtFQUErQyxpQkFBZ0IsRUFBSTs7QUFDbkU7RUFBK0MsaUJBQWdCLEVBQUk7O0FBQ25FO0VBQStDLGlCQUFnQixFQUFJOztBQUNuRTtFQUErQyxpQkFBZ0IsRUFBSTs7QUFDbkU7RUFBK0MsaUJBQWdCLEVBQUk7O0FBQ25FO0VBQStDLGlCQUFnQixFQUFJOztBQUNuRTtFQUErQyxpQkFBZ0IsRUFBSTs7QUFDbkU7RUFBK0MsaUJBQWdCLEVBQUk7O0FBQ25FO0VBQStDLGlCQUFnQixFQUFJOztBQUNuRTtFQUErQyxpQkFBZ0IsRUFBSTs7QUFDbkU7RUFBK0MsaUJBQWdCLEVBQUk7O0FBQ25FO0VBQStDLGlCQUFnQixFQUFJOztBQUNuRTtFQUErQyxpQkFBZ0IsRUFBSTs7QUFDbkU7RUFBK0MsaUJBQWdCLEVBQUk7O0FBQ25FO0VBQStDLGVBQWdCLEVBQUk7O0FBQ25FO0VBQStDLGVBQWdCLEVBQUk7O0FBQ25FO0VBQStDLGlCQUFnQixFQUFJOztBQUNuRTtFQUErQyxpQkFBZ0IsRUFBSTs7QUFDbkU7RUFBK0MsaUJBQWdCLEVBQUk7O0FBQ25FO0VBQStDLGlCQUFnQixFQUFJOztBQUNuRTtFQUErQyxpQkFBZ0IsRUFBSTs7QUFDbkU7RUFBK0MsaUJBQWdCLEVBQUk7O0FBQ25FO0VBQStDLGlCQUFnQixFQUFJOztBQUNuRTtFQUErQyxpQkFBZ0IsRUFBSTs7QUFDbkU7RUFBK0MsaUJBQWdCLEVBQUk7O0FBQ25FO0VBQStDLGlCQUFnQixFQUFJOztBQUNuRTtFQUErQyxpQkFBZ0IsRUFBSTs7QUFDbkU7RUFBK0MsaUJBQWdCLEVBQUk7O0FBQ25FO0VBQStDLGlCQUFnQixFQUFJOztBQUNuRTtFQUErQyxpQkFBZ0IsRUFBSTs7QUFDbkU7RUFBK0MsaUJBQWdCLEVBQUk7O0FBQ25FO0VBQStDLGlCQUFnQixFQUFJOztBQUNuRTtFQUErQyxpQkFBZ0IsRUFBSTs7QUFDbkU7RUFBK0MsaUJBQWdCLEVBQUk7O0FBQ25FO0VBQStDLGlCQUFnQixFQUFJOztBQUNuRTtFQUErQyxpQkFBZ0IsRUFBSTs7QUFDbkU7RUFBK0MsaUJBQWdCLEVBQUk7O0FBQ25FO0VBQStDLGlCQUFnQixFQUFJOztBQUNuRTtFQUErQyxpQkFBZ0IsRUFBSTs7QUFDbkU7RUFBK0MsaUJBQWdCLEVBQUk7O0FBQ25FO0VBQStDLGlCQUFnQixFQUFJOztBQUNuRTtFQUErQyxpQkFBZ0IsRUFBSTs7QUFDbkU7RUFBK0MsaUJBQWdCLEVBQUk7O0FBQ25FO0VBQStDLGlCQUFnQixFQUFJOztBQUNuRTtFQUErQyxpQkFBZ0IsRUFBSTs7QUFDbkU7RUFBK0MsaUJBQWdCLEVBQUk7O0FBQ25FO0VBQStDLGlCQUFnQixFQUFJOztBQUNuRTtFQUErQyxpQkFBZ0IsRUFBSTs7QUFDbkU7RUFBK0MsaUJBQWdCLEVBQUk7O0FDeFNuRTtFQ2dFRSwrQkQvRDhCO0VDZ0UzQiw0QkRoRTJCO0VDaUV0Qix1QkRqRXNCLEVBQy9COztBQUNEOztFQzZERSwrQkQzRDhCO0VDNEQzQiw0QkQ1RDJCO0VDNkR0Qix1QkQ3RHNCLEVBQy9COztBSFJEO0VHY0UsZ0JBQWU7RUFDZiw4Q0FBMEMsRUFDM0M7O0FITkQ7RUdTRSw0REVrQnNFO0VGakJ0RSxnQkV1QjRCO0VGdEI1QixxQkVrQ21DO0VGakNuQyxlRWxCK0M7RUZtQi9DLHVCRUYwQixFRkczQjs7QUFHRDs7OztFQUlFLHFCQUFvQjtFQUNwQixtQkFBa0I7RUFDbEIscUJBQW9CLEVBQ3JCOztBSDhDRDtFR3hDRSxlRS9CMkM7RUZnQzNDLHNCQUFxQixFQVd0QjtFQWJEO0lBTUksZUVqQjRDO0lGa0I1QywyQkVoQjZCLEVGaUI5QjtFQVJIO0lHekNFLDJDQUEwQztJQUMxQyxxQkFBb0IsRUhvRG5COztBSGdKSDtFR3RJRSxVQUFTLEVBQ1Y7O0FIa0hEO0VHNUdFLHVCQUFzQixFQUN2Qjs7QUFHRDtFSXZFRSxlQURtQztFQUVuQyxnQkFBZTtFQUNmLGFBQVksRUp1RWI7O0FBR0Q7RUFDRSxtQkV3QjZCLEVGdkI5Qjs7QUFLRDtFQUNFLGFFZ3BCK0I7RUYvb0IvQixxQkUvQm1DO0VGZ0NuQyx1QkVsRTBCO0VGbUUxQix1QkVpcEJnQztFRmhwQmhDLG1CRVk2QjtFRDRFN0IseUNEdkZ1QztFQ3dGbEMsb0NEeEZrQztFQ3lGL0IsaUNEekYrQjtFSXpGdkMsc0JKNEZvQztFSTNGcEMsZ0JBQWU7RUFDZixhQUFZLEVKMkZiOztBQUdEO0VBQ0UsbUJBQWtCLEVBQ25COztBSHdHRDtFR2xHRSxpQkVoRG9FO0VGaURwRSxvQkVqRG9FO0VGa0RwRSxVQUFTO0VBQ1QsOEJFckdpRCxFRnNHbEQ7O0FBT0Q7RUFDRSxtQkFBa0I7RUFDbEIsV0FBVTtFQUNWLFlBQVc7RUFDWCxhQUFZO0VBQ1osV0FBVTtFQUNWLGlCQUFnQjtFQUNoQix1QkFBbUI7RUFDbkIsVUFBUyxFQUNWOztBQU1EO0VBR0ksaUJBQWdCO0VBQ2hCLFlBQVc7RUFDWCxhQUFZO0VBQ1osVUFBUztFQUNULGtCQUFpQjtFQUNqQixXQUFVLEVBQ1g7O0FMNjlCSDtFS2w5QkUsZ0JBQWUsRUFDaEI7O0FLeEpEOztFQUVFLHFCSDBEK0I7RUd6RC9CLGlCSDBEMkI7RUd6RDNCLGlCSDBEMkI7RUd6RDNCLGVIMEQrQixFR2xEaEM7RUFiRDs7Ozs7Ozs7Ozs7Ozs7SUFTSSxvQkFBbUI7SUFDbkIsZUFBYztJQUNkLGVITCtDLEVHTWhEOztBQUdIOzs7RUFHRSxpQkh1Q29FO0VHdENwRSxvQkFBMEMsRUFNM0M7RUFWRDs7Ozs7Ozs7O0lBUUksZUFBYyxFQUNmOztBQUVIOzs7RUFHRSxpQkFBdUM7RUFDdkMsb0JBQTBDLEVBTTNDO0VBVkQ7Ozs7Ozs7OztJQVFJLGVBQWMsRUFDZjs7QUFHSDtFQUFVLGdCSFM4QyxFR1RsQjs7QUFDdEM7RUFBVSxnQkhTK0MsRUdUbkI7O0FBQ3RDO0VBQVUsZ0JIUzZDLEVHVGpCOztBQUN0QztFQUFVLGdCSFM4QyxFR1RsQjs7QUFDdEM7RUFBVSxnQkhDb0IsRUdEUTs7QUFDdEM7RUFBVSxnQkhTOEMsRUdUbEI7O0FBTXRDO0VBQ0UsaUJBQXVDLEVBQ3hDOztBQUVEO0VBQ0Usb0JIR29FO0VHRnBFLGdCQUEwQztFQUMxQyxpQkFBZ0I7RUFDaEIsaUJBQWdCLEVBS2pCO0VBSEM7SUFORjtNQU9JLGdCQUFrQyxFQUVyQzs7QUFPRDs7RUFFRSxlQUE2RCxFQUM5RDs7QUFFRDs7RUFFRSwwQkg0YXNDO0VHM2F0QyxjQUFhLEVBQ2Q7O0FBR0Q7RUFBdUIsaUJBQWdCLEVBQUk7O0FBQzNDO0VBQXVCLGtCQUFpQixFQUFJOztBQUM1QztFQUF1QixtQkFBa0IsRUFBSTs7QUFDN0M7RUFBdUIsb0JBQW1CLEVBQUk7O0FBQzlDO0VBQXVCLG9CQUFtQixFQUFJOztBQUc5QztFQUF1QiwwQkFBeUIsRUFBSTs7QUFDcEQ7RUFBdUIsMEJBQXlCLEVBQUk7O0FBQ3BEO0VBQXVCLDJCQUEwQixFQUFJOztBQUdyRDtFQUNFLGVIeEZpRCxFR3lGbEQ7O0FDbkdDO0VBQ0UsZUpZeUMsRUlYMUM7O0FBQ0Q7O0VBRUUsZUFBMEIsRUFDM0I7O0FBTkQ7RUFDRSxlSmtmb0MsRUlqZnJDOztBQUNEOztFQUVFLGVBQTBCLEVBQzNCOztBQU5EO0VBQ0UsZUpzZm9DLEVJcmZyQzs7QUFDRDs7RUFFRSxlQUEwQixFQUMzQjs7QUFORDtFQUNFLGVKMGZvQyxFSXpmckM7O0FBQ0Q7O0VBRUUsZUFBMEIsRUFDM0I7O0FBTkQ7RUFDRSxlSjhmb0MsRUk3ZnJDOztBQUNEOztFQUVFLGVBQTBCLEVBQzNCOztBRDRHSDtFQUdFLFlBQVcsRUFDWjs7QUFKRDtFRWpISSwwQkxZeUMsRUtYMUM7O0FBQ0Q7O0VBRUUsMEJBQXFDLEVBQ3RDOztBQU5EO0VBQ0UsMEJMbWZvQyxFS2xmckM7O0FBQ0Q7O0VBRUUsMEJBQXFDLEVBQ3RDOztBQU5EO0VBQ0UsMEJMdWZvQyxFS3RmckM7O0FBQ0Q7O0VBRUUsMEJBQXFDLEVBQ3RDOztBQU5EO0VBQ0UsMEJMMmZvQyxFSzFmckM7O0FBQ0Q7O0VBRUUsMEJBQXFDLEVBQ3RDOztBQU5EO0VBQ0UsMEJMK2ZvQyxFSzlmckM7O0FBQ0Q7O0VBRUUsMEJBQXFDLEVBQ3RDOztBRitISDtFQUNFLG9CQUFpRDtFQUNqRCxvQkgxRW9FO0VHMkVwRSxpQ0g3SGlELEVHOEhsRDs7QUFPRDs7RUFFRSxjQUFhO0VBQ2Isb0JBQTBDLEVBSzNDO0VBUkQ7Ozs7SUFNSSxpQkFBZ0IsRUFDakI7O0FBV0g7RUFKRSxnQkFBZTtFQUNmLGlCQUFnQixFQUtqQjs7QUFJRDtFQVZFLGdCQUFlO0VBQ2YsaUJBQWdCO0VBV2hCLGtCQUFpQixFQU9sQjtFQVREO0lBS0ksc0JBQXFCO0lBQ3JCLGtCQUFpQjtJQUNqQixtQkFBa0IsRUFDbkI7O0FBSUg7RUFDRSxjQUFhO0VBQ2Isb0JIekhvRSxFRzBIckU7O0FBQ0Q7O0VBRUUscUJIL0htQyxFR2dJcEM7O0FBQ0Q7RUFDRSxrQkFBaUIsRUFDbEI7O0FBQ0Q7RUFDRSxlQUFjLEVBQ2Y7O0FHeExDO0VBRUUsYUFBWTtFQUNaLGVBQWMsRUFDZjs7QUFDRDtFQUNFLFlBQVcsRUFDWjs7QUg2TEQ7RUFMRjtJQU9NLFlBQVc7SUFDWCxhQUFtQztJQUNuQyxZQUFXO0lBQ1gsa0JBQWlCO0lJbE5yQixpQkFBZ0I7SUFDaEIsd0JBQXVCO0lBQ3ZCLG9CQUFtQixFSmtOaEI7RUFaTDtJQWNNLG1CSDJuQjZCLEVHMW5COUI7O0FBU0w7O0VBR0UsYUFBWTtFQUNaLGtDSDFOaUQsRUcyTmxEOztBQUNEO0VBQ0UsZUFBYyxFQUVmOztBQUdEO0VBQ0UsbUJIaExvRTtFR2lMcEUsaUJIakxvRTtFR2tMcEUsa0JING1Cb0Q7RUczbUJwRCwrQkhyT2lELEVHNlBsRDtFQTVCRDs7O0lBVU0saUJBQWdCLEVBQ2pCO0VBWEw7OztJQW1CSSxlQUFjO0lBQ2QsZUFBYztJQUNkLHFCSHRNaUM7SUd1TWpDLGVIeFArQyxFRzZQaEQ7SUEzQkg7OztNQXlCTSx1QkFBc0IsRUFDdkI7O0FBT0w7O0VBRUUsb0JBQW1CO0VBQ25CLGdCQUFlO0VBQ2YsZ0NIdFFpRDtFR3VRakQsZUFBYztFQUNkLGtCQUFpQixFQVdsQjtFQWpCRDs7Ozs7O0lBWWUsWUFBVyxFQUFJO0VBWjlCOzs7Ozs7SUFjTSx1QkFBc0IsRUFDdkI7O0FBS0w7RUFDRSxvQkhyT29FO0VHc09wRSxtQkFBa0I7RUFDbEIscUJIek9tQyxFRzBPcEM7O0FSckVEOzs7O0VhMU5FLCtEUnNDeUUsRVFyQzFFOztBQUdEO0VBQ0UsaUJBQWdCO0VBQ2hCLGVBQWM7RUFDZCxlUm16Qm1DO0VRbHpCbkMsMEJSbXpCbUM7RVFsekJuQyxtQlIwRjZCLEVRekY5Qjs7QUFHRDtFQUNFLGlCQUFnQjtFQUNoQixlQUFjO0VBQ2QsWVI2eUJnQztFUTV5QmhDLHVCUjZ5QmdDO0VRNXlCaEMsbUJSbUY2QjtFUWxGN0IsK0NBQTBDLEVBUTNDO0VBZEQ7SUFTSSxXQUFVO0lBQ1YsZ0JBQWU7SUFDZixrQkFBaUI7SUFDakIsaUJBQWdCLEVBQ2pCOztBYndMSDtFYW5MRSxlQUFjO0VBQ2QsZUFBMEM7RUFDMUMsaUJBQXVDO0VBQ3ZDLGdCQUFnQztFQUNoQyxxQlJrQm1DO0VRakJuQyxzQkFBcUI7RUFDckIsc0JBQXFCO0VBQ3JCLGVScEMrQztFUXFDL0MsMEJSeXhCbUM7RVF4eEJuQyx1QlIweEJnQztFUXp4QmhDLG1CUjBENkIsRVEvQzlCO0VBdEJEO0lBZUksV0FBVTtJQUNWLG1CQUFrQjtJQUNsQixlQUFjO0lBQ2Qsc0JBQXFCO0lBQ3JCLDhCQUE2QjtJQUM3QixpQkFBZ0IsRUFDakI7O0FBSUg7RUFDRSxrQlIyd0JpQztFUTF3QmpDLG1CQUFrQixFQUNuQjs7QUMzREQ7RUNIRSxtQkFBa0I7RUFDbEIsa0JBQWlCO0VBQ2pCLG1CQUFtQztFQUNuQyxvQkFBa0MsRURZbkM7RUhSQztJQUVFLGFBQVk7SUFDWixlQUFjLEVBQ2Y7RUFDRDtJQUNFLFlBQVcsRUFDWjtFR1JEO0lBSEY7TUFJSSxhVDJVdUQsRVNuVTFEO0VBTkM7SUFORjtNQU9JLGFUNlV1RCxFU3hVMUQ7RUFIQztJQVRGO01BVUksY1QrVXdELEVTN1UzRDs7QUFRRDtFQ3ZCRSxtQkFBa0I7RUFDbEIsa0JBQWlCO0VBQ2pCLG1CQUFtQztFQUNuQyxvQkFBa0MsRURzQm5DO0VIbEJDO0lBRUUsYUFBWTtJQUNaLGVBQWMsRUFDZjtFQUNEO0lBQ0UsWUFBVyxFQUNaOztBR2tCSDtFQ3ZCRSxtQkFBa0M7RUFDbEMsb0JBQW1DLEVEd0JwQztFSDNCQztJQUVFLGFBQVk7SUFDWixlQUFjLEVBQ2Y7RUFDRDtJQUNFLFlBQVcsRUFDWjs7QUtWRDtFQUNFLG1CQUFrQjtFQUVsQixnQkFBZTtFQUVmLG1CQUE2QztFQUM3QyxvQkFBOEMsRUFDL0M7O0FBU0Q7RUFDRSxZQUFXLEVBQ1o7O0FBTUM7RUFDRSxnQkFBMkMsRUFDNUM7O0FBRkQ7RUFDRSxpQkFBMkMsRUFDNUM7O0FBRkQ7RUFDRSxXQUEyQyxFQUM1Qzs7QUFGRDtFQUNFLGlCQUEyQyxFQUM1Qzs7QUFGRDtFQUNFLGlCQUEyQyxFQUM1Qzs7QUFGRDtFQUNFLFdBQTJDLEVBQzVDOztBQUZEO0VBQ0UsaUJBQTJDLEVBQzVDOztBQUZEO0VBQ0UsaUJBQTJDLEVBQzVDOztBQUZEO0VBQ0UsV0FBMkMsRUFDNUM7O0FBRkQ7RUFDRSxpQkFBMkMsRUFDNUM7O0FBRkQ7RUFDRSxpQkFBMkMsRUFDNUM7O0FBRkQ7RUFDRSxZQUEyQyxFQUM1Qzs7QUFrQkQ7RUFDRSxZQUFXLEVBQ1o7O0FBUEQ7RUFDRSxnQkFBMkMsRUFDNUM7O0FBRkQ7RUFDRSxpQkFBMkMsRUFDNUM7O0FBRkQ7RUFDRSxXQUEyQyxFQUM1Qzs7QUFGRDtFQUNFLGlCQUEyQyxFQUM1Qzs7QUFGRDtFQUNFLGlCQUEyQyxFQUM1Qzs7QUFGRDtFQUNFLFdBQTJDLEVBQzVDOztBQUZEO0VBQ0UsaUJBQTJDLEVBQzVDOztBQUZEO0VBQ0UsaUJBQTJDLEVBQzVDOztBQUZEO0VBQ0UsV0FBMkMsRUFDNUM7O0FBRkQ7RUFDRSxpQkFBMkMsRUFDNUM7O0FBRkQ7RUFDRSxpQkFBMkMsRUFDNUM7O0FBRkQ7RUFDRSxZQUEyQyxFQUM1Qzs7QUFQRDtFQUNFLFdBQVUsRUFDWDs7QUFQRDtFQUNFLGVBQTBDLEVBQzNDOztBQUZEO0VBQ0UsZ0JBQTBDLEVBQzNDOztBQUZEO0VBQ0UsVUFBMEMsRUFDM0M7O0FBRkQ7RUFDRSxnQkFBMEMsRUFDM0M7O0FBRkQ7RUFDRSxnQkFBMEMsRUFDM0M7O0FBRkQ7RUFDRSxVQUEwQyxFQUMzQzs7QUFGRDtFQUNFLGdCQUEwQyxFQUMzQzs7QUFGRDtFQUNFLGdCQUEwQyxFQUMzQzs7QUFGRDtFQUNFLFVBQTBDLEVBQzNDOztBQUZEO0VBQ0UsZ0JBQTBDLEVBQzNDOztBQUZEO0VBQ0UsZ0JBQTBDLEVBQzNDOztBQUZEO0VBQ0UsV0FBMEMsRUFDM0M7O0FBa0JEO0VBQ0UsZ0JBQWlELEVBQ2xEOztBQUZEO0VBQ0Usc0JBQWlELEVBQ2xEOztBQUZEO0VBQ0UsdUJBQWlELEVBQ2xEOztBQUZEO0VBQ0UsaUJBQWlELEVBQ2xEOztBQUZEO0VBQ0UsdUJBQWlELEVBQ2xEOztBQUZEO0VBQ0UsdUJBQWlELEVBQ2xEOztBQUZEO0VBQ0UsaUJBQWlELEVBQ2xEOztBQUZEO0VBQ0UsdUJBQWlELEVBQ2xEOztBQUZEO0VBQ0UsdUJBQWlELEVBQ2xEOztBQUZEO0VBQ0UsaUJBQWlELEVBQ2xEOztBQUZEO0VBQ0UsdUJBQWlELEVBQ2xEOztBQUZEO0VBQ0UsdUJBQWlELEVBQ2xEOztBQUZEO0VBQ0Usa0JBQWlELEVBQ2xEOztBRkVMO0VFckNFO0lBQ0UsWUFBVyxFQUNaO0VBTUM7SUFDRSxnQkFBMkMsRUFDNUM7RUFGRDtJQUNFLGlCQUEyQyxFQUM1QztFQUZEO0lBQ0UsV0FBMkMsRUFDNUM7RUFGRDtJQUNFLGlCQUEyQyxFQUM1QztFQUZEO0lBQ0UsaUJBQTJDLEVBQzVDO0VBRkQ7SUFDRSxXQUEyQyxFQUM1QztFQUZEO0lBQ0UsaUJBQTJDLEVBQzVDO0VBRkQ7SUFDRSxpQkFBMkMsRUFDNUM7RUFGRDtJQUNFLFdBQTJDLEVBQzVDO0VBRkQ7SUFDRSxpQkFBMkMsRUFDNUM7RUFGRDtJQUNFLGlCQUEyQyxFQUM1QztFQUZEO0lBQ0UsWUFBMkMsRUFDNUM7RUFrQkQ7SUFDRSxZQUFXLEVBQ1o7RUFQRDtJQUNFLGdCQUEyQyxFQUM1QztFQUZEO0lBQ0UsaUJBQTJDLEVBQzVDO0VBRkQ7SUFDRSxXQUEyQyxFQUM1QztFQUZEO0lBQ0UsaUJBQTJDLEVBQzVDO0VBRkQ7SUFDRSxpQkFBMkMsRUFDNUM7RUFGRDtJQUNFLFdBQTJDLEVBQzVDO0VBRkQ7SUFDRSxpQkFBMkMsRUFDNUM7RUFGRDtJQUNFLGlCQUEyQyxFQUM1QztFQUZEO0lBQ0UsV0FBMkMsRUFDNUM7RUFGRDtJQUNFLGlCQUEyQyxFQUM1QztFQUZEO0lBQ0UsaUJBQTJDLEVBQzVDO0VBRkQ7SUFDRSxZQUEyQyxFQUM1QztFQVBEO0lBQ0UsV0FBVSxFQUNYO0VBUEQ7SUFDRSxlQUEwQyxFQUMzQztFQUZEO0lBQ0UsZ0JBQTBDLEVBQzNDO0VBRkQ7SUFDRSxVQUEwQyxFQUMzQztFQUZEO0lBQ0UsZ0JBQTBDLEVBQzNDO0VBRkQ7SUFDRSxnQkFBMEMsRUFDM0M7RUFGRDtJQUNFLFVBQTBDLEVBQzNDO0VBRkQ7SUFDRSxnQkFBMEMsRUFDM0M7RUFGRDtJQUNFLGdCQUEwQyxFQUMzQztFQUZEO0lBQ0UsVUFBMEMsRUFDM0M7RUFGRDtJQUNFLGdCQUEwQyxFQUMzQztFQUZEO0lBQ0UsZ0JBQTBDLEVBQzNDO0VBRkQ7SUFDRSxXQUEwQyxFQUMzQztFQWtCRDtJQUNFLGdCQUFpRCxFQUNsRDtFQUZEO0lBQ0Usc0JBQWlELEVBQ2xEO0VBRkQ7SUFDRSx1QkFBaUQsRUFDbEQ7RUFGRDtJQUNFLGlCQUFpRCxFQUNsRDtFQUZEO0lBQ0UsdUJBQWlELEVBQ2xEO0VBRkQ7SUFDRSx1QkFBaUQsRUFDbEQ7RUFGRDtJQUNFLGlCQUFpRCxFQUNsRDtFQUZEO0lBQ0UsdUJBQWlELEVBQ2xEO0VBRkQ7SUFDRSx1QkFBaUQsRUFDbEQ7RUFGRDtJQUNFLGlCQUFpRCxFQUNsRDtFQUZEO0lBQ0UsdUJBQWlELEVBQ2xEO0VBRkQ7SUFDRSx1QkFBaUQsRUFDbEQ7RUFGRDtJQUNFLGtCQUFpRCxFQUNsRDs7QUZXTDtFRTlDRTtJQUNFLFlBQVcsRUFDWjtFQU1DO0lBQ0UsZ0JBQTJDLEVBQzVDO0VBRkQ7SUFDRSxpQkFBMkMsRUFDNUM7RUFGRDtJQUNFLFdBQTJDLEVBQzVDO0VBRkQ7SUFDRSxpQkFBMkMsRUFDNUM7RUFGRDtJQUNFLGlCQUEyQyxFQUM1QztFQUZEO0lBQ0UsV0FBMkMsRUFDNUM7RUFGRDtJQUNFLGlCQUEyQyxFQUM1QztFQUZEO0lBQ0UsaUJBQTJDLEVBQzVDO0VBRkQ7SUFDRSxXQUEyQyxFQUM1QztFQUZEO0lBQ0UsaUJBQTJDLEVBQzVDO0VBRkQ7SUFDRSxpQkFBMkMsRUFDNUM7RUFGRDtJQUNFLFlBQTJDLEVBQzVDO0VBa0JEO0lBQ0UsWUFBVyxFQUNaO0VBUEQ7SUFDRSxnQkFBMkMsRUFDNUM7RUFGRDtJQUNFLGlCQUEyQyxFQUM1QztFQUZEO0lBQ0UsV0FBMkMsRUFDNUM7RUFGRDtJQUNFLGlCQUEyQyxFQUM1QztFQUZEO0lBQ0UsaUJBQTJDLEVBQzVDO0VBRkQ7SUFDRSxXQUEyQyxFQUM1QztFQUZEO0lBQ0UsaUJBQTJDLEVBQzVDO0VBRkQ7SUFDRSxpQkFBMkMsRUFDNUM7RUFGRDtJQUNFLFdBQTJDLEVBQzVDO0VBRkQ7SUFDRSxpQkFBMkMsRUFDNUM7RUFGRDtJQUNFLGlCQUEyQyxFQUM1QztFQUZEO0lBQ0UsWUFBMkMsRUFDNUM7RUFQRDtJQUNFLFdBQVUsRUFDWDtFQVBEO0lBQ0UsZUFBMEMsRUFDM0M7RUFGRDtJQUNFLGdCQUEwQyxFQUMzQztFQUZEO0lBQ0UsVUFBMEMsRUFDM0M7RUFGRDtJQUNFLGdCQUEwQyxFQUMzQztFQUZEO0lBQ0UsZ0JBQTBDLEVBQzNDO0VBRkQ7SUFDRSxVQUEwQyxFQUMzQztFQUZEO0lBQ0UsZ0JBQTBDLEVBQzNDO0VBRkQ7SUFDRSxnQkFBMEMsRUFDM0M7RUFGRDtJQUNFLFVBQTBDLEVBQzNDO0VBRkQ7SUFDRSxnQkFBMEMsRUFDM0M7RUFGRDtJQUNFLGdCQUEwQyxFQUMzQztFQUZEO0lBQ0UsV0FBMEMsRUFDM0M7RUFrQkQ7SUFDRSxnQkFBaUQsRUFDbEQ7RUFGRDtJQUNFLHNCQUFpRCxFQUNsRDtFQUZEO0lBQ0UsdUJBQWlELEVBQ2xEO0VBRkQ7SUFDRSxpQkFBaUQsRUFDbEQ7RUFGRDtJQUNFLHVCQUFpRCxFQUNsRDtFQUZEO0lBQ0UsdUJBQWlELEVBQ2xEO0VBRkQ7SUFDRSxpQkFBaUQsRUFDbEQ7RUFGRDtJQUNFLHVCQUFpRCxFQUNsRDtFQUZEO0lBQ0UsdUJBQWlELEVBQ2xEO0VBRkQ7SUFDRSxpQkFBaUQsRUFDbEQ7RUFGRDtJQUNFLHVCQUFpRCxFQUNsRDtFQUZEO0lBQ0UsdUJBQWlELEVBQ2xEO0VBRkQ7SUFDRSxrQkFBaUQsRUFDbEQ7O0FGb0JMO0VFdkRFO0lBQ0UsWUFBVyxFQUNaO0VBTUM7SUFDRSxnQkFBMkMsRUFDNUM7RUFGRDtJQUNFLGlCQUEyQyxFQUM1QztFQUZEO0lBQ0UsV0FBMkMsRUFDNUM7RUFGRDtJQUNFLGlCQUEyQyxFQUM1QztFQUZEO0lBQ0UsaUJBQTJDLEVBQzVDO0VBRkQ7SUFDRSxXQUEyQyxFQUM1QztFQUZEO0lBQ0UsaUJBQTJDLEVBQzVDO0VBRkQ7SUFDRSxpQkFBMkMsRUFDNUM7RUFGRDtJQUNFLFdBQTJDLEVBQzVDO0VBRkQ7SUFDRSxpQkFBMkMsRUFDNUM7RUFGRDtJQUNFLGlCQUEyQyxFQUM1QztFQUZEO0lBQ0UsWUFBMkMsRUFDNUM7RUFrQkQ7SUFDRSxZQUFXLEVBQ1o7RUFQRDtJQUNFLGdCQUEyQyxFQUM1QztFQUZEO0lBQ0UsaUJBQTJDLEVBQzVDO0VBRkQ7SUFDRSxXQUEyQyxFQUM1QztFQUZEO0lBQ0UsaUJBQTJDLEVBQzVDO0VBRkQ7SUFDRSxpQkFBMkMsRUFDNUM7RUFGRDtJQUNFLFdBQTJDLEVBQzVDO0VBRkQ7SUFDRSxpQkFBMkMsRUFDNUM7RUFGRDtJQUNFLGlCQUEyQyxFQUM1QztFQUZEO0lBQ0UsV0FBMkMsRUFDNUM7RUFGRDtJQUNFLGlCQUEyQyxFQUM1QztFQUZEO0lBQ0UsaUJBQTJDLEVBQzVDO0VBRkQ7SUFDRSxZQUEyQyxFQUM1QztFQVBEO0lBQ0UsV0FBVSxFQUNYO0VBUEQ7SUFDRSxlQUEwQyxFQUMzQztFQUZEO0lBQ0UsZ0JBQTBDLEVBQzNDO0VBRkQ7SUFDRSxVQUEwQyxFQUMzQztFQUZEO0lBQ0UsZ0JBQTBDLEVBQzNDO0VBRkQ7SUFDRSxnQkFBMEMsRUFDM0M7RUFGRDtJQUNFLFVBQTBDLEVBQzNDO0VBRkQ7SUFDRSxnQkFBMEMsRUFDM0M7RUFGRDtJQUNFLGdCQUEwQyxFQUMzQztFQUZEO0lBQ0UsVUFBMEMsRUFDM0M7RUFGRDtJQUNFLGdCQUEwQyxFQUMzQztFQUZEO0lBQ0UsZ0JBQTBDLEVBQzNDO0VBRkQ7SUFDRSxXQUEwQyxFQUMzQztFQWtCRDtJQUNFLGdCQUFpRCxFQUNsRDtFQUZEO0lBQ0Usc0JBQWlELEVBQ2xEO0VBRkQ7SUFDRSx1QkFBaUQsRUFDbEQ7RUFGRDtJQUNFLGlCQUFpRCxFQUNsRDtFQUZEO0lBQ0UsdUJBQWlELEVBQ2xEO0VBRkQ7SUFDRSx1QkFBaUQsRUFDbEQ7RUFGRDtJQUNFLGlCQUFpRCxFQUNsRDtFQUZEO0lBQ0UsdUJBQWlELEVBQ2xEO0VBRkQ7SUFDRSx1QkFBaUQsRUFDbEQ7RUFGRDtJQUNFLGlCQUFpRCxFQUNsRDtFQUZEO0lBQ0UsdUJBQWlELEVBQ2xEO0VBRkQ7SUFDRSx1QkFBaUQsRUFDbEQ7RUFGRDtJQUNFLGtCQUFpRCxFQUNsRDs7QWhCa1dMO0VpQnpaRSw4QlpnSXlDLEVZL0gxQzs7QUFDRDtFQUNFLGlCWndIaUM7RVl2SGpDLG9CWnVIaUM7RVl0SGpDLGVaR2lEO0VZRmpELGlCQUFnQixFQUNqQjs7QUFDRDtFQUNFLGlCQUFnQixFQUNqQjs7QWhCb0VHO0VnQjlERixZQUFXO0VBQ1gsZ0JBQWU7RUFDZixvQlp5Q29FLEVZRHJFO0VBM0NEOzs7Ozs7SUFXUSxhWmlHMkI7SVloRzNCLHFCWjhCNkI7SVk3QjdCLG9CQUFtQjtJQUNuQiwyQloyRzRCLEVZMUc3QjtFQWZQO0lBb0JJLHVCQUFzQjtJQUN0Qiw4QlpvR2dDLEVZbkdqQztFQXRCSDs7Ozs7O0lBOEJRLGNBQWEsRUFDZDtFQS9CUDtJQW9DSSwyQlpxRmdDLEVZcEZqQztFQXJDSDtJQXlDSSx1QlpqQ3dCLEVZa0N6Qjs7QUFNSDs7Ozs7O0VBT1EsYVp1RDJCLEVZdEQ1Qjs7QUFVUDtFQUNFLHVCWnNEa0MsRVlyQ25DO0VBbEJEOzs7Ozs7SUFRUSx1QlorQzRCLEVZOUM3QjtFQVRQOztJQWVNLHlCQUF3QixFQUN6Qjs7QUFTTDtFQUVJLDBCWnNCbUMsRVlyQnBDOztBQVFIO0VBRUksMEJaYW1DLEVZWnBDOztBQVFIO0VBQ0UsaUJBQWdCO0VBQ2hCLFlBQVc7RUFDWCxzQkFBcUIsRUFDdEI7O0FBQ0Q7O0VBSU0saUJBQWdCO0VBQ2hCLFlBQVc7RUFDWCxvQkFBbUIsRUFDcEI7O0FDN0lIOzs7Ozs7Ozs7Ozs7RUFPSSwwQmI4SGlDLEVhN0hsQzs7QUFLSDs7Ozs7RUFNSSwwQkFBeUMsRUFDMUM7O0FBcEJIOzs7Ozs7Ozs7Ozs7RUFPSSwwQmI0ZWtDLEVhM2VuQzs7QUFLSDs7Ozs7RUFNSSwwQkFBeUMsRUFDMUM7O0FBcEJIOzs7Ozs7Ozs7Ozs7RUFPSSwwQmJnZmtDLEVhL2VuQzs7QUFLSDs7Ozs7RUFNSSwwQkFBeUMsRUFDMUM7O0FBcEJIOzs7Ozs7Ozs7Ozs7RUFPSSwwQmJvZmtDLEVhbmZuQzs7QUFLSDs7Ozs7RUFNSSwwQkFBeUMsRUFDMUM7O0FBcEJIOzs7Ozs7Ozs7Ozs7RUFPSSwwQmJ3ZmtDLEVhdmZuQzs7QUFLSDs7Ozs7RUFNSSwwQkFBeUMsRUFDMUM7O0FEaUpMO0VBQ0UsaUJBQWdCO0VBQ2hCLGtCQUFpQixFQTZEbEI7RUEzREM7SUFKRjtNQUtJLFlBQVc7TUFDWCxvQkFBNkM7TUFDN0MsbUJBQWtCO01BQ2xCLDZDQUE0QztNQUM1Qyx1QlpyQ2dDLEVZMkZuQztNQS9ERDtRQWFNLGlCQUFnQixFQWFqQjtRQTFCTDs7Ozs7O1VBc0JZLG9CQUFtQixFQUNwQjtNQXZCWDtRQThCTSxVQUFTLEVBK0JWO1FBN0RMOzs7Ozs7VUF1Q1ksZUFBYyxFQUNmO1FBeENYOzs7Ozs7VUEyQ1ksZ0JBQWUsRUFDaEI7UUE1Q1g7Ozs7VUF3RFksaUJBQWdCLEVBQ2pCOztBakJvSlg7RW1CN1dFLFdBQVU7RUFDVixVQUFTO0VBQ1QsVUFBUztFQUlULGFBQVksRUFDYjs7QW5CaVhEO0VtQjlXRSxlQUFjO0VBQ2QsWUFBVztFQUNYLFdBQVU7RUFDVixvQmQwQ29FO0VjekNwRSxnQkFBa0M7RUFDbEMscUJBQW9CO0VBQ3BCLGVkZCtDO0VjZS9DLFVBQVM7RUFDVCxpQ2RtTXNDLEVjbE12Qzs7QUFFRDtFQUNFLHNCQUFxQjtFQUNyQixnQkFBZTtFQUNmLG1CQUFrQjtFQUNsQixrQkFBaUIsRUFDbEI7O0FuQitURDtFSXpSRSwrQmUzQjhCO0VmNEIzQiw0QmU1QjJCO0VmNkJ0Qix1QmU3QnNCLEVBQy9COztBQUdEOztFQUVFLGdCQUFlO0VBQ2YsbUJBQWtCO0VBQ2xCLG9CQUFtQixFQUNwQjs7QUFFRDtFQUNFLGVBQWMsRUFDZjs7QUFHRDtFQUNFLGVBQWM7RUFDZCxZQUFXLEVBQ1o7O0FBR0Q7O0VBRUUsYUFBWSxFQUNiOztBQUdEOzs7RWJyRUUsMkNBQTBDO0VBQzFDLHFCQUFvQixFYXdFckI7O0FBR0Q7RUFDRSxlQUFjO0VBQ2QsaUJBQXlDO0VBQ3pDLGdCZGxDNEI7RWNtQzVCLHFCZHZCbUM7RWN3Qm5DLGVkMUVpRCxFYzJFbEQ7O0FBeUJEO0VBQ0UsZUFBYztFQUNkLFlBQVc7RUFDWCxhZGlHeUY7RWNoR3pGLGtCZHRCOEI7RWN1QjlCLGdCZG5FNEI7RWNvRTVCLHFCZHhEbUM7RWN5RG5DLGVkM0dpRDtFYzRHakQsdUJkbUVtQztFY2xFbkMsdUJBQXNCO0VBQ3RCLHVCZHdFbUM7RWN2RW5DLG1CZGY2QjtFRHpDN0IseURleURvRDtFZnhENUMsaURld0Q0QztFZjREcEQsaUZlM0Q4RTtFZjREekUsNEVlNUR5RTtFZjZEdEUseUVlN0RzRSxFQWdDL0U7RUN0R0M7SUFDRSxzQmZzSm9DO0llckpwQyxXQUFVO0loQlVaLDJGZ0JiK0Q7SWhCY3ZELG1GZ0JkdUQsRUFLOUQ7RWhCMENEO0lBQ0UsWUMyR2lDO0lEMUdqQyxXQUFVLEVBQ1g7RUFDRDtJQUEwQixZQ3dHUyxFRHhHUTtFQUMzQztJQUFnQyxZQ3VHRyxFRHZHYztFZU1uRDtJQXVCSSxVQUFTO0lBQ1QsOEJBQTZCLEVBQzlCO0VBekJIOztJQW1DSSwwQmRySStDO0ljc0kvQyxXQUFVLEVBQ1g7RUFyQ0g7O0lBeUNJLG9CZDZFd0MsRWM1RXpDOztBQU1IO0VBQ0UsYUFBWSxFQUNiOztBbkJnTUQ7RW1CckxFLHlCQUF3QixFQUN6Qjs7QUFZRDtFQUNFOzs7O0lBS0ksa0Jkb0JxRixFY25CdEY7RUFOSDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztJQVVJLGtCZG1CNkcsRWNsQjlHO0VBWEg7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7SUFlSSxrQmRZNEcsRWNYN0c7O0FBVUw7RUFDRSxvQmRLbUMsRWNKcEM7O0FBT0Q7O0VBRUUsbUJBQWtCO0VBQ2xCLGVBQWM7RUFDZCxpQkFBZ0I7RUFDaEIsb0JBQW1CLEVBU3BCO0VBZEQ7O0lBUUksaUJkdEtrRTtJY3VLbEUsbUJBQWtCO0lBQ2xCLGlCQUFnQjtJQUNoQixvQkFBbUI7SUFDbkIsZ0JBQWUsRUFDaEI7O0FBRUg7Ozs7RUFJRSxtQkFBa0I7RUFDbEIsbUJBQWtCO0VBQ2xCLG1CQUFrQixFQUNuQjs7QUFFRDs7RUFFRSxpQkFBZ0IsRUFDakI7O0FBR0Q7O0VBRUUsbUJBQWtCO0VBQ2xCLHNCQUFxQjtFQUNyQixtQkFBa0I7RUFDbEIsaUJBQWdCO0VBQ2hCLHVCQUFzQjtFQUN0QixvQkFBbUI7RUFDbkIsZ0JBQWUsRUFDaEI7O0FBQ0Q7O0VBRUUsY0FBYTtFQUNiLGtCQUFpQixFQUNsQjs7QUFNRDs7Ozs7O0VBS0ksb0JkL0N3QyxFY2dEekM7O0FBR0g7Ozs7O0VBSUksb0JkdkR3QyxFY3dEekM7O0FBR0g7Ozs7O0VBS00sb0JkaEVzQyxFY2lFdkM7O0FBVUw7RUFFRSxpQkFBeUM7RUFDekMsb0JBQTRDO0VBRTVDLGlCQUFnQjtFQUNoQixpQkFBcUQsRUFPdEQ7RUFiRDs7Ozs7SUFVSSxnQkFBZTtJQUNmLGlCQUFnQixFQUNqQjs7QUN4UEQ7OztFQUNFLGFma0orRztFZWpKL0csa0JmNkI0QjtFZTVCNUIsZ0JmcEJvRDtFZXFCcEQsaUJmaUMyQjtFZWhDM0IsbUJmb0MyQixFZW5DNUI7O0FBRUQ7OztFQUNFLGFmMEkrRztFZXpJL0csa0JmeUkrRyxFZXhJaEg7O0FBRUQ7Ozs7Ozs7RUFFRSxhQUFZLEVBQ2I7O0FEcVBIO0VBRUksYWRwSCtHO0VjcUgvRyxrQmR6TzRCO0VjME81QixnQmQxUm9EO0VjMlJwRCxpQmRyTzJCO0Vjc08zQixtQmRsTzJCLEVjbU81Qjs7QUFQSDtFQVNJLGFkM0grRztFYzRIL0csa0JkNUgrRyxFYzZIaEg7O0FBWEg7O0VBY0ksYUFBWSxFQUNiOztBQWZIO0VBaUJJLGFkbkkrRztFY29JL0csaUJBQXNEO0VBQ3RELGtCZHpQNEI7RWMwUDVCLGdCZDFTb0Q7RWMyU3BELGlCZHJQMkIsRWNzUDVCOztBQzNSRDs7O0VBQ0UsYWZnSjhHO0VlL0k5RyxtQmYwQjRCO0VlekI1QixnQmZyQm9EO0Vlc0JwRCxxQmZnQ2lDO0VlL0JqQyxtQmZtQzJCLEVlbEM1Qjs7QUFFRDs7O0VBQ0UsYWZ3SThHO0Vldkk5RyxrQmZ1SThHLEVldEkvRzs7QUFFRDs7Ozs7OztFQUVFLGFBQVksRUFDYjs7QUQrUUg7RUFFSSxhZGhKOEc7RWNpSjlHLG1CZHRRNEI7RWN1UTVCLGdCZHJUb0Q7RWNzVHBELHFCZGhRaUM7RWNpUWpDLG1CZDdQMkIsRWM4UDVCOztBQVBIO0VBU0ksYWR2SjhHO0Vjd0o5RyxrQmR4SjhHLEVjeUovRzs7QUFYSDs7RUFjSSxhQUFZLEVBQ2I7O0FBZkg7RUFpQkksYWQvSjhHO0VjZ0s5RyxpQkFBc0Q7RUFDdEQsbUJkdFI0QjtFY3VSNUIsZ0JkclVvRDtFY3NVcEQscUJkaFJpQyxFY2lSbEM7O0FBUUg7RUFFRSxtQkFBa0IsRUFNbkI7RUFSRDtJQU1JLHNCQUEwQyxFQUMzQzs7QUFHSDtFQUNFLG1CQUFrQjtFQUNsQixPQUFNO0VBQ04sU0FBUTtFQUNSLFdBQVU7RUFDVixlQUFjO0VBQ2QsWWQ5THlGO0VjK0x6RixhZC9MeUY7RWNnTXpGLGtCZGhNeUY7RWNpTXpGLG1CQUFrQjtFQUNsQixxQkFBb0IsRUFDckI7O0FBQ0Q7OztFQUdFLFlkck1nSDtFY3NNaEgsYWR0TWdIO0VjdU1oSCxrQmR2TWdILEVjd01qSDs7QUFDRDs7O0VBR0UsWWQxTWlIO0VjMk1qSCxhZDNNaUg7RWM0TWpILGtCZDVNaUgsRWM2TWxIOztBQy9aQzs7Ozs7Ozs7OztFQVVFLGVmc2VvQyxFZXJlckM7O0FBRUQ7RUFDRSxzQmZrZW9DO0VEbmJ0Qyx5RGdCOUNzRDtFaEIrQzlDLGlEZ0IvQzhDLEVBTXJEO0VBTEM7SUFDRSxzQkFBd0M7SWhCNEM1QywwRWdCM0NrRjtJaEI0QzFFLGtFZ0I1QzBFLEVBRS9FOztBQUdIO0VBQ0UsZWZ3ZG9DO0VldmRwQyxzQmZ1ZG9DO0VldGRwQywwQmZ1ZG9DLEVldGRyQzs7QUFFRDtFQUNFLGVma2RvQyxFZWpkckM7O0FBL0JEOzs7Ozs7Ozs7O0VBVUUsZWY4ZW9DLEVlN2VyQzs7QUFFRDtFQUNFLHNCZjBlb0M7RUQzYnRDLHlEZ0I5Q3NEO0VoQitDOUMsaURnQi9DOEMsRUFNckQ7RUFMQztJQUNFLHNCQUF3QztJaEI0QzVDLDBFZ0IzQ2tGO0loQjRDMUUsa0VnQjVDMEUsRUFFL0U7O0FBR0g7RUFDRSxlZmdlb0M7RWUvZHBDLHNCZitkb0M7RWU5ZHBDLDBCZitkb0MsRWU5ZHJDOztBQUVEO0VBQ0UsZWYwZG9DLEVlemRyQzs7QUEvQkQ7Ozs7Ozs7Ozs7RUFVRSxlZmtmb0MsRWVqZnJDOztBQUVEO0VBQ0Usc0JmOGVvQztFRC9idEMseURnQjlDc0Q7RWhCK0M5QyxpRGdCL0M4QyxFQU1yRDtFQUxDO0lBQ0Usc0JBQXdDO0loQjRDNUMsMEVnQjNDa0Y7SWhCNEMxRSxrRWdCNUMwRSxFQUUvRTs7QUFHSDtFQUNFLGVmb2VvQztFZW5lcEMsc0JmbWVvQztFZWxlcEMsMEJmbWVvQyxFZWxlckM7O0FBRUQ7RUFDRSxlZjhkb0MsRWU3ZHJDOztBRDhZSDtFQUdJLFVBQWdDLEVBQ2pDOztBQUpIO0VBTUksT0FBTSxFQUNQOztBQVNIO0VBQ0UsZUFBYztFQUNkLGdCQUFlO0VBQ2Ysb0JBQW1CO0VBQ25CLGVBQWdDLEVBQ2pDOztBQWtCQztFQUVFO0lBQ0Usc0JBQXFCO0lBQ3JCLGlCQUFnQjtJQUNoQix1QkFBc0IsRUFDdkI7RUFHRDtJQUNFLHNCQUFxQjtJQUNyQixZQUFXO0lBQ1gsdUJBQXNCLEVBQ3ZCO0VBR0Q7SUFDRSxzQkFBcUIsRUFDdEI7RUFFRDtJQUNFLHNCQUFxQjtJQUNyQix1QkFBc0IsRUFPdkI7SUFMQzs7O01BR0UsWUFBVyxFQUNaO0VBSUg7SUFDRSxZQUFXLEVBQ1o7RUFFRDtJQUNFLGlCQUFnQjtJQUNoQix1QkFBc0IsRUFDdkI7RUFJRDs7SUFFRSxzQkFBcUI7SUFDckIsY0FBYTtJQUNiLGlCQUFnQjtJQUNoQix1QkFBc0IsRUFLdkI7SUFIQzs7TUFDRSxnQkFBZSxFQUNoQjtFQUVIOztJQUVFLG1CQUFrQjtJQUNsQixlQUFjLEVBQ2Y7RUFHRDtJQUNFLE9BQU0sRUFDUDs7QUFlTDs7OztFQVNJLGNBQWE7RUFDYixpQkFBZ0I7RUFDaEIsaUJBQXlDLEVBQzFDOztBQVpIOztFQWlCSSxpQkFBa0UsRUFDbkU7O0FBbEJIO0VKMWhCRSxtQkFBa0M7RUFDbEMsb0JBQW1DLEVJZ2pCbEM7RVJuakJEO0lBRUUsYUFBWTtJQUNaLGVBQWMsRUFDZjtFQUNEO0lBQ0UsWUFBVyxFQUNaOztBUWdqQkQ7RUEzQkY7SUE2Qk0sa0JBQWlCO0lBQ2pCLGlCQUFnQjtJQUNoQixpQkFBeUMsRUFDMUM7O0FBaENMO0VBd0NJLFlBQXNDLEVBQ3ZDOztBQU9DO0VBaERKO0lBa0RRLGtCQUEwQztJQUMxQyxnQmR4aUJnRCxFY3lpQmpEOztBQUlIO0VBeERKO0lBMERRLGlCQUEwQztJQUMxQyxnQmQvaUJnRCxFY2dqQmpEOztBRTdsQlA7RUFDRSxzQkFBcUI7RUFDckIsaUJBQWdCO0VBQ2hCLG9CaEIwSXFDO0VnQnpJckMsbUJBQWtCO0VBQ2xCLHVCQUFzQjtFQUN0QiwyQkFBMEI7RUFDMUIsZ0JBQWU7RUFDZix1QkFBc0I7RUFDdEIsOEJBQTZCO0VBQzdCLG9CQUFtQjtFQzBDbkIsa0JqQm1DOEI7RWlCbEM5QixnQmpCVjRCO0VpQlc1QixxQmpCQ21DO0VpQkFuQyxtQmpCOEM2QjtFRDRHN0IsMEJpQnJNeUI7RWpCc010Qix1QmlCdE1zQjtFakJ1TXJCLHNCaUJ2TXFCO0VqQndNakIsa0JpQnhNaUIsRUFrQzFCO0VBOUNEO0lmRkUsMkNBQTBDO0lBQzFDLHFCQUFvQixFZXFCakI7RUFwQkw7SUEwQkksWWhCcUhpQztJZ0JwSGpDLHNCQUFxQixFQUN0QjtFQTVCSDtJQWdDSSxXQUFVO0lBQ1YsdUJBQXNCO0lqQjJCeEIseURpQjFCc0Q7SWpCMkI5QyxpRGlCM0I4QyxFQUNyRDtFQW5DSDs7SUF3Q0ksb0JoQnVMd0M7SWtCcE8xQyxjRjhDc0I7SUUzQ3RCLDBCQUFrQztJbkI4RGxDLHlCaUJsQjBCO0lqQm1CbEIsaUJpQm5Ca0IsRUFDekI7O0FBS0g7O0VBR0kscUJBQW9CLEVBQ3JCOztBQU9IO0VDN0RFLFlqQmlKbUM7RWlCaEpuQyx1QmpCaUptQztFaUJoSm5DLG1CakJpSm1DLEVnQnBGcEM7RUMzREM7SUFFRSxZakIySWlDO0lpQjFJakMsMEJBQTBDO0lBQ3RDLHNCQUFrQyxFQUN2QztFQUNEO0lBQ0UsWWpCc0lpQztJaUJySWpDLDBCQUEwQztJQUN0QyxzQkFBa0MsRUFDdkM7RUFDRDs7SUFHRSxZakIrSGlDO0lpQjlIakMsMEJBQTBDO0lBQ3RDLHNCQUFrQyxFQVN2QztJQVBDOzs7O01BR0UsWWpCd0grQjtNaUJ2SC9CLDBCQUEwQztNQUN0QyxzQkFBa0MsRUFDdkM7RUFiSDs7SUFrQkUsdUJBQXNCLEVBQ3ZCO0VBSUM7Ozs7SUFHRSx1QmpCeUcrQjtJaUJ4RzNCLG1CakJ5RzJCLEVpQnhHaEM7RUFHSDtJQUNFLFlqQm1HaUM7SWlCbEdqQyx1QmpCaUdpQyxFaUJoR2xDOztBRGVIO0VDaEVFLFlqQnFKbUM7RWlCcEpuQywwQmpCVTJDO0VpQlQzQyxzQmpCcUowRCxFZ0JyRjNEO0VDOURDO0lBRUUsWWpCK0lpQztJaUI5SWpDLDBCQUEwQztJQUN0QyxzQkFBa0MsRUFDdkM7RUFDRDtJQUNFLFlqQjBJaUM7SWlCeklqQywwQkFBMEM7SUFDdEMsc0JBQWtDLEVBQ3ZDO0VBQ0Q7O0lBR0UsWWpCbUlpQztJaUJsSWpDLDBCQUEwQztJQUN0QyxzQkFBa0MsRUFTdkM7SUFQQzs7OztNQUdFLFlqQjRIK0I7TWlCM0gvQiwwQkFBMEM7TUFDdEMsc0JBQWtDLEVBQ3ZDO0VBYkg7O0lBa0JFLHVCQUFzQixFQUN2QjtFQUlDOzs7O0lBR0UsMEJqQjlCdUM7SWlCK0JuQyxzQmpCNkdrRCxFaUI1R3ZEO0VBR0g7SUFDRSxlakJwQ3lDO0lpQnFDekMsdUJqQnFHaUMsRWlCcEdsQzs7QURtQkg7RUNwRUUsWWpCeUptQztFaUJ4Sm5DLDBCakJXNkI7RWlCVjdCLHNCakJ5SjBELEVnQnJGM0Q7RUNsRUM7SUFFRSxZakJtSmlDO0lpQmxKakMsMEJBQTBDO0lBQ3RDLHNCQUFrQyxFQUN2QztFQUNEO0lBQ0UsWWpCOElpQztJaUI3SWpDLDBCQUEwQztJQUN0QyxzQkFBa0MsRUFDdkM7RUFDRDs7SUFHRSxZakJ1SWlDO0lpQnRJakMsMEJBQTBDO0lBQ3RDLHNCQUFrQyxFQVN2QztJQVBDOzs7O01BR0UsWWpCZ0krQjtNaUIvSC9CLDBCQUEwQztNQUN0QyxzQkFBa0MsRUFDdkM7RUFiSDs7SUFrQkUsdUJBQXNCLEVBQ3ZCO0VBSUM7Ozs7SUFHRSwwQmpCN0J5QjtJaUI4QnJCLHNCakJpSGtELEVpQmhIdkQ7RUFHSDtJQUNFLGVqQm5DMkI7SWlCb0MzQix1QmpCeUdpQyxFaUJ4R2xDOztBRHVCSDtFQ3hFRSxZakI2Sm1DO0VpQjVKbkMsMEJqQlk2QjtFaUJYN0Isc0JqQjZKdUQsRWdCckZ4RDtFQ3RFQztJQUVFLFlqQnVKaUM7SWlCdEpqQywwQkFBMEM7SUFDdEMsc0JBQWtDLEVBQ3ZDO0VBQ0Q7SUFDRSxZakJrSmlDO0lpQmpKakMsMEJBQTBDO0lBQ3RDLHNCQUFrQyxFQUN2QztFQUNEOztJQUdFLFlqQjJJaUM7SWlCMUlqQywwQkFBMEM7SUFDdEMsc0JBQWtDLEVBU3ZDO0lBUEM7Ozs7TUFHRSxZakJvSStCO01pQm5JL0IsMEJBQTBDO01BQ3RDLHNCQUFrQyxFQUN2QztFQWJIOztJQWtCRSx1QkFBc0IsRUFDdkI7RUFJQzs7OztJQUdFLDBCakI1QnlCO0lpQjZCckIsc0JqQnFIK0MsRWlCcEhwRDtFQUdIO0lBQ0UsZWpCbEMyQjtJaUJtQzNCLHVCakI2R2lDLEVpQjVHbEM7O0FEMkJIO0VDNUVFLFlqQmlLbUM7RWlCaEtuQywwQmpCYTZCO0VpQlo3QixzQmpCaUswRCxFZ0JyRjNEO0VDMUVDO0lBRUUsWWpCMkppQztJaUIxSmpDLDBCQUEwQztJQUN0QyxzQkFBa0MsRUFDdkM7RUFDRDtJQUNFLFlqQnNKaUM7SWlCckpqQywwQkFBMEM7SUFDdEMsc0JBQWtDLEVBQ3ZDO0VBQ0Q7O0lBR0UsWWpCK0lpQztJaUI5SWpDLDBCQUEwQztJQUN0QyxzQkFBa0MsRUFTdkM7SUFQQzs7OztNQUdFLFlqQndJK0I7TWlCdkkvQiwwQkFBMEM7TUFDdEMsc0JBQWtDLEVBQ3ZDO0VBYkg7O0lBa0JFLHVCQUFzQixFQUN2QjtFQUlDOzs7O0lBR0UsMEJqQjNCeUI7SWlCNEJyQixzQmpCeUhrRCxFaUJ4SHZEO0VBR0g7SUFDRSxlakJqQzJCO0lpQmtDM0IsdUJqQmlIaUMsRWlCaEhsQzs7QUQrQkg7RUNoRkUsWWpCcUttQztFaUJwS25DLDBCakJjNkI7RWlCYjdCLHNCakJxS3lELEVnQnJGMUQ7RUM5RUM7SUFFRSxZakIrSmlDO0lpQjlKakMsMEJBQTBDO0lBQ3RDLHNCQUFrQyxFQUN2QztFQUNEO0lBQ0UsWWpCMEppQztJaUJ6SmpDLDBCQUEwQztJQUN0QyxzQkFBa0MsRUFDdkM7RUFDRDs7SUFHRSxZakJtSmlDO0lpQmxKakMsMEJBQTBDO0lBQ3RDLHNCQUFrQyxFQVN2QztJQVBDOzs7O01BR0UsWWpCNEkrQjtNaUIzSS9CLDBCQUEwQztNQUN0QyxzQkFBa0MsRUFDdkM7RUFiSDs7SUFrQkUsdUJBQXNCLEVBQ3ZCO0VBSUM7Ozs7SUFHRSwwQmpCMUJ5QjtJaUIyQnJCLHNCakI2SGlELEVpQjVIdEQ7RUFHSDtJQUNFLGVqQmhDMkI7SWlCaUMzQix1QmpCcUhpQyxFaUJwSGxDOztBRHdDSDtFQUNFLGVoQi9FMkM7RWdCZ0YzQyxvQkFBbUI7RUFDbkIsaUJBQWdCLEVBOEJqQjtFQWpDRDs7SUFVSSw4QkFBNkI7SWpCckMvQix5QmlCc0MwQjtJakJyQ2xCLGlCaUJxQ2tCLEVBQ3pCO0VBWkg7SUFpQkksMEJBQXlCLEVBQzFCO0VBbEJIO0lBcUJJLGVoQmhGNEM7SWdCaUY1QywyQmhCL0U2QjtJZ0JnRjdCLDhCQUE2QixFQUM5QjtFQXhCSDs7O0lBNkJNLGVoQjlHNkM7SWdCK0c3QyxzQkFBcUIsRUFDdEI7O0FBUUw7RUMxRUUsbUJqQnNDOEI7RWlCckM5QixnQmpCVHNEO0VpQlV0RCxxQmpCNENtQztFaUIzQ25DLG1CakIrQzZCLEVnQjJCOUI7O0FBQ0Q7RUM5RUUsa0JqQnlDOEI7RWlCeEM5QixnQmpCUnNEO0VpQlN0RCxpQmpCNkM2QjtFaUI1QzdCLG1CakJnRDZCLEVnQjhCOUI7O0FBQ0Q7RUNsRkUsaUJqQjRDNkI7RWlCM0M3QixnQmpCUnNEO0VpQlN0RCxpQmpCNkM2QjtFaUI1QzdCLG1CakJnRDZCLEVnQmlDOUI7O0FBTUQ7RUFDRSxlQUFjO0VBQ2QsWUFBVyxFQUNaOztBQUdEO0VBQ0UsZ0JBQWUsRUFDaEI7O0FBR0Q7OztFQUlJLFlBQVcsRUFDWjs7QUc3Skg7RUFDRSxXQUFVO0VwQitLVix5Q29COUt1QztFcEIrS2xDLG9Db0IvS2tDO0VwQmdML0IsaUNvQmhMK0IsRUFJeEM7RUFORDtJQUlJLFdBQVUsRUFDWDs7QUFHSDtFQUNFLGNBQWEsRUFLZDtFQU5EO0lBR2MsZUFBYyxFQUFJOztBQUtoQztFQUFvQixtQkFBa0IsRUFBSTs7QUFFMUM7RUFBb0IseUJBQXdCLEVBQUk7O0FBRWhEO0VBQ0UsbUJBQWtCO0VBQ2xCLFVBQVM7RUFDVCxpQkFBZ0I7RXBCOEpoQixnRG9CN0orQztFcEI4SnZDLHdDb0I5SnVDO0VwQnFLL0MsbUNvQnBLaUM7RXBCcUt6QiwyQm9Cckt5QjtFcEJ3S2pDLHlDb0J2S3dDO0VwQndLaEMsaUNvQnhLZ0MsRUFDekM7O0FDOUJEO0VBQ0Usc0JBQXFCO0VBQ3JCLFNBQVE7RUFDUixVQUFTO0VBQ1QsaUJBQWdCO0VBQ2hCLHVCQUFzQjtFQUN0Qix1QkFBc0M7RUFDdEMseUJBQXdDO0VBQ3hDLG9DQUFpRDtFQUNqRCxtQ0FBaUQsRUFDbEQ7O0FBR0Q7O0VBRUUsbUJBQWtCLEVBQ25COztBQUdEO0VBQ0UsV0FBVSxFQUNYOztBQUdEO0VBQ0UsbUJBQWtCO0VBQ2xCLFVBQVM7RUFDVCxRQUFPO0VBQ1AsY3BCbVA2QjtFb0JsUDdCLGNBQWE7RUFDYixZQUFXO0VBQ1gsaUJBQWdCO0VBQ2hCLGVBQWM7RUFDZCxnQkFBZTtFQUNmLGlCQUFnQjtFQUNoQixnQnBCVTRCO0VvQlQ1QixpQkFBZ0I7RUFDaEIsdUJwQm9NbUM7RW9Cbk1uQyx1QnBCdU1tQztFb0J0TW5DLHNDcEJvTThDO0VvQm5NOUMsbUJwQitENkI7RUR6QzdCLG9EcUJyQitDO0VyQnNCdkMsNENxQnRCdUM7RUFDL0MsNkJBQTRCLEVBeUI3QjtFQTNDRDtJQXdCSSxTQUFRO0lBQ1IsV0FBVSxFQUNYO0VBMUJIO0lDekJFLFlBQVc7SUFDWCxjQUEyQztJQUMzQyxpQkFBZ0I7SUFDaEIsMEJyQjZPc0MsRW9CeExyQztFQS9CSDtJQW1DSSxlQUFjO0lBQ2Qsa0JBQWlCO0lBQ2pCLFlBQVc7SUFDWCxvQkFBbUI7SUFDbkIscUJwQk5pQztJb0JPakMsZXBCMUQ2QztJb0IyRDdDLG9CQUFtQixFQUNwQjs7QUFJSDtFQUdJLHNCQUFxQjtFQUNyQixlcEIwS21EO0VvQnpLbkQsMEJwQjJLb0MsRW9CMUtyQzs7QUFJSDtFQUlJLFlwQndCNEI7RW9CdkI1QixzQkFBcUI7RUFDckIsV0FBVTtFQUNWLDBCcEI1RXlDLEVvQjZFMUM7O0FBT0g7RUFJSSxlcEIzRitDLEVvQjRGaEQ7O0FBTEg7RUFVSSxzQkFBcUI7RUFDckIsOEJBQTZCO0VBQzdCLHVCQUFzQjtFRTNHeEIsb0VBQW1FO0VGNkdqRSxvQnBCb0h3QyxFb0JuSHpDOztBQUlIO0VBR0ksZUFBYyxFQUNmOztBQUpIO0VBUUksV0FBVSxFQUNYOztBQU9IO0VBQ0UsV0FBVTtFQUNWLFNBQVEsRUFDVDs7QUFPRDtFQUNFLFFBQU87RUFDUCxZQUFXLEVBQ1o7O0FBR0Q7RUFDRSxlQUFjO0VBQ2Qsa0JBQWlCO0VBQ2pCLGdCcEJ0R3NEO0VvQnVHdEQscUJwQjdGbUM7RW9COEZuQyxlcEIvSWlEO0VvQmdKakQsb0JBQW1CLEVBQ3BCOztBQUdEO0VBQ0UsZ0JBQWU7RUFDZixRQUFPO0VBQ1AsU0FBUTtFQUNSLFVBQVM7RUFDVCxPQUFNO0VBQ04sYXBCNkc2QixFb0I1RzlCOztBQUdEO0VBQ0UsU0FBUTtFQUNSLFdBQVUsRUFDWDs7QUFPRDs7RUFJSSxjQUFhO0VBQ2IsMEJBQXVDO0VBQ3ZDLDRCQUF5QztFQUN6QyxZQUFXLEVBQ1o7O0FBUkg7O0VBV0ksVUFBUztFQUNULGFBQVk7RUFDWixtQkFBa0IsRUFDbkI7O0FBUUg7RUFDRTtJQUVJLFNBQVE7SUFBRSxXQUFVLEVBQ3JCO0VBSEg7SUFPSSxRQUFPO0lBQUUsWUFBVyxFQUNyQjs7QUdoTkw7O0VBRUUsbUJBQWtCO0VBQ2xCLHNCQUFxQjtFQUNyQix1QkFBc0IsRUFZdkI7RUFoQkQ7O0lBTUksbUJBQWtCO0lBQ2xCLFlBQVcsRUFRWjtJQWZIOzs7OztNQWFNLFdBQVUsRUFDWDs7QUFLTDs7OztFQUtJLGtCQUFpQixFQUNsQjs7QUFJSDtFQUNFLGtCQUFpQixFQWFsQjtFakJuQ0M7SUFFRSxhQUFZO0lBQ1osZUFBYyxFQUNmO0VBQ0Q7SUFDRSxZQUFXLEVBQ1o7RWlCY0g7OztJQU9JLFlBQVcsRUFDWjtFQVJIOzs7SUFZSSxpQkFBZ0IsRUFDakI7O0FBR0g7RUFDRSxpQkFBZ0IsRUFDakI7O0FBR0Q7RUFDRSxlQUFjLEVBSWY7RUFMRDtJQ2hERSw4QkRtRGdDO0lDbEQ3QiwyQkRrRDZCLEVBQy9COztBQUdIOztFQy9DRSw2QkRpRDZCO0VDaEQxQiwwQkRnRDBCLEVBQzlCOztBQUdEO0VBQ0UsWUFBVyxFQUNaOztBQUNEO0VBQ0UsaUJBQWdCLEVBQ2pCOztBQUNEOztFQ25FRSw4QkRzRWdDO0VDckU3QiwyQkRxRTZCLEVBQy9COztBQUVIO0VDakVFLDZCRGtFNkI7RUNqRTFCLDBCRGlFMEIsRUFDOUI7O0FBR0Q7O0VBRUUsV0FBVSxFQUNYOztBQWdCRDtFQUNFLGtCQUFpQjtFQUNqQixtQkFBa0IsRUFDbkI7O0FBQ0Q7RUFDRSxtQkFBa0I7RUFDbEIsb0JBQW1CLEVBQ3BCOztBQUlEO0V4Qi9DRSx5RHdCZ0RvRDtFeEIvQzVDLGlEd0IrQzRDLEVBTXJEO0VBUEQ7SXhCL0NFLHlCd0JvRDBCO0l4Qm5EbEIsaUJ3Qm1Ea0IsRUFDekI7O0FBS0g7RUFDRSxlQUFjLEVBQ2Y7O0FBRUQ7RUFDRSx3QkFBcUQ7RUFDckQsdUJBQXNCLEVBQ3ZCOztBQUVEO0VBQ0Usd0J2QmY2QixFdUJnQjlCOztBQU1EOzs7RUFJSSxlQUFjO0VBQ2QsWUFBVztFQUNYLFlBQVc7RUFDWCxnQkFBZSxFQUNoQjs7QWpCMUlEO0VBRUUsYUFBWTtFQUNaLGVBQWMsRUFDZjs7QUFDRDtFQUNFLFlBQVcsRUFDWjs7QWlCMkhIO0VBY00sWUFBVyxFQUNaOztBQWZMOzs7O0VBc0JJLGlCQUFnQjtFQUNoQixlQUFjLEVBQ2Y7O0FBR0g7RUFFSSxpQkFBZ0IsRUFDakI7O0FBSEg7RUN2S0UsNkJ4QjBHNkI7RXdCekc1Qiw0QnhCeUc0QjtFd0JsRzdCLDhCRHFLaUM7RUNwS2hDLDZCRG9LZ0MsRUFDaEM7O0FBUEg7RUN2S0UsMkJEZ0w4QjtFQy9LN0IsMEJEK0s2QjtFQ3hLOUIsZ0N4QmtHNkI7RXdCakc1QiwrQnhCaUc0QixFdUJ3RTVCOztBQUVIO0VBQ0UsaUJBQWdCLEVBQ2pCOztBQUNEOztFQy9LRSw4QkRrTGlDO0VDakxoQyw2QkRpTGdDLEVBQ2hDOztBQUVIO0VDN0xFLDJCRDhMNEI7RUM3TDNCLDBCRDZMMkIsRUFDN0I7O0FBTUQ7RUFDRSxlQUFjO0VBQ2QsWUFBVztFQUNYLG9CQUFtQjtFQUNuQiwwQkFBeUIsRUFjMUI7RUFsQkQ7O0lBT0ksWUFBVztJQUNYLG9CQUFtQjtJQUNuQixVQUFTLEVBQ1Y7RUFWSDtJQVlJLFlBQVcsRUFDWjtFQWJIO0lBZ0JJLFdBQVUsRUFDWDs7QTlCc29HSDs7OztFOEJqbkdNLG1CQUFrQjtFQUNsQix1QkFBbUI7RUFDbkIscUJBQW9CLEVBQ3JCOztBRTNPTDtFQUNFLG1CQUFrQjtFQUNsQixlQUFjO0VBQ2QsMEJBQXlCLEVBMkIxQjtFQTlCRDtJQU9JLFlBQVc7SUFDWCxnQkFBZTtJQUNmLGlCQUFnQixFQUNqQjtFQVZIO0lBZUksbUJBQWtCO0lBQ2xCLFdBQVU7SUFLVixZQUFXO0lBRVgsWUFBVztJQUNYLGlCQUFnQixFQUtqQjtJQTdCSDtNQTJCTSxXQUFVLEVBQ1g7O0FBdUJMOzs7RUFHRSxvQkFBbUIsRUFLcEI7RUFSRDs7O0lBTUksaUJBQWdCLEVBQ2pCOztBQUdIOztFQUVFLFVBQVM7RUFDVCxvQkFBbUI7RUFDbkIsdUJBQXNCLEVBQ3ZCOztBQUlEO0VBQ0Usa0J6QmtCOEI7RXlCakI5QixnQnpCM0I0QjtFeUI0QjVCLG9CQUFtQjtFQUNuQixlQUFjO0VBQ2QsZXpCcEVpRDtFeUJxRWpELG1CQUFrQjtFQUNsQiwwQnpCcEVpRDtFeUJxRWpELHVCekIrR21DO0V5QjlHbkMsbUJ6QndCNkIsRXlCTDlCO0VBNUJEOzs7SUFhSSxrQnpCWTRCO0l5Qlg1QixnQnpCckNvRDtJeUJzQ3BELG1CekJvQjJCLEV5Qm5CNUI7RUFoQkg7OztJQWtCSSxtQnpCSTRCO0l5Qkg1QixnQnpCM0NvRDtJeUI0Q3BELG1CekJjMkIsRXlCYjVCO0VBckJIOztJQTBCSSxjQUFhLEVBQ2Q7O0FBSUg7Ozs7Ozs7RURwR0UsOEJDMkc4QjtFRDFHM0IsMkJDMEcyQixFQUMvQjs7QUFDRDtFQUNFLGdCQUFlLEVBQ2hCOztBQUNEOzs7Ozs7O0VEeEdFLDZCQytHNkI7RUQ5RzFCLDBCQzhHMEIsRUFDOUI7O0FBQ0Q7RUFDRSxlQUFjLEVBQ2Y7O0FBSUQ7RUFDRSxtQkFBa0I7RUFHbEIsYUFBWTtFQUNaLG9CQUFtQixFQStCcEI7RUFwQ0Q7SUFVSSxtQkFBa0IsRUFVbkI7SUFwQkg7TUFZTSxrQkFBaUIsRUFDbEI7SUFiTDtNQWtCTSxXQUFVLEVBQ1g7RUFuQkw7O0lBMEJNLG1CQUFrQixFQUNuQjtFQTNCTDs7SUFnQ00sV0FBVTtJQUNWLGtCQUFpQixFQUNsQjs7QUNoS0w7RUFDRSxpQkFBZ0I7RUFDaEIsZ0JBQWU7RUFDZixpQkFBZ0IsRUF5RGpCO0VwQnZEQztJQUVFLGFBQVk7SUFDWixlQUFjLEVBQ2Y7RUFDRDtJQUNFLFlBQVcsRUFDWjtFb0JaSDtJQU9JLG1CQUFrQjtJQUNsQixlQUFjLEVBeUJmO0lBakNIO01BV00sbUJBQWtCO01BQ2xCLGVBQWM7TUFDZCxtQjFCcVorQyxFMEIvWWhEO01BbkJMO1FBZ0JRLHNCQUFxQjtRQUNyQiwwQjFCVjJDLEUwQlc1QztJQWxCUDtNQXVCTSxlMUJqQjZDLEUwQjBCOUM7TUFoQ0w7UUEyQlEsZTFCckIyQztRMEJzQjNDLHNCQUFxQjtRQUNyQiw4QkFBNkI7UUFDN0Isb0IxQmlNb0MsRTBCaE1yQztFQS9CUDtJQXdDTSwwQjFCakM2QztJMEJrQzdDLHNCMUJoQ3VDLEUwQmlDeEM7RUExQ0w7SUxIRSxZQUFXO0lBQ1gsY0FBMkM7SUFDM0MsaUJBQWdCO0lBQ2hCLDBCQUpnQyxFS3dEL0I7RUFwREg7SUEwREksZ0JBQWUsRUFDaEI7O0FBUUg7RUFDRSw4QjFCcVc4QyxFMEJsVS9DO0VBcENEO0lBR0ksWUFBVztJQUVYLG9CQUFtQixFQXlCcEI7SUE5Qkg7TUFTTSxrQkFBaUI7TUFDakIscUIxQnRCK0I7TTBCdUIvQiw4QkFBNkI7TUFDN0IsMkJBQTBELEVBSTNEO01BaEJMO1FBY1EsbUMxQndWd0MsRTBCdlZ6QztJQWZQO01BdUJRLGUxQnJGMkM7TTBCc0YzQyx1QjFCdEVvQjtNMEJ1RXBCLHVCMUJtVndDO00wQmxWeEMsaUNBQWdDO01BQ2hDLGdCQUFlLEVBQ2hCOztBQWFQO0VBRUksWUFBVyxFQW1CWjtFQXJCSDtJQU1NLG1CMUJieUIsRTBCYzFCO0VBUEw7SUFTTSxpQkFBZ0IsRUFDakI7RUFWTDtJQWlCUSxZMUJuQndCO0kwQm9CeEIsMEIxQnJIcUMsRTBCc0h0Qzs7QUFPUDtFQUVJLFlBQVcsRUFLWjtFQVBIO0lBSU0sZ0JBQWU7SUFDZixlQUFjLEVBQ2Y7O0FBV0w7RUFDRSxZQUFXLEVBd0JaO0VBekJEO0lBSUksWUFBVyxFQUtaO0lBVEg7TUFNTSxtQkFBa0I7TUFDbEIsbUJBQWtCLEVBQ25CO0VBUkw7SUFZSSxVQUFTO0lBQ1QsV0FBVSxFQUNYO0VBRUQ7SUFoQkY7TUFrQk0sb0JBQW1CO01BQ25CLFVBQVMsRUFJVjtNQXZCTDtRQXFCUSxpQkFBZ0IsRUFDakI7O0FBUVA7RUFDRSxpQkFBZ0IsRUF5QmpCO0VBMUJEO0lBS0ksZ0JBQWU7SUFDZixtQjFCdEYyQixFMEJ1RjVCO0VBUEg7Ozs7O0lBWUksdUIxQmdQa0QsRTBCL09uRDtFQUVEO0lBZkY7TUFpQk0sOEIxQjJPZ0Q7TTBCMU9oRCwyQkFBMEQsRUFDM0Q7SUFuQkw7Ozs7O01BdUJNLDBCMUJ2THNCLEUwQndMdkI7O0FBU0w7RUFFSSxjQUFhLEVBQ2Q7O0FBSEg7RUFLSSxlQUFjLEVBQ2Y7O0FBUUg7RUFFRSxpQkFBZ0I7RUYzT2hCLDJCRTZPNEI7RUY1TzNCLDBCRTRPMkIsRUFDN0I7O0E5QjFLRztFK0I1REYsbUJBQWtCO0VBQ2xCLGlCM0JnV3FDO0UyQi9WckMsb0IzQm9Eb0U7RTJCbkRwRSw4QkFBNkIsRUFROUI7RXJCVEM7SUFFRSxhQUFZO0lBQ1osZUFBYyxFQUNmO0VBQ0Q7SUFDRSxZQUFXLEVBQ1o7RXFCREQ7SS9Cb0RFO00rQm5EQSxtQjNCeUYyQixFMkJ2RjlCOztBckJUQztFQUVFLGFBQVk7RUFDWixlQUFjLEVBQ2Y7O0FBQ0Q7RUFDRSxZQUFXLEVBQ1o7O0FxQmFEO0VBSEY7SUFJSSxZQUFXLEVBRWQ7O0FBYUQ7RUFDRSxvQkFBbUI7RUFDbkIsb0IzQjRUZ0U7RTJCM1RoRSxtQjNCMlRnRTtFMkIxVGhFLGtDQUFpQztFQUNqQyxtREFBOEM7RUFFOUMsa0NBQWlDLEVBK0JsQztFckIxRUM7SUFFRSxhQUFZO0lBQ1osZUFBYyxFQUNmO0VBQ0Q7SUFDRSxZQUFXLEVBQ1o7RXFCNkJIO0lBVUksaUJBQWdCLEVBQ2pCO0VBRUQ7SUFiRjtNQWNJLFlBQVc7TUFDWCxjQUFhO01BQ2IsaUJBQWdCLEVBc0JuQjtNQXRDRDtRQW1CTSwwQkFBeUI7UUFDekIsd0JBQXVCO1FBQ3ZCLGtCQUFpQjtRQUNqQiw2QkFBNEIsRUFDN0I7TUF2Qkw7UUEwQk0sb0JBQW1CLEVBQ3BCO01BSUQ7OztRQUdFLGdCQUFlO1FBQ2YsaUJBQWdCLEVBQ2pCOztBQUlMOztFQUdJLGtCM0JxUm9DLEUyQmhSckM7RUFIQztJQUxKOztNQU1NLGtCQUFpQixFQUVwQjs7QUFRSDs7OztFQUlJLG9CM0JrUThEO0UyQmpROUQsbUIzQmlROEQsRTJCM1AvRDtFQUpDO0lBUEo7Ozs7TUFRTSxnQkFBZTtNQUNmLGVBQWUsRUFFbEI7O0FBV0g7RUFDRSxjM0JvSjZCO0UyQm5KN0Isc0JBQXFCLEVBS3RCO0VBSEM7SUFKRjtNQUtJLGlCQUFnQixFQUVuQjs7QUFHRDs7RUFFRSxnQkFBZTtFQUNmLFNBQVE7RUFDUixRQUFPO0VBQ1AsYzNCMEk2QixFMkJwSTlCO0VBSEM7SUFSRjs7TUFTSSxpQkFBZ0IsRUFFbkI7O0FBQ0Q7RUFDRSxPQUFNO0VBQ04sc0JBQXFCLEVBQ3RCOztBQUNEO0VBQ0UsVUFBUztFQUNULGlCQUFnQjtFQUNoQixzQkFBcUIsRUFDdEI7O0FBS0Q7RUFDRSxZQUFXO0VBQ1gsbUIzQjJNZ0U7RTJCMU1oRSxnQjNCakhzRDtFMkJrSHRELGtCM0JyR29FO0UyQnNHcEUsYTNCcU1xQyxFMkJwTHRDO0VBdEJEO0lBU0ksc0JBQXFCLEVBQ3RCO0VBVkg7SUFhSSxlQUFjLEVBQ2Y7RUFFRDtJQUNFOztNQUVFLG1CM0IwTDRELEUyQnpMN0Q7O0FBVUw7RUFDRSxtQkFBa0I7RUFDbEIsYUFBWTtFQUNaLG1CM0I0S2dFO0UyQjNLaEUsa0JBQWlCO0VDOUxqQixnQkFBb0Q7RUFDcEQsbUJBQXVEO0VEK0x2RCw4QkFBNkI7RUFDN0IsdUJBQXNCO0VBQ3RCLDhCQUE2QjtFQUM3QixtQjNCNUY2QixFMkJrSDlCO0VBL0JEO0lBY0ksV0FBVSxFQUNYO0VBZkg7SUFtQkksZUFBYztJQUNkLFlBQVc7SUFDWCxZQUFXO0lBQ1gsbUJBQWtCLEVBQ25CO0VBdkJIO0lBeUJJLGdCQUFlLEVBQ2hCO0VBRUQ7SUE1QkY7TUE2QkksY0FBYSxFQUVoQjs7QUFRRDtFQUNFLG9CM0J1SWdFLEUyQjFGakU7RUE5Q0Q7SUFJSSxrQkFBb0I7SUFDcEIscUJBQW9CO0lBQ3BCLGtCM0I1S2tFLEUyQjZLbkU7RUFFRDtJQVRGO01BWU0saUJBQWdCO01BQ2hCLFlBQVc7TUFDWCxZQUFXO01BQ1gsY0FBYTtNQUNiLDhCQUE2QjtNQUM3QixVQUFTO01BQ1QsaUJBQWdCLEVBWWpCO01BOUJMOztRQXFCUSwyQkFBMEIsRUFDM0I7TUF0QlA7UUF3QlEsa0IzQjlMOEQsRTJCbU0vRDtRQTdCUDtVQTJCVSx1QkFBc0IsRUFDdkI7RUFNUDtJQWxDRjtNQW1DSSxZQUFXO01BQ1gsVUFBUyxFQVVaO01BOUNEO1FBdUNNLFlBQVcsRUFLWjtRQTVDTDtVQXlDUSxrQjNCZ0d5RTtVMkIvRnpFLHFCM0IrRnlFLEUyQjlGMUU7O0FBV1A7RUFDRSxtQjNCaUZnRTtFMkJoRmhFLG9CM0JnRmdFO0UyQi9FaEUsbUIzQitFZ0U7RTJCOUVoRSxrQ0FBaUM7RUFDakMscUNBQW9DO0U1QjlOcEMsNkY0QitOeUU7RTVCOU5qRSxxRjRCOE5pRTtFQzdSekUsZ0JBQW9EO0VBQ3BELG1CQUF1RCxFRHlUeEQ7RWIySkM7SUFFRTtNQUNFLHNCQUFxQjtNQUNyQixpQkFBZ0I7TUFDaEIsdUJBQXNCLEVBQ3ZCO0lBR0Q7TUFDRSxzQkFBcUI7TUFDckIsWUFBVztNQUNYLHVCQUFzQixFQUN2QjtJQUdEO01BQ0Usc0JBQXFCLEVBQ3RCO0lBRUQ7TUFDRSxzQkFBcUI7TUFDckIsdUJBQXNCLEVBT3ZCO01BTEM7OztRQUdFLFlBQVcsRUFDWjtJQUlIO01BQ0UsWUFBVyxFQUNaO0lBRUQ7TUFDRSxpQkFBZ0I7TUFDaEIsdUJBQXNCLEVBQ3ZCO0lBSUQ7O01BRUUsc0JBQXFCO01BQ3JCLGNBQWE7TUFDYixpQkFBZ0I7TUFDaEIsdUJBQXNCLEVBS3ZCO01BSEM7O1FBQ0UsZ0JBQWUsRUFDaEI7SUFFSDs7TUFFRSxtQkFBa0I7TUFDbEIsZUFBYyxFQUNmO0lBR0Q7TUFDRSxPQUFNLEVBQ1A7RWFoUEQ7SWJtTEE7TWFsTEUsbUJBQWtCLEVBTXJCO01BcEJIO1FBaUJRLGlCQUFnQixFQUNqQjtFQVFMO0lBMUJGO01BMkJJLFlBQVc7TUFDWCxVQUFTO01BQ1QsZUFBYztNQUNkLGdCQUFlO01BQ2YsZUFBYztNQUNkLGtCQUFpQjtNNUJ6UG5CLHlCNEIwUDBCO001QnpQbEIsaUI0QnlQa0IsRUFFM0I7O0FBTUQ7RUFDRSxjQUFhO0VIcFViLDJCR3FVNEI7RUhwVTNCLDBCR29VMkIsRUFDN0I7O0FBRUQ7RUFDRSxpQkFBZ0I7RUh6VWhCLDZCeEIwRzZCO0V3QnpHNUIsNEJ4QnlHNEI7RXdCbEc3Qiw4QkdtVStCO0VIbFU5Qiw2QkdrVThCLEVBQ2hDOztBQU9EO0VDaFZFLGdCQUFvRDtFQUNwRCxtQkFBdUQsRUR3VnhEO0VBVEQ7SUNoVkUsaUJBQW9EO0lBQ3BELG9CQUF1RCxFRG9WdEQ7RUFMSDtJQ2hWRSxpQkFBb0Q7SUFDcEQsb0JBQXVELEVEdVZ0RDs7QUFRSDtFQ2hXRSxpQkFBb0Q7RUFDcEQsb0JBQXVELEVEdVd4RDtFQUxDO0lBSEY7TUFJSSxZQUFXO01BQ1gsa0IzQkk4RDtNMkJIOUQsbUIzQkc4RCxFMkJEakU7O0FBV0Q7RUFDRTtJQUNFLHVCQUFzQixFQUN2QjtFQUNEO0lBQ0Usd0JBQXVCO0lBQ3pCLG9CM0JoQmdFLEUyQnFCL0Q7SUFQRDtNQUtJLGdCQUFlLEVBQ2hCOztBQVNMO0VBQ0UsMEIzQnpCd0M7RTJCMEJ4QyxzQjNCekJpRSxFMkJ5SmxFO0VBbElEO0lBS0ksWTNCekIyQyxFMkIrQjVDO0lBWEg7TUFRTSxlM0JsQjZFO00yQm1CN0UsOEIzQmxCZ0QsRTJCbUJqRDtFQVZMO0lBY0ksWTNCdkNtQyxFMkJ3Q3BDO0VBZkg7SUFtQk0sWTNCdkN5QyxFMkI4QzFDO0lBMUJMO01BdUJRLFkzQjFDdUM7TTJCMkN2Qyw4QjNCMUM4QyxFMkIyQy9DO0VBekJQO0lBK0JRLFkzQmhEdUM7STJCaUR2QywwQjNCaERtRSxFMkJpRHBFO0VBakNQO0lBdUNRLFkzQnREdUM7STJCdUR2Qyw4QjNCdEQ4QyxFMkJ1RC9DO0VBekNQO0lBOENJLG1CM0JsRDJDLEUyQjBENUM7SUF0REg7TUFpRE0sdUIzQnZEeUMsRTJCd0QxQztJQWxETDtNQW9ETSx1QjNCekR5QyxFMkIwRDFDO0VBckRMOztJQTBESSxzQjNCakYrRCxFMkJrRmhFO0VBM0RIO0lBb0VRLDBCM0JwRm1FO0kyQnFGbkUsWTNCdEZ1QyxFMkJ1RnhDO0VBR0g7SUF6RUo7TUE2RVUsWTNCakdxQyxFMkJ1R3RDO01BbkZUO1FBZ0ZZLFkzQm5HbUM7UTJCb0duQyw4QjNCbkcwQyxFMkJvRzNDO0lBbEZYO01Bd0ZZLFkzQnpHbUM7TTJCMEduQywwQjNCekcrRCxFMkIwR2hFO0lBMUZYO01BZ0dZLFkzQi9HbUM7TTJCZ0huQyw4QjNCL0cwQyxFMkJnSDNDO0VBbEdYO0lBOEdJLFkzQmxJMkMsRTJCc0k1QztJQWxISDtNQWdITSxZM0JuSXlDLEUyQm9JMUM7RUFqSEw7SUFxSEksWTNCekkyQyxFMkJxSjVDO0lBaklIO01Bd0hNLFkzQjNJeUMsRTJCNEkxQztJQXpITDs7O01BOEhRLFkzQjdJdUMsRTJCOEl4Qzs7QUFPUDtFQUNFLHVCM0JySThDO0UyQnNJOUMsc0IzQnJJeUUsRTJCc1ExRTtFQW5JRDtJQUtJLGUzQnJJaUUsRTJCMklsRTtJQVhIO01BUU0sWTNCOUgwQztNMkIrSDFDLDhCM0I5SGlELEUyQitIbEQ7RUFWTDtJQWNJLGUzQm5KaUUsRTJCb0psRTtFQWZIO0lBbUJNLGUzQm5KK0QsRTJCMEpoRTtJQTFCTDtNQXVCUSxZM0J0SndDO00yQnVKeEMsOEIzQnRKK0MsRTJCdUpoRDtFQXpCUDtJQStCUSxZM0I5SndDO0kyQitKeEMsMEIzQjVKbUUsRTJCNkpwRTtFQWpDUDtJQXVDUSxZM0JsS3dDO0kyQm1LeEMsOEIzQmxLK0MsRTJCbUtoRDtFQXpDUDtJQStDSSxtQjNCL0o0QyxFMkJ1SzdDO0lBdkRIO01Ba0RNLHVCM0JwSzBDLEUyQnFLM0M7SUFuREw7TUFxRE0sdUIzQnRLMEMsRTJCdUszQztFQXRETDs7SUEyREksc0JBQTRDLEVBQzdDO0VBNURIO0lBb0VRLDBCM0JoTW1FO0kyQmlNbkUsWTNCcE13QyxFMkJxTXpDO0VBR0g7SUF6RUo7TUE2RVUsc0IzQmhOaUUsRTJCaU5sRTtJQTlFVDtNQWdGVSwwQjNCbk5pRSxFMkJvTmxFO0lBakZUO01BbUZVLGUzQm5OMkQsRTJCeU41RDtNQXpGVDtRQXNGWSxZM0JyTm9DO1EyQnNOcEMsOEIzQnJOMkMsRTJCc041QztJQXhGWDtNQThGWSxZM0I3Tm9DO00yQjhOcEMsMEIzQjNOK0QsRTJCNE5oRTtJQWhHWDtNQXNHWSxZM0JqT29DO00yQmtPcEMsOEIzQmpPMkMsRTJCa081QztFQXhHWDtJQStHSSxlM0IvT2lFLEUyQm1QbEU7SUFuSEg7TUFpSE0sWTNCaFAwQyxFMkJpUDNDO0VBbEhMO0lBc0hJLGUzQnRQaUUsRTJCa1FsRTtJQWxJSDtNQXlITSxZM0J4UDBDLEUyQnlQM0M7SUExSEw7OztNQStIUSxZM0IxUHdDLEUyQjJQekM7O0FFN29CUDtFQUNFLGtCN0JxeEJrQztFNkJweEJsQyxvQjdCMERvRTtFNkJ6RHBFLGlCQUFnQjtFQUNoQiwwQjdCb3hCcUM7RTZCbnhCckMsbUI3Qm1HNkIsRTZCbEY5QjtFQXRCRDtJQVFJLHNCQUFxQixFQVN0QjtJQWpCSDtNQWFNLGdCQUEyQztNQUMzQyxlQUFjO01BQ2QsWTdCMndCOEIsRTZCMXdCL0I7RUFoQkw7SUFvQkksZTdCWCtDLEU2QlloRDs7QUN2Qkg7RUFDRSxzQkFBcUI7RUFDckIsZ0JBQWU7RUFDZixlQUErQjtFQUMvQixtQjlCc0c2QixFOEJsQzlCO0VBeEVEO0lBT0ksZ0JBQWUsRUEwQmhCO0lBakNIOztNQVVNLG1CQUFrQjtNQUNsQixZQUFXO01BQ1gsa0I5QmdGMEI7TThCL0UxQixxQjlCK0MrQjtNOEI5Qy9CLHNCQUFxQjtNQUNyQixlOUJEdUM7TThCRXZDLHVCOUJvYnFDO004Qm5ickMsdUI5Qm9icUM7TThCbmJyQyxrQkFBaUIsRUFDbEI7SUFuQkw7O01BdUJRLGVBQWM7TU5YcEIsK0J4QjhGNkI7TXdCN0YxQiw0QnhCNkYwQixFOEJqRnhCO0lBekJQOztNTklFLGdDeEJzRzZCO013QnJHMUIsNkJ4QnFHMEIsRThCM0V4QjtFQS9CUDs7O0lBdUNNLFdBQVU7SUFDVixlOUJQMEM7SThCUTFDLDBCOUI3QjZDO0k4QjhCN0MsbUI5QitacUMsRThCOVp0QztFQTNDTDs7OztJQW1ETSxXQUFVO0lBQ1YsWTlCdVpxQztJOEJ0WnJDLDBCOUJ2Q3VDO0k4QndDdkMsc0I5QnhDdUM7SThCeUN2QyxnQkFBZSxFQUNoQjtFQXhETDs7Ozs7O0lBa0VNLGU5QnZENkM7SThCd0Q3Qyx1QjlCNllxQztJOEI1WXJDLG1COUI2WXFDO0k4QjVZckMsb0I5QitKc0MsRThCOUp2Qzs7QUNyRUQ7O0VBRUUsbUIvQjRGMEI7RStCM0YxQixnQi9CNkNrRDtFK0I1Q2xELHFCL0JrRytCLEUrQmpHaEM7O0FBRUM7O0VQSUosK0J4QitGNkI7RXdCOUYxQiw0QnhCOEYwQixFK0JoR3hCOztBQUdEOztFUFZKLGdDeEJ1RzZCO0V3QnRHMUIsNkJ4QnNHMEIsRStCMUZ4Qjs7QUFoQkg7O0VBRUUsa0IvQitGMEI7RStCOUYxQixnQi9COENrRDtFK0I3Q2xELGlCL0JtR3lCLEUrQmxHMUI7O0FBRUM7O0VQSUosK0J4QmdHNkI7RXdCL0YxQiw0QnhCK0YwQixFK0JqR3hCOztBQUdEOztFUFZKLGdDeEJ3RzZCO0V3QnZHMUIsNkJ4QnVHMEIsRStCM0Z4Qjs7QUNmUDtFQUNFLGdCQUFlO0VBQ2YsZUFBK0I7RUFDL0IsaUJBQWdCO0VBQ2hCLG1CQUFrQixFQTRDbkI7RTFCeENDO0lBRUUsYUFBWTtJQUNaLGVBQWMsRUFDZjtFQUNEO0lBQ0UsWUFBVyxFQUNaO0UwQmZIO0lBT0ksZ0JBQWUsRUFlaEI7SUF0Qkg7O01BVU0sc0JBQXFCO01BQ3JCLGtCQUFpQjtNQUNqQix1QmhDc2JxQztNZ0NyYnJDLHVCaENzYnFDO01nQ3JickMsb0JoQzBjcUMsRWdDemN0QztJQWZMOztNQW1CTSxzQkFBcUI7TUFDckIsMEJoQ1Y2QyxFZ0NXOUM7RUFyQkw7O0lBMkJNLGFBQVksRUFDYjtFQTVCTDs7SUFrQ00sWUFBVyxFQUNaO0VBbkNMOzs7O0lBMkNNLGVoQ2xDNkM7SWdDbUM3Qyx1QmhDc1pxQztJZ0NyWnJDLG9CaENxTHNDLEVnQ3BMdkM7O0FwQzZCRDtFcUMzRUYsZ0JBQWU7RUFDZix3QkFBdUI7RUFDdkIsZUFBYztFQUNkLGtCQUFpQjtFQUNqQixlQUFjO0VBQ2QsWWpDK2pCZ0M7RWlDOWpCaEMsbUJBQWtCO0VBQ2xCLG9CQUFtQjtFQUNuQix5QkFBd0I7RUFDeEIscUJBQW9CLEVBY3JCO0VBeEJEO0lBZ0JJLGNBQWEsRUFDZDtFQUdEO0lBQ0UsbUJBQWtCO0lBQ2xCLFVBQVMsRUFDVjs7QUFJSDtFQUdJLFlqQ3lpQjhCO0VpQ3hpQjlCLHNCQUFxQjtFQUNyQixnQkFBZSxFQUNoQjs7QUFNSDtFQ3hDRSwwQmxDV2lELEVpQytCbEQ7RUN2Q0c7SUFFRSwwQkFBcUMsRUFDdEM7O0FEc0NMO0VDNUNFLDBCbENjMkMsRWlDZ0M1QztFQzNDRztJQUVFLDBCQUFxQyxFQUN0Qzs7QUQwQ0w7RUNoREUsMEJsQ2U2QixFaUNtQzlCO0VDL0NHO0lBRUUsMEJBQXFDLEVBQ3RDOztBRDhDTDtFQ3BERSwwQmxDZ0I2QixFaUNzQzlCO0VDbkRHO0lBRUUsMEJBQXFDLEVBQ3RDOztBRGtETDtFQ3hERSwwQmxDaUI2QixFaUN5QzlCO0VDdkRHO0lBRUUsMEJBQXFDLEVBQ3RDOztBRHNETDtFQzVERSwwQmxDa0I2QixFaUM0QzlCO0VDM0RHO0lBRUUsMEJBQXFDLEVBQ3RDOztBQ0hMO0VBQ0Usc0JBQXFCO0VBQ3JCLGdCQUFlO0VBQ2YsaUJBQWdCO0VBQ2hCLGdCbkMyQ3NEO0VtQzFDdEQsa0JuQ3N3QmdDO0VtQ3J3QmhDLFluQzJ2QmdDO0VtQzF2QmhDLGVuQ3F3QjZCO0VtQ3B3QjdCLHVCQUFzQjtFQUN0QixvQkFBbUI7RUFDbkIsbUJBQWtCO0VBQ2xCLDBCbkNIaUQ7RW1DSWpELG9CbkNpd0JnQyxFbUMxdEJqQztFQW5ERDtJQWdCSSxjQUFhLEVBQ2Q7RUFHRDtJQUNFLG1CQUFrQjtJQUNsQixVQUFTLEVBQ1Y7RUFFRDs7SUFFRSxPQUFNO0lBQ04saUJBQWdCLEVBQ2pCO0VBS0Q7O0lBRUUsZW5DekJ5QztJbUMwQnpDLHVCbkNvdUI4QixFbUNudUIvQjtFQUVEO0lBQ0UsYUFBWSxFQUNiO0VBRUQ7SUFDRSxrQkFBaUIsRUFDbEI7RUFFRDtJQUNFLGlCQUFnQixFQUNqQjs7QUFJSDtFQUdJLFluQzBzQjhCO0VtQ3pzQjlCLHNCQUFxQjtFQUNyQixnQkFBZSxFQUNoQjs7QUM3REg7RUFDRSxrQnBDcWVtQztFb0NwZW5DLHFCcENvZW1DO0VvQ25lbkMsb0JwQ21lbUM7RW9DbGVuQyxlcENtZXNDO0VvQ2xldEMsMEJwQ0tpRCxFb0NzQ2xEO0VBaEREOztJQVNJLGVwQ2dlb0MsRW9DL2RyQztFQVZIO0lBYUksb0JBQXVDO0lBQ3ZDLGdCcEM0ZDBEO0lvQzNkMUQsaUJBQWdCLEVBQ2pCO0VBaEJIO0lBbUJJLDBCQUE0QyxFQUM3QztFQUVEOztJQUVFLG1CcENpRjJCO0lvQ2hGM0IsbUJBQXVDO0lBQ3ZDLG9CQUF1QyxFQUN4QztFQTNCSDtJQThCSSxnQkFBZSxFQUNoQjtFQUVEO0lBakNGO01Ba0NJLGtCQUEwQztNQUMxQyxxQkFBMEMsRUFhN0M7TUExQkM7O1FBaUJJLG1CQUF1QztRQUN2QyxvQkFBdUMsRUFDeEM7TUF6Q0w7O1FBNkNNLGdCcEM4YndELEVvQzdiekQ7O0FDN0NMO0VBQ0UsZUFBYztFQUNkLGFyQ3F1QitCO0VxQ3B1Qi9CLG9CckN3RG9FO0VxQ3ZEcEUscUJyQ3FEbUM7RXFDcERuQyx1QnJDa0IwQjtFcUNqQjFCLHVCckNxdUJnQztFcUNwdUJoQyxtQnJDZ0c2QjtFRDRFN0IsNENzQzNLMEM7RXRDNEtyQyx1Q3NDNUtxQztFdEM2S2xDLG9Dc0M3S2tDLEVBZ0IzQztFQXhCRDs7SW5DR0UsZUFEbUM7SUFFbkMsZ0JBQWU7SUFDZixhQUFZO0ltQ1FWLGtCQUFpQjtJQUNqQixtQkFBa0IsRUFDbkI7RUFmSDtJQXFCSSxhckM2dEI2QjtJcUM1dEI3QixlckNoQjZDLEVxQ2lCOUM7O0FBSUg7OztFQUdFLHNCckNuQjJDLEVxQ29CNUM7O0FDN0JEO0VBQ0UsY3RDMG1CZ0M7RXNDem1CaEMsb0J0Q3VEb0U7RXNDdERwRSw4QkFBNkI7RUFDN0IsbUJ0Q2lHNkIsRXNDMUU5QjtFQTNCRDtJQVFJLGNBQWE7SUFFYixlQUFjLEVBQ2Y7RUFYSDtJQWVJLGtCdEM4bEI4QixFc0M3bEIvQjtFQWhCSDs7SUFxQkksaUJBQWdCLEVBQ2pCO0VBdEJIO0lBeUJJLGdCQUFlLEVBQ2hCOztBQU9IOztFQUVFLG9CQUFvQyxFQVNyQztFQVhEOztJQU1JLG1CQUFrQjtJQUNsQixVQUFTO0lBQ1QsYUFBWTtJQUNaLGVBQWMsRUFDZjs7QUFPSDtFQ3ZERSwwQnZDcWZzQztFdUNwZnRDLHNCdkNxZjZFO0V1Q3BmN0UsZXZDa2ZzQyxFc0MzYnZDO0VDckRDO0lBQ0UsMEJBQXFDLEVBQ3RDO0VBQ0Q7SUFDRSxlQUErQixFQUNoQzs7QURrREg7RUMzREUsMEJ2Q3lmc0M7RXVDeGZ0QyxzQnZDeWYwRTtFdUN4ZjFFLGV2Q3Nmc0MsRXNDM2J2QztFQ3pEQztJQUNFLDBCQUFxQyxFQUN0QztFQUNEO0lBQ0UsZUFBK0IsRUFDaEM7O0FEc0RIO0VDL0RFLDBCdkM2ZnNDO0V1QzVmdEMsc0J2QzZmNkU7RXVDNWY3RSxldkMwZnNDLEVzQzNidkM7RUM3REM7SUFDRSwwQkFBcUMsRUFDdEM7RUFDRDtJQUNFLGVBQStCLEVBQ2hDOztBRDBESDtFQ25FRSwwQnZDaWdCc0M7RXVDaGdCdEMsc0J2Q2lnQjRFO0V1Q2hnQjVFLGV2Qzhmc0MsRXNDM2J2QztFQ2pFQztJQUNFLDBCQUFxQyxFQUN0QztFQUNEO0lBQ0UsZUFBK0IsRUFDaEM7O0FDSEg7RUFDRTtJQUFRLDRCQUEyQjtFQUNuQztJQUFRLHlCQUF3Qjs7QUFJbEM7RUFDRTtJQUFRLDRCQUEyQjtFQUNuQztJQUFRLHlCQUF3Qjs7QUFRbEM7RUFDRSxpQkFBZ0I7RUFDaEIsYXhDc0NvRTtFd0NyQ3BFLG9CeENxQ29FO0V3Q3BDcEUsMEJ4Q2duQm1DO0V3Qy9tQm5DLG1CeEMrRTZCO0VEekM3Qix1RHlDckNrRDtFekNzQzFDLCtDeUN0QzBDLEVBQ25EOztBQUdEO0VBQ0UsWUFBVztFQUNYLFVBQVM7RUFDVCxhQUFZO0VBQ1osZ0J4Q2NzRDtFd0NidEQsa0J4Q3lCb0U7RXdDeEJwRSxZeENzbUJnQztFd0NybUJoQyxtQkFBa0I7RUFDbEIsMEJ4QzFCMkM7RURtRDNDLHVEeUN4QmtEO0V6Q3lCMUMsK0N5Q3pCMEM7RXpDNklsRCxvQ3lDNUlrQztFekM2STdCLCtCeUM3STZCO0V6QzhJMUIsNEJ5QzlJMEIsRUFDbkM7O0FBT0Q7O0VDQ0UsOE1BQXFKO0VBQ3JKLHlNQUFnSjtFQUNoSixzTUFBNkk7RURBN0ksMkJBQTBCLEVBQzNCOztBQU1EOztFekM1Q0UsMkR5QzhDMEQ7RXpDN0NyRCxzRHlDNkNxRDtFekM1Q2xELG1EeUM0Q2tELEVBQzNEOztBQU1EO0VFckVFLDBCMUNlNkIsRXdDd0Q5QjtFRXBFQztJRGdEQSw4TUFBcUo7SUFDckoseU1BQWdKO0lBQ2hKLHNNQUE2SSxFQ2hENUk7O0FGb0VIO0VFekVFLDBCMUNnQjZCLEV3QzJEOUI7RUV4RUM7SURnREEsOE1BQXFKO0lBQ3JKLHlNQUFnSjtJQUNoSixzTUFBNkksRUNoRDVJOztBRndFSDtFRTdFRSwwQjFDaUI2QixFd0M4RDlCO0VFNUVDO0lEZ0RBLDhNQUFxSjtJQUNySix5TUFBZ0o7SUFDaEosc01BQTZJLEVDaEQ1STs7QUY0RUg7RUVqRkUsMEIxQ2tCNkIsRXdDaUU5QjtFRWhGQztJRGdEQSw4TUFBcUo7SUFDckoseU1BQWdKO0lBQ2hKLHNNQUE2SSxFQ2hENUk7O0FDUkg7RUFFRSxpQkFBZ0IsRUFLakI7RUFQRDtJQUtJLGNBQWEsRUFDZDs7QUFHSDs7RUFFRSxRQUFPO0VBQ1AsaUJBQWdCLEVBQ2pCOztBQUVEO0VBQ0UsZUFBYyxFQUNmOztBQUVEO0VBQ0UsZUFBYyxFQU1mO0VBUEQ7SUFLSSxnQkFBZSxFQUNoQjs7QUFHSDs7RUFFRSxtQkFBa0IsRUFDbkI7O0FBRUQ7O0VBRUUsb0JBQW1CLEVBQ3BCOztBQUVEOzs7RUFHRSxvQkFBbUI7RUFDbkIsb0JBQW1CLEVBQ3BCOztBQUVEO0VBQ0UsdUJBQXNCLEVBQ3ZCOztBQUVEO0VBQ0UsdUJBQXNCLEVBQ3ZCOztBQUdEO0VBQ0UsY0FBYTtFQUNiLG1CQUFrQixFQUNuQjs7QUFLRDtFQUNFLGdCQUFlO0VBQ2YsaUJBQWdCLEVBQ2pCOztBQ3hERDtFQUVFLG9CQUFtQjtFQUNuQixnQkFBZSxFQUNoQjs7QUFPRDtFQUNFLG1CQUFrQjtFQUNsQixlQUFjO0VBQ2QsbUJBQWtCO0VBRWxCLG9CQUFtQjtFQUNuQix1QjVDMG9Ca0M7RTRDem9CbEMsdUI1QzJvQmtDLEU0Q2pvQm5DO0VBakJEO0lwQmpCRSw2QnhCMEc2QjtJd0J6RzVCLDRCeEJ5RzRCLEU0QzdFNUI7RUFaSDtJQWNJLGlCQUFnQjtJcEJ2QmxCLGdDeEJrRzZCO0l3QmpHNUIsK0J4QmlHNEIsRTRDekU1Qjs7QUFTSDs7RUFFRSxZNUM2b0JrQyxFNENob0JuQztFQWZEOztJQUtJLFk1QzRvQmdDLEU0QzNvQmpDO0VBTkg7OztJQVdJLHNCQUFxQjtJQUNyQixZNUNtb0JnQztJNENsb0JoQywwQjVDaW5CbUMsRTRDaG5CcEM7O0FBR0g7RUFDRSxZQUFXO0VBQ1gsaUJBQWdCLEVBQ2pCOztBQUVEO0VBS0ksMEI1Q3pEK0M7RTRDMEQvQyxlNUMzRCtDO0U0QzREL0Msb0I1QzZKd0MsRTRDcEp6QztFQWhCSDtJQVdNLGVBQWMsRUFDZjtFQVpMO0lBY00sZTVDbkU2QyxFNENvRTlDOztBQWZMO0VBc0JJLFdBQVU7RUFDVixZNUN3QjRCO0U0Q3ZCNUIsMEI1QzFFeUM7RTRDMkV6QyxzQjVDM0V5QyxFNENzRjFDO0VBcENIOzs7Ozs7O0lBK0JNLGVBQWMsRUFDZjtFQWhDTDtJQWtDTSxlNUM4a0I2RCxFNEM3a0I5RDs7QUNuR0g7RUFDRSxlN0NtZm9DO0U2Q2xmcEMsMEI3Q21mb0MsRTZDaGZyQzs7QUFFRDs7RUFFRSxlN0MyZW9DLEU2Q3pkckM7RUFwQkQ7O0lBS0ksZUFBYyxFQUNmO0VBTkg7OztJQVVJLGU3Q21la0M7STZDbGVsQywwQkFBeUMsRUFDMUM7RUFaSDs7OztJQWdCSSxZQUFXO0lBQ1gsMEI3QzRka0M7STZDM2RsQyxzQjdDMmRrQyxFNkMxZG5DOztBQTFCSDtFQUNFLGU3Q3Vmb0M7RTZDdGZwQywwQjdDdWZvQyxFNkNwZnJDOztBQUVEOztFQUVFLGU3Qytlb0MsRTZDN2RyQztFQXBCRDs7SUFLSSxlQUFjLEVBQ2Y7RUFOSDs7O0lBVUksZTdDdWVrQztJNkN0ZWxDLDBCQUF5QyxFQUMxQztFQVpIOzs7O0lBZ0JJLFlBQVc7SUFDWCwwQjdDZ2VrQztJNkMvZGxDLHNCN0MrZGtDLEU2QzlkbkM7O0FBMUJIO0VBQ0UsZTdDMmZvQztFNkMxZnBDLDBCN0MyZm9DLEU2Q3hmckM7O0FBRUQ7O0VBRUUsZTdDbWZvQyxFNkNqZXJDO0VBcEJEOztJQUtJLGVBQWMsRUFDZjtFQU5IOzs7SUFVSSxlN0MyZWtDO0k2QzFlbEMsMEJBQXlDLEVBQzFDO0VBWkg7Ozs7SUFnQkksWUFBVztJQUNYLDBCN0NvZWtDO0k2Q25lbEMsc0I3Q21la0MsRTZDbGVuQzs7QUExQkg7RUFDRSxlN0MrZm9DO0U2QzlmcEMsMEI3Qytmb0MsRTZDNWZyQzs7QUFFRDs7RUFFRSxlN0N1Zm9DLEU2Q3JlckM7RUFwQkQ7O0lBS0ksZUFBYyxFQUNmO0VBTkg7OztJQVVJLGU3Qytla0M7STZDOWVsQywwQkFBeUMsRUFDMUM7RUFaSDs7OztJQWdCSSxZQUFXO0lBQ1gsMEI3Q3dla0M7STZDdmVsQyxzQjdDdWVrQyxFNkN0ZW5DOztBRDZGTDtFQUNFLGNBQWE7RUFDYixtQkFBa0IsRUFDbkI7O0FBQ0Q7RUFDRSxpQkFBZ0I7RUFDaEIsaUJBQWdCLEVBQ2pCOztBRTNIRDtFQUNFLG9COUMwRG9FO0U4Q3pEcEUsdUI5QzZyQmdDO0U4QzVyQmhDLDhCQUE2QjtFQUM3QixtQjlDbUc2QjtFRHpDN0Isa0QrQ3pENkM7RS9DMERyQywwQytDMURxQyxFQUM5Qzs7QUFHRDtFQUNFLGM5Q3NyQmdDLEU4Q3ByQmpDO0V4Q0xDO0lBRUUsYUFBWTtJQUNaLGVBQWMsRUFDZjtFQUNEO0lBQ0UsWUFBVyxFQUNaOztBd0NDSDtFQUNFLG1COUNpckJxQztFOENockJyQyxxQ0FBb0M7RXRCcEJwQyw2QnNCcUJxRDtFdEJwQnBELDRCc0JvQm9ELEVBS3REO0VBUkQ7SUFNSSxlQUFjLEVBQ2Y7O0FBSUg7RUFDRSxjQUFhO0VBQ2IsaUJBQWdCO0VBQ2hCLGdCQUEwQztFQUMxQyxlQUFjLEVBU2Y7RUFiRDs7Ozs7SUFXSSxlQUFjLEVBQ2Y7O0FBSUg7RUFDRSxtQjlDc3BCcUM7RThDcnBCckMsMEI5QzJwQm1DO0U4QzFwQm5DLDJCOUN5cEJnQztFd0Jqc0JoQyxnQ3NCeUN3RDtFdEJ4Q3ZELCtCc0J3Q3VELEVBQ3pEOztBQVFEOztFQUdJLGlCQUFnQixFQXNCakI7RUF6Qkg7O0lBTU0sb0JBQW1CO0lBQ25CLGlCQUFnQixFQUNqQjtFQVJMOztJQWFRLGNBQWE7SXRCdkVuQiw2QnNCd0UyRDtJdEJ2RTFELDRCc0J1RTBELEVBQ3REO0VBZlA7O0lBcUJRLGlCQUFnQjtJdEJ2RXRCLGdDc0J3RThEO0l0QnZFN0QsK0JzQnVFNkQsRUFDekQ7O0FBdkJQO0V0QjFERSwyQnNCc0ZnQztFdEJyRi9CLDBCc0JxRitCLEVBQzdCOztBQUlMO0VBRUksb0JBQW1CLEVBQ3BCOztBQUVIO0VBQ0Usb0JBQW1CLEVBQ3BCOztBQU9EOzs7RUFJSSxpQkFBZ0IsRUFNakI7RUFWSDs7O0lBT00sbUI5Q21sQjRCO0k4Q2xsQjVCLG9COUNrbEI0QixFOENqbEI3Qjs7QUFUTDs7RXRCekdFLDZCc0J1SHVEO0V0QnRIdEQsNEJzQnNIc0QsRUFrQnREO0VBaENIOzs7O0lBbUJRLDRCQUFrRDtJQUNsRCw2QkFBbUQsRUFVcEQ7SUE5QlA7Ozs7Ozs7O01Bd0JVLDRCQUFrRCxFQUNuRDtJQXpCVDs7Ozs7Ozs7TUE0QlUsNkJBQW1ELEVBQ3BEOztBQTdCVDs7RXRCakdFLGdDc0JxSTBEO0V0QnBJekQsK0JzQm9JeUQsRUFrQnpEO0VBdERIOzs7O0lBeUNRLCtCQUFxRDtJQUNyRCxnQ0FBc0QsRUFVdkQ7SUFwRFA7Ozs7Ozs7O01BOENVLCtCQUFxRCxFQUN0RDtJQS9DVDs7Ozs7Ozs7TUFrRFUsZ0NBQXNELEVBQ3ZEOztBQW5EVDs7OztFQTJESSwyQjlDekJnQyxFOEMwQmpDOztBQTVESDs7RUErREksY0FBYSxFQUNkOztBQWhFSDs7RUFtRUksVUFBUyxFQWlDVjtFQXBHSDs7Ozs7Ozs7Ozs7O0lBMEVVLGVBQWMsRUFDZjtFQTNFVDs7Ozs7Ozs7Ozs7O0lBOEVVLGdCQUFlLEVBQ2hCO0VBL0VUOzs7Ozs7OztJQXVGVSxpQkFBZ0IsRUFDakI7RUF4RlQ7Ozs7Ozs7O0lBZ0dVLGlCQUFnQixFQUNqQjs7QUFqR1Q7RUFzR0ksVUFBUztFQUNULGlCQUFnQixFQUNqQjs7QUFTSDtFQUNFLG9COUM3Sm9FLEU4Q3dMckU7RUE1QkQ7SUFLSSxpQkFBZ0I7SUFDaEIsbUI5Q3RIMkIsRThDMkg1QjtJQVhIO01BU00sZ0JBQWUsRUFDaEI7RUFWTDtJQWNJLGlCQUFnQixFQU1qQjtJQXBCSDs7TUFrQk0sMkI5QzZkNEIsRThDNWQ3QjtFQW5CTDtJQXVCSSxjQUFhLEVBSWQ7SUEzQkg7TUF5Qk0sOEI5Q3NkNEIsRThDcmQ3Qjs7QUFNTDtFQzFQRSxtQi9DNnNCZ0MsRThDamRqQztFQzFQQztJQUNFLGUvQ002QztJK0NMN0MsMEIvQzBzQmlDO0krQ3pzQmpDLG1CL0N3c0I4QixFK0MvckIvQjtJQVBDO01BQ0UsdUIvQ3FzQjRCLEUrQ3BzQjdCO0lBQ0Q7TUFDRSxlL0Ntc0IrQjtNK0Nsc0IvQiwwQi9DSDJDLEUrQ0k1QztFQUdEO0lBQ0UsMEIvQzRyQjRCLEUrQzNyQjdCOztBRDJPTDtFQzdQRSxzQi9DYzJDLEU4Q2lQNUM7RUM3UEM7SUFDRSxZL0M2c0I4QjtJK0M1c0I5QiwwQi9DVXlDO0krQ1R6QyxzQi9DU3lDLEUrQ0ExQztJQVBDO01BQ0UsMEIvQ011QyxFK0NMeEM7SUFDRDtNQUNFLGUvQ0d1QztNK0NGdkMsdUIvQ29zQjRCLEUrQ25zQjdCO0VBR0Q7SUFDRSw2Qi9DSHVDLEUrQ0l4Qzs7QUQ4T0w7RUNoUUUsc0IvQ3NmNkUsRThDcFA5RTtFQ2hRQztJQUNFLGUvQ2lmb0M7SStDaGZwQywwQi9DaWZvQztJK0NoZnBDLHNCL0NpZjJFLEUrQ3hlNUU7SUFQQztNQUNFLDBCL0M4ZXlFLEUrQzdlMUU7SUFDRDtNQUNFLGUvQzBla0M7TStDemVsQywwQi9Dd2VrQyxFK0N2ZW5DO0VBR0Q7SUFDRSw2Qi9DcWV5RSxFK0NwZTFFOztBRGlQTDtFQ25RRSxzQi9DMGYwRSxFOENyUDNFO0VDblFDO0lBQ0UsZS9DcWZvQztJK0NwZnBDLDBCL0NxZm9DO0krQ3BmcEMsc0IvQ3Fmd0UsRStDNWV6RTtJQVBDO01BQ0UsMEIvQ2tmc0UsRStDamZ2RTtJQUNEO01BQ0UsZS9DOGVrQztNK0M3ZWxDLDBCL0M0ZWtDLEUrQzNlbkM7RUFHRDtJQUNFLDZCL0N5ZXNFLEUrQ3hldkU7O0FEb1BMO0VDdFFFLHNCL0M4ZjZFLEU4Q3RQOUU7RUN0UUM7SUFDRSxlL0N5Zm9DO0krQ3hmcEMsMEIvQ3lmb0M7SStDeGZwQyxzQi9DeWYyRSxFK0NoZjVFO0lBUEM7TUFDRSwwQi9Dc2Z5RSxFK0NyZjFFO0lBQ0Q7TUFDRSxlL0NrZmtDO00rQ2pmbEMsMEIvQ2dma0MsRStDL2VuQztFQUdEO0lBQ0UsNkIvQzZleUUsRStDNWUxRTs7QUR1UEw7RUN6UUUsc0IvQ2tnQjRFLEU4Q3ZQN0U7RUN6UUM7SUFDRSxlL0M2Zm9DO0krQzVmcEMsMEIvQzZmb0M7SStDNWZwQyxzQi9DNmYwRSxFK0NwZjNFO0lBUEM7TUFDRSwwQi9DMGZ3RSxFK0N6ZnpFO0lBQ0Q7TUFDRSxlL0NzZmtDO00rQ3JmbEMsMEIvQ29ma0MsRStDbmZuQztFQUdEO0lBQ0UsNkIvQ2lmd0UsRStDaGZ6RTs7QUNqQkw7RUFDRSxtQkFBa0I7RUFDbEIsZUFBYztFQUNkLFVBQVM7RUFDVCxXQUFVO0VBQ1YsaUJBQWdCLEVBZWpCO0VBcEJEOzs7OztJQVlJLG1CQUFrQjtJQUNsQixPQUFNO0lBQ04sUUFBTztJQUNQLFVBQVM7SUFDVCxhQUFZO0lBQ1osWUFBVztJQUNYLFVBQVMsRUFDVjs7QUFJSDtFQUNFLHVCQUFzQixFQUN2Qjs7QUFHRDtFQUNFLG9CQUFtQixFQUNwQjs7QUM1QkQ7RUFDRSxpQkFBZ0I7RUFDaEIsY0FBYTtFQUNiLG9CQUFtQjtFQUNuQiwwQmpEcXZCbUM7RWlEcHZCbkMsMEJqRHF2QmdEO0VpRHB2QmhELG1CakRpRzZCO0VEekM3Qix3RGtEdkRtRDtFbER3RDNDLGdEa0R4RDJDLEVBS3BEO0VBWkQ7SUFTSSxtQkFBa0I7SUFDbEIsa0NBQTZCLEVBQzlCOztBQUlIO0VBQ0UsY0FBYTtFQUNiLG1CakR1RjZCLEVpRHRGOUI7O0FBQ0Q7RUFDRSxhQUFZO0VBQ1osbUJqRG9GNkIsRWlEbkY5Qjs7QUN2QkQ7RUFDRSxhQUFZO0VBQ1osZ0JBQWtDO0VBQ2xDLGtCbERtekJnQztFa0RsekJoQyxlQUFjO0VBQ2QsWWxEa3pCZ0M7RWtEanpCaEMsMEJsRGt6QndDO0VrQjF6QnhDLGFnQ1NtQjtFaENObkIsMEJBQWtDLEVnQ2lCbkM7RUFsQkQ7SUFXSSxZbEQ0eUI4QjtJa0QzeUI5QixzQkFBcUI7SUFDckIsZ0JBQWU7SWhDZmpCLGFnQ2dCcUI7SWhDYnJCLDBCQUFrQyxFZ0NjakM7O0FBU0g7RUFDRSxXQUFVO0VBQ1YsZ0JBQWU7RUFDZix3QkFBdUI7RUFDdkIsVUFBUztFQUNULHlCQUF3QixFQUN6Qjs7QUN6QkQ7RUFDRSxpQkFBZ0IsRUFDakI7O0FBR0Q7RUFDRSxjQUFhO0VBQ2IsaUJBQWdCO0VBQ2hCLGdCQUFlO0VBQ2YsT0FBTTtFQUNOLFNBQVE7RUFDUixVQUFTO0VBQ1QsUUFBTztFQUNQLGNuRG1RNkI7RW1EbFE3QixrQ0FBaUM7RUFJakMsV0FBVSxFQVFYO0VBckJEO0lwRDBIRSxzQ0FBb0M7SUFDaEMsa0NBQWdDO0lBQy9CLGlDQUErQjtJQUM1Qiw4QkFBNEI7SUFrRXBDLG9Eb0Q3SzZDO0lwRDhLMUMsOENvRDlLMEM7SXBEK0t4QywwQ29EL0t3QztJcERnTHJDLG9Db0RoTHFDLEVBQzVDO0VBbkJIO0lwRDBIRSxtQ0FBb0M7SUFDaEMsK0JBQWdDO0lBQy9CLDhCQUErQjtJQUM1QiwyQkFBNEIsRW9EekdZOztBQUVsRDtFQUNFLG1CQUFrQjtFQUNsQixpQkFBZ0IsRUFDakI7O0FBR0Q7RUFDRSxtQkFBa0I7RUFDbEIsWUFBVztFQUNYLGFBQVksRUFDYjs7QUFHRDtFQUNFLG1CQUFrQjtFQUNsQix1Qm5EdWlCaUQ7RW1EdGlCakQsdUJuRDBpQmlEO0VtRHppQmpELHFDbkR1aUIyRDtFbUR0aUIzRCxtQm5EdUQ2QjtFRDFDN0IsaURvRFo0QztFcERhcEMseUNvRGJvQztFQUM1Qyw2QkFBNEI7RUFFNUIsV0FBVSxFQUNYOztBQUdEO0VBQ0UsZ0JBQWU7RUFDZixPQUFNO0VBQ04sU0FBUTtFQUNSLFVBQVM7RUFDVCxRQUFPO0VBQ1AsY25Eb042QjtFbURuTjdCLHVCbkQ0aEJnQyxFbUR4aEJqQztFQVhEO0lqQzVERSxXaUNxRTJCO0lqQ2xFM0IseUJBQWtDLEVpQ2tFRjtFQVRsQztJakM1REUsYWxCaW1COEI7SWtCOWxCOUIsMEJBQWtDLEVpQ21Fa0I7O0FBS3REO0VBQ0UsY25EdWdCZ0M7RW1EdGdCaEMsaUNuRHNoQm1DLEVtRHBoQnBDO0U3Q3JFQztJQUVFLGFBQVk7SUFDWixlQUFjLEVBQ2Y7RUFDRDtJQUNFLFlBQVcsRUFDWjs7QTZDZ0VIO0VBQ0UsaUJBQWdCLEVBQ2pCOztBQUdEO0VBQ0UsVUFBUztFQUNULHFCbkQ1Qm1DLEVtRDZCcEM7O0FBSUQ7RUFDRSxtQkFBa0I7RUFDbEIsY25EaWZnQyxFbURoZmpDOztBQUdEO0VBQ0UsY25ENGVnQztFbUQzZWhDLGtCQUFpQjtFQUNqQiw4Qm5ENmZtQyxFbUQ3ZXBDO0U3QzVHQztJQUVFLGFBQVk7SUFDWixlQUFjLEVBQ2Y7RUFDRDtJQUNFLFlBQVcsRUFDWjtFNkNrRkg7SUFRSSxpQkFBZ0I7SUFDaEIsaUJBQWdCLEVBQ2pCO0VBVkg7SUFhSSxrQkFBaUIsRUFDbEI7RUFkSDtJQWlCSSxlQUFjLEVBQ2Y7O0FBSUg7RUFDRSxtQkFBa0I7RUFDbEIsYUFBWTtFQUNaLFlBQVc7RUFDWCxhQUFZO0VBQ1osaUJBQWdCLEVBQ2pCOztBQUdEO0VBMUZBO0lBNkZJLGFuRG1lK0I7SW1EbGUvQixrQkFBaUIsRUFDbEI7RUF4Rkg7SXBEa0JFLGtEb0R3RStDO0lwRHZFdkMsMENvRHVFdUMsRUFDOUM7RUFHRDtJQUFZLGFuRDRkcUIsRW1ENWREOztBQUdsQztFQUNFO0lBQVksYW5Ec2RxQixFbUR0ZEQ7O0FDOUlsQztFQUNFLG1CQUFrQjtFQUNsQixjcEQrUTZCO0VvRDlRN0IsZUFBYztFQ1JkLDREckQ0Q3NFO0VxRDFDdEUsbUJBQWtCO0VBQ2xCLG9CQUFtQjtFQUNuQix1QkFBc0I7RUFDdEIsaUJBQWdCO0VBQ2hCLHFCckR3RG1DO0VxRHZEbkMsaUJBQWdCO0VBQ2hCLGtCQUFpQjtFQUNqQixzQkFBcUI7RUFDckIsa0JBQWlCO0VBQ2pCLHFCQUFvQjtFQUNwQixvQkFBbUI7RUFDbkIsbUJBQWtCO0VBQ2xCLHFCQUFvQjtFQUNwQixrQkFBaUI7RURIakIsZ0JwRHdDc0Q7RWtCbER0RCxXa0NZa0I7RWxDVGxCLHlCQUFrQyxFa0NnQm5DO0VBaEJEO0lsQ0hFLGFsQitnQjhCO0lrQjVnQjlCLDBCQUFrQyxFa0NXZTtFQVhuRDtJQVlhLGlCQUFpQjtJQUFFLGVBQStCLEVBQUk7RUFabkU7SUFhYSxpQkFBaUI7SUFBRSxlcERrZ0JDLEVvRGxnQmtDO0VBYm5FO0lBY2EsZ0JBQWlCO0lBQUUsZUFBK0IsRUFBSTtFQWRuRTtJQWVhLGtCQUFpQjtJQUFFLGVwRGdnQkMsRW9EaGdCa0M7O0FBSW5FO0VBQ0UsaUJwRG1maUM7RW9EbGZqQyxpQkFBZ0I7RUFDaEIsWXBEbWZnQztFb0RsZmhDLG1CQUFrQjtFQUNsQix1QnBEbWZnQztFb0RsZmhDLG1CcEQ4RTZCLEVvRDdFOUI7O0FBR0Q7RUFDRSxtQkFBa0I7RUFDbEIsU0FBUTtFQUNSLFVBQVM7RUFDVCwwQkFBeUI7RUFDekIsb0JBQW1CLEVBQ3BCOztBQUVEO0VBRUksVUFBUztFQUNULFVBQVM7RUFDVCxrQnBEc2U2QjtFb0RyZTdCLHdCQUF5RDtFQUN6RCx1QnBEZ2U4QixFb0QvZC9COztBQVBIO0VBU0ksVUFBUztFQUNULFdwRGdlNkI7RW9EL2Q3QixvQnBEK2Q2QjtFb0Q5ZDdCLHdCQUF5RDtFQUN6RCx1QnBEeWQ4QixFb0R4ZC9COztBQWRIO0VBZ0JJLFVBQVM7RUFDVCxVcER5ZDZCO0VvRHhkN0Isb0JwRHdkNkI7RW9EdmQ3Qix3QkFBeUQ7RUFDekQsdUJwRGtkOEIsRW9EamQvQjs7QUFyQkg7RUF1QkksU0FBUTtFQUNSLFFBQU87RUFDUCxpQnBEaWQ2QjtFb0RoZDdCLDRCQUE4RTtFQUM5RSx5QnBEMmM4QixFb0QxYy9COztBQTVCSDtFQThCSSxTQUFRO0VBQ1IsU0FBUTtFQUNSLGlCcEQwYzZCO0VvRHpjN0IsNEJwRHljNkI7RW9EeGM3Qix3QnBEb2M4QixFb0RuYy9COztBQW5DSDtFQXFDSSxPQUFNO0VBQ04sVUFBUztFQUNULGtCcERtYzZCO0VvRGxjN0Isd0JwRGtjNkI7RW9EamM3QiwwQnBENmI4QixFb0Q1Yi9COztBQTFDSDtFQTRDSSxPQUFNO0VBQ04sV3BENmI2QjtFb0Q1YjdCLGlCcEQ0YjZCO0VvRDNiN0Isd0JwRDJiNkI7RW9EMWI3QiwwQnBEc2I4QixFb0RyYi9COztBQWpESDtFQW1ESSxPQUFNO0VBQ04sVXBEc2I2QjtFb0RyYjdCLGlCcERxYjZCO0VvRHBiN0Isd0JwRG9iNkI7RW9EbmI3QiwwQnBEK2E4QixFb0Q5YS9COztBRTlGSDtFQUNFLG1CQUFrQjtFQUNsQixPQUFNO0VBQ04sUUFBTztFQUNQLGN0RDZRNkI7RXNENVE3QixjQUFhO0VBQ2IsaUJ0RHNoQnlDO0VzRHJoQnpDLGFBQVk7RURYWiw0RHJENENzRTtFcUQxQ3RFLG1CQUFrQjtFQUNsQixvQkFBbUI7RUFDbkIsdUJBQXNCO0VBQ3RCLGlCQUFnQjtFQUNoQixxQnJEd0RtQztFcUR2RG5DLGlCQUFnQjtFQUNoQixrQkFBaUI7RUFDakIsc0JBQXFCO0VBQ3JCLGtCQUFpQjtFQUNqQixxQkFBb0I7RUFDcEIsb0JBQW1CO0VBQ25CLG1CQUFrQjtFQUNsQixxQkFBb0I7RUFDcEIsa0JBQWlCO0VDQWpCLGdCdERtQzRCO0VzRGpDNUIsdUJ0RDZnQndDO0VzRDVnQnhDLDZCQUE0QjtFQUM1Qix1QnREaWhCd0M7RXNEaGhCeEMscUN0RDhnQmtEO0VzRDdnQmxELG1CdER3RjZCO0VEMUM3QixrRHVEN0M2QztFdkQ4Q3JDLDBDdUQ5Q3FDLEVBTzlDO0VBekJEO0lBcUJjLGtCdERpaEI0QixFc0RqaEJTO0VBckJuRDtJQXNCYyxrQnREZ2hCNEIsRXNEaGhCUztFQXRCbkQ7SUF1QmMsaUJ0RCtnQjRCLEVzRC9nQlE7RUF2QmxEO0lBd0JjLG1CdEQ4Z0I0QixFc0Q5Z0JVOztBQUdwRDtFQUNFLFVBQVM7RUFDVCxrQkFBaUI7RUFDakIsZ0J0RGdCNEI7RXNEZjVCLDBCdERvZ0IyRDtFc0RuZ0IzRCxpQ0FBc0Q7RUFDdEQsMkJBQXdFLEVBQ3pFOztBQUVEO0VBQ0Usa0JBQWlCLEVBQ2xCOztBQU1EO0VBR0ksbUJBQWtCO0VBQ2xCLGVBQWM7RUFDZCxTQUFRO0VBQ1IsVUFBUztFQUNULDBCQUF5QjtFQUN6QixvQkFBbUIsRUFDcEI7O0FBRUg7RUFDRSxtQnREbWY4RCxFc0RsZi9EOztBQUNEO0VBQ0UsbUJ0RDJld0M7RXNEMWV4QyxZQUFXLEVBQ1o7O0FBRUQ7RUFFSSxVQUFTO0VBQ1QsbUJ0RHllNEQ7RXNEeGU1RCx1QkFBc0I7RUFDdEIsMEJ0RDJlNkU7RXNEMWU3RSxzQ3REd2VzRTtFc0R2ZXRFLGN0RHFlNEQsRXNEN2Q3RDtFQWZIO0lBU00sYUFBWTtJQUNaLFlBQVc7SUFDWCxtQnRENGRvQztJc0QzZHBDLHVCQUFzQjtJQUN0Qix1QnREOGNvQyxFc0Q3Y3JDOztBQWRMO0VBaUJJLFNBQVE7RUFDUixZdEQwZDREO0VzRHpkNUQsa0J0RHlkNEQ7RXNEeGQ1RCxxQkFBb0I7RUFDcEIsNEJ0RDJkNkU7RXNEMWQ3RSx3Q3REd2RzRSxFc0RoZHZFO0VBOUJIO0lBd0JNLGFBQVk7SUFDWixVQUFTO0lBQ1QsY3RENmNvQztJc0Q1Y3BDLHFCQUFvQjtJQUNwQix5QnREK2JvQyxFc0Q5YnJDOztBQTdCTDtFQWdDSSxVQUFTO0VBQ1QsbUJ0RDJjNEQ7RXNEMWM1RCxvQkFBbUI7RUFDbkIsNkJ0RDZjNkU7RXNENWM3RSx5Q3REMGNzRTtFc0R6Y3RFLFd0RHVjNEQsRXNEL2I3RDtFQTdDSDtJQXVDTSxhQUFZO0lBQ1osU0FBUTtJQUNSLG1CdEQ4Ym9DO0lzRDdicEMsb0JBQW1CO0lBQ25CLDBCdERnYm9DLEVzRC9hckM7O0FBNUNMO0VBZ0RJLFNBQVE7RUFDUixhdEQyYjREO0VzRDFiNUQsa0J0RDBiNEQ7RXNEemI1RCxzQkFBcUI7RUFDckIsMkJ0RDRiNkU7RXNEM2I3RSx1Q3REeWJzRSxFc0RqYnZFO0VBN0RIO0lBdURNLGFBQVk7SUFDWixXQUFVO0lBQ1Ysc0JBQXFCO0lBQ3JCLHdCdERpYW9DO0lzRGhhcEMsY3RENGFvQyxFc0QzYXJDOztBQzFITDtFQUNFLG1CQUFrQixFQUNuQjs7QUFFRDtFQUNFLG1CQUFrQjtFQUNsQixpQkFBZ0I7RUFDaEIsWUFBVyxFQTBFWjtFQTdFRDtJQU1JLGNBQWE7SUFDYixtQkFBa0I7SXhEd0twQiwwQ3dEdkswQztJeER3S3JDLHFDd0R4S3FDO0l4RHlLbEMsa0N3RHpLa0MsRUFnQ3pDO0lBeENIOztNckRERSxlQURtQztNQUVuQyxnQkFBZTtNQUNmLGFBQVk7TXFEYVIsZUFBYyxFQUNmO0lBR0Q7TUFsQko7UXhEb01FLHVEd0RqTGtEO1F4RGtML0MsaUR3RGxMK0M7UXhEbUw3Qyw2Q3dEbkw2QztReERvTDFDLHVDd0RwTDBDO1F4RDRCbEQsb0N3RDNCdUM7UXhENEJwQyxpQ3dENUJvQztReEQ2Qi9CLDRCd0Q3QitCO1F4RHVJdkMsNEJ3RHRJK0I7UXhEdUk1Qix5QndEdkk0QjtReER3SXZCLG9Cd0R4SXVCLEVBbUI5QjtRQXhDSDtVeERxSUUsMkNBQTBDO1VBQ2xDLG1DQUFrQztVd0Q1R3BDLFFBQU8sRUFDUjtRQTNCUDtVeERxSUUsNENBQTBDO1VBQ2xDLG9DQUFrQztVd0R2R3BDLFFBQU8sRUFDUjtRQWhDUDtVeERxSUUsd0NBQTBDO1VBQ2xDLGdDQUFrQztVd0RqR3BDLFFBQU8sRUFDUjtFQXRDUDs7O0lBNkNJLGVBQWMsRUFDZjtFQTlDSDtJQWlESSxRQUFPLEVBQ1I7RUFsREg7O0lBc0RJLG1CQUFrQjtJQUNsQixPQUFNO0lBQ04sWUFBVyxFQUNaO0VBekRIO0lBNERJLFdBQVUsRUFDWDtFQTdESDtJQStESSxZQUFXLEVBQ1o7RUFoRUg7O0lBbUVJLFFBQU8sRUFDUjtFQXBFSDtJQXVFSSxZQUFXLEVBQ1o7RUF4RUg7SUEwRUksV0FBVSxFQUNYOztBQU9IO0VBQ0UsbUJBQWtCO0VBQ2xCLE9BQU07RUFDTixRQUFPO0VBQ1AsVUFBUztFQUNULFd2RDRzQitDO0VrQjF5Qi9DLGFsQjJ5QjhDO0VrQnh5QjlDLDBCQUFrQztFcUM2RmxDLGdCdkQ0c0JnRDtFdUQzc0JoRCxZdkR3c0JnRDtFdUR2c0JoRCxtQkFBa0I7RUFDbEIsMEN2RG9zQm9FO0V1RG5zQnBFLG1DQUFrQyxFQStEbkM7RUExRUQ7SWRuRkUsbUdBQXFHO0lBQ3JHLDhGQUFnRztJQUNoRywrRkFBaUc7SUFDakcsNEJBQTJCO0lBQzNCLHVIQUF3SixFY2lHdko7RUFsQkg7SUFvQkksV0FBVTtJQUNWLFNBQVE7SWR4R1YsbUdBQXFHO0lBQ3JHLDhGQUFnRztJQUNoRywrRkFBaUc7SUFDakcsNEJBQTJCO0lBQzNCLHVIQUF3SixFY3NHdko7RUF2Qkg7SUE0QkksV0FBVTtJQUNWLFl2RG1yQjhDO0l1RGxyQjlDLHNCQUFxQjtJckN2SHZCLGFxQ3dIcUI7SXJDckhyQiwwQkFBa0MsRXFDc0hqQztFQWhDSDs7OztJQXVDSSxtQkFBa0I7SUFDbEIsU0FBUTtJQUNSLGtCQUFpQjtJQUNqQixXQUFVO0lBQ1Ysc0JBQXFCLEVBQ3RCO0VBNUNIOztJQStDSSxVQUFTO0lBQ1QsbUJBQWtCLEVBQ25CO0VBakRIOztJQW9ESSxXQUFVO0lBQ1Ysb0JBQW1CLEVBQ3BCO0VBdERIOztJQXlESSxZQUFZO0lBQ1osYUFBWTtJQUNaLGVBQWM7SUFDZCxtQkFBa0IsRUFDbkI7RUE3REg7SUFrRU0saUJBQWdCLEVBQ2pCO0VBbkVMO0lBdUVNLGlCQUFnQixFQUNqQjs7QUFTTDtFQUNFLG1CQUFrQjtFQUNsQixhQUFZO0VBQ1osVUFBUztFQUNULFlBQVc7RUFDWCxXQUFVO0VBQ1Ysa0JBQWlCO0VBQ2pCLGdCQUFlO0VBQ2YsaUJBQWdCO0VBQ2hCLG1CQUFrQixFQThCbkI7RUF2Q0Q7SUFZSSxzQkFBcUI7SUFDckIsWUFBWTtJQUNaLGFBQVk7SUFDWixZQUFXO0lBQ1gsb0JBQW1CO0lBQ25CLHVCdkRvbkI4QztJdURubkI5QyxvQkFBbUI7SUFDbkIsZ0JBQWU7SUFXZiwwQkFBeUI7SUFDekIsbUNBQStCLEVBQ2hDO0VBaENIO0lBa0NJLFVBQVM7SUFDVCxZQUFZO0lBQ1osYUFBWTtJQUNaLHVCdkQrbEI4QyxFdUQ5bEIvQzs7QUFNSDtFQUNFLG1CQUFrQjtFQUNsQixVQUFTO0VBQ1QsV0FBVTtFQUNWLGFBQVk7RUFDWixZQUFXO0VBQ1gsa0JBQWlCO0VBQ2pCLHFCQUFvQjtFQUNwQixZdkRtbEJnRDtFdURsbEJoRCxtQkFBa0I7RUFDbEIsMEN2RHVrQm9FLEV1RG5rQnJFO0VBZEQ7SUFZSSxrQkFBaUIsRUFDbEI7O0FBS0g7RUFHRTs7OztJQUtJLFlBQTBDO0lBQzFDLGFBQTJDO0lBQzNDLGtCQUE4QztJQUM5QyxnQkFBOEMsRUFDL0M7RUFUSDs7SUFZSSxtQkFBK0MsRUFDaEQ7RUFiSDs7SUFnQkksb0JBQWdELEVBQ2pEO0VBdENMO0lBMkNJLFVBQVM7SUFDVCxXQUFVO0lBQ1YscUJBQW9CLEVBQ3JCO0VBMUZIO0lBOEZJLGFBQVksRUFDYjs7QWpEL1BEO0VBRUUsYUFBWTtFQUNaLGVBQWMsRUFDZjs7QUFDRDtFQUNFLFlBQVcsRUFDWjs7QWtEVEg7RUNSRSxlQUFjO0VBQ2Qsa0JBQWlCO0VBQ2pCLG1CQUFrQixFRFFuQjs7QUFDRDtFQUNFLHdCQUF1QixFQUN4Qjs7QUFDRDtFQUNFLHVCQUFzQixFQUN2Qjs7QUFPRDtFQUNFLHlCQUF3QixFQUN6Qjs7QUFDRDtFQUNFLDBCQUF5QixFQUMxQjs7QUFDRDtFQUNFLG1CQUFrQixFQUNuQjs7QUFDRDtFRXpCRSxZQUFXO0VBQ1gsbUJBQWtCO0VBQ2xCLGtCQUFpQjtFQUNqQiw4QkFBNkI7RUFDN0IsVUFBUyxFRnVCVjs7QUFPRDtFQUNFLHlCQUF3QixFQUN6Qjs7QUFNRDtFQUNFLGdCQUFlLEVBQ2hCOztBR2pDQztFQUNFLG9CQUFtQjs7QUNMckI7RUFDRSx5QkFBd0IsRUFDekI7O0FBRkQ7RUFDRSx5QkFBd0IsRUFDekI7O0FBRkQ7RUFDRSx5QkFBd0IsRUFDekI7O0FBRkQ7RUFDRSx5QkFBd0IsRUFDekI7O0FEZ0JIOzs7Ozs7Ozs7Ozs7RUFZRSx5QkFBd0IsRUFDekI7O0FBRUQ7RUNqQ0U7SUFWRSwwQkFBeUIsRUFDMUI7RUFDRDtJQUFtQiwwQkFBeUIsRUFBSTtFQUNoRDtJQUFtQiw4QkFBNkIsRUFBSTtFQUNwRDs7SUFDbUIsK0JBQThCLEVBQUk7O0FEMENyRDtFQURGO0lBRUksMEJBQXlCLEVBRTVCOztBQUVDO0VBREY7SUFFSSwyQkFBMEIsRUFFN0I7O0FBRUM7RUFERjtJQUVJLGlDQUFnQyxFQUVuQzs7QUFFRDtFQ3BERTtJQVZFLDBCQUF5QixFQUMxQjtFQUNEO0lBQW1CLDBCQUF5QixFQUFJO0VBQ2hEO0lBQW1CLDhCQUE2QixFQUFJO0VBQ3BEOztJQUNtQiwrQkFBOEIsRUFBSTs7QUQ2RHJEO0VBREY7SUFFSSwwQkFBeUIsRUFFNUI7O0FBRUM7RUFERjtJQUVJLDJCQUEwQixFQUU3Qjs7QUFFQztFQURGO0lBRUksaUNBQWdDLEVBRW5DOztBQUVEO0VDdkVFO0lBVkUsMEJBQXlCLEVBQzFCO0VBQ0Q7SUFBbUIsMEJBQXlCLEVBQUk7RUFDaEQ7SUFBbUIsOEJBQTZCLEVBQUk7RUFDcEQ7O0lBQ21CLCtCQUE4QixFQUFJOztBRGdGckQ7RUFERjtJQUVJLDBCQUF5QixFQUU1Qjs7QUFFQztFQURGO0lBRUksMkJBQTBCLEVBRTdCOztBQUVDO0VBREY7SUFFSSxpQ0FBZ0MsRUFFbkM7O0FBRUQ7RUMxRkU7SUFWRSwwQkFBeUIsRUFDMUI7RUFDRDtJQUFtQiwwQkFBeUIsRUFBSTtFQUNoRDtJQUFtQiw4QkFBNkIsRUFBSTtFQUNwRDs7SUFDbUIsK0JBQThCLEVBQUk7O0FEbUdyRDtFQURGO0lBRUksMEJBQXlCLEVBRTVCOztBQUVDO0VBREY7SUFFSSwyQkFBMEIsRUFFN0I7O0FBRUM7RUFERjtJQUVJLGlDQUFnQyxFQUVuQzs7QUFFRDtFQzdHRTtJQUNFLHlCQUF3QixFQUN6Qjs7QUQrR0g7RUNqSEU7SUFDRSx5QkFBd0IsRUFDekI7O0FEbUhIO0VDckhFO0lBQ0UseUJBQXdCLEVBQ3pCOztBRHVISDtFQ3pIRTtJQUNFLHlCQUF3QixFQUN6Qjs7QUFGRDtFQUNFLHlCQUF3QixFQUN6Qjs7QURvSUg7RUN0SUU7SUFWRSwwQkFBeUIsRUFDMUI7RUFDRDtJQUFtQiwwQkFBeUIsRUFBSTtFQUNoRDtJQUFtQiw4QkFBNkIsRUFBSTtFQUNwRDs7SUFDbUIsK0JBQThCLEVBQUk7O0FEOEl2RDtFQUNFLHlCQUF3QixFQUt6QjtFQUhDO0lBSEY7TUFJSSwwQkFBeUIsRUFFNUI7O0FBQ0Q7RUFDRSx5QkFBd0IsRUFLekI7RUFIQztJQUhGO01BSUksMkJBQTBCLEVBRTdCOztBQUNEO0VBQ0UseUJBQXdCLEVBS3pCO0VBSEM7SUFIRjtNQUlJLGlDQUFnQyxFQUVuQzs7QUFFRDtFQy9KRTtJQUNFLHlCQUF3QixFQUN6Qjs7QUNuQkg7OztHQUdHO0FDQUg7Ozs7O0VBS0UsbUNBQWtDO0VBQ2xDLG9DQUFtQztFQUNuQyxzQkFBcUI7RUFDckIsbUJBQWtCO0VBQ2xCLHFCQUFvQjtFQUNwQixxQkFBb0I7RUFDcEIsZUFBYyxFQUNmOztBQ1hEO0VBQ0UscUJBQW9CO0VBQ3BCLG9CQUFzQjtFQUN0Qix5QkFBd0IsRUFDekI7O0FBRUQ7RUFDRSxpQkFBZ0IsRUFDakI7O0FBRUQ7RUFDRSxrQkFBaUIsRUFDbEI7O0FBR0M7RUFDRSxlQUFtQixFQUNwQjs7QUFGRDtFQUNFLGVBQW1CLEVBQ3BCOztBQUZEO0VBQ0UsZUFBbUIsRUFDcEI7O0FBRkQ7RUFDRSxlQUFtQixFQUNwQjs7QUFGRDtFQUNFLGVBQW1CLEVBQ3BCOztBQUZEO0VBQ0UsZUFBbUIsRUFDcEI7O0FBRkQ7RUFDRSxlQUFtQixFQUNwQjs7QUFGRDtFQUNFLGVBQW1CLEVBQ3BCOztBQUZEO0VBQ0UsZUFBbUIsRUFDcEI7O0FBRkQ7RUFDRSxnQkFBbUIsRUFDcEI7O0FDbkJIO0VBQ0UsbUJBQWtCO0VBQ2xCLGNBQWtCLEVBQ25COztBQ0ZEO0VBQ0Usc0JBQXFCO0VBQ3JCLG1CQUErQjtFQUMvQixnQkFBZSxFQUdoQjtFQU5EO0lBS1MsbUJBQWtCLEVBQUk7O0FBRy9CO0VBQ0UsV0NIK0I7RURJL0IsbUJBQWtCO0VBQ2xCLG1CQUFrQjtFQUNsQixXQ04rQjtFRE8vQixxQkFBb0IsRUFDckI7O0FFZEQ7RUFDRSwwQkRHZ0M7RUNGaEMsb0JBQW1CO0VBQ25CLDBCQUF5QixFQUMxQjs7QUFFRDtFQUErQixZQUFXLEVBQUk7O0FBQzlDO0VBQWdDLGFBQVksRUFBSTs7QUFFaEQ7Ozs7O0VBS2tDLG1CQUFrQixFQUFJOztBQUx4RDs7Ozs7RUFNbUMsa0JBQWlCLEVBQUk7O0FDZnhEO0VBQ0Usc0NBQXFDLEVBQ3RDOztBQUVEO0VBQ0Usd0NBQXVDLEVBQ3hDOztBQUVEO0VBQ0U7SUFDRSx3QkFBdUI7RUFHekI7SUFDRSwwQkFBeUI7O0FDZDdCO0VDWUUsdUVBQWlGO0VBQ2pGLHlCQUEyQixFRGJ5Qzs7QUFDdEU7RUNXRSx1RUFBaUY7RUFDakYsMEJBQTJCLEVEWnlDOztBQUN0RTtFQ1VFLHVFQUFpRjtFQUNqRiwwQkFBMkIsRURYeUM7O0FBRXRFO0VDYUUsaUZBQTJGO0VBQzNGLHdCQUErQixFRGR1Qzs7QUFDeEU7RUNZRSxpRkFBMkY7RUFDM0Ysd0JBQStCLEVEYnVDOztBQUN4RTtFQ1dFLGlGQUEyRjtFQUMzRix5QkFBK0IsRURad0U7O0FBS3pHOzs7OztFQU1JLGFBQVksRUFDYjs7QUVsQkg7RUFDRSxzQkFBcUI7RUFDckIsWUFBVztFQUNYLGlCQUFnQjtFQUNoQixtQkFBa0I7RUFDbEIsdUJBQXNCO0VBQ3RCLFdBQVUsRUFDWDs7QUFFRDs7RUFFRSxRQUFPO0VBQ1AsbUJBQWtCO0VBQ2xCLG1CQUFrQjtFQUNsQixZQUFXLEVBQ1o7O0FBRUQ7RUFDRSxxQkFBb0IsRUFDckI7O0FBRUQ7RUFDRSxlQUFjLEVBQ2Y7O0FBRUQ7RUFDRSxZTHJCZ0MsRUtzQmpDOztBQzlCRDtpRUFDaUU7QUFFakU7RUFBa0MsaUJOVUcsRU1WbUM7O0FBQ3hFO0VBQTRDLGlCTlNQLEVNVHVEOztBQUM1RjtFQUFxQyxpQk5RQSxFTVJ5Qzs7QUFDOUU7RUFBeUMsaUJOT0osRU1QaUQ7O0FBQ3RGO0VBQXlDLGlCTk1KLEVNTmlEOztBQUN0RjtFQUFtQyxpQk5LRSxFTUxxQzs7QUFDMUU7RUFBZ0MsaUJOSUssRU1KK0I7O0FBQ3BFO0VBQXFDLGlCTkdBLEVNSHlDOztBQUM5RTtFQUEyQyxpQk5FTixFTUZxRDs7QUFDMUY7RUFBb0MsaUJOQ0MsRU1EdUM7O0FBQzVFO0VBQXlDLGlCTkFKLEVNQWlEOztBQUN0RjtFQUEwQyxpQk5ETCxFTUNtRDs7QUFDeEY7RUFBdUMsaUJORkYsRU1FNkM7O0FBQ2xGO0VBQXdDLGlCTkhILEVNRytDOztBQUNwRjtFQUFzQyxpQk5KRCxFTUkyQzs7QUFDaEY7RUFBbUMsaUJOTEUsRU1LcUM7O0FBQzFFO0VBQXVDLGlCTk5GLEVNTTZDOztBQUNsRjtFQUFzQyxpQk5QRCxFTU8yQzs7QUFDaEY7RUFBZ0UsaUJOUjNCLEVNUStGOztBQUNwSTtFQUFtQyxpQk5URSxFTVNxQzs7QUFDMUU7RUFBbUMsaUJOVkUsRU1VcUM7O0FBQzFFO0VBQW9DLGlCTlhDLEVNV3VDOztBQUM1RTtFQUFzQyxpQk5aRCxFTVkyQzs7QUFDaEY7RUFBOEMsaUJOYlQsRU1hMkQ7O0FBQ2hHO0VBQThDLGlCTmRULEVNYzJEOztBQUNoRztFQUErQyxpQk5mVixFTWU2RDs7QUFDbEc7RUFBNEMsaUJOaEJQLEVNZ0J1RDs7QUFDNUY7RUFBdUMsaUJOakJGLEVNaUI2Qzs7QUFDbEY7RUFBdUMsaUJObEJGLEVNa0I2Qzs7QUFDbEY7RUFBd0MsaUJObkJILEVNbUIrQzs7QUFDcEY7RUFBcUMsaUJOcEJBLEVNb0J5Qzs7QUFDOUU7RUFBa0MsaUJOckJHLEVNcUJtQzs7QUFDeEU7RUFBMEMsaUJOdEJMLEVNc0JtRDs7QUFDeEY7RUFBb0MsaUJOdkJDLEVNdUJ1Qzs7QUFDNUU7RUFBc0MsaUJOeEJELEVNd0IyQzs7QUFDaEY7RUFBMEMsaUJOekJMLEVNeUJtRDs7QUFDeEY7RUFBa0MsaUJOMUJHLEVNMEJtQzs7QUFDeEU7RUFBa0MsaUJOM0JHLEVNMkJtQzs7QUFDeEU7RUFBc0MsaUJONUJELEVNNEIyQzs7QUFDaEY7RUFBb0MsaUJON0JDLEVNNkJ1Qzs7QUFDNUU7RUFBb0MsaUJOOUJDLEVNOEJ1Qzs7QUFDNUU7RUFBa0QsaUJOL0JiLEVNK0JtRTs7QUFDeEc7RUFBa0QsaUJOaENiLEVNZ0NtRTs7QUFDeEc7RUFBbUQsaUJOakNkLEVNaUNxRTs7QUFDMUc7RUFBZ0QsaUJObENYLEVNa0MrRDs7QUFDcEc7RUFBOEMsaUJObkNULEVNbUMyRDs7QUFDaEc7RUFBOEMsaUJOcENULEVNb0MyRDs7QUFDaEc7RUFBK0MsaUJOckNWLEVNcUM2RDs7QUFDbEc7RUFBNEMsaUJOdENQLEVNc0N1RDs7QUFDNUY7RUFBdUMsaUJOdkNGLEVNdUM2Qzs7QUFDbEY7RUFBdUMsaUJOeENGLEVNd0M2Qzs7QUFDbEY7RUFBd0MsaUJOekNILEVNeUMrQzs7QUFDcEY7RUFBcUMsaUJOMUNBLEVNMEN5Qzs7QUFDOUU7RUFBdUMsaUJOM0NGLEVNMkM2Qzs7QUFDbEY7RUFBeUMsaUJONUNKLEVNNENpRDs7QUFDdEY7RUFBeUMsaUJON0NKLEVNNkNpRDs7QUFDdEY7RUFBd0QsaUJOOUNuQixFTThDK0U7O0FBQ3BIO0VBQXFDLGlCTi9DQSxFTStDeUM7O0FBQzlFO0VBQXVDLGlCTmhERixFTWdENkM7O0FBQ2xGO0VBQStCLGlCTmpETSxFTWlENkI7O0FBQ2xFO0VBQWtDLGlCTmxERyxFTWtEbUM7O0FBQ3hFO0VBQW9DLGlCTm5EQyxFTW1EdUM7O0FBQzVFO0VBQThDLGlCTnBEVCxFTW9EMkQ7O0FBQ2hHO0VBQXlDLGlCTnJESixFTXFEaUQ7O0FBQ3RGO0VBQW9DLGlCTnREQyxFTXNEdUM7O0FBQzVFO0VBQW1DLGlCTnZERSxFTXVEcUM7O0FBQzFFO0VBQWtDLGlCTnhERyxFTXdEbUM7O0FBQ3hFO0VBQWdDLGlCTnpESyxFTXlEK0I7O0FBQ3BFO0VBQXNDLGlCTjFERCxFTTBEMkM7O0FBQ2hGO0VBQXFDLGlCTjNEQSxFTTJEeUM7O0FBQzlFO0VBQTBDLGlCTjVETCxFTTREbUQ7O0FBQ3hGO0VBQWdDLGlCTjdESyxFTTZEK0I7O0FBQ3BFO0VBQXFDLGlCTjlEQSxFTThEeUM7O0FBQzlFO0VBQXFDLGlCTi9EQSxFTStEeUM7O0FBQzlFO0VBQW9DLGlCTmhFQyxFTWdFdUM7O0FBQzVFO0VBQWlDLGlCTmpFSSxFTWlFaUM7O0FBQ3RFO0VBQTBDLGlCTmxFTCxFTWtFbUQ7O0FBQ3hGO0VBQTRDLGlCTm5FUCxFTW1FdUQ7O0FBQzVGO0VBQWlDLGlCTnBFSSxFTW9FaUM7O0FBQ3RFO0VBQTBDLGlCTnJFTCxFTXFFbUQ7O0FBQ3hGO0VBQXlDLGlCTnRFSixFTXNFaUQ7O0FBQ3RGO0VBQXlDLGlCTnZFSixFTXVFaUQ7O0FBQ3RGO0VBQTRDLGlCTnhFUCxFTXdFdUQ7O0FBQzVGO0VBQW1ELGlCTnpFZCxFTXlFcUU7O0FBQzFHO0VBQWdDLGlCTjFFSyxFTTBFK0I7O0FBQ3BFO0VBQWlDLGlCTjNFSSxFTTJFaUM7O0FBQ3RFO0VBQW9DLGlCTjVFQyxFTTRFdUM7O0FBQzVFO0VBQTJDLGlCTjdFTixFTTZFcUQ7O0FBQzFGO0VBQWlDLGlCTjlFSSxFTThFaUM7O0FBQ3RFO0VBQXVDLGlCTi9FRixFTStFNkM7O0FBQ2xGO0VBQXlDLGlCTmhGSixFTWdGaUQ7O0FBQ3RGO0VBQW9DLGlCTmpGQyxFTWlGdUM7O0FBQzVFO0VBQXNDLGlCTmxGRCxFTWtGMkM7O0FBQ2hGO0VBQXVDLGlCTm5GRixFTW1GNkM7O0FBQ2xGO0VBQTBDLGlCTnBGTCxFTW9GbUQ7O0FBQ3hGO0VBQXNDLGlCTnJGRCxFTXFGMkM7O0FBQ2hGO0VBQW9DLGlCTnRGQyxFTXNGdUM7O0FBQzVFO0VBQWlDLGlCTnZGSSxFTXVGaUM7O0FBQ3RFO0VBQXNDLGlCTnhGRCxFTXdGMkM7O0FBQ2hGO0VBQXVDLGlCTnpGRixFTXlGNkM7O0FBQ2xGO0VBQW9DLGlCTjFGQyxFTTBGdUM7O0FBQzVFO0VBQWtDLGlCTjNGRyxFTTJGbUM7O0FBQ3hFO0VBQW9DLGlCTjVGQyxFTTRGdUM7O0FBQzVFO0VBQXNDLGlCTjdGRCxFTTZGMkM7O0FBQ2hGO0VBQXNDLGlCTjlGRCxFTThGMkM7O0FBQ2hGO0VBQXdDLGlCTi9GSCxFTStGK0M7O0FBQ3BGO0VBQWlDLGlCTmhHSSxFTWdHaUM7O0FBQ3RFO0VBQWlDLGlCTmpHSSxFTWlHaUM7O0FBQ3RFO0VBQWlDLGlCTmxHSSxFTWtHaUM7O0FBQ3RFO0VBQWlDLGlCTm5HSSxFTW1HaUM7O0FBQ3RFO0VBQWlDLGlCTnBHSSxFTW9HaUM7O0FBQ3RFO0VBQXNDLGlCTnJHRCxFTXFHMkM7O0FBQ2hGO0VBQXFDLGlCTnRHQSxFTXNHeUM7O0FBQzlFO0VBQXlDLGlCTnZHSixFTXVHaUQ7O0FBQ3RGO0VBQWdDLGlCTnhHSyxFTXdHK0I7O0FBQ3BFO0VBQXFDLGlCTnpHQSxFTXlHeUM7O0FBQzlFO0VBQWtDLGlCTjFHRyxFTTBHbUM7O0FBQ3hFO0VBQW9DLGlCTjNHQyxFTTJHdUM7O0FBQzVFO0VBQXNDLGlCTjVHRCxFTTRHMkM7O0FBQ2hGO0VBQThDLGlCTjdHVCxFTTZHMkQ7O0FBQ2hHO0VBQTRDLGlCTjlHUCxFTThHdUQ7O0FBQzVGO0VBQWtDLGlCTi9HRyxFTStHbUM7O0FBQ3hFO0VBQWtDLGlCTmhIRyxFTWdIbUM7O0FBQ3hFO0VBQWdDLGlCTmpISyxFTWlIK0I7O0FBQ3BFO0VBQWdDLGlCTmxISyxFTWtIK0I7O0FBQ3BFO0VBQXFDLGlCTm5IQSxFTW1IeUM7O0FBQzlFO0VBQXFDLGlCTnBIQSxFTW9IeUM7O0FBQzlFO0VBQXFDLGlCTnJIQSxFTXFIeUM7O0FBQzlFO0VBQWlDLGlCTnRISSxFTXNIaUM7O0FBQ3RFO0VBQTZDLGlCTnZIUixFTXVIeUQ7O0FBQzlGO0VBQWdDLGlCTnhISyxFTXdIK0I7O0FBQ3BFO0VBQW9DLGlCTnpIQyxFTXlIdUM7O0FBQzVFO0VBQXVDLGlCTjFIRixFTTBINkM7O0FBQ2xGO0VBQXVDLGlCTjNIRixFTTJINkM7O0FBQ2xGO0VBQXFDLGlCTjVIQSxFTTRIeUM7O0FBQzlFO0VBQXlDLGlCTjdISixFTTZIaUQ7O0FBQ3RGO0VBQTJDLGlCTjlITixFTThIcUQ7O0FBQzFGO0VBQTJDLGlCTi9ITixFTStIcUQ7O0FBQzFGO0VBQTBDLGlCTmhJTCxFTWdJbUQ7O0FBQ3hGO0VBQTJDLGlCTmpJTixFTWlJcUQ7O0FBQzFGO0VBQW1DLGlCTmxJRSxFTWtJcUM7O0FBQzFFO0VBQXlDLGlCTm5JSixFTW1JaUQ7O0FBQ3RGO0VBQXFDLGlCTnBJQSxFTW9JeUM7O0FBQzlFO0VBQXFDLGlCTnJJQSxFTXFJeUM7O0FBQzlFO0VBQWdDLGlCTnRJSyxFTXNJK0I7O0FBQ3BFO0VBQXVDLGlCTnZJRixFTXVJNkM7O0FBQ2xGO0VBQXVDLGlCTnhJRixFTXdJNkM7O0FBQ2xGO0VBQXdDLGlCTnpJSCxFTXlJK0M7O0FBQ3BGO0VBQThDLGlCTjFJVCxFTTBJMkQ7O0FBQ2hHO0VBQThDLGlCTjNJVCxFTTJJMkQ7O0FBQ2hHO0VBQStDLGlCTjVJVixFTTRJNkQ7O0FBQ2xHO0VBQTRDLGlCTjdJUCxFTTZJdUQ7O0FBQzVGO0VBQXFDLGlCTjlJQSxFTThJeUM7O0FBQzlFO0VBQTRDLGlCTi9JUCxFTStJdUQ7O0FBQzVGO0VBQXNDLGlCTmhKRCxFTWdKMkM7O0FBQ2hGO0VBQTBDLGlCTmpKTCxFTWlKbUQ7O0FBQ3hGO0VBQW9DLGlCTmxKQyxFTWtKdUM7O0FBQzVFO0VBQXlDLGlCTm5KSixFTW1KaUQ7O0FBQ3RGO0VBQTJDLGlCTnBKTixFTW9KcUQ7O0FBQzFGO0VBQXdDLGlCTnJKSCxFTXFKK0M7O0FBQ3BGO0VBQW1DLGlCTnRKRSxFTXNKcUM7O0FBQzFFO0VBQTBDLGlCTnZKTCxFTXVKbUQ7O0FBQ3hGO0VBQXNDLGlCTnhKRCxFTXdKMkM7O0FBQ2hGO0VBQXNDLGlCTnpKRCxFTXlKMkM7O0FBQ2hGO0VBQW9DLGlCTjFKQyxFTTBKdUM7O0FBQzVFO0VBQXVDLGlCTjNKRixFTTJKNkM7O0FBQ2xGO0VBQXdDLGlCTjVKSCxFTTRKK0M7O0FBQ3BGO0VBQXVDLGlCTjdKRixFTTZKNkM7O0FBQ2xGO0VBQStDLGlCTjlKVixFTThKNkQ7O0FBQ2xHO0VBQXVDLGlCTi9KRixFTStKNkM7O0FBQ2xGO0VBQXNDLGlCTmhLRCxFTWdLMkM7O0FBQ2hGO0VBQXVDLGlCTmpLRixFTWlLNkM7O0FBQ2xGO0VBQXNDLGlCTmxLRCxFTWtLMkM7O0FBQ2hGO0VBQWtDLGlCTm5LRyxFTW1LbUM7O0FBQ3hFO0VBQXlDLGlCTnBLSixFTW9LaUQ7O0FBQ3RGO0VBQXlDLGlCTnJLSixFTXFLaUQ7O0FBQ3RGO0VBQXlDLGlCTnRLSixFTXNLaUQ7O0FBQ3RGO0VBQWtDLGlCTnZLRyxFTXVLbUM7O0FBQ3hFO0VBQXlDLGlCTnhLSixFTXdLaUQ7O0FBQ3RGO0VBQXdDLGlCTnpLSCxFTXlLK0M7O0FBQ3BGO0VBQXVDLGlCTjFLRixFTTBLNkM7O0FBQ2xGO0VBQXlDLGlCTjNLSixFTTJLaUQ7O0FBQ3RGO0VBQXVDLGlCTjVLRixFTTRLNkM7O0FBQ2xGO0VBQXdDLGlCTjdLSCxFTTZLK0M7O0FBQ3BGO0VBQXVDLGlCTjlLRixFTThLNkM7O0FBQ2xGO0VBQWdELGlCTi9LWCxFTStLK0Q7O0FBQ3BHO0VBQWdELGlCTmhMWCxFTWdMK0Q7O0FBQ3BHO0VBQWlELGlCTmpMWixFTWlMaUU7O0FBQ3RHO0VBQThDLGlCTmxMVCxFTWtMMkQ7O0FBQ2hHO0VBQXlDLGlCTm5MSixFTW1MaUQ7O0FBQ3RGO0VBQXlDLGlCTnBMSixFTW9MaUQ7O0FBQ3RGO0VBQTBDLGlCTnJMTCxFTXFMbUQ7O0FBQ3hGO0VBQXVDLGlCTnRMRixFTXNMNkM7O0FBQ2xGO0VBQWtDLGlCTnZMRyxFTXVMbUM7O0FBQ3hFO0VBQW1DLGlCTnhMRSxFTXdMcUM7O0FBQzFFO0VBQW1DLGlCTnpMRSxFTXlMcUM7O0FBQzFFO0VBQW1DLGlCTjFMRSxFTTBMcUM7O0FBQzFFO0VBQXlDLGlCTjNMSixFTTJMaUQ7O0FBQ3RGO0VBQXNDLGlCTjVMRCxFTTRMMkM7O0FBQ2hGO0VBQTRDLGlCTjdMUCxFTTZMdUQ7O0FBQzVGO0VBQTJDLGlCTjlMTixFTThMcUQ7O0FBQzFGO0VBQWtDLGlCTi9MRyxFTStMbUM7O0FBQ3hFO0VBQWtDLGlCTmhNRyxFTWdNbUM7O0FBQ3hFO0VBQThDLGlCTmpNVCxFTWlNMkQ7O0FBQ2hHO0VBQWtDLGlCTmxNRyxFTWtNbUM7O0FBQ3hFO0VBQStDLGlCTm5NVixFTW1NNkQ7O0FBQ2xHO0VBQTZDLGlCTnBNUixFTW9NeUQ7O0FBQzlGO0VBQXVDLGlCTnJNRixFTXFNNkM7O0FBQ2xGO0VBQXVDLGlCTnRNRixFTXNNNkM7O0FBQ2xGO0VBQXlDLGlCTnZNSixFTXVNaUQ7O0FBQ3RGO0VBQXFDLGlCTnhNQSxFTXdNeUM7O0FBQzlFO0VBQWlDLGlCTnpNSSxFTXlNaUM7O0FBQ3RFO0VBQXdDLGlCTjFNSCxFTTBNK0M7O0FBQ3BGO0VBQW9DLGlCTjNNQyxFTTJNdUM7O0FBQzVFO0VBQXFDLGlCTjVNQSxFTTRNeUM7O0FBQzlFO0VBQW1DLGlCTjdNRSxFTTZNcUM7O0FBQzFFO0VBQWdDLGlCTjlNSyxFTThNK0I7O0FBQ3BFO0VBQWlDLGlCTi9NSSxFTStNaUM7O0FBQ3RFO0VBQWtDLGlCTmhORyxFTWdObUM7O0FBQ3hFO0VBQW9DLGlCTmpOQyxFTWlOdUM7O0FBQzVFO0VBQW9DLGlCTmxOQyxFTWtOdUM7O0FBQzVFO0VBQXdDLGlCTm5OSCxFTW1OK0M7O0FBQ3BGO0VBQXlDLGlCTnBOSixFTW9OaUQ7O0FBQ3RGO0VBQTBDLGlCTnJOTCxFTXFObUQ7O0FBQ3hGO0VBQXFDLGlCTnROQSxFTXNOeUM7O0FBQzlFO0VBQXlDLGlCTnZOSixFTXVOaUQ7O0FBQ3RGO0VBQW9DLGlCTnhOQyxFTXdOdUM7O0FBQzVFO0VBQXFDLGlCTnpOQSxFTXlOeUM7O0FBQzlFO0VBQTJDLGlCTjFOTixFTTBOcUQ7O0FBQzFGO0VBQTJDLGlCTjNOTixFTTJOcUQ7O0FBQzFGO0VBQW1DLGlCTjVORSxFTTROcUM7O0FBQzFFO0VBQW1DLGlCTjdORSxFTTZOcUM7O0FBQzFFO0VBQXdDLGlCTjlOSCxFTThOK0M7O0FBQ3BGO0VBQWlDLGlCTi9OSSxFTStOaUM7O0FBQ3RFO0VBQXNDLGlCTmhPRCxFTWdPMkM7O0FBQ2hGO0VBQWtDLGlCTmpPRyxFTWlPbUM7O0FBQ3hFO0VBQW1DLGlCTmxPRSxFTWtPcUM7O0FBQzFFO0VBQTZDLGlCTm5PUixFTW1PeUQ7O0FBQzlGO0VBQWdELGlCTnBPWCxFTW9PK0Q7O0FBQ3BHO0VBQWdELGlCTnJPWCxFTXFPK0Q7O0FBQ3BHO0VBQW1ELGlCTnRPZCxFTXNPcUU7O0FBQzFHO0VBQW1ELGlCTnZPZCxFTXVPcUU7O0FBQzFHO0VBQWdELGlCTnhPWCxFTXdPK0Q7O0FBQ3BHO0VBQWdELGlCTnpPWCxFTXlPK0Q7O0FBQ3BHO0VBQW9ELGlCTjFPZixFTTBPdUU7O0FBQzVHO0VBQW1ELGlCTjNPZCxFTTJPcUU7O0FBQzFHO0VBQWdELGlCTjVPWCxFTTRPK0Q7O0FBQ3BHO0VBQXNELGlCTjdPakIsRU02TzJFOztBQUNoSDtFQUEyRCxpQk45T3RCLEVNOE9xRjs7QUFDMUg7RUFBbUQsaUJOL09kLEVNK09xRTs7QUFDMUc7RUFBd0MsaUJOaFBILEVNZ1ArQzs7QUFDcEY7RUFBaUMsaUJOalBJLEVNaVBpQzs7QUFDdEU7RUFBcUMsaUJObFBBLEVNa1B5Qzs7QUFDOUU7RUFBdUMsaUJOblBGLEVNbVA2Qzs7QUFDbEY7RUFBaUMsaUJOcFBJLEVNb1BpQzs7QUFDdEU7RUFBa0MsaUJOclBHLEVNcVBtQzs7QUFDeEU7RUFBaUMsaUJOdFBJLEVNc1BpQzs7QUFDdEU7RUFBcUMsaUJOdlBBLEVNdVB5Qzs7QUFDOUU7RUFBaUMsaUJOeFBJLEVNd1BpQzs7QUFDdEU7RUFBa0MsaUJOelBHLEVNeVBtQzs7QUFDeEU7RUFBZ0MsaUJOMVBLLEVNMFArQjs7QUFDcEU7RUFBdUMsaUJOM1BGLEVNMlA2Qzs7QUFDbEY7RUFBb0MsaUJONVBDLEVNNFB1Qzs7QUFDNUU7RUFBcUMsaUJON1BBLEVNNlB5Qzs7QUFDOUU7RUFBcUMsaUJOOVBBLEVNOFB5Qzs7QUFDOUU7RUFBaUMsaUJOL1BJLEVNK1BpQzs7QUFDdEU7RUFBc0MsaUJOaFFELEVNZ1EyQzs7QUFDaEY7RUFBc0MsaUJOalFELEVNaVEyQzs7QUFDaEY7RUFBb0MsaUJObFFDLEVNa1F1Qzs7QUFDNUU7RUFBb0MsaUJOblFDLEVNbVF1Qzs7QUFDNUU7RUFBdUMsaUJOcFFGLEVNb1E2Qzs7QUFDbEY7RUFBc0MsaUJOclFELEVNcVEyQzs7QUFDaEY7RUFBaUMsaUJOdFFJLEVNc1FpQzs7QUFDdEU7RUFBc0MsaUJOdlFELEVNdVEyQzs7QUFDaEY7RUFBc0MsaUJOeFFELEVNd1EyQzs7QUFDaEY7RUFBcUMsaUJOelFBLEVNeVF5Qzs7QUFDOUU7RUFBcUMsaUJOMVFBLEVNMFF5Qzs7QUFDOUU7RUFBdUMsaUJOM1FGLEVNMlE2Qzs7QUFDbEY7RUFBcUMsaUJONVFBLEVNNFF5Qzs7QUFDOUU7RUFBaUMsaUJON1FJLEVNNlFpQzs7QUFDdEU7RUFBMEMsaUJOOVFMLEVNOFFtRDs7QUFDeEY7RUFBK0MsaUJOL1FWLEVNK1E2RDs7QUFDbEc7RUFBb0MsaUJOaFJDLEVNZ1J1Qzs7QUFDNUU7RUFBc0MsaUJOalJELEVNaVIyQzs7QUFDaEY7RUFBbUMsaUJObFJFLEVNa1JxQzs7QUFDMUU7RUFBa0MsaUJOblJHLEVNbVJtQzs7QUFDeEU7RUFBZ0MsaUJOcFJLLEVNb1IrQjs7QUFDcEU7RUFBbUMsaUJOclJFLEVNcVJxQzs7QUFDMUU7RUFBbUMsaUJOdFJFLEVNc1JxQzs7QUFDMUU7RUFBd0MsaUJOdlJILEVNdVIrQzs7QUFDcEY7RUFBa0MsaUJOeFJHLEVNd1JtQzs7QUFDeEU7RUFBMEMsaUJOelJMLEVNeVJtRDs7QUFDeEY7RUFBbUMsaUJOMVJFLEVNMFJxQzs7QUFDMUU7RUFBd0MsaUJOM1JILEVNMlIrQzs7QUFDcEY7RUFBc0MsaUJONVJELEVNNFIyQzs7QUFDaEY7RUFBdUMsaUJON1JGLEVNNlI2Qzs7QUFDbEY7RUFBaUMsaUJOOVJJLEVNOFJpQzs7QUFDdEU7RUFBcUMsaUJOL1JBLEVNK1J5Qzs7QUFDOUU7RUFBMEMsaUJOaFNMLEVNZ1NtRDs7QUFDeEY7RUFBNkMsaUJOalNSLEVNaVN5RDs7QUFDOUY7RUFBcUMsaUJObFNBLEVNa1N5Qzs7QUFDOUU7RUFBNEMsaUJOblNQLEVNbVN1RDs7QUFDNUY7RUFBb0MsaUJOcFNDLEVNb1N1Qzs7QUFDNUU7RUFBaUMsaUJOclNJLEVNcVNpQzs7QUFDdEU7RUFBMEMsaUJOdFNMLEVNc1NtRDs7QUFDeEY7RUFBbUMsaUJOdlNFLEVNdVNxQzs7QUFDMUU7RUFBcUMsaUJOeFNBLEVNd1N5Qzs7QUFDOUU7RUFBbUMsaUJOelNFLEVNeVNxQzs7QUFDMUU7RUFBdUMsaUJOMVNGLEVNMFM2Qzs7QUFDbEY7RUFBaUMsaUJOM1NJLEVNMlNpQzs7QUFDdEU7RUFBaUMsaUJONVNJLEVNNFNpQzs7QUFDdEU7RUFBaUMsaUJON1NJLEVNNlNpQzs7QUFDdEU7RUFBa0MsaUJOOVNHLEVNOFNtQzs7QUFDeEU7RUFBc0MsaUJOL1NELEVNK1MyQzs7QUFDaEY7RUFBdUMsaUJOaFRGLEVNZ1Q2Qzs7QUFDbEY7RUFBdUMsaUJOalRGLEVNaVQ2Qzs7QUFDbEY7RUFBa0MsaUJObFRHLEVNa1RtQzs7QUFDeEU7RUFBbUMsaUJOblRFLEVNbVRxQzs7QUFDMUU7RUFBcUMsaUJOcFRBLEVNb1R5Qzs7QUFDOUU7RUFBMEMsaUJOclRMLEVNcVRtRDs7QUFDeEY7RUFBNEMsaUJOdFRQLEVNc1R1RDs7QUFDNUY7RUFBbUMsaUJOdlRFLEVNdVRxQzs7QUFDMUU7RUFBbUMsaUJOeFRFLEVNd1RxQzs7QUFDMUU7RUFBbUMsaUJOelRFLEVNeVRxQzs7QUFDMUU7RUFBbUMsaUJOMVRFLEVNMFRxQzs7QUFDMUU7RUFBcUMsaUJOM1RBLEVNMlR5Qzs7QUFDOUU7RUFBaUMsaUJONVRJLEVNNFRpQzs7QUFDdEU7RUFBc0MsaUJON1RELEVNNlQyQzs7QUFDaEY7RUFBeUMsaUJOOVRKLEVNOFRpRDs7QUFDdEY7RUFBd0MsaUJOL1RILEVNK1QrQzs7QUFDcEY7RUFBK0MsaUJOaFVWLEVNZ1U2RDs7QUFDbEc7RUFBaUQsaUJOalVaLEVNaVVpRTs7QUFDdEc7RUFBbUMsaUJObFVFLEVNa1VxQzs7QUFDMUU7RUFBOEMsaUJOblVULEVNbVUyRDs7QUFDaEc7RUFBeUMsaUJOcFVKLEVNb1VpRDs7QUFDdEY7RUFBOEMsaUJOclVULEVNcVUyRDs7QUFDaEc7RUFBcUQsaUJOdFVoQixFTXNVeUU7O0FBQzlHO0VBQWdDLGlCTnZVSyxFTXVVK0I7O0FBQ3BFO0VBQXdDLGlCTnhVSCxFTXdVK0M7O0FBQ3BGO0VBQXNDLGlCTnpVRCxFTXlVMkM7O0FBQ2hGO0VBQXFDLGlCTjFVQSxFTTBVeUM7O0FBQzlFO0VBQXVDLGlCTjNVRixFTTJVNkM7O0FBQ2xGO0VBQStDLGlCTjVVVixFTTRVNkQ7O0FBQ2xHO0VBQTRDLGlCTjdVUCxFTTZVdUQ7O0FBQzVGO0VBQTBDLGlCTjlVTCxFTThVbUQ7O0FBQ3hGO0VBQXlDLGlCTi9VSixFTStVaUQ7O0FBQ3RGO0VBQWdDLGlCTmhWSyxFTWdWK0I7O0FBQ3BFO0VBQW9DLGlCTmpWQyxFTWlWdUM7O0FBQzVFO0VBQXdDLGlCTmxWSCxFTWtWK0M7O0FBQ3BGO0VBQW1DLGlCTm5WRSxFTW1WcUM7O0FBQzFFO0VBQXdDLGlCTnBWSCxFTW9WK0M7O0FBQ3BGO0VBQWlDLGlCTnJWSSxFTXFWaUM7O0FBQ3RFO0VBQXFDLGlCTnRWQSxFTXNWeUM7O0FBQzlFO0VBQXlDLGlCTnZWSixFTXVWaUQ7O0FBQ3RGO0VBQXVDLGlCTnhWRixFTXdWNkM7O0FBQ2xGO0VBQXNDLGlCTnpWRCxFTXlWMkM7O0FBQ2hGO0VBQTBDLGlCTjFWTCxFTTBWbUQ7O0FBQ3hGO0VBQTBDLGlCTjNWTCxFTTJWbUQ7O0FBQ3hGO0VBQXVDLGlCTjVWRixFTTRWNkM7O0FBQ2xGO0VBQXdDLGlCTjdWSCxFTTZWK0M7O0FBQ3BGO0VBQXVDLGlCTjlWRixFTThWNkM7O0FBQ2xGO0VBQXdDLGlCTi9WSCxFTStWK0M7O0FBQ3BGO0VBQXlDLGlCTmhXSixFTWdXaUQ7O0FBQ3RGO0VBQWdELGlCTmpXWCxFTWlXK0Q7O0FBQ3BHO0VBQXlDLGlCTmxXSixFTWtXaUQ7O0FBQ3RGO0VBQTZDLGlCTm5XUixFTW1XeUQ7O0FBQzlGO0VBQXFDLGlCTnBXQSxFTW9XeUM7O0FBQzlFO0VBQTRDLGlCTnJXUCxFTXFXdUQ7O0FBQzVGO0VBQThDLGlCTnRXVCxFTXNXMkQ7O0FBQ2hHO0VBQTJDLGlCTnZXTixFTXVXcUQ7O0FBQzFGO0VBQXdDLGlCTnhXSCxFTXdXK0M7O0FBQ3BGO0VBQXVDLGlCTnpXRixFTXlXNkM7O0FBQ2xGO0VBQXNDLGlCTjFXRCxFTTBXMkM7O0FBQ2hGO0VBQWlDLGlCTjNXSSxFTTJXaUM7O0FBQ3RFO0VBQXNDLGlCTjVXRCxFTTRXMkM7O0FBQ2hGO0VBQWlDLGlCTjdXSSxFTTZXaUM7O0FBQ3RFO0VBQW1DLGlCTjlXRSxFTThXcUM7O0FBQzFFO0VBQXdDLGlCTi9XSCxFTStXK0M7O0FBQ3BGO0VBQWlDLGlCTmhYSSxFTWdYaUM7O0FBQ3RFO0VBQThDLGlCTmpYVCxFTWlYMkQ7O0FBQ2hHO0VBQW9DLGlCTmxYQyxFTWtYdUM7O0FBQzVFO0VBQXNDLGlCTm5YRCxFTW1YMkM7O0FBQ2hGO0VBQXdDLGlCTnBYSCxFTW9YK0M7O0FBQ3BGO0VBQTRDLGlCTnJYUCxFTXFYdUQ7O0FBQzVGO0VBQXVDLGlCTnRYRixFTXNYNkM7O0FBQ2xGO0VBQWlDLGlCTnZYSSxFTXVYaUM7O0FBQ3RFO0VBQWlDLGlCTnhYSSxFTXdYaUM7O0FBQ3RFO0VBQTJDLGlCTnpYTixFTXlYcUQ7O0FBQzFGO0VBQWtDLGlCTjFYRyxFTTBYbUM7O0FBQ3hFO0VBQW1DLGlCTjNYRSxFTTJYcUM7O0FBQzFFO0VBQXNDLGlCTjVYRCxFTTRYMkM7O0FBQ2hGO0VBQW9DLGlCTjdYQyxFTTZYdUM7O0FBQzVFO0VBQWdDLGlCTjlYSyxFTThYK0I7O0FBQ3BFO0VBQW1DLGlCTi9YRSxFTStYcUM7O0FBQzFFO0VBQXdDLGlCTmhZSCxFTWdZK0M7O0FBQ3BGO0VBQWlDLGlCTmpZSSxFTWlZaUM7O0FBQ3RFO0VBQXlDLGlCTmxZSixFTWtZaUQ7O0FBQ3RGO0VBQTZDLGlCTm5ZUixFTW1ZeUQ7O0FBQzlGO0VBQThDLGlCTnBZVCxFTW9ZMkQ7O0FBQ2hHO0VBQW1ELGlCTnJZZCxFTXFZcUU7O0FBQzFHO0VBQXNDLGlCTnRZRCxFTXNZMkM7O0FBQ2hGO0VBQXlDLGlCTnZZSixFTXVZaUQ7O0FBQ3RGO0VBQTBDLGlCTnhZTCxFTXdZbUQ7O0FBQ3hGO0VBQXlDLGlCTnpZSixFTXlZaUQ7O0FBQ3RGO0VBQTZDLGlCTjFZUixFTTBZeUQ7O0FBQzlGO0VBQXFDLGlCTjNZQSxFTTJZeUM7O0FBQzlFO0VBQW9DLGlCTjVZQyxFTTRZdUM7O0FBQzVFO0VBQXVDLGlCTjdZRixFTTZZNkM7O0FBQ2xGO0VBQTJDLGlCTjlZTixFTThZcUQ7O0FBQzFGO0VBQW9DLGlCTi9ZQyxFTStZdUM7O0FBQzVFO0VBQWlDLGlCTmhaSSxFTWdaaUM7O0FBQ3RFO0VBQWtDLGlCTmpaRyxFTWlabUM7O0FBQ3hFO0VBQXVDLGlCTmxaRixFTWtaNkM7O0FBQ2xGO0VBQW9DLGlCTm5aQyxFTW1adUM7O0FBQzVFO0VBQW1DLGlCTnBaRSxFTW9acUM7O0FBQzFFO0VBQThDLGlCTnJaVCxFTXFaMkQ7O0FBQ2hHO0VBQTRDLGlCTnRaUCxFTXNadUQ7O0FBQzVGO0VBQW9DLGlCTnZaQyxFTXVadUM7O0FBQzVFO0VBQXFDLGlCTnhaQSxFTXdaeUM7O0FBQzlFO0VBQWtDLGlCTnpaRyxFTXlabUM7O0FBQ3hFO0VBQWdDLGlCTjFaSyxFTTBaK0I7O0FBQ3BFO0VBQXVDLGlCTjNaRixFTTJaNkM7O0FBQ2xGO0VBQXVDLGlCTjVaRixFTTRaNkM7O0FBQ2xGO0VBQStCLGlCTjdaTSxFTTZaNkI7O0FBQ2xFO0VBQXNDLGlCTjlaRCxFTThaMkM7O0FBQ2hGO0VBQWlDLGlCTi9aSSxFTStaaUM7O0FBQ3RFO0VBQWdDLGlCTmhhSyxFTWdhK0I7O0FBQ3BFO0VBQXVDLGlCTmphRixFTWlhNkM7O0FBQ2xGO0VBQW1DLGlCTmxhRSxFTWthcUM7O0FBQzFFO0VBQXVDLGlCTm5hRixFTW1hNkM7O0FBQ2xGO0VBQTBDLGlCTnBhTCxFTW9hbUQ7O0FBQ3hGO0VBQXNDLGlCTnJhRCxFTXFhMkM7O0FBQ2hGO0VBQW1DLGlCTnRhRSxFTXNhcUM7O0FBQzFFO0VBQW1DLGlCTnZhRSxFTXVhcUM7O0FBQzFFO0VBQTBDLGlCTnhhTCxFTXdhbUQ7O0FBQ3hGO0VBQThDLGlCTnphVCxFTXlhMkQ7O0FBQ2hHO0VBQW9DLGlCTjFhQyxFTTBhdUM7O0FBQzVFO0VBQWtDLGlCTjNhRyxFTTJhbUM7O0FBQ3hFO0VBQW9DLGlCTjVhQyxFTTRhdUM7O0FBQzVFO0VBQWtDLGlCTjdhRyxFTTZhbUM7O0FBQ3hFO0VBQXlDLGlCTjlhSixFTThhaUQ7O0FBQ3RGO0VBQTJDLGlCTi9hTixFTSthcUQ7O0FBQzFGO0VBQXVDLGlCTmhiRixFTWdiNkM7O0FBQ2xGO0VBQW1DLGlCTmpiRSxFTWlicUM7O0FBQzFFO0VBQXNDLGlCTmxiRCxFTWtiMkM7O0FBQ2hGO0VBQXNDLGlCTm5iRCxFTW1iMkM7O0FBQ2hGO0VBQXdDLGlCTnBiSCxFTW9iK0M7O0FBQ3BGO0VBQW1DLGlCTnJiRSxFTXFicUM7O0FBQzFFO0VBQXlDLGlCTnRiSixFTXNiaUQ7O0FBQ3RGO0VBQXdDLGlCTnZiSCxFTXViK0M7O0FBQ3BGO0VBQXdDLGlCTnhiSCxFTXdiK0M7O0FBQ3BGO0VBQTBDLGlCTnpiTCxFTXlibUQ7O0FBQ3hGO0VBQStDLGlCTjFiVixFTTBiNkQ7O0FBQ2xHO0VBQTBDLGlCTjNiTCxFTTJibUQ7O0FBQ3hGO0VBQTJDLGlCTjViTixFTTRicUQ7O0FBQzFGO0VBQXFDLGlCTjdiQSxFTTZieUM7O0FBQzlFO0VBQWlDLGlCTjliSSxFTThiaUM7O0FBQ3RFO0VBQXlDLGlCTi9iSixFTStiaUQ7O0FBQ3RGO0VBQStDLGlCTmhjVixFTWdjNkQ7O0FBQ2xHO0VBQW9DLGlCTmpjQyxFTWljdUM7O0FBQzVFO0VBQWlDLGlCTmxjSSxFTWtjaUM7O0FBQ3RFO0VBQXFDLGlCTm5jQSxFTW1jeUM7O0FBQzlFO0VBQXNDLGlCTnBjRCxFTW9jMkM7O0FBQ2hGO0VBQTRDLGlCTnJjUCxFTXFjdUQ7O0FBQzVGO0VBQXdDLGlCTnRjSCxFTXNjK0M7O0FBQ3BGO0VBQXdDLGlCTnZjSCxFTXVjK0M7O0FBQ3BGO0VBQThDLGlCTnhjVCxFTXdjMkQ7O0FBQ2hHO0VBQXVDLGlCTnpjRixFTXljNkM7O0FBQ2xGO0VBQXVDLGlCTjFjRixFTTBjNkM7O0FBQ2xGO0VBQXdDLGlCTjNjSCxFTTJjK0M7O0FBQ3BGO0VBQStDLGlCTjVjVixFTTRjNkQ7O0FBQ2xHO0VBQTZDLGlCTjdjUixFTTZjeUQ7O0FBQzlGO0VBQXNDLGlCTjljRCxFTThjMkM7O0FBQ2hGO0VBQTRDLGlCTi9jUCxFTStjdUQ7O0FBQzVGO0VBQTBDLGlCTmhkTCxFTWdkbUQ7O0FBQ3hGO0VBQXFDLGlCTmpkQSxFTWlkeUM7O0FBQzlFO0VBQWtDLGlCTmxkRyxFTWtkbUM7O0FBQ3hFO0VBQWlDLGlCTm5kSSxFTW1kaUM7O0FBQ3RFO0VBQXFDLGlCTnBkQSxFTW9keUM7O0FBQzlFO0VBQXdDLGlCTnJkSCxFTXFkK0M7O0FBQ3BGO0VBQStDLGlCTnRkVixFTXNkNkQ7O0FBQ2xHO0VBQXlDLGlCTnZkSixFTXVkaUQ7O0FBQ3RGO0VBQStDLGlCTnhkVixFTXdkNkQ7O0FBQ2xHO0VBQTZDLGlCTnpkUixFTXlkeUQ7O0FBQzlGO0VBQXdDLGlCTjFkSCxFTTBkK0M7O0FBQ3BGO0VBQXVDLGlCTjNkRixFTTJkNkM7O0FBQ2xGO0VBQXVDLGlCTjVkRixFTTRkNkM7O0FBQ2xGO0VBQTRDLGlCTjdkUCxFTTZkdUQ7O0FBQzVGO0VBQTRDLGlCTjlkUCxFTThkdUQ7O0FBQzVGO0VBQTZDLGlCTi9kUixFTStkeUQ7O0FBQzlGO0VBQTBDLGlCTmhlTCxFTWdlbUQ7O0FBQ3hGO0VBQXlDLGlCTmplSixFTWllaUQ7O0FBQ3RGO0VBQXNDLGlCTmxlRCxFTWtlMkM7O0FBQ2hGO0VBQTBDLGlCTm5lTCxFTW1lbUQ7O0FBQ3hGO0VBQXVDLGlCTnBlRixFTW9lNkM7O0FBQ2xGO0VBQWtDLGlCTnJlRyxFTXFlbUM7O0FBQ3hFO0VBQTBDLGlCTnRlTCxFTXNlbUQ7O0FBQ3hGO0VBQXNDLGlCTnZlRCxFTXVlMkM7O0FBQ2hGO0VBQW9DLGlCTnhlQyxFTXdldUM7O0FBQzVFO0VBQWdDLGlCTnplSyxFTXllK0I7O0FBQ3BFO0VBQW9DLGlCTjFlQyxFTTBldUM7O0FBQzVFO0VBQXVDLGlCTjNlRixFTTJlNkM7O0FBQ2xGO0VBQTJDLGlCTjVlTixFTTRlcUQ7O0FBQzFGO0VBQW9DLGlCTjdlQyxFTTZldUM7O0FBQzVFO0VBQWtDLGlCTjllRyxFTThlbUM7O0FBQ3hFO0VBQXNDLGlCTi9lRCxFTStlMkM7O0FBQ2hGO0VBQXVDLGlCTmhmRixFTWdmNkM7O0FBQ2xGO0VBQXdDLGlCTmpmSCxFTWlmK0M7O0FBQ3BGO0VBQWlDLGlCTmxmSSxFTWtmaUM7O0FBQ3RFO0VBQTBDLGlCTm5mTCxFTW1mbUQ7O0FBQ3hGO0VBQW9DLGlCTnBmQyxFTW9mdUM7O0FBQzVFO0VBQXdDLGlCTnJmSCxFTXFmK0M7O0FBQ3BGO0VBQWlDLGlCTnRmSSxFTXNmaUM7O0FBQ3RFO0VBQWtDLGlCTnZmRyxFTXVmbUM7O0FBQ3hFO0VBQXFDLGlCTnhmQSxFTXdmeUM7O0FBQzlFO0VBQXFDLGlCTnpmQSxFTXlmeUM7O0FBQzlFO0VBQXlDLGlCTjFmSixFTTBmaUQ7O0FBQ3RGO0VBQTRDLGlCTjNmUCxFTTJmdUQ7O0FBQzVGO0VBQW9DLGlCTjVmQyxFTTRmdUM7O0FBQzVFO0VBQWtDLGlCTjdmRyxFTTZmbUM7O0FBQ3hFO0VBQW1DLGlCTjlmRSxFTThmcUM7O0FBQzFFO0VBQXNDLGlCTi9mRCxFTStmMkM7O0FBQ2hGO0VBQTBDLGlCTmhnQkwsRU1nZ0JtRDs7QUFDeEY7RUFBMkMsaUJOamdCTixFTWlnQnFEOztBQUMxRjtFQUE0QyxpQk5sZ0JQLEVNa2dCdUQ7O0FBQzVGO0VBQWtDLGlCTm5nQkcsRU1tZ0JtQzs7QUFDeEU7RUFBa0MsaUJOcGdCRyxFTW9nQm1DOztBQUN4RTtFQUFvQyxpQk5yZ0JDLEVNcWdCdUM7O0FBQzVFO0VBQXFDLGlCTnRnQkEsRU1zZ0J5Qzs7QUFDOUU7RUFBcUMsaUJOdmdCQSxFTXVnQnlDOztBQUM5RTtFQUFvQyxpQk54Z0JDLEVNd2dCdUM7O0FBQzVFO0VBQXdDLGlCTnpnQkgsRU15Z0IrQzs7QUFDcEY7RUFBa0MsaUJOMWdCRyxFTTBnQm1DOztBQUN4RTtFQUFtQyxpQk4zZ0JFLEVNMmdCcUM7O0FBQzFFO0VBQWlDLGlCTjVnQkksRU00Z0JpQzs7QUFDdEU7RUFBa0MsaUJON2dCRyxFTTZnQm1DOztBQUN4RTtFQUFtQyxpQk45Z0JFLEVNOGdCcUM7O0FBQzFFO0VBQXFDLGlCTi9nQkEsRU0rZ0J5Qzs7QUFDOUU7RUFBcUMsaUJOaGhCQSxFTWdoQnlDOztBQUM5RTtFQUFpQyxpQk5qaEJJLEVNaWhCaUM7O0FBQ3RFO0VBQXdDLGlCTmxoQkgsRU1raEIrQzs7QUFDcEY7RUFBc0MsaUJObmhCRCxFTW1oQjJDOztBQUNoRjtFQUE4QyxpQk5waEJULEVNb2hCMkQ7O0FBQ2hHO0VBQW9DLGlCTnJoQkMsRU1xaEJ1Qzs7QUFDNUU7RUFBbUMsaUJOdGhCRSxFTXNoQnFDOztBQUMxRTtFQUFtQyxpQk52aEJFLEVNdWhCcUM7O0FBQzFFO0VBQXdDLGlCTnhoQkgsRU13aEIrQzs7QUFDcEY7RUFBaUMsaUJOemhCSSxFTXloQmlDOztBQUN0RTtFQUF1QyxpQk4xaEJGLEVNMGhCNkM7O0FBQ2xGO0VBQW9DLGlCTjNoQkMsRU0yaEJ1Qzs7QUFDNUU7RUFBa0MsaUJONWhCRyxFTTRoQm1DOztBQUN4RTtFQUFrQyxpQk43aEJHLEVNNmhCbUM7O0FBQ3hFO0VBQW1DLGlCTjloQkUsRU04aEJxQzs7QUFDMUU7RUFBK0IsaUJOL2hCTSxFTStoQjZCOztBQUNsRTtFQUFzQyxpQk5oaUJELEVNZ2lCMkM7O0FBQ2hGO0VBQXFDLGlCTmppQkEsRU1paUJ5Qzs7QUFDOUU7RUFBZ0MsaUJObGlCSyxFTWtpQitCOztBQUNwRTtFQUFvQyxpQk5uaUJDLEVNbWlCdUM7O0FBQzVFO0VBQXFDLGlCTnBpQkEsRU1vaUJ5Qzs7QUFDOUU7RUFBbUMsaUJOcmlCRSxFTXFpQnFDOztBQUMxRTtFQUF3QyxpQk50aUJILEVNc2lCK0M7O0FBQ3BGO0VBQTBDLGlCTnZpQkwsRU11aUJtRDs7QUFDeEY7RUFBaUMsaUJOeGlCSSxFTXdpQmlDOztBQUN0RTtFQUFzQyxpQk56aUJELEVNeWlCMkM7O0FBQ2hGO0VBQTRDLGlCTjFpQlAsRU0waUJ1RDs7QUFDNUY7RUFBc0MsaUJOM2lCRCxFTTJpQjJDOztBQUNoRjtFQUFtQyxpQk41aUJFLEVNNGlCcUM7O0FBQzFFO0VBQXFDLGlCTjdpQkEsRU02aUJ5Qzs7QUFDOUU7RUFBbUMsaUJOOWlCRSxFTThpQnFDOztBQUMxRTtFQUFvQyxpQk4vaUJDLEVNK2lCdUM7O0FBQzVFO0VBQW1DLGlCTmhqQkUsRU1nakJxQzs7QUFDMUU7RUFBMEMsaUJOampCTCxFTWlqQm1EOztBQUN4RjtFQUFrQyxpQk5sakJHLEVNa2pCbUM7O0FBQ3hFO0VBQXVDLGlCTm5qQkYsRU1takI2Qzs7QUFDbEY7RUFBeUMsaUJOcGpCSixFTW9qQmlEOztBQUN0RjtFQUF1QyxpQk5yakJGLEVNcWpCNkM7O0FBQ2xGO0VBQWlDLGlCTnRqQkksRU1zakJpQzs7QUFDdEU7RUFBb0MsaUJOdmpCQyxFTXVqQnVDOztBQUM1RTtFQUFrQyxpQk54akJHLEVNd2pCbUM7O0FBQ3hFO0VBQWlDLGlCTnpqQkksRU15akJpQzs7QUFDdEU7RUFBc0MsaUJOMWpCRCxFTTBqQjJDOztBQUNoRjtFQUE0QyxpQk4zakJQLEVNMmpCdUQ7O0FBQzVGO0VBQTJDLGlCTjVqQk4sRU00akJxRDs7QUFDMUY7RUFBeUMsaUJON2pCSixFTTZqQmlEOztBQUN0RjtFQUFzQyxpQk45akJELEVNOGpCMkM7O0FBQ2hGO0VBQXNDLGlCTi9qQkQsRU0rakIyQzs7QUFDaEY7RUFBaUMsaUJOaGtCSSxFTWdrQmlDOztBQUN0RTtFQUFpQyxpQk5qa0JJLEVNaWtCaUM7O0FBQ3RFO0VBQXFDLGlCTmxrQkEsRU1ra0J5Qzs7QUFDOUU7RUFBd0MsaUJObmtCSCxFTW1rQitDOztBQUNwRjtFQUFtQyxpQk5wa0JFLEVNb2tCcUM7O0FBQzFFO0VBQWtDLGlCTnJrQkcsRU1xa0JtQzs7QUFDeEU7RUFBc0MsaUJOdGtCRCxFTXNrQjJDOztBQUNoRjtFQUFpQyxpQk52a0JJLEVNdWtCaUM7O0FBQ3RFO0VBQXFDLGlCTnhrQkEsRU13a0J5Qzs7QUFDOUU7RUFBb0MsaUJOemtCQyxFTXlrQnVDOztBQUM1RTtFQUFvQyxpQk4xa0JDLEVNMGtCdUM7O0FBQzVFO0VBQTJDLGlCTjNrQk4sRU0ya0JxRDs7QUFDMUY7RUFBaUMsaUJONWtCSSxFTTRrQmlDOztBQUN0RTtFQUFzQyxpQk43a0JELEVNNmtCMkM7O0FBQ2hGO0VBQWdELGlCTjlrQlgsRU04a0IrRDs7QUFDcEc7RUFBZ0QsaUJOL2tCWCxFTStrQitEOztBQUNwRztFQUFpRCxpQk5obEJaLEVNZ2xCaUU7O0FBQ3RHO0VBQThDLGlCTmpsQlQsRU1pbEIyRDs7QUFDaEc7RUFBdUMsaUJObGxCRixFTWtsQjZDOztBQUNsRjtFQUF5QyxpQk5ubEJKLEVNbWxCaUQ7O0FBQ3RGO0VBQWlDLGlCTnBsQkksRU1vbEJpQzs7QUFDdEU7RUFBb0MsaUJOcmxCQyxFTXFsQnVDOztBQUM1RTtFQUFrQyxpQk50bEJHLEVNc2xCbUM7O0FBQ3hFO0VBQW1DLGlCTnZsQkUsRU11bEJxQzs7QUFDMUU7RUFBc0MsaUJOeGxCRCxFTXdsQjJDOztBQUNoRjtFQUFpQyxpQk56bEJJLEVNeWxCaUM7O0FBQ3RFO0VBQXdDLGlCTjFsQkgsRU0wbEIrQzs7QUFDcEY7RUFBZ0MsaUJOM2xCSyxFTTJsQitCOztBQUNwRTtFQUF1QyxpQk41bEJGLEVNNGxCNkM7O0FBQ2xGO0VBQTJDLGlCTjdsQk4sRU02bEJxRDs7QUFDMUY7RUFBdUMsaUJOOWxCRixFTThsQjZDOztBQUNsRjtFQUEyQyxpQk4vbEJOLEVNK2xCcUQ7O0FBQzFGO0VBQW9DLGlCTmhtQkMsRU1nbUJ1Qzs7QUFDNUU7RUFBc0MsaUJOam1CRCxFTWltQjJDOztBQUNoRjtFQUFtQyxpQk5sbUJFLEVNa21CcUM7O0FBQzFFO0VBQWlDLGlCTm5tQkksRU1tbUJpQzs7QUFDdEU7RUFBd0MsaUJOcG1CSCxFTW9tQitDOztBQUNwRjtFQUF3QyxpQk5ybUJILEVNcW1CK0M7O0FBQ3BGO0VBQTBDLGlCTnRtQkwsRU1zbUJtRDs7QUFDeEY7RUFBMEMsaUJOdm1CTCxFTXVtQm1EOztBQUN4RjtFQUFxQyxpQk54bUJBLEVNd21CeUM7O0FBQzlFO0VBQW1DLGlCTnptQkUsRU15bUJxQzs7QUFDMUU7RUFBa0MsaUJOMW1CRyxFTTBtQm1DOztBQUN4RTtFQUFvQyxpQk4zbUJDLEVNMm1CdUM7O0FBQzVFO0VBQW1DLGlCTjVtQkUsRU00bUJxQzs7QUFDMUU7RUFBcUMsaUJON21CQSxFTTZtQnlDOztBQUM5RTtFQUFtQyxpQk45bUJFLEVNOG1CcUM7O0FBQzFFO0VBQWtDLGlCTi9tQkcsRU0rbUJtQzs7QUFDeEU7RUFBbUMsaUJOaG5CRSxFTWduQnFDOztBQUMxRTtFQUFxQyxpQk5qbkJBLEVNaW5CeUM7O0FBQzlFO0VBQWdDLGlCTmxuQkssRU1rbkIrQjs7QUFDcEU7RUFBc0MsaUJObm5CRCxFTW1uQjJDOztBQUNoRjtFQUE2QyxpQk5wbkJSLEVNb25CeUQ7O0FBQzlGO0VBQW1DLGlCTnJuQkUsRU1xbkJxQzs7QUFDMUU7RUFBb0MsaUJOdG5CQyxFTXNuQnVDOztBQUM1RTtFQUFzQyxpQk52bkJELEVNdW5CMkM7O0FBQ2hGO0VBQXVDLGlCTnhuQkYsRU13bkI2Qzs7QUFDbEY7RUFBMkMsaUJOem5CTixFTXluQnFEOztBQUMxRjtFQUFpRCxpQk4xbkJaLEVNMG5CaUU7O0FBQ3RHO0VBQTZDLGlCTjNuQlIsRU0ybkJ5RDs7QUFDOUY7RUFBc0MsaUJONW5CRCxFTTRuQjJDOztBQUNoRjtFQUFrQyxpQk43bkJHLEVNNm5CbUM7O0FBQ3hFO0VBQXlDLGlCTjluQkosRU04bkJpRDs7QUFDdEY7RUFBeUMsaUJOL25CSixFTStuQmlEOztBQUN0RjtFQUFnQyxpQk5ob0JLLEVNZ29CK0I7O0FBQ3BFO0VBQXFDLGlCTmpvQkEsRU1pb0J5Qzs7QUFDOUU7RUFBbUMsaUJObG9CRSxFTWtvQnFDOztBQUMxRTtFQUFtQyxpQk5ub0JFLEVNbW9CcUM7O0FBQzFFO0VBQXVDLGlCTnBvQkYsRU1vb0I2Qzs7QUFDbEY7RUFBaUMsaUJOcm9CSSxFTXFvQmlDOztBQUN0RTtFQUFtQyxpQk50b0JFLEVNc29CcUM7O0FBQzFFO0VBQXVDLGlCTnZvQkYsRU11b0I2Qzs7QUFDbEY7RUFBMkMsaUJOeG9CTixFTXdvQnFEOztBQUMxRjtFQUE0QyxpQk56b0JQLEVNeW9CdUQ7O0FBQzVGO0VBQWdELGlCTjFvQlgsRU0wb0IrRDs7QUFDcEc7RUFBd0MsaUJOM29CSCxFTTJvQitDOztBQUNwRjtFQUE0QyxpQk41b0JQLEVNNG9CdUQ7O0FBQzVGO0VBQXFDLGlCTjdvQkEsRU02b0J5Qzs7QUFDOUU7RUFBaUMsaUJOOW9CSSxFTThvQmlDOztBQUN0RTtFQUEwQyxpQk4vb0JMLEVNK29CbUQ7O0FBQ3hGO0VBQXVDLGlCTmhwQkYsRU1ncEI2Qzs7QUFDbEY7RUFBMEMsaUJOanBCTCxFTWlwQm1EOztBQUN4RjtFQUFrQyxpQk5scEJHLEVNa3BCbUM7O0FBQ3hFO0VBQW9DLGlCTm5wQkMsRU1tcEJ1Qzs7QUFDNUU7RUFBbUMsaUJOcHBCRSxFTW9wQnFDOztBQUMxRTtFQUFzQyxpQk5ycEJELEVNcXBCMkM7O0FBQ2hGO0VBQW1DLGlCTnRwQkUsRU1zcEJxQzs7QUFDMUU7RUFBNEMsaUJOdnBCUCxFTXVwQnVEOztBQUM1RjtFQUFpQyxpQk54cEJJLEVNd3BCaUM7O0FBQ3RFO0VBQW9DLGlCTnpwQkMsRU15cEJ1Qzs7QUFDNUU7RUFBc0MsaUJOMXBCRCxFTTBwQjJDOztBQUNoRjtFQUEwQyxpQk4zcEJMLEVNMnBCbUQ7O0FBQ3hGO0VBQWdDLGlCTjVwQkssRU00cEIrQjs7QUFDcEU7RUFBZ0MsaUJON3BCSyxFTTZwQitCOztBQUNwRTtFQUF3QyxpQk45cEJILEVNOHBCK0M7O0FBQ3BGO0VBQXlDLGlCTi9wQkosRU0rcEJpRDs7QUFDdEY7RUFBMkMsaUJOaHFCTixFTWdxQnFEOztBQUMxRjtFQUEwQyxpQk5qcUJMLEVNaXFCbUQ7O0FBQ3hGO0VBQWlELGlCTmxxQlosRU1rcUJpRTs7QUFDdEc7RUFBeUMsaUJObnFCSixFTW1xQmlEOztBQUN0RjtFQUFxQyxpQk5wcUJBLEVNb3FCeUM7O0FBQzlFO0VBQW1DLGlCTnJxQkUsRU1xcUJxQzs7QUFDMUU7RUFBa0MsaUJOdHFCRyxFTXNxQm1DOztBQUN4RTtFQUEwQyxpQk52cUJMLEVNdXFCbUQ7O0FBQ3hGO0VBQWdDLGlCTnhxQkssRU13cUIrQjs7QUFDcEU7RUFBb0MsaUJOenFCQyxFTXlxQnVDOztBQUM1RTtFQUFrQyxpQk4xcUJHLEVNMHFCbUM7O0FBQ3hFO0VBQXNDLGlCTjNxQkQsRU0ycUIyQzs7QUFDaEY7RUFBd0MsaUJONXFCSCxFTTRxQitDOztBQUNwRjtFQUF5QyxpQk43cUJKLEVNNnFCaUQ7O0FBQ3RGO0VBQW9DLGlCTjlxQkMsRU04cUJ1Qzs7QUFDNUU7RUFBbUMsaUJOL3FCRSxFTStxQnFDOztBQUMxRTtFQUFtQyxpQk5ockJFLEVNZ3JCcUM7O0FBQzFFO0VBQXdDLGlCTmpyQkgsRU1pckIrQzs7QUFDcEY7RUFBc0MsaUJObHJCRCxFTWtyQjJDOztBQUNoRjtFQUEwQyxpQk5uckJMLEVNbXJCbUQ7O0FBQ3hGO0VBQXNDLGlCTnByQkQsRU1vckIyQzs7QUFDaEY7RUFBb0MsaUJOcnJCQyxFTXFyQnVDOztBQUM1RTtFQUFxQyxpQk50ckJBLEVNc3JCeUM7O0FBQzlFO0VBQWtDLGlCTnZyQkcsRU11ckJtQzs7QUFDeEU7RUFBb0MsaUJOeHJCQyxFTXdyQnVDOztBQUM1RTtFQUFrQyxpQk56ckJHLEVNeXJCbUM7O0FBQ3hFO0VBQXlDLGlCTjFyQkosRU0wckJpRDs7QUFDdEY7RUFBZ0MsaUJOM3JCSyxFTTJyQitCOztBQUNwRTtFQUFtQyxpQk41ckJFLEVNNHJCcUM7O0FBQzFFO0VBQWdDLGlCTjdyQkssRU02ckIrQjs7QUFDcEU7RUFBb0MsaUJOOXJCQyxFTThyQnVDOztBQUM1RTtFQUFzQyxpQk4vckJELEVNK3JCMkM7O0FBQ2hGO0VBQW9DLGlCTmhzQkMsRU1nc0J1Qzs7QUFDNUU7RUFBdUMsaUJOanNCRixFTWlzQjZDOztBQUNsRjtFQUF1QyxpQk5sc0JGLEVNa3NCNkM7O0FBQ2xGO0VBQXlDLGlCTm5zQkosRU1tc0JpRDs7QUFDdEY7RUFBeUMsaUJOcHNCSixFTW9zQmlEOztBQUN0RjtFQUFvQyxpQk5yc0JDLEVNcXNCdUM7O0FBQzVFO0VBQXVDLGlCTnRzQkYsRU1zc0I2Qzs7QUFDbEY7RUFBc0MsaUJOdnNCRCxFTXVzQjJDOztBQUNoRjtFQUF3QyxpQk54c0JILEVNd3NCK0M7O0FBQ3BGO0VBQThDLGlCTnpzQlQsRU15c0IyRDs7QUFDaEc7RUFBNkMsaUJOMXNCUixFTTBzQnlEOztBQUM5RjtFQUFrQyxpQk4zc0JHLEVNMnNCbUM7O0FBQ3hFO0VBQXdDLGlCTjVzQkgsRU00c0IrQzs7QUFDcEY7RUFBeUMsaUJON3NCSixFTTZzQmlEOztBQUN0RjtFQUF5QyxpQk45c0JKLEVNOHNCaUQ7O0FBQ3RGO0VBQWdDLGlCTi9zQkssRU0rc0IrQjs7QUFDcEU7RUFBdUMsaUJOaHRCRixFTWd0QjZDOztBQUNsRjtFQUEyQyxpQk5qdEJOLEVNaXRCcUQ7O0FBQzFGO0VBQTJDLGlCTmx0Qk4sRU1rdEJxRDs7QUFDMUY7RUFBMEMsaUJObnRCTCxFTW10Qm1EOztBQUN4RjtFQUF1QyxpQk5wdEJGLEVNb3RCNkM7O0FBQ2xGO0VBQWtDLGlCTnJ0QkcsRU1xdEJtQzs7QUFDeEU7RUFBc0MsaUJOdHRCRCxFTXN0QjJDOztBQUNoRjtFQUF3QyxpQk52dEJILEVNdXRCK0M7O0FBQ3BGO0VBQTZDLGlCTnh0QlIsRU13dEJ5RDs7QUFDOUY7RUFBa0MsaUJOenRCRyxFTXl0Qm1DOztBQUN4RTtFQUEwQyxpQk4xdEJMLEVNMHRCbUQ7O0FBQ3hGO0VBQTRDLGlCTjN0QlAsRU0ydEJ1RDs7QUFDNUY7RUFBaUMsaUJONXRCSSxFTTR0QmlDOztBQUN0RTtFQUF3QyxpQk43dEJILEVNNnRCK0M7O0FBQ3BGO0VBQXdDLGlCTjl0QkgsRU04dEIrQzs7QUFDcEY7RUFBaUMsaUJOL3RCSSxFTSt0QmlDOztBQUN0RTtFQUFpQyxpQk5odUJJLEVNZ3VCaUM7O0FBQ3RFO0VBQXdDLGlCTmp1QkgsRU1pdUIrQzs7QUFDcEY7RUFBd0MsaUJObHVCSCxFTWt1QitDOztBQUNwRjtFQUFvQyxpQk5udUJDLEVNbXVCdUM7O0FBQzVFO0VBQWdDLGlCTnB1QkssRU1vdUIrQjs7QUFDcEU7RUFBcUMsaUJOcnVCQSxFTXF1QnlDOztBQUM5RTtFQUF1QyxpQk50dUJGLEVNc3VCNkM7O0FBQ2xGO0VBQXNDLGlCTnZ1QkQsRU11dUIyQzs7QUFDaEY7RUFBeUMsaUJOeHVCSixFTXd1QmlEOztBQUN0RjtFQUFnRCxpQk56dUJYLEVNeXVCK0Q7O0FBQ3BHO0VBQW9ELGlCTjF1QmYsRU0wdUJ1RTs7QUFDNUc7RUFBa0MsaUJOM3VCRyxFTTJ1Qm1DOztBQUN4RTtFQUF1QyxpQk41dUJGLEVNNHVCNkM7O0FBQ2xGO0VBQXlDLGlCTjd1QkosRU02dUJpRDs7QUFDdEY7RUFBNEMsaUJOOXVCUCxFTTh1QnVEOztBQUM1RjtFQUFtQyxpQk4vdUJFLEVNK3VCcUM7O0FBQzFFO0VBQXlDLGlCTmh2QkosRU1ndkJpRDs7QUFDdEY7RUFBbUMsaUJOanZCRSxFTWl2QnFDOztBQUMxRTtFQUErQixpQk5sdkJNLEVNa3ZCNkI7O0FBQ2xFO0VBQW1DLGlCTm52QkUsRU1tdkJxQzs7QUFDMUU7RUFBcUMsaUJOcHZCQSxFTW92QnlDOztBQUM5RTtFQUE0QyxpQk5ydkJQLEVNcXZCdUQ7O0FBQzVGO0VBQXNDLGlCTnR2QkQsRU1zdkIyQzs7QUFDaEY7RUFBc0MsaUJOdnZCRCxFTXV2QjJDOztBQUNoRjtFQUFrQyxpQk54dkJHLEVNd3ZCbUM7O0FBQ3hFO0VBQXVDLGlCTnp2QkYsRU15dkI2Qzs7QUFDbEY7RUFBd0MsaUJOMXZCSCxFTTB2QitDOztBQUNwRjtFQUFzQyxpQk4zdkJELEVNMnZCMkM7O0FBQ2hGO0VBQW1DLGlCTjV2QkUsRU00dkJxQzs7QUFDMUU7RUFBb0MsaUJON3ZCQyxFTTZ2QnVDOztBQUM1RTtFQUFrQyxpQk45dkJHLEVNOHZCbUM7O0FBQ3hFO0VBQW1DLGlCTi92QkUsRU0rdkJxQzs7QUFDMUU7RUFBa0MsaUJOaHdCRyxFTWd3Qm1DOztBQUN4RTtFQUFvQyxpQk5qd0JDLEVNaXdCdUM7O0FBQzVFO0VBQW9DLGlCTmx3QkMsRU1rd0J1Qzs7QUFDNUU7RUFBc0MsaUJObndCRCxFTW13QjJDOztBQUNoRjtFQUFtQyxpQk5wd0JFLEVNb3dCcUM7O0FBQzFFO0VBQXlDLGlCTnJ3QkosRU1xd0JpRDs7QUFDdEY7RUFBMEMsaUJOdHdCTCxFTXN3Qm1EOztBQUN4RjtFQUFpQyxpQk52d0JJLEVNdXdCaUM7O0FBQ3RFO0VBQXFDLGlCTnh3QkEsRU13d0J5Qzs7QUFDOUU7RUFBdUMsaUJOendCRixFTXl3QjZDOztBQUNsRjtFQUFvQyxpQk4xd0JDLEVNMHdCdUM7O0FBQzVFO0VBQW1DLGlCTjN3QkUsRU0yd0JxQzs7QUFDMUU7RUFBa0MsaUJONXdCRyxFTTR3Qm1DOztBQUN4RTtFQUFzQyxpQk43d0JELEVNNndCMkM7O0FBQ2hGO0VBQW1DLGlCTjl3QkUsRU04d0JxQzs7QUFDMUU7RUFBeUMsaUJOL3dCSixFTSt3QmlEOztBQUN0RjtFQUFzQyxpQk5oeEJELEVNZ3hCMkM7O0FBQ2hGO0VBQW9DLGlCTmp4QkMsRU1peEJ1Qzs7QUFDNUU7RUFBZ0MsaUJObHhCSyxFTWt4QitCOztBQUNwRTtFQUFtQyxpQk5ueEJFLEVNbXhCcUM7O0FBQzFFO0VBQWlDLGlCTnB4QkksRU1veEJpQzs7QUFDdEU7RUFBa0MsaUJOcnhCRyxFTXF4Qm1DOztBQUN4RTtFQUFtQyxpQk50eEJFLEVNc3hCcUM7O0FBQzFFO0VBQXVDLGlCTnZ4QkYsRU11eEI2Qzs7QUFDbEY7RUFBb0MsaUJOeHhCQyxFTXd4QnVDOztBQUM1RTtFQUFnQyxpQk56eEJLLEVNeXhCK0I7O0FBQ3BFO0VBQXVDLGlCTjF4QkYsRU0weEI2Qzs7QUFDbEY7RUFBdUMsaUJOM3hCRixFTTJ4QjZDOztBQUNsRjtFQUFrQyxpQk41eEJHLEVNNHhCbUM7O0FBQ3hFO0VBQTJDLGlCTjd4Qk4sRU02eEJxRDs7QUFDMUY7RUFBNkMsaUJOOXhCUixFTTh4QnlEOztBQUM5RjtFQUEyQyxpQk4veEJOLEVNK3hCcUQ7O0FBQzFGO0VBQXVDLGlCTmh5QkYsRU1neUI2Qzs7QUFDbEY7RUFBb0MsaUJOanlCQyxFTWl5QnVDOztBQUM1RTtFQUFxQyxpQk5seUJBLEVNa3lCeUM7O0FBQzlFO0VBQW1DLGlCTm55QkUsRU1teUJxQzs7QUFDMUU7RUFBaUMsaUJOcHlCSSxFTW95QmlDOztBQUN0RTtFQUFpQyxpQk5yeUJJLEVNcXlCaUM7O0FBQ3RFO0VBQW1DLGlCTnR5QkUsRU1zeUJxQzs7QUFDMUU7RUFBbUMsaUJOdnlCRSxFTXV5QnFDOztBQUMxRTtFQUF3QyxpQk54eUJILEVNd3lCK0M7O0FBQ3BGO0VBQW1DLGlCTnp5QkUsRU15eUJxQzs7QUFDMUU7RUFBbUMsaUJOMXlCRSxFTTB5QnFDOztBQUMxRTtFQUF5QyxpQk4zeUJKLEVNMnlCaUQ7O0FBQ3RGO0VBQXdDLGlCTjV5QkgsRU00eUIrQzs7QUFDcEY7RUFBd0MsaUJON3lCSCxFTTZ5QitDOztBQUNwRjtFQUFxQyxpQk45eUJBLEVNOHlCeUM7O0FBQzlFO0VBQXFDLGlCTi95QkEsRU0reUJ5Qzs7QUFDOUU7RUFBbUMsaUJOaHpCRSxFTWd6QnFDOztBQUMxRTtFQUFtQyxpQk5qekJFLEVNaXpCcUM7O0FBQzFFO0VBQXlDLGlCTmx6QkosRU1rekJpRDs7QUFDdEY7RUFBa0MsaUJObnpCRyxFTW16Qm1DOztBQUN4RTtFQUFzQyxpQk5wekJELEVNb3pCMkM7O0FBQ2hGO0VBQTZDLGlCTnJ6QlIsRU1xekJ5RDs7QUFDOUY7RUFBeUMsaUJOdHpCSixFTXN6QmlEOztBQUN0RjtFQUF3QyxpQk52ekJILEVNdXpCK0M7O0FBQ3BGO0VBQXVDLGlCTnh6QkYsRU13ekI2Qzs7QUFDbEY7RUFBaUMsaUJOenpCSSxFTXl6QmlDOztBQUN0RTtFQUEwQyxpQk4xekJMLEVNMHpCbUQ7O0FBQ3hGO0VBQXlDLGlCTjN6QkosRU0yekJpRDs7QUFDdEY7RUFBd0MsaUJONXpCSCxFTTR6QitDOztBQUNwRjtFQUF5QyxpQk43ekJKLEVNNnpCaUQ7O0FBQ3RGO0VBQTRDLGlCTjl6QlAsRU04ekJ1RDs7QUFDNUY7RUFBMEMsaUJOL3pCTCxFTSt6Qm1EOztBQUN4RjtFQUFxQyxpQk5oMEJBLEVNZzBCeUM7O0FBQzlFO0VBQW1DLGlCTmowQkUsRU1pMEJxQzs7QUFDMUU7RUFBd0MsaUJObDBCSCxFTWswQitDOztBQUNwRjtFQUFpQyxpQk5uMEJJLEVNbTBCaUM7O0FBQ3RFO0VBQXdDLGlCTnAwQkgsRU1vMEIrQzs7QUFDcEY7RUFBMEMsaUJOcjBCTCxFTXEwQm1EOztBQUN4RjtFQUF5QyxpQk50MEJKLEVNczBCaUQ7O0FBQ3RGO0VBQW1DLGlCTnYwQkUsRU11MEJxQzs7QUFDMUU7RUFBc0MsaUJOeDBCRCxFTXcwQjJDOztBQUNoRjtFQUF3QyxpQk56MEJILEVNeTBCK0M7O0FBQ3BGO0VBQW9DLGlCTjEwQkMsRU0wMEJ1Qzs7QUFDNUU7RUFBb0MsaUJOMzBCQyxFTTIwQnVDOztBQUM1RTtFQUFpQyxpQk41MEJJLEVNNDBCaUM7O0FBQ3RFO0VBQWtDLGlCTjcwQkcsRU02MEJtQzs7QUFDeEU7RUFBcUMsaUJOOTBCQSxFTTgwQnlDOztBQUM5RTtFQUFrQyxpQk4vMEJHLEVNKzBCbUM7O0FBQ3hFO0VBQWtDLGlCTmgxQkcsRU1nMUJtQzs7QUFDeEU7RUFBdUMsaUJOajFCRixFTWkxQjZDOztBQUNsRjtFQUFzQyxpQk5sMUJELEVNazFCMkM7O0FBQ2hGO0VBQXVDLGlCTm4xQkYsRU1tMUI2Qzs7QUFDbEY7RUFBa0MsaUJOcDFCRyxFTW8xQm1DOztBQUN4RTtFQUF1QyxpQk5yMUJGLEVNcTFCNkM7O0FBQ2xGO0VBQXVDLGlCTnQxQkYsRU1zMUI2Qzs7QUFDbEY7RUFBb0MsaUJOdjFCQyxFTXUxQnVDOztBQUM1RTtFQUF3QyxpQk54MUJILEVNdzFCK0M7O0FBQ3BGO0VBQXFDLGlCTnoxQkEsRU15MUJ5Qzs7QUFDOUU7RUFBMkMsaUJOMTFCTixFTTAxQnFEOztBQUMxRjtFQUE0QyxpQk4zMUJQLEVNMjFCdUQ7O0FBQzVGO0VBQXNDLGlCTjUxQkQsRU00MUIyQzs7QUFDaEY7RUFBd0MsaUJONzFCSCxFTTYxQitDOztBQUNwRjtFQUFpQyxpQk45MUJJLEVNODFCaUM7O0FBQ3RFO0VBQTRDLGlCTi8xQlAsRU0rMUJ1RDs7QUFDNUY7RUFBMEMsaUJOaDJCTCxFTWcyQm1EOztBQUN4RjtFQUE2QyxpQk5qMkJSLEVNaTJCeUQ7O0FBQzlGO0VBQTJDLGlCTmwyQk4sRU1rMkJxRDs7QUFDMUY7RUFBc0MsaUJObjJCRCxFTW0yQjJDOztBQUNoRjtFQUE4QyxpQk5wMkJULEVNbzJCMkQ7O0FBQ2hHO0VBQTRDLGlCTnIyQlAsRU1xMkJ1RDs7QUFDNUY7RUFBb0MsaUJOdDJCQyxFTXMyQnVDOztBQUM1RTtFQUF1QyxpQk52MkJGLEVNdTJCNkM7O0FBQ2xGO0VBQWdDLGlCTngyQkssRU13MkIrQjs7QUFDcEU7RUFBMEMsaUJOejJCTCxFTXkyQm1EOztBQUN4RjtFQUFvQyxpQk4xMkJDLEVNMDJCdUM7O0FBQzVFO0VBQW9DLGlCTjMyQkMsRU0yMkJ1Qzs7QUFDNUU7RUFBb0MsaUJONTJCQyxFTTQyQnVDOztBQUM1RTtFQUFvQyxpQk43MkJDLEVNNjJCdUM7O0FBQzVFO0VBQXNDLGlCTjkyQkQsRU04MkIyQzs7QUFDaEY7RUFBbUMsaUJOLzJCRSxFTSsyQnFDOztBQUMxRTtFQUF3QyxpQk5oM0JILEVNZzNCK0M7O0FBQ3BGO0VBQXdDLGlCTmozQkgsRU1pM0IrQzs7QUFDcEY7RUFBMkMsaUJObDNCTixFTWszQnFEOztBQUMxRjtFQUEyQyxpQk5uM0JOLEVNbTNCcUQ7O0FBQzFGO0VBQWtDLGlCTnAzQkcsRU1vM0JtQzs7QUFDeEU7RUFBaUMsaUJOcjNCSSxFTXEzQmlDOztBQUN0RTtFQUFzQyxpQk50M0JELEVNczNCMkM7O0FBQ2hGO0VBQTBDLGlCTnYzQkwsRU11M0JtRDs7QUFDeEY7RUFBdUMsaUJOeDNCRixFTXczQjZDOztBQUNsRjtFQUFrQyxpQk56M0JHLEVNeTNCbUM7O0FBQ3hFO0VBQXlDLGlCTjEzQkosRU0wM0JpRDs7QUFDdEY7RUFBeUMsaUJOMzNCSixFTTIzQmlEOztBQUN0RjtFQUEwQyxpQk41M0JMLEVNNDNCbUQ7O0FBQ3hGO0VBQXlDLGlCTjczQkosRU02M0JpRDs7QUFDdEY7RUFBd0MsaUJOOTNCSCxFTTgzQitDOztBQUNwRjtFQUF5QyxpQk4vM0JKLEVNKzNCaUQ7O0FBQ3RGO0VBQXdDLGlCTmg0QkgsRU1nNEIrQzs7QUFDcEY7RUFBaUMsaUJOajRCSSxFTWk0QmlDOztBQUN0RTtFQUF3QyxpQk5sNEJILEVNazRCK0M7O0FBQ3BGO0VBQXNDLGlCTm40QkQsRU1tNEIyQzs7QUFDaEY7RUFBa0MsaUJOcDRCRyxFTW80Qm1DOztBQUN4RTtFQUFzQyxpQk5yNEJELEVNcTRCMkM7O0FBQ2hGO0VBQW1DLGlCTnQ0QkUsRU1zNEJxQzs7QUFDMUU7RUFBbUMsaUJOdjRCRSxFTXU0QnFDOztBQUMxRTtFQUF3QyxpQk54NEJILEVNdzRCK0M7O0FBQ3BGO0VBQTBDLGlCTno0QkwsRU15NEJtRDs7QUFDeEY7RUFBbUMsaUJOMTRCRSxFTTA0QnFDOztBQUMxRTtFQUFxQyxpQk4zNEJBLEVNMjRCeUM7O0FBQzlFO0VBQXdDLGlCTjU0QkgsRU00NEIrQzs7QUFDcEY7RUFBeUMsaUJONzRCSixFTTY0QmlEOztBQUN0RjtFQUF3QyxpQk45NEJILEVNODRCK0M7O0FBQ3BGO0VBQStDLGlCTi80QlYsRU0rNEI2RDs7QUFDbEc7RUFBc0MsaUJOaDVCRCxFTWc1QjJDOztBQUNoRjtFQUFtQyxpQk5qNUJFLEVNaTVCcUM7O0FBQzFFO0VBQXFDLGlCTmw1QkEsRU1rNUJ5Qzs7QUFDOUU7RUFBNkMsaUJObjVCUixFTW01QnlEOztBQUM5RjtFQUFnQyxpQk5wNUJLLEVNbzVCK0I7O0FBQ3BFO0VBQXdDLGlCTnI1QkgsRU1xNUIrQzs7QUFDcEY7RUFBd0MsaUJOdDVCSCxFTXM1QitDOztBQUNwRjtFQUFtQyxpQk52NUJFLEVNdTVCcUM7O0FBQzFFO0VBQXFDLGlCTng1QkEsRU13NUJ5Qzs7QUFDOUU7RUFBdUMsaUJOejVCRixFTXk1QjZDOztBQUNsRjtFQUFvQyxpQk4xNUJDLEVNMDVCdUM7O0FBQzVFO0VBQTBDLGlCTjM1QkwsRU0yNUJtRDs7QUFDeEY7RUFBaUMsaUJONTVCSSxFTTQ1QmlDOztBQUN0RTtFQUFxQyxpQk43NUJBLEVNNjVCeUM7O0FBQzlFO0VBQW9DLGlCTjk1QkMsRU04NUJ1Qzs7QUFDNUU7RUFBa0MsaUJOLzVCRyxFTSs1Qm1DOztBQUN4RTtFQUF5QyxpQk5oNkJKLEVNZzZCaUQ7O0FBQ3RGO0VBQW1DLGlCTmo2QkUsRU1pNkJxQzs7QUFDMUU7RUFBdUMsaUJObDZCRixFTWs2QjZDOztBQUNsRjtFQUFvQyxpQk5uNkJDLEVNbTZCdUM7O0FBQzVFO0VBQTJDLGlCTnA2Qk4sRU1vNkJxRDs7QUFDMUY7RUFBZ0MsaUJOcjZCSyxFTXE2QitCOztBQUNwRTtFQUFpQyxpQk50NkJJLEVNczZCaUM7O0FBQ3RFO0VBQWlDLGlCTnY2QkksRU11NkJpQzs7QUFDdEU7RUFBa0MsaUJOeDZCRyxFTXc2Qm1DOztBQUN4RTtFQUFpQyxpQk56NkJJLEVNeTZCaUM7O0FBQ3RFO0VBQXNDLGlCTjE2QkQsRU0wNkIyQzs7QUFDaEY7RUFBcUMsaUJOMzZCQSxFTTI2QnlDOztBQUM5RTtFQUEyQyxpQk41NkJOLEVNNDZCcUQ7O0FBQzFGO0VBQTBDLGlCTjc2QkwsRU02NkJtRDs7QUFDeEY7RUFBcUMsaUJOOTZCQSxFTTg2QnlDOztBQUM5RTtFQUF3QyxpQk4vNkJILEVNKzZCK0M7O0FBQ3BGO0VBQXVDLGlCTmg3QkYsRU1nN0I2Qzs7QUFDbEY7RUFBK0IsaUJOajdCTSxFTWk3QjZCOztBQUNsRTtFQUFxQyxpQk5sN0JBLEVNazdCeUM7O0FBQzlFO0VBQW9DLGlCTm43QkMsRU1tN0J1Qzs7QUFDNUU7RUFBb0MsaUJOcDdCQyxFTW83QnVDOztBQUM1RTtFQUFzQyxpQk5yN0JELEVNcTdCMkM7O0FBQ2hGO0VBQXdDLGlCTnQ3QkgsRU1zN0IrQzs7QUFDcEY7RUFBOEMsaUJOdjdCVCxFTXU3QjJEOztBQUNoRztFQUE2QyxpQk54N0JSLEVNdzdCeUQ7O0FBQzlGO0VBQTZDLGlCTno3QlIsRU15N0J5RDs7QUFDOUY7RUFBZ0QsaUJOMTdCWCxFTTA3QitEOztBQUNwRztFQUF1RCxpQk4zN0JsQixFTTI3QjZFOztBQUNsSDtFQUF3QyxpQk41N0JILEVNNDdCK0M7O0FBQ3BGO0VBQXNDLGlCTjc3QkQsRU02N0IyQzs7QUFDaEY7RUFBc0MsaUJOOTdCRCxFTTg3QjJDOztBQUNoRjtFQUF1QyxpQk4vN0JGLEVNKzdCNkM7O0FBQ2xGO0VBQWtDLGlCTmg4QkcsRU1nOEJtQzs7QUFDeEU7RUFBeUMsaUJOajhCSixFTWk4QmlEOztBQUN0RjtFQUFpQyxpQk5sOEJJLEVNazhCaUM7O0FBQ3RFO0VBQXVDLGlCTm44QkYsRU1tOEI2Qzs7QUFDbEY7RUFBa0MsaUJOcDhCRyxFTW84Qm1DOztBQUN4RTtFQUF1QyxpQk5yOEJGLEVNcThCNkM7O0FBQ2xGO0VBQXNDLGlCTnQ4QkQsRU1zOEIyQzs7QUFDaEY7RUFBb0MsaUJOdjhCQyxFTXU4QnVDOztBQUM1RTtFQUFrQyxpQk54OEJHLEVNdzhCbUM7O0FBQ3hFO0VBQTZDLGlCTno4QlIsRU15OEJ5RDs7QUFDOUY7RUFBc0MsaUJOMThCRCxFTTA4QjJDOztBQUNoRjtFQUFrQyxpQk4zOEJHLEVNMjhCbUM7O0FBQ3hFO0VBQXdDLGlCTjU4QkgsRU00OEIrQzs7QUFDcEY7RUFBNEMsaUJONzhCUCxFTTY4QnVEOztBQUM1RjtFQUFrQyxpQk45OEJHLEVNODhCbUM7O0FBQ3hFO0VBQXNDLGlCTi84QkQsRU0rOEIyQzs7QUFDaEY7RUFBaUMsaUJOaDlCSSxFTWc5QmlDOztBQUN0RTtFQUFtQyxpQk5qOUJFLEVNaTlCcUM7O0FBQzFFO0VBQXdDLGlCTmw5QkgsRU1rOUIrQzs7QUFDcEY7RUFBbUMsaUJObjlCRSxFTW05QnFDOztBQUMxRTtFQUFrQyxpQk5wOUJHLEVNbzlCbUM7O0FBQ3hFO0VBQTBDLGlCTnI5QkwsRU1xOUJtRDs7QUFDeEY7RUFBeUMsaUJOdDlCSixFTXM5QmlEOztBQUN0RjtFQUFtQyxpQk52OUJFLEVNdTlCcUM7O0FBQzFFO0VBQWdDLGlCTng5QkssRU13OUIrQjs7QUFDcEU7RUFBbUMsaUJOejlCRSxFTXk5QnFDOztBQUMxRTtFQUEwQyxpQk4xOUJMLEVNMDlCbUQ7O0FBQ3hGO0VBQStCLGlCTjM5Qk0sRU0yOUI2Qjs7QUFDbEU7RUFBbUMsaUJONTlCRSxFTTQ5QnFDOztBQUMxRTtFQUFvQyxpQk43OUJDLEVNNjlCdUM7O0FBQzVFO0VBQTJDLGlCTjk5Qk4sRU04OUJxRDs7QUFDMUY7RUFBa0MsaUJOLzlCRyxFTSs5Qm1DOztBQUN4RTtFQUFpQyxpQk5oK0JJLEVNZytCaUM7O0FBQ3RFO0VBQWtDLGlCTmorQkcsRU1pK0JtQzs7QUFDeEU7RUFBcUMsaUJObCtCQSxFTWsrQnlDOztBQUM5RTtFQUEyQyxpQk5uK0JOLEVNbStCcUQ7O0FBQzFGO0VBQXNDLGlCTnArQkQsRU1vK0IyQzs7QUFDaEY7RUFBaUMsaUJOcitCSSxFTXErQmlDOztBQUN0RTtFQUFxQyxpQk50K0JBLEVNcytCeUM7O0FBQzlFO0VBQXdDLGlCTnYrQkgsRU11K0IrQzs7QUFDcEY7RUFBNkMsaUJOeCtCUixFTXcrQnlEOztBQUM5RjtFQUF1QyxpQk56K0JGLEVNeStCNkM7O0FBQ2xGO0VBQW1DLGlCTjErQkUsRU0wK0JxQzs7QUFDMUU7RUFBbUMsaUJOMytCRSxFTTIrQnFDOztBQUMxRTtFQUF1QyxpQk41K0JGLEVNNCtCNkM7O0FBQ2xGO0VBQW9DLGlCTjcrQkMsRU02K0J1Qzs7QUFDNUU7RUFBbUMsaUJOOStCRSxFTTgrQnFDOztBQUMxRTtFQUFnQyxpQk4vK0JLLEVNKytCK0I7O0FBQ3BFO0VBQWlDLGlCTmgvQkksRU1nL0JpQzs7QUFDdEU7RUFBcUMsaUJOai9CQSxFTWkvQnlDOztBQUM5RTtFQUEyQyxpQk5sL0JOLEVNay9CcUQ7O0FBQzFGO0VBQTJDLGlCTm4vQk4sRU1tL0JxRDs7QUFDMUY7RUFBdUMsaUJOcC9CRixFTW8vQjZDOztBQUNsRjtFQUF3QyxpQk5yL0JILEVNcS9CK0M7O0FBQ3BGO0VBQXVDLGlCTnQvQkYsRU1zL0I2Qzs7QUFDbEY7RUFBcUMsaUJOdi9CQSxFTXUvQnlDOztBQUM5RTtFQUFzQyxpQk54L0JELEVNdy9CMkM7O0FBQ2hGO0VBQXlDLGlCTnovQkosRU15L0JpRDs7QUFDdEY7RUFBMEMsaUJOMS9CTCxFTTAvQm1EOztBQUN4RjtFQUFzQyxpQk4zL0JELEVNMi9CMkM7O0FBQ2hGO0VBQW9DLGlCTjUvQkMsRU00L0J1Qzs7QUFDNUU7RUFBdUMsaUJONy9CRixFTTYvQjZDOztBQUNsRjtFQUF1QyxpQk45L0JGLEVNOC9CNkM7O0FBQ2xGO0VBQXNDLGlCTi8vQkQsRU0rL0IyQzs7QUFDaEY7RUFBd0MsaUJOaGdDSCxFTWdnQytDOztBQUNwRjtFQUF3QyxpQk5qZ0NILEVNaWdDK0M7O0FBQ3BGO0VBQXVDLGlCTmxnQ0YsRU1rZ0M2Qzs7QUFDbEY7RUFBcUMsaUJObmdDQSxFTW1nQ3lDOztBQUM5RTtFQUFxQyxpQk5wZ0NBLEVNb2dDeUM7O0FBQzlFO0VBQXVDLGlCTnJnQ0YsRU1xZ0M2Qzs7QUFDbEY7RUFBa0MsaUJOdGdDRyxFTXNnQ21DOztBQUN4RTtFQUFzQyxpQk52Z0NELEVNdWdDMkM7O0FBQ2hGO0VBQXFDLGlCTnhnQ0EsRU13Z0N5Qzs7QUFDOUU7RUFBMEMsaUJOemdDTCxFTXlnQ21EOztBQUN4RjtFQUFxQyxpQk4xZ0NBLEVNMGdDeUM7O0FBQzlFO0VBQW1DLGlCTjNnQ0UsRU0yZ0NxQzs7QUFDMUU7RUFBMEMsaUJONWdDTCxFTTRnQ21EOztBQUN4RjtFQUFrQyxpQk43Z0NHLEVNNmdDbUM7O0FBQ3hFO0VBQXlDLGlCTjlnQ0osRU04Z0NpRDs7QUFDdEY7RUFBdUMsaUJOL2dDRixFTStnQzZDOztBQUNsRjtFQUFvQyxpQk5oaENDLEVNZ2hDdUM7O0FBQzVFO0VBQW1DLGlCTmpoQ0UsRU1paENxQzs7QUFDMUU7RUFBMEMsaUJObGhDTCxFTWtoQ21EOztBQUN4RjtFQUFpQyxpQk5uaENJLEVNbWhDaUM7O0FBQ3RFO0VBQWtDLGlCTnBoQ0csRU1vaENtQzs7QUFDeEU7RUFBa0MsaUJOcmhDRyxFTXFoQ21DOztBQUN4RTtFQUFrQyxpQk50aENHLEVNc2hDbUM7O0FBQ3hFO0VBQXdDLGlCTnZoQ0gsRU11aEMrQzs7QUFDcEY7RUFBa0MsaUJOeGhDRyxFTXdoQ21DOztBQUN4RTtFQUF5QyxpQk56aENKLEVNeWhDaUQ7O0FBQ3RGO0VBQW9DLGlCTjFoQ0MsRU0waEN1Qzs7QUFDNUU7RUFBaUMsaUJOM2hDSSxFTTJoQ2lDOztBQUN0RTtFQUErQixpQk41aENNLEVNNGhDNkI7O0FBQ2xFO0VBQWdDLGlCTjdoQ0ssRU02aEMrQjs7QUFDcEU7RUFBNEMsaUJOOWhDUCxFTThoQ3VEOztBQUM1RjtFQUF3QyxpQk4vaENILEVNK2hDK0M7O0FBQ3BGO0VBQXVDLGlCTmhpQ0YsRU1naUM2Qzs7QUFDbEY7RUFBc0MsaUJOamlDRCxFTWlpQzJDOztBQUNoRjtFQUFrQyxpQk5saUNHLEVNa2lDbUM7O0FBQ3hFO0VBQW9DLGlCTm5pQ0MsRU1taUN1Qzs7QUFDNUU7RUFBbUMsaUJOcGlDRSxFTW9pQ3FDOztBQUMxRTtFQUFzQyxpQk5yaUNELEVNcWlDMkM7O0FBQ2hGO0VBQW1DLGlCTnRpQ0UsRU1zaUNxQzs7QUFDMUU7RUFBa0MsaUJOdmlDRyxFTXVpQ21DOztBQUN4RTtFQUFtQyxpQk54aUNFLEVNd2lDcUM7O0FBQzFFO0VBQTJDLGlCTnppQ04sRU15aUNxRDs7QUFDMUY7RUFBbUMsaUJOMWlDRSxFTTBpQ3FDOztBQUMxRTtFQUFxQyxpQk4zaUNBLEVNMmlDeUM7O0FBQzlFO0VBQTRDLGlCTjVpQ1AsRU00aUN1RDs7QUFDNUY7RUFBdUMsaUJON2lDRixFTTZpQzZDOztBQUNsRjtFQUFrQyxpQk45aUNHLEVNOGlDbUM7O0FBQ3hFO0VBQWlDLGlCTi9pQ0ksRU0raUNpQzs7QUFDdEU7RUFBd0MsaUJOaGpDSCxFTWdqQytDOztBQUNwRjtFQUF5QyxpQk5qakNKLEVNaWpDaUQ7O0FBQ3RGO0VBQTRDLGlCTmxqQ1AsRU1rakN1RDs7QUFDNUY7RUFBNEMsaUJObmpDUCxFTW1qQ3VEOztBQUM1RjtFQUEyQyxpQk5wakNOLEVNb2pDcUQ7O0FBQzFGO0VBQW9DLGlCTnJqQ0MsRU1xakN1Qzs7QUFDNUU7RUFBdUMsaUJOdGpDRixFTXNqQzZDOztBQUNsRjtFQUEyQyxpQk52akNOLEVNdWpDcUQ7O0FBQzFGO0VBQWdDLGlCTnhqQ0ssRU13akMrQjs7QUFDcEU7RUFBZ0QsaUJOempDWCxFTXlqQytEOztBQUNwRztFQUFxQyxpQk4xakNBLEVNMGpDeUM7O0FBQzlFO0VBQXNDLGlCTjNqQ0QsRU0yakMyQzs7QUFDaEY7RUFBNkMsaUJONWpDUixFTTRqQ3lEOztBQUM5RjtFQUF1QyxpQk43akNGLEVNNmpDNkM7O0FBQ2xGO0VBQXVDLGlCTjlqQ0YsRU04akM2Qzs7QUFDbEY7RUFBb0MsaUJOL2pDQyxFTStqQ3VDOztBQUM1RTtFQUFtQyxpQk5oa0NFLEVNZ2tDcUM7O0FBQzFFO0VBQWtDLGlCTmprQ0csRU1pa0NtQzs7QUFDeEU7RUFBaUMsaUJObGtDSSxFTWtrQ2lDOztBQUN0RTtFQUFpQyxpQk5ua0NJLEVNbWtDaUM7O0FBQ3RFO0VBQXdDLGlCTnBrQ0gsRU1va0MrQzs7QUFDcEY7RUFBeUMsaUJOcmtDSixFTXFrQ2lEOztBQUN0RjtFQUFrQyxpQk50a0NHLEVNc2tDbUM7O0FBQ3hFO0VBQW1DLGlCTnZrQ0UsRU11a0NxQzs7QUFDMUU7RUFBaUQsaUJOeGtDWixFTXdrQ2lFOztBQUN0RztFQUFpQyxpQk56a0NJLEVNeWtDaUM7O0FBQ3RFO0VBQXFDLGlCTjFrQ0EsRU0wa0N5Qzs7QUFDOUU7RUFBa0MsaUJOM2tDRyxFTTJrQ21DOztBQUN4RTtFQUFvQyxpQk41a0NDLEVNNGtDdUM7O0FBQzVFO0VBQTJDLGlCTjdrQ04sRU02a0NxRDs7QTFFOTlCMUY7RXdFOUZFLFVBQVM7RUFDVCx1QkFBc0I7RUFDdEIsWUFBVztFQUNYLGFBQVk7RUFDWixpQkFBZ0I7RUFDaEIsV0FBVTtFQUNWLG1CQUFrQjtFQUNsQixXQUFVLEVHbENtQjs7QTNFd0kvQjtFd0UxRkksV0FBVTtFQUNWLGFBQVk7RUFDWixVQUFTO0VBQ1Qsa0JBQWlCO0VBQ2pCLGlCQUFnQjtFQUNoQixZQUFXLEVBQ1o7O0FJdkRIOzs7R0FHRztBQUdIO0VBQ0UsbUNBQWtDO0VBQ2xDLG1CQUFrQjtFQUNsQixpQkFBZ0I7RUFDaEIsbUNBQStDO0VBQy9DLDZQQUlvRTs7QUFHdEU7RUFDRSxtQ0FBa0M7RUFDbEMsaUJBQWdCLEVBQ2pCOztBQ3JCRDs7O0dBR0c7QUFHSDtFQUNFLG1DQUFrQztFQUNsQyxtQkFBa0I7RUFDbEIsaUJBQWdCO0VBQ2hCLG9DQUE2QztFQUM3QyxnUUFJa0U7O0FBR3BFOztFQUVFLG1DQUFrQztFQUNsQyxpQkFBZ0IsRUFDakI7O0FDdEJEOzs7R0FHRztBQUdIO0VBQ0UscUNBQW9DO0VBQ3BDLG1CQUFrQjtFQUNsQixvQkFBbUI7RUFDbkIsb0NBQThDO0VBQzlDLGdRQUltRTs7QUFHckU7RUFDRSxxQ0FBb0MsRUFDckM7QUNwQkQ7Ozs7OztHQU1HLFVBQVUsV0FBVyxDQUFDLHNDQUFzQyxXQUFXLENBQUMsS0FBSywwRUFBMEUsZ0JBQWdCLGtCQUFrQixlQUFlLENBQUMsU0FBUyxZQUFZLGtCQUFrQixrQkFBa0IsZUFBZSxDQUFDLCtCQUErQixZQUFZLGFBQWEsQ0FBQyxlQUFlLFVBQVUsQ0FBQyx1QkFBdUIsaUJBQWlCLGNBQWMsZ0JBQWdCLG1DQUFtQyxpQkFBaUIsQ0FBQyxjQUFjLHdCQUF3QixDQUFDLDhCQUE4Qiw0RUFBNEUsc0VBQXNFLGtFQUFrRSw0REFBNEQsa0JBQWtCLFdBQVcsQ0FBQyw4REFBOEQsYUFBYSxDQUFDLHlCQUF5Qiw4QkFBOEIsYUFBYSxDQUFDLENBQUMseUJBQXlCLGtFQUFrRSxhQUFhLENBQUMsQ0FBQyx5QkFBeUIsMERBQTBELHNDQUFzQyxrQ0FBa0MsaUNBQWlDLDZCQUE2QixDQUFDLENBQUMsaUJBQWlCLGdCQUFnQix5QkFBeUIsV0FBVyxDQUFDLGFBQWEsZ0JBQWdCLGFBQWEsV0FBVyw0QkFBNEIsQ0FBQywyREFBMkQsY0FBYyxDQUFDLG9CQUFvQixNQUFNLFFBQVEsTUFBTSxDQUFDLDJDQUEyQyxnQkFBZ0IsQ0FBQyx5QkFBeUIsMkNBQTJDLGlCQUFpQixDQUFDLENBQUMsNkJBQTZCLGNBQWMsQ0FBQyxnQkFBZ0IsZUFBZSxDQUFDLDZRQUE2USx3QkFBd0IsbUJBQW1CLGVBQWUsQ0FBQyxTQUFTLGlCQUFpQixhQUFhLGtCQUFrQixpQkFBaUIsa0JBQWtCLGtCQUFrQixDQUFDLDBDQUEwQyx3Q0FBd0MsQ0FBQyxFQUFFLGFBQWEsQ0FBQyx5QkFBeUIsYUFBYSxxQkFBcUIsYUFBYSxDQUFDLGFBQWEscUJBQXFCLGNBQWMsQ0FBQyxtQkFBbUIsV0FBVyxjQUFjLGNBQWMsQ0FBQyxhQUFhLGtCQUFrQixpQkFBaUIsWUFBWSxDQUFDLHFCQUFxQiwrQ0FBK0MsMENBQTBDLHVDQUF1QyxnQkFBZ0Isa0JBQWtCLFlBQVksZ0JBQWdCLGVBQWUsQ0FBQyxxQ0FBcUMsYUFBYSxDQUFDLCtDQUErQyxpQ0FBaUMsd0JBQXdCLENBQUMsMkdBQTJHLDZCQUE2QixnQ0FBZ0MsQ0FBQyxpRUFBaUUsV0FBVyxTQUFTLENBQUMscUVBQXFFLFVBQVUsQ0FBQywwRUFBMEUsVUFBVSxDQUFDLDREQUE0RCxXQUFXLENBQUMseUJBQXlCLGdFQUFnRSxjQUFjLHNCQUFzQixDQUFDLENBQUMseUJBQXlCLDJCQUEyQixVQUFVLENBQUMsNENBQTRDLGtCQUFrQixDQUFDLDhCQUE4QixjQUFjLFFBQVEsQ0FBQyxDQUFDLDZCQUE2QixXQUFXLDZCQUE2QixzQkFBc0Isa0JBQWtCLHVCQUF1QixDQUFDLG9DQUFvQyxlQUFlLENBQUMsbUNBQW1DLFVBQVUsQ0FBQyx1RUFBdUUsc0JBQXNCLENBQUMsdUNBQXVDLFlBQVksQ0FBQyxnSUFBZ0ksZ0JBQWdCLENBQUMsc0NBQXNDLGtCQUFrQixRQUFRLFVBQVUsa0JBQWtCLGNBQWMsZ0JBQWdCLGNBQWMsQ0FBQyxtQkFBbUIseUNBQXlDLG9DQUFvQyxpQ0FBaUMsY0FBYyxXQUFXLFlBQVksZUFBZSxpQkFBaUIsa0JBQWtCLFlBQVksd0RBQXdELGVBQWUsZ0JBQWdCLGVBQWUsQ0FBQyw0QkFBNEIsYUFBYSxDQUFDLDhCQUE4QixZQUFZLENBQUMsMkJBQTJCLFVBQVUsQ0FBQyxnQkFBZ0Isa0JBQWtCLHdCQUF3QixDQUFDLG1CQUFtQixTQUFTLGNBQWMsQ0FBQyx5QkFBeUIsZUFBZSxxQkFBcUIsaUJBQWlCLGVBQWUsQ0FBQyw0QkFBNEIsWUFBWSx1QkFBdUIsYUFBYSxnQkFBZ0IsZUFBZSxnQkFBZ0Isa0JBQWtCLFNBQVMsV0FBVyxpQkFBaUIsQ0FBQyxpQ0FBaUMsV0FBVyxxQkFBcUIsb0JBQW9CLENBQUMsdUhBQXVILGdCQUFnQixDQUFDLHlDQUF5QyxjQUFnQixDQUFDLHlCQUF5Qiw0QkFBNEIsa0JBQWtCLGVBQWUsTUFBTSxRQUFRLFdBQVcsbUJBQW1CLGlCQUFpQixDQUFDLHNDQUFzQyxhQUFhLENBQUMsQ0FBQyxlQUFlLFdBQVcsU0FBUyxTQUFTLGlCQUFpQixDQUFDLHlCQUF5QixtQ0FBbUMsVUFBVSxDQUFDLGdDQUFnQyxTQUFTLFVBQVUsQ0FBQyxxQ0FBcUMsaUJBQWlCLG9CQUFvQixnQkFBZ0IsQ0FBQyxDQUFDLHlCQUF5QixhQUFhLGlCQUFpQixDQUFDLHdDQUF3QyxXQUFXLFVBQVUsQ0FBQyxxQkFBcUIsUUFBUSxDQUFDLGlDQUFpQyxXQUFXLENBQUMsQ0FBQyx5QkFBeUIsMkJBQTJCLHFCQUFxQixDQUFDLCtDQUErQyxjQUFjLGtCQUFrQixNQUFNLFVBQVUsQ0FBQyxDQUFDLGNBQWMsa0JBQWtCLE1BQU0sT0FBTyxpQkFBaUIsZ0JBQWdCLFlBQVksWUFBWSwyRUFBMkUscUVBQXFFLGlFQUFpRSwwREFBMEQsQ0FBQyx5QkFBeUIsY0FBYyxpQkFBaUIsQ0FBQyxDQUFDLHlCQUF5QixjQUFjLHVDQUF1QyxtQ0FBbUMsa0NBQWtDLDhCQUE4QixDQUFDLENBQUMseUJBQXlCLGdDQUFnQyx1Q0FBdUMsbUNBQW1DLGtDQUFrQyw4QkFBOEIsQ0FBQyxDQUFDLHlCQUF5Qiw0QkFBNEIsa0NBQWtDLDhCQUE4Qiw2QkFBNkIseUJBQXlCLENBQUMsQ0FBQyxTQUFTLG1CQUFtQixDQUFDLDBCQUEwQix3QkFBd0IsQ0FBQyxZQUFZLGtCQUFrQixXQUFXLGFBQWEsZUFBZSxDQUFDLHFDQUFxQyxZQUFZLGFBQWEsQ0FBQyxrQkFBa0IsVUFBVSxDQUFDLHVCQUF1QixXQUFXLGVBQWUsV0FBVyxDQUFDLGtCQUFrQix5QkFBeUIsY0FBYyxrQkFBa0IsU0FBUyxDQUFDLG9CQUFvQixnQkFBZ0IsaUJBQWlCLENBQUMsb0JBQW9CLHFCQUFxQixrQkFBa0IsZUFBZSxjQUFjLENBQUMsZ0ZBQWdGLGdCQUFnQixDQUFDLGNBQWMsZ0JBQWdCLFNBQVMsU0FBUyxDQUFDLGlCQUFpQixrQkFBa0IsU0FBUyxTQUFTLENBQUMsbUJBQW1CLDJCQUEyQixhQUFhLENBQUMsNkVBQTZFLFVBQVUsQ0FBQyxnREFBZ0QsZ0JBQWdCLENBQUMsd0JBQXdCLGNBQWMsQ0FBQyx3QkFBd0IsNEJBQTRCLGNBQWMsQ0FBQywwRkFBMEYsV0FBVyxZQUFZLFVBQVUsa0JBQWtCLHNDQUFzQyxpQ0FBaUMsNkJBQTZCLENBQUMsa0NBQWtDLGtCQUFrQixRQUFRLFdBQVcsZUFBZSxDQUFDLDBHQUEwRyxpQ0FBaUMsNkJBQTZCLDRCQUE0Qix3QkFBd0IsQ0FBQyxxQ0FBcUMsYUFBYSxDQUFDLHlCQUF5Qix1SUFBdUksNEJBQTRCLFdBQVcsQ0FBQyw2Q0FBNkMsa0NBQWtDLDhCQUE4Qiw2QkFBNkIsMEJBQTBCLHNCQUFzQixXQUFXLENBQUMsZ0RBQWdELGlCQUFpQixDQUFDLGtEQUFrRCxjQUFjLENBQUMsdURBQXVELDJCQUEyQixDQUFDLHNFQUFzRSw4QkFBOEIsQ0FBQywrREFBK0QsZ0JBQWdCLG1CQUFtQiw4QkFBOEIsQ0FBQyx1VkFBdVYsd0JBQXdCLCtCQUErQixDQUFDLGtEQUFrRCxVQUFVLENBQUMsNkRBQTZELGNBQWMsa0JBQWtCLG1CQUFtQixjQUFjLENBQUMsMkRBQTJELFlBQVksQ0FBQyxvREFBb0QsZ0JBQWdCLENBQUMsQ0FBQyx5QkFBeUIsdU5BQXVOLHlCQUF5QixrQkFBa0IsWUFBWSxTQUFTLENBQUMsK0ZBQStGLE1BQU0saUJBQWlCLDJCQUEyQix3QkFBd0IsQ0FBQyxnSEFBZ0gsNkJBQTZCLFlBQVksc0JBQXNCLHNCQUFzQixxQkFBcUIsV0FBVyxDQUFDLDJJQUEySSxZQUFZLENBQUMsdUdBQXVHLFNBQVMsYUFBYSxDQUFDLENBQUMsb0ZBQW9GLGdCQUFnQixDQUFDLHlDQUF5QyxzQ0FBc0MsQ0FBQyxnRUFBZ0UsbUJBQW1CLGVBQWUsQ0FBQyxvQkFBb0IsZ0JBQWdCLENBQUMsc0NBQXNDLGdCQUFnQixrQkFBa0IsQ0FBQyxtQkFBbUIsaUJBQWlCLENBQUMseUNBQXlDLGtCQUFrQixXQUFXLFFBQVEsZUFBZSxDQUFDLG9CQUFvQixlQUFlLGFBQWEsUUFBUSxDQUFDLHFDQUFxQyxNQUFNLGFBQWEsWUFBWSx5Q0FBeUMsb0NBQW9DLGdDQUFnQyxDQUFDLGlCQUFpQixrQkFBa0IsaUJBQWlCLFlBQVksQ0FBQyx5QkFBeUIsaUJBQWlCLGlCQUFpQixDQUFDLENBQUMsOEJBQThCLGlCQUFpQixDQUFDLGdHQUFnRyxPQUFPLENBQUMsaUZBQWlGLE9BQU8sQ0FBQyx5QkFBeUIsNEdBQTRHLGtCQUFrQixDQUFDLENBQUMsd0JBQXdCLGVBQWUsWUFBWSxnQkFBZ0IsbUJBQW1CLENBQUMsa0tBQWtLLG1CQUFtQixDQUFDLG9DQUFvQyxlQUFlLENBQUMsOEVBQThFLGdCQUFnQixrQkFBa0Isa0NBQWtDLG1DQUFtQyxDQUFDLDBDQUEwQyxjQUFjLENBQUMsK0xBQStMLGdCQUFnQixrQkFBa0Isa0JBQWtCLENBQUMseUJBQXlCLCtCQUErQixhQUFhLENBQUMsa0NBQWtDLGtCQUFrQixDQUFDLENBQUMseUJBQXlCLGdCQUFnQixlQUFlLGVBQWUsa0JBQWtCLENBQUMsNEJBQTRCLGNBQWMsZ0JBQWdCLGNBQWMsQ0FBQyxzQkFBc0IsZ0JBQWdCLFVBQVUsY0FBYyxDQUFDLDJCQUEyQixjQUFjLGlCQUFpQixDQUFDLG1FQUFtRSxZQUFZLGFBQWEsQ0FBQyxpQ0FBaUMsVUFBVSxDQUFDLHVEQUF1RCxZQUFZLENBQUMsaUNBQWlDLFdBQVcsV0FBVyxZQUFZLGtCQUFrQixrQkFBa0IsZ0JBQWdCLENBQUMsaUNBQWlDLGlCQUFpQixjQUFjLENBQUMsNkRBQTZELFFBQVEsQ0FBQyxtQ0FBbUMsU0FBUyxjQUFjLENBQUMsZ0NBQWdDLFFBQVEsQ0FBQyxzQkFBc0IsYUFBYSxDQUFDLGdFQUFnRSxrQkFBa0IsQ0FBQyxxREFBcUQscUJBQXFCLENBQUMsMERBQTBELG1CQUFtQixhQUFhLENBQUMsMExBQTBMLDBCQUEwQiwyQkFBMkIsQ0FBQyxpTUFBaU0sa0JBQWtCLENBQUMsZ0VBQWdFLFVBQVUsQ0FBQyx1UkFBdVIsbUJBQW1CLFVBQVUsQ0FBQyxpR0FBaUcsVUFBVSxDQUFDLHVEQUF1RCxrQkFBa0IsQ0FBQyw4REFBOEQsYUFBYSxDQUFDLHVCQUF1QixhQUFhLENBQUMsa0VBQWtFLG1CQUFtQiw2QkFBNkIsQ0FBQyxzREFBc0QscUJBQXFCLENBQUMsMkRBQTJELG1CQUFtQixVQUFVLENBQUMsNkxBQTZMLDBCQUEwQiwyQkFBMkIsQ0FBQyxvTUFBb00sa0JBQWtCLENBQUMsMlJBQTJSLG1CQUFtQixVQUFVLENBQUMsbUdBQW1HLFVBQVUsQ0FBQyw2Q0FBNkMsaUJBQWlCLENBQUMsd0RBQXdELGtCQUFrQixDQUFDLCtEQUErRCxhQUFhLENBQUMsZUFBZSxnQkFBZ0IsaUJBQWlCLENBQUMsb0JBQW9CLFVBQVUsQ0FBQyxnRkFBZ0YsaUJBQWlCLENBQUMsMEJBQTBCLHlCQUF5QixVQUFVLENBQUMsd0JBQXdCLHFCQUFxQixDQUFDLGdJQUFnSSxZQUFZLGdCQUFnQixTQUFTLFFBQVEsQ0FBQyx5SUFBeUksaUJBQWlCLENBQUMsOEpBQThKLDJCQUEyQiw0QkFBNEIsNkJBQTZCLDRCQUE0Qix5QkFBeUIsaUJBQWlCLGdDQUFnQyxjQUFjLGNBQWMsQ0FBQyxvS0FBb0sseUJBQXlCLDBCQUEwQiwrQkFBK0IsOEJBQThCLGVBQWUsc0JBQXNCLGlCQUFpQixnQ0FBZ0Msc0JBQXNCLGlCQUFpQixDQUFDLHlCQUF5QixvS0FBb0ssMkJBQTJCLHFCQUFxQixDQUFDLENBQUMsc0xBQXNMLHFCQUFxQixrQkFBa0IsQ0FBQywySkFBMkosaUJBQWlCLFNBQVMsVUFBVSxnQkFBZ0IsaUJBQWlCLENBQUMsMEtBQTBLLGNBQWMsbUJBQW1CLCtCQUErQixDQUFDLDRMQUE0TCxtQkFBbUIsb0JBQW9CLENBQUMsNkRBQTZELGNBQWMsZ0JBQWdCLHVCQUF1QixZQUFZLENBQUMsMk1BQTJNLFVBQVUsQ0FBQyx3REFBd0QsU0FBUyxpQkFBaUIsQ0FBQyxnRUFBZ0UsMkJBQTJCLFdBQVcsV0FBVyxDQUFDLDJEQUEyRCxVQUFVLGtCQUFrQixjQUFjLGVBQWUsaUJBQWlCLENBQUMsaUVBQWlFLGNBQWMsZUFBZSxrQkFBa0IsTUFBTSxPQUFPLENBQUMsMERBQTBELGtCQUFrQixlQUFlLGFBQWEsQ0FBQyw2SEFBNkgsWUFBWSxhQUFhLENBQUMsOERBQThELFVBQVUsQ0FBQyxxREFBcUQsWUFBWSxDQUFDLHdEQUF3RCxlQUFlLFVBQVUsa0JBQWtCLGFBQWEsQ0FBQywrREFBK0QsVUFBVSxRQUFRLENBQUMsc0NBQXNDLDBCQUEwQix5QkFBeUIsa0JBQWtCLG1CQUFtQixXQUFXLENBQUMsdUZBQXVGLCtCQUErQiw2QkFBNkIsQ0FBQyxxREFBcUQsYUFBYSxhQUFhLGlCQUFpQixDQUFDLHlEQUF5RCxVQUFVLFlBQVksV0FBVyxpQkFBaUIseUJBQXlCLGtDQUFrQyxDQUFDLHVEQUF1RCxVQUFVLFdBQVcsNEJBQTRCLGVBQWUsZUFBZSxDQUFDLDZEQUE2RCxjQUFjLGNBQWMsQ0FBQyxpREFBaUQsYUFBYSxnQ0FBZ0MsNEJBQTRCLENBQUMsK0dBQStHLFlBQVksYUFBYSxDQUFDLHVEQUF1RCxVQUFVLENBQUMsbURBQW1ELHFCQUFxQixDQUFDLHlCQUF5QixtREFBbUQsMkJBQTJCLHFCQUFxQixDQUFDLENBQUMsbURBQW1ELHlCQUF5QixZQUFZLENBQUMsbUhBQW1ILFlBQVksYUFBYSxDQUFDLHlEQUF5RCxVQUFVLENBQUMsZ0VBQWdFLGFBQWEsQ0FBQyx5QkFBeUIsc0VBQXNFLHdCQUF3QixDQUFDLENBQUMsbUNBQW1DLFdBQVcsV0FBVyxZQUFZLGtCQUFrQixrQkFBa0IsZUFBZSxDQUFDLHlCQUF5QixtQ0FBbUMsV0FBVyxlQUFlLGdCQUFnQixnQkFBZ0IsQ0FBQyxDQUFDLDJDQUEyQyx1Q0FBdUMsbUNBQW1DLDhCQUE4QiwwQkFBMEIsQ0FBQyxtQkFBbUIsR0FBRyxzREFBc0QsbUNBQW1DLFNBQVMsQ0FBQyxJQUFJLHVEQUF1RCxrQ0FBa0MsQ0FBQyxJQUFJLHNEQUFzRCxTQUFTLENBQUMsSUFBSSxxREFBcUQsQ0FBQyxLQUFLLDRCQUE0QixDQUFDLENBQUMsMkJBQTJCLEdBQUcsOERBQThELDJDQUEyQyxTQUFTLENBQUMsSUFBSSwrREFBK0QsMENBQTBDLENBQUMsSUFBSSw4REFBOEQsU0FBUyxDQUFDLElBQUksNkRBQTZELENBQUMsS0FBSyxvQ0FBb0MsQ0FBQyxDQUFDLG1DQUFtQyxpQkFBaUIsQ0FBQyxrREFBa0Qsa0JBQWtCLFFBQVEsU0FBUyxDQUFDLHlCQUF5QixnQ0FBZ0MsV0FBVyxDQUFDLG1DQUFtQyxlQUFlLENBQUMsa0RBQWtELGtCQUFrQixTQUFTLFVBQVUsc0JBQXNCLGVBQWUsQ0FBQyxDQUFDLGNBQWMsZ0JBQWdCLGdCQUFnQixvQkFBb0IsQ0FBQyxvQkFBb0IscUJBQXFCLGVBQWUsQ0FBQyw2R0FBNkcsV0FBVyxTQUFTLENBQUMsMEJBQTBCLHdCQUF3QixxQkFBcUIsZUFBZSxDQUFDLDhCQUE4QixhQUFhLENBQUMsaUZBQWlGLHFCQUFxQixlQUFlLENBQUMsb0NBQW9DLGFBQWEsQ0FBQyw4QkFBOEIsYUFBYSxDQUFDLGlGQUFpRixxQkFBcUIsZUFBZSxDQUFDLG9DQUFvQyxhQUFhLENBQUMsNEJBQTRCLGFBQWEsQ0FBQyw2RUFBNkUscUJBQXFCLGVBQWUsQ0FBQyxrQ0FBa0MsYUFBYSxDQUFDLGdDQUFnQyxnQkFBZ0IscUJBQXFCLHFCQUFxQixDQUFDLCtGQUErRixlQUFlLENBQUMsY0FBYyxjQUFjLENBQUMsMEJBQTBCLGdCQUFnQixDQUFDLHFJQUFxSSxnQkFBZ0IsQ0FBQyxxSUFBcUksZ0JBQWdCLENBQUMsa0NBQWtDLHdCQUF3QixlQUFlLENBQUMsZ0dBQWdHLGlCQUFpQixDQUFDLDBCQUEwQixXQUFXLENBQUMsZ0ZBQWdGLGlCQUFpQixDQUFDLDBCQUEwQixVQUFVLENBQUMsZ0ZBQWdGLGlCQUFpQixDQUFDLDRCQUE0QixVQUFVLENBQUMsb0ZBQW9GLGlCQUFpQixDQUFDLG1CQUFtQixrQkFBa0IsV0FBVyxhQUFhLHFCQUFxQixpQkFBaUIsQ0FBQyxpQ0FBaUMsV0FBVyxrQkFBa0IsUUFBUSxDQUFDLHFEQUFxRCxVQUFVLENBQUMscURBQXFELFVBQVUsQ0FBQyx1REFBdUQsU0FBUyxDQUFDLCtCQUErQixlQUFlLENBQUMsaUNBQWlDLFdBQVcsQ0FBQyx1QkFBdUIsUUFBUSxDQUFDLCtDQUErQyx3QkFBd0IsQ0FBQyxtRkFBbUYsb01BQW9NLCtMQUErTCwyTEFBMkwsQ0FBQywwQ0FBMEMsd0JBQXdCLENBQUMsOEVBQThFLG9NQUFvTSwrTEFBK0wsMkxBQTJMLENBQUMsc0NBQXNDLHdCQUF3QixDQUFDLDBFQUEwRSxvTUFBb00sK0xBQStMLDJMQUEyTCxDQUFDLDJDQUEyQyx3QkFBd0IsQ0FBQywrRUFBK0Usb01BQW9NLCtMQUErTCwyTEFBMkwsQ0FBQyx1Q0FBdUMsd0JBQXdCLENBQUMsMkVBQTJFLG9NQUFvTSwrTEFBK0wsMkxBQTJMLENBQUMsV0FBVyxrQkFBa0Isa0JBQWtCLGNBQWMsbUJBQW1CLG9DQUFvQyxDQUFDLGtCQUFrQixZQUFZLENBQUMsNkJBQTZCLGtCQUFrQixrQkFBa0IsY0FBYyxXQUFXLDRCQUE0QixjQUFjLFdBQVcsMkJBQTJCLG9CQUFvQixDQUFDLG1DQUFtQyxXQUFXLDJCQUEyQixDQUFDLGNBQWMsZUFBZSxpQkFBaUIsa0JBQWtCLG1CQUFtQixTQUFTLENBQUMsYUFBYSxjQUFjLENBQUMsbUJBQW1CLGNBQWMsY0FBYyxlQUFlLGNBQWMsQ0FBQywyQkFBMkIsU0FBUyxDQUFDLGlCQUFpQixrQ0FBa0MsNkJBQTZCLDBCQUEwQixrQkFBa0IsVUFBVSxXQUFXLFVBQVUsZUFBZSxzQkFBc0IsQ0FBQyxpQkFBaUIscUJBQXFCLGFBQWEsQ0FBQyx1QkFBdUIsY0FBYyxDQUFDLHlCQUF5QixXQUFXLGlCQUFpQixDQUFDLGlCQUFpQixZQUFZLENBQUMsYUFBYSxjQUFjLENBQUMsQ0FBQyxLQUFLLGtCQUFrQixrQkFBa0IsbUJBQW1CLDZCQUE2QixtQkFBbUIsV0FBVyxvQ0FBb0MsQ0FBQyxpQkFBaUIsd0JBQXdCLENBQUMsY0FBYyx3QkFBd0IsQ0FBQyxnQkFBZ0Isd0JBQXdCLENBQUMsaUJBQWlCLHdCQUF3QixDQUFDLGlCQUFpQix3QkFBd0IsQ0FBQyxpQkFBaUIsd0JBQXdCLENBQUMsNERBQTRELFlBQVksQ0FBQyxxQkFBcUIsZ0NBQWdDLFFBQVEsQ0FBQyxrQ0FBa0Msa0JBQWtCLENBQUMsOEJBQThCLGlCQUFpQixhQUFhLENBQUMsbUJBQW1CLDhCQUE4QixDQUFDLGtCQUFrQiw2QkFBNkIsQ0FBQyxlQUFlLFlBQVksQ0FBQyw0Q0FBNEMsc0JBQXNCLENBQUMseUVBQXlFLDBCQUEwQixDQUFDLDJCQUEyQix3QkFBd0IsQ0FBQyx1Q0FBdUMsV0FBVyxtQkFBbUIsd0JBQXdCLENBQUMscUZBQXFGLFVBQVUsQ0FBQywyQkFBMkIsd0JBQXdCLENBQUMsdUNBQXVDLFdBQVcsbUJBQW1CLHdCQUF3QixDQUFDLHFGQUFxRixVQUFVLENBQUMsd0JBQXdCLHdCQUF3QixDQUFDLG9DQUFvQyxXQUFXLG1CQUFtQix3QkFBd0IsQ0FBQywrRUFBK0UsVUFBVSxDQUFDLDBCQUEwQix3QkFBd0IsQ0FBQyxzQ0FBc0MsV0FBVyxtQkFBbUIsd0JBQXdCLENBQUMsbUZBQW1GLFVBQVUsQ0FBQywyQkFBMkIsd0JBQXdCLENBQUMsdUNBQXVDLFdBQVcsbUJBQW1CLHdCQUF3QixDQUFDLHFGQUFxRixVQUFVLENBQUMsMkJBQTJCLHdCQUF3QixDQUFDLHVDQUF1QyxXQUFXLG1CQUFtQix3QkFBd0IsQ0FBQyxxRkFBcUYsVUFBVSxDQUFDLDJDQUEyQyxTQUFTLGVBQWUsQ0FBQyx3Q0FBd0MsVUFBVSxDQUFDLHFCQUFxQixpQkFBaUIsQ0FBQyxpQkFBaUIsa0JBQWtCLFdBQVcsZ0JBQWdCLGVBQWUsbUJBQW1CLENBQUMsd0ZBQXdGLGtCQUFrQixNQUFNLE9BQU8sV0FBVyxXQUFXLENBQUMsd0NBQXdDLFdBQVcsaUNBQWlDLGlCQUFpQixDQUFDLGdEQUFnRCxrQkFBa0IsUUFBUSxTQUFTLGtCQUFrQixpQkFBaUIsV0FBVyxjQUFjLENBQUMsa0RBQWtELDBCQUEwQixDQUFDLDJHQUEyRyxZQUFZLGFBQWEsQ0FBQyxvREFBb0QsVUFBVSxDQUFDLFlBQVksV0FBVyxjQUFjLGFBQWEsaUJBQWlCLENBQUMsd0JBQXdCLCtCQUErQixDQUFDLHVDQUF1QyxrQkFBa0IsQ0FBQywrRUFBK0UscUJBQXFCLGVBQWUsU0FBUyxhQUFhLENBQUMsd0RBQXdELGdCQUFnQixDQUFDLHVCQUF1QixrQkFBa0IsV0FBVyxPQUFPLENBQUMsK0NBQStDLGlCQUFpQixDQUFDLGlEQUFpRCxRQUFRLFNBQVMsQ0FBQywyQ0FBMkMsb0JBQW9CLENBQUMsY0FBYyxZQUFZLGVBQWUsdUJBQXVCLGFBQWEsQ0FBQyx3Q0FBd0MsYUFBYSxDQUFDLHlCQUF5QixlQUFlLENBQUMsVUFBVSx5QkFBeUIsMEJBQTBCLCtCQUErQiw4QkFBOEIsWUFBWSxDQUFDLHFCQUFxQiw0QkFBNEIsMEJBQTBCLENBQUMsaUJBQWlCLGVBQWUsQ0FBQyxjQUFjLGNBQWMsQ0FBQyw0QkFBNEIsWUFBWSxDQUFDLHVDQUF1QyxXQUFXLENBQUMsb0JBQW9CLHlCQUF5QiwwQkFBMEIsNkJBQTZCLDZCQUE2QixDQUFDLDBCQUEwQix5QkFBeUIsMEJBQTBCLCtCQUErQiwyQkFBMkIsQ0FBQyxZQUFZLHlCQUF5QiwwQkFBMEIsK0JBQStCLDhCQUE4Qiw2QkFBNkIsYUFBYSxxQkFBcUIsQ0FBQyxjQUFjLGFBQWEsQ0FBQyx5QkFBeUIsaUJBQWlCLFdBQVcsaUJBQWlCLENBQUMsQ0FBQyxjQUFjLGtCQUFrQixDQUFDLDJCQUEyQixjQUFjLDRCQUE0QixDQUFDLG1FQUFtRSxZQUFZLGFBQWEsQ0FBQyxpQ0FBaUMsVUFBVSxDQUFDLHdDQUF3QyxlQUFlLENBQUMseUNBQXlDLGFBQWEsQ0FBQywrQkFBK0IsVUFBVSxDQUFDLDRCQUE0QixpQkFBaUIsVUFBVSxDQUFDLHdCQUF3QixXQUFXLGNBQWMsZUFBZSxDQUFDLDBCQUEwQixnQkFBZ0IsY0FBYyxDQUFDLFdBQVcsU0FBUyxVQUFVLGdCQUFnQixhQUFhLENBQUMsY0FBYyxrQkFBa0IsYUFBYSxtQkFBbUIsa0JBQWtCLDhCQUE4QixVQUFVLENBQUMsMkJBQTJCLGVBQWUsQ0FBQyxxQ0FBcUMsbUJBQW1CLENBQUMsb0JBQW9CLHFCQUFxQixnQkFBZ0IsZUFBZSxDQUFDLHFCQUFxQixpQkFBaUIsYUFBYSxDQUFDLHFCQUFxQixhQUFhLFlBQVksYUFBYSxDQUFDLG1GQUFtRixpQkFBaUIsY0FBYyxDQUFDLDJCQUEyQixvQkFBb0IsQ0FBQyxtQkFBbUIsVUFBVSxDQUFDLHlCQUF5Qiw2QkFBNkIsZUFBZSxDQUFDLDBCQUEwQiw2QkFBNkIsQ0FBQyxtQkFBbUIseUJBQXlCLENBQUMsb0JBQW9CLHlCQUF5QixDQUFDLGlCQUFpQix5QkFBeUIsQ0FBQyxvQkFBb0IseUJBQXlCLENBQUMsb0JBQW9CLHlCQUF5QixDQUFDLG1CQUFtQixxQkFBcUIsWUFBWSxZQUFZLENBQUMsTUFBTSx5QkFBeUIsQ0FBQyxZQUFZLGtCQUFrQixDQUFDLHFDQUFxQyxZQUFZLGFBQWEsQ0FBQyxrQkFBa0IsVUFBVSxDQUFDLGdCQUFnQixXQUFXLFlBQVksNkJBQTZCLGlCQUFpQixDQUFDLG9CQUFvQix3QkFBd0IsQ0FBQyxxQkFBcUIsd0JBQXdCLENBQUMscUJBQXFCLGlCQUFpQixnQkFBZ0IsQ0FBQywyQkFBMkIsY0FBYyxlQUFlLENBQUMsd0JBQXdCLGtCQUFrQixtQkFBbUIsaUJBQWlCLGtCQUFrQixZQUFZLENBQUMsMkJBQTJCLGlCQUFpQixnQkFBZ0IsY0FBYyxDQUFDLDREQUE0RCxnQkFBZ0IsZUFBZSxrQkFBa0IsUUFBUSxDQUFDLDZEQUE2RCxZQUFZLGFBQWEsQ0FBQyw4QkFBOEIsVUFBVSxDQUFDLFdBQVcsZUFBZSxDQUFDLG1CQUFtQixVQUFVLENBQUMsVUFBVSxjQUFjLGdCQUFnQixnQkFBZ0IsV0FBVyxxQ0FBcUMsa0JBQWtCLGtCQUFrQixDQUFDLGdCQUFnQixjQUFjLENBQUMsb0JBQW9CLDJCQUEyQiwyQkFBMkIsVUFBVSxDQUFDLHNEQUFzRCxlQUFlLENBQUMsa0NBQWtDLGVBQWUsQ0FBQyxlQUFlLDJCQUEyQiwwQkFBMEIsNkJBQTZCLDhCQUE4QixjQUFjLFdBQVcsWUFBWSxXQUFXLGtCQUFrQixlQUFlLGlCQUFpQiwwQkFBMEIsQ0FBQyxtQkFBbUIsY0FBYyxDQUFDLGtCQUFrQixpQkFBaUIsZ0JBQWdCLENBQUMsaUJBQWlCLGNBQWMsaUJBQWlCLGNBQWMsQ0FBQyxxQ0FBcUMsY0FBYyxlQUFlLG1CQUFtQixnQkFBZ0Isc0JBQXNCLENBQUMsZUFBZSx3QkFBd0IsQ0FBQyxlQUFlLGFBQWEsQ0FBQyxzQkFBc0IsUUFBUSxDQUFDLFVBQVUsa0JBQWtCLGtCQUFrQixVQUFVLGVBQWUsQ0FBQyxpQkFBaUIsV0FBVyxrQkFBa0IsTUFBTSxTQUFTLFVBQVUsZ0JBQWdCLFVBQVUsU0FBUyxpQkFBaUIsQ0FBQyxhQUFhLGtCQUFrQixrQkFBa0Isa0JBQWtCLENBQUMsdUNBQXVDLFlBQVksYUFBYSxDQUFDLG1CQUFtQixVQUFVLENBQUMsNEJBQTRCLDZDQUE2QyxxQ0FBcUMsa0JBQWtCLGFBQWEsZ0JBQWdCLFdBQVcsaUJBQWlCLGtCQUFrQixVQUFVLGlCQUFpQixDQUFDLGtDQUFrQyxXQUFXLFlBQVksYUFBYSxjQUFjLENBQUMsNkNBQTZDLFNBQVMsV0FBVyxnQ0FBZ0MsYUFBYSxlQUFlLGVBQWUsQ0FBQywrQ0FBK0MsZUFBZSxDQUFDLHdGQUF3RixZQUFZLENBQUMsMkRBQTJELFdBQVcsWUFBWSxlQUFlLGlCQUFpQixrQkFBa0IsV0FBVyxtQkFBbUIsa0JBQWtCLGtCQUFrQixVQUFVLEtBQUssQ0FBQywyQkFBMkIsZ0JBQWdCLFlBQVkscUJBQXFCLHNCQUFzQixpQkFBaUIsQ0FBQyxvQ0FBb0MsbUJBQW1CLHNCQUFzQix3QkFBd0IsZUFBZSxDQUFDLHFEQUFxRCx3QkFBd0IsQ0FBQyxLQUFLLGtCQUFrQix3QkFBd0IsZ0JBQWdCLDRCQUE0QixDQUFDLGVBQWUsd0JBQXdCLENBQUMsY0FBYyxnQkFBZ0Isd0JBQXdCLHFCQUFxQixnQkFBZ0IsZ0JBQWdCLENBQUMsWUFBWSxxREFBcUQsa0RBQWtELDRDQUE0QyxDQUFDLFdBQVcsWUFBWSxDQUFDLGNBQWMsa0JBQWtCLGVBQWUsQ0FBQyxpQ0FBaUMsa0JBQWtCLE1BQU0sUUFBUSxlQUFlLGdCQUFnQixnQkFBZ0IsaUJBQWlCLFVBQVUsd0JBQXdCLGFBQWEsaUJBQWlCLGVBQWUsYUFBYSxDQUFDLGFBQWEseUJBQXlCLFdBQVcsaUJBQWlCLENBQUMsMERBQTBELHdCQUF3QixDQUFDLGFBQWEseUJBQXlCLG9CQUFvQixDQUFDLDBEQUEwRCx3QkFBd0IsQ0FBQyxhQUFhLHlCQUF5QixvQkFBb0IsQ0FBQywwREFBMEQsd0JBQXdCLENBQUMsVUFBVSx5QkFBeUIsb0JBQW9CLENBQUMsaURBQWlELHdCQUF3QixDQUFDLFlBQVkseUJBQXlCLG9CQUFvQixDQUFDLHVEQUF1RCx3QkFBd0IsQ0FBQyxhQUFhLHlCQUF5QixvQkFBb0IsQ0FBQywwREFBMEQsd0JBQXdCLENBQUMsYUFBYSxzQkFBc0IsdUJBQXVCLFVBQVUsQ0FBQywwREFBMEQsNEJBQTRCLGtDQUFrQyxDQUFDLFVBQVUsd0JBQXdCLGVBQWUsQ0FBQyx5QkFBeUIsbURBQW1ELDBDQUEwQyxDQUFDLFNBQVMsa0JBQWtCLGtCQUFrQixpQkFBaUIscUJBQXFCLGVBQWUsWUFBWSxrQkFBa0IsV0FBVyxzQkFBc0IseUJBQXlCLGNBQWMsQ0FBQywrQ0FBK0MsZUFBZSxhQUFhLENBQUMsZUFBZSxtQkFBbUIsV0FBVyxpQkFBaUIsQ0FBQywrQkFBK0IscURBQXFELGtEQUFrRCw0Q0FBNEMsQ0FBQyxnQkFBZ0Isa0JBQWtCLFNBQVMsWUFBWSxlQUFlLGVBQWUsQ0FBQyxTQUFTLGtCQUFrQixrQkFBa0IsNEJBQTRCLDBCQUEwQixDQUFDLFdBQVcsV0FBVyx5QkFBeUIsQ0FBQyxpQkFBaUIsVUFBVSxDQUFDLFlBQVksYUFBYSxlQUFlLENBQUMsc0JBQXNCLGVBQWUsQ0FBQyxrQ0FBa0MscUJBQXFCLENBQUMsd0JBQXdCLG9CQUFvQixDQUFDLHlCQUF5QixvQkFBb0IsQ0FBQyxzQkFBc0Isb0JBQW9CLENBQUMseUJBQXlCLG9CQUFvQixDQUFDLE9BQU8saUJBQWlCLENBQUMsVUFBVSxlQUFlLENBQUMsYUFBYSxpQkFBaUIsQ0FBQyxjQUFjLFdBQVcsV0FBVyx3QkFBd0IsQ0FBQyxvQkFBb0IsV0FBVyx3QkFBd0IsQ0FBQyxTQUFTLFdBQVcseUJBQXlCLENBQUMsZUFBZSxvQkFBb0IsQ0FBQywyQkFBMkIsb0JBQW9CLENBQUMsZUFBZSxvQkFBb0IsQ0FBQyxZQUFZLG9CQUFvQixDQUFDLGlEQUFpRCxXQUFXLGtCQUFrQixDQUFDLGdCQUFnQixnQkFBZ0IsaUNBQWlDLFVBQVUsQ0FBQyxvRUFBb0UsZ0JBQWdCLENBQUMsaUZBQWlGLHdCQUF3QixDQUFDLHVCQUF1QixlQUFlLENBQUMsa0JBQWtCLGdCQUFnQixhQUFhLGtDQUFrQyxVQUFVLENBQUMsd0RBQXdELHVCQUF1QixXQUFXLGFBQWEseUJBQXlCLENBQUMsdUJBQXVCLDZCQUE2QixXQUFXLG1CQUFtQixpQkFBaUIsd0JBQXdCLENBQUMsaUJBQWlCLG1CQUFtQixnQkFBZ0IscUNBQXFDLGlCQUFpQixDQUFDLDJCQUEyQixTQUFTLDRCQUE0Qiw0QkFBNEIsMEJBQTBCLENBQUMsOEJBQThCLGlDQUFpQyxtQkFBbUIsZ0JBQWdCLENBQUMseUNBQXlDLFVBQVUsQ0FBQyxnQ0FBZ0MsV0FBVyxlQUFlLENBQUMsMkNBQTJDLFVBQVUsQ0FBQyxzRUFBc0UsdUJBQXVCLFFBQVEsQ0FBQyxzQ0FBc0MsVUFBVSxDQUFDLDBKQUEwSix3QkFBd0IsQ0FBQyxxQ0FBcUMsd0JBQXdCLENBQUMsb0ZBQW9GLHNCQUFzQixVQUFVLENBQUMsdUNBQXVDLDZCQUE2QiwwQkFBMEIsMEJBQTBCLENBQUMsNENBQTRDLGFBQWEsQ0FBQyxxREFBcUQsNkJBQTZCLENBQUMsc0NBQXNDLHFCQUFxQixDQUFDLHlDQUF5QyxXQUFXLENBQUMsdURBQXVELGNBQWMsQ0FBQyx5REFBeUQscUJBQXFCLENBQUMsZ0VBQWdFLDBCQUEwQiw4QkFBOEIsQ0FBQyxxQ0FBcUMsaUJBQWlCLGVBQWUsZUFBZSxVQUFVLENBQUMsbUlBQW1JLGdCQUFnQixDQUFDLDhCQUE4QixnQkFBZ0IsYUFBYSwrQkFBK0IsNkJBQTZCLENBQUMsaUZBQWlGLHVCQUF1QixVQUFVLENBQUMsaURBQWlELHdCQUF3QixDQUFDLDhDQUE4Qyx3QkFBd0IsQ0FBQyxnREFBZ0Qsd0JBQXdCLENBQUMsaURBQWlELHdCQUF3QixDQUFDLGlEQUFpRCx3QkFBd0IsQ0FBQyxpREFBaUQsd0JBQXdCLENBQUMsaUJBQWlCLG1CQUFtQixVQUFVLENBQUMsaUNBQWlDLDBCQUEwQixDQUFDLGVBQWUsZ0JBQWdCLFNBQVMsU0FBUyxDQUFDLHFCQUFxQixrQkFBa0IsNkNBQTZDLHFDQUFxQyxlQUFlLGVBQWUsQ0FBQyx1REFBdUQsWUFBWSxhQUFhLENBQUMsMkJBQTJCLFVBQVUsQ0FBQyw0QkFBNEIsVUFBVSxDQUFDLGdDQUFnQyxXQUFXLFdBQVcsQ0FBQyw2QkFBNkIsZ0JBQWdCLENBQUMsOEJBQThCLGVBQWUsQ0FBQyxvQ0FBb0MsY0FBYyxXQUFXLGdCQUFnQixtQkFBbUIsc0JBQXNCLENBQUMsMkJBQTJCLHdCQUF3QixnQkFBZ0IsZ0JBQWdCLCtCQUErQixDQUFDLHdDQUF3QyxxQkFBcUIsQ0FBQyxrSEFBa0gsNEJBQTRCLENBQUMsbUJBQW1CLCtCQUErQixDQUFDLHVCQUF1QixjQUFjLENBQUMsZ0JBQWdCLHdCQUF3QixDQUFDLHdLQUF3Syx3QkFBd0IsQ0FBQyx3REFBd0QsdUJBQXVCLENBQUMseURBQXlELFFBQVEsQ0FBQyw0REFBNEQsaUJBQWlCLENBQUMsZ0JBQWdCLGVBQWUsQ0FBQyxnQkFBZ0IsZ0JBQWdCLENBQUMsZUFBZSx5QkFBeUIsVUFBVSxDQUFDLHVCQUF1Qiw2QkFBNkIsNEJBQTRCLGtCQUFrQixrQkFBa0IsU0FBUyxDQUFDLGtEQUFrRCxrQ0FBa0MsOEJBQThCLDZCQUE2Qix5QkFBeUIsQ0FBQyxzQkFBc0Isa0NBQWtDLDhCQUE4Qiw2QkFBNkIsMEJBQTBCLGFBQWEsYUFBYSxhQUFhLENBQUMsbUNBQW1DLGFBQWEsQ0FBQyxpQkFBaUIsa0JBQWtCLENBQUMsK0NBQStDLFlBQVksYUFBYSxDQUFDLHVCQUF1QixVQUFVLENBQUMsNENBQTRDLHFEQUFxRCwrQ0FBK0MsMkNBQTJDLG9DQUFvQyxDQUFDLGtCQUFrQixrQkFBa0Isa0JBQWtCLGlCQUFpQixtQkFBbUIseUJBQXlCLG9CQUFvQixVQUFVLENBQUMsaURBQWlELGtCQUFrQixXQUFXLFNBQVMseUJBQXlCLDJCQUEyQixZQUFZLFNBQVMsUUFBUSxtQkFBbUIsQ0FBQyx3QkFBd0IsaUJBQWlCLGVBQWUsQ0FBQyx5QkFBeUIsaUJBQWlCLGVBQWUsQ0FBQyx5QkFBeUIsa0JBQWtCLGFBQWEsQ0FBQywrREFBK0QsV0FBVyxVQUFVLCtCQUErQix5QkFBeUIsQ0FBQyxpQkFBaUIsa0JBQWtCLFdBQVcsV0FBVyxXQUFXLENBQUMsd0JBQXdCLFdBQVcsQ0FBQyxrQkFBa0IsY0FBYyxrQkFBa0IsY0FBYyxDQUFDLGtCQUFrQixlQUFlLENBQUMsdUJBQXVCLFVBQVUsQ0FBQyxpREFBaUQsa0NBQWtDLDhCQUE4Qiw2QkFBNkIseUJBQXlCLENBQUMsc0JBQXNCLHFDQUFxQyxpQ0FBaUMsZ0NBQWdDLDZCQUE2QixrQkFBa0IsTUFBTSxTQUFTLGFBQWEsV0FBVyxtQkFBbUIsV0FBVyxhQUFhLENBQUMsa0JBQWtCLHdDQUF3QyxhQUFhLFFBQVEsQ0FBQyxpREFBaUQsWUFBWSxhQUFhLENBQUMsd0JBQXdCLFVBQVUsQ0FBQywrQkFBK0Isa0JBQWtCLENBQUMsbUJBQW1CLGtCQUFrQixXQUFXLFVBQVUsQ0FBQyxvQkFBb0IsaUJBQWlCLFVBQVUsQ0FBQywwQ0FBMEMsYUFBYSxDQUFDLG9CQUFvQixlQUFlLENBQUMsc0JBQXNCLGNBQWMsQ0FBQyxvQkFBb0IsV0FBVyxrQkFBa0IsQ0FBQyxtQkFBbUIsVUFBVSxDQUFDLDZDQUE2QyxtQkFBbUIscUJBQXFCLFVBQVUsQ0FBQyx1R0FBdUcseUJBQXlCLENBQUMsOENBQThDLG1CQUFtQixxQkFBcUIsVUFBVSxDQUFDLHlHQUF5Ryx5QkFBeUIsQ0FBQyw4Q0FBOEMsbUJBQW1CLHFCQUFxQixVQUFVLENBQUMseUdBQXlHLHlCQUF5QixDQUFDLDJDQUEyQyxtQkFBbUIscUJBQXFCLFVBQVUsQ0FBQyxtR0FBbUcseUJBQXlCLENBQUMsOENBQThDLG1CQUFtQixxQkFBcUIsVUFBVSxDQUFDLHlHQUF5Ryx5QkFBeUIsQ0FBQyxlQUFlLFVBQVUsV0FBVyxhQUFhLGlCQUFpQixDQUFDLG1CQUFtQixrQkFBa0IsZUFBZSxXQUFXLENBQUMsK0RBQStELFVBQVUsQ0FBQyxrQ0FBa0MsYUFBYSxDQUFDLGlCQUFpQixnQkFBZ0IsV0FBVyxnQkFBZ0IsbUJBQW1CLHNCQUFzQixDQUFDLGlCQUFpQixXQUFXLGNBQWMsQ0FBQywrQ0FBK0MscUJBQXFCLENBQUMsc0JBQXNCLGVBQWUsa0JBQWtCLFFBQVEsVUFBVSxxQkFBcUIsZ0JBQWdCLENBQUMsT0FBTywwQkFBMEIsQ0FBQyxlQUFlLGdCQUFnQiwrQ0FBK0MsdUNBQXVDLFFBQVEsQ0FBQyx5QkFBeUIsZUFBZSwrQ0FBK0Msc0NBQXNDLENBQUMsQ0FBQyxjQUFjLDJCQUEyQixDQUFDLGNBQWMsd0JBQXdCLENBQUMsMERBQTBELG9CQUFvQixDQUFDLDBEQUEwRCxvQkFBb0IsQ0FBQyxvREFBb0Qsb0JBQW9CLENBQUMsMERBQTBELG9CQUFvQixDQUFDLHdEQUF3RCxvQkFBb0IsQ0FBQyxZQUFZLFlBQVksaUJBQWlCLENBQUMsaUNBQWlDLGFBQWEsYUFBYSw0QkFBNEIsMEJBQTBCLENBQUMsbUNBQW1DLGFBQWEsa0JBQWtCLGVBQWUsZ0JBQWdCLHFDQUFxQyxDQUFDLCtCQUErQixZQUFZLENBQUMsZ0NBQWdDLGtCQUFrQixTQUFTLFNBQVMsaUJBQWlCLENBQUMsb0NBQW9DLFdBQVcsWUFBWSxxQkFBcUIsQ0FBQyx5QkFBeUIsZ0JBQWdCLENBQUMsbUNBQW1DLGFBQWEsNEJBQTRCLDBCQUEwQixDQUFDLHFDQUFxQyxlQUFlLGtCQUFrQixlQUFlLGVBQWUsQ0FBQyxpQ0FBaUMsWUFBWSxDQUFDLHNFQUFzRSxnQkFBZ0IsQ0FBQyxzQ0FBc0MsV0FBVyxZQUFZLFVBQVUsQ0FBQyxlQUFlLGFBQWEsZ0JBQWdCLFVBQVUsU0FBUyxnQkFBZ0IsQ0FBQyw4QkFBOEIsaUJBQWlCLENBQUMsa0JBQWtCLFFBQVEsQ0FBQyxvQkFBb0IseUJBQXlCLGNBQWMsY0FBYyxDQUFDLGdGQUFnRixVQUFVLENBQUMsd0xBQXdMLFVBQVUsQ0FBQyx5QkFBeUIsUUFBUSxDQUFDLGtCQUFrQixXQUFXLENBQUMsOEJBQThCLCtCQUErQixDQUFDLG1CQUFtQixnQ0FBZ0MsWUFBWSxDQUFDLHNCQUFzQixlQUFlLFFBQVEsQ0FBQyxzQkFBc0IsU0FBUyxpQkFBaUIsQ0FBQyxtQkFBbUIsV0FBVyxjQUFjLENBQUMsc0JBQXNCLFlBQVksQ0FBQyx3QkFBd0IsV0FBVyxZQUFZLHNCQUFzQixtQkFBbUIsaUJBQWlCLENBQUMseUJBQXlCLGlCQUFpQixVQUFVLENBQUMsMkVBQTJFLGFBQWEsQ0FBQyx5QkFBeUIsYUFBYSxrQkFBa0IsQ0FBQyx5QkFBeUIsV0FBVyxjQUFjLENBQUMseUJBQXlCLGtCQUFrQixlQUFlLFdBQVcsaUJBQWlCLENBQUMsaUNBQWlDLFNBQVMsQ0FBQyxxQ0FBcUMsZUFBZSxXQUFXLENBQUMsWUFBWSxrQkFBa0IsQ0FBQyxpQkFBaUIsZUFBZSxrQkFBa0IsbUJBQW1CLGVBQWUsQ0FBQyxtQkFBbUIsVUFBVSxDQUFDLG9CQUFvQixnQkFBZ0IsY0FBYyxjQUFjLENBQUMsNkJBQTZCLGtCQUFrQixlQUFlLENBQUMsaUJBQWlCLGtCQUFrQixVQUFVLGdCQUFnQixrQkFBa0IsMkJBQTJCLFdBQVcsQ0FBQyxrQkFBa0Isa0JBQWtCLGtCQUFrQixXQUFXLFVBQVUsZ0JBQWdCLFlBQVksVUFBVSxDQUFDLHNCQUFzQixrQkFBa0IsV0FBVyxXQUFXLENBQUMsd0JBQXdCLGdCQUFnQixDQUFDLHNDQUFzQyxRQUFRLENBQUMsNkJBQTZCLHNCQUFzQixTQUFTLGNBQWMsQ0FBQyxtQkFBbUIsZUFBZSxDQUFDLDJCQUEyQixlQUFlLGtCQUFrQixtQkFBbUIsZUFBZSxDQUFDLCtCQUErQixVQUFVLENBQUMsMkJBQTJCLGtCQUFrQixDQUFDLHlCQUF5QixZQUFZLGNBQWMsQ0FBQyx5QkFBeUIseUJBQXlCLFVBQVUsZUFBZSxDQUFDLENBQUMsbUNBQW1DLGdCQUFnQixhQUFhLGFBQWEsVUFBVSxDQUFDLGlGQUFpRixVQUFVLENBQUMsaUNBQWlDLFNBQVMsa0JBQWtCLHdCQUF3QixDQUFDLG1CQUFtQixhQUFhLENBQUMsWUFBWSxZQUFZLHVCQUF1QixDQUFDLHlCQUF5QixZQUFZLFVBQVUsQ0FBQyxDQUFDLHNCQUFzQixXQUFXLGdCQUFnQixlQUFlLENBQUMseUJBQXlCLHNCQUFzQixXQUFXLGlCQUFpQixDQUFDLENBQUMsMkJBQTJCLGtCQUFrQixhQUFhLENBQUMseUJBQXlCLDJCQUEyQixhQUFhLENBQUMsQ0FBQyw4QkFBOEIsZ0JBQWdCLGNBQWMsQ0FBQyx5QkFBeUIsOEJBQThCLGlCQUFpQixDQUFDLENBQUMsU0FBUyxrQkFBa0IsZ0JBQWdCLHlCQUF5QixhQUFhLGdCQUFnQixDQUFDLGVBQWUsWUFBWSxDQUFDLGtCQUFrQixjQUFjLFlBQVksWUFBWSx3QkFBd0IsQ0FBQyxrQkFBa0IsZUFBZSxjQUFjLENBQUMsTUFBTSxnQ0FBZ0MsbUJBQW1CLG9CQUFvQixVQUFVLENBQUMsbUJBQW1CLGdCQUFnQixnQkFBZ0IsZ0JBQWdCLENBQUMsa0JBQWtCLGtCQUFrQixDQUFDLFlBQVksa0JBQWtCLGtCQUFrQixnQkFBZ0IsbUJBQW1CLGdCQUFnQixzQkFBc0IsQ0FBQyx5QkFBeUIsa0JBQWtCLE9BQU8sTUFBTSxTQUFTLFdBQVcsaUJBQWlCLGdCQUFnQixrQkFBa0Isc0NBQXNDLENBQUMsbUJBQW1CLGlCQUFpQixDQUFDLGdDQUFnQyxpQkFBaUIsV0FBVyxlQUFlLENBQUMsbUJBQW1CLGlCQUFpQixDQUFDLGdDQUFnQyxpQkFBaUIsV0FBVyxlQUFlLENBQUMsbUJBQW1CLGlCQUFpQixDQUFDLGdDQUFnQyxpQkFBaUIsV0FBVyxlQUFlLENBQUMsaUJBQWlCLGtCQUFrQixrQkFBa0IsZ0JBQWdCLG1CQUFtQixnQkFBZ0IsdUJBQXVCLFlBQVksV0FBVyxTQUFTLENBQUMsOEJBQThCLGtCQUFrQixPQUFPLE1BQU0sU0FBUyxXQUFXLGlCQUFpQixnQkFBZ0Isa0JBQWtCLHNDQUFzQyxDQUFDLHdCQUF3QixpQkFBaUIsQ0FBQyxxQ0FBcUMsaUJBQWlCLFdBQVcsZUFBZSxDQUFDLHdCQUF3QixpQkFBaUIsQ0FBQyxxQ0FBcUMsaUJBQWlCLFdBQVcsZUFBZSxDQUFDLHdCQUF3QixpQkFBaUIsQ0FBQyxxQ0FBcUMsaUJBQWlCLFdBQVcsZUFBZSxDQUFDLDhCQUE4QixZQUFZLGtCQUFrQixVQUFVLENBQUMsd0JBQXdCLFlBQVksV0FBVyxlQUFlLGVBQWUsQ0FBQyx3QkFBd0IsWUFBWSxXQUFXLGVBQWUsZUFBZSxDQUFDLHdCQUF3QixZQUFZLFdBQVcsZUFBZSxlQUFlLENBQUMsU0FBUyxXQUFXLHlCQUF5Qiw0QkFBNEIsQ0FBQyw4QkFBOEIsV0FBVyx5QkFBeUIsNEJBQTRCLENBQUMsZUFBZSxXQUFXLHlCQUF5Qiw0QkFBNEIsQ0FBQywrREFBK0QsV0FBVyx5QkFBeUIsNEJBQTRCLENBQUMsK0RBQStELHFCQUFxQixDQUFDLGdCQUFnQixjQUFjLHFCQUFxQixDQUFDLGVBQWUsV0FBVyx5QkFBeUIsNEJBQTRCLENBQUMsMENBQTBDLFdBQVcseUJBQXlCLDRCQUE0QixDQUFDLHFCQUFxQixXQUFXLHlCQUF5Qiw0QkFBNEIsQ0FBQyxpRkFBaUYsV0FBVyx5QkFBeUIsNEJBQTRCLENBQUMsaUZBQWlGLHFCQUFxQixDQUFDLHNCQUFzQixjQUFjLHFCQUFxQixDQUFDLGFBQWEsV0FBVyx5QkFBeUIsNEJBQTRCLENBQUMsc0NBQXNDLFdBQVcseUJBQXlCLDRCQUE0QixDQUFDLG1CQUFtQixXQUFXLHlCQUF5Qiw0QkFBNEIsQ0FBQywyRUFBMkUsV0FBVyx5QkFBeUIsNEJBQTRCLENBQUMsMkVBQTJFLHFCQUFxQixDQUFDLG9CQUFvQixjQUFjLHFCQUFxQixDQUFDLGNBQWMsV0FBVyx5QkFBeUIsNEJBQTRCLENBQUMsd0NBQXdDLFdBQVcseUJBQXlCLDRCQUE0QixDQUFDLG9CQUFvQixXQUFXLHlCQUF5Qiw0QkFBNEIsQ0FBQyw4RUFBOEUsV0FBVyx5QkFBeUIsNEJBQTRCLENBQUMsOEVBQThFLHFCQUFxQixDQUFDLHFCQUFxQixjQUFjLHFCQUFxQixDQUFDLFlBQVksV0FBVyx5QkFBeUIsNEJBQTRCLENBQUMsb0NBQW9DLFdBQVcseUJBQXlCLDRCQUE0QixDQUFDLGtCQUFrQixXQUFXLHlCQUF5Qiw0QkFBNEIsQ0FBQyx3RUFBd0UsV0FBVyx5QkFBeUIsNEJBQTRCLENBQUMsd0VBQXdFLHFCQUFxQixDQUFDLG1CQUFtQixjQUFjLHFCQUFxQixDQUFDLGdCQUFnQixXQUFXLHlCQUF5Qiw0QkFBNEIsQ0FBQyw0Q0FBNEMsV0FBVyx5QkFBeUIsNEJBQTRCLENBQUMsc0JBQXNCLFdBQVcseUJBQXlCLDRCQUE0QixDQUFDLG9GQUFvRixXQUFXLHlCQUF5Qiw0QkFBNEIsQ0FBQyxvRkFBb0YscUJBQXFCLENBQUMsdUJBQXVCLGNBQWMscUJBQXFCLENBQUMsWUFBWSxXQUFXLHNCQUFzQiw0QkFBNEIsQ0FBQyxvQ0FBb0MsV0FBVyx5QkFBeUIsNEJBQTRCLENBQUMsa0JBQWtCLFdBQVcseUJBQXlCLDRCQUE0QixDQUFDLHdFQUF3RSxXQUFXLHlCQUF5Qiw0QkFBNEIsQ0FBQyx3RUFBd0UscUJBQXFCLENBQUMsbUJBQW1CLFdBQVcscUJBQXFCLENBQUMsWUFBWSxXQUFXLHlCQUF5Qiw0QkFBNEIsQ0FBQyxvQ0FBb0MsV0FBVyx5QkFBeUIsNEJBQTRCLENBQUMsa0JBQWtCLFdBQVcseUJBQXlCLDRCQUE0QixDQUFDLHdFQUF3RSxXQUFXLHlCQUF5Qiw0QkFBNEIsQ0FBQyx3RUFBd0UscUJBQXFCLENBQUMsbUJBQW1CLGNBQWMscUJBQXFCLENBQUMsZUFBZSxXQUFXLHlCQUF5Qiw0QkFBNEIsQ0FBQywwQ0FBMEMsV0FBVyx5QkFBeUIsNEJBQTRCLENBQUMscUJBQXFCLFdBQVcseUJBQXlCLDRCQUE0QixDQUFDLGlGQUFpRixXQUFXLHlCQUF5Qiw0QkFBNEIsQ0FBQyxpRkFBaUYscUJBQXFCLENBQUMsc0JBQXNCLGNBQWMscUJBQXFCLENBQUMsY0FBYyxXQUFXLHlCQUF5Qiw0QkFBNEIsQ0FBQyx3Q0FBd0MsV0FBVyx5QkFBeUIsNEJBQTRCLENBQUMsb0JBQW9CLFdBQVcseUJBQXlCLDRCQUE0QixDQUFDLDhFQUE4RSxXQUFXLHlCQUF5Qiw0QkFBNEIsQ0FBQyw4RUFBOEUscUJBQXFCLENBQUMscUJBQXFCLGNBQWMscUJBQXFCLENBQUMsZUFBZSxXQUFXLHlCQUF5Qiw0QkFBNEIsQ0FBQywwQ0FBMEMsV0FBVyx5QkFBeUIsNEJBQTRCLENBQUMscUJBQXFCLFdBQVcseUJBQXlCLDRCQUE0QixDQUFDLGlGQUFpRixXQUFXLHlCQUF5Qiw0QkFBNEIsQ0FBQyxpRkFBaUYscUJBQXFCLENBQUMsc0JBQXNCLGNBQWMscUJBQXFCLENBQUMsWUFBWSxXQUFXLHlCQUF5Qiw0QkFBNEIsQ0FBQyxvQ0FBb0MsV0FBVyx5QkFBeUIsNEJBQTRCLENBQUMsa0JBQWtCLFdBQVcseUJBQXlCLDRCQUE0QixDQUFDLHdFQUF3RSxXQUFXLHlCQUF5Qiw0QkFBNEIsQ0FBQyx3RUFBd0UscUJBQXFCLENBQUMsbUJBQW1CLGNBQWMscUJBQXFCLENBQUMsZUFBZSxXQUFXLHlCQUF5Qiw0QkFBNEIsQ0FBQywwQ0FBMEMsV0FBVyx5QkFBeUIsNEJBQTRCLENBQUMscUJBQXFCLFdBQVcseUJBQXlCLDRCQUE0QixDQUFDLGlGQUFpRixXQUFXLHlCQUF5Qiw0QkFBNEIsQ0FBQyxpRkFBaUYscUJBQXFCLENBQUMsc0JBQXNCLGNBQWMscUJBQXFCLENBQUMsWUFBWSxXQUFXLHlCQUF5Qiw0QkFBNEIsQ0FBQyxvQ0FBb0MsV0FBVyx5QkFBeUIsNEJBQTRCLENBQUMsa0JBQWtCLFdBQVcseUJBQXlCLDRCQUE0QixDQUFDLHdFQUF3RSxXQUFXLHlCQUF5Qiw0QkFBNEIsQ0FBQyx3RUFBd0UscUJBQXFCLENBQUMsbUJBQW1CLGNBQWMscUJBQXFCLENBQUMsZ0JBQWdCLFdBQVcsc0JBQXNCLDRCQUE0QixDQUFDLDRDQUE0QyxXQUFXLHNCQUFzQiw0QkFBNEIsQ0FBQyxzQkFBc0IsV0FBVyxzQkFBc0IsNEJBQTRCLENBQUMsb0ZBQW9GLFdBQVcsc0JBQXNCLDRCQUE0QixDQUFDLG9GQUFvRixxQkFBcUIsQ0FBQyx1QkFBdUIsV0FBVyxxQkFBcUIsQ0FBQyxZQUFZLFdBQVcseUJBQXlCLDRCQUE0QixDQUFDLG9DQUFvQyxXQUFXLHlCQUF5Qiw0QkFBNEIsQ0FBQyxrQkFBa0IsV0FBVyx5QkFBeUIsNEJBQTRCLENBQUMsd0VBQXdFLFdBQVcseUJBQXlCLDRCQUE0QixDQUFDLHdFQUF3RSxxQkFBcUIsQ0FBQyxtQkFBbUIsY0FBYyxxQkFBcUIsQ0FBQyxhQUFhLFdBQVcseUJBQXlCLDRCQUE0QixDQUFDLHNDQUFzQyxXQUFXLHlCQUF5Qiw0QkFBNEIsQ0FBQyxtQkFBbUIsV0FBVyx5QkFBeUIsNEJBQTRCLENBQUMsMkVBQTJFLFdBQVcseUJBQXlCLDRCQUE0QixDQUFDLDJFQUEyRSxxQkFBcUIsQ0FBQyxvQkFBb0IsY0FBYyxxQkFBcUIsQ0FBQyxXQUFXLFdBQVcseUJBQXlCLDRCQUE0QixDQUFDLGtDQUFrQyxXQUFXLHlCQUF5Qiw0QkFBNEIsQ0FBQyxpQkFBaUIsV0FBVyx5QkFBeUIsNEJBQTRCLENBQUMscUVBQXFFLFdBQVcseUJBQXlCLDRCQUE0QixDQUFDLHFFQUFxRSxxQkFBcUIsQ0FBQyxrQkFBa0IsY0FBYyxxQkFBcUIsQ0FBQyxRQUFRLFdBQVcseUJBQXlCLDRCQUE0QixDQUFDLDRCQUE0QixXQUFXLHlCQUF5Qiw0QkFBNEIsQ0FBQyxjQUFjLFdBQVcseUJBQXlCLDRCQUE0QixDQUFDLDREQUE0RCxXQUFXLHlCQUF5Qiw0QkFBNEIsQ0FBQyw0REFBNEQscUJBQXFCLENBQUMsZUFBZSxjQUFjLHFCQUFxQixDQUFDLFdBQVcsV0FBVyx5QkFBeUIsNEJBQTRCLENBQUMsa0NBQWtDLFdBQVcseUJBQXlCLDRCQUE0QixDQUFDLGlCQUFpQixXQUFXLHlCQUF5Qiw0QkFBNEIsQ0FBQyxxRUFBcUUsV0FBVyx5QkFBeUIsNEJBQTRCLENBQUMscUVBQXFFLHFCQUFxQixDQUFDLGtCQUFrQixjQUFjLHFCQUFxQixDQUFDLFdBQVcsbUJBQW1CLHNCQUFzQixXQUFXLGtCQUFrQix3QkFBd0IsQ0FBQyxvREFBb0Qsd0JBQXdCLENBQUMsb0JBQW9CLGVBQWUsa0JBQWtCLFdBQVcsZ0JBQWdCLENBQUMsaUJBQWlCLGtCQUFrQixDQUFDLGdCQUFnQixpQkFBaUIsQ0FBQyxrQkFBa0Isa0JBQWtCLENBQUMsU0FBUyxXQUFXLFFBQVEsQ0FBQyxpRUFBaUUsY0FBYyxjQUFjLENBQUMsK0RBQStELGNBQWMsQ0FBQyxZQUFZLGFBQWEsUUFBUSxDQUFDLGVBQWUsZUFBZSxnQkFBZ0Isa0JBQWtCLENBQUMsaUJBQWlCLGdCQUFnQixTQUFTLFNBQVMsQ0FBQyxvQkFBb0IsV0FBVyxlQUFlLGlCQUFpQixnQkFBZ0IsQ0FBQyx3QkFBd0IsZ0RBQWdELDBDQUEwQyxzQ0FBc0MsK0JBQStCLENBQUMsOEJBQThCLGdDQUFnQyw0QkFBNEIsMkJBQTJCLHVCQUF1QixDQUFDLGVBQWUsa0NBQWtDLDZCQUE2Qix5QkFBeUIsQ0FBQyxnQkFBZ0IsaUJBQWlCLGlCQUFpQixrQkFBa0IscUNBQXFDLHNDQUFzQyxrQkFBa0IsV0FBVyxDQUFDLHNCQUFzQix5Q0FBeUMsQ0FBQyx5TkFBeU4sWUFBWSxDQUFDLHFHQUFxRyx5QkFBeUIsZ0JBQWdCLGlCQUFpQixXQUFXLENBQUMsb0RBQW9ELG9CQUFvQixDQUFDLGtCQUFrQix5QkFBeUIsZUFBZSxDQUFDLGlGQUFpRix5QkFBeUIsV0FBVyxDQUFDLHlCQUF5QixpQkFBaUIsaUJBQWlCLHdCQUF3QixDQUFDLDJFQUEyRSxlQUFlLGdCQUFnQixZQUFZLGVBQWUsQ0FBQyxzRkFBc0Ysa0JBQWtCLGlCQUFpQixDQUFDLGlGQUFpRixZQUFZLFNBQVMsQ0FBQyxtRkFBbUYsWUFBWSxDQUFDLHdGQUF3Rix3QkFBd0IsQ0FBQyxvR0FBb0csWUFBWSxDQUFDLCtKQUErSiwrQkFBK0IsQ0FBQyx5RUFBeUUsVUFBVSxDQUFDLHlFQUF5RSxxQkFBcUIsQ0FBQyx3SkFBd0osVUFBVSxDQUFDLHlEQUF5RCx5QkFBeUIsZUFBZSxDQUFDLCtEQUErRCxvQkFBb0IsQ0FBQyxrRkFBa0Ysb0JBQW9CLENBQUMsb0ZBQW9GLHlCQUF5QixxQkFBcUIsaUJBQWlCLFVBQVUsQ0FBQyw0RkFBNEYsaUJBQWlCLDJCQUEyQixDQUFDLGtHQUFrRyxVQUFVLENBQUMsMkVBQTJFLGtCQUFrQixDQUFDLDhJQUE4SSxVQUFVLENBQUMsa0xBQWtMLHNDQUFzQyxDQUFDLG9YQUFvWCxVQUFVLENBQUMsS0FBSyxZQUFZLENBQUMsUUFBUSxXQUFXLENBQUMsZUFBZSxrQkFBa0IsQ0FBQyxvQkFBb0IsZUFBZSxDQUFDLFlBQVksZ0JBQWdCLENBQUMsUUFBUSxjQUFjLENBQUMsbUJBQW1CLGNBQWMsY0FBYyxpQkFBaUIsQ0FBQyxpQ0FBaUMsa0JBQWtCLENBQUMsdUNBQXVDLFNBQVMsVUFBVSxnQkFBZ0IsY0FBYyxDQUFDLHFDQUFxQyx3QkFBd0IsQ0FBQyxzaUNBQXNpQyxxQkFBcUIsQ0FBQyxTQUFTLFdBQVcsbUNBQW1DLENBQUMsZUFBZSx3QkFBd0IsQ0FBQyxVQUFVLGdDQUFnQyxDQUFDLG1HQUFtRyxtQ0FBbUMsQ0FBQyw2RkFBNkYsbUNBQW1DLENBQUMsK0VBQStFLG1DQUFtQyxDQUFDLFNBQVMsbUNBQW1DLENBQUMseURBQXlELG1DQUFtQyxDQUFDLDRGQUE0RixtQ0FBbUMsQ0FBQyxTQUFTLG1DQUFtQyxDQUFDLFNBQVMsbUNBQW1DLENBQUMsVUFBVSxtQ0FBbUMsQ0FBQyxTQUFTLG1DQUFtQyxDQUFDLFdBQVcsbUNBQW1DLENBQUMsWUFBWSxtQ0FBbUMsQ0FBQyxXQUFXLG1DQUFtQyxDQUFDLFdBQVcsbUNBQW1DLENBQUMsZ0JBQWdCLFdBQVcsbUNBQW1DLENBQUMsaUJBQWlCLGdDQUFnQyxDQUFDLHVFQUF1RSxtQ0FBbUMsQ0FBQyw0RUFBNEUsbUNBQW1DLENBQUMsb0VBQW9FLG1DQUFtQyxDQUFDLGdCQUFnQixtQ0FBbUMsQ0FBQyxnRkFBZ0YsbUNBQW1DLENBQUMsMkVBQTJFLG1DQUFtQyxDQUFDLGdCQUFnQixtQ0FBbUMsQ0FBQyxnQkFBZ0IsbUNBQW1DLENBQUMsaUJBQWlCLG1DQUFtQyxDQUFDLGdCQUFnQixtQ0FBbUMsQ0FBQyxrQkFBa0IsbUNBQW1DLENBQUMsbUJBQW1CLG1DQUFtQyxDQUFDLGtCQUFrQixtQ0FBbUMsQ0FBQyxrQkFBa0IsbUNBQW1DLENBQUMsd0JBQXdCLFlBQVksd0JBQXdCLENBQUMsVUFBVSx3QkFBd0IsQ0FBQyxhQUFhLHdCQUF3QixDQUFDLFdBQVcsd0JBQXdCLENBQUMsV0FBVyx3QkFBd0IsQ0FBQyxZQUFZLHFCQUFxQixDQUFDLGlCQUFpQix3QkFBd0IsQ0FBQyxZQUFZLHdCQUF3QixDQUFDLFdBQVcsd0JBQXdCLENBQUMsV0FBVyx3QkFBd0IsQ0FBQyxXQUFXLHdCQUF3QixDQUFDLFlBQVksd0JBQXdCLENBQUMsV0FBVyx3QkFBd0IsQ0FBQyxhQUFhLHdCQUF3QixDQUFDLGNBQWMsd0JBQXdCLENBQUMsYUFBYSx3QkFBd0IsQ0FBQyxhQUFhLHdCQUF3QixDQUFDLFlBQVksYUFBYSxDQUFDLG9DQUFvQyxhQUFhLENBQUMsWUFBWSxVQUFVLENBQUMsb0NBQW9DLFVBQVUsQ0FBQyxNQUFNLHVCQUF1QixDQUFDLFdBQVcsbUJBQW1CLENBQUMsWUFBWSxvQkFBb0IsQ0FBQyxXQUFXLG1CQUFtQixDQUFDLFdBQVcsMEJBQTBCLENBQUMsNkVBQTZFLGdCQUFnQixTQUFTLFNBQVMsQ0FBQyx3Q0FBd0MsY0FBYyxlQUFlLGdCQUFnQixlQUFlLGVBQWUsQ0FBQyxNQUFNLDBCQUEwQixDQUFDLG1EQUFtRCxlQUFlLENBQUMsU0FBUyxjQUFjLENBQUMsWUFBWSx1QkFBdUIsc0JBQXNCLHNCQUFzQixDQUFDLGtCQUFrQiw4QkFBOEIsc0hBQXNILG9FQUFvRSxtRkFBbUYsMkRBQTJELDZIQUE2SCxVQUFVLENBQUMsd0JBQXdCLDhCQUE4QixzSEFBc0gsb0VBQW9FLG1GQUFtRiwyREFBMkQsNkhBQTZILFVBQVUsQ0FBQyxrQkFBa0IsOEJBQThCLHNIQUFzSCxvRUFBb0UsbUZBQW1GLDJEQUEyRCw2SEFBNkgsVUFBVSxDQUFDLGtCQUFrQiw4QkFBOEIsc0hBQXNILG9FQUFvRSxtRkFBbUYsMkRBQTJELDZIQUE2SCxVQUFVLENBQUMsb0JBQW9CLDhCQUE4QixzSEFBc0gsb0VBQW9FLG1GQUFtRiwyREFBMkQsNkhBQTZILFVBQVUsQ0FBQyxvQkFBb0IsOEJBQThCLHNIQUFzSCxvRUFBb0UsbUZBQW1GLDJEQUEyRCw2SEFBNkgsVUFBVSxDQUFDLG1CQUFtQiw4QkFBOEIsc0hBQXNILG9FQUFvRSxtRkFBbUYsMkRBQTJELDZIQUE2SCxVQUFVLENBQUMsaUJBQWlCLDhCQUE4QixzSEFBc0gsb0VBQW9FLG1GQUFtRiwyREFBMkQsNkhBQTZILFVBQVUsQ0FBQyxtQkFBbUIsMkJBQTJCLG1IQUFtSCxpRUFBaUUsZ0ZBQWdGLHdEQUF3RCw2SEFBNkgsVUFBVSxDQUFDLG9CQUFvQiw4QkFBOEIsc0hBQXNILG9FQUFvRSxtRkFBbUYsMkRBQTJELDZIQUE2SCxVQUFVLENBQUMscUNBQXFDLGNBQWMsQ0FBQyxZQUFZLGFBQWEsQ0FBQyxpQkFBaUIsMEJBQTBCLENBQUMsYUFBYSxlQUFlLGlCQUFpQixpQkFBaUIsVUFBVSxDQUFDLGdCQUFnQixXQUFXLG1CQUFtQixtQkFBbUIsQ0FBQyxhQUFhLFlBQVksVUFBVSxDQUFDLG1CQUFtQixVQUFVLENBQUMsWUFBWSxlQUFlLENBQUMscUNBQXFDLFlBQVksYUFBYSxDQUFDLGtCQUFrQixVQUFVLENBQUMsZ0JBQWdCLFdBQVcsWUFBWSxVQUFVLENBQUMsb0VBQW9FLGNBQWMsZ0JBQWdCLENBQUMsc0JBQXNCLGVBQWUsZUFBZSxDQUFDLHlCQUF5QixXQUFXLGNBQWMsQ0FBQyw4R0FBOEcsZ0JBQWdCLENBQUMsb0NBQW9DLGNBQWMsQ0FBQyxxRkFBcUYsVUFBVSxDQUFDLHFFQUFxRSxzQkFBc0Isc0JBQXNCLENBQUMsa0JBQWtCLGdCQUFnQixDQUFDLFFBQVEsV0FBVyxXQUFXLENBQUMsa0JBQWtCLGdCQUFnQixDQUFDLFFBQVEsWUFBWSxZQUFZLENBQUMsa0JBQWtCLGlCQUFpQixDQUFDLGNBQWMseUJBQXlCLFdBQVcsQ0FBQyxpQkFBaUIseUJBQXlCLFdBQVcsQ0FBQyxrQkFBa0IseUJBQXlCLFlBQVksbUJBQW1CLGtCQUFrQixDQUFDLGtDQUFrQyxnQkFBZ0IsaUJBQWlCLFlBQVksVUFBVSxDQUFDLHFDQUFxQyxpQkFBaUIsQ0FBQyxzQ0FBc0MsUUFBUSxDQUFDLG1DQUFtQyxVQUFVLENBQUMsbUJBQW1CLGdCQUFnQixDQUFDLDZCQUE2QixTQUFTLG1CQUFtQixXQUFXLFlBQVksZ0JBQWdCLFVBQVUsa0JBQWtCLFNBQVMsQ0FBQyxnQkFBZ0IsbUJBQW1CLHVCQUF1QixrQkFBa0IsQ0FBQyxvQkFBb0IsWUFBWSx3QkFBd0IsQ0FBQywwQkFBMEIsVUFBVSx5QkFBeUIsQ0FBQyxPQUFPLGtCQUFrQixnQkFBZ0IsVUFBVSxDQUFDLHlCQUF5QixxQkFBcUIsQ0FBQyxhQUFhLGdFQUFnRSx1QkFBdUIsQ0FBQywwQ0FBMEMseUJBQXlCLHdCQUF3Qiw2Q0FBNkMseUNBQXlDLHdDQUF3QyxvQ0FBb0MsQ0FBQywyQ0FBMkMsd0JBQXdCLENBQUMsU0FBUyxXQUFXLFNBQVMsU0FBUyxTQUFTLENBQUMsYUFBYSxXQUFXLGlCQUFpQixDQUFDLGtCQUFrQixhQUFhLENBQUMsOERBQThELDZCQUE2QixDQUFDLENDTmpweUY7OztHQUdHO0FBQ0g7RUFDRSwwQkFBMEI7Q0FDM0I7QUFDRDtFQUNFLGVBQWU7Q0FDaEI7QUFDRDs7Ozs7OztFQU9FLCtCQUErQjtFQUMvQixlQUFlO0NBQ2hCO0FBQ0Q7RUFDRSxlQUFlO0NBQ2hCO0FBQ0Q7RUFDRSxlQUFlO0VBQ2YsK0JBQStCO0NBQ2hDO0FBQ0Q7RUFDRSxZQUFZO0NBQ2I7QUFDRDtFQUNFLDBCQUEwQjtDQUMzQjtBQUNEO0VBQ0U7SUFDRSwyQ0FBMkM7R0FDNUM7RUFDRDtJQUNFLFlBQVk7R0FDYjtFQUNEO0lBQ0Usb0JBQW9CO0dBQ3JCO0NBQ0Y7QUFDRDtFQUNFLDBCQUEwQjtFQUMxQixlQUFlO0VBQ2YsbUNBQW1DO0NBQ3BDO0FBQ0Q7RUFDRSwwQkFBMEI7Q0FDM0I7QUFDRDtFQUNFLDBCQUEwQjtDQUMzQjtBQUNEO0VBQ0Usd0JBQXdCO0NBQ3pCO0FBQ0Q7OztFQUdFLDBCQUEwQjtDQUMzQjtBQUNEOztFQUVFLFlBQVk7Q0FDYjtBQUNEO0VBQ0UsZUFBZTtFQUNmLG9CQUFvQjtDQUNyQjtBQUNEO0VBQ0UsbUNBQW1DO0NBQ3BDO0FBQ0Q7OztFQUdFLGVBQWU7RUFDZixvQkFBb0I7Q0FDckI7QUFDRDtFQUNFLDJCQUEyQjtDQUM1QjtBQUNEO0VBQ0UsY0FBYztFQUNkLG9CQUFvQjtDQUNyQjtBQUNEO0VBQ0UsZUFBZTtDQUNoQjtBQUNEO0VBQ0Usc0JBQXNCO0NBQ3ZCO0FBQ0Q7RUFDRSxlQUFlO0NBQ2hCO0FBQ0Q7O0VBRUUsZUFBZTtDQUNoQjtBQUNEO0VBQ0UsbUJBQW1CO0VBQ25CLDBCQUEwQjtFQUMxQixrQkFBa0I7Q0FDbkI7QUFDRDs7RUFFRSxpQkFBaUI7RUFDakIsMEJBQTBCO0VBQzFCLDhCQUE4QjtFQUM5QixhQUFhO0NBQ2Q7QUFDRDtFQUNFLFlBQVk7RUFDWiw0QkFBNEI7RUFDNUIsMkJBQTJCO0VBQzNCLDhCQUE4QjtFQUM5QiwrQkFBK0I7Q0FDaEM7QUFDRDs7RUFFRSx1QkFBdUI7RUFDdkIsWUFBWTtDQUNiO0FBQ0Q7RUFDRSx3QkFBd0I7Q0FDekI7QUFDRDtFQUNFLFlBQVk7RUFDWiwwQkFBMEI7RUFDMUIsNkJBQTZCO0VBQzdCLGdDQUFnQztFQUNoQyw2QkFBNkI7Q0FDOUI7QUFDRDtFQUNFLDBCQUEwQjtFQUMxQixlQUFlO0VBQ2YsbUNBQW1DO0NBQ3BDO0FBQ0Q7RUFDRSwwQkFBMEI7Q0FDM0I7QUFDRDs7O0dBR0c7QUFDSDtFQUNFLDBCQUEwQjtDQUMzQjtBQUNEO0VBQ0UsZUFBZTtDQUNoQjtBQUNEOzs7Ozs7O0VBT0UsK0JBQStCO0VBQy9CLGVBQWU7Q0FDaEI7QUFDRDtFQUNFLGVBQWU7Q0FDaEI7QUFDRDtFQUNFLGVBQWU7RUFDZiwrQkFBK0I7Q0FDaEM7QUFDRDtFQUNFLFlBQVk7Q0FDYjtBQUNEO0VBQ0UsMEJBQTBCO0NBQzNCO0FBQ0Q7RUFDRTtJQUNFLDJDQUEyQztHQUM1QztFQUNEO0lBQ0UsWUFBWTtHQUNiO0VBQ0Q7SUFDRSxvQkFBb0I7R0FDckI7Q0FDRjtBQUNEO0VBQ0UsMEJBQTBCO0VBQzFCLGVBQWU7RUFDZixtQ0FBbUM7Q0FDcEM7QUFDRDtFQUNFLDBCQUEwQjtDQUMzQjtBQUNEO0VBQ0UsMEJBQTBCO0NBQzNCO0FBQ0Q7RUFDRSx3QkFBd0I7Q0FDekI7QUFDRDs7O0VBR0UsMEJBQTBCO0NBQzNCO0FBQ0Q7RUFDRSxnQ0FBZ0M7Q0FDakM7QUFDRDs7RUFFRSxlQUFlO0NBQ2hCO0FBQ0Q7RUFDRSxnREFBZ0Q7RUFDaEQsMkNBQTJDO0VBQzNDLHdDQUF3QztDQUN6QztBQUNEO0VBQ0UsZUFBZTtFQUNmLG9CQUFvQjtDQUNyQjtBQUNEO0VBQ0UsbUNBQW1DO0VBQ25DLGlCQUFpQjtDQUNsQjtBQUNEOztFQUVFLGVBQWU7RUFDZixvQkFBb0I7Q0FDckI7QUFDRDtFQUNFLDJCQUEyQjtDQUM1QjtBQUNEO0VBQ0UsaUJBQWlCO0NBQ2xCO0FBQ0Q7RUFDRSxvQkFBb0I7Q0FDckI7QUFDRDtFQUNFLGVBQWU7Q0FDaEI7QUFDRDtFQUNFLHNCQUFzQjtDQUN2QjtBQUNEO0VBQ0UsZUFBZTtDQUNoQjtBQUNEOztFQUVFLGVBQWU7Q0FDaEI7QUFDRDtFQUNFLGlCQUFpQjtDQUNsQjtBQUNEO0VBQ0UsbUJBQW1CO0VBQ25CLDBCQUEwQjtFQUMxQixrQkFBa0I7Q0FDbkI7QUFDRDs7RUFFRSxpQkFBaUI7RUFDakIsdUJBQXVCO0VBQ3ZCLDhCQUE4QjtFQUM5QixhQUFhO0NBQ2Q7QUFDRDtFQUNFLFlBQVk7RUFDWiw0QkFBNEI7RUFDNUIsMkJBQTJCO0VBQzNCLDhCQUE4QjtFQUM5QiwrQkFBK0I7Q0FDaEM7QUFDRDs7RUFFRSx1QkFBdUI7RUFDdkIsWUFBWTtDQUNiO0FBQ0Q7RUFDRSx3QkFBd0I7Q0FDekI7QUFDRDtFQUNFLFlBQVk7RUFDWiwwQkFBMEI7RUFDMUIsNkJBQTZCO0VBQzdCLGdDQUFnQztFQUNoQyw2QkFBNkI7Q0FDOUI7QUFDRDtFQUNFO0lBQ0UsK0JBQStCO0dBQ2hDO0NBQ0Y7QUFDRDtFQUNFLDBCQUEwQjtDQUMzQjtBQUNEO0VBQ0UsMEJBQTBCO0VBQzFCLGVBQWU7RUFDZixtQ0FBbUM7Q0FDcEM7QUFDRDtFQUNFLDBCQUEwQjtDQUMzQjtBQUNEOzs7R0FHRztBQUNILHVCQUF1QjtBQUN2QjtFQUNFLG9EQUFvRDtFQUNwRCw0Q0FBNEM7Q0FDN0M7QUFDRDtFQUNFLFlBQVk7Q0FDYjtBQUNEO0VBQ0UsWUFBWTtFQUNaLDZCQUE2QjtDQUM5QjtBQUNEO0VBQ0UsMEJBQTBCO0NBQzNCO0FBQ0Q7RUFDRSxlQUFlO0NBQ2hCO0FBQ0Q7Ozs7Ozs7RUFPRSxvQkFBb0I7RUFDcEIsZUFBZTtDQUNoQjtBQUNEO0VBQ0UsZUFBZTtDQUNoQjtBQUNEO0VBQ0UsZUFBZTtFQUNmLG9CQUFvQjtDQUNyQjtBQUNEO0VBQ0UsWUFBWTtFQUNaLDZCQUE2QjtDQUM5QjtBQUNEO0VBQ0UsNkJBQTZCO0NBQzlCO0FBQ0Q7O0VBRUUsNEJBQTRCO0VBQzVCLHNCQUFzQjtDQUN2QjtBQUNEO0VBQ0UsMEJBQTBCO0VBQzFCLGVBQWU7RUFDZixtQ0FBbUM7RUFDbkMsNkJBQTZCO0NBQzlCO0FBQ0Q7RUFDRSwwQkFBMEI7Q0FDM0I7QUFDRDtFQUNFO0lBQ0UsMEJBQTBCO0lBQzFCLGVBQWU7SUFDZixtQ0FBbUM7SUFDbkMsbUJBQW1CO0dBQ3BCO0VBQ0Q7SUFDRSwwQkFBMEI7R0FDM0I7Q0FDRjtBQUNEO0VBQ0UsdUJBQXVCO0NBQ3hCO0FBQ0Q7RUFDRSx3QkFBd0I7RUFDeEIsaUJBQWlCO0NBQ2xCO0FBQ0Q7OztFQUdFLDBCQUEwQjtDQUMzQjtBQUNEOztFQUVFLFlBQVk7Q0FDYjtBQUNEO0VBQ0UsZUFBZTtFQUNmLG9CQUFvQjtDQUNyQjtBQUNEO0VBQ0UsbUNBQW1DO0NBQ3BDO0FBQ0Q7OztFQUdFLGVBQWU7RUFDZixvQkFBb0I7Q0FDckI7QUFDRDtFQUNFLDJCQUEyQjtDQUM1QjtBQUNEO0VBQ0UsY0FBYztFQUNkLG9CQUFvQjtDQUNyQjtBQUNEO0VBQ0UsZUFBZTtDQUNoQjtBQUNEO0VBQ0Usc0JBQXNCO0NBQ3ZCO0FBQ0Q7RUFDRSxlQUFlO0NBQ2hCO0FBQ0Q7O0VBRUUsZUFBZTtDQUNoQjtBQUNEO0VBQ0UsbUJBQW1CO0VBQ25CLDBCQUEwQjtFQUMxQixrQkFBa0I7Q0FDbkI7QUFDRDs7RUFFRSxpQkFBaUI7RUFDakIsMEJBQTBCO0VBQzFCLDhCQUE4QjtFQUM5QixhQUFhO0NBQ2Q7QUFDRDtFQUNFLFlBQVk7RUFDWiw0QkFBNEI7RUFDNUIsMkJBQTJCO0VBQzNCLDhCQUE4QjtFQUM5QiwrQkFBK0I7Q0FDaEM7QUFDRDs7RUFFRSx1QkFBdUI7RUFDdkIsWUFBWTtDQUNiO0FBQ0Q7RUFDRSx3QkFBd0I7Q0FDekI7QUFDRDtFQUNFLFlBQVk7RUFDWiwwQkFBMEI7RUFDMUIsNkJBQTZCO0VBQzdCLGdDQUFnQztFQUNoQyw2QkFBNkI7Q0FDOUI7QUFDRDtFQUNFLGlCQUFpQjtDQUNsQjtBQUNEO0VBQ0UsdUJBQXVCO0VBQ3ZCLHdCQUF3QjtDQUN6QjtBQUNEOzs7R0FHRztBQUNILHVCQUF1QjtBQUN2QjtFQUNFLGlDQUFpQztDQUNsQztBQUNEO0VBQ0UsWUFBWTtDQUNiO0FBQ0Q7RUFDRSxZQUFZO0VBQ1osZ0NBQWdDO0NBQ2pDO0FBQ0Q7RUFDRSwwQkFBMEI7Q0FDM0I7QUFDRDtFQUNFLGVBQWU7Q0FDaEI7QUFDRDs7Ozs7OztFQU9FLG9CQUFvQjtFQUNwQixlQUFlO0NBQ2hCO0FBQ0Q7RUFDRSxlQUFlO0NBQ2hCO0FBQ0Q7RUFDRSxlQUFlO0VBQ2Ysb0JBQW9CO0NBQ3JCO0FBQ0Q7RUFDRSxZQUFZO0VBQ1osZ0NBQWdDO0NBQ2pDO0FBQ0Q7RUFDRSxnQ0FBZ0M7Q0FDakM7QUFDRDs7RUFFRSwrQkFBK0I7RUFDL0Isc0JBQXNCO0NBQ3ZCO0FBQ0Q7RUFDRSwwQkFBMEI7RUFDMUIsZUFBZTtFQUNmLG1DQUFtQztFQUNuQyxnQ0FBZ0M7Q0FDakM7QUFDRDtFQUNFLDBCQUEwQjtDQUMzQjtBQUNEO0VBQ0U7SUFDRSwwQkFBMEI7SUFDMUIsZUFBZTtJQUNmLG1DQUFtQztJQUNuQyxtQkFBbUI7R0FDcEI7RUFDRDtJQUNFLDBCQUEwQjtHQUMzQjtDQUNGO0FBQ0Q7RUFDRSx1QkFBdUI7Q0FDeEI7QUFDRDtFQUNFLHdCQUF3QjtFQUN4QixpQkFBaUI7Q0FDbEI7QUFDRDs7O0VBR0UsMEJBQTBCO0NBQzNCO0FBQ0Q7RUFDRSxnQ0FBZ0M7Q0FDakM7QUFDRDs7RUFFRSxlQUFlO0NBQ2hCO0FBQ0Q7RUFDRSxnREFBZ0Q7RUFDaEQsMkNBQTJDO0VBQzNDLHdDQUF3QztDQUN6QztBQUNEO0VBQ0UsZUFBZTtFQUNmLG9CQUFvQjtDQUNyQjtBQUNEO0VBQ0UsbUNBQW1DO0VBQ25DLGlCQUFpQjtDQUNsQjtBQUNEOztFQUVFLGVBQWU7RUFDZixvQkFBb0I7Q0FDckI7QUFDRDtFQUNFLDJCQUEyQjtDQUM1QjtBQUNEO0VBQ0UsaUJBQWlCO0NBQ2xCO0FBQ0Q7RUFDRSxvQkFBb0I7Q0FDckI7QUFDRDtFQUNFLGVBQWU7Q0FDaEI7QUFDRDtFQUNFLHNCQUFzQjtDQUN2QjtBQUNEO0VBQ0UsZUFBZTtDQUNoQjtBQUNEOztFQUVFLGVBQWU7Q0FDaEI7QUFDRDtFQUNFLGlCQUFpQjtDQUNsQjtBQUNEO0VBQ0UsbUJBQW1CO0VBQ25CLDBCQUEwQjtFQUMxQixrQkFBa0I7Q0FDbkI7QUFDRDs7RUFFRSxpQkFBaUI7RUFDakIsdUJBQXVCO0VBQ3ZCLDhCQUE4QjtFQUM5QixhQUFhO0NBQ2Q7QUFDRDtFQUNFLFlBQVk7RUFDWiw0QkFBNEI7RUFDNUIsMkJBQTJCO0VBQzNCLDhCQUE4QjtFQUM5QiwrQkFBK0I7Q0FDaEM7QUFDRDs7RUFFRSx1QkFBdUI7RUFDdkIsWUFBWTtDQUNiO0FBQ0Q7RUFDRSx3QkFBd0I7Q0FDekI7QUFDRDtFQUNFLFlBQVk7RUFDWiwwQkFBMEI7RUFDMUIsNkJBQTZCO0VBQzdCLGdDQUFnQztFQUNoQyw2QkFBNkI7Q0FDOUI7QUFDRDtFQUNFO0lBQ0UsK0JBQStCO0dBQ2hDO0NBQ0Y7QUFDRDs7O0dBR0c7QUFDSDtFQUNFLDBCQUEwQjtDQUMzQjtBQUNEO0VBQ0UsZUFBZTtDQUNoQjtBQUNEOzs7Ozs7O0VBT0UsK0JBQStCO0VBQy9CLGVBQWU7Q0FDaEI7QUFDRDtFQUNFLGVBQWU7Q0FDaEI7QUFDRDtFQUNFLGVBQWU7RUFDZiwrQkFBK0I7Q0FDaEM7QUFDRDtFQUNFLFlBQVk7Q0FDYjtBQUNEO0VBQ0UsMEJBQTBCO0NBQzNCO0FBQ0Q7RUFDRTtJQUNFLDJDQUEyQztHQUM1QztFQUNEO0lBQ0UsWUFBWTtHQUNiO0VBQ0Q7SUFDRSxvQkFBb0I7R0FDckI7Q0FDRjtBQUNEO0VBQ0UsMEJBQTBCO0VBQzFCLGVBQWU7RUFDZixtQ0FBbUM7Q0FDcEM7QUFDRDtFQUNFLDBCQUEwQjtDQUMzQjtBQUNEO0VBQ0UsMEJBQTBCO0NBQzNCO0FBQ0Q7RUFDRSx3QkFBd0I7Q0FDekI7QUFDRDs7O0VBR0UsMEJBQTBCO0NBQzNCO0FBQ0Q7O0VBRUUsWUFBWTtDQUNiO0FBQ0Q7RUFDRSxlQUFlO0VBQ2Ysb0JBQW9CO0NBQ3JCO0FBQ0Q7RUFDRSxtQ0FBbUM7Q0FDcEM7QUFDRDs7O0VBR0UsZUFBZTtFQUNmLG9CQUFvQjtDQUNyQjtBQUNEO0VBQ0UsMkJBQTJCO0NBQzVCO0FBQ0Q7RUFDRSxjQUFjO0VBQ2Qsb0JBQW9CO0NBQ3JCO0FBQ0Q7RUFDRSxlQUFlO0NBQ2hCO0FBQ0Q7RUFDRSxzQkFBc0I7Q0FDdkI7QUFDRDtFQUNFLGVBQWU7Q0FDaEI7QUFDRDs7RUFFRSxlQUFlO0NBQ2hCO0FBQ0Q7RUFDRSxtQkFBbUI7RUFDbkIsMEJBQTBCO0VBQzFCLGtCQUFrQjtDQUNuQjtBQUNEOztFQUVFLGlCQUFpQjtFQUNqQiwwQkFBMEI7RUFDMUIsOEJBQThCO0VBQzlCLGFBQWE7Q0FDZDtBQUNEO0VBQ0UsWUFBWTtFQUNaLDRCQUE0QjtFQUM1QiwyQkFBMkI7RUFDM0IsOEJBQThCO0VBQzlCLCtCQUErQjtDQUNoQztBQUNEOztFQUVFLHVCQUF1QjtFQUN2QixZQUFZO0NBQ2I7QUFDRDtFQUNFLHdCQUF3QjtDQUN6QjtBQUNEO0VBQ0UsWUFBWTtFQUNaLDBCQUEwQjtFQUMxQiw2QkFBNkI7RUFDN0IsZ0NBQWdDO0VBQ2hDLDZCQUE2QjtDQUM5QjtBQUNEOzs7R0FHRztBQUNIO0VBQ0UsMEJBQTBCO0NBQzNCO0FBQ0Q7RUFDRSxlQUFlO0NBQ2hCO0FBQ0Q7Ozs7Ozs7RUFPRSwrQkFBK0I7RUFDL0IsZUFBZTtDQUNoQjtBQUNEO0VBQ0UsZUFBZTtDQUNoQjtBQUNEO0VBQ0UsZUFBZTtFQUNmLCtCQUErQjtDQUNoQztBQUNEO0VBQ0UsWUFBWTtDQUNiO0FBQ0Q7RUFDRSwwQkFBMEI7Q0FDM0I7QUFDRDtFQUNFO0lBQ0UsMkNBQTJDO0dBQzVDO0VBQ0Q7SUFDRSxZQUFZO0dBQ2I7RUFDRDtJQUNFLG9CQUFvQjtHQUNyQjtDQUNGO0FBQ0Q7RUFDRSwwQkFBMEI7RUFDMUIsZUFBZTtFQUNmLG1DQUFtQztDQUNwQztBQUNEO0VBQ0UsMEJBQTBCO0NBQzNCO0FBQ0Q7RUFDRSwwQkFBMEI7Q0FDM0I7QUFDRDtFQUNFLHdCQUF3QjtDQUN6QjtBQUNEOzs7RUFHRSwwQkFBMEI7Q0FDM0I7QUFDRDtFQUNFLGdDQUFnQztDQUNqQztBQUNEOztFQUVFLGVBQWU7Q0FDaEI7QUFDRDtFQUNFLGdEQUFnRDtFQUNoRCwyQ0FBMkM7RUFDM0Msd0NBQXdDO0NBQ3pDO0FBQ0Q7RUFDRSxlQUFlO0VBQ2Ysb0JBQW9CO0NBQ3JCO0FBQ0Q7RUFDRSxtQ0FBbUM7RUFDbkMsaUJBQWlCO0NBQ2xCO0FBQ0Q7O0VBRUUsZUFBZTtFQUNmLG9CQUFvQjtDQUNyQjtBQUNEO0VBQ0UsMkJBQTJCO0NBQzVCO0FBQ0Q7RUFDRSxpQkFBaUI7Q0FDbEI7QUFDRDtFQUNFLG9CQUFvQjtDQUNyQjtBQUNEO0VBQ0UsZUFBZTtDQUNoQjtBQUNEO0VBQ0Usc0JBQXNCO0NBQ3ZCO0FBQ0Q7RUFDRSxlQUFlO0NBQ2hCO0FBQ0Q7O0VBRUUsZUFBZTtDQUNoQjtBQUNEO0VBQ0UsaUJBQWlCO0NBQ2xCO0FBQ0Q7RUFDRSxtQkFBbUI7RUFDbkIsMEJBQTBCO0VBQzFCLGtCQUFrQjtDQUNuQjtBQUNEOztFQUVFLGlCQUFpQjtFQUNqQix1QkFBdUI7RUFDdkIsOEJBQThCO0VBQzlCLGFBQWE7Q0FDZDtBQUNEO0VBQ0UsWUFBWTtFQUNaLDRCQUE0QjtFQUM1QiwyQkFBMkI7RUFDM0IsOEJBQThCO0VBQzlCLCtCQUErQjtDQUNoQztBQUNEOztFQUVFLHVCQUF1QjtFQUN2QixZQUFZO0NBQ2I7QUFDRDtFQUNFLHdCQUF3QjtDQUN6QjtBQUNEO0VBQ0UsWUFBWTtFQUNaLDBCQUEwQjtFQUMxQiw2QkFBNkI7RUFDN0IsZ0NBQWdDO0VBQ2hDLDZCQUE2QjtDQUM5QjtBQUNEO0VBQ0U7SUFDRSwrQkFBK0I7R0FDaEM7Q0FDRjtBQUNEOzs7R0FHRztBQUNIO0VBQ0UsMEJBQTBCO0NBQzNCO0FBQ0Q7RUFDRSxlQUFlO0NBQ2hCO0FBQ0Q7Ozs7Ozs7RUFPRSwrQkFBK0I7RUFDL0IsZUFBZTtDQUNoQjtBQUNEO0VBQ0UsZUFBZTtDQUNoQjtBQUNEO0VBQ0UsZUFBZTtFQUNmLCtCQUErQjtDQUNoQztBQUNEO0VBQ0UsWUFBWTtDQUNiO0FBQ0Q7RUFDRSwwQkFBMEI7Q0FDM0I7QUFDRDtFQUNFO0lBQ0UsMkNBQTJDO0dBQzVDO0VBQ0Q7SUFDRSxZQUFZO0dBQ2I7RUFDRDtJQUNFLG9CQUFvQjtHQUNyQjtDQUNGO0FBQ0Q7RUFDRSwwQkFBMEI7RUFDMUIsZUFBZTtFQUNmLG1DQUFtQztDQUNwQztBQUNEO0VBQ0UsMEJBQTBCO0NBQzNCO0FBQ0Q7RUFDRSwwQkFBMEI7Q0FDM0I7QUFDRDtFQUNFLHdCQUF3QjtDQUN6QjtBQUNEOzs7RUFHRSwwQkFBMEI7Q0FDM0I7QUFDRDs7RUFFRSxZQUFZO0NBQ2I7QUFDRDtFQUNFLGVBQWU7RUFDZixvQkFBb0I7Q0FDckI7QUFDRDtFQUNFLG1DQUFtQztDQUNwQztBQUNEOzs7RUFHRSxlQUFlO0VBQ2Ysb0JBQW9CO0NBQ3JCO0FBQ0Q7RUFDRSwyQkFBMkI7Q0FDNUI7QUFDRDtFQUNFLGNBQWM7RUFDZCxvQkFBb0I7Q0FDckI7QUFDRDtFQUNFLGVBQWU7Q0FDaEI7QUFDRDtFQUNFLHNCQUFzQjtDQUN2QjtBQUNEO0VBQ0UsZUFBZTtDQUNoQjtBQUNEOztFQUVFLGVBQWU7Q0FDaEI7QUFDRDtFQUNFLG1CQUFtQjtFQUNuQiwwQkFBMEI7RUFDMUIsa0JBQWtCO0NBQ25CO0FBQ0Q7O0VBRUUsaUJBQWlCO0VBQ2pCLDBCQUEwQjtFQUMxQiw4QkFBOEI7RUFDOUIsYUFBYTtDQUNkO0FBQ0Q7RUFDRSxZQUFZO0VBQ1osNEJBQTRCO0VBQzVCLDJCQUEyQjtFQUMzQiw4QkFBOEI7RUFDOUIsK0JBQStCO0NBQ2hDO0FBQ0Q7O0VBRUUsdUJBQXVCO0VBQ3ZCLFlBQVk7Q0FDYjtBQUNEO0VBQ0Usd0JBQXdCO0NBQ3pCO0FBQ0Q7RUFDRSxZQUFZO0VBQ1osMEJBQTBCO0VBQzFCLDZCQUE2QjtFQUM3QixnQ0FBZ0M7RUFDaEMsNkJBQTZCO0NBQzlCO0FBQ0Q7OztHQUdHO0FBQ0g7RUFDRSwwQkFBMEI7Q0FDM0I7QUFDRDtFQUNFLGVBQWU7Q0FDaEI7QUFDRDs7Ozs7OztFQU9FLCtCQUErQjtFQUMvQixlQUFlO0NBQ2hCO0FBQ0Q7RUFDRSxlQUFlO0NBQ2hCO0FBQ0Q7RUFDRSxlQUFlO0VBQ2YsK0JBQStCO0NBQ2hDO0FBQ0Q7RUFDRSxZQUFZO0NBQ2I7QUFDRDtFQUNFLDBCQUEwQjtDQUMzQjtBQUNEO0VBQ0U7SUFDRSwyQ0FBMkM7R0FDNUM7RUFDRDtJQUNFLFlBQVk7R0FDYjtFQUNEO0lBQ0Usb0JBQW9CO0dBQ3JCO0NBQ0Y7QUFDRDtFQUNFLDBCQUEwQjtFQUMxQixlQUFlO0VBQ2YsbUNBQW1DO0NBQ3BDO0FBQ0Q7RUFDRSwwQkFBMEI7Q0FDM0I7QUFDRDtFQUNFLDBCQUEwQjtDQUMzQjtBQUNEO0VBQ0Usd0JBQXdCO0NBQ3pCO0FBQ0Q7OztFQUdFLDBCQUEwQjtDQUMzQjtBQUNEO0VBQ0UsZ0NBQWdDO0NBQ2pDO0FBQ0Q7O0VBRUUsZUFBZTtDQUNoQjtBQUNEO0VBQ0UsZ0RBQWdEO0VBQ2hELDJDQUEyQztFQUMzQyx3Q0FBd0M7Q0FDekM7QUFDRDtFQUNFLGVBQWU7RUFDZixvQkFBb0I7Q0FDckI7QUFDRDtFQUNFLG1DQUFtQztFQUNuQyxpQkFBaUI7Q0FDbEI7QUFDRDs7RUFFRSxlQUFlO0VBQ2Ysb0JBQW9CO0NBQ3JCO0FBQ0Q7RUFDRSwyQkFBMkI7Q0FDNUI7QUFDRDtFQUNFLGlCQUFpQjtDQUNsQjtBQUNEO0VBQ0Usb0JBQW9CO0NBQ3JCO0FBQ0Q7RUFDRSxlQUFlO0NBQ2hCO0FBQ0Q7RUFDRSxzQkFBc0I7Q0FDdkI7QUFDRDtFQUNFLGVBQWU7Q0FDaEI7QUFDRDs7RUFFRSxlQUFlO0NBQ2hCO0FBQ0Q7RUFDRSxpQkFBaUI7Q0FDbEI7QUFDRDtFQUNFLG1CQUFtQjtFQUNuQiwwQkFBMEI7RUFDMUIsa0JBQWtCO0NBQ25CO0FBQ0Q7O0VBRUUsaUJBQWlCO0VBQ2pCLHVCQUF1QjtFQUN2Qiw4QkFBOEI7RUFDOUIsYUFBYTtDQUNkO0FBQ0Q7RUFDRSxZQUFZO0VBQ1osNEJBQTRCO0VBQzVCLDJCQUEyQjtFQUMzQiw4QkFBOEI7RUFDOUIsK0JBQStCO0NBQ2hDO0FBQ0Q7O0VBRUUsdUJBQXVCO0VBQ3ZCLFlBQVk7Q0FDYjtBQUNEO0VBQ0Usd0JBQXdCO0NBQ3pCO0FBQ0Q7RUFDRSxZQUFZO0VBQ1osMEJBQTBCO0VBQzFCLDZCQUE2QjtFQUM3QixnQ0FBZ0M7RUFDaEMsNkJBQTZCO0NBQzlCO0FBQ0Q7RUFDRTtJQUNFLCtCQUErQjtHQUNoQztDQUNGO0FBQ0Q7OztHQUdHO0FBQ0g7RUFDRSwwQkFBMEI7Q0FDM0I7QUFDRDtFQUNFLGVBQWU7Q0FDaEI7QUFDRDs7Ozs7OztFQU9FLCtCQUErQjtFQUMvQixlQUFlO0NBQ2hCO0FBQ0Q7RUFDRSxlQUFlO0NBQ2hCO0FBQ0Q7RUFDRSxlQUFlO0VBQ2YsK0JBQStCO0NBQ2hDO0FBQ0Q7RUFDRSxZQUFZO0NBQ2I7QUFDRDtFQUNFLDBCQUEwQjtDQUMzQjtBQUNEO0VBQ0U7SUFDRSwyQ0FBMkM7R0FDNUM7RUFDRDtJQUNFLFlBQVk7R0FDYjtFQUNEO0lBQ0Usb0JBQW9CO0dBQ3JCO0NBQ0Y7QUFDRDtFQUNFLDBCQUEwQjtFQUMxQixlQUFlO0VBQ2YsbUNBQW1DO0NBQ3BDO0FBQ0Q7RUFDRSwwQkFBMEI7Q0FDM0I7QUFDRDtFQUNFLDBCQUEwQjtDQUMzQjtBQUNEO0VBQ0Usd0JBQXdCO0NBQ3pCO0FBQ0Q7OztFQUdFLDBCQUEwQjtDQUMzQjtBQUNEOztFQUVFLFlBQVk7Q0FDYjtBQUNEO0VBQ0UsZUFBZTtFQUNmLG9CQUFvQjtDQUNyQjtBQUNEO0VBQ0UsbUNBQW1DO0NBQ3BDO0FBQ0Q7OztFQUdFLGVBQWU7RUFDZixvQkFBb0I7Q0FDckI7QUFDRDtFQUNFLDJCQUEyQjtDQUM1QjtBQUNEO0VBQ0UsY0FBYztFQUNkLG9CQUFvQjtDQUNyQjtBQUNEO0VBQ0UsZUFBZTtDQUNoQjtBQUNEO0VBQ0Usc0JBQXNCO0NBQ3ZCO0FBQ0Q7RUFDRSxlQUFlO0NBQ2hCO0FBQ0Q7O0VBRUUsZUFBZTtDQUNoQjtBQUNEO0VBQ0UsbUJBQW1CO0VBQ25CLDBCQUEwQjtFQUMxQixrQkFBa0I7Q0FDbkI7QUFDRDs7RUFFRSxpQkFBaUI7RUFDakIsMEJBQTBCO0VBQzFCLDhCQUE4QjtFQUM5QixhQUFhO0NBQ2Q7QUFDRDtFQUNFLFlBQVk7RUFDWiw0QkFBNEI7RUFDNUIsMkJBQTJCO0VBQzNCLDhCQUE4QjtFQUM5QiwrQkFBK0I7Q0FDaEM7QUFDRDs7RUFFRSx1QkFBdUI7RUFDdkIsWUFBWTtDQUNiO0FBQ0Q7RUFDRSx3QkFBd0I7Q0FDekI7QUFDRDtFQUNFLFlBQVk7RUFDWiwwQkFBMEI7RUFDMUIsNkJBQTZCO0VBQzdCLGdDQUFnQztFQUNoQyw2QkFBNkI7Q0FDOUI7QUFDRDs7O0dBR0c7QUFDSDtFQUNFLDBCQUEwQjtDQUMzQjtBQUNEO0VBQ0UsZUFBZTtDQUNoQjtBQUNEOzs7Ozs7O0VBT0UsK0JBQStCO0VBQy9CLGVBQWU7Q0FDaEI7QUFDRDtFQUNFLGVBQWU7Q0FDaEI7QUFDRDtFQUNFLGVBQWU7RUFDZiwrQkFBK0I7Q0FDaEM7QUFDRDtFQUNFLFlBQVk7Q0FDYjtBQUNEO0VBQ0UsMEJBQTBCO0NBQzNCO0FBQ0Q7RUFDRTtJQUNFLDJDQUEyQztHQUM1QztFQUNEO0lBQ0UsWUFBWTtHQUNiO0VBQ0Q7SUFDRSxvQkFBb0I7R0FDckI7Q0FDRjtBQUNEO0VBQ0UsMEJBQTBCO0VBQzFCLGVBQWU7RUFDZixtQ0FBbUM7Q0FDcEM7QUFDRDtFQUNFLDBCQUEwQjtDQUMzQjtBQUNEO0VBQ0UsMEJBQTBCO0NBQzNCO0FBQ0Q7RUFDRSx3QkFBd0I7Q0FDekI7QUFDRDs7O0VBR0UsMEJBQTBCO0NBQzNCO0FBQ0Q7RUFDRSxnQ0FBZ0M7Q0FDakM7QUFDRDs7RUFFRSxlQUFlO0NBQ2hCO0FBQ0Q7RUFDRSxnREFBZ0Q7RUFDaEQsMkNBQTJDO0VBQzNDLHdDQUF3QztDQUN6QztBQUNEO0VBQ0UsZUFBZTtFQUNmLG9CQUFvQjtDQUNyQjtBQUNEO0VBQ0UsbUNBQW1DO0VBQ25DLGlCQUFpQjtDQUNsQjtBQUNEOztFQUVFLGVBQWU7RUFDZixvQkFBb0I7Q0FDckI7QUFDRDtFQUNFLDJCQUEyQjtDQUM1QjtBQUNEO0VBQ0UsaUJBQWlCO0NBQ2xCO0FBQ0Q7RUFDRSxvQkFBb0I7Q0FDckI7QUFDRDtFQUNFLGVBQWU7Q0FDaEI7QUFDRDtFQUNFLHNCQUFzQjtDQUN2QjtBQUNEO0VBQ0UsZUFBZTtDQUNoQjtBQUNEOztFQUVFLGVBQWU7Q0FDaEI7QUFDRDtFQUNFLGlCQUFpQjtDQUNsQjtBQUNEO0VBQ0UsbUJBQW1CO0VBQ25CLDBCQUEwQjtFQUMxQixrQkFBa0I7Q0FDbkI7QUFDRDs7RUFFRSxpQkFBaUI7RUFDakIsdUJBQXVCO0VBQ3ZCLDhCQUE4QjtFQUM5QixhQUFhO0NBQ2Q7QUFDRDtFQUNFLFlBQVk7RUFDWiw0QkFBNEI7RUFDNUIsMkJBQTJCO0VBQzNCLDhCQUE4QjtFQUM5QiwrQkFBK0I7Q0FDaEM7QUFDRDs7RUFFRSx1QkFBdUI7RUFDdkIsWUFBWTtDQUNiO0FBQ0Q7RUFDRSx3QkFBd0I7Q0FDekI7QUFDRDtFQUNFLFlBQVk7RUFDWiwwQkFBMEI7RUFDMUIsNkJBQTZCO0VBQzdCLGdDQUFnQztFQUNoQyw2QkFBNkI7Q0FDOUI7QUFDRDtFQUNFO0lBQ0UsK0JBQStCO0dBQ2hDO0NBQ0Y7QUFDRDs7O0dBR0c7QUFDSDtFQUNFLDBCQUEwQjtDQUMzQjtBQUNEO0VBQ0UsZUFBZTtDQUNoQjtBQUNEOzs7Ozs7O0VBT0UsK0JBQStCO0VBQy9CLGVBQWU7Q0FDaEI7QUFDRDtFQUNFLGVBQWU7Q0FDaEI7QUFDRDtFQUNFLGVBQWU7RUFDZiwrQkFBK0I7Q0FDaEM7QUFDRDtFQUNFLFlBQVk7Q0FDYjtBQUNEO0VBQ0UsMEJBQTBCO0NBQzNCO0FBQ0Q7RUFDRTtJQUNFLDJDQUEyQztHQUM1QztFQUNEO0lBQ0UsWUFBWTtHQUNiO0VBQ0Q7SUFDRSxvQkFBb0I7R0FDckI7Q0FDRjtBQUNEO0VBQ0UsMEJBQTBCO0VBQzFCLGVBQWU7RUFDZixtQ0FBbUM7Q0FDcEM7QUFDRDtFQUNFLDBCQUEwQjtDQUMzQjtBQUNEO0VBQ0UsMEJBQTBCO0NBQzNCO0FBQ0Q7RUFDRSx3QkFBd0I7Q0FDekI7QUFDRDs7O0VBR0UsMEJBQTBCO0NBQzNCO0FBQ0Q7O0VBRUUsWUFBWTtDQUNiO0FBQ0Q7RUFDRSxlQUFlO0VBQ2Ysb0JBQW9CO0NBQ3JCO0FBQ0Q7RUFDRSxtQ0FBbUM7Q0FDcEM7QUFDRDs7O0VBR0UsZUFBZTtFQUNmLG9CQUFvQjtDQUNyQjtBQUNEO0VBQ0UsMkJBQTJCO0NBQzVCO0FBQ0Q7RUFDRSxjQUFjO0VBQ2Qsb0JBQW9CO0NBQ3JCO0FBQ0Q7RUFDRSxlQUFlO0NBQ2hCO0FBQ0Q7RUFDRSxzQkFBc0I7Q0FDdkI7QUFDRDtFQUNFLGVBQWU7Q0FDaEI7QUFDRDs7RUFFRSxlQUFlO0NBQ2hCO0FBQ0Q7RUFDRSxtQkFBbUI7RUFDbkIsMEJBQTBCO0VBQzFCLGtCQUFrQjtDQUNuQjtBQUNEOztFQUVFLGlCQUFpQjtFQUNqQiwwQkFBMEI7RUFDMUIsOEJBQThCO0VBQzlCLGFBQWE7Q0FDZDtBQUNEO0VBQ0UsWUFBWTtFQUNaLDRCQUE0QjtFQUM1QiwyQkFBMkI7RUFDM0IsOEJBQThCO0VBQzlCLCtCQUErQjtDQUNoQztBQUNEOztFQUVFLHVCQUF1QjtFQUN2QixZQUFZO0NBQ2I7QUFDRDtFQUNFLHdCQUF3QjtDQUN6QjtBQUNEO0VBQ0UsWUFBWTtFQUNaLDBCQUEwQjtFQUMxQiw2QkFBNkI7RUFDN0IsZ0NBQWdDO0VBQ2hDLDZCQUE2QjtDQUM5QjtBQUNEOzs7R0FHRztBQUNIO0VBQ0UsMEJBQTBCO0NBQzNCO0FBQ0Q7RUFDRSxlQUFlO0NBQ2hCO0FBQ0Q7Ozs7Ozs7RUFPRSwrQkFBK0I7RUFDL0IsZUFBZTtDQUNoQjtBQUNEO0VBQ0UsZUFBZTtDQUNoQjtBQUNEO0VBQ0UsZUFBZTtFQUNmLCtCQUErQjtDQUNoQztBQUNEO0VBQ0UsWUFBWTtDQUNiO0FBQ0Q7RUFDRSwwQkFBMEI7Q0FDM0I7QUFDRDtFQUNFO0lBQ0UsMkNBQTJDO0dBQzVDO0VBQ0Q7SUFDRSxZQUFZO0dBQ2I7RUFDRDtJQUNFLG9CQUFvQjtHQUNyQjtDQUNGO0FBQ0Q7RUFDRSwwQkFBMEI7RUFDMUIsZUFBZTtFQUNmLG1DQUFtQztDQUNwQztBQUNEO0VBQ0UsMEJBQTBCO0NBQzNCO0FBQ0Q7RUFDRSwwQkFBMEI7Q0FDM0I7QUFDRDtFQUNFLHdCQUF3QjtDQUN6QjtBQUNEOzs7RUFHRSwwQkFBMEI7Q0FDM0I7QUFDRDtFQUNFLGdDQUFnQztDQUNqQztBQUNEOztFQUVFLGVBQWU7Q0FDaEI7QUFDRDtFQUNFLGdEQUFnRDtFQUNoRCwyQ0FBMkM7RUFDM0Msd0NBQXdDO0NBQ3pDO0FBQ0Q7RUFDRSxlQUFlO0VBQ2Ysb0JBQW9CO0NBQ3JCO0FBQ0Q7RUFDRSxtQ0FBbUM7RUFDbkMsaUJBQWlCO0NBQ2xCO0FBQ0Q7O0VBRUUsZUFBZTtFQUNmLG9CQUFvQjtDQUNyQjtBQUNEO0VBQ0UsMkJBQTJCO0NBQzVCO0FBQ0Q7RUFDRSxpQkFBaUI7Q0FDbEI7QUFDRDtFQUNFLG9CQUFvQjtDQUNyQjtBQUNEO0VBQ0UsZUFBZTtDQUNoQjtBQUNEO0VBQ0Usc0JBQXNCO0NBQ3ZCO0FBQ0Q7RUFDRSxlQUFlO0NBQ2hCO0FBQ0Q7O0VBRUUsZUFBZTtDQUNoQjtBQUNEO0VBQ0UsaUJBQWlCO0NBQ2xCO0FBQ0Q7RUFDRSxtQkFBbUI7RUFDbkIsMEJBQTBCO0VBQzFCLGtCQUFrQjtDQUNuQjtBQUNEOztFQUVFLGlCQUFpQjtFQUNqQix1QkFBdUI7RUFDdkIsOEJBQThCO0VBQzlCLGFBQWE7Q0FDZDtBQUNEO0VBQ0UsWUFBWTtFQUNaLDRCQUE0QjtFQUM1QiwyQkFBMkI7RUFDM0IsOEJBQThCO0VBQzlCLCtCQUErQjtDQUNoQztBQUNEOztFQUVFLHVCQUF1QjtFQUN2QixZQUFZO0NBQ2I7QUFDRDtFQUNFLHdCQUF3QjtDQUN6QjtBQUNEO0VBQ0UsWUFBWTtFQUNaLDBCQUEwQjtFQUMxQiw2QkFBNkI7RUFDN0IsZ0NBQWdDO0VBQ2hDLDZCQUE2QjtDQUM5QjtBQUNEO0VBQ0U7SUFDRSwrQkFBK0I7R0FDaEM7Q0FDRjtBQ252REQ7Ozs7O0dBS0c7QUFDSDs7OztFQUlJLFlBQVcsRUFDZDs7QUFFRDs7OztFQUlJLFlBQVcsRUFDZDs7QUFFRDtFQUNJLG1DQUFrQztFQUNsQyxpQkFBZ0IsRUFDbkI7O0FBRUQ7RUFDSSxrQkFBaUIsRUFDcEI7O0FBRUQ7RUFDSSxjQUFZO0VBQ1osZ0JBQWUsRUFDbEI7O0FBRUQ7Ozs7RUFJSSxZQUFXO0VBQ1gsYUFBWTtFQUNaLGdCQUFlO0VBQ2Ysa0JBQWlCO0VBQ2pCLG1CQUFrQjtFQUNsQixZQUFXO0VBQ1gsb0JBQW1CO0VBQ25CLG1CQUFrQjtFQUNsQixtQkFBa0I7RUFDbEIsV0FBVTtFQUNWLE9BQU0sRUFDVDtBQ2xERDtzQ0FDc0M7QUFDdEM7O0lBRUksc0JBQXNCO0tBQ3RCLGdCQUFpQjtJQUNqQix1QkFBdUI7SUFDdkIsVUFBVTtJQUNWLFdBQVc7SUFDWCxZQUFZO0lBQ1osYUFBYTtJQUNiLG9EQUFvQztJQUNwQyxhQUFhO0lBQ2IsZ0JBQWdCO0NBQ25COztBQUVEO0lBQ0kseUJBQXlCO0NBQzVCO0lBQ0c7UUFDSSw2QkFBNkI7S0FDaEM7SUFDRDtRQUNJLDZCQUE2QjtLQUNoQztJQUNEO1FBQ0ksNkJBQTZCO1FBQzdCLGdCQUFnQjtLQUNuQjtJQUNEO1FBQ0ksNkJBQTZCO0tBQ2hDOztBQUVMO0lBQ0ksOEJBQThCO0NBQ2pDO0lBQ0c7UUFDSSw4QkFBOEI7S0FDakM7SUFDRDtRQUNJLDhCQUE4QjtLQUNqQztJQUNEO1FBQ0ksOEJBQThCO1FBQzlCLGdCQUFnQjtLQUNuQjtJQUNEO1FBQ0ksOEJBQThCO0tBQ2pDOztBQUVMLG1CQUFtQjtBQUNuQjtJQUNJOztRQUVJLGdEQUFtQztRQUNuQyxvQ0FBb0M7UUFDcEMsNEJBQTRCO0tBQy9CO0NDekRMOzs7OztHQUtHO0FBSUg7RUFDSSxvQkFBbUIsRUFDdEI7O0FBRUQ7RUFDSTtJQUErQix5QkFBd0IsRUFBRzs7QUNkOUQ7Ozs7O0dBS0c7QUFFSDtFQUNJLGdCQUFlLEVBQ2xCOztBQUNEO0VBR1ksY0FBYSxFQUNoQjs7QUFJVDtFQUNJO0lBR1ksc0JBQXFCLEVBQ3hCO0VBR1Q7SUFDSSxjQUFhLEVBQ2hCOztBQUdMO0VBR1ksbUJBQWtCLEVBQ3JCOztBQUpUO0VBTVksVUFBUyxFQUNaOztBQ3RDVDs7Ozs7R0FLRztBQUVILDZFQUE2RTtBQUM3RTtFQUNJLG1CQUFrQjtFQUNsQixhQUFZO0VBQ1osd0JBQXVCLEVBQzFCOztBQUVELHdGQUF3RjtBQUN4RjtFQUVRLGVuRkoyQztFbUZLM0MsdUJuRjBLNkIsRW1GektoQzs7QUFKTDtFQU9ZLGdCQUFlLEVBQ2xCOztBQUlUO0VBQ0ksY0FBYSxFQUNoQjs7QUFFRCxvRUFBb0U7QUFDcEU7RUFDSTtJQUVRLGdCbkZnQmtCLEVtRkpyQjtJQWRMO01BSVksc0JBQXFCO01BQ3JCLFlBQVc7TUFDWCx1QkFBc0IsRUFDekI7SUFQVDtNQVNZLFlBQVcsRUFDZDtJQVZUO01BWVksWUFBVyxFQUNkO0VBR1Q7SUFDSSxnQkFBZSxFQUNsQjs7QUYvQkwsK0VBQStFO0FBRS9FLHFFQUFxRTtBQUNyRTtFQUNJLFdBQVUsRUFDYjs7QUFFRCw4RUFBOEU7QUFFOUU7RUFDSSxhQUFZO0VBQ1osZUFBYyxFQUNqQjs7QUdoQ0Q7Ozs7O0dBS0c7QUFFSDtFQUNJLFVBQVM7RUFDVCxhQUFZLEVBQ2Y7O0FBRUQ7RUFDSTtJQUNJLGFBQVksRUFDZjs7QUFHTDtFQUNJLGdCQUFlLEVBQ2xCOztBQUVEO0VBQ0ksaUJBQWdCO0VBQ2hCLG9CQUFtQixFQUN0Qjs7QUFHRDtFQUNJLG9CQUFtQixFQUN0Qjs7QUFDRDtFQUNJLFdBQVUsRUFDYjs7QUFDRDtFQUNJLGtCQUFpQixFQUNwQjs7QUFFRCwwRkFBMEY7QUFFMUY7RUFDSSw0RHBGSW9FO0VvRkhwRSx1QkFBc0I7RUFjdEIsV0FBVztFQVlYLFlBQVk7RUFtQ1osYUFBYTtFQXFCYiwwQkFBMEI7RUFRMUIsZ0JBQWdCO0VBa0JoQixtQkFBbUI7RUFtQm5CLGlCQUFpQjtFQTBDakIsWUFBWTtFQStCWixXQUFXLEVBb0NkO0VBOU9EO0lBS1EsMkJBQTBCO0lBQzFCLHNCQUFxQjtJQUNyQixtQkFBa0I7SUFDbEIsMEJBQXlCLEVBQzVCO0VBVEw7SUFZUSw0QkFBMkI7SUFDM0IsbUJBQWtCLEVBQ3JCO0VBZEw7SUFtQlEsb0JBQW1CO0lBQ25CLFlBQVcsRUFDZDtFQXJCTDtJQXdCUSwwQkFBeUI7SUFDekIsa0JBQWlCLEVBQ3BCO0VBMUJMO0lBa0NRLFlBQVc7SUFDWCxZQUFXO0lBQ1gsZUFBYztJQUNkLGVBQWMsRUFDakI7RUF0Q0w7SUF5Q1EsWUFBVztJQUNYLG1CQUFrQjtJQUNsQixrQkFBaUI7SUFDakIsb0JBQW1CO0lBQ25CLGtCQUFpQjtJQUNqQixpQkFBZ0IsRUFDbkI7RUEvQ0w7SUFrRFEsZUFBYztJQUNkLFlBQVc7SUFDWCxjQUFhLEVBQ2hCO0VBckRMO0lBd0RRLHFCQUFvQixFQUN2QjtFQXpETDtJQTREUSxpQkFBZ0IsRUFDbkI7RUE3REw7SUFrRVEsY0FBYSxFQUNoQjtFQW5FTDtJQXNFUSxZQUFXO0lBQ1gsWUFBVztJQUNYLGVBQWMsRUFDakI7RUF6RUw7SUE0RVEsb0JBQW1CO0lBQ25CLG1CQUFrQixFQUNyQjtFQTlFTDtJQWlGUSxvQkFBbUIsRUFDdEI7RUFsRkw7SUF1RlEsWUFBVztJQUNYLFlBQVc7SUFDWCxlQUFjLEVBQ2pCO0VBMUZMO0lBK0ZRLGFBQVk7SUFDWixXQUFVO0lBQ1YsZUFBYyxFQVdqQjtJQTVHTDtNQW9HWSxrQkFBaUI7TUFDakIsb0JBQW1CLEVBQ3RCO0lBdEdUO01BeUdZLGFBQVk7TUFDWixrQkFBaUIsRUFDcEI7RUEzR1Q7SUFpSFEsYUFBWSxFQWNmO0lBL0hMO01BbUhZLGtCQUFpQjtNQUNqQixvQkFBbUIsRUFDdEI7SUFySFQ7TUF3SFksYUFBWTtNQUNaLGtCQUFpQixFQUNwQjtJQTFIVDtNQTZIWSxrQkFBaUIsRUFDcEI7RUE5SFQ7SUFvSVEsWUFBVztJQUNYLFlBQVc7SUFDWCxnQkFBZTtJQUNmLDhCQUE2QixFQUNoQztFQXhJTDtJQTJJUSxrQkFBaUI7SUFDakIsd0JBQXVCO0lBQ3ZCLDhCQUE2QixFQUNoQztFQTlJTDs7SUFpSlEsYUFBWSxFQUNmO0VBbEpMOztJQXNKUSxpQkFBZ0IsRUFDbkI7RUF2Skw7O0lBMkpRLG1CQUFrQjtJQUNsQixXQUFVLEVBQ2I7RUE3Skw7O0lBaUtRLG1CQUFrQjtJQUNsQixXQUFVLEVBQ2I7RUFuS0w7O0lBdUtRLGtCQUFpQjtJQUNqQixXQUFVLEVBQ2I7RUF6S0w7SUE4S1EsaUJBQWdCLEVBQ25CO0VBL0tMO0lBa0xRLDJCQUEwQjtJQUMxQixpQkFBZ0I7SUFDaEIsaUJBQWdCLEVBQ25CO0VBckxMO0lBd0xRLGlCQUFnQjtJQUNoQixrQkFBaUI7SUFDakIsb0JBQW1CLEVBQ3RCO0VBM0xMO0lBOExRLFdBQVUsRUFDYjtFQS9MTDtJQWtNUSxXQUFVLEVBQ2I7RUFuTUw7SUFzTVEsaUJBQWdCO0lBQ2hCLHVCQUFzQixFQUN6QjtFQXhNTDtJQTZNUSxtQkFBa0I7SUFDbEIsVUFBUztJQUNULGFBQVksRUFDZjtFQWhOTDtJQW1OUSxhQUFZO0lBQ1osc0JBQXFCO0lBQ3JCLGdCQUFlLEVBQ2xCO0VBdE5MO0lBeU5RLG1CQUFrQjtJQUNsQiwyQkFBMEIsRUFDN0I7RUEzTkw7SUE4TlEsZUFBYyxFQUNqQjtFQS9OTDtJQWtPUSxpQkFBZ0IsRUFDbkI7RUFuT0w7SUFzT1EsaUJBQWdCLEVBQ25CO0VBdk9MO0lBME9RLGFBQVk7SUFDWixrQkFBaUI7SUFDakIsc0JBQXFCLEVBQ3hCOztBQUdMO0VBQ0k7SUFDSSxrQ0FBaUMsRUFDcEM7RUFDRDtJQUNJLFVBQVM7SUFDVCxXQUFVLEVBQ2I7RUFFRDtJQUNJLGdCQUFlLEVBU2xCO0lBVkQ7TUFJUSxjQUFhLEVBQ2hCO0lBTEw7TUFRUSxjQUFhLEVBQ2hCO0VBR0w7SUFDSSxhQUFZLEVBQ2Y7O0FDL1NMOzs7OztHQUtHO0FBRUgsNkZBQTZGO0FBQzdGOzs7RUFHSSxtQkFBa0I7RUFDbEIsVUFBUztFQUNULFdBQVU7RUFDVixtQkFBa0I7RUFDbEIsa0JBQWlCO0VBQ2pCLFlBQVc7RUFDWCxnQkFBZSxFQUNsQjs7QUFFRDs7Ozs7RUFLSSxtQkFBa0I7RUFDbEIsT0FBTTtFQUNOLFFBQU87RUFDUCxZQUFXO0VBQ1gsYUFBWSxFQUNmOztBQUNEOzs7RUFHSSxZQUFXO0VBQ1gscUNBQW9DO0VBQ3BDLG1CQUFrQixFQUNyQjs7QUFDRDs7O0VBR0ksK0JBQThCLEVBQ2pDOztBQUVEOztFQUVFO0FBQ0Y7RUFDSSxvQkFBbUI7RUFDbkIsaUJBQWdCO0VBQ2hCLG9CQUFtQixFQUN0Qjs7QUFFRDtFQUNJLFlBQVc7RUFDWCxzQkFBcUIsRUFDeEI7O0FBRUQ7RUFDSSxrQkFBaUIsRUFDcEI7O0FBRUQ7RUFDSSxvQkFBbUI7RUFDbkIsb0JBQW1CO0VBQ25CLGlCQUFnQixFQUNuQjs7QUFFRDtFQUNJLG1CQUFrQjtFQUNsQixzQkFBcUI7RUFDckIsWUFBVyxFQUNkOztBQUVEO0VBQ0ksaUJBQWdCO0VBQ2hCLG9CQUFtQixFQUN0Qjs7QUFFRDtFQUNJLFVBQVM7RUFDVCxvQkFBbUI7RUFDbkIsa0JBQWlCLEVBQ3BCOztBQUVEO0VBQ0ksY0FBYTtFQUNiLG9CQUFtQixFQUN0Qjs7QUFFRDtFQUNJOzs7O0lBSUksbUJBQWtCLEVBQ3JCO0VBRUQ7SUFDSSxxQkFBb0IsRUFDdkI7O0FBR0w7O0VBRUksZ0NBQStCO0VBQy9CLDZCQUE0QjtFQUM1Qix3QkFBdUIsRUFDMUI7O0FBRUQ7RUFDSSxZQUFXO0VBQ1g7b0NBQ2dDO0VBQ2hDLDhCQUE2QjtFQUM3QiwyQkFBMEIsRUFDN0I7O0FBRUQ7Ozs7O0VBS0ksZ0JBQWU7RUFDZixtQkFBa0IsRUFDckI7O0FBRUQ7OztFQUdJLG1CQUFrQjtFQUNsQixTQUFRO0VBQ1IsV0FBVTtFQUNWLGVBQWM7RUFDZCxvQ0FBbUM7RUFDbkMsYUFBWSxFQUNmOztBQUNEO0VBQ0ksYUFBWTtFQUNaLGlCQUFnQjtFQUFFLFVBQVUsRUFDL0I7O0FBQ0Q7RUFDSSxpQkFBZ0I7RUFBRSx3QkFBd0IsRUFDN0M7O0FBQ0Q7RUFDSSxpQkFBZ0I7RUFBRSw0QkFBNEIsRUFDakQ7O0FBQ0Q7OztFQUdJLGNBQWEsRUFDaEI7O0FBRUQ7O0VBRUksWUFBVyxFQUNkOztBQUVEO0VBQ0ksb0JBQW1CLEVBQ3RCOztBQUVEOzs7O0VBSUU7QUFDRjtFQUNJLGNBQWEsRUFDaEI7O0FBR0QsZUFBZTtBQUNmO0VBQ0ksb0JBQW1CLEVBQ3RCOztBQUVEOzs7RUFHSSxTQUFRO0VBQ1IsV0FBVSxFQUNiOztBQUVELGVBQWU7QUFDZjtFQUNJLDRCQUEyQjtFQUMzQiw2QkFBNEI7RUFDNUIsOEJBQTZCLEVBQ2hDOztBQUVEOztFQUVJLHdDQUF1QztFQUN2Qyx5Q0FBd0MsRUFDM0M7O0FBRUQ7RUFDSSxpQkFBZ0I7RUFDaEIseUJBQXdCO0VBQ3hCLDRCQUEyQixFQUM5Qjs7QUFFRDs7RUFFSSxpQkFBZ0IsRUFDbkI7O0FBRUQ7RUFDSSx5QkFBd0I7RUFDeEIsaUJBQWdCLEVBQ25COztBQUVEOzs7R0FHRztBQUNIO0VBQ0kscUNBQW9DLEVBQ3ZDOztBQUNEOztFQUVJLHFCQUFvQjtFQUNwQixvQkFBbUIsRUFDdEI7O0FBQ0Q7O0VBRUkscUJBQW9CO0VBQ3BCLHVCQUFzQixFQUN6Qjs7QUFDRDs7RUFFSSxxQkFBb0I7RUFDcEIsdUJBQXNCLEVBQ3pCOztBQUNEOztFQUVJLHNCQUFxQixFQUN4Qjs7QUFDRDtFQUNJLHVCQUFzQixFQUN6Qjs7QUFFRDs7R0FFRztBQUNIOztFQUVJLHVCQUFzQjtFQUN0QixhQUFZLEVBQ2Y7O0FBRUQ7O0VBRUkscUNBQW9DLEVBQ3ZDOztBQUVEOztFQUVJLGFBQVksRUFDZjs7QUFFRDs7RUFFSSwwQkFBeUIsRUFDNUI7O0FBRUQ7RUFDSSxvREFBb0QsRUFtQnZEO0VBcEJEO0lBR1Esa0JBQWlCO0lBQ2pCLDhCQUE2QixFQUNoQztFQUxMO0lBT1E7OztXQUdHLEVBU047SUFuQkw7TUFZWSxjQUFhLEVBQ2hCO0lBYlQ7TUFlWSxlQUFjO01BQ2QsaUJBQWdCO01BQ2hCLHdCQUF1QixFQUMxQjs7QUM3UlQ7RUFHWSxvQkFBbUIsRUFDdEI7O0FDSlQ7Ozs7O0dBS0c7QUFFSDtFQUlnQixvQkFBbUIsRUFDdEI7O0FDWmI7Ozs7O0dBS0c7QUFFSDtFQUVRLDZCQUE0QjtFQUM1QixnQkFBZSxFQUNsQjs7QUFKTDtFQU1RLGVBQWMsRUFDakI7O0FBUEw7RUFTUSxpQkFBZ0I7RUFDaEIsd0JBQXVCLEVBQzFCOztBQVhMO0VBYVEsbUJBQWtCLEVBQ3JCOztBQWRMO0VBZ0JRLGdCQUFlO0VBQ2Ysd0JBQXVCLEVBQzFCOztBQUdMOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQW9CRTtBQy9DRjtFQUdZLDBCQUFzQztFQUN0QyxlQUFjLEVBQ2pCOztBQUxUO0VBT1ksYUFBWSxFQUNmO0FDVFQ7Ozs7R0FJRyw4QkFBOEIsYUFBYSxDQUFDLG1FQUFtRSxRQUFRLENBQUMsMEJBQTBCLDJCQUEyQix1QkFBdUIsQ0FBQyxJQUFJLGNBQWMsZUFBZSxDQUFDLFFBQVEsZ0JBQWdCLENBQUMsNkRBQTZELGlCQUFpQixDQUFDLGNBQWMsbUJBQW1CLFVBQVUsQ0FBQyxZQUFZLG1CQUFtQixVQUFVLENBQUMsZ0JBQWdCLGtCQUFrQixDQUFDLFdBQVcsMkJBQTJCLDhCQUE4QixzQkFBc0IsU0FBUyxhQUFhLGVBQWUsbUJBQW1CLGNBQWMsQ0FBQyw2QkFBNkIsU0FBUyxTQUFTLENBQUMsa0JBQWtCLGlCQUFpQix5QkFBeUIsd0RBQXdELDRFQUE0RSwyREFBMkQsc0RBQXNELHlEQUF5RCwyQkFBMkIscUNBQXFDLDJEQUEyRCxXQUFXLDRDQUE0Qyx1RUFBdUUsQ0FBQyxpQ0FBaUMsMkJBQTJCLDZCQUE2QixDQUFDLGtDQUFrQyw0QkFBNEIsOEJBQThCLENBQUMsb0JBQW9CLGtCQUFrQixXQUFXLGNBQWMscUJBQXFCLENBQUMsbUVBQW1FLFdBQVcsd0JBQXdCLENBQUMsZ0JBQWdCLFdBQVcscUJBQXFCLDRCQUE0QixrREFBa0QsK0NBQStDLDZDQUE2Qyx5Q0FBeUMsQ0FBQyxnQ0FBZ0Msc0JBQXNCLHNCQUFzQixvRUFBb0UsQ0FBQyxtQkFBbUIsZUFBZSxzQkFBc0IsWUFBWSxlQUFlLENBQUMscUZBQXFGLGNBQWMsQ0FBQyxpQkFBaUIsb0JBQW9CLENBQUMsdUJBQXVCLFdBQVcsaUJBQWlCLENBQUMsa0NBQWtDLGFBQWEsQ0FBQyxZQUFZLGtCQUFrQixvQ0FBb0MsQ0FBQyx1QkFBdUIsZUFBZSxDQUFDLGlDQUFpQyxZQUFZLENBQUMsa0ZBQWtGLFVBQVUsQ0FBQyxrRkFBa0YsV0FBVyxDQUFDLFlBQVksbUJBQW1CLGdCQUFnQixDQUFDLGNBQWMsU0FBUyxTQUFTLGdCQUFnQixrQkFBa0IsQ0FBQyxxRkFBcUYsV0FBVyxDQUFDLFVBQVUsVUFBVSxDQUFDLHVFQUF1RSxrQkFBa0IsTUFBTSxPQUFPLE9BQU8sQ0FBQyxVQUFVLFdBQVcsc0JBQXNCLG1CQUFtQix5QkFBeUIsZ0JBQWdCLENBQUMsY0FBYyxtQkFBbUIsaUJBQWlCLFVBQVUsa0JBQWtCLENBQUMsZ0JBQWdCLG1CQUFtQixDQUFDLG1CQUFtQix5QkFBeUIsQ0FBQyxZQUFZLG1CQUFtQixjQUFjLENBQUMsY0FBYyxpQ0FBaUMsa0NBQWtDLGtDQUFrQyxDQUFDLDBCQUEwQiwrQkFBK0IsQ0FBQyxRQUFRLGlCQUFpQixDQUFDLGVBQWUsU0FBUyxDQUFDLGtFQUFrRSx3QkFBd0IsQ0FBQyw2QkFBNkIsU0FBUyxDQUFDLCtCQUErQixTQUFTLENBQUMsNkJBQTZCLGtCQUFrQixVQUFVLGtCQUFrQixDQUFDLDRCQUE0QixTQUFTLENBQUMsOEdBQThHLGVBQWUsd0JBQXdCLENBQUMsK0RBQStELGVBQWUsQ0FBQywyRUFBMkUsWUFBWSxDQUFDLGFBQWEsZ0NBQWdDLENBQUMsOENBQThDLGVBQWUsQ0FBQyxxREFBcUQsa0JBQWtCLFVBQVUsQ0FBQyxVQUFVLGtCQUFrQixjQUFjLGdCQUFnQixnQkFBZ0Isa0JBQWtCLHdCQUF3QixDQUFDLHdCQUF3Qix3QkFBd0IsQ0FBQywwQkFBMEIsV0FBVyxvQkFBb0IsQ0FBQywwQ0FBMEMsa0JBQWtCLENBQUMsaUJBQWlCLFVBQVUsZ0JBQWdCLFdBQVcsQ0FBQyxzQkFBc0Isa0JBQWtCLFNBQVMsQ0FBQyxzQkFBc0Isa0JBQWtCLFVBQVUsWUFBWSxDQUFDLDhFQUE4RSxhQUFhLENBQUMseUNBQXlDLFdBQVcsa0JBQWtCLGFBQWEsUUFBUSxTQUFTLFdBQVcsWUFBWSxrQkFBa0IsZ0JBQWdCLENBQUMsc0JBQXNCLHVCQUF1QixtQ0FBbUMsQ0FBQyxrQ0FBa0MsbUNBQW1DLENBQUMsK0JBQStCLFdBQVcsa0JBQWtCLFVBQVUsVUFBVSxhQUFhLE9BQU8sT0FBTyxDQUFDLGdFQUFnRSxjQUFjLG9CQUFvQixpQkFBaUIseUJBQXlCLDJCQUEyQixDQUFDLGdFQUFnRSxlQUFlLHFCQUFxQixrQkFBa0IsMEJBQTBCLDRCQUE0QixDQUFDLDBFQUEwRSxnQkFBZ0IsU0FBUyxDQUFDLDBFQUEwRSxnQkFBZ0IsVUFBVSxDQUFDLDhDQUE4QyxVQUFVLFNBQVMsV0FBVyxDQUFDLG9DQUFvQyxrQkFBa0IsaUJBQWlCLFVBQVUsV0FBVyxtQkFBbUIscUJBQXFCLGdCQUFnQixRQUFRLGVBQWUsQ0FBQyxrR0FBa0csZ0JBQWdCLENBQUMsa0dBQWtHLGlCQUFpQixDQUFDLG1CQUFtQixpQkFBaUIsYUFBYSxDQUFDLHFDQUFxQyxjQUFjLENBQUMscUNBQXFDLFdBQVcsa0JBQWtCLFVBQVUsU0FBUyxXQUFXLFlBQVksVUFBVSxnQkFBZ0IsV0FBVyxDQUFDLCtCQUErQixtQkFBbUIsZUFBZSxDQUFDLDRCQUE0QixlQUFlLENBQUMsb0lBQW9JLGdCQUFnQixDQUFDLG9JQUFvSSxpQkFBaUIsQ0FBQyxVQUFVLGVBQWUsZ0JBQWdCLGVBQWUsb0JBQW9CLENBQUMsZ0JBQWdCLHlCQUF5QixDQUFDLHlDQUF5QyxvQkFBb0IsQ0FBQyxZQUFZLFlBQVksQ0FBQyxnQ0FBZ0Msb0JBQW9CLENBQUMscUJBQXFCLFNBQVMsQ0FBQyxpQkFBaUIsVUFBVSxXQUFXLENBQUMscUNBQXFDLFlBQVksQ0FBQyw2RUFBNkUsU0FBUyxDQUFDLGtCQUFrQixrQkFBa0Isa0JBQWtCLENBQUMsOERBQThELGVBQWUsQ0FBQyxpQkFBaUIseUJBQXlCLHNCQUFzQixxQkFBcUIsaUJBQWlCLHVDQUF1QyxDQUFDLGtPQUFrTyxpQkFBaUIsQ0FBQyx5QkFBeUIsc0JBQXNCLGlCQUFpQixrQkFBa0IsQ0FBQyw4RkFBOEYsZUFBZSxDQUFDLHlCQUF5QixrQkFBa0IsQ0FBQyw4QkFBOEIsbUJBQW1CLFVBQVUsQ0FBQyxTQUFTLFdBQVcsZ0JBQWdCLGNBQWMsNENBQTRDLHlCQUF5QixzQkFBc0IscUJBQXFCLGdCQUFnQixDQUFDLGVBQWUsaUJBQWlCLENBQUMsaUNBQWlDLGdCQUFnQixnQkFBZ0IsZUFBZSxPQUFPLENBQUMsa0NBQWtDLGdCQUFnQixnQkFBZ0IsZUFBZSxPQUFPLENBQUMsaUNBQWlDLGNBQWMsZUFBZSxPQUFPLENBQUMsa0NBQWtDLGNBQWMsZUFBZSxPQUFPLENBQUMsNkJBQTZCLGdCQUFnQixlQUFlLE1BQU0sQ0FBQyw4QkFBOEIsZ0JBQWdCLGVBQWUsTUFBTSxDQUFDLDZCQUE2QixnQkFBZ0IsZUFBZSxNQUFNLENBQUMsaUJBQWlCLGNBQWMsZUFBZSxNQUFNLENBQUMsOENBQThDLFdBQVcsZUFBZSxjQUFjLENBQUMsb0NBQW9DLHdCQUF3QixDQUFDLDRCQUE0QixxQkFBcUIsQ0FBQyxxSUFBcUksY0FBYyxDQUFDLGlEQUFpRCxZQUFZLENBQUMsMERBQTBELG9CQUFvQixDQUFDLHFCQUFxQixXQUFXLGVBQWUsQ0FBQyxzQkFBc0IsZUFBZSxDQUFDLHFDQUFxQyx5QkFBeUIsQ0FBQyxvQkFBb0Isb0JBQW9CLENBQUMscUNBQXFDLHlCQUF5QixDQUFDLHNEQUFzRCxVQUFVLENBQUMsZ0NBQWdDLGlCQUFpQixDQUFDLDhCQUE4QixpQkFBaUIsQ0FBQyw4QkFBOEIsY0FBYyxDQUFDLHFCQUFxQixVQUFVLENBQUMsc0JBQXNCLFdBQVcsQ0FBQyxvQkFBb0IsV0FBVyxpQkFBaUIsQ0FBQywrQkFBK0IsYUFBYSxDQUFDLGVBQWUsUUFBUSxDQUFDLG1CQUFtQixpQkFBaUIsQ0FBQyx3REFBd0QsU0FBUyxDQUFDLDJCQUEyQixTQUFTLENBQUMsMERBQTBELFNBQVMsQ0FBQyx5QkFBeUIsU0FBUyxDQUFDLDBFQUEwRSwrQkFBK0IsNEJBQTRCLHNCQUFzQixDQUFDLHdCQUF3QixrQkFBa0IsU0FBUyxDQUFDLCtFQUErRSxrQkFBa0IsQ0FBQyxnQ0FBZ0MsY0FBYyxDQUFDLHNDQUFzQyxrQkFBa0IsTUFBTSxPQUFPLE9BQU8sQ0FBQywyQkFBMkIsVUFBVSxDQUFDLDZEQUE2RCxXQUFXLENBQUMsaUVBQWlFLGFBQWEsQ0FBQyxrREFBa0QsV0FBVyxDQUFDLGtEQUFrRCxVQUFVLENBQUMsbURBQW1ELFdBQVcscUJBQXFCLENBQUMsbURBQW1ELFlBQVksdUJBQXVCLENBQUMsMkNBQTJDLGdCQUFnQixrQkFBa0IseUJBQXlCLFVBQVUsQ0FBQyxtQ0FBbUMscUJBQXFCLGdCQUFnQixDQUFDLDZCQUE2QixrQkFBa0IsU0FBUyxDQUFDLHFDQUFxQyxjQUFjLENBQUMsMERBQTBELGtCQUFrQixDQUFDLGFBQWEsc0JBQXNCLGNBQWMsa0JBQWtCLENBQUMsaUJBQWlCLGdCQUFnQixDQUFDLGlCQUFpQixlQUFlLENBQUMsc0NBQXNDLGtCQUFrQixTQUFTLENBQUMsY0FBYyxlQUFlLENBQUMsb0JBQW9CLDJCQUEyQixDQUFDLHFCQUFxQixTQUFTLENBQUMseUNBQXlDLGtCQUFrQixTQUFTLENBQUMsOEJBQThCLGlCQUFpQixDQUFDLG1DQUFtQyxrQkFBa0IsVUFBVSxNQUFNLE9BQU8sT0FBTyxDQUFDLHFDQUFxQyxrQkFBa0IsU0FBUyxDQUFDLG9DQUFvQyxrQkFBa0IsU0FBUyxDQUFDLHNDQUFzQyxVQUFVLGlCQUFpQixDQUFDLGtDQUFrQyxrQkFBa0IsU0FBUyxDQUFDLHFDQUFxQyxTQUFTLENBQUMsbUNBQW1DLGtCQUFrQixTQUFTLENBQUMsMkJBQTJCLGFBQWEsZUFBZSxDQUFDLHFDQUFxQyx1QkFBdUIsQ0FBQyw0QkFBNEIsa0JBQWtCLE9BQU8sT0FBTyxDQUFDLDBDQUEwQyxtQkFBbUIsQ0FBQywwQ0FBMEMsbUJBQW1CLENBQUMsa0RBQWtELGtCQUFrQixTQUFTLENBQUMsMEJBQTBCLE9BQU8sT0FBTyxDQUFDLHlCQUF5QixtQkFBbUIsZ0JBQWdCLHlCQUF5Qix5QkFBeUIsQ0FBQyx1QkFBdUIsc0JBQXNCLG1CQUFtQiw0QkFBNEIsNEJBQTRCLENBQUMsZ0NBQWdDLGdCQUFnQixDQUFDLHVDQUF1QyxZQUFZLENBQUMsZ0NBQWdDLGVBQWUsQ0FBQywyREFBMkQsYUFBYSxDQUFDLDZCQUE2QixnQkFBZ0Isa0JBQWtCLENBQUMseUNBQXlDLGtCQUFrQixDQUFDLDZFQUE2RSxxQkFBcUIsa0JBQWtCLENBQUMsMkNBQTJDLFlBQVksQ0FBQyw2Q0FBNkMsd0JBQXdCLENBQUMsNENBQTRDLGlCQUFpQixDQUFDLHVDQUF1QyxnQkFBZ0IsU0FBUyxDQUFDLHNEQUFzRCxPQUFPLFFBQVEsU0FBUyxXQUFXLGdCQUFnQixnQkFBZ0IsZUFBZSxzQkFBc0Isa0JBQWtCLGVBQWUsQ0FBQyw0REFBNEQsV0FBVyxDQUFDLDRDQUE0QyxrQkFBa0IsaUJBQWlCLFVBQVUsV0FBVyxtQkFBbUIscUJBQXFCLGdCQUFnQixTQUFTLGlCQUFpQixXQUFXLENBQUMscUNBQXFDLHFCQUFxQixPQUFPLE9BQU8sQ0FBQyxzQ0FBc0MsZUFBZSxDQUFDLDhDQUE4QyxPQUFPLDJCQUEyQiw2QkFBNkIsK0JBQStCLENBQUMsOENBQThDLFFBQVEsMkJBQTJCLDZCQUE2QiwrQkFBK0IsQ0FBQyxjQUFjLHFCQUFxQixXQUFXLFlBQVksaUJBQWlCLENBQUMsc0JBQXNCLGFBQWEsQ0FBQyxjQUFjLGlCQUFpQixrQkFBa0IsQ0FBQyxtQkFBbUIsaUJBQWlCLENBQUMsa0JBQWtCLHFCQUFxQixnQkFBZ0IsQ0FBQyxpQ0FBaUMsa0JBQWtCLENBQUMsaUJBQWlCLHVCQUF1QixDQUFDLG9CQUFvQixlQUFlLENBQUMsOEJBQThCLFVBQVUsQ0FBQywyREFBMkQsV0FBVyxDQUFDLDZCQUE2QixVQUFVLENBQUMseUJBQXlCLGNBQWMsQ0FBQyx3Q0FBd0MsbUJBQW1CLFNBQVMsQ0FBQyw2QkFBNkIsZUFBZSxDQUFDLDZCQUE2QixjQUFjLENBQUMsc0JBQXNCLHFCQUFxQixhQUFhLENBQUMsa0NBQWtDLHlCQUF5QixDQUFDLHFCQUFxQixrQkFBa0IsTUFBTSxPQUFPLFFBQVEsUUFBUSxDQUFDLHFCQUFxQixXQUFXLFlBQVksYUFBYSxDQUFDLGVBQWUsbUJBQW1CLHNCQUFzQixpQkFBaUIsQ0FBQyw0QkFBNEIscUJBQXFCIiwiZmlsZSI6ImFwcC5jc3M/ZDE5ZWMzMmViN2MxYTFiMTdjOTljYzIxNTRkZDY5ZGMiLCJzb3VyY2VzQ29udGVudCI6WyIuZGF0ZXJhbmdlcGlja2VyIHtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgY29sb3I6IGluaGVyaXQ7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcclxuICBib3JkZXItcmFkaXVzOiA0cHg7XHJcbiAgYm9yZGVyOiAxcHggc29saWQgI2RkZDtcclxuICB3aWR0aDogMjc4cHg7XHJcbiAgbWF4LXdpZHRoOiBub25lO1xyXG4gIHBhZGRpbmc6IDA7XHJcbiAgbWFyZ2luLXRvcDogN3B4O1xyXG4gIHRvcDogMTAwcHg7XHJcbiAgbGVmdDogMjBweDtcclxuICB6LWluZGV4OiAzMDAxO1xyXG4gIGRpc3BsYXk6IG5vbmU7XHJcbiAgZm9udC1mYW1pbHk6IGFyaWFsO1xyXG4gIGZvbnQtc2l6ZTogMTVweDtcclxuICBsaW5lLWhlaWdodDogMWVtO1xyXG59XHJcblxyXG4uZGF0ZXJhbmdlcGlja2VyOmJlZm9yZSwgLmRhdGVyYW5nZXBpY2tlcjphZnRlciB7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICBib3JkZXItYm90dG9tLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMik7XHJcbiAgY29udGVudDogJyc7XHJcbn1cclxuXHJcbi5kYXRlcmFuZ2VwaWNrZXI6YmVmb3JlIHtcclxuICB0b3A6IC03cHg7XHJcbiAgYm9yZGVyLXJpZ2h0OiA3cHggc29saWQgdHJhbnNwYXJlbnQ7XHJcbiAgYm9yZGVyLWxlZnQ6IDdweCBzb2xpZCB0cmFuc3BhcmVudDtcclxuICBib3JkZXItYm90dG9tOiA3cHggc29saWQgI2NjYztcclxufVxyXG5cclxuLmRhdGVyYW5nZXBpY2tlcjphZnRlciB7XHJcbiAgdG9wOiAtNnB4O1xyXG4gIGJvcmRlci1yaWdodDogNnB4IHNvbGlkIHRyYW5zcGFyZW50O1xyXG4gIGJvcmRlci1ib3R0b206IDZweCBzb2xpZCAjZmZmO1xyXG4gIGJvcmRlci1sZWZ0OiA2cHggc29saWQgdHJhbnNwYXJlbnQ7XHJcbn1cclxuXHJcbi5kYXRlcmFuZ2VwaWNrZXIub3BlbnNsZWZ0OmJlZm9yZSB7XHJcbiAgcmlnaHQ6IDlweDtcclxufVxyXG5cclxuLmRhdGVyYW5nZXBpY2tlci5vcGVuc2xlZnQ6YWZ0ZXIge1xyXG4gIHJpZ2h0OiAxMHB4O1xyXG59XHJcblxyXG4uZGF0ZXJhbmdlcGlja2VyLm9wZW5zY2VudGVyOmJlZm9yZSB7XHJcbiAgbGVmdDogMDtcclxuICByaWdodDogMDtcclxuICB3aWR0aDogMDtcclxuICBtYXJnaW4tbGVmdDogYXV0bztcclxuICBtYXJnaW4tcmlnaHQ6IGF1dG87XHJcbn1cclxuXHJcbi5kYXRlcmFuZ2VwaWNrZXIub3BlbnNjZW50ZXI6YWZ0ZXIge1xyXG4gIGxlZnQ6IDA7XHJcbiAgcmlnaHQ6IDA7XHJcbiAgd2lkdGg6IDA7XHJcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XHJcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xyXG59XHJcblxyXG4uZGF0ZXJhbmdlcGlja2VyLm9wZW5zcmlnaHQ6YmVmb3JlIHtcclxuICBsZWZ0OiA5cHg7XHJcbn1cclxuXHJcbi5kYXRlcmFuZ2VwaWNrZXIub3BlbnNyaWdodDphZnRlciB7XHJcbiAgbGVmdDogMTBweDtcclxufVxyXG5cclxuLmRhdGVyYW5nZXBpY2tlci5kcm9wLXVwIHtcclxuICBtYXJnaW4tdG9wOiAtN3B4O1xyXG59XHJcblxyXG4uZGF0ZXJhbmdlcGlja2VyLmRyb3AtdXA6YmVmb3JlIHtcclxuICB0b3A6IGluaXRpYWw7XHJcbiAgYm90dG9tOiAtN3B4O1xyXG4gIGJvcmRlci1ib3R0b206IGluaXRpYWw7XHJcbiAgYm9yZGVyLXRvcDogN3B4IHNvbGlkICNjY2M7XHJcbn1cclxuXHJcbi5kYXRlcmFuZ2VwaWNrZXIuZHJvcC11cDphZnRlciB7XHJcbiAgdG9wOiBpbml0aWFsO1xyXG4gIGJvdHRvbTogLTZweDtcclxuICBib3JkZXItYm90dG9tOiBpbml0aWFsO1xyXG4gIGJvcmRlci10b3A6IDZweCBzb2xpZCAjZmZmO1xyXG59XHJcblxyXG4uZGF0ZXJhbmdlcGlja2VyLnNpbmdsZSAuZGF0ZXJhbmdlcGlja2VyIC5yYW5nZXMsIC5kYXRlcmFuZ2VwaWNrZXIuc2luZ2xlIC5kcnAtY2FsZW5kYXIge1xyXG4gIGZsb2F0OiBub25lO1xyXG59XHJcblxyXG4uZGF0ZXJhbmdlcGlja2VyLnNpbmdsZSAuZHJwLXNlbGVjdGVkIHtcclxuICBkaXNwbGF5OiBub25lO1xyXG59XHJcblxyXG4uZGF0ZXJhbmdlcGlja2VyLnNob3ctY2FsZW5kYXIgLmRycC1jYWxlbmRhciB7XHJcbiAgZGlzcGxheTogYmxvY2s7XHJcbn1cclxuXHJcbi5kYXRlcmFuZ2VwaWNrZXIuc2hvdy1jYWxlbmRhciAuZHJwLWJ1dHRvbnMge1xyXG4gIGRpc3BsYXk6IGJsb2NrO1xyXG59XHJcblxyXG4uZGF0ZXJhbmdlcGlja2VyLmF1dG8tYXBwbHkgLmRycC1idXR0b25zIHtcclxuICBkaXNwbGF5OiBub25lO1xyXG59XHJcblxyXG4uZGF0ZXJhbmdlcGlja2VyIC5kcnAtY2FsZW5kYXIge1xyXG4gIGRpc3BsYXk6IG5vbmU7XHJcbiAgbWF4LXdpZHRoOiAyNzBweDtcclxufVxyXG5cclxuLmRhdGVyYW5nZXBpY2tlciAuZHJwLWNhbGVuZGFyLmxlZnQge1xyXG4gIHBhZGRpbmc6IDhweCAwIDhweCA4cHg7XHJcbn1cclxuXHJcbi5kYXRlcmFuZ2VwaWNrZXIgLmRycC1jYWxlbmRhci5yaWdodCB7XHJcbiAgcGFkZGluZzogOHB4O1xyXG59XHJcblxyXG4uZGF0ZXJhbmdlcGlja2VyIC5kcnAtY2FsZW5kYXIuc2luZ2xlIC5jYWxlbmRhci10YWJsZSB7XHJcbiAgYm9yZGVyOiBub25lO1xyXG59XHJcblxyXG4uZGF0ZXJhbmdlcGlja2VyIC5jYWxlbmRhci10YWJsZSAubmV4dCBzcGFuLCAuZGF0ZXJhbmdlcGlja2VyIC5jYWxlbmRhci10YWJsZSAucHJldiBzcGFuIHtcclxuICBjb2xvcjogI2ZmZjtcclxuICBib3JkZXI6IHNvbGlkIGJsYWNrO1xyXG4gIGJvcmRlci13aWR0aDogMCAycHggMnB4IDA7XHJcbiAgYm9yZGVyLXJhZGl1czogMDtcclxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgcGFkZGluZzogM3B4O1xyXG59XHJcblxyXG4uZGF0ZXJhbmdlcGlja2VyIC5jYWxlbmRhci10YWJsZSAubmV4dCBzcGFuIHtcclxuICB0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpO1xyXG4gIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKTtcclxufVxyXG5cclxuLmRhdGVyYW5nZXBpY2tlciAuY2FsZW5kYXItdGFibGUgLnByZXYgc3BhbiB7XHJcbiAgdHJhbnNmb3JtOiByb3RhdGUoMTM1ZGVnKTtcclxuICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDEzNWRlZyk7XHJcbn1cclxuXHJcbi5kYXRlcmFuZ2VwaWNrZXIgLmNhbGVuZGFyLXRhYmxlIHRoLCAuZGF0ZXJhbmdlcGlja2VyIC5jYWxlbmRhci10YWJsZSB0ZCB7XHJcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcclxuICBtaW4td2lkdGg6IDMycHg7XHJcbiAgd2lkdGg6IDMycHg7XHJcbiAgaGVpZ2h0OiAyNHB4O1xyXG4gIGxpbmUtaGVpZ2h0OiAyNHB4O1xyXG4gIGZvbnQtc2l6ZTogMTJweDtcclxuICBib3JkZXItcmFkaXVzOiA0cHg7XHJcbiAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XHJcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcclxuICBjdXJzb3I6IHBvaW50ZXI7XHJcbn1cclxuXHJcbi5kYXRlcmFuZ2VwaWNrZXIgLmNhbGVuZGFyLXRhYmxlIHtcclxuICBib3JkZXI6IDFweCBzb2xpZCAjZmZmO1xyXG4gIGJvcmRlci1yYWRpdXM6IDRweDtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xyXG59XHJcblxyXG4uZGF0ZXJhbmdlcGlja2VyIC5jYWxlbmRhci10YWJsZSB0YWJsZSB7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgbWFyZ2luOiAwO1xyXG4gIGJvcmRlci1zcGFjaW5nOiAwO1xyXG4gIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XHJcbn1cclxuXHJcbi5kYXRlcmFuZ2VwaWNrZXIgdGQuYXZhaWxhYmxlOmhvdmVyLCAuZGF0ZXJhbmdlcGlja2VyIHRoLmF2YWlsYWJsZTpob3ZlciB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VlZTtcclxuICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xyXG4gIGNvbG9yOiBpbmhlcml0O1xyXG59XHJcblxyXG4uZGF0ZXJhbmdlcGlja2VyIHRkLndlZWssIC5kYXRlcmFuZ2VwaWNrZXIgdGgud2VlayB7XHJcbiAgZm9udC1zaXplOiA4MCU7XHJcbiAgY29sb3I6ICNjY2M7XHJcbn1cclxuXHJcbi5kYXRlcmFuZ2VwaWNrZXIgdGQub2ZmLCAuZGF0ZXJhbmdlcGlja2VyIHRkLm9mZi5pbi1yYW5nZSwgLmRhdGVyYW5nZXBpY2tlciB0ZC5vZmYuc3RhcnQtZGF0ZSwgLmRhdGVyYW5nZXBpY2tlciB0ZC5vZmYuZW5kLWRhdGUge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XHJcbiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcclxuICBjb2xvcjogIzk5OTtcclxufVxyXG5cclxuLmRhdGVyYW5nZXBpY2tlciB0ZC5pbi1yYW5nZSB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ViZjRmODtcclxuICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xyXG4gIGNvbG9yOiAjMDAwO1xyXG4gIGJvcmRlci1yYWRpdXM6IDA7XHJcbn1cclxuXHJcbi5kYXRlcmFuZ2VwaWNrZXIgdGQuc3RhcnQtZGF0ZSB7XHJcbiAgYm9yZGVyLXJhZGl1czogNHB4IDAgMCA0cHg7XHJcbn1cclxuXHJcbi5kYXRlcmFuZ2VwaWNrZXIgdGQuZW5kLWRhdGUge1xyXG4gIGJvcmRlci1yYWRpdXM6IDAgNHB4IDRweCAwO1xyXG59XHJcblxyXG4uZGF0ZXJhbmdlcGlja2VyIHRkLnN0YXJ0LWRhdGUuZW5kLWRhdGUge1xyXG4gIGJvcmRlci1yYWRpdXM6IDRweDtcclxufVxyXG5cclxuLmRhdGVyYW5nZXBpY2tlciB0ZC5hY3RpdmUsIC5kYXRlcmFuZ2VwaWNrZXIgdGQuYWN0aXZlOmhvdmVyIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzU3ZWJkO1xyXG4gIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XHJcbiAgY29sb3I6ICNmZmY7XHJcbn1cclxuXHJcbi5kYXRlcmFuZ2VwaWNrZXIgdGgubW9udGgge1xyXG4gIHdpZHRoOiBhdXRvO1xyXG59XHJcblxyXG4uZGF0ZXJhbmdlcGlja2VyIHRkLmRpc2FibGVkLCAuZGF0ZXJhbmdlcGlja2VyIG9wdGlvbi5kaXNhYmxlZCB7XHJcbiAgY29sb3I6ICM5OTk7XHJcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcclxuICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcclxufVxyXG5cclxuLmRhdGVyYW5nZXBpY2tlciBzZWxlY3QubW9udGhzZWxlY3QsIC5kYXRlcmFuZ2VwaWNrZXIgc2VsZWN0LnllYXJzZWxlY3Qge1xyXG4gIGZvbnQtc2l6ZTogMTJweDtcclxuICBwYWRkaW5nOiAxcHg7XHJcbiAgaGVpZ2h0OiBhdXRvO1xyXG4gIG1hcmdpbjogMDtcclxuICBjdXJzb3I6IGRlZmF1bHQ7XHJcbn1cclxuXHJcbi5kYXRlcmFuZ2VwaWNrZXIgc2VsZWN0Lm1vbnRoc2VsZWN0IHtcclxuICBtYXJnaW4tcmlnaHQ6IDIlO1xyXG4gIHdpZHRoOiA1NiU7XHJcbn1cclxuXHJcbi5kYXRlcmFuZ2VwaWNrZXIgc2VsZWN0LnllYXJzZWxlY3Qge1xyXG4gIHdpZHRoOiA0MCU7XHJcbn1cclxuXHJcbi5kYXRlcmFuZ2VwaWNrZXIgc2VsZWN0LmhvdXJzZWxlY3QsIC5kYXRlcmFuZ2VwaWNrZXIgc2VsZWN0Lm1pbnV0ZXNlbGVjdCwgLmRhdGVyYW5nZXBpY2tlciBzZWxlY3Quc2Vjb25kc2VsZWN0LCAuZGF0ZXJhbmdlcGlja2VyIHNlbGVjdC5hbXBtc2VsZWN0IHtcclxuICB3aWR0aDogNTBweDtcclxuICBtYXJnaW46IDAgYXV0bztcclxuICBiYWNrZ3JvdW5kOiAjZWVlO1xyXG4gIGJvcmRlcjogMXB4IHNvbGlkICNlZWU7XHJcbiAgcGFkZGluZzogMnB4O1xyXG4gIG91dGxpbmU6IDA7XHJcbiAgZm9udC1zaXplOiAxMnB4O1xyXG59XHJcblxyXG4uZGF0ZXJhbmdlcGlja2VyIC5jYWxlbmRhci10aW1lIHtcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgbWFyZ2luOiA0cHggYXV0byAwIGF1dG87XHJcbiAgbGluZS1oZWlnaHQ6IDMwcHg7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG59XHJcblxyXG4uZGF0ZXJhbmdlcGlja2VyIC5jYWxlbmRhci10aW1lIHNlbGVjdC5kaXNhYmxlZCB7XHJcbiAgY29sb3I6ICNjY2M7XHJcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcclxufVxyXG5cclxuLmRhdGVyYW5nZXBpY2tlciAuZHJwLWJ1dHRvbnMge1xyXG4gIGNsZWFyOiBib3RoO1xyXG4gIHRleHQtYWxpZ246IHJpZ2h0O1xyXG4gIHBhZGRpbmc6IDhweDtcclxuICBib3JkZXItdG9wOiAxcHggc29saWQgI2RkZDtcclxuICBkaXNwbGF5OiBub25lO1xyXG4gIGxpbmUtaGVpZ2h0OiAxMnB4O1xyXG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XHJcbn1cclxuXHJcbi5kYXRlcmFuZ2VwaWNrZXIgLmRycC1zZWxlY3RlZCB7XHJcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gIGZvbnQtc2l6ZTogMTJweDtcclxuICBwYWRkaW5nLXJpZ2h0OiA4cHg7XHJcbn1cclxuXHJcbi5kYXRlcmFuZ2VwaWNrZXIgLmRycC1idXR0b25zIC5idG4ge1xyXG4gIG1hcmdpbi1sZWZ0OiA4cHg7XHJcbiAgZm9udC1zaXplOiAxMnB4O1xyXG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gIHBhZGRpbmc6IDRweCA4cHg7XHJcbn1cclxuXHJcbi5kYXRlcmFuZ2VwaWNrZXIuc2hvdy1yYW5nZXMgLmRycC1jYWxlbmRhci5sZWZ0IHtcclxuICBib3JkZXItbGVmdDogMXB4IHNvbGlkICNkZGQ7XHJcbn1cclxuXHJcbi5kYXRlcmFuZ2VwaWNrZXIgLnJhbmdlcyB7XHJcbiAgZmxvYXQ6IG5vbmU7XHJcbiAgdGV4dC1hbGlnbjogbGVmdDtcclxuICBtYXJnaW46IDA7XHJcbn1cclxuXHJcbi5kYXRlcmFuZ2VwaWNrZXIuc2hvdy1jYWxlbmRhciAucmFuZ2VzIHtcclxuICBtYXJnaW4tdG9wOiA4cHg7XHJcbn1cclxuXHJcbi5kYXRlcmFuZ2VwaWNrZXIgLnJhbmdlcyB1bCB7XHJcbiAgbGlzdC1zdHlsZTogbm9uZTtcclxuICBtYXJnaW46IDAgYXV0bztcclxuICBwYWRkaW5nOiAwO1xyXG4gIHdpZHRoOiAxMDAlO1xyXG59XHJcblxyXG4uZGF0ZXJhbmdlcGlja2VyIC5yYW5nZXMgbGkge1xyXG4gIGZvbnQtc2l6ZTogMTJweDtcclxuICBwYWRkaW5nOiA4cHggMTJweDtcclxuICBjdXJzb3I6IHBvaW50ZXI7XHJcbn1cclxuXHJcbi5kYXRlcmFuZ2VwaWNrZXIgLnJhbmdlcyBsaTpob3ZlciB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VlZTtcclxufVxyXG5cclxuLmRhdGVyYW5nZXBpY2tlciAucmFuZ2VzIGxpLmFjdGl2ZSB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogIzA4YztcclxuICBjb2xvcjogI2ZmZjtcclxufVxyXG5cclxuLyogIExhcmdlciBTY3JlZW4gU3R5bGluZyAqL1xyXG5AbWVkaWEgKG1pbi13aWR0aDogNTY0cHgpIHtcclxuICAuZGF0ZXJhbmdlcGlja2VyIHtcclxuICAgIHdpZHRoOiBhdXRvOyB9XHJcbiAgICAuZGF0ZXJhbmdlcGlja2VyIC5yYW5nZXMgdWwge1xyXG4gICAgICB3aWR0aDogMTQwcHg7IH1cclxuICAgIC5kYXRlcmFuZ2VwaWNrZXIuc2luZ2xlIC5yYW5nZXMgdWwge1xyXG4gICAgICB3aWR0aDogMTAwJTsgfVxyXG4gICAgLmRhdGVyYW5nZXBpY2tlci5zaW5nbGUgLmRycC1jYWxlbmRhci5sZWZ0IHtcclxuICAgICAgY2xlYXI6IG5vbmU7IH1cclxuICAgIC5kYXRlcmFuZ2VwaWNrZXIuc2luZ2xlLmx0ciAucmFuZ2VzLCAuZGF0ZXJhbmdlcGlja2VyLnNpbmdsZS5sdHIgLmRycC1jYWxlbmRhciB7XHJcbiAgICAgIGZsb2F0OiBsZWZ0OyB9XHJcbiAgICAuZGF0ZXJhbmdlcGlja2VyLnNpbmdsZS5ydGwgLnJhbmdlcywgLmRhdGVyYW5nZXBpY2tlci5zaW5nbGUucnRsIC5kcnAtY2FsZW5kYXIge1xyXG4gICAgICBmbG9hdDogcmlnaHQ7IH1cclxuICAgIC5kYXRlcmFuZ2VwaWNrZXIubHRyIHtcclxuICAgICAgZGlyZWN0aW9uOiBsdHI7XHJcbiAgICAgIHRleHQtYWxpZ246IGxlZnQ7IH1cclxuICAgICAgLmRhdGVyYW5nZXBpY2tlci5sdHIgLmRycC1jYWxlbmRhci5sZWZ0IHtcclxuICAgICAgICBjbGVhcjogbGVmdDtcclxuICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7IH1cclxuICAgICAgICAuZGF0ZXJhbmdlcGlja2VyLmx0ciAuZHJwLWNhbGVuZGFyLmxlZnQgLmNhbGVuZGFyLXRhYmxlIHtcclxuICAgICAgICAgIGJvcmRlci1yaWdodDogbm9uZTtcclxuICAgICAgICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwO1xyXG4gICAgICAgICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7IH1cclxuICAgICAgLmRhdGVyYW5nZXBpY2tlci5sdHIgLmRycC1jYWxlbmRhci5yaWdodCB7XHJcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDA7IH1cclxuICAgICAgICAuZGF0ZXJhbmdlcGlja2VyLmx0ciAuZHJwLWNhbGVuZGFyLnJpZ2h0IC5jYWxlbmRhci10YWJsZSB7XHJcbiAgICAgICAgICBib3JkZXItbGVmdDogbm9uZTtcclxuICAgICAgICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDA7XHJcbiAgICAgICAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwOyB9XHJcbiAgICAgIC5kYXRlcmFuZ2VwaWNrZXIubHRyIC5kcnAtY2FsZW5kYXIubGVmdCAuY2FsZW5kYXItdGFibGUge1xyXG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDhweDsgfVxyXG4gICAgICAuZGF0ZXJhbmdlcGlja2VyLmx0ciAucmFuZ2VzLCAuZGF0ZXJhbmdlcGlja2VyLmx0ciAuZHJwLWNhbGVuZGFyIHtcclxuICAgICAgICBmbG9hdDogbGVmdDsgfVxyXG4gICAgLmRhdGVyYW5nZXBpY2tlci5ydGwge1xyXG4gICAgICBkaXJlY3Rpb246IHJ0bDtcclxuICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7IH1cclxuICAgICAgLmRhdGVyYW5nZXBpY2tlci5ydGwgLmRycC1jYWxlbmRhci5sZWZ0IHtcclxuICAgICAgICBjbGVhcjogcmlnaHQ7XHJcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDA7IH1cclxuICAgICAgICAuZGF0ZXJhbmdlcGlja2VyLnJ0bCAuZHJwLWNhbGVuZGFyLmxlZnQgLmNhbGVuZGFyLXRhYmxlIHtcclxuICAgICAgICAgIGJvcmRlci1sZWZ0OiBub25lO1xyXG4gICAgICAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMDtcclxuICAgICAgICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7IH1cclxuICAgICAgLmRhdGVyYW5nZXBpY2tlci5ydGwgLmRycC1jYWxlbmRhci5yaWdodCB7XHJcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwOyB9XHJcbiAgICAgICAgLmRhdGVyYW5nZXBpY2tlci5ydGwgLmRycC1jYWxlbmRhci5yaWdodCAuY2FsZW5kYXItdGFibGUge1xyXG4gICAgICAgICAgYm9yZGVyLXJpZ2h0OiBub25lO1xyXG4gICAgICAgICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDA7XHJcbiAgICAgICAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMDsgfVxyXG4gICAgICAuZGF0ZXJhbmdlcGlja2VyLnJ0bCAuZHJwLWNhbGVuZGFyLmxlZnQgLmNhbGVuZGFyLXRhYmxlIHtcclxuICAgICAgICBwYWRkaW5nLWxlZnQ6IDEycHg7IH1cclxuICAgICAgLmRhdGVyYW5nZXBpY2tlci5ydGwgLnJhbmdlcywgLmRhdGVyYW5nZXBpY2tlci5ydGwgLmRycC1jYWxlbmRhciB7XHJcbiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XHJcbiAgICAgICAgZmxvYXQ6IHJpZ2h0OyB9IH1cclxuQG1lZGlhIChtaW4td2lkdGg6IDczMHB4KSB7XHJcbiAgLmRhdGVyYW5nZXBpY2tlciAucmFuZ2VzIHtcclxuICAgIHdpZHRoOiBhdXRvOyB9XHJcbiAgLmRhdGVyYW5nZXBpY2tlci5sdHIgLnJhbmdlcyB7XHJcbiAgICBmbG9hdDogbGVmdDsgfVxyXG4gIC5kYXRlcmFuZ2VwaWNrZXIucnRsIC5yYW5nZXMge1xyXG4gICAgZmxvYXQ6IHJpZ2h0OyB9XHJcbiAgLmRhdGVyYW5nZXBpY2tlciAuZHJwLWNhbGVuZGFyLmxlZnQge1xyXG4gICAgY2xlYXI6IG5vbmUgIWltcG9ydGFudDsgfSB9XHJcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL25vZGVfbW9kdWxlcy9kYXRlcmFuZ2VwaWNrZXIvZGF0ZXJhbmdlcGlja2VyLmNzcyIsIi8qIVxyXG4gKiBCb290c3RyYXAtc2VsZWN0IHYxLjEzLjEgKGh0dHBzOi8vZGV2ZWxvcGVyLnNuYXBhcHBvaW50bWVudHMuY29tL2Jvb3RzdHJhcC1zZWxlY3QpXHJcbiAqXHJcbiAqIENvcHlyaWdodCAyMDEyLTIwMTggU25hcEFwcG9pbnRtZW50cywgTExDXHJcbiAqIExpY2Vuc2VkIHVuZGVyIE1JVCAoaHR0cHM6Ly9naXRodWIuY29tL3NuYXBhcHBvaW50bWVudHMvYm9vdHN0cmFwLXNlbGVjdC9ibG9iL21hc3Rlci9MSUNFTlNFKVxyXG4gKi8uYm9vdHN0cmFwLXNlbGVjdD5zZWxlY3QuYnMtc2VsZWN0LWhpZGRlbixzZWxlY3QuYnMtc2VsZWN0LWhpZGRlbixzZWxlY3Quc2VsZWN0cGlja2Vye2Rpc3BsYXk6bm9uZSFpbXBvcnRhbnR9LmJvb3RzdHJhcC1zZWxlY3R7d2lkdGg6MjIwcHhcXDl9LmJvb3RzdHJhcC1zZWxlY3Q+LmRyb3Bkb3duLXRvZ2dsZXtwb3NpdGlvbjpyZWxhdGl2ZTt3aWR0aDoxMDAlO3otaW5kZXg6MTt0ZXh0LWFsaWduOnJpZ2h0O3doaXRlLXNwYWNlOm5vd3JhcH0uYm9vdHN0cmFwLXNlbGVjdD4uZHJvcGRvd24tdG9nZ2xlLmJzLXBsYWNlaG9sZGVyLC5ib290c3RyYXAtc2VsZWN0Pi5kcm9wZG93bi10b2dnbGUuYnMtcGxhY2Vob2xkZXI6YWN0aXZlLC5ib290c3RyYXAtc2VsZWN0Pi5kcm9wZG93bi10b2dnbGUuYnMtcGxhY2Vob2xkZXI6Zm9jdXMsLmJvb3RzdHJhcC1zZWxlY3Q+LmRyb3Bkb3duLXRvZ2dsZS5icy1wbGFjZWhvbGRlcjpob3Zlcntjb2xvcjojOTk5fS5ib290c3RyYXAtc2VsZWN0Pi5kcm9wZG93bi10b2dnbGUuYnMtcGxhY2Vob2xkZXIuYnRuLWRhbmdlciwuYm9vdHN0cmFwLXNlbGVjdD4uZHJvcGRvd24tdG9nZ2xlLmJzLXBsYWNlaG9sZGVyLmJ0bi1kYW5nZXI6YWN0aXZlLC5ib290c3RyYXAtc2VsZWN0Pi5kcm9wZG93bi10b2dnbGUuYnMtcGxhY2Vob2xkZXIuYnRuLWRhbmdlcjpmb2N1cywuYm9vdHN0cmFwLXNlbGVjdD4uZHJvcGRvd24tdG9nZ2xlLmJzLXBsYWNlaG9sZGVyLmJ0bi1kYW5nZXI6aG92ZXIsLmJvb3RzdHJhcC1zZWxlY3Q+LmRyb3Bkb3duLXRvZ2dsZS5icy1wbGFjZWhvbGRlci5idG4tZGFyaywuYm9vdHN0cmFwLXNlbGVjdD4uZHJvcGRvd24tdG9nZ2xlLmJzLXBsYWNlaG9sZGVyLmJ0bi1kYXJrOmFjdGl2ZSwuYm9vdHN0cmFwLXNlbGVjdD4uZHJvcGRvd24tdG9nZ2xlLmJzLXBsYWNlaG9sZGVyLmJ0bi1kYXJrOmZvY3VzLC5ib290c3RyYXAtc2VsZWN0Pi5kcm9wZG93bi10b2dnbGUuYnMtcGxhY2Vob2xkZXIuYnRuLWRhcms6aG92ZXIsLmJvb3RzdHJhcC1zZWxlY3Q+LmRyb3Bkb3duLXRvZ2dsZS5icy1wbGFjZWhvbGRlci5idG4taW5mbywuYm9vdHN0cmFwLXNlbGVjdD4uZHJvcGRvd24tdG9nZ2xlLmJzLXBsYWNlaG9sZGVyLmJ0bi1pbmZvOmFjdGl2ZSwuYm9vdHN0cmFwLXNlbGVjdD4uZHJvcGRvd24tdG9nZ2xlLmJzLXBsYWNlaG9sZGVyLmJ0bi1pbmZvOmZvY3VzLC5ib290c3RyYXAtc2VsZWN0Pi5kcm9wZG93bi10b2dnbGUuYnMtcGxhY2Vob2xkZXIuYnRuLWluZm86aG92ZXIsLmJvb3RzdHJhcC1zZWxlY3Q+LmRyb3Bkb3duLXRvZ2dsZS5icy1wbGFjZWhvbGRlci5idG4tcHJpbWFyeSwuYm9vdHN0cmFwLXNlbGVjdD4uZHJvcGRvd24tdG9nZ2xlLmJzLXBsYWNlaG9sZGVyLmJ0bi1wcmltYXJ5OmFjdGl2ZSwuYm9vdHN0cmFwLXNlbGVjdD4uZHJvcGRvd24tdG9nZ2xlLmJzLXBsYWNlaG9sZGVyLmJ0bi1wcmltYXJ5OmZvY3VzLC5ib290c3RyYXAtc2VsZWN0Pi5kcm9wZG93bi10b2dnbGUuYnMtcGxhY2Vob2xkZXIuYnRuLXByaW1hcnk6aG92ZXIsLmJvb3RzdHJhcC1zZWxlY3Q+LmRyb3Bkb3duLXRvZ2dsZS5icy1wbGFjZWhvbGRlci5idG4tc2Vjb25kYXJ5LC5ib290c3RyYXAtc2VsZWN0Pi5kcm9wZG93bi10b2dnbGUuYnMtcGxhY2Vob2xkZXIuYnRuLXNlY29uZGFyeTphY3RpdmUsLmJvb3RzdHJhcC1zZWxlY3Q+LmRyb3Bkb3duLXRvZ2dsZS5icy1wbGFjZWhvbGRlci5idG4tc2Vjb25kYXJ5OmZvY3VzLC5ib290c3RyYXAtc2VsZWN0Pi5kcm9wZG93bi10b2dnbGUuYnMtcGxhY2Vob2xkZXIuYnRuLXNlY29uZGFyeTpob3ZlciwuYm9vdHN0cmFwLXNlbGVjdD4uZHJvcGRvd24tdG9nZ2xlLmJzLXBsYWNlaG9sZGVyLmJ0bi1zdWNjZXNzLC5ib290c3RyYXAtc2VsZWN0Pi5kcm9wZG93bi10b2dnbGUuYnMtcGxhY2Vob2xkZXIuYnRuLXN1Y2Nlc3M6YWN0aXZlLC5ib290c3RyYXAtc2VsZWN0Pi5kcm9wZG93bi10b2dnbGUuYnMtcGxhY2Vob2xkZXIuYnRuLXN1Y2Nlc3M6Zm9jdXMsLmJvb3RzdHJhcC1zZWxlY3Q+LmRyb3Bkb3duLXRvZ2dsZS5icy1wbGFjZWhvbGRlci5idG4tc3VjY2Vzczpob3Zlcntjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC41KX0uYm9vdHN0cmFwLXNlbGVjdD5zZWxlY3R7cG9zaXRpb246YWJzb2x1dGUhaW1wb3J0YW50O2JvdHRvbTowO2xlZnQ6NTAlO2Rpc3BsYXk6YmxvY2shaW1wb3J0YW50O3dpZHRoOi41cHghaW1wb3J0YW50O2hlaWdodDoxMDAlIWltcG9ydGFudDtwYWRkaW5nOjAhaW1wb3J0YW50O29wYWNpdHk6MCFpbXBvcnRhbnQ7Ym9yZGVyOm5vbmV9LmJvb3RzdHJhcC1zZWxlY3Q+c2VsZWN0Lm1vYmlsZS1kZXZpY2V7dG9wOjA7bGVmdDowO2Rpc3BsYXk6YmxvY2shaW1wb3J0YW50O3dpZHRoOjEwMCUhaW1wb3J0YW50O3otaW5kZXg6Mn0uYm9vdHN0cmFwLXNlbGVjdC5pcy1pbnZhbGlkIC5kcm9wZG93bi10b2dnbGUsLmVycm9yIC5ib290c3RyYXAtc2VsZWN0IC5kcm9wZG93bi10b2dnbGUsLmhhcy1lcnJvciAuYm9vdHN0cmFwLXNlbGVjdCAuZHJvcGRvd24tdG9nZ2xlLC53YXMtdmFsaWRhdGVkIC5ib290c3RyYXAtc2VsZWN0IC5zZWxlY3RwaWNrZXI6aW52YWxpZCsuZHJvcGRvd24tdG9nZ2xle2JvcmRlci1jb2xvcjojYjk0YTQ4fS5ib290c3RyYXAtc2VsZWN0LmlzLXZhbGlkIC5kcm9wZG93bi10b2dnbGUsLndhcy12YWxpZGF0ZWQgLmJvb3RzdHJhcC1zZWxlY3QgLnNlbGVjdHBpY2tlcjp2YWxpZCsuZHJvcGRvd24tdG9nZ2xle2JvcmRlci1jb2xvcjojMjhhNzQ1fS5ib290c3RyYXAtc2VsZWN0LmZpdC13aWR0aHt3aWR0aDphdXRvIWltcG9ydGFudH0uYm9vdHN0cmFwLXNlbGVjdDpub3QoW2NsYXNzKj1jb2wtXSk6bm90KFtjbGFzcyo9Zm9ybS1jb250cm9sXSk6bm90KC5pbnB1dC1ncm91cC1idG4pe3dpZHRoOjIyMHB4fS5ib290c3RyYXAtc2VsZWN0IC5kcm9wZG93bi10b2dnbGU6Zm9jdXN7b3V0bGluZTp0aGluIGRvdHRlZCAjMzMzIWltcG9ydGFudDtvdXRsaW5lOjVweCBhdXRvIC13ZWJraXQtZm9jdXMtcmluZy1jb2xvciFpbXBvcnRhbnQ7b3V0bGluZS1vZmZzZXQ6LTJweH0uYm9vdHN0cmFwLXNlbGVjdC5mb3JtLWNvbnRyb2x7bWFyZ2luLWJvdHRvbTowO3BhZGRpbmc6MDtib3JkZXI6bm9uZX06bm90KC5pbnB1dC1ncm91cCk+LmJvb3RzdHJhcC1zZWxlY3QuZm9ybS1jb250cm9sOm5vdChbY2xhc3MqPWNvbC1dKXt3aWR0aDoxMDAlfS5ib290c3RyYXAtc2VsZWN0LmZvcm0tY29udHJvbC5pbnB1dC1ncm91cC1idG57ei1pbmRleDphdXRvfS5ib290c3RyYXAtc2VsZWN0LmZvcm0tY29udHJvbC5pbnB1dC1ncm91cC1idG46bm90KDpmaXJzdC1jaGlsZCk6bm90KDpsYXN0LWNoaWxkKT4uYnRue2JvcmRlci1yYWRpdXM6MH0uYm9vdHN0cmFwLXNlbGVjdDpub3QoLmlucHV0LWdyb3VwLWJ0biksLmJvb3RzdHJhcC1zZWxlY3RbY2xhc3MqPWNvbC1de2Zsb2F0Om5vbmU7ZGlzcGxheTppbmxpbmUtYmxvY2s7bWFyZ2luLWxlZnQ6MH0uYm9vdHN0cmFwLXNlbGVjdC5kcm9wZG93bi1tZW51LXJpZ2h0LC5ib290c3RyYXAtc2VsZWN0W2NsYXNzKj1jb2wtXS5kcm9wZG93bi1tZW51LXJpZ2h0LC5yb3cgLmJvb3RzdHJhcC1zZWxlY3RbY2xhc3MqPWNvbC1dLmRyb3Bkb3duLW1lbnUtcmlnaHR7ZmxvYXQ6cmlnaHR9LmZvcm0tZ3JvdXAgLmJvb3RzdHJhcC1zZWxlY3QsLmZvcm0taG9yaXpvbnRhbCAuYm9vdHN0cmFwLXNlbGVjdCwuZm9ybS1pbmxpbmUgLmJvb3RzdHJhcC1zZWxlY3R7bWFyZ2luLWJvdHRvbTowfS5mb3JtLWdyb3VwLWxnIC5ib290c3RyYXAtc2VsZWN0LmZvcm0tY29udHJvbCwuZm9ybS1ncm91cC1zbSAuYm9vdHN0cmFwLXNlbGVjdC5mb3JtLWNvbnRyb2x7cGFkZGluZzowfS5mb3JtLWdyb3VwLWxnIC5ib290c3RyYXAtc2VsZWN0LmZvcm0tY29udHJvbCAuZHJvcGRvd24tdG9nZ2xlLC5mb3JtLWdyb3VwLXNtIC5ib290c3RyYXAtc2VsZWN0LmZvcm0tY29udHJvbCAuZHJvcGRvd24tdG9nZ2xle2hlaWdodDoxMDAlO2ZvbnQtc2l6ZTppbmhlcml0O2xpbmUtaGVpZ2h0OmluaGVyaXQ7Ym9yZGVyLXJhZGl1czppbmhlcml0fS5ib290c3RyYXAtc2VsZWN0LmZvcm0tY29udHJvbC1sZyAuZHJvcGRvd24tdG9nZ2xlLC5ib290c3RyYXAtc2VsZWN0LmZvcm0tY29udHJvbC1zbSAuZHJvcGRvd24tdG9nZ2xle2ZvbnQtc2l6ZTppbmhlcml0O2xpbmUtaGVpZ2h0OmluaGVyaXQ7Ym9yZGVyLXJhZGl1czppbmhlcml0fS5ib290c3RyYXAtc2VsZWN0LmZvcm0tY29udHJvbC1zbSAuZHJvcGRvd24tdG9nZ2xle3BhZGRpbmc6LjI1cmVtIC41cmVtfS5ib290c3RyYXAtc2VsZWN0LmZvcm0tY29udHJvbC1sZyAuZHJvcGRvd24tdG9nZ2xle3BhZGRpbmc6LjVyZW0gMXJlbX0uZm9ybS1pbmxpbmUgLmJvb3RzdHJhcC1zZWxlY3QgLmZvcm0tY29udHJvbHt3aWR0aDoxMDAlfS5ib290c3RyYXAtc2VsZWN0LmRpc2FibGVkLC5ib290c3RyYXAtc2VsZWN0Pi5kaXNhYmxlZHtjdXJzb3I6bm90LWFsbG93ZWR9LmJvb3RzdHJhcC1zZWxlY3QuZGlzYWJsZWQ6Zm9jdXMsLmJvb3RzdHJhcC1zZWxlY3Q+LmRpc2FibGVkOmZvY3Vze291dGxpbmU6MCFpbXBvcnRhbnR9LmJvb3RzdHJhcC1zZWxlY3QuYnMtY29udGFpbmVye3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2xlZnQ6MDtoZWlnaHQ6MCFpbXBvcnRhbnQ7cGFkZGluZzowIWltcG9ydGFudH0uYm9vdHN0cmFwLXNlbGVjdC5icy1jb250YWluZXIgLmRyb3Bkb3duLW1lbnV7ei1pbmRleDoxMDYwfS5ib290c3RyYXAtc2VsZWN0IC5kcm9wZG93bi10b2dnbGU6YmVmb3Jle2NvbnRlbnQ6Jyc7ZGlzcGxheTppbmxpbmUtYmxvY2t9LmJvb3RzdHJhcC1zZWxlY3QgLmRyb3Bkb3duLXRvZ2dsZSAuZmlsdGVyLW9wdGlvbntwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtsZWZ0OjA7cGFkZGluZy10b3A6aW5oZXJpdDtwYWRkaW5nLXJpZ2h0OmluaGVyaXQ7cGFkZGluZy1ib3R0b206aW5oZXJpdDtwYWRkaW5nLWxlZnQ6aW5oZXJpdDtoZWlnaHQ6MTAwJTt3aWR0aDoxMDAlO3RleHQtYWxpZ246bGVmdH0uYm9vdHN0cmFwLXNlbGVjdCAuZHJvcGRvd24tdG9nZ2xlIC5maWx0ZXItb3B0aW9uLWlubmVye3BhZGRpbmctcmlnaHQ6aW5oZXJpdH0uYm9vdHN0cmFwLXNlbGVjdCAuZHJvcGRvd24tdG9nZ2xlIC5maWx0ZXItb3B0aW9uLWlubmVyLWlubmVye292ZXJmbG93OmhpZGRlbn0uYm9vdHN0cmFwLXNlbGVjdCAuZHJvcGRvd24tdG9nZ2xlIC5jYXJldHtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6NTAlO3JpZ2h0OjEycHg7bWFyZ2luLXRvcDotMnB4O3ZlcnRpY2FsLWFsaWduOm1pZGRsZX0uaW5wdXQtZ3JvdXAgLmJvb3RzdHJhcC1zZWxlY3QuZm9ybS1jb250cm9sIC5kcm9wZG93bi10b2dnbGV7Ym9yZGVyLXJhZGl1czppbmhlcml0fS5ib290c3RyYXAtc2VsZWN0W2NsYXNzKj1jb2wtXSAuZHJvcGRvd24tdG9nZ2xle3dpZHRoOjEwMCV9LmJvb3RzdHJhcC1zZWxlY3QgLmRyb3Bkb3duLW1lbnV7bWluLXdpZHRoOjEwMCU7LXdlYmtpdC1ib3gtc2l6aW5nOmJvcmRlci1ib3g7LW1vei1ib3gtc2l6aW5nOmJvcmRlci1ib3g7Ym94LXNpemluZzpib3JkZXItYm94fS5ib290c3RyYXAtc2VsZWN0IC5kcm9wZG93bi1tZW51Pi5pbm5lcjpmb2N1c3tvdXRsaW5lOjAhaW1wb3J0YW50fS5ib290c3RyYXAtc2VsZWN0IC5kcm9wZG93bi1tZW51LmlubmVye3Bvc2l0aW9uOnN0YXRpYztmbG9hdDpub25lO2JvcmRlcjowO3BhZGRpbmc6MDttYXJnaW46MDtib3JkZXItcmFkaXVzOjA7LXdlYmtpdC1ib3gtc2hhZG93Om5vbmU7Ym94LXNoYWRvdzpub25lfS5ib290c3RyYXAtc2VsZWN0IC5kcm9wZG93bi1tZW51IGxpe3Bvc2l0aW9uOnJlbGF0aXZlfS5ib290c3RyYXAtc2VsZWN0IC5kcm9wZG93bi1tZW51IGxpLmFjdGl2ZSBzbWFsbHtjb2xvcjojZmZmfS5ib290c3RyYXAtc2VsZWN0IC5kcm9wZG93bi1tZW51IGxpLmRpc2FibGVkIGF7Y3Vyc29yOm5vdC1hbGxvd2VkfS5ib290c3RyYXAtc2VsZWN0IC5kcm9wZG93bi1tZW51IGxpIGF7Y3Vyc29yOnBvaW50ZXI7LXdlYmtpdC11c2VyLXNlbGVjdDpub25lOy1tb3otdXNlci1zZWxlY3Q6bm9uZTstbXMtdXNlci1zZWxlY3Q6bm9uZTt1c2VyLXNlbGVjdDpub25lfS5ib290c3RyYXAtc2VsZWN0IC5kcm9wZG93bi1tZW51IGxpIGEub3B0e3Bvc2l0aW9uOnJlbGF0aXZlO3BhZGRpbmctbGVmdDoyLjI1ZW19LmJvb3RzdHJhcC1zZWxlY3QgLmRyb3Bkb3duLW1lbnUgbGkgYSBzcGFuLmNoZWNrLW1hcmt7ZGlzcGxheTpub25lfS5ib290c3RyYXAtc2VsZWN0IC5kcm9wZG93bi1tZW51IGxpIGEgc3Bhbi50ZXh0e2Rpc3BsYXk6aW5saW5lLWJsb2NrfS5ib290c3RyYXAtc2VsZWN0IC5kcm9wZG93bi1tZW51IGxpIHNtYWxse3BhZGRpbmctbGVmdDouNWVtfS5ib290c3RyYXAtc2VsZWN0IC5kcm9wZG93bi1tZW51IC5ub3RpZnl7cG9zaXRpb246YWJzb2x1dGU7Ym90dG9tOjVweDt3aWR0aDo5NiU7bWFyZ2luOjAgMiU7bWluLWhlaWdodDoyNnB4O3BhZGRpbmc6M3B4IDVweDtiYWNrZ3JvdW5kOiNmNWY1ZjU7Ym9yZGVyOjFweCBzb2xpZCAjZTNlM2UzOy13ZWJraXQtYm94LXNoYWRvdzppbnNldCAwIDFweCAxcHggcmdiYSgwLDAsMCwuMDUpO2JveC1zaGFkb3c6aW5zZXQgMCAxcHggMXB4IHJnYmEoMCwwLDAsLjA1KTtwb2ludGVyLWV2ZW50czpub25lO29wYWNpdHk6Ljk7LXdlYmtpdC1ib3gtc2l6aW5nOmJvcmRlci1ib3g7LW1vei1ib3gtc2l6aW5nOmJvcmRlci1ib3g7Ym94LXNpemluZzpib3JkZXItYm94fS5ib290c3RyYXAtc2VsZWN0IC5uby1yZXN1bHRze3BhZGRpbmc6M3B4O2JhY2tncm91bmQ6I2Y1ZjVmNTttYXJnaW46MCA1cHg7d2hpdGUtc3BhY2U6bm93cmFwfS5ib290c3RyYXAtc2VsZWN0LmZpdC13aWR0aCAuZHJvcGRvd24tdG9nZ2xlIC5maWx0ZXItb3B0aW9ue3Bvc2l0aW9uOnN0YXRpYztkaXNwbGF5OmlubGluZTtwYWRkaW5nOjB9LmJvb3RzdHJhcC1zZWxlY3QuZml0LXdpZHRoIC5kcm9wZG93bi10b2dnbGUgLmZpbHRlci1vcHRpb24taW5uZXIsLmJvb3RzdHJhcC1zZWxlY3QuZml0LXdpZHRoIC5kcm9wZG93bi10b2dnbGUgLmZpbHRlci1vcHRpb24taW5uZXItaW5uZXJ7ZGlzcGxheTppbmxpbmV9LmJvb3RzdHJhcC1zZWxlY3QuZml0LXdpZHRoIC5kcm9wZG93bi10b2dnbGUgLmNhcmV0e3Bvc2l0aW9uOnN0YXRpYzt0b3A6YXV0bzttYXJnaW4tdG9wOi0xcHh9LmJvb3RzdHJhcC1zZWxlY3Quc2hvdy10aWNrIC5kcm9wZG93bi1tZW51IC5zZWxlY3RlZCBzcGFuLmNoZWNrLW1hcmt7cG9zaXRpb246YWJzb2x1dGU7ZGlzcGxheTppbmxpbmUtYmxvY2s7cmlnaHQ6MTVweDt0b3A6NXB4fS5ib290c3RyYXAtc2VsZWN0LnNob3ctdGljayAuZHJvcGRvd24tbWVudSBsaSBhIHNwYW4udGV4dHttYXJnaW4tcmlnaHQ6MzRweH0uYm9vdHN0cmFwLXNlbGVjdCAuYnMtb2stZGVmYXVsdDphZnRlcntjb250ZW50OicnO2Rpc3BsYXk6YmxvY2s7d2lkdGg6LjVlbTtoZWlnaHQ6MWVtO2JvcmRlci1zdHlsZTpzb2xpZDtib3JkZXItd2lkdGg6MCAuMjZlbSAuMjZlbSAwOy13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSg0NWRlZyk7LW1zLXRyYW5zZm9ybTpyb3RhdGUoNDVkZWcpOy1vLXRyYW5zZm9ybTpyb3RhdGUoNDVkZWcpO3RyYW5zZm9ybTpyb3RhdGUoNDVkZWcpfS5ib290c3RyYXAtc2VsZWN0LnNob3ctbWVudS1hcnJvdy5vcGVuPi5kcm9wZG93bi10b2dnbGUsLmJvb3RzdHJhcC1zZWxlY3Quc2hvdy1tZW51LWFycm93LnNob3c+LmRyb3Bkb3duLXRvZ2dsZXt6LWluZGV4OjEwNjF9LmJvb3RzdHJhcC1zZWxlY3Quc2hvdy1tZW51LWFycm93IC5kcm9wZG93bi10b2dnbGUgLmZpbHRlci1vcHRpb246YmVmb3Jle2NvbnRlbnQ6Jyc7Ym9yZGVyLWxlZnQ6N3B4IHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1yaWdodDo3cHggc29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVyLWJvdHRvbTo3cHggc29saWQgcmdiYSgyMDQsMjA0LDIwNCwuMik7cG9zaXRpb246YWJzb2x1dGU7Ym90dG9tOi00cHg7bGVmdDo5cHg7ZGlzcGxheTpub25lfS5ib290c3RyYXAtc2VsZWN0LnNob3ctbWVudS1hcnJvdyAuZHJvcGRvd24tdG9nZ2xlIC5maWx0ZXItb3B0aW9uOmFmdGVye2NvbnRlbnQ6Jyc7Ym9yZGVyLWxlZnQ6NnB4IHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1yaWdodDo2cHggc29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVyLWJvdHRvbTo2cHggc29saWQgI2ZmZjtwb3NpdGlvbjphYnNvbHV0ZTtib3R0b206LTRweDtsZWZ0OjEwcHg7ZGlzcGxheTpub25lfS5ib290c3RyYXAtc2VsZWN0LnNob3ctbWVudS1hcnJvdy5kcm9wdXAgLmRyb3Bkb3duLXRvZ2dsZSAuZmlsdGVyLW9wdGlvbjpiZWZvcmV7Ym90dG9tOmF1dG87dG9wOi00cHg7Ym9yZGVyLXRvcDo3cHggc29saWQgcmdiYSgyMDQsMjA0LDIwNCwuMik7Ym9yZGVyLWJvdHRvbTowfS5ib290c3RyYXAtc2VsZWN0LnNob3ctbWVudS1hcnJvdy5kcm9wdXAgLmRyb3Bkb3duLXRvZ2dsZSAuZmlsdGVyLW9wdGlvbjphZnRlcntib3R0b206YXV0bzt0b3A6LTRweDtib3JkZXItdG9wOjZweCBzb2xpZCAjZmZmO2JvcmRlci1ib3R0b206MH0uYm9vdHN0cmFwLXNlbGVjdC5zaG93LW1lbnUtYXJyb3cucHVsbC1yaWdodCAuZHJvcGRvd24tdG9nZ2xlIC5maWx0ZXItb3B0aW9uOmJlZm9yZXtyaWdodDoxMnB4O2xlZnQ6YXV0b30uYm9vdHN0cmFwLXNlbGVjdC5zaG93LW1lbnUtYXJyb3cucHVsbC1yaWdodCAuZHJvcGRvd24tdG9nZ2xlIC5maWx0ZXItb3B0aW9uOmFmdGVye3JpZ2h0OjEzcHg7bGVmdDphdXRvfS5ib290c3RyYXAtc2VsZWN0LnNob3ctbWVudS1hcnJvdy5vcGVuPi5kcm9wZG93bi10b2dnbGUgLmZpbHRlci1vcHRpb246YWZ0ZXIsLmJvb3RzdHJhcC1zZWxlY3Quc2hvdy1tZW51LWFycm93Lm9wZW4+LmRyb3Bkb3duLXRvZ2dsZSAuZmlsdGVyLW9wdGlvbjpiZWZvcmUsLmJvb3RzdHJhcC1zZWxlY3Quc2hvdy1tZW51LWFycm93LnNob3c+LmRyb3Bkb3duLXRvZ2dsZSAuZmlsdGVyLW9wdGlvbjphZnRlciwuYm9vdHN0cmFwLXNlbGVjdC5zaG93LW1lbnUtYXJyb3cuc2hvdz4uZHJvcGRvd24tdG9nZ2xlIC5maWx0ZXItb3B0aW9uOmJlZm9yZXtkaXNwbGF5OmJsb2NrfS5icy1hY3Rpb25zYm94LC5icy1kb25lYnV0dG9uLC5icy1zZWFyY2hib3h7cGFkZGluZzo0cHggOHB4fS5icy1hY3Rpb25zYm94e3dpZHRoOjEwMCU7LXdlYmtpdC1ib3gtc2l6aW5nOmJvcmRlci1ib3g7LW1vei1ib3gtc2l6aW5nOmJvcmRlci1ib3g7Ym94LXNpemluZzpib3JkZXItYm94fS5icy1hY3Rpb25zYm94IC5idG4tZ3JvdXAgYnV0dG9ue3dpZHRoOjUwJX0uYnMtZG9uZWJ1dHRvbntmbG9hdDpsZWZ0O3dpZHRoOjEwMCU7LXdlYmtpdC1ib3gtc2l6aW5nOmJvcmRlci1ib3g7LW1vei1ib3gtc2l6aW5nOmJvcmRlci1ib3g7Ym94LXNpemluZzpib3JkZXItYm94fS5icy1kb25lYnV0dG9uIC5idG4tZ3JvdXAgYnV0dG9ue3dpZHRoOjEwMCV9LmJzLXNlYXJjaGJveCsuYnMtYWN0aW9uc2JveHtwYWRkaW5nOjAgOHB4IDRweH0uYnMtc2VhcmNoYm94IC5mb3JtLWNvbnRyb2x7bWFyZ2luLWJvdHRvbTowO3dpZHRoOjEwMCU7ZmxvYXQ6bm9uZX1cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9ub2RlX21vZHVsZXMvYm9vdHN0cmFwLXNlbGVjdC9kaXN0L2Nzcy9ib290c3RyYXAtc2VsZWN0Lm1pbi5jc3MiLCJAY2hhcnNldCBcIlVURi04XCI7XG4vKiFcbiAqIEJvb3RzdHJhcCB2My4zLjcgKGh0dHA6Ly9nZXRib290c3RyYXAuY29tKVxuICogQ29weXJpZ2h0IDIwMTEtMjAxNiBUd2l0dGVyLCBJbmMuXG4gKiBMaWNlbnNlZCB1bmRlciBNSVQgKGh0dHBzOi8vZ2l0aHViLmNvbS90d2JzL2Jvb3RzdHJhcC9ibG9iL21hc3Rlci9MSUNFTlNFKVxuICovXG4vKiEgbm9ybWFsaXplLmNzcyB2My4wLjMgfCBNSVQgTGljZW5zZSB8IGdpdGh1Yi5jb20vbmVjb2xhcy9ub3JtYWxpemUuY3NzICovXG5AaW1wb3J0IHVybCh+ZGF0ZXJhbmdlcGlja2VyL2RhdGVyYW5nZXBpY2tlci5jc3MpO1xuQGltcG9ydCB1cmwofmJvb3RzdHJhcC1zZWxlY3QvZGlzdC9jc3MvYm9vdHN0cmFwLXNlbGVjdC5taW4uY3NzKTtcbmh0bWwge1xuICBmb250LWZhbWlseTogc2Fucy1zZXJpZjtcbiAgLW1zLXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7XG4gIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTsgfVxuXG5ib2R5IHtcbiAgbWFyZ2luOiAwOyB9XG5cbmFydGljbGUsXG5hc2lkZSxcbmRldGFpbHMsXG5maWdjYXB0aW9uLFxuZmlndXJlLFxuZm9vdGVyLFxuaGVhZGVyLFxuaGdyb3VwLFxubWFpbixcbm1lbnUsXG5uYXYsXG5zZWN0aW9uLFxuc3VtbWFyeSB7XG4gIGRpc3BsYXk6IGJsb2NrOyB9XG5cbmF1ZGlvLFxuY2FudmFzLFxucHJvZ3Jlc3MsXG52aWRlbyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lOyB9XG5cbmF1ZGlvOm5vdChbY29udHJvbHNdKSB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGhlaWdodDogMDsgfVxuXG5baGlkZGVuXSxcbnRlbXBsYXRlIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG5hIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cblxuYTphY3RpdmUsXG5hOmhvdmVyIHtcbiAgb3V0bGluZTogMDsgfVxuXG5hYmJyW3RpdGxlXSB7XG4gIGJvcmRlci1ib3R0b206IDFweCBkb3R0ZWQ7IH1cblxuYixcbnN0cm9uZyB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkOyB9XG5cbmRmbiB7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYzsgfVxuXG5oMSB7XG4gIGZvbnQtc2l6ZTogMmVtO1xuICBtYXJnaW46IDAuNjdlbSAwOyB9XG5cbm1hcmsge1xuICBiYWNrZ3JvdW5kOiAjZmYwO1xuICBjb2xvcjogIzAwMDsgfVxuXG5zbWFsbCB7XG4gIGZvbnQtc2l6ZTogODAlOyB9XG5cbnN1YixcbnN1cCB7XG4gIGZvbnQtc2l6ZTogNzUlO1xuICBsaW5lLWhlaWdodDogMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7IH1cblxuc3VwIHtcbiAgdG9wOiAtMC41ZW07IH1cblxuc3ViIHtcbiAgYm90dG9tOiAtMC4yNWVtOyB9XG5cbmltZyB7XG4gIGJvcmRlcjogMDsgfVxuXG5zdmc6bm90KDpyb290KSB7XG4gIG92ZXJmbG93OiBoaWRkZW47IH1cblxuZmlndXJlIHtcbiAgbWFyZ2luOiAxZW0gNDBweDsgfVxuXG5ociB7XG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICBoZWlnaHQ6IDA7IH1cblxucHJlIHtcbiAgb3ZlcmZsb3c6IGF1dG87IH1cblxuY29kZSxcbmtiZCxcbnByZSxcbnNhbXAge1xuICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7XG4gIGZvbnQtc2l6ZTogMWVtOyB9XG5cbmJ1dHRvbixcbmlucHV0LFxub3B0Z3JvdXAsXG5zZWxlY3QsXG50ZXh0YXJlYSB7XG4gIGNvbG9yOiBpbmhlcml0O1xuICBmb250OiBpbmhlcml0O1xuICBtYXJnaW46IDA7IH1cblxuYnV0dG9uIHtcbiAgb3ZlcmZsb3c6IHZpc2libGU7IH1cblxuYnV0dG9uLFxuc2VsZWN0IHtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7IH1cblxuYnV0dG9uLFxuaHRtbCBpbnB1dFt0eXBlPVwiYnV0dG9uXCJdLFxuaW5wdXRbdHlwZT1cInJlc2V0XCJdLFxuaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uO1xuICBjdXJzb3I6IHBvaW50ZXI7IH1cblxuYnV0dG9uW2Rpc2FibGVkXSxcbmh0bWwgaW5wdXRbZGlzYWJsZWRdIHtcbiAgY3Vyc29yOiBkZWZhdWx0OyB9XG5cbmJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lcixcbmlucHV0OjotbW96LWZvY3VzLWlubmVyIHtcbiAgYm9yZGVyOiAwO1xuICBwYWRkaW5nOiAwOyB9XG5cbmlucHV0IHtcbiAgbGluZS1oZWlnaHQ6IG5vcm1hbDsgfVxuXG5pbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0sXG5pbnB1dFt0eXBlPVwicmFkaW9cIl0ge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBwYWRkaW5nOiAwOyB9XG5cbmlucHV0W3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sXG5pbnB1dFt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHtcbiAgaGVpZ2h0OiBhdXRvOyB9XG5cbmlucHV0W3R5cGU9XCJzZWFyY2hcIl0ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IHRleHRmaWVsZDtcbiAgYm94LXNpemluZzogY29udGVudC1ib3g7IH1cblxuaW5wdXRbdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbixcbmlucHV0W3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7IH1cblxuZmllbGRzZXQge1xuICBib3JkZXI6IDFweCBzb2xpZCAjYzBjMGMwO1xuICBtYXJnaW46IDAgMnB4O1xuICBwYWRkaW5nOiAwLjM1ZW0gMC42MjVlbSAwLjc1ZW07IH1cblxubGVnZW5kIHtcbiAgYm9yZGVyOiAwO1xuICBwYWRkaW5nOiAwOyB9XG5cbnRleHRhcmVhIHtcbiAgb3ZlcmZsb3c6IGF1dG87IH1cblxub3B0Z3JvdXAge1xuICBmb250LXdlaWdodDogYm9sZDsgfVxuXG50YWJsZSB7XG4gIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gIGJvcmRlci1zcGFjaW5nOiAwOyB9XG5cbnRkLFxudGgge1xuICBwYWRkaW5nOiAwOyB9XG5cbi8qISBTb3VyY2U6IGh0dHBzOi8vZ2l0aHViLmNvbS9oNWJwL2h0bWw1LWJvaWxlcnBsYXRlL2Jsb2IvbWFzdGVyL3NyYy9jc3MvbWFpbi5jc3MgKi9cbkBtZWRpYSBwcmludCB7XG4gICosXG4gICo6YmVmb3JlLFxuICAqOmFmdGVyIHtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiAjMDAwICFpbXBvcnRhbnQ7XG4gICAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICAgIHRleHQtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7IH1cbiAgYSxcbiAgYTp2aXNpdGVkIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgfVxuICBhW2hyZWZdOmFmdGVyIHtcbiAgICBjb250ZW50OiBcIiAoXCIgYXR0cihocmVmKSBcIilcIjsgfVxuICBhYmJyW3RpdGxlXTphZnRlciB7XG4gICAgY29udGVudDogXCIgKFwiIGF0dHIodGl0bGUpIFwiKVwiOyB9XG4gIGFbaHJlZl49XCIjXCJdOmFmdGVyLFxuICBhW2hyZWZePVwiamF2YXNjcmlwdDpcIl06YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiXCI7IH1cbiAgcHJlLFxuICBibG9ja3F1b3RlIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjOTk5O1xuICAgIHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZDsgfVxuICB0aGVhZCB7XG4gICAgZGlzcGxheTogdGFibGUtaGVhZGVyLWdyb3VwOyB9XG4gIHRyLFxuICBpbWcge1xuICAgIHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZDsgfVxuICBpbWcge1xuICAgIG1heC13aWR0aDogMTAwJSAhaW1wb3J0YW50OyB9XG4gIHAsXG4gIGgyLFxuICBoMyB7XG4gICAgb3JwaGFuczogMztcbiAgICB3aWRvd3M6IDM7IH1cbiAgaDIsXG4gIGgzIHtcbiAgICBwYWdlLWJyZWFrLWFmdGVyOiBhdm9pZDsgfVxuICAubmF2YmFyIHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG4gIC5idG4gPiAuY2FyZXQsXG4gIC5kcm9wdXAgPiAuYnRuID4gLmNhcmV0IHtcbiAgICBib3JkZXItdG9wLWNvbG9yOiAjMDAwICFpbXBvcnRhbnQ7IH1cbiAgLmxhYmVsIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjMDAwOyB9XG4gIC50YWJsZSB7XG4gICAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZSAhaW1wb3J0YW50OyB9XG4gICAgLnRhYmxlIHRkLFxuICAgIC50YWJsZSB0aCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmICFpbXBvcnRhbnQ7IH1cbiAgLnRhYmxlLWJvcmRlcmVkIHRoLFxuICAudGFibGUtYm9yZGVyZWQgdGQge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNkZGQgIWltcG9ydGFudDsgfSB9XG5cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ0dseXBoaWNvbnMgSGFsZmxpbmdzJztcbiAgc3JjOiB1cmwoXCJ+Ym9vdHN0cmFwLXNhc3MvYXNzZXRzL2ZvbnRzL2Jvb3RzdHJhcC9nbHlwaGljb25zLWhhbGZsaW5ncy1yZWd1bGFyLmVvdFwiKTtcbiAgc3JjOiB1cmwoXCJ+Ym9vdHN0cmFwLXNhc3MvYXNzZXRzL2ZvbnRzL2Jvb3RzdHJhcC9nbHlwaGljb25zLWhhbGZsaW5ncy1yZWd1bGFyLmVvdD8jaWVmaXhcIikgZm9ybWF0KFwiZW1iZWRkZWQtb3BlbnR5cGVcIiksIHVybChcIn5ib290c3RyYXAtc2Fzcy9hc3NldHMvZm9udHMvYm9vdHN0cmFwL2dseXBoaWNvbnMtaGFsZmxpbmdzLXJlZ3VsYXIud29mZjJcIikgZm9ybWF0KFwid29mZjJcIiksIHVybChcIn5ib290c3RyYXAtc2Fzcy9hc3NldHMvZm9udHMvYm9vdHN0cmFwL2dseXBoaWNvbnMtaGFsZmxpbmdzLXJlZ3VsYXIud29mZlwiKSBmb3JtYXQoXCJ3b2ZmXCIpLCB1cmwoXCJ+Ym9vdHN0cmFwLXNhc3MvYXNzZXRzL2ZvbnRzL2Jvb3RzdHJhcC9nbHlwaGljb25zLWhhbGZsaW5ncy1yZWd1bGFyLnR0ZlwiKSBmb3JtYXQoXCJ0cnVldHlwZVwiKSwgdXJsKFwifmJvb3RzdHJhcC1zYXNzL2Fzc2V0cy9mb250cy9ib290c3RyYXAvZ2x5cGhpY29ucy1oYWxmbGluZ3MtcmVndWxhci5zdmcjZ2x5cGhpY29uc19oYWxmbGluZ3NyZWd1bGFyXCIpIGZvcm1hdChcInN2Z1wiKTsgfVxuXG4uZ2x5cGhpY29uIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0b3A6IDFweDtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LWZhbWlseTogJ0dseXBoaWNvbnMgSGFsZmxpbmdzJztcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBsaW5lLWhlaWdodDogMTtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7IH1cblxuLmdseXBoaWNvbi1hc3RlcmlzazpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcMDAyYVwiOyB9XG5cbi5nbHlwaGljb24tcGx1czpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcMDAyYlwiOyB9XG5cbi5nbHlwaGljb24tZXVybzpiZWZvcmUsXG4uZ2x5cGhpY29uLWV1cjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcMjBhY1wiOyB9XG5cbi5nbHlwaGljb24tbWludXM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXDIyMTJcIjsgfVxuXG4uZ2x5cGhpY29uLWNsb3VkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFwyNjAxXCI7IH1cblxuLmdseXBoaWNvbi1lbnZlbG9wZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcMjcwOVwiOyB9XG5cbi5nbHlwaGljb24tcGVuY2lsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFwyNzBmXCI7IH1cblxuLmdseXBoaWNvbi1nbGFzczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTAwMVwiOyB9XG5cbi5nbHlwaGljb24tbXVzaWM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwMDJcIjsgfVxuXG4uZ2x5cGhpY29uLXNlYXJjaDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTAwM1wiOyB9XG5cbi5nbHlwaGljb24taGVhcnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwMDVcIjsgfVxuXG4uZ2x5cGhpY29uLXN0YXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwMDZcIjsgfVxuXG4uZ2x5cGhpY29uLXN0YXItZW1wdHk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwMDdcIjsgfVxuXG4uZ2x5cGhpY29uLXVzZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwMDhcIjsgfVxuXG4uZ2x5cGhpY29uLWZpbG06YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwMDlcIjsgfVxuXG4uZ2x5cGhpY29uLXRoLWxhcmdlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDEwXCI7IH1cblxuLmdseXBoaWNvbi10aDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTAxMVwiOyB9XG5cbi5nbHlwaGljb24tdGgtbGlzdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTAxMlwiOyB9XG5cbi5nbHlwaGljb24tb2s6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwMTNcIjsgfVxuXG4uZ2x5cGhpY29uLXJlbW92ZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTAxNFwiOyB9XG5cbi5nbHlwaGljb24tem9vbS1pbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTAxNVwiOyB9XG5cbi5nbHlwaGljb24tem9vbS1vdXQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwMTZcIjsgfVxuXG4uZ2x5cGhpY29uLW9mZjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTAxN1wiOyB9XG5cbi5nbHlwaGljb24tc2lnbmFsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDE4XCI7IH1cblxuLmdseXBoaWNvbi1jb2c6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwMTlcIjsgfVxuXG4uZ2x5cGhpY29uLXRyYXNoOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDIwXCI7IH1cblxuLmdseXBoaWNvbi1ob21lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDIxXCI7IH1cblxuLmdseXBoaWNvbi1maWxlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDIyXCI7IH1cblxuLmdseXBoaWNvbi10aW1lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDIzXCI7IH1cblxuLmdseXBoaWNvbi1yb2FkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDI0XCI7IH1cblxuLmdseXBoaWNvbi1kb3dubG9hZC1hbHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwMjVcIjsgfVxuXG4uZ2x5cGhpY29uLWRvd25sb2FkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDI2XCI7IH1cblxuLmdseXBoaWNvbi11cGxvYWQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwMjdcIjsgfVxuXG4uZ2x5cGhpY29uLWluYm94OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDI4XCI7IH1cblxuLmdseXBoaWNvbi1wbGF5LWNpcmNsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTAyOVwiOyB9XG5cbi5nbHlwaGljb24tcmVwZWF0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDMwXCI7IH1cblxuLmdseXBoaWNvbi1yZWZyZXNoOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDMxXCI7IH1cblxuLmdseXBoaWNvbi1saXN0LWFsdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTAzMlwiOyB9XG5cbi5nbHlwaGljb24tbG9jazpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTAzM1wiOyB9XG5cbi5nbHlwaGljb24tZmxhZzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTAzNFwiOyB9XG5cbi5nbHlwaGljb24taGVhZHBob25lczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTAzNVwiOyB9XG5cbi5nbHlwaGljb24tdm9sdW1lLW9mZjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTAzNlwiOyB9XG5cbi5nbHlwaGljb24tdm9sdW1lLWRvd246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwMzdcIjsgfVxuXG4uZ2x5cGhpY29uLXZvbHVtZS11cDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTAzOFwiOyB9XG5cbi5nbHlwaGljb24tcXJjb2RlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDM5XCI7IH1cblxuLmdseXBoaWNvbi1iYXJjb2RlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDQwXCI7IH1cblxuLmdseXBoaWNvbi10YWc6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwNDFcIjsgfVxuXG4uZ2x5cGhpY29uLXRhZ3M6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwNDJcIjsgfVxuXG4uZ2x5cGhpY29uLWJvb2s6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwNDNcIjsgfVxuXG4uZ2x5cGhpY29uLWJvb2ttYXJrOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDQ0XCI7IH1cblxuLmdseXBoaWNvbi1wcmludDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTA0NVwiOyB9XG5cbi5nbHlwaGljb24tY2FtZXJhOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDQ2XCI7IH1cblxuLmdseXBoaWNvbi1mb250OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDQ3XCI7IH1cblxuLmdseXBoaWNvbi1ib2xkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDQ4XCI7IH1cblxuLmdseXBoaWNvbi1pdGFsaWM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwNDlcIjsgfVxuXG4uZ2x5cGhpY29uLXRleHQtaGVpZ2h0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDUwXCI7IH1cblxuLmdseXBoaWNvbi10ZXh0LXdpZHRoOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDUxXCI7IH1cblxuLmdseXBoaWNvbi1hbGlnbi1sZWZ0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDUyXCI7IH1cblxuLmdseXBoaWNvbi1hbGlnbi1jZW50ZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwNTNcIjsgfVxuXG4uZ2x5cGhpY29uLWFsaWduLXJpZ2h0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDU0XCI7IH1cblxuLmdseXBoaWNvbi1hbGlnbi1qdXN0aWZ5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDU1XCI7IH1cblxuLmdseXBoaWNvbi1saXN0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDU2XCI7IH1cblxuLmdseXBoaWNvbi1pbmRlbnQtbGVmdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTA1N1wiOyB9XG5cbi5nbHlwaGljb24taW5kZW50LXJpZ2h0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDU4XCI7IH1cblxuLmdseXBoaWNvbi1mYWNldGltZS12aWRlbzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTA1OVwiOyB9XG5cbi5nbHlwaGljb24tcGljdHVyZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTA2MFwiOyB9XG5cbi5nbHlwaGljb24tbWFwLW1hcmtlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTA2MlwiOyB9XG5cbi5nbHlwaGljb24tYWRqdXN0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDYzXCI7IH1cblxuLmdseXBoaWNvbi10aW50OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDY0XCI7IH1cblxuLmdseXBoaWNvbi1lZGl0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDY1XCI7IH1cblxuLmdseXBoaWNvbi1zaGFyZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTA2NlwiOyB9XG5cbi5nbHlwaGljb24tY2hlY2s6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwNjdcIjsgfVxuXG4uZ2x5cGhpY29uLW1vdmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwNjhcIjsgfVxuXG4uZ2x5cGhpY29uLXN0ZXAtYmFja3dhcmQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwNjlcIjsgfVxuXG4uZ2x5cGhpY29uLWZhc3QtYmFja3dhcmQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwNzBcIjsgfVxuXG4uZ2x5cGhpY29uLWJhY2t3YXJkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDcxXCI7IH1cblxuLmdseXBoaWNvbi1wbGF5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDcyXCI7IH1cblxuLmdseXBoaWNvbi1wYXVzZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTA3M1wiOyB9XG5cbi5nbHlwaGljb24tc3RvcDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTA3NFwiOyB9XG5cbi5nbHlwaGljb24tZm9yd2FyZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTA3NVwiOyB9XG5cbi5nbHlwaGljb24tZmFzdC1mb3J3YXJkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDc2XCI7IH1cblxuLmdseXBoaWNvbi1zdGVwLWZvcndhcmQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwNzdcIjsgfVxuXG4uZ2x5cGhpY29uLWVqZWN0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDc4XCI7IH1cblxuLmdseXBoaWNvbi1jaGV2cm9uLWxlZnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwNzlcIjsgfVxuXG4uZ2x5cGhpY29uLWNoZXZyb24tcmlnaHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwODBcIjsgfVxuXG4uZ2x5cGhpY29uLXBsdXMtc2lnbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTA4MVwiOyB9XG5cbi5nbHlwaGljb24tbWludXMtc2lnbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTA4MlwiOyB9XG5cbi5nbHlwaGljb24tcmVtb3ZlLXNpZ246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwODNcIjsgfVxuXG4uZ2x5cGhpY29uLW9rLXNpZ246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwODRcIjsgfVxuXG4uZ2x5cGhpY29uLXF1ZXN0aW9uLXNpZ246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwODVcIjsgfVxuXG4uZ2x5cGhpY29uLWluZm8tc2lnbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTA4NlwiOyB9XG5cbi5nbHlwaGljb24tc2NyZWVuc2hvdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTA4N1wiOyB9XG5cbi5nbHlwaGljb24tcmVtb3ZlLWNpcmNsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTA4OFwiOyB9XG5cbi5nbHlwaGljb24tb2stY2lyY2xlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDg5XCI7IH1cblxuLmdseXBoaWNvbi1iYW4tY2lyY2xlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDkwXCI7IH1cblxuLmdseXBoaWNvbi1hcnJvdy1sZWZ0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDkxXCI7IH1cblxuLmdseXBoaWNvbi1hcnJvdy1yaWdodDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTA5MlwiOyB9XG5cbi5nbHlwaGljb24tYXJyb3ctdXA6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwOTNcIjsgfVxuXG4uZ2x5cGhpY29uLWFycm93LWRvd246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwOTRcIjsgfVxuXG4uZ2x5cGhpY29uLXNoYXJlLWFsdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTA5NVwiOyB9XG5cbi5nbHlwaGljb24tcmVzaXplLWZ1bGw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwOTZcIjsgfVxuXG4uZ2x5cGhpY29uLXJlc2l6ZS1zbWFsbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTA5N1wiOyB9XG5cbi5nbHlwaGljb24tZXhjbGFtYXRpb24tc2lnbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTEwMVwiOyB9XG5cbi5nbHlwaGljb24tZ2lmdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTEwMlwiOyB9XG5cbi5nbHlwaGljb24tbGVhZjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTEwM1wiOyB9XG5cbi5nbHlwaGljb24tZmlyZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTEwNFwiOyB9XG5cbi5nbHlwaGljb24tZXllLW9wZW46YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxMDVcIjsgfVxuXG4uZ2x5cGhpY29uLWV5ZS1jbG9zZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTEwNlwiOyB9XG5cbi5nbHlwaGljb24td2FybmluZy1zaWduOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTA3XCI7IH1cblxuLmdseXBoaWNvbi1wbGFuZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTEwOFwiOyB9XG5cbi5nbHlwaGljb24tY2FsZW5kYXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxMDlcIjsgfVxuXG4uZ2x5cGhpY29uLXJhbmRvbTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTExMFwiOyB9XG5cbi5nbHlwaGljb24tY29tbWVudDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTExMVwiOyB9XG5cbi5nbHlwaGljb24tbWFnbmV0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTEyXCI7IH1cblxuLmdseXBoaWNvbi1jaGV2cm9uLXVwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTEzXCI7IH1cblxuLmdseXBoaWNvbi1jaGV2cm9uLWRvd246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxMTRcIjsgfVxuXG4uZ2x5cGhpY29uLXJldHdlZXQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxMTVcIjsgfVxuXG4uZ2x5cGhpY29uLXNob3BwaW5nLWNhcnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxMTZcIjsgfVxuXG4uZ2x5cGhpY29uLWZvbGRlci1jbG9zZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTExN1wiOyB9XG5cbi5nbHlwaGljb24tZm9sZGVyLW9wZW46YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxMThcIjsgfVxuXG4uZ2x5cGhpY29uLXJlc2l6ZS12ZXJ0aWNhbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTExOVwiOyB9XG5cbi5nbHlwaGljb24tcmVzaXplLWhvcml6b250YWw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxMjBcIjsgfVxuXG4uZ2x5cGhpY29uLWhkZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTEyMVwiOyB9XG5cbi5nbHlwaGljb24tYnVsbGhvcm46YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxMjJcIjsgfVxuXG4uZ2x5cGhpY29uLWJlbGw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxMjNcIjsgfVxuXG4uZ2x5cGhpY29uLWNlcnRpZmljYXRlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTI0XCI7IH1cblxuLmdseXBoaWNvbi10aHVtYnMtdXA6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxMjVcIjsgfVxuXG4uZ2x5cGhpY29uLXRodW1icy1kb3duOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTI2XCI7IH1cblxuLmdseXBoaWNvbi1oYW5kLXJpZ2h0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTI3XCI7IH1cblxuLmdseXBoaWNvbi1oYW5kLWxlZnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxMjhcIjsgfVxuXG4uZ2x5cGhpY29uLWhhbmQtdXA6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxMjlcIjsgfVxuXG4uZ2x5cGhpY29uLWhhbmQtZG93bjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTEzMFwiOyB9XG5cbi5nbHlwaGljb24tY2lyY2xlLWFycm93LXJpZ2h0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTMxXCI7IH1cblxuLmdseXBoaWNvbi1jaXJjbGUtYXJyb3ctbGVmdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTEzMlwiOyB9XG5cbi5nbHlwaGljb24tY2lyY2xlLWFycm93LXVwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTMzXCI7IH1cblxuLmdseXBoaWNvbi1jaXJjbGUtYXJyb3ctZG93bjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTEzNFwiOyB9XG5cbi5nbHlwaGljb24tZ2xvYmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxMzVcIjsgfVxuXG4uZ2x5cGhpY29uLXdyZW5jaDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTEzNlwiOyB9XG5cbi5nbHlwaGljb24tdGFza3M6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxMzdcIjsgfVxuXG4uZ2x5cGhpY29uLWZpbHRlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTEzOFwiOyB9XG5cbi5nbHlwaGljb24tYnJpZWZjYXNlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTM5XCI7IH1cblxuLmdseXBoaWNvbi1mdWxsc2NyZWVuOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTQwXCI7IH1cblxuLmdseXBoaWNvbi1kYXNoYm9hcmQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxNDFcIjsgfVxuXG4uZ2x5cGhpY29uLXBhcGVyY2xpcDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTE0MlwiOyB9XG5cbi5nbHlwaGljb24taGVhcnQtZW1wdHk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxNDNcIjsgfVxuXG4uZ2x5cGhpY29uLWxpbms6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxNDRcIjsgfVxuXG4uZ2x5cGhpY29uLXBob25lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTQ1XCI7IH1cblxuLmdseXBoaWNvbi1wdXNocGluOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTQ2XCI7IH1cblxuLmdseXBoaWNvbi11c2Q6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxNDhcIjsgfVxuXG4uZ2x5cGhpY29uLWdicDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTE0OVwiOyB9XG5cbi5nbHlwaGljb24tc29ydDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTE1MFwiOyB9XG5cbi5nbHlwaGljb24tc29ydC1ieS1hbHBoYWJldDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTE1MVwiOyB9XG5cbi5nbHlwaGljb24tc29ydC1ieS1hbHBoYWJldC1hbHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxNTJcIjsgfVxuXG4uZ2x5cGhpY29uLXNvcnQtYnktb3JkZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxNTNcIjsgfVxuXG4uZ2x5cGhpY29uLXNvcnQtYnktb3JkZXItYWx0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTU0XCI7IH1cblxuLmdseXBoaWNvbi1zb3J0LWJ5LWF0dHJpYnV0ZXM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxNTVcIjsgfVxuXG4uZ2x5cGhpY29uLXNvcnQtYnktYXR0cmlidXRlcy1hbHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxNTZcIjsgfVxuXG4uZ2x5cGhpY29uLXVuY2hlY2tlZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTE1N1wiOyB9XG5cbi5nbHlwaGljb24tZXhwYW5kOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTU4XCI7IH1cblxuLmdseXBoaWNvbi1jb2xsYXBzZS1kb3duOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTU5XCI7IH1cblxuLmdseXBoaWNvbi1jb2xsYXBzZS11cDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTE2MFwiOyB9XG5cbi5nbHlwaGljb24tbG9nLWluOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTYxXCI7IH1cblxuLmdseXBoaWNvbi1mbGFzaDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTE2MlwiOyB9XG5cbi5nbHlwaGljb24tbG9nLW91dDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTE2M1wiOyB9XG5cbi5nbHlwaGljb24tbmV3LXdpbmRvdzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTE2NFwiOyB9XG5cbi5nbHlwaGljb24tcmVjb3JkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTY1XCI7IH1cblxuLmdseXBoaWNvbi1zYXZlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTY2XCI7IH1cblxuLmdseXBoaWNvbi1vcGVuOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTY3XCI7IH1cblxuLmdseXBoaWNvbi1zYXZlZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTE2OFwiOyB9XG5cbi5nbHlwaGljb24taW1wb3J0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTY5XCI7IH1cblxuLmdseXBoaWNvbi1leHBvcnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxNzBcIjsgfVxuXG4uZ2x5cGhpY29uLXNlbmQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxNzFcIjsgfVxuXG4uZ2x5cGhpY29uLWZsb3BweS1kaXNrOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTcyXCI7IH1cblxuLmdseXBoaWNvbi1mbG9wcHktc2F2ZWQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxNzNcIjsgfVxuXG4uZ2x5cGhpY29uLWZsb3BweS1yZW1vdmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxNzRcIjsgfVxuXG4uZ2x5cGhpY29uLWZsb3BweS1zYXZlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTc1XCI7IH1cblxuLmdseXBoaWNvbi1mbG9wcHktb3BlbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTE3NlwiOyB9XG5cbi5nbHlwaGljb24tY3JlZGl0LWNhcmQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxNzdcIjsgfVxuXG4uZ2x5cGhpY29uLXRyYW5zZmVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTc4XCI7IH1cblxuLmdseXBoaWNvbi1jdXRsZXJ5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTc5XCI7IH1cblxuLmdseXBoaWNvbi1oZWFkZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxODBcIjsgfVxuXG4uZ2x5cGhpY29uLWNvbXByZXNzZWQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxODFcIjsgfVxuXG4uZ2x5cGhpY29uLWVhcnBob25lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTgyXCI7IH1cblxuLmdseXBoaWNvbi1waG9uZS1hbHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxODNcIjsgfVxuXG4uZ2x5cGhpY29uLXRvd2VyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTg0XCI7IH1cblxuLmdseXBoaWNvbi1zdGF0czpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTE4NVwiOyB9XG5cbi5nbHlwaGljb24tc2QtdmlkZW86YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxODZcIjsgfVxuXG4uZ2x5cGhpY29uLWhkLXZpZGVvOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTg3XCI7IH1cblxuLmdseXBoaWNvbi1zdWJ0aXRsZXM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxODhcIjsgfVxuXG4uZ2x5cGhpY29uLXNvdW5kLXN0ZXJlbzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTE4OVwiOyB9XG5cbi5nbHlwaGljb24tc291bmQtZG9sYnk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxOTBcIjsgfVxuXG4uZ2x5cGhpY29uLXNvdW5kLTUtMTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTE5MVwiOyB9XG5cbi5nbHlwaGljb24tc291bmQtNi0xOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTkyXCI7IH1cblxuLmdseXBoaWNvbi1zb3VuZC03LTE6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxOTNcIjsgfVxuXG4uZ2x5cGhpY29uLWNvcHlyaWdodC1tYXJrOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTk0XCI7IH1cblxuLmdseXBoaWNvbi1yZWdpc3RyYXRpb24tbWFyazpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTE5NVwiOyB9XG5cbi5nbHlwaGljb24tY2xvdWQtZG93bmxvYWQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUxOTdcIjsgfVxuXG4uZ2x5cGhpY29uLWNsb3VkLXVwbG9hZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTE5OFwiOyB9XG5cbi5nbHlwaGljb24tdHJlZS1jb25pZmVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMTk5XCI7IH1cblxuLmdseXBoaWNvbi10cmVlLWRlY2lkdW91czpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTIwMFwiOyB9XG5cbi5nbHlwaGljb24tY2Q6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUyMDFcIjsgfVxuXG4uZ2x5cGhpY29uLXNhdmUtZmlsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTIwMlwiOyB9XG5cbi5nbHlwaGljb24tb3Blbi1maWxlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMjAzXCI7IH1cblxuLmdseXBoaWNvbi1sZXZlbC11cDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTIwNFwiOyB9XG5cbi5nbHlwaGljb24tY29weTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTIwNVwiOyB9XG5cbi5nbHlwaGljb24tcGFzdGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUyMDZcIjsgfVxuXG4uZ2x5cGhpY29uLWFsZXJ0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMjA5XCI7IH1cblxuLmdseXBoaWNvbi1lcXVhbGl6ZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUyMTBcIjsgfVxuXG4uZ2x5cGhpY29uLWtpbmc6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUyMTFcIjsgfVxuXG4uZ2x5cGhpY29uLXF1ZWVuOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMjEyXCI7IH1cblxuLmdseXBoaWNvbi1wYXduOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMjEzXCI7IH1cblxuLmdseXBoaWNvbi1iaXNob3A6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUyMTRcIjsgfVxuXG4uZ2x5cGhpY29uLWtuaWdodDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTIxNVwiOyB9XG5cbi5nbHlwaGljb24tYmFieS1mb3JtdWxhOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMjE2XCI7IH1cblxuLmdseXBoaWNvbi10ZW50OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFwyNmZhXCI7IH1cblxuLmdseXBoaWNvbi1ibGFja2JvYXJkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMjE4XCI7IH1cblxuLmdseXBoaWNvbi1iZWQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUyMTlcIjsgfVxuXG4uZ2x5cGhpY29uLWFwcGxlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmOGZmXCI7IH1cblxuLmdseXBoaWNvbi1lcmFzZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTIyMVwiOyB9XG5cbi5nbHlwaGljb24taG91cmdsYXNzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFwyMzFiXCI7IH1cblxuLmdseXBoaWNvbi1sYW1wOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMjIzXCI7IH1cblxuLmdseXBoaWNvbi1kdXBsaWNhdGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUyMjRcIjsgfVxuXG4uZ2x5cGhpY29uLXBpZ2d5LWJhbms6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUyMjVcIjsgfVxuXG4uZ2x5cGhpY29uLXNjaXNzb3JzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMjI2XCI7IH1cblxuLmdseXBoaWNvbi1iaXRjb2luOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMjI3XCI7IH1cblxuLmdseXBoaWNvbi1idGM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUyMjdcIjsgfVxuXG4uZ2x5cGhpY29uLXhidDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTIyN1wiOyB9XG5cbi5nbHlwaGljb24teWVuOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFwwMGE1XCI7IH1cblxuLmdseXBoaWNvbi1qcHk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXDAwYTVcIjsgfVxuXG4uZ2x5cGhpY29uLXJ1YmxlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFwyMGJkXCI7IH1cblxuLmdseXBoaWNvbi1ydWI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXDIwYmRcIjsgfVxuXG4uZ2x5cGhpY29uLXNjYWxlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMjMwXCI7IH1cblxuLmdseXBoaWNvbi1pY2UtbG9sbHk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUyMzFcIjsgfVxuXG4uZ2x5cGhpY29uLWljZS1sb2xseS10YXN0ZWQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUyMzJcIjsgfVxuXG4uZ2x5cGhpY29uLWVkdWNhdGlvbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTIzM1wiOyB9XG5cbi5nbHlwaGljb24tb3B0aW9uLWhvcml6b250YWw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUyMzRcIjsgfVxuXG4uZ2x5cGhpY29uLW9wdGlvbi12ZXJ0aWNhbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTIzNVwiOyB9XG5cbi5nbHlwaGljb24tbWVudS1oYW1idXJnZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUyMzZcIjsgfVxuXG4uZ2x5cGhpY29uLW1vZGFsLXdpbmRvdzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTIzN1wiOyB9XG5cbi5nbHlwaGljb24tb2lsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMjM4XCI7IH1cblxuLmdseXBoaWNvbi1ncmFpbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTIzOVwiOyB9XG5cbi5nbHlwaGljb24tc3VuZ2xhc3NlczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTI0MFwiOyB9XG5cbi5nbHlwaGljb24tdGV4dC1zaXplOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMjQxXCI7IH1cblxuLmdseXBoaWNvbi10ZXh0LWNvbG9yOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMjQyXCI7IH1cblxuLmdseXBoaWNvbi10ZXh0LWJhY2tncm91bmQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUyNDNcIjsgfVxuXG4uZ2x5cGhpY29uLW9iamVjdC1hbGlnbi10b3A6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUyNDRcIjsgfVxuXG4uZ2x5cGhpY29uLW9iamVjdC1hbGlnbi1ib3R0b206YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUyNDVcIjsgfVxuXG4uZ2x5cGhpY29uLW9iamVjdC1hbGlnbi1ob3Jpem9udGFsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMjQ2XCI7IH1cblxuLmdseXBoaWNvbi1vYmplY3QtYWxpZ24tbGVmdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTI0N1wiOyB9XG5cbi5nbHlwaGljb24tb2JqZWN0LWFsaWduLXZlcnRpY2FsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMjQ4XCI7IH1cblxuLmdseXBoaWNvbi1vYmplY3QtYWxpZ24tcmlnaHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUyNDlcIjsgfVxuXG4uZ2x5cGhpY29uLXRyaWFuZ2xlLXJpZ2h0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMjUwXCI7IH1cblxuLmdseXBoaWNvbi10cmlhbmdsZS1sZWZ0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMjUxXCI7IH1cblxuLmdseXBoaWNvbi10cmlhbmdsZS1ib3R0b206YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUyNTJcIjsgfVxuXG4uZ2x5cGhpY29uLXRyaWFuZ2xlLXRvcDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTI1M1wiOyB9XG5cbi5nbHlwaGljb24tY29uc29sZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTI1NFwiOyB9XG5cbi5nbHlwaGljb24tc3VwZXJzY3JpcHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUyNTVcIjsgfVxuXG4uZ2x5cGhpY29uLXN1YnNjcmlwdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTI1NlwiOyB9XG5cbi5nbHlwaGljb24tbWVudS1sZWZ0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMjU3XCI7IH1cblxuLmdseXBoaWNvbi1tZW51LXJpZ2h0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMjU4XCI7IH1cblxuLmdseXBoaWNvbi1tZW51LWRvd246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUyNTlcIjsgfVxuXG4uZ2x5cGhpY29uLW1lbnUtdXA6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUyNjBcIjsgfVxuXG4qIHtcbiAgLXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAtbW96LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IH1cblxuKjpiZWZvcmUsXG4qOmFmdGVyIHtcbiAgLXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAtbW96LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IH1cblxuaHRtbCB7XG4gIGZvbnQtc2l6ZTogMTBweDtcbiAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiByZ2JhKDAsIDAsIDAsIDApOyB9XG5cbmJvZHkge1xuICBmb250LWZhbWlseTogXCJIZWx2ZXRpY2EgTmV1ZVwiLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDE0cHg7XG4gIGxpbmUtaGVpZ2h0OiAxLjQyODU3O1xuICBjb2xvcjogIzMzMzMzMztcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsgfVxuXG5pbnB1dCxcbmJ1dHRvbixcbnNlbGVjdCxcbnRleHRhcmVhIHtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7IH1cblxuYSB7XG4gIGNvbG9yOiAjMzM3YWI3O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cbiAgYTpob3ZlciwgYTpmb2N1cyB7XG4gICAgY29sb3I6ICMyMzUyN2M7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IH1cbiAgYTpmb2N1cyB7XG4gICAgb3V0bGluZTogNXB4IGF1dG8gLXdlYmtpdC1mb2N1cy1yaW5nLWNvbG9yO1xuICAgIG91dGxpbmUtb2Zmc2V0OiAtMnB4OyB9XG5cbmZpZ3VyZSB7XG4gIG1hcmdpbjogMDsgfVxuXG5pbWcge1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyB9XG5cbi5pbWctcmVzcG9uc2l2ZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogYXV0bzsgfVxuXG4uaW1nLXJvdW5kZWQge1xuICBib3JkZXItcmFkaXVzOiA2cHg7IH1cblxuLmltZy10aHVtYm5haWwge1xuICBwYWRkaW5nOiA0cHg7XG4gIGxpbmUtaGVpZ2h0OiAxLjQyODU3O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBib3JkZXI6IDFweCBzb2xpZCAjZGRkO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIC13ZWJraXQtdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZS1pbi1vdXQ7XG4gIC1vLXRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2UtaW4tb3V0O1xuICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlLWluLW91dDtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogYXV0bzsgfVxuXG4uaW1nLWNpcmNsZSB7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTsgfVxuXG5ociB7XG4gIG1hcmdpbi10b3A6IDIwcHg7XG4gIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gIGJvcmRlcjogMDtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNlZWVlZWU7IH1cblxuLnNyLW9ubHkge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiAxcHg7XG4gIGhlaWdodDogMXB4O1xuICBtYXJnaW46IC0xcHg7XG4gIHBhZGRpbmc6IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGNsaXA6IHJlY3QoMCwgMCwgMCwgMCk7XG4gIGJvcmRlcjogMDsgfVxuXG4uc3Itb25seS1mb2N1c2FibGU6YWN0aXZlLCAuc3Itb25seS1mb2N1c2FibGU6Zm9jdXMge1xuICBwb3NpdGlvbjogc3RhdGljO1xuICB3aWR0aDogYXV0bztcbiAgaGVpZ2h0OiBhdXRvO1xuICBtYXJnaW46IDA7XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xuICBjbGlwOiBhdXRvOyB9XG5cbltyb2xlPVwiYnV0dG9uXCJdIHtcbiAgY3Vyc29yOiBwb2ludGVyOyB9XG5cbmgxLCBoMiwgaDMsIGg0LCBoNSwgaDYsXG4uaDEsIC5oMiwgLmgzLCAuaDQsIC5oNSwgLmg2IHtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjE7XG4gIGNvbG9yOiBpbmhlcml0OyB9XG4gIGgxIHNtYWxsLFxuICBoMSAuc21hbGwsIGgyIHNtYWxsLFxuICBoMiAuc21hbGwsIGgzIHNtYWxsLFxuICBoMyAuc21hbGwsIGg0IHNtYWxsLFxuICBoNCAuc21hbGwsIGg1IHNtYWxsLFxuICBoNSAuc21hbGwsIGg2IHNtYWxsLFxuICBoNiAuc21hbGwsXG4gIC5oMSBzbWFsbCxcbiAgLmgxIC5zbWFsbCwgLmgyIHNtYWxsLFxuICAuaDIgLnNtYWxsLCAuaDMgc21hbGwsXG4gIC5oMyAuc21hbGwsIC5oNCBzbWFsbCxcbiAgLmg0IC5zbWFsbCwgLmg1IHNtYWxsLFxuICAuaDUgLnNtYWxsLCAuaDYgc21hbGwsXG4gIC5oNiAuc21hbGwge1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgY29sb3I6ICM3Nzc3Nzc7IH1cblxuaDEsIC5oMSxcbmgyLCAuaDIsXG5oMywgLmgzIHtcbiAgbWFyZ2luLXRvcDogMjBweDtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDsgfVxuICBoMSBzbWFsbCxcbiAgaDEgLnNtYWxsLCAuaDEgc21hbGwsXG4gIC5oMSAuc21hbGwsXG4gIGgyIHNtYWxsLFxuICBoMiAuc21hbGwsIC5oMiBzbWFsbCxcbiAgLmgyIC5zbWFsbCxcbiAgaDMgc21hbGwsXG4gIGgzIC5zbWFsbCwgLmgzIHNtYWxsLFxuICAuaDMgLnNtYWxsIHtcbiAgICBmb250LXNpemU6IDY1JTsgfVxuXG5oNCwgLmg0LFxuaDUsIC5oNSxcbmg2LCAuaDYge1xuICBtYXJnaW4tdG9wOiAxMHB4O1xuICBtYXJnaW4tYm90dG9tOiAxMHB4OyB9XG4gIGg0IHNtYWxsLFxuICBoNCAuc21hbGwsIC5oNCBzbWFsbCxcbiAgLmg0IC5zbWFsbCxcbiAgaDUgc21hbGwsXG4gIGg1IC5zbWFsbCwgLmg1IHNtYWxsLFxuICAuaDUgLnNtYWxsLFxuICBoNiBzbWFsbCxcbiAgaDYgLnNtYWxsLCAuaDYgc21hbGwsXG4gIC5oNiAuc21hbGwge1xuICAgIGZvbnQtc2l6ZTogNzUlOyB9XG5cbmgxLCAuaDEge1xuICBmb250LXNpemU6IDM2cHg7IH1cblxuaDIsIC5oMiB7XG4gIGZvbnQtc2l6ZTogMzBweDsgfVxuXG5oMywgLmgzIHtcbiAgZm9udC1zaXplOiAyNHB4OyB9XG5cbmg0LCAuaDQge1xuICBmb250LXNpemU6IDE4cHg7IH1cblxuaDUsIC5oNSB7XG4gIGZvbnQtc2l6ZTogMTRweDsgfVxuXG5oNiwgLmg2IHtcbiAgZm9udC1zaXplOiAxMnB4OyB9XG5cbnAge1xuICBtYXJnaW46IDAgMCAxMHB4OyB9XG5cbi5sZWFkIHtcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBmb250LXdlaWdodDogMzAwO1xuICBsaW5lLWhlaWdodDogMS40OyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAgIC5sZWFkIHtcbiAgICAgIGZvbnQtc2l6ZTogMjFweDsgfSB9XG5cbnNtYWxsLFxuLnNtYWxsIHtcbiAgZm9udC1zaXplOiA4NSU7IH1cblxubWFyayxcbi5tYXJrIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZjZjhlMztcbiAgcGFkZGluZzogLjJlbTsgfVxuXG4udGV4dC1sZWZ0IHtcbiAgdGV4dC1hbGlnbjogbGVmdDsgfVxuXG4udGV4dC1yaWdodCB7XG4gIHRleHQtYWxpZ246IHJpZ2h0OyB9XG5cbi50ZXh0LWNlbnRlciB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuXG4udGV4dC1qdXN0aWZ5IHtcbiAgdGV4dC1hbGlnbjoganVzdGlmeTsgfVxuXG4udGV4dC1ub3dyYXAge1xuICB3aGl0ZS1zcGFjZTogbm93cmFwOyB9XG5cbi50ZXh0LWxvd2VyY2FzZSB7XG4gIHRleHQtdHJhbnNmb3JtOiBsb3dlcmNhc2U7IH1cblxuLnRleHQtdXBwZXJjYXNlLCAuaW5pdGlhbGlzbSB7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IH1cblxuLnRleHQtY2FwaXRhbGl6ZSB7XG4gIHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplOyB9XG5cbi50ZXh0LW11dGVkIHtcbiAgY29sb3I6ICM3Nzc3Nzc7IH1cblxuLnRleHQtcHJpbWFyeSB7XG4gIGNvbG9yOiAjMzM3YWI3OyB9XG5cbmEudGV4dC1wcmltYXJ5OmhvdmVyLFxuYS50ZXh0LXByaW1hcnk6Zm9jdXMge1xuICBjb2xvcjogIzI4NjA5MDsgfVxuXG4udGV4dC1zdWNjZXNzIHtcbiAgY29sb3I6ICMzYzc2M2Q7IH1cblxuYS50ZXh0LXN1Y2Nlc3M6aG92ZXIsXG5hLnRleHQtc3VjY2Vzczpmb2N1cyB7XG4gIGNvbG9yOiAjMmI1NDJjOyB9XG5cbi50ZXh0LWluZm8ge1xuICBjb2xvcjogIzMxNzA4ZjsgfVxuXG5hLnRleHQtaW5mbzpob3ZlcixcbmEudGV4dC1pbmZvOmZvY3VzIHtcbiAgY29sb3I6ICMyNDUyNjk7IH1cblxuLnRleHQtd2FybmluZyB7XG4gIGNvbG9yOiAjOGE2ZDNiOyB9XG5cbmEudGV4dC13YXJuaW5nOmhvdmVyLFxuYS50ZXh0LXdhcm5pbmc6Zm9jdXMge1xuICBjb2xvcjogIzY2NTEyYzsgfVxuXG4udGV4dC1kYW5nZXIge1xuICBjb2xvcjogI2E5NDQ0MjsgfVxuXG5hLnRleHQtZGFuZ2VyOmhvdmVyLFxuYS50ZXh0LWRhbmdlcjpmb2N1cyB7XG4gIGNvbG9yOiAjODQzNTM0OyB9XG5cbi5iZy1wcmltYXJ5IHtcbiAgY29sb3I6ICNmZmY7IH1cblxuLmJnLXByaW1hcnkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzM3YWI3OyB9XG5cbmEuYmctcHJpbWFyeTpob3ZlcixcbmEuYmctcHJpbWFyeTpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyODYwOTA7IH1cblxuLmJnLXN1Y2Nlc3Mge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGZmMGQ4OyB9XG5cbmEuYmctc3VjY2Vzczpob3ZlcixcbmEuYmctc3VjY2Vzczpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjMWUyYjM7IH1cblxuLmJnLWluZm8ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDllZGY3OyB9XG5cbmEuYmctaW5mbzpob3ZlcixcbmEuYmctaW5mbzpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNhZmQ5ZWU7IH1cblxuLmJnLXdhcm5pbmcge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmNmOGUzOyB9XG5cbmEuYmctd2FybmluZzpob3ZlcixcbmEuYmctd2FybmluZzpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmN2VjYjU7IH1cblxuLmJnLWRhbmdlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmMmRlZGU7IH1cblxuYS5iZy1kYW5nZXI6aG92ZXIsXG5hLmJnLWRhbmdlcjpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlNGI5Yjk7IH1cblxuLnBhZ2UtaGVhZGVyIHtcbiAgcGFkZGluZy1ib3R0b206IDlweDtcbiAgbWFyZ2luOiA0MHB4IDAgMjBweDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlZWVlZWU7IH1cblxudWwsXG5vbCB7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7IH1cbiAgdWwgdWwsXG4gIHVsIG9sLFxuICBvbCB1bCxcbiAgb2wgb2wge1xuICAgIG1hcmdpbi1ib3R0b206IDA7IH1cblxuLmxpc3QtdW5zdHlsZWQge1xuICBwYWRkaW5nLWxlZnQ6IDA7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7IH1cblxuLmxpc3QtaW5saW5lIHtcbiAgcGFkZGluZy1sZWZ0OiAwO1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBtYXJnaW4tbGVmdDogLTVweDsgfVxuICAubGlzdC1pbmxpbmUgPiBsaSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHBhZGRpbmctbGVmdDogNXB4O1xuICAgIHBhZGRpbmctcmlnaHQ6IDVweDsgfVxuXG5kbCB7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1ib3R0b206IDIwcHg7IH1cblxuZHQsXG5kZCB7XG4gIGxpbmUtaGVpZ2h0OiAxLjQyODU3OyB9XG5cbmR0IHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7IH1cblxuZGQge1xuICBtYXJnaW4tbGVmdDogMDsgfVxuXG4uZGwtaG9yaXpvbnRhbCBkZDpiZWZvcmUsIC5kbC1ob3Jpem9udGFsIGRkOmFmdGVyIHtcbiAgY29udGVudDogXCIgXCI7XG4gIGRpc3BsYXk6IHRhYmxlOyB9XG5cbi5kbC1ob3Jpem9udGFsIGRkOmFmdGVyIHtcbiAgY2xlYXI6IGJvdGg7IH1cblxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5kbC1ob3Jpem9udGFsIGR0IHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICB3aWR0aDogMTYwcHg7XG4gICAgY2xlYXI6IGxlZnQ7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwOyB9XG4gIC5kbC1ob3Jpem9udGFsIGRkIHtcbiAgICBtYXJnaW4tbGVmdDogMTgwcHg7IH0gfVxuXG5hYmJyW3RpdGxlXSxcbmFiYnJbZGF0YS1vcmlnaW5hbC10aXRsZV0ge1xuICBjdXJzb3I6IGhlbHA7XG4gIGJvcmRlci1ib3R0b206IDFweCBkb3R0ZWQgIzc3Nzc3NzsgfVxuXG4uaW5pdGlhbGlzbSB7XG4gIGZvbnQtc2l6ZTogOTAlOyB9XG5cbmJsb2NrcXVvdGUge1xuICBwYWRkaW5nOiAxMHB4IDIwcHg7XG4gIG1hcmdpbjogMCAwIDIwcHg7XG4gIGZvbnQtc2l6ZTogMTcuNXB4O1xuICBib3JkZXItbGVmdDogNXB4IHNvbGlkICNlZWVlZWU7IH1cbiAgYmxvY2txdW90ZSBwOmxhc3QtY2hpbGQsXG4gIGJsb2NrcXVvdGUgdWw6bGFzdC1jaGlsZCxcbiAgYmxvY2txdW90ZSBvbDpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG4gIGJsb2NrcXVvdGUgZm9vdGVyLFxuICBibG9ja3F1b3RlIHNtYWxsLFxuICBibG9ja3F1b3RlIC5zbWFsbCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZm9udC1zaXplOiA4MCU7XG4gICAgbGluZS1oZWlnaHQ6IDEuNDI4NTc7XG4gICAgY29sb3I6ICM3Nzc3Nzc7IH1cbiAgICBibG9ja3F1b3RlIGZvb3RlcjpiZWZvcmUsXG4gICAgYmxvY2txdW90ZSBzbWFsbDpiZWZvcmUsXG4gICAgYmxvY2txdW90ZSAuc21hbGw6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6ICdcXDIwMTQgXFwwMEEwJzsgfVxuXG4uYmxvY2txdW90ZS1yZXZlcnNlLFxuYmxvY2txdW90ZS5wdWxsLXJpZ2h0IHtcbiAgcGFkZGluZy1yaWdodDogMTVweDtcbiAgcGFkZGluZy1sZWZ0OiAwO1xuICBib3JkZXItcmlnaHQ6IDVweCBzb2xpZCAjZWVlZWVlO1xuICBib3JkZXItbGVmdDogMDtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7IH1cbiAgLmJsb2NrcXVvdGUtcmV2ZXJzZSBmb290ZXI6YmVmb3JlLFxuICAuYmxvY2txdW90ZS1yZXZlcnNlIHNtYWxsOmJlZm9yZSxcbiAgLmJsb2NrcXVvdGUtcmV2ZXJzZSAuc21hbGw6YmVmb3JlLFxuICBibG9ja3F1b3RlLnB1bGwtcmlnaHQgZm9vdGVyOmJlZm9yZSxcbiAgYmxvY2txdW90ZS5wdWxsLXJpZ2h0IHNtYWxsOmJlZm9yZSxcbiAgYmxvY2txdW90ZS5wdWxsLXJpZ2h0IC5zbWFsbDpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICcnOyB9XG4gIC5ibG9ja3F1b3RlLXJldmVyc2UgZm9vdGVyOmFmdGVyLFxuICAuYmxvY2txdW90ZS1yZXZlcnNlIHNtYWxsOmFmdGVyLFxuICAuYmxvY2txdW90ZS1yZXZlcnNlIC5zbWFsbDphZnRlcixcbiAgYmxvY2txdW90ZS5wdWxsLXJpZ2h0IGZvb3RlcjphZnRlcixcbiAgYmxvY2txdW90ZS5wdWxsLXJpZ2h0IHNtYWxsOmFmdGVyLFxuICBibG9ja3F1b3RlLnB1bGwtcmlnaHQgLnNtYWxsOmFmdGVyIHtcbiAgICBjb250ZW50OiAnXFwwMEEwIFxcMjAxNCc7IH1cblxuYWRkcmVzcyB7XG4gIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgbGluZS1oZWlnaHQ6IDEuNDI4NTc7IH1cblxuY29kZSxcbmtiZCxcbnByZSxcbnNhbXAge1xuICBmb250LWZhbWlseTogTWVubG8sIE1vbmFjbywgQ29uc29sYXMsIFwiQ291cmllciBOZXdcIiwgbW9ub3NwYWNlOyB9XG5cbmNvZGUge1xuICBwYWRkaW5nOiAycHggNHB4O1xuICBmb250LXNpemU6IDkwJTtcbiAgY29sb3I6ICNjNzI1NGU7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmOWYyZjQ7XG4gIGJvcmRlci1yYWRpdXM6IDRweDsgfVxuXG5rYmQge1xuICBwYWRkaW5nOiAycHggNHB4O1xuICBmb250LXNpemU6IDkwJTtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzMzM7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAtMXB4IDAgcmdiYSgwLCAwLCAwLCAwLjI1KTsgfVxuICBrYmQga2JkIHtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGZvbnQtc2l6ZTogMTAwJTtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBib3gtc2hhZG93OiBub25lOyB9XG5cbnByZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwYWRkaW5nOiA5LjVweDtcbiAgbWFyZ2luOiAwIDAgMTBweDtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBsaW5lLWhlaWdodDogMS40Mjg1NztcbiAgd29yZC1icmVhazogYnJlYWstYWxsO1xuICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG4gIGNvbG9yOiAjMzMzMzMzO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjVmNWY1O1xuICBib3JkZXI6IDFweCBzb2xpZCAjY2NjO1xuICBib3JkZXItcmFkaXVzOiA0cHg7IH1cbiAgcHJlIGNvZGUge1xuICAgIHBhZGRpbmc6IDA7XG4gICAgZm9udC1zaXplOiBpbmhlcml0O1xuICAgIGNvbG9yOiBpbmhlcml0O1xuICAgIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItcmFkaXVzOiAwOyB9XG5cbi5wcmUtc2Nyb2xsYWJsZSB7XG4gIG1heC1oZWlnaHQ6IDM0MHB4O1xuICBvdmVyZmxvdy15OiBzY3JvbGw7IH1cblxuLmNvbnRhaW5lciB7XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIHBhZGRpbmctbGVmdDogMTVweDtcbiAgcGFkZGluZy1yaWdodDogMTVweDsgfVxuICAuY29udGFpbmVyOmJlZm9yZSwgLmNvbnRhaW5lcjphZnRlciB7XG4gICAgY29udGVudDogXCIgXCI7XG4gICAgZGlzcGxheTogdGFibGU7IH1cbiAgLmNvbnRhaW5lcjphZnRlciB7XG4gICAgY2xlYXI6IGJvdGg7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gICAgLmNvbnRhaW5lciB7XG4gICAgICB3aWR0aDogNzUwcHg7IH0gfVxuICBAbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgICAuY29udGFpbmVyIHtcbiAgICAgIHdpZHRoOiA5NzBweDsgfSB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiAxMjAwcHgpIHtcbiAgICAuY29udGFpbmVyIHtcbiAgICAgIHdpZHRoOiAxMTcwcHg7IH0gfVxuXG4uY29udGFpbmVyLWZsdWlkIHtcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgcGFkZGluZy1sZWZ0OiAxNXB4O1xuICBwYWRkaW5nLXJpZ2h0OiAxNXB4OyB9XG4gIC5jb250YWluZXItZmx1aWQ6YmVmb3JlLCAuY29udGFpbmVyLWZsdWlkOmFmdGVyIHtcbiAgICBjb250ZW50OiBcIiBcIjtcbiAgICBkaXNwbGF5OiB0YWJsZTsgfVxuICAuY29udGFpbmVyLWZsdWlkOmFmdGVyIHtcbiAgICBjbGVhcjogYm90aDsgfVxuXG4ucm93IHtcbiAgbWFyZ2luLWxlZnQ6IC0xNXB4O1xuICBtYXJnaW4tcmlnaHQ6IC0xNXB4OyB9XG4gIC5yb3c6YmVmb3JlLCAucm93OmFmdGVyIHtcbiAgICBjb250ZW50OiBcIiBcIjtcbiAgICBkaXNwbGF5OiB0YWJsZTsgfVxuICAucm93OmFmdGVyIHtcbiAgICBjbGVhcjogYm90aDsgfVxuXG4uY29sLXhzLTEsIC5jb2wtc20tMSwgLmNvbC1tZC0xLCAuY29sLWxnLTEsIC5jb2wteHMtMiwgLmNvbC1zbS0yLCAuY29sLW1kLTIsIC5jb2wtbGctMiwgLmNvbC14cy0zLCAuY29sLXNtLTMsIC5jb2wtbWQtMywgLmNvbC1sZy0zLCAuY29sLXhzLTQsIC5jb2wtc20tNCwgLmNvbC1tZC00LCAuY29sLWxnLTQsIC5jb2wteHMtNSwgLmNvbC1zbS01LCAuY29sLW1kLTUsIC5jb2wtbGctNSwgLmNvbC14cy02LCAuY29sLXNtLTYsIC5jb2wtbWQtNiwgLmNvbC1sZy02LCAuY29sLXhzLTcsIC5jb2wtc20tNywgLmNvbC1tZC03LCAuY29sLWxnLTcsIC5jb2wteHMtOCwgLmNvbC1zbS04LCAuY29sLW1kLTgsIC5jb2wtbGctOCwgLmNvbC14cy05LCAuY29sLXNtLTksIC5jb2wtbWQtOSwgLmNvbC1sZy05LCAuY29sLXhzLTEwLCAuY29sLXNtLTEwLCAuY29sLW1kLTEwLCAuY29sLWxnLTEwLCAuY29sLXhzLTExLCAuY29sLXNtLTExLCAuY29sLW1kLTExLCAuY29sLWxnLTExLCAuY29sLXhzLTEyLCAuY29sLXNtLTEyLCAuY29sLW1kLTEyLCAuY29sLWxnLTEyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtaW4taGVpZ2h0OiAxcHg7XG4gIHBhZGRpbmctbGVmdDogMTVweDtcbiAgcGFkZGluZy1yaWdodDogMTVweDsgfVxuXG4uY29sLXhzLTEsIC5jb2wteHMtMiwgLmNvbC14cy0zLCAuY29sLXhzLTQsIC5jb2wteHMtNSwgLmNvbC14cy02LCAuY29sLXhzLTcsIC5jb2wteHMtOCwgLmNvbC14cy05LCAuY29sLXhzLTEwLCAuY29sLXhzLTExLCAuY29sLXhzLTEyIHtcbiAgZmxvYXQ6IGxlZnQ7IH1cblxuLmNvbC14cy0xIHtcbiAgd2lkdGg6IDguMzMzMzMlOyB9XG5cbi5jb2wteHMtMiB7XG4gIHdpZHRoOiAxNi42NjY2NyU7IH1cblxuLmNvbC14cy0zIHtcbiAgd2lkdGg6IDI1JTsgfVxuXG4uY29sLXhzLTQge1xuICB3aWR0aDogMzMuMzMzMzMlOyB9XG5cbi5jb2wteHMtNSB7XG4gIHdpZHRoOiA0MS42NjY2NyU7IH1cblxuLmNvbC14cy02IHtcbiAgd2lkdGg6IDUwJTsgfVxuXG4uY29sLXhzLTcge1xuICB3aWR0aDogNTguMzMzMzMlOyB9XG5cbi5jb2wteHMtOCB7XG4gIHdpZHRoOiA2Ni42NjY2NyU7IH1cblxuLmNvbC14cy05IHtcbiAgd2lkdGg6IDc1JTsgfVxuXG4uY29sLXhzLTEwIHtcbiAgd2lkdGg6IDgzLjMzMzMzJTsgfVxuXG4uY29sLXhzLTExIHtcbiAgd2lkdGg6IDkxLjY2NjY3JTsgfVxuXG4uY29sLXhzLTEyIHtcbiAgd2lkdGg6IDEwMCU7IH1cblxuLmNvbC14cy1wdWxsLTAge1xuICByaWdodDogYXV0bzsgfVxuXG4uY29sLXhzLXB1bGwtMSB7XG4gIHJpZ2h0OiA4LjMzMzMzJTsgfVxuXG4uY29sLXhzLXB1bGwtMiB7XG4gIHJpZ2h0OiAxNi42NjY2NyU7IH1cblxuLmNvbC14cy1wdWxsLTMge1xuICByaWdodDogMjUlOyB9XG5cbi5jb2wteHMtcHVsbC00IHtcbiAgcmlnaHQ6IDMzLjMzMzMzJTsgfVxuXG4uY29sLXhzLXB1bGwtNSB7XG4gIHJpZ2h0OiA0MS42NjY2NyU7IH1cblxuLmNvbC14cy1wdWxsLTYge1xuICByaWdodDogNTAlOyB9XG5cbi5jb2wteHMtcHVsbC03IHtcbiAgcmlnaHQ6IDU4LjMzMzMzJTsgfVxuXG4uY29sLXhzLXB1bGwtOCB7XG4gIHJpZ2h0OiA2Ni42NjY2NyU7IH1cblxuLmNvbC14cy1wdWxsLTkge1xuICByaWdodDogNzUlOyB9XG5cbi5jb2wteHMtcHVsbC0xMCB7XG4gIHJpZ2h0OiA4My4zMzMzMyU7IH1cblxuLmNvbC14cy1wdWxsLTExIHtcbiAgcmlnaHQ6IDkxLjY2NjY3JTsgfVxuXG4uY29sLXhzLXB1bGwtMTIge1xuICByaWdodDogMTAwJTsgfVxuXG4uY29sLXhzLXB1c2gtMCB7XG4gIGxlZnQ6IGF1dG87IH1cblxuLmNvbC14cy1wdXNoLTEge1xuICBsZWZ0OiA4LjMzMzMzJTsgfVxuXG4uY29sLXhzLXB1c2gtMiB7XG4gIGxlZnQ6IDE2LjY2NjY3JTsgfVxuXG4uY29sLXhzLXB1c2gtMyB7XG4gIGxlZnQ6IDI1JTsgfVxuXG4uY29sLXhzLXB1c2gtNCB7XG4gIGxlZnQ6IDMzLjMzMzMzJTsgfVxuXG4uY29sLXhzLXB1c2gtNSB7XG4gIGxlZnQ6IDQxLjY2NjY3JTsgfVxuXG4uY29sLXhzLXB1c2gtNiB7XG4gIGxlZnQ6IDUwJTsgfVxuXG4uY29sLXhzLXB1c2gtNyB7XG4gIGxlZnQ6IDU4LjMzMzMzJTsgfVxuXG4uY29sLXhzLXB1c2gtOCB7XG4gIGxlZnQ6IDY2LjY2NjY3JTsgfVxuXG4uY29sLXhzLXB1c2gtOSB7XG4gIGxlZnQ6IDc1JTsgfVxuXG4uY29sLXhzLXB1c2gtMTAge1xuICBsZWZ0OiA4My4zMzMzMyU7IH1cblxuLmNvbC14cy1wdXNoLTExIHtcbiAgbGVmdDogOTEuNjY2NjclOyB9XG5cbi5jb2wteHMtcHVzaC0xMiB7XG4gIGxlZnQ6IDEwMCU7IH1cblxuLmNvbC14cy1vZmZzZXQtMCB7XG4gIG1hcmdpbi1sZWZ0OiAwJTsgfVxuXG4uY29sLXhzLW9mZnNldC0xIHtcbiAgbWFyZ2luLWxlZnQ6IDguMzMzMzMlOyB9XG5cbi5jb2wteHMtb2Zmc2V0LTIge1xuICBtYXJnaW4tbGVmdDogMTYuNjY2NjclOyB9XG5cbi5jb2wteHMtb2Zmc2V0LTMge1xuICBtYXJnaW4tbGVmdDogMjUlOyB9XG5cbi5jb2wteHMtb2Zmc2V0LTQge1xuICBtYXJnaW4tbGVmdDogMzMuMzMzMzMlOyB9XG5cbi5jb2wteHMtb2Zmc2V0LTUge1xuICBtYXJnaW4tbGVmdDogNDEuNjY2NjclOyB9XG5cbi5jb2wteHMtb2Zmc2V0LTYge1xuICBtYXJnaW4tbGVmdDogNTAlOyB9XG5cbi5jb2wteHMtb2Zmc2V0LTcge1xuICBtYXJnaW4tbGVmdDogNTguMzMzMzMlOyB9XG5cbi5jb2wteHMtb2Zmc2V0LTgge1xuICBtYXJnaW4tbGVmdDogNjYuNjY2NjclOyB9XG5cbi5jb2wteHMtb2Zmc2V0LTkge1xuICBtYXJnaW4tbGVmdDogNzUlOyB9XG5cbi5jb2wteHMtb2Zmc2V0LTEwIHtcbiAgbWFyZ2luLWxlZnQ6IDgzLjMzMzMzJTsgfVxuXG4uY29sLXhzLW9mZnNldC0xMSB7XG4gIG1hcmdpbi1sZWZ0OiA5MS42NjY2NyU7IH1cblxuLmNvbC14cy1vZmZzZXQtMTIge1xuICBtYXJnaW4tbGVmdDogMTAwJTsgfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLmNvbC1zbS0xLCAuY29sLXNtLTIsIC5jb2wtc20tMywgLmNvbC1zbS00LCAuY29sLXNtLTUsIC5jb2wtc20tNiwgLmNvbC1zbS03LCAuY29sLXNtLTgsIC5jb2wtc20tOSwgLmNvbC1zbS0xMCwgLmNvbC1zbS0xMSwgLmNvbC1zbS0xMiB7XG4gICAgZmxvYXQ6IGxlZnQ7IH1cbiAgLmNvbC1zbS0xIHtcbiAgICB3aWR0aDogOC4zMzMzMyU7IH1cbiAgLmNvbC1zbS0yIHtcbiAgICB3aWR0aDogMTYuNjY2NjclOyB9XG4gIC5jb2wtc20tMyB7XG4gICAgd2lkdGg6IDI1JTsgfVxuICAuY29sLXNtLTQge1xuICAgIHdpZHRoOiAzMy4zMzMzMyU7IH1cbiAgLmNvbC1zbS01IHtcbiAgICB3aWR0aDogNDEuNjY2NjclOyB9XG4gIC5jb2wtc20tNiB7XG4gICAgd2lkdGg6IDUwJTsgfVxuICAuY29sLXNtLTcge1xuICAgIHdpZHRoOiA1OC4zMzMzMyU7IH1cbiAgLmNvbC1zbS04IHtcbiAgICB3aWR0aDogNjYuNjY2NjclOyB9XG4gIC5jb2wtc20tOSB7XG4gICAgd2lkdGg6IDc1JTsgfVxuICAuY29sLXNtLTEwIHtcbiAgICB3aWR0aDogODMuMzMzMzMlOyB9XG4gIC5jb2wtc20tMTEge1xuICAgIHdpZHRoOiA5MS42NjY2NyU7IH1cbiAgLmNvbC1zbS0xMiB7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgLmNvbC1zbS1wdWxsLTAge1xuICAgIHJpZ2h0OiBhdXRvOyB9XG4gIC5jb2wtc20tcHVsbC0xIHtcbiAgICByaWdodDogOC4zMzMzMyU7IH1cbiAgLmNvbC1zbS1wdWxsLTIge1xuICAgIHJpZ2h0OiAxNi42NjY2NyU7IH1cbiAgLmNvbC1zbS1wdWxsLTMge1xuICAgIHJpZ2h0OiAyNSU7IH1cbiAgLmNvbC1zbS1wdWxsLTQge1xuICAgIHJpZ2h0OiAzMy4zMzMzMyU7IH1cbiAgLmNvbC1zbS1wdWxsLTUge1xuICAgIHJpZ2h0OiA0MS42NjY2NyU7IH1cbiAgLmNvbC1zbS1wdWxsLTYge1xuICAgIHJpZ2h0OiA1MCU7IH1cbiAgLmNvbC1zbS1wdWxsLTcge1xuICAgIHJpZ2h0OiA1OC4zMzMzMyU7IH1cbiAgLmNvbC1zbS1wdWxsLTgge1xuICAgIHJpZ2h0OiA2Ni42NjY2NyU7IH1cbiAgLmNvbC1zbS1wdWxsLTkge1xuICAgIHJpZ2h0OiA3NSU7IH1cbiAgLmNvbC1zbS1wdWxsLTEwIHtcbiAgICByaWdodDogODMuMzMzMzMlOyB9XG4gIC5jb2wtc20tcHVsbC0xMSB7XG4gICAgcmlnaHQ6IDkxLjY2NjY3JTsgfVxuICAuY29sLXNtLXB1bGwtMTIge1xuICAgIHJpZ2h0OiAxMDAlOyB9XG4gIC5jb2wtc20tcHVzaC0wIHtcbiAgICBsZWZ0OiBhdXRvOyB9XG4gIC5jb2wtc20tcHVzaC0xIHtcbiAgICBsZWZ0OiA4LjMzMzMzJTsgfVxuICAuY29sLXNtLXB1c2gtMiB7XG4gICAgbGVmdDogMTYuNjY2NjclOyB9XG4gIC5jb2wtc20tcHVzaC0zIHtcbiAgICBsZWZ0OiAyNSU7IH1cbiAgLmNvbC1zbS1wdXNoLTQge1xuICAgIGxlZnQ6IDMzLjMzMzMzJTsgfVxuICAuY29sLXNtLXB1c2gtNSB7XG4gICAgbGVmdDogNDEuNjY2NjclOyB9XG4gIC5jb2wtc20tcHVzaC02IHtcbiAgICBsZWZ0OiA1MCU7IH1cbiAgLmNvbC1zbS1wdXNoLTcge1xuICAgIGxlZnQ6IDU4LjMzMzMzJTsgfVxuICAuY29sLXNtLXB1c2gtOCB7XG4gICAgbGVmdDogNjYuNjY2NjclOyB9XG4gIC5jb2wtc20tcHVzaC05IHtcbiAgICBsZWZ0OiA3NSU7IH1cbiAgLmNvbC1zbS1wdXNoLTEwIHtcbiAgICBsZWZ0OiA4My4zMzMzMyU7IH1cbiAgLmNvbC1zbS1wdXNoLTExIHtcbiAgICBsZWZ0OiA5MS42NjY2NyU7IH1cbiAgLmNvbC1zbS1wdXNoLTEyIHtcbiAgICBsZWZ0OiAxMDAlOyB9XG4gIC5jb2wtc20tb2Zmc2V0LTAge1xuICAgIG1hcmdpbi1sZWZ0OiAwJTsgfVxuICAuY29sLXNtLW9mZnNldC0xIHtcbiAgICBtYXJnaW4tbGVmdDogOC4zMzMzMyU7IH1cbiAgLmNvbC1zbS1vZmZzZXQtMiB7XG4gICAgbWFyZ2luLWxlZnQ6IDE2LjY2NjY3JTsgfVxuICAuY29sLXNtLW9mZnNldC0zIHtcbiAgICBtYXJnaW4tbGVmdDogMjUlOyB9XG4gIC5jb2wtc20tb2Zmc2V0LTQge1xuICAgIG1hcmdpbi1sZWZ0OiAzMy4zMzMzMyU7IH1cbiAgLmNvbC1zbS1vZmZzZXQtNSB7XG4gICAgbWFyZ2luLWxlZnQ6IDQxLjY2NjY3JTsgfVxuICAuY29sLXNtLW9mZnNldC02IHtcbiAgICBtYXJnaW4tbGVmdDogNTAlOyB9XG4gIC5jb2wtc20tb2Zmc2V0LTcge1xuICAgIG1hcmdpbi1sZWZ0OiA1OC4zMzMzMyU7IH1cbiAgLmNvbC1zbS1vZmZzZXQtOCB7XG4gICAgbWFyZ2luLWxlZnQ6IDY2LjY2NjY3JTsgfVxuICAuY29sLXNtLW9mZnNldC05IHtcbiAgICBtYXJnaW4tbGVmdDogNzUlOyB9XG4gIC5jb2wtc20tb2Zmc2V0LTEwIHtcbiAgICBtYXJnaW4tbGVmdDogODMuMzMzMzMlOyB9XG4gIC5jb2wtc20tb2Zmc2V0LTExIHtcbiAgICBtYXJnaW4tbGVmdDogOTEuNjY2NjclOyB9XG4gIC5jb2wtc20tb2Zmc2V0LTEyIHtcbiAgICBtYXJnaW4tbGVmdDogMTAwJTsgfSB9XG5cbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xuICAuY29sLW1kLTEsIC5jb2wtbWQtMiwgLmNvbC1tZC0zLCAuY29sLW1kLTQsIC5jb2wtbWQtNSwgLmNvbC1tZC02LCAuY29sLW1kLTcsIC5jb2wtbWQtOCwgLmNvbC1tZC05LCAuY29sLW1kLTEwLCAuY29sLW1kLTExLCAuY29sLW1kLTEyIHtcbiAgICBmbG9hdDogbGVmdDsgfVxuICAuY29sLW1kLTEge1xuICAgIHdpZHRoOiA4LjMzMzMzJTsgfVxuICAuY29sLW1kLTIge1xuICAgIHdpZHRoOiAxNi42NjY2NyU7IH1cbiAgLmNvbC1tZC0zIHtcbiAgICB3aWR0aDogMjUlOyB9XG4gIC5jb2wtbWQtNCB7XG4gICAgd2lkdGg6IDMzLjMzMzMzJTsgfVxuICAuY29sLW1kLTUge1xuICAgIHdpZHRoOiA0MS42NjY2NyU7IH1cbiAgLmNvbC1tZC02IHtcbiAgICB3aWR0aDogNTAlOyB9XG4gIC5jb2wtbWQtNyB7XG4gICAgd2lkdGg6IDU4LjMzMzMzJTsgfVxuICAuY29sLW1kLTgge1xuICAgIHdpZHRoOiA2Ni42NjY2NyU7IH1cbiAgLmNvbC1tZC05IHtcbiAgICB3aWR0aDogNzUlOyB9XG4gIC5jb2wtbWQtMTAge1xuICAgIHdpZHRoOiA4My4zMzMzMyU7IH1cbiAgLmNvbC1tZC0xMSB7XG4gICAgd2lkdGg6IDkxLjY2NjY3JTsgfVxuICAuY29sLW1kLTEyIHtcbiAgICB3aWR0aDogMTAwJTsgfVxuICAuY29sLW1kLXB1bGwtMCB7XG4gICAgcmlnaHQ6IGF1dG87IH1cbiAgLmNvbC1tZC1wdWxsLTEge1xuICAgIHJpZ2h0OiA4LjMzMzMzJTsgfVxuICAuY29sLW1kLXB1bGwtMiB7XG4gICAgcmlnaHQ6IDE2LjY2NjY3JTsgfVxuICAuY29sLW1kLXB1bGwtMyB7XG4gICAgcmlnaHQ6IDI1JTsgfVxuICAuY29sLW1kLXB1bGwtNCB7XG4gICAgcmlnaHQ6IDMzLjMzMzMzJTsgfVxuICAuY29sLW1kLXB1bGwtNSB7XG4gICAgcmlnaHQ6IDQxLjY2NjY3JTsgfVxuICAuY29sLW1kLXB1bGwtNiB7XG4gICAgcmlnaHQ6IDUwJTsgfVxuICAuY29sLW1kLXB1bGwtNyB7XG4gICAgcmlnaHQ6IDU4LjMzMzMzJTsgfVxuICAuY29sLW1kLXB1bGwtOCB7XG4gICAgcmlnaHQ6IDY2LjY2NjY3JTsgfVxuICAuY29sLW1kLXB1bGwtOSB7XG4gICAgcmlnaHQ6IDc1JTsgfVxuICAuY29sLW1kLXB1bGwtMTAge1xuICAgIHJpZ2h0OiA4My4zMzMzMyU7IH1cbiAgLmNvbC1tZC1wdWxsLTExIHtcbiAgICByaWdodDogOTEuNjY2NjclOyB9XG4gIC5jb2wtbWQtcHVsbC0xMiB7XG4gICAgcmlnaHQ6IDEwMCU7IH1cbiAgLmNvbC1tZC1wdXNoLTAge1xuICAgIGxlZnQ6IGF1dG87IH1cbiAgLmNvbC1tZC1wdXNoLTEge1xuICAgIGxlZnQ6IDguMzMzMzMlOyB9XG4gIC5jb2wtbWQtcHVzaC0yIHtcbiAgICBsZWZ0OiAxNi42NjY2NyU7IH1cbiAgLmNvbC1tZC1wdXNoLTMge1xuICAgIGxlZnQ6IDI1JTsgfVxuICAuY29sLW1kLXB1c2gtNCB7XG4gICAgbGVmdDogMzMuMzMzMzMlOyB9XG4gIC5jb2wtbWQtcHVzaC01IHtcbiAgICBsZWZ0OiA0MS42NjY2NyU7IH1cbiAgLmNvbC1tZC1wdXNoLTYge1xuICAgIGxlZnQ6IDUwJTsgfVxuICAuY29sLW1kLXB1c2gtNyB7XG4gICAgbGVmdDogNTguMzMzMzMlOyB9XG4gIC5jb2wtbWQtcHVzaC04IHtcbiAgICBsZWZ0OiA2Ni42NjY2NyU7IH1cbiAgLmNvbC1tZC1wdXNoLTkge1xuICAgIGxlZnQ6IDc1JTsgfVxuICAuY29sLW1kLXB1c2gtMTAge1xuICAgIGxlZnQ6IDgzLjMzMzMzJTsgfVxuICAuY29sLW1kLXB1c2gtMTEge1xuICAgIGxlZnQ6IDkxLjY2NjY3JTsgfVxuICAuY29sLW1kLXB1c2gtMTIge1xuICAgIGxlZnQ6IDEwMCU7IH1cbiAgLmNvbC1tZC1vZmZzZXQtMCB7XG4gICAgbWFyZ2luLWxlZnQ6IDAlOyB9XG4gIC5jb2wtbWQtb2Zmc2V0LTEge1xuICAgIG1hcmdpbi1sZWZ0OiA4LjMzMzMzJTsgfVxuICAuY29sLW1kLW9mZnNldC0yIHtcbiAgICBtYXJnaW4tbGVmdDogMTYuNjY2NjclOyB9XG4gIC5jb2wtbWQtb2Zmc2V0LTMge1xuICAgIG1hcmdpbi1sZWZ0OiAyNSU7IH1cbiAgLmNvbC1tZC1vZmZzZXQtNCB7XG4gICAgbWFyZ2luLWxlZnQ6IDMzLjMzMzMzJTsgfVxuICAuY29sLW1kLW9mZnNldC01IHtcbiAgICBtYXJnaW4tbGVmdDogNDEuNjY2NjclOyB9XG4gIC5jb2wtbWQtb2Zmc2V0LTYge1xuICAgIG1hcmdpbi1sZWZ0OiA1MCU7IH1cbiAgLmNvbC1tZC1vZmZzZXQtNyB7XG4gICAgbWFyZ2luLWxlZnQ6IDU4LjMzMzMzJTsgfVxuICAuY29sLW1kLW9mZnNldC04IHtcbiAgICBtYXJnaW4tbGVmdDogNjYuNjY2NjclOyB9XG4gIC5jb2wtbWQtb2Zmc2V0LTkge1xuICAgIG1hcmdpbi1sZWZ0OiA3NSU7IH1cbiAgLmNvbC1tZC1vZmZzZXQtMTAge1xuICAgIG1hcmdpbi1sZWZ0OiA4My4zMzMzMyU7IH1cbiAgLmNvbC1tZC1vZmZzZXQtMTEge1xuICAgIG1hcmdpbi1sZWZ0OiA5MS42NjY2NyU7IH1cbiAgLmNvbC1tZC1vZmZzZXQtMTIge1xuICAgIG1hcmdpbi1sZWZ0OiAxMDAlOyB9IH1cblxuQG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCkge1xuICAuY29sLWxnLTEsIC5jb2wtbGctMiwgLmNvbC1sZy0zLCAuY29sLWxnLTQsIC5jb2wtbGctNSwgLmNvbC1sZy02LCAuY29sLWxnLTcsIC5jb2wtbGctOCwgLmNvbC1sZy05LCAuY29sLWxnLTEwLCAuY29sLWxnLTExLCAuY29sLWxnLTEyIHtcbiAgICBmbG9hdDogbGVmdDsgfVxuICAuY29sLWxnLTEge1xuICAgIHdpZHRoOiA4LjMzMzMzJTsgfVxuICAuY29sLWxnLTIge1xuICAgIHdpZHRoOiAxNi42NjY2NyU7IH1cbiAgLmNvbC1sZy0zIHtcbiAgICB3aWR0aDogMjUlOyB9XG4gIC5jb2wtbGctNCB7XG4gICAgd2lkdGg6IDMzLjMzMzMzJTsgfVxuICAuY29sLWxnLTUge1xuICAgIHdpZHRoOiA0MS42NjY2NyU7IH1cbiAgLmNvbC1sZy02IHtcbiAgICB3aWR0aDogNTAlOyB9XG4gIC5jb2wtbGctNyB7XG4gICAgd2lkdGg6IDU4LjMzMzMzJTsgfVxuICAuY29sLWxnLTgge1xuICAgIHdpZHRoOiA2Ni42NjY2NyU7IH1cbiAgLmNvbC1sZy05IHtcbiAgICB3aWR0aDogNzUlOyB9XG4gIC5jb2wtbGctMTAge1xuICAgIHdpZHRoOiA4My4zMzMzMyU7IH1cbiAgLmNvbC1sZy0xMSB7XG4gICAgd2lkdGg6IDkxLjY2NjY3JTsgfVxuICAuY29sLWxnLTEyIHtcbiAgICB3aWR0aDogMTAwJTsgfVxuICAuY29sLWxnLXB1bGwtMCB7XG4gICAgcmlnaHQ6IGF1dG87IH1cbiAgLmNvbC1sZy1wdWxsLTEge1xuICAgIHJpZ2h0OiA4LjMzMzMzJTsgfVxuICAuY29sLWxnLXB1bGwtMiB7XG4gICAgcmlnaHQ6IDE2LjY2NjY3JTsgfVxuICAuY29sLWxnLXB1bGwtMyB7XG4gICAgcmlnaHQ6IDI1JTsgfVxuICAuY29sLWxnLXB1bGwtNCB7XG4gICAgcmlnaHQ6IDMzLjMzMzMzJTsgfVxuICAuY29sLWxnLXB1bGwtNSB7XG4gICAgcmlnaHQ6IDQxLjY2NjY3JTsgfVxuICAuY29sLWxnLXB1bGwtNiB7XG4gICAgcmlnaHQ6IDUwJTsgfVxuICAuY29sLWxnLXB1bGwtNyB7XG4gICAgcmlnaHQ6IDU4LjMzMzMzJTsgfVxuICAuY29sLWxnLXB1bGwtOCB7XG4gICAgcmlnaHQ6IDY2LjY2NjY3JTsgfVxuICAuY29sLWxnLXB1bGwtOSB7XG4gICAgcmlnaHQ6IDc1JTsgfVxuICAuY29sLWxnLXB1bGwtMTAge1xuICAgIHJpZ2h0OiA4My4zMzMzMyU7IH1cbiAgLmNvbC1sZy1wdWxsLTExIHtcbiAgICByaWdodDogOTEuNjY2NjclOyB9XG4gIC5jb2wtbGctcHVsbC0xMiB7XG4gICAgcmlnaHQ6IDEwMCU7IH1cbiAgLmNvbC1sZy1wdXNoLTAge1xuICAgIGxlZnQ6IGF1dG87IH1cbiAgLmNvbC1sZy1wdXNoLTEge1xuICAgIGxlZnQ6IDguMzMzMzMlOyB9XG4gIC5jb2wtbGctcHVzaC0yIHtcbiAgICBsZWZ0OiAxNi42NjY2NyU7IH1cbiAgLmNvbC1sZy1wdXNoLTMge1xuICAgIGxlZnQ6IDI1JTsgfVxuICAuY29sLWxnLXB1c2gtNCB7XG4gICAgbGVmdDogMzMuMzMzMzMlOyB9XG4gIC5jb2wtbGctcHVzaC01IHtcbiAgICBsZWZ0OiA0MS42NjY2NyU7IH1cbiAgLmNvbC1sZy1wdXNoLTYge1xuICAgIGxlZnQ6IDUwJTsgfVxuICAuY29sLWxnLXB1c2gtNyB7XG4gICAgbGVmdDogNTguMzMzMzMlOyB9XG4gIC5jb2wtbGctcHVzaC04IHtcbiAgICBsZWZ0OiA2Ni42NjY2NyU7IH1cbiAgLmNvbC1sZy1wdXNoLTkge1xuICAgIGxlZnQ6IDc1JTsgfVxuICAuY29sLWxnLXB1c2gtMTAge1xuICAgIGxlZnQ6IDgzLjMzMzMzJTsgfVxuICAuY29sLWxnLXB1c2gtMTEge1xuICAgIGxlZnQ6IDkxLjY2NjY3JTsgfVxuICAuY29sLWxnLXB1c2gtMTIge1xuICAgIGxlZnQ6IDEwMCU7IH1cbiAgLmNvbC1sZy1vZmZzZXQtMCB7XG4gICAgbWFyZ2luLWxlZnQ6IDAlOyB9XG4gIC5jb2wtbGctb2Zmc2V0LTEge1xuICAgIG1hcmdpbi1sZWZ0OiA4LjMzMzMzJTsgfVxuICAuY29sLWxnLW9mZnNldC0yIHtcbiAgICBtYXJnaW4tbGVmdDogMTYuNjY2NjclOyB9XG4gIC5jb2wtbGctb2Zmc2V0LTMge1xuICAgIG1hcmdpbi1sZWZ0OiAyNSU7IH1cbiAgLmNvbC1sZy1vZmZzZXQtNCB7XG4gICAgbWFyZ2luLWxlZnQ6IDMzLjMzMzMzJTsgfVxuICAuY29sLWxnLW9mZnNldC01IHtcbiAgICBtYXJnaW4tbGVmdDogNDEuNjY2NjclOyB9XG4gIC5jb2wtbGctb2Zmc2V0LTYge1xuICAgIG1hcmdpbi1sZWZ0OiA1MCU7IH1cbiAgLmNvbC1sZy1vZmZzZXQtNyB7XG4gICAgbWFyZ2luLWxlZnQ6IDU4LjMzMzMzJTsgfVxuICAuY29sLWxnLW9mZnNldC04IHtcbiAgICBtYXJnaW4tbGVmdDogNjYuNjY2NjclOyB9XG4gIC5jb2wtbGctb2Zmc2V0LTkge1xuICAgIG1hcmdpbi1sZWZ0OiA3NSU7IH1cbiAgLmNvbC1sZy1vZmZzZXQtMTAge1xuICAgIG1hcmdpbi1sZWZ0OiA4My4zMzMzMyU7IH1cbiAgLmNvbC1sZy1vZmZzZXQtMTEge1xuICAgIG1hcmdpbi1sZWZ0OiA5MS42NjY2NyU7IH1cbiAgLmNvbC1sZy1vZmZzZXQtMTIge1xuICAgIG1hcmdpbi1sZWZ0OiAxMDAlOyB9IH1cblxudGFibGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgfVxuXG5jYXB0aW9uIHtcbiAgcGFkZGluZy10b3A6IDhweDtcbiAgcGFkZGluZy1ib3R0b206IDhweDtcbiAgY29sb3I6ICM3Nzc3Nzc7XG4gIHRleHQtYWxpZ246IGxlZnQ7IH1cblxudGgge1xuICB0ZXh0LWFsaWduOiBsZWZ0OyB9XG5cbi50YWJsZSB7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIG1hcmdpbi1ib3R0b206IDIwcHg7IH1cbiAgLnRhYmxlID4gdGhlYWQgPiB0ciA+IHRoLFxuICAudGFibGUgPiB0aGVhZCA+IHRyID4gdGQsXG4gIC50YWJsZSA+IHRib2R5ID4gdHIgPiB0aCxcbiAgLnRhYmxlID4gdGJvZHkgPiB0ciA+IHRkLFxuICAudGFibGUgPiB0Zm9vdCA+IHRyID4gdGgsXG4gIC50YWJsZSA+IHRmb290ID4gdHIgPiB0ZCB7XG4gICAgcGFkZGluZzogOHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjQyODU3O1xuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNkZGQ7IH1cbiAgLnRhYmxlID4gdGhlYWQgPiB0ciA+IHRoIHtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tO1xuICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAjZGRkOyB9XG4gIC50YWJsZSA+IGNhcHRpb24gKyB0aGVhZCA+IHRyOmZpcnN0LWNoaWxkID4gdGgsXG4gIC50YWJsZSA+IGNhcHRpb24gKyB0aGVhZCA+IHRyOmZpcnN0LWNoaWxkID4gdGQsXG4gIC50YWJsZSA+IGNvbGdyb3VwICsgdGhlYWQgPiB0cjpmaXJzdC1jaGlsZCA+IHRoLFxuICAudGFibGUgPiBjb2xncm91cCArIHRoZWFkID4gdHI6Zmlyc3QtY2hpbGQgPiB0ZCxcbiAgLnRhYmxlID4gdGhlYWQ6Zmlyc3QtY2hpbGQgPiB0cjpmaXJzdC1jaGlsZCA+IHRoLFxuICAudGFibGUgPiB0aGVhZDpmaXJzdC1jaGlsZCA+IHRyOmZpcnN0LWNoaWxkID4gdGQge1xuICAgIGJvcmRlci10b3A6IDA7IH1cbiAgLnRhYmxlID4gdGJvZHkgKyB0Ym9keSB7XG4gICAgYm9yZGVyLXRvcDogMnB4IHNvbGlkICNkZGQ7IH1cbiAgLnRhYmxlIC50YWJsZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsgfVxuXG4udGFibGUtY29uZGVuc2VkID4gdGhlYWQgPiB0ciA+IHRoLFxuLnRhYmxlLWNvbmRlbnNlZCA+IHRoZWFkID4gdHIgPiB0ZCxcbi50YWJsZS1jb25kZW5zZWQgPiB0Ym9keSA+IHRyID4gdGgsXG4udGFibGUtY29uZGVuc2VkID4gdGJvZHkgPiB0ciA+IHRkLFxuLnRhYmxlLWNvbmRlbnNlZCA+IHRmb290ID4gdHIgPiB0aCxcbi50YWJsZS1jb25kZW5zZWQgPiB0Zm9vdCA+IHRyID4gdGQge1xuICBwYWRkaW5nOiA1cHg7IH1cblxuLnRhYmxlLWJvcmRlcmVkIHtcbiAgYm9yZGVyOiAxcHggc29saWQgI2RkZDsgfVxuICAudGFibGUtYm9yZGVyZWQgPiB0aGVhZCA+IHRyID4gdGgsXG4gIC50YWJsZS1ib3JkZXJlZCA+IHRoZWFkID4gdHIgPiB0ZCxcbiAgLnRhYmxlLWJvcmRlcmVkID4gdGJvZHkgPiB0ciA+IHRoLFxuICAudGFibGUtYm9yZGVyZWQgPiB0Ym9keSA+IHRyID4gdGQsXG4gIC50YWJsZS1ib3JkZXJlZCA+IHRmb290ID4gdHIgPiB0aCxcbiAgLnRhYmxlLWJvcmRlcmVkID4gdGZvb3QgPiB0ciA+IHRkIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZGRkOyB9XG4gIC50YWJsZS1ib3JkZXJlZCA+IHRoZWFkID4gdHIgPiB0aCxcbiAgLnRhYmxlLWJvcmRlcmVkID4gdGhlYWQgPiB0ciA+IHRkIHtcbiAgICBib3JkZXItYm90dG9tLXdpZHRoOiAycHg7IH1cblxuLnRhYmxlLXN0cmlwZWQgPiB0Ym9keSA+IHRyOm50aC1vZi10eXBlKG9kZCkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjlmOWY5OyB9XG5cbi50YWJsZS1ob3ZlciA+IHRib2R5ID4gdHI6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjVmNWY1OyB9XG5cbnRhYmxlIGNvbFtjbGFzcyo9XCJjb2wtXCJdIHtcbiAgcG9zaXRpb246IHN0YXRpYztcbiAgZmxvYXQ6IG5vbmU7XG4gIGRpc3BsYXk6IHRhYmxlLWNvbHVtbjsgfVxuXG50YWJsZSB0ZFtjbGFzcyo9XCJjb2wtXCJdLFxudGFibGUgdGhbY2xhc3MqPVwiY29sLVwiXSB7XG4gIHBvc2l0aW9uOiBzdGF0aWM7XG4gIGZsb2F0OiBub25lO1xuICBkaXNwbGF5OiB0YWJsZS1jZWxsOyB9XG5cbi50YWJsZSA+IHRoZWFkID4gdHIgPiB0ZC5hY3RpdmUsXG4udGFibGUgPiB0aGVhZCA+IHRyID4gdGguYWN0aXZlLFxuLnRhYmxlID4gdGhlYWQgPiB0ci5hY3RpdmUgPiB0ZCxcbi50YWJsZSA+IHRoZWFkID4gdHIuYWN0aXZlID4gdGgsXG4udGFibGUgPiB0Ym9keSA+IHRyID4gdGQuYWN0aXZlLFxuLnRhYmxlID4gdGJvZHkgPiB0ciA+IHRoLmFjdGl2ZSxcbi50YWJsZSA+IHRib2R5ID4gdHIuYWN0aXZlID4gdGQsXG4udGFibGUgPiB0Ym9keSA+IHRyLmFjdGl2ZSA+IHRoLFxuLnRhYmxlID4gdGZvb3QgPiB0ciA+IHRkLmFjdGl2ZSxcbi50YWJsZSA+IHRmb290ID4gdHIgPiB0aC5hY3RpdmUsXG4udGFibGUgPiB0Zm9vdCA+IHRyLmFjdGl2ZSA+IHRkLFxuLnRhYmxlID4gdGZvb3QgPiB0ci5hY3RpdmUgPiB0aCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNWY1ZjU7IH1cblxuLnRhYmxlLWhvdmVyID4gdGJvZHkgPiB0ciA+IHRkLmFjdGl2ZTpob3Zlcixcbi50YWJsZS1ob3ZlciA+IHRib2R5ID4gdHIgPiB0aC5hY3RpdmU6aG92ZXIsXG4udGFibGUtaG92ZXIgPiB0Ym9keSA+IHRyLmFjdGl2ZTpob3ZlciA+IHRkLFxuLnRhYmxlLWhvdmVyID4gdGJvZHkgPiB0cjpob3ZlciA+IC5hY3RpdmUsXG4udGFibGUtaG92ZXIgPiB0Ym9keSA+IHRyLmFjdGl2ZTpob3ZlciA+IHRoIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U4ZThlODsgfVxuXG4udGFibGUgPiB0aGVhZCA+IHRyID4gdGQuc3VjY2Vzcyxcbi50YWJsZSA+IHRoZWFkID4gdHIgPiB0aC5zdWNjZXNzLFxuLnRhYmxlID4gdGhlYWQgPiB0ci5zdWNjZXNzID4gdGQsXG4udGFibGUgPiB0aGVhZCA+IHRyLnN1Y2Nlc3MgPiB0aCxcbi50YWJsZSA+IHRib2R5ID4gdHIgPiB0ZC5zdWNjZXNzLFxuLnRhYmxlID4gdGJvZHkgPiB0ciA+IHRoLnN1Y2Nlc3MsXG4udGFibGUgPiB0Ym9keSA+IHRyLnN1Y2Nlc3MgPiB0ZCxcbi50YWJsZSA+IHRib2R5ID4gdHIuc3VjY2VzcyA+IHRoLFxuLnRhYmxlID4gdGZvb3QgPiB0ciA+IHRkLnN1Y2Nlc3MsXG4udGFibGUgPiB0Zm9vdCA+IHRyID4gdGguc3VjY2Vzcyxcbi50YWJsZSA+IHRmb290ID4gdHIuc3VjY2VzcyA+IHRkLFxuLnRhYmxlID4gdGZvb3QgPiB0ci5zdWNjZXNzID4gdGgge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGZmMGQ4OyB9XG5cbi50YWJsZS1ob3ZlciA+IHRib2R5ID4gdHIgPiB0ZC5zdWNjZXNzOmhvdmVyLFxuLnRhYmxlLWhvdmVyID4gdGJvZHkgPiB0ciA+IHRoLnN1Y2Nlc3M6aG92ZXIsXG4udGFibGUtaG92ZXIgPiB0Ym9keSA+IHRyLnN1Y2Nlc3M6aG92ZXIgPiB0ZCxcbi50YWJsZS1ob3ZlciA+IHRib2R5ID4gdHI6aG92ZXIgPiAuc3VjY2Vzcyxcbi50YWJsZS1ob3ZlciA+IHRib2R5ID4gdHIuc3VjY2Vzczpob3ZlciA+IHRoIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2QwZTljNjsgfVxuXG4udGFibGUgPiB0aGVhZCA+IHRyID4gdGQuaW5mbyxcbi50YWJsZSA+IHRoZWFkID4gdHIgPiB0aC5pbmZvLFxuLnRhYmxlID4gdGhlYWQgPiB0ci5pbmZvID4gdGQsXG4udGFibGUgPiB0aGVhZCA+IHRyLmluZm8gPiB0aCxcbi50YWJsZSA+IHRib2R5ID4gdHIgPiB0ZC5pbmZvLFxuLnRhYmxlID4gdGJvZHkgPiB0ciA+IHRoLmluZm8sXG4udGFibGUgPiB0Ym9keSA+IHRyLmluZm8gPiB0ZCxcbi50YWJsZSA+IHRib2R5ID4gdHIuaW5mbyA+IHRoLFxuLnRhYmxlID4gdGZvb3QgPiB0ciA+IHRkLmluZm8sXG4udGFibGUgPiB0Zm9vdCA+IHRyID4gdGguaW5mbyxcbi50YWJsZSA+IHRmb290ID4gdHIuaW5mbyA+IHRkLFxuLnRhYmxlID4gdGZvb3QgPiB0ci5pbmZvID4gdGgge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDllZGY3OyB9XG5cbi50YWJsZS1ob3ZlciA+IHRib2R5ID4gdHIgPiB0ZC5pbmZvOmhvdmVyLFxuLnRhYmxlLWhvdmVyID4gdGJvZHkgPiB0ciA+IHRoLmluZm86aG92ZXIsXG4udGFibGUtaG92ZXIgPiB0Ym9keSA+IHRyLmluZm86aG92ZXIgPiB0ZCxcbi50YWJsZS1ob3ZlciA+IHRib2R5ID4gdHI6aG92ZXIgPiAuaW5mbyxcbi50YWJsZS1ob3ZlciA+IHRib2R5ID4gdHIuaW5mbzpob3ZlciA+IHRoIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2M0ZTNmMzsgfVxuXG4udGFibGUgPiB0aGVhZCA+IHRyID4gdGQud2FybmluZyxcbi50YWJsZSA+IHRoZWFkID4gdHIgPiB0aC53YXJuaW5nLFxuLnRhYmxlID4gdGhlYWQgPiB0ci53YXJuaW5nID4gdGQsXG4udGFibGUgPiB0aGVhZCA+IHRyLndhcm5pbmcgPiB0aCxcbi50YWJsZSA+IHRib2R5ID4gdHIgPiB0ZC53YXJuaW5nLFxuLnRhYmxlID4gdGJvZHkgPiB0ciA+IHRoLndhcm5pbmcsXG4udGFibGUgPiB0Ym9keSA+IHRyLndhcm5pbmcgPiB0ZCxcbi50YWJsZSA+IHRib2R5ID4gdHIud2FybmluZyA+IHRoLFxuLnRhYmxlID4gdGZvb3QgPiB0ciA+IHRkLndhcm5pbmcsXG4udGFibGUgPiB0Zm9vdCA+IHRyID4gdGgud2FybmluZyxcbi50YWJsZSA+IHRmb290ID4gdHIud2FybmluZyA+IHRkLFxuLnRhYmxlID4gdGZvb3QgPiB0ci53YXJuaW5nID4gdGgge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmNmOGUzOyB9XG5cbi50YWJsZS1ob3ZlciA+IHRib2R5ID4gdHIgPiB0ZC53YXJuaW5nOmhvdmVyLFxuLnRhYmxlLWhvdmVyID4gdGJvZHkgPiB0ciA+IHRoLndhcm5pbmc6aG92ZXIsXG4udGFibGUtaG92ZXIgPiB0Ym9keSA+IHRyLndhcm5pbmc6aG92ZXIgPiB0ZCxcbi50YWJsZS1ob3ZlciA+IHRib2R5ID4gdHI6aG92ZXIgPiAud2FybmluZyxcbi50YWJsZS1ob3ZlciA+IHRib2R5ID4gdHIud2FybmluZzpob3ZlciA+IHRoIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZhZjJjYzsgfVxuXG4udGFibGUgPiB0aGVhZCA+IHRyID4gdGQuZGFuZ2VyLFxuLnRhYmxlID4gdGhlYWQgPiB0ciA+IHRoLmRhbmdlcixcbi50YWJsZSA+IHRoZWFkID4gdHIuZGFuZ2VyID4gdGQsXG4udGFibGUgPiB0aGVhZCA+IHRyLmRhbmdlciA+IHRoLFxuLnRhYmxlID4gdGJvZHkgPiB0ciA+IHRkLmRhbmdlcixcbi50YWJsZSA+IHRib2R5ID4gdHIgPiB0aC5kYW5nZXIsXG4udGFibGUgPiB0Ym9keSA+IHRyLmRhbmdlciA+IHRkLFxuLnRhYmxlID4gdGJvZHkgPiB0ci5kYW5nZXIgPiB0aCxcbi50YWJsZSA+IHRmb290ID4gdHIgPiB0ZC5kYW5nZXIsXG4udGFibGUgPiB0Zm9vdCA+IHRyID4gdGguZGFuZ2VyLFxuLnRhYmxlID4gdGZvb3QgPiB0ci5kYW5nZXIgPiB0ZCxcbi50YWJsZSA+IHRmb290ID4gdHIuZGFuZ2VyID4gdGgge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjJkZWRlOyB9XG5cbi50YWJsZS1ob3ZlciA+IHRib2R5ID4gdHIgPiB0ZC5kYW5nZXI6aG92ZXIsXG4udGFibGUtaG92ZXIgPiB0Ym9keSA+IHRyID4gdGguZGFuZ2VyOmhvdmVyLFxuLnRhYmxlLWhvdmVyID4gdGJvZHkgPiB0ci5kYW5nZXI6aG92ZXIgPiB0ZCxcbi50YWJsZS1ob3ZlciA+IHRib2R5ID4gdHI6aG92ZXIgPiAuZGFuZ2VyLFxuLnRhYmxlLWhvdmVyID4gdGJvZHkgPiB0ci5kYW5nZXI6aG92ZXIgPiB0aCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlYmNjY2M7IH1cblxuLnRhYmxlLXJlc3BvbnNpdmUge1xuICBvdmVyZmxvdy14OiBhdXRvO1xuICBtaW4taGVpZ2h0OiAwLjAxJTsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAgIC50YWJsZS1yZXNwb25zaXZlIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMTVweDtcbiAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcbiAgICAgIC1tcy1vdmVyZmxvdy1zdHlsZTogLW1zLWF1dG9oaWRpbmctc2Nyb2xsYmFyO1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgI2RkZDsgfVxuICAgICAgLnRhYmxlLXJlc3BvbnNpdmUgPiAudGFibGUge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG4gICAgICAgIC50YWJsZS1yZXNwb25zaXZlID4gLnRhYmxlID4gdGhlYWQgPiB0ciA+IHRoLFxuICAgICAgICAudGFibGUtcmVzcG9uc2l2ZSA+IC50YWJsZSA+IHRoZWFkID4gdHIgPiB0ZCxcbiAgICAgICAgLnRhYmxlLXJlc3BvbnNpdmUgPiAudGFibGUgPiB0Ym9keSA+IHRyID4gdGgsXG4gICAgICAgIC50YWJsZS1yZXNwb25zaXZlID4gLnRhYmxlID4gdGJvZHkgPiB0ciA+IHRkLFxuICAgICAgICAudGFibGUtcmVzcG9uc2l2ZSA+IC50YWJsZSA+IHRmb290ID4gdHIgPiB0aCxcbiAgICAgICAgLnRhYmxlLXJlc3BvbnNpdmUgPiAudGFibGUgPiB0Zm9vdCA+IHRyID4gdGQge1xuICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7IH1cbiAgICAgIC50YWJsZS1yZXNwb25zaXZlID4gLnRhYmxlLWJvcmRlcmVkIHtcbiAgICAgICAgYm9yZGVyOiAwOyB9XG4gICAgICAgIC50YWJsZS1yZXNwb25zaXZlID4gLnRhYmxlLWJvcmRlcmVkID4gdGhlYWQgPiB0ciA+IHRoOmZpcnN0LWNoaWxkLFxuICAgICAgICAudGFibGUtcmVzcG9uc2l2ZSA+IC50YWJsZS1ib3JkZXJlZCA+IHRoZWFkID4gdHIgPiB0ZDpmaXJzdC1jaGlsZCxcbiAgICAgICAgLnRhYmxlLXJlc3BvbnNpdmUgPiAudGFibGUtYm9yZGVyZWQgPiB0Ym9keSA+IHRyID4gdGg6Zmlyc3QtY2hpbGQsXG4gICAgICAgIC50YWJsZS1yZXNwb25zaXZlID4gLnRhYmxlLWJvcmRlcmVkID4gdGJvZHkgPiB0ciA+IHRkOmZpcnN0LWNoaWxkLFxuICAgICAgICAudGFibGUtcmVzcG9uc2l2ZSA+IC50YWJsZS1ib3JkZXJlZCA+IHRmb290ID4gdHIgPiB0aDpmaXJzdC1jaGlsZCxcbiAgICAgICAgLnRhYmxlLXJlc3BvbnNpdmUgPiAudGFibGUtYm9yZGVyZWQgPiB0Zm9vdCA+IHRyID4gdGQ6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgIGJvcmRlci1sZWZ0OiAwOyB9XG4gICAgICAgIC50YWJsZS1yZXNwb25zaXZlID4gLnRhYmxlLWJvcmRlcmVkID4gdGhlYWQgPiB0ciA+IHRoOmxhc3QtY2hpbGQsXG4gICAgICAgIC50YWJsZS1yZXNwb25zaXZlID4gLnRhYmxlLWJvcmRlcmVkID4gdGhlYWQgPiB0ciA+IHRkOmxhc3QtY2hpbGQsXG4gICAgICAgIC50YWJsZS1yZXNwb25zaXZlID4gLnRhYmxlLWJvcmRlcmVkID4gdGJvZHkgPiB0ciA+IHRoOmxhc3QtY2hpbGQsXG4gICAgICAgIC50YWJsZS1yZXNwb25zaXZlID4gLnRhYmxlLWJvcmRlcmVkID4gdGJvZHkgPiB0ciA+IHRkOmxhc3QtY2hpbGQsXG4gICAgICAgIC50YWJsZS1yZXNwb25zaXZlID4gLnRhYmxlLWJvcmRlcmVkID4gdGZvb3QgPiB0ciA+IHRoOmxhc3QtY2hpbGQsXG4gICAgICAgIC50YWJsZS1yZXNwb25zaXZlID4gLnRhYmxlLWJvcmRlcmVkID4gdGZvb3QgPiB0ciA+IHRkOmxhc3QtY2hpbGQge1xuICAgICAgICAgIGJvcmRlci1yaWdodDogMDsgfVxuICAgICAgICAudGFibGUtcmVzcG9uc2l2ZSA+IC50YWJsZS1ib3JkZXJlZCA+IHRib2R5ID4gdHI6bGFzdC1jaGlsZCA+IHRoLFxuICAgICAgICAudGFibGUtcmVzcG9uc2l2ZSA+IC50YWJsZS1ib3JkZXJlZCA+IHRib2R5ID4gdHI6bGFzdC1jaGlsZCA+IHRkLFxuICAgICAgICAudGFibGUtcmVzcG9uc2l2ZSA+IC50YWJsZS1ib3JkZXJlZCA+IHRmb290ID4gdHI6bGFzdC1jaGlsZCA+IHRoLFxuICAgICAgICAudGFibGUtcmVzcG9uc2l2ZSA+IC50YWJsZS1ib3JkZXJlZCA+IHRmb290ID4gdHI6bGFzdC1jaGlsZCA+IHRkIHtcbiAgICAgICAgICBib3JkZXItYm90dG9tOiAwOyB9IH1cblxuZmllbGRzZXQge1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW46IDA7XG4gIGJvcmRlcjogMDtcbiAgbWluLXdpZHRoOiAwOyB9XG5cbmxlZ2VuZCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgZm9udC1zaXplOiAyMXB4O1xuICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgY29sb3I6ICMzMzMzMzM7XG4gIGJvcmRlcjogMDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlNWU1ZTU7IH1cblxubGFiZWwge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgbWFyZ2luLWJvdHRvbTogNXB4O1xuICBmb250LXdlaWdodDogYm9sZDsgfVxuXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdIHtcbiAgLXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAtbW96LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IH1cblxuaW5wdXRbdHlwZT1cInJhZGlvXCJdLFxuaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdIHtcbiAgbWFyZ2luOiA0cHggMCAwO1xuICBtYXJnaW4tdG9wOiAxcHggXFw5O1xuICBsaW5lLWhlaWdodDogbm9ybWFsOyB9XG5cbmlucHV0W3R5cGU9XCJmaWxlXCJdIHtcbiAgZGlzcGxheTogYmxvY2s7IH1cblxuaW5wdXRbdHlwZT1cInJhbmdlXCJdIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlOyB9XG5cbnNlbGVjdFttdWx0aXBsZV0sXG5zZWxlY3Rbc2l6ZV0ge1xuICBoZWlnaHQ6IGF1dG87IH1cblxuaW5wdXRbdHlwZT1cImZpbGVcIl06Zm9jdXMsXG5pbnB1dFt0eXBlPVwicmFkaW9cIl06Zm9jdXMsXG5pbnB1dFt0eXBlPVwiY2hlY2tib3hcIl06Zm9jdXMge1xuICBvdXRsaW5lOiA1cHggYXV0byAtd2Via2l0LWZvY3VzLXJpbmctY29sb3I7XG4gIG91dGxpbmUtb2Zmc2V0OiAtMnB4OyB9XG5cbm91dHB1dCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwYWRkaW5nLXRvcDogN3B4O1xuICBmb250LXNpemU6IDE0cHg7XG4gIGxpbmUtaGVpZ2h0OiAxLjQyODU3O1xuICBjb2xvcjogIzU1NTU1NTsgfVxuXG4uZm9ybS1jb250cm9sIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDM0cHg7XG4gIHBhZGRpbmc6IDZweCAxMnB4O1xuICBmb250LXNpemU6IDE0cHg7XG4gIGxpbmUtaGVpZ2h0OiAxLjQyODU3O1xuICBjb2xvcjogIzU1NTU1NTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbiAgYm9yZGVyOiAxcHggc29saWQgI2NjYztcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAtd2Via2l0LWJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMDc1KTtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4wNzUpO1xuICAtd2Via2l0LXRyYW5zaXRpb246IGJvcmRlci1jb2xvciBlYXNlLWluLW91dCAwLjE1cywgYm94LXNoYWRvdyBlYXNlLWluLW91dCAwLjE1cztcbiAgLW8tdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIGVhc2UtaW4tb3V0IDAuMTVzLCBib3gtc2hhZG93IGVhc2UtaW4tb3V0IDAuMTVzO1xuICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgZWFzZS1pbi1vdXQgMC4xNXMsIGJveC1zaGFkb3cgZWFzZS1pbi1vdXQgMC4xNXM7IH1cbiAgLmZvcm0tY29udHJvbDpmb2N1cyB7XG4gICAgYm9yZGVyLWNvbG9yOiAjNjZhZmU5O1xuICAgIG91dGxpbmU6IDA7XG4gICAgLXdlYmtpdC1ib3gtc2hhZG93OiBpbnNldCAwIDFweCAxcHggcmdiYSgwLCAwLCAwLCAwLjA3NSksIDAgMCA4cHggcmdiYSgxMDIsIDE3NSwgMjMzLCAwLjYpO1xuICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMDc1KSwgMCAwIDhweCByZ2JhKDEwMiwgMTc1LCAyMzMsIDAuNik7IH1cbiAgLmZvcm0tY29udHJvbDo6LW1vei1wbGFjZWhvbGRlciB7XG4gICAgY29sb3I6ICM5OTk7XG4gICAgb3BhY2l0eTogMTsgfVxuICAuZm9ybS1jb250cm9sOi1tcy1pbnB1dC1wbGFjZWhvbGRlciB7XG4gICAgY29sb3I6ICM5OTk7IH1cbiAgLmZvcm0tY29udHJvbDo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7XG4gICAgY29sb3I6ICM5OTk7IH1cbiAgLmZvcm0tY29udHJvbDo6LW1zLWV4cGFuZCB7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OyB9XG4gIC5mb3JtLWNvbnRyb2xbZGlzYWJsZWRdLCAuZm9ybS1jb250cm9sW3JlYWRvbmx5XSxcbiAgZmllbGRzZXRbZGlzYWJsZWRdIC5mb3JtLWNvbnRyb2wge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNlZWVlZWU7XG4gICAgb3BhY2l0eTogMTsgfVxuICAuZm9ybS1jb250cm9sW2Rpc2FibGVkXSxcbiAgZmllbGRzZXRbZGlzYWJsZWRdIC5mb3JtLWNvbnRyb2wge1xuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7IH1cblxudGV4dGFyZWEuZm9ybS1jb250cm9sIHtcbiAgaGVpZ2h0OiBhdXRvOyB9XG5cbmlucHV0W3R5cGU9XCJzZWFyY2hcIl0ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMCkge1xuICBpbnB1dFt0eXBlPVwiZGF0ZVwiXS5mb3JtLWNvbnRyb2wsXG4gIGlucHV0W3R5cGU9XCJ0aW1lXCJdLmZvcm0tY29udHJvbCxcbiAgaW5wdXRbdHlwZT1cImRhdGV0aW1lLWxvY2FsXCJdLmZvcm0tY29udHJvbCxcbiAgaW5wdXRbdHlwZT1cIm1vbnRoXCJdLmZvcm0tY29udHJvbCB7XG4gICAgbGluZS1oZWlnaHQ6IDM0cHg7IH1cbiAgaW5wdXRbdHlwZT1cImRhdGVcIl0uaW5wdXQtc20sIC5pbnB1dC1ncm91cC1zbSA+IGlucHV0LmZvcm0tY29udHJvbFt0eXBlPVwiZGF0ZVwiXSxcbiAgLmlucHV0LWdyb3VwLXNtID4gaW5wdXQuaW5wdXQtZ3JvdXAtYWRkb25bdHlwZT1cImRhdGVcIl0sXG4gIC5pbnB1dC1ncm91cC1zbSA+IC5pbnB1dC1ncm91cC1idG4gPiBpbnB1dC5idG5bdHlwZT1cImRhdGVcIl0sXG4gIC5pbnB1dC1ncm91cC1zbSBpbnB1dFt0eXBlPVwiZGF0ZVwiXSxcbiAgaW5wdXRbdHlwZT1cInRpbWVcIl0uaW5wdXQtc20sXG4gIC5pbnB1dC1ncm91cC1zbSA+IGlucHV0LmZvcm0tY29udHJvbFt0eXBlPVwidGltZVwiXSxcbiAgLmlucHV0LWdyb3VwLXNtID4gaW5wdXQuaW5wdXQtZ3JvdXAtYWRkb25bdHlwZT1cInRpbWVcIl0sXG4gIC5pbnB1dC1ncm91cC1zbSA+IC5pbnB1dC1ncm91cC1idG4gPiBpbnB1dC5idG5bdHlwZT1cInRpbWVcIl0sXG4gIC5pbnB1dC1ncm91cC1zbVxuICBpbnB1dFt0eXBlPVwidGltZVwiXSxcbiAgaW5wdXRbdHlwZT1cImRhdGV0aW1lLWxvY2FsXCJdLmlucHV0LXNtLFxuICAuaW5wdXQtZ3JvdXAtc20gPiBpbnB1dC5mb3JtLWNvbnRyb2xbdHlwZT1cImRhdGV0aW1lLWxvY2FsXCJdLFxuICAuaW5wdXQtZ3JvdXAtc20gPiBpbnB1dC5pbnB1dC1ncm91cC1hZGRvblt0eXBlPVwiZGF0ZXRpbWUtbG9jYWxcIl0sXG4gIC5pbnB1dC1ncm91cC1zbSA+IC5pbnB1dC1ncm91cC1idG4gPiBpbnB1dC5idG5bdHlwZT1cImRhdGV0aW1lLWxvY2FsXCJdLFxuICAuaW5wdXQtZ3JvdXAtc21cbiAgaW5wdXRbdHlwZT1cImRhdGV0aW1lLWxvY2FsXCJdLFxuICBpbnB1dFt0eXBlPVwibW9udGhcIl0uaW5wdXQtc20sXG4gIC5pbnB1dC1ncm91cC1zbSA+IGlucHV0LmZvcm0tY29udHJvbFt0eXBlPVwibW9udGhcIl0sXG4gIC5pbnB1dC1ncm91cC1zbSA+IGlucHV0LmlucHV0LWdyb3VwLWFkZG9uW3R5cGU9XCJtb250aFwiXSxcbiAgLmlucHV0LWdyb3VwLXNtID4gLmlucHV0LWdyb3VwLWJ0biA+IGlucHV0LmJ0blt0eXBlPVwibW9udGhcIl0sXG4gIC5pbnB1dC1ncm91cC1zbVxuICBpbnB1dFt0eXBlPVwibW9udGhcIl0ge1xuICAgIGxpbmUtaGVpZ2h0OiAzMHB4OyB9XG4gIGlucHV0W3R5cGU9XCJkYXRlXCJdLmlucHV0LWxnLCAuaW5wdXQtZ3JvdXAtbGcgPiBpbnB1dC5mb3JtLWNvbnRyb2xbdHlwZT1cImRhdGVcIl0sXG4gIC5pbnB1dC1ncm91cC1sZyA+IGlucHV0LmlucHV0LWdyb3VwLWFkZG9uW3R5cGU9XCJkYXRlXCJdLFxuICAuaW5wdXQtZ3JvdXAtbGcgPiAuaW5wdXQtZ3JvdXAtYnRuID4gaW5wdXQuYnRuW3R5cGU9XCJkYXRlXCJdLFxuICAuaW5wdXQtZ3JvdXAtbGcgaW5wdXRbdHlwZT1cImRhdGVcIl0sXG4gIGlucHV0W3R5cGU9XCJ0aW1lXCJdLmlucHV0LWxnLFxuICAuaW5wdXQtZ3JvdXAtbGcgPiBpbnB1dC5mb3JtLWNvbnRyb2xbdHlwZT1cInRpbWVcIl0sXG4gIC5pbnB1dC1ncm91cC1sZyA+IGlucHV0LmlucHV0LWdyb3VwLWFkZG9uW3R5cGU9XCJ0aW1lXCJdLFxuICAuaW5wdXQtZ3JvdXAtbGcgPiAuaW5wdXQtZ3JvdXAtYnRuID4gaW5wdXQuYnRuW3R5cGU9XCJ0aW1lXCJdLFxuICAuaW5wdXQtZ3JvdXAtbGdcbiAgaW5wdXRbdHlwZT1cInRpbWVcIl0sXG4gIGlucHV0W3R5cGU9XCJkYXRldGltZS1sb2NhbFwiXS5pbnB1dC1sZyxcbiAgLmlucHV0LWdyb3VwLWxnID4gaW5wdXQuZm9ybS1jb250cm9sW3R5cGU9XCJkYXRldGltZS1sb2NhbFwiXSxcbiAgLmlucHV0LWdyb3VwLWxnID4gaW5wdXQuaW5wdXQtZ3JvdXAtYWRkb25bdHlwZT1cImRhdGV0aW1lLWxvY2FsXCJdLFxuICAuaW5wdXQtZ3JvdXAtbGcgPiAuaW5wdXQtZ3JvdXAtYnRuID4gaW5wdXQuYnRuW3R5cGU9XCJkYXRldGltZS1sb2NhbFwiXSxcbiAgLmlucHV0LWdyb3VwLWxnXG4gIGlucHV0W3R5cGU9XCJkYXRldGltZS1sb2NhbFwiXSxcbiAgaW5wdXRbdHlwZT1cIm1vbnRoXCJdLmlucHV0LWxnLFxuICAuaW5wdXQtZ3JvdXAtbGcgPiBpbnB1dC5mb3JtLWNvbnRyb2xbdHlwZT1cIm1vbnRoXCJdLFxuICAuaW5wdXQtZ3JvdXAtbGcgPiBpbnB1dC5pbnB1dC1ncm91cC1hZGRvblt0eXBlPVwibW9udGhcIl0sXG4gIC5pbnB1dC1ncm91cC1sZyA+IC5pbnB1dC1ncm91cC1idG4gPiBpbnB1dC5idG5bdHlwZT1cIm1vbnRoXCJdLFxuICAuaW5wdXQtZ3JvdXAtbGdcbiAgaW5wdXRbdHlwZT1cIm1vbnRoXCJdIHtcbiAgICBsaW5lLWhlaWdodDogNDZweDsgfSB9XG5cbi5mb3JtLWdyb3VwIHtcbiAgbWFyZ2luLWJvdHRvbTogMTVweDsgfVxuXG4ucmFkaW8sXG4uY2hlY2tib3gge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW4tdG9wOiAxMHB4O1xuICBtYXJnaW4tYm90dG9tOiAxMHB4OyB9XG4gIC5yYWRpbyBsYWJlbCxcbiAgLmNoZWNrYm94IGxhYmVsIHtcbiAgICBtaW4taGVpZ2h0OiAyMHB4O1xuICAgIHBhZGRpbmctbGVmdDogMjBweDtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgY3Vyc29yOiBwb2ludGVyOyB9XG5cbi5yYWRpbyBpbnB1dFt0eXBlPVwicmFkaW9cIl0sXG4ucmFkaW8taW5saW5lIGlucHV0W3R5cGU9XCJyYWRpb1wiXSxcbi5jaGVja2JveCBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0sXG4uY2hlY2tib3gtaW5saW5lIGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbWFyZ2luLWxlZnQ6IC0yMHB4O1xuICBtYXJnaW4tdG9wOiA0cHggXFw5OyB9XG5cbi5yYWRpbyArIC5yYWRpbyxcbi5jaGVja2JveCArIC5jaGVja2JveCB7XG4gIG1hcmdpbi10b3A6IC01cHg7IH1cblxuLnJhZGlvLWlubGluZSxcbi5jaGVja2JveC1pbmxpbmUge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcGFkZGluZy1sZWZ0OiAyMHB4O1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBjdXJzb3I6IHBvaW50ZXI7IH1cblxuLnJhZGlvLWlubGluZSArIC5yYWRpby1pbmxpbmUsXG4uY2hlY2tib3gtaW5saW5lICsgLmNoZWNrYm94LWlubGluZSB7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1sZWZ0OiAxMHB4OyB9XG5cbmlucHV0W3R5cGU9XCJyYWRpb1wiXVtkaXNhYmxlZF0sIGlucHV0W3R5cGU9XCJyYWRpb1wiXS5kaXNhYmxlZCxcbmZpZWxkc2V0W2Rpc2FibGVkXSBpbnB1dFt0eXBlPVwicmFkaW9cIl0sXG5pbnB1dFt0eXBlPVwiY2hlY2tib3hcIl1bZGlzYWJsZWRdLFxuaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdLmRpc2FibGVkLFxuZmllbGRzZXRbZGlzYWJsZWRdXG5pbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0ge1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkOyB9XG5cbi5yYWRpby1pbmxpbmUuZGlzYWJsZWQsXG5maWVsZHNldFtkaXNhYmxlZF0gLnJhZGlvLWlubGluZSxcbi5jaGVja2JveC1pbmxpbmUuZGlzYWJsZWQsXG5maWVsZHNldFtkaXNhYmxlZF1cbi5jaGVja2JveC1pbmxpbmUge1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkOyB9XG5cbi5yYWRpby5kaXNhYmxlZCBsYWJlbCxcbmZpZWxkc2V0W2Rpc2FibGVkXSAucmFkaW8gbGFiZWwsXG4uY2hlY2tib3guZGlzYWJsZWQgbGFiZWwsXG5maWVsZHNldFtkaXNhYmxlZF1cbi5jaGVja2JveCBsYWJlbCB7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7IH1cblxuLmZvcm0tY29udHJvbC1zdGF0aWMge1xuICBwYWRkaW5nLXRvcDogN3B4O1xuICBwYWRkaW5nLWJvdHRvbTogN3B4O1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICBtaW4taGVpZ2h0OiAzNHB4OyB9XG4gIC5mb3JtLWNvbnRyb2wtc3RhdGljLmlucHV0LWxnLCAuaW5wdXQtZ3JvdXAtbGcgPiAuZm9ybS1jb250cm9sLXN0YXRpYy5mb3JtLWNvbnRyb2wsXG4gIC5pbnB1dC1ncm91cC1sZyA+IC5mb3JtLWNvbnRyb2wtc3RhdGljLmlucHV0LWdyb3VwLWFkZG9uLFxuICAuaW5wdXQtZ3JvdXAtbGcgPiAuaW5wdXQtZ3JvdXAtYnRuID4gLmZvcm0tY29udHJvbC1zdGF0aWMuYnRuLCAuZm9ybS1jb250cm9sLXN0YXRpYy5pbnB1dC1zbSwgLmlucHV0LWdyb3VwLXNtID4gLmZvcm0tY29udHJvbC1zdGF0aWMuZm9ybS1jb250cm9sLFxuICAuaW5wdXQtZ3JvdXAtc20gPiAuZm9ybS1jb250cm9sLXN0YXRpYy5pbnB1dC1ncm91cC1hZGRvbixcbiAgLmlucHV0LWdyb3VwLXNtID4gLmlucHV0LWdyb3VwLWJ0biA+IC5mb3JtLWNvbnRyb2wtc3RhdGljLmJ0biB7XG4gICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgIHBhZGRpbmctcmlnaHQ6IDA7IH1cblxuLmlucHV0LXNtLCAuaW5wdXQtZ3JvdXAtc20gPiAuZm9ybS1jb250cm9sLFxuLmlucHV0LWdyb3VwLXNtID4gLmlucHV0LWdyb3VwLWFkZG9uLFxuLmlucHV0LWdyb3VwLXNtID4gLmlucHV0LWdyb3VwLWJ0biA+IC5idG4ge1xuICBoZWlnaHQ6IDMwcHg7XG4gIHBhZGRpbmc6IDVweCAxMHB4O1xuICBmb250LXNpemU6IDEycHg7XG4gIGxpbmUtaGVpZ2h0OiAxLjU7XG4gIGJvcmRlci1yYWRpdXM6IDNweDsgfVxuXG5zZWxlY3QuaW5wdXQtc20sIC5pbnB1dC1ncm91cC1zbSA+IHNlbGVjdC5mb3JtLWNvbnRyb2wsXG4uaW5wdXQtZ3JvdXAtc20gPiBzZWxlY3QuaW5wdXQtZ3JvdXAtYWRkb24sXG4uaW5wdXQtZ3JvdXAtc20gPiAuaW5wdXQtZ3JvdXAtYnRuID4gc2VsZWN0LmJ0biB7XG4gIGhlaWdodDogMzBweDtcbiAgbGluZS1oZWlnaHQ6IDMwcHg7IH1cblxudGV4dGFyZWEuaW5wdXQtc20sIC5pbnB1dC1ncm91cC1zbSA+IHRleHRhcmVhLmZvcm0tY29udHJvbCxcbi5pbnB1dC1ncm91cC1zbSA+IHRleHRhcmVhLmlucHV0LWdyb3VwLWFkZG9uLFxuLmlucHV0LWdyb3VwLXNtID4gLmlucHV0LWdyb3VwLWJ0biA+IHRleHRhcmVhLmJ0bixcbnNlbGVjdFttdWx0aXBsZV0uaW5wdXQtc20sXG4uaW5wdXQtZ3JvdXAtc20gPiBzZWxlY3QuZm9ybS1jb250cm9sW211bHRpcGxlXSxcbi5pbnB1dC1ncm91cC1zbSA+IHNlbGVjdC5pbnB1dC1ncm91cC1hZGRvblttdWx0aXBsZV0sXG4uaW5wdXQtZ3JvdXAtc20gPiAuaW5wdXQtZ3JvdXAtYnRuID4gc2VsZWN0LmJ0blttdWx0aXBsZV0ge1xuICBoZWlnaHQ6IGF1dG87IH1cblxuLmZvcm0tZ3JvdXAtc20gLmZvcm0tY29udHJvbCB7XG4gIGhlaWdodDogMzBweDtcbiAgcGFkZGluZzogNXB4IDEwcHg7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgYm9yZGVyLXJhZGl1czogM3B4OyB9XG5cbi5mb3JtLWdyb3VwLXNtIHNlbGVjdC5mb3JtLWNvbnRyb2wge1xuICBoZWlnaHQ6IDMwcHg7XG4gIGxpbmUtaGVpZ2h0OiAzMHB4OyB9XG5cbi5mb3JtLWdyb3VwLXNtIHRleHRhcmVhLmZvcm0tY29udHJvbCxcbi5mb3JtLWdyb3VwLXNtIHNlbGVjdFttdWx0aXBsZV0uZm9ybS1jb250cm9sIHtcbiAgaGVpZ2h0OiBhdXRvOyB9XG5cbi5mb3JtLWdyb3VwLXNtIC5mb3JtLWNvbnRyb2wtc3RhdGljIHtcbiAgaGVpZ2h0OiAzMHB4O1xuICBtaW4taGVpZ2h0OiAzMnB4O1xuICBwYWRkaW5nOiA2cHggMTBweDtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBsaW5lLWhlaWdodDogMS41OyB9XG5cbi5pbnB1dC1sZywgLmlucHV0LWdyb3VwLWxnID4gLmZvcm0tY29udHJvbCxcbi5pbnB1dC1ncm91cC1sZyA+IC5pbnB1dC1ncm91cC1hZGRvbixcbi5pbnB1dC1ncm91cC1sZyA+IC5pbnB1dC1ncm91cC1idG4gPiAuYnRuIHtcbiAgaGVpZ2h0OiA0NnB4O1xuICBwYWRkaW5nOiAxMHB4IDE2cHg7XG4gIGZvbnQtc2l6ZTogMThweDtcbiAgbGluZS1oZWlnaHQ6IDEuMzMzMzM7XG4gIGJvcmRlci1yYWRpdXM6IDZweDsgfVxuXG5zZWxlY3QuaW5wdXQtbGcsIC5pbnB1dC1ncm91cC1sZyA+IHNlbGVjdC5mb3JtLWNvbnRyb2wsXG4uaW5wdXQtZ3JvdXAtbGcgPiBzZWxlY3QuaW5wdXQtZ3JvdXAtYWRkb24sXG4uaW5wdXQtZ3JvdXAtbGcgPiAuaW5wdXQtZ3JvdXAtYnRuID4gc2VsZWN0LmJ0biB7XG4gIGhlaWdodDogNDZweDtcbiAgbGluZS1oZWlnaHQ6IDQ2cHg7IH1cblxudGV4dGFyZWEuaW5wdXQtbGcsIC5pbnB1dC1ncm91cC1sZyA+IHRleHRhcmVhLmZvcm0tY29udHJvbCxcbi5pbnB1dC1ncm91cC1sZyA+IHRleHRhcmVhLmlucHV0LWdyb3VwLWFkZG9uLFxuLmlucHV0LWdyb3VwLWxnID4gLmlucHV0LWdyb3VwLWJ0biA+IHRleHRhcmVhLmJ0bixcbnNlbGVjdFttdWx0aXBsZV0uaW5wdXQtbGcsXG4uaW5wdXQtZ3JvdXAtbGcgPiBzZWxlY3QuZm9ybS1jb250cm9sW211bHRpcGxlXSxcbi5pbnB1dC1ncm91cC1sZyA+IHNlbGVjdC5pbnB1dC1ncm91cC1hZGRvblttdWx0aXBsZV0sXG4uaW5wdXQtZ3JvdXAtbGcgPiAuaW5wdXQtZ3JvdXAtYnRuID4gc2VsZWN0LmJ0blttdWx0aXBsZV0ge1xuICBoZWlnaHQ6IGF1dG87IH1cblxuLmZvcm0tZ3JvdXAtbGcgLmZvcm0tY29udHJvbCB7XG4gIGhlaWdodDogNDZweDtcbiAgcGFkZGluZzogMTBweCAxNnB4O1xuICBmb250LXNpemU6IDE4cHg7XG4gIGxpbmUtaGVpZ2h0OiAxLjMzMzMzO1xuICBib3JkZXItcmFkaXVzOiA2cHg7IH1cblxuLmZvcm0tZ3JvdXAtbGcgc2VsZWN0LmZvcm0tY29udHJvbCB7XG4gIGhlaWdodDogNDZweDtcbiAgbGluZS1oZWlnaHQ6IDQ2cHg7IH1cblxuLmZvcm0tZ3JvdXAtbGcgdGV4dGFyZWEuZm9ybS1jb250cm9sLFxuLmZvcm0tZ3JvdXAtbGcgc2VsZWN0W211bHRpcGxlXS5mb3JtLWNvbnRyb2wge1xuICBoZWlnaHQ6IGF1dG87IH1cblxuLmZvcm0tZ3JvdXAtbGcgLmZvcm0tY29udHJvbC1zdGF0aWMge1xuICBoZWlnaHQ6IDQ2cHg7XG4gIG1pbi1oZWlnaHQ6IDM4cHg7XG4gIHBhZGRpbmc6IDExcHggMTZweDtcbiAgZm9udC1zaXplOiAxOHB4O1xuICBsaW5lLWhlaWdodDogMS4zMzMzMzsgfVxuXG4uaGFzLWZlZWRiYWNrIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gIC5oYXMtZmVlZGJhY2sgLmZvcm0tY29udHJvbCB7XG4gICAgcGFkZGluZy1yaWdodDogNDIuNXB4OyB9XG5cbi5mb3JtLWNvbnRyb2wtZmVlZGJhY2sge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIHotaW5kZXg6IDI7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMzRweDtcbiAgaGVpZ2h0OiAzNHB4O1xuICBsaW5lLWhlaWdodDogMzRweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTsgfVxuXG4uaW5wdXQtbGcgKyAuZm9ybS1jb250cm9sLWZlZWRiYWNrLCAuaW5wdXQtZ3JvdXAtbGcgPiAuZm9ybS1jb250cm9sICsgLmZvcm0tY29udHJvbC1mZWVkYmFjaywgLmlucHV0LWdyb3VwLWxnID4gLmlucHV0LWdyb3VwLWFkZG9uICsgLmZvcm0tY29udHJvbC1mZWVkYmFjaywgLmlucHV0LWdyb3VwLWxnID4gLmlucHV0LWdyb3VwLWJ0biA+IC5idG4gKyAuZm9ybS1jb250cm9sLWZlZWRiYWNrLFxuLmlucHV0LWdyb3VwLWxnICsgLmZvcm0tY29udHJvbC1mZWVkYmFjayxcbi5mb3JtLWdyb3VwLWxnIC5mb3JtLWNvbnRyb2wgKyAuZm9ybS1jb250cm9sLWZlZWRiYWNrIHtcbiAgd2lkdGg6IDQ2cHg7XG4gIGhlaWdodDogNDZweDtcbiAgbGluZS1oZWlnaHQ6IDQ2cHg7IH1cblxuLmlucHV0LXNtICsgLmZvcm0tY29udHJvbC1mZWVkYmFjaywgLmlucHV0LWdyb3VwLXNtID4gLmZvcm0tY29udHJvbCArIC5mb3JtLWNvbnRyb2wtZmVlZGJhY2ssIC5pbnB1dC1ncm91cC1zbSA+IC5pbnB1dC1ncm91cC1hZGRvbiArIC5mb3JtLWNvbnRyb2wtZmVlZGJhY2ssIC5pbnB1dC1ncm91cC1zbSA+IC5pbnB1dC1ncm91cC1idG4gPiAuYnRuICsgLmZvcm0tY29udHJvbC1mZWVkYmFjayxcbi5pbnB1dC1ncm91cC1zbSArIC5mb3JtLWNvbnRyb2wtZmVlZGJhY2ssXG4uZm9ybS1ncm91cC1zbSAuZm9ybS1jb250cm9sICsgLmZvcm0tY29udHJvbC1mZWVkYmFjayB7XG4gIHdpZHRoOiAzMHB4O1xuICBoZWlnaHQ6IDMwcHg7XG4gIGxpbmUtaGVpZ2h0OiAzMHB4OyB9XG5cbi5oYXMtc3VjY2VzcyAuaGVscC1ibG9jayxcbi5oYXMtc3VjY2VzcyAuY29udHJvbC1sYWJlbCxcbi5oYXMtc3VjY2VzcyAucmFkaW8sXG4uaGFzLXN1Y2Nlc3MgLmNoZWNrYm94LFxuLmhhcy1zdWNjZXNzIC5yYWRpby1pbmxpbmUsXG4uaGFzLXN1Y2Nlc3MgLmNoZWNrYm94LWlubGluZSxcbi5oYXMtc3VjY2Vzcy5yYWRpbyBsYWJlbCxcbi5oYXMtc3VjY2Vzcy5jaGVja2JveCBsYWJlbCxcbi5oYXMtc3VjY2Vzcy5yYWRpby1pbmxpbmUgbGFiZWwsXG4uaGFzLXN1Y2Nlc3MuY2hlY2tib3gtaW5saW5lIGxhYmVsIHtcbiAgY29sb3I6ICMzYzc2M2Q7IH1cblxuLmhhcy1zdWNjZXNzIC5mb3JtLWNvbnRyb2wge1xuICBib3JkZXItY29sb3I6ICMzYzc2M2Q7XG4gIC13ZWJraXQtYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4wNzUpO1xuICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAxcHggcmdiYSgwLCAwLCAwLCAwLjA3NSk7IH1cbiAgLmhhcy1zdWNjZXNzIC5mb3JtLWNvbnRyb2w6Zm9jdXMge1xuICAgIGJvcmRlci1jb2xvcjogIzJiNTQyYztcbiAgICAtd2Via2l0LWJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMDc1KSwgMCAwIDZweCAjNjdiMTY4O1xuICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMDc1KSwgMCAwIDZweCAjNjdiMTY4OyB9XG5cbi5oYXMtc3VjY2VzcyAuaW5wdXQtZ3JvdXAtYWRkb24ge1xuICBjb2xvcjogIzNjNzYzZDtcbiAgYm9yZGVyLWNvbG9yOiAjM2M3NjNkO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGZmMGQ4OyB9XG5cbi5oYXMtc3VjY2VzcyAuZm9ybS1jb250cm9sLWZlZWRiYWNrIHtcbiAgY29sb3I6ICMzYzc2M2Q7IH1cblxuLmhhcy13YXJuaW5nIC5oZWxwLWJsb2NrLFxuLmhhcy13YXJuaW5nIC5jb250cm9sLWxhYmVsLFxuLmhhcy13YXJuaW5nIC5yYWRpbyxcbi5oYXMtd2FybmluZyAuY2hlY2tib3gsXG4uaGFzLXdhcm5pbmcgLnJhZGlvLWlubGluZSxcbi5oYXMtd2FybmluZyAuY2hlY2tib3gtaW5saW5lLFxuLmhhcy13YXJuaW5nLnJhZGlvIGxhYmVsLFxuLmhhcy13YXJuaW5nLmNoZWNrYm94IGxhYmVsLFxuLmhhcy13YXJuaW5nLnJhZGlvLWlubGluZSBsYWJlbCxcbi5oYXMtd2FybmluZy5jaGVja2JveC1pbmxpbmUgbGFiZWwge1xuICBjb2xvcjogIzhhNmQzYjsgfVxuXG4uaGFzLXdhcm5pbmcgLmZvcm0tY29udHJvbCB7XG4gIGJvcmRlci1jb2xvcjogIzhhNmQzYjtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiBpbnNldCAwIDFweCAxcHggcmdiYSgwLCAwLCAwLCAwLjA3NSk7XG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMDc1KTsgfVxuICAuaGFzLXdhcm5pbmcgLmZvcm0tY29udHJvbDpmb2N1cyB7XG4gICAgYm9yZGVyLWNvbG9yOiAjNjY1MTJjO1xuICAgIC13ZWJraXQtYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4wNzUpLCAwIDAgNnB4ICNjMGExNmI7XG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4wNzUpLCAwIDAgNnB4ICNjMGExNmI7IH1cblxuLmhhcy13YXJuaW5nIC5pbnB1dC1ncm91cC1hZGRvbiB7XG4gIGNvbG9yOiAjOGE2ZDNiO1xuICBib3JkZXItY29sb3I6ICM4YTZkM2I7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmY2Y4ZTM7IH1cblxuLmhhcy13YXJuaW5nIC5mb3JtLWNvbnRyb2wtZmVlZGJhY2sge1xuICBjb2xvcjogIzhhNmQzYjsgfVxuXG4uaGFzLWVycm9yIC5oZWxwLWJsb2NrLFxuLmhhcy1lcnJvciAuY29udHJvbC1sYWJlbCxcbi5oYXMtZXJyb3IgLnJhZGlvLFxuLmhhcy1lcnJvciAuY2hlY2tib3gsXG4uaGFzLWVycm9yIC5yYWRpby1pbmxpbmUsXG4uaGFzLWVycm9yIC5jaGVja2JveC1pbmxpbmUsXG4uaGFzLWVycm9yLnJhZGlvIGxhYmVsLFxuLmhhcy1lcnJvci5jaGVja2JveCBsYWJlbCxcbi5oYXMtZXJyb3IucmFkaW8taW5saW5lIGxhYmVsLFxuLmhhcy1lcnJvci5jaGVja2JveC1pbmxpbmUgbGFiZWwge1xuICBjb2xvcjogI2E5NDQ0MjsgfVxuXG4uaGFzLWVycm9yIC5mb3JtLWNvbnRyb2wge1xuICBib3JkZXItY29sb3I6ICNhOTQ0NDI7XG4gIC13ZWJraXQtYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4wNzUpO1xuICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAxcHggcmdiYSgwLCAwLCAwLCAwLjA3NSk7IH1cbiAgLmhhcy1lcnJvciAuZm9ybS1jb250cm9sOmZvY3VzIHtcbiAgICBib3JkZXItY29sb3I6ICM4NDM1MzQ7XG4gICAgLXdlYmtpdC1ib3gtc2hhZG93OiBpbnNldCAwIDFweCAxcHggcmdiYSgwLCAwLCAwLCAwLjA3NSksIDAgMCA2cHggI2NlODQ4MztcbiAgICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAxcHggcmdiYSgwLCAwLCAwLCAwLjA3NSksIDAgMCA2cHggI2NlODQ4MzsgfVxuXG4uaGFzLWVycm9yIC5pbnB1dC1ncm91cC1hZGRvbiB7XG4gIGNvbG9yOiAjYTk0NDQyO1xuICBib3JkZXItY29sb3I6ICNhOTQ0NDI7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmMmRlZGU7IH1cblxuLmhhcy1lcnJvciAuZm9ybS1jb250cm9sLWZlZWRiYWNrIHtcbiAgY29sb3I6ICNhOTQ0NDI7IH1cblxuLmhhcy1mZWVkYmFjayBsYWJlbCB+IC5mb3JtLWNvbnRyb2wtZmVlZGJhY2sge1xuICB0b3A6IDI1cHg7IH1cblxuLmhhcy1mZWVkYmFjayBsYWJlbC5zci1vbmx5IH4gLmZvcm0tY29udHJvbC1mZWVkYmFjayB7XG4gIHRvcDogMDsgfVxuXG4uaGVscC1ibG9jayB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW4tdG9wOiA1cHg7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gIGNvbG9yOiAjNzM3MzczOyB9XG5cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAuZm9ybS1pbmxpbmUgLmZvcm0tZ3JvdXAge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IH1cbiAgLmZvcm0taW5saW5lIC5mb3JtLWNvbnRyb2wge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB3aWR0aDogYXV0bztcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyB9XG4gIC5mb3JtLWlubGluZSAuZm9ybS1jb250cm9sLXN0YXRpYyB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9XG4gIC5mb3JtLWlubGluZSAuaW5wdXQtZ3JvdXAge1xuICAgIGRpc3BsYXk6IGlubGluZS10YWJsZTtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyB9XG4gICAgLmZvcm0taW5saW5lIC5pbnB1dC1ncm91cCAuaW5wdXQtZ3JvdXAtYWRkb24sXG4gICAgLmZvcm0taW5saW5lIC5pbnB1dC1ncm91cCAuaW5wdXQtZ3JvdXAtYnRuLFxuICAgIC5mb3JtLWlubGluZSAuaW5wdXQtZ3JvdXAgLmZvcm0tY29udHJvbCB7XG4gICAgICB3aWR0aDogYXV0bzsgfVxuICAuZm9ybS1pbmxpbmUgLmlucHV0LWdyb3VwID4gLmZvcm0tY29udHJvbCB7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgLmZvcm0taW5saW5lIC5jb250cm9sLWxhYmVsIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IH1cbiAgLmZvcm0taW5saW5lIC5yYWRpbyxcbiAgLmZvcm0taW5saW5lIC5jaGVja2JveCB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIG1hcmdpbi10b3A6IDA7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyB9XG4gICAgLmZvcm0taW5saW5lIC5yYWRpbyBsYWJlbCxcbiAgICAuZm9ybS1pbmxpbmUgLmNoZWNrYm94IGxhYmVsIHtcbiAgICAgIHBhZGRpbmctbGVmdDogMDsgfVxuICAuZm9ybS1pbmxpbmUgLnJhZGlvIGlucHV0W3R5cGU9XCJyYWRpb1wiXSxcbiAgLmZvcm0taW5saW5lIC5jaGVja2JveCBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBtYXJnaW4tbGVmdDogMDsgfVxuICAuZm9ybS1pbmxpbmUgLmhhcy1mZWVkYmFjayAuZm9ybS1jb250cm9sLWZlZWRiYWNrIHtcbiAgICB0b3A6IDA7IH0gfVxuXG4uZm9ybS1ob3Jpem9udGFsIC5yYWRpbyxcbi5mb3JtLWhvcml6b250YWwgLmNoZWNrYm94LFxuLmZvcm0taG9yaXpvbnRhbCAucmFkaW8taW5saW5lLFxuLmZvcm0taG9yaXpvbnRhbCAuY2hlY2tib3gtaW5saW5lIHtcbiAgbWFyZ2luLXRvcDogMDtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgcGFkZGluZy10b3A6IDdweDsgfVxuXG4uZm9ybS1ob3Jpem9udGFsIC5yYWRpbyxcbi5mb3JtLWhvcml6b250YWwgLmNoZWNrYm94IHtcbiAgbWluLWhlaWdodDogMjdweDsgfVxuXG4uZm9ybS1ob3Jpem9udGFsIC5mb3JtLWdyb3VwIHtcbiAgbWFyZ2luLWxlZnQ6IC0xNXB4O1xuICBtYXJnaW4tcmlnaHQ6IC0xNXB4OyB9XG4gIC5mb3JtLWhvcml6b250YWwgLmZvcm0tZ3JvdXA6YmVmb3JlLCAuZm9ybS1ob3Jpem9udGFsIC5mb3JtLWdyb3VwOmFmdGVyIHtcbiAgICBjb250ZW50OiBcIiBcIjtcbiAgICBkaXNwbGF5OiB0YWJsZTsgfVxuICAuZm9ybS1ob3Jpem9udGFsIC5mb3JtLWdyb3VwOmFmdGVyIHtcbiAgICBjbGVhcjogYm90aDsgfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLmZvcm0taG9yaXpvbnRhbCAuY29udHJvbC1sYWJlbCB7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICBwYWRkaW5nLXRvcDogN3B4OyB9IH1cblxuLmZvcm0taG9yaXpvbnRhbCAuaGFzLWZlZWRiYWNrIC5mb3JtLWNvbnRyb2wtZmVlZGJhY2sge1xuICByaWdodDogMTVweDsgfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLmZvcm0taG9yaXpvbnRhbCAuZm9ybS1ncm91cC1sZyAuY29udHJvbC1sYWJlbCB7XG4gICAgcGFkZGluZy10b3A6IDExcHg7XG4gICAgZm9udC1zaXplOiAxOHB4OyB9IH1cblxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5mb3JtLWhvcml6b250YWwgLmZvcm0tZ3JvdXAtc20gLmNvbnRyb2wtbGFiZWwge1xuICAgIHBhZGRpbmctdG9wOiA2cHg7XG4gICAgZm9udC1zaXplOiAxMnB4OyB9IH1cblxuLmJ0biB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB0b3VjaC1hY3Rpb246IG1hbmlwdWxhdGlvbjtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xuICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgcGFkZGluZzogNnB4IDEycHg7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgbGluZS1oZWlnaHQ6IDEuNDI4NTc7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcbiAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcbiAgLW1zLXVzZXItc2VsZWN0OiBub25lO1xuICB1c2VyLXNlbGVjdDogbm9uZTsgfVxuICAuYnRuOmZvY3VzLCAuYnRuLmZvY3VzLCAuYnRuOmFjdGl2ZTpmb2N1cywgLmJ0bjphY3RpdmUuZm9jdXMsIC5idG4uYWN0aXZlOmZvY3VzLCAuYnRuLmFjdGl2ZS5mb2N1cyB7XG4gICAgb3V0bGluZTogNXB4IGF1dG8gLXdlYmtpdC1mb2N1cy1yaW5nLWNvbG9yO1xuICAgIG91dGxpbmUtb2Zmc2V0OiAtMnB4OyB9XG4gIC5idG46aG92ZXIsIC5idG46Zm9jdXMsIC5idG4uZm9jdXMge1xuICAgIGNvbG9yOiAjMzMzO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuICAuYnRuOmFjdGl2ZSwgLmJ0bi5hY3RpdmUge1xuICAgIG91dGxpbmU6IDA7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbiAgICAtd2Via2l0LWJveC1zaGFkb3c6IGluc2V0IDAgM3B4IDVweCByZ2JhKDAsIDAsIDAsIDAuMTI1KTtcbiAgICBib3gtc2hhZG93OiBpbnNldCAwIDNweCA1cHggcmdiYSgwLCAwLCAwLCAwLjEyNSk7IH1cbiAgLmJ0bi5kaXNhYmxlZCwgLmJ0bltkaXNhYmxlZF0sXG4gIGZpZWxkc2V0W2Rpc2FibGVkXSAuYnRuIHtcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgIG9wYWNpdHk6IDAuNjU7XG4gICAgZmlsdGVyOiBhbHBoYShvcGFjaXR5PTY1KTtcbiAgICAtd2Via2l0LWJveC1zaGFkb3c6IG5vbmU7XG4gICAgYm94LXNoYWRvdzogbm9uZTsgfVxuXG5hLmJ0bi5kaXNhYmxlZCxcbmZpZWxkc2V0W2Rpc2FibGVkXSBhLmJ0biB7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lOyB9XG5cbi5idG4tZGVmYXVsdCB7XG4gIGNvbG9yOiAjMzMzO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBib3JkZXItY29sb3I6ICNjY2M7IH1cbiAgLmJ0bi1kZWZhdWx0OmZvY3VzLCAuYnRuLWRlZmF1bHQuZm9jdXMge1xuICAgIGNvbG9yOiAjMzMzO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNlNmU2ZTY7XG4gICAgYm9yZGVyLWNvbG9yOiAjOGM4YzhjOyB9XG4gIC5idG4tZGVmYXVsdDpob3ZlciB7XG4gICAgY29sb3I6ICMzMzM7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2U2ZTZlNjtcbiAgICBib3JkZXItY29sb3I6ICNhZGFkYWQ7IH1cbiAgLmJ0bi1kZWZhdWx0OmFjdGl2ZSwgLmJ0bi1kZWZhdWx0LmFjdGl2ZSxcbiAgLm9wZW4gPiAuYnRuLWRlZmF1bHQuZHJvcGRvd24tdG9nZ2xlIHtcbiAgICBjb2xvcjogIzMzMztcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTZlNmU2O1xuICAgIGJvcmRlci1jb2xvcjogI2FkYWRhZDsgfVxuICAgIC5idG4tZGVmYXVsdDphY3RpdmU6aG92ZXIsIC5idG4tZGVmYXVsdDphY3RpdmU6Zm9jdXMsIC5idG4tZGVmYXVsdDphY3RpdmUuZm9jdXMsIC5idG4tZGVmYXVsdC5hY3RpdmU6aG92ZXIsIC5idG4tZGVmYXVsdC5hY3RpdmU6Zm9jdXMsIC5idG4tZGVmYXVsdC5hY3RpdmUuZm9jdXMsXG4gICAgLm9wZW4gPiAuYnRuLWRlZmF1bHQuZHJvcGRvd24tdG9nZ2xlOmhvdmVyLFxuICAgIC5vcGVuID4gLmJ0bi1kZWZhdWx0LmRyb3Bkb3duLXRvZ2dsZTpmb2N1cyxcbiAgICAub3BlbiA+IC5idG4tZGVmYXVsdC5kcm9wZG93bi10b2dnbGUuZm9jdXMge1xuICAgICAgY29sb3I6ICMzMzM7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDRkNGQ0O1xuICAgICAgYm9yZGVyLWNvbG9yOiAjOGM4YzhjOyB9XG4gIC5idG4tZGVmYXVsdDphY3RpdmUsIC5idG4tZGVmYXVsdC5hY3RpdmUsXG4gIC5vcGVuID4gLmJ0bi1kZWZhdWx0LmRyb3Bkb3duLXRvZ2dsZSB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTsgfVxuICAuYnRuLWRlZmF1bHQuZGlzYWJsZWQ6aG92ZXIsIC5idG4tZGVmYXVsdC5kaXNhYmxlZDpmb2N1cywgLmJ0bi1kZWZhdWx0LmRpc2FibGVkLmZvY3VzLCAuYnRuLWRlZmF1bHRbZGlzYWJsZWRdOmhvdmVyLCAuYnRuLWRlZmF1bHRbZGlzYWJsZWRdOmZvY3VzLCAuYnRuLWRlZmF1bHRbZGlzYWJsZWRdLmZvY3VzLFxuICBmaWVsZHNldFtkaXNhYmxlZF0gLmJ0bi1kZWZhdWx0OmhvdmVyLFxuICBmaWVsZHNldFtkaXNhYmxlZF0gLmJ0bi1kZWZhdWx0OmZvY3VzLFxuICBmaWVsZHNldFtkaXNhYmxlZF0gLmJ0bi1kZWZhdWx0LmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAgIGJvcmRlci1jb2xvcjogI2NjYzsgfVxuICAuYnRuLWRlZmF1bHQgLmJhZGdlIHtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzMzOyB9XG5cbi5idG4tcHJpbWFyeSB7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzM3YWI3O1xuICBib3JkZXItY29sb3I6ICMyZTZkYTQ7IH1cbiAgLmJ0bi1wcmltYXJ5OmZvY3VzLCAuYnRuLXByaW1hcnkuZm9jdXMge1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMyODYwOTA7XG4gICAgYm9yZGVyLWNvbG9yOiAjMTIyYjQwOyB9XG4gIC5idG4tcHJpbWFyeTpob3ZlciB7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzI4NjA5MDtcbiAgICBib3JkZXItY29sb3I6ICMyMDRkNzQ7IH1cbiAgLmJ0bi1wcmltYXJ5OmFjdGl2ZSwgLmJ0bi1wcmltYXJ5LmFjdGl2ZSxcbiAgLm9wZW4gPiAuYnRuLXByaW1hcnkuZHJvcGRvd24tdG9nZ2xlIHtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjg2MDkwO1xuICAgIGJvcmRlci1jb2xvcjogIzIwNGQ3NDsgfVxuICAgIC5idG4tcHJpbWFyeTphY3RpdmU6aG92ZXIsIC5idG4tcHJpbWFyeTphY3RpdmU6Zm9jdXMsIC5idG4tcHJpbWFyeTphY3RpdmUuZm9jdXMsIC5idG4tcHJpbWFyeS5hY3RpdmU6aG92ZXIsIC5idG4tcHJpbWFyeS5hY3RpdmU6Zm9jdXMsIC5idG4tcHJpbWFyeS5hY3RpdmUuZm9jdXMsXG4gICAgLm9wZW4gPiAuYnRuLXByaW1hcnkuZHJvcGRvd24tdG9nZ2xlOmhvdmVyLFxuICAgIC5vcGVuID4gLmJ0bi1wcmltYXJ5LmRyb3Bkb3duLXRvZ2dsZTpmb2N1cyxcbiAgICAub3BlbiA+IC5idG4tcHJpbWFyeS5kcm9wZG93bi10b2dnbGUuZm9jdXMge1xuICAgICAgY29sb3I6ICNmZmY7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjA0ZDc0O1xuICAgICAgYm9yZGVyLWNvbG9yOiAjMTIyYjQwOyB9XG4gIC5idG4tcHJpbWFyeTphY3RpdmUsIC5idG4tcHJpbWFyeS5hY3RpdmUsXG4gIC5vcGVuID4gLmJ0bi1wcmltYXJ5LmRyb3Bkb3duLXRvZ2dsZSB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTsgfVxuICAuYnRuLXByaW1hcnkuZGlzYWJsZWQ6aG92ZXIsIC5idG4tcHJpbWFyeS5kaXNhYmxlZDpmb2N1cywgLmJ0bi1wcmltYXJ5LmRpc2FibGVkLmZvY3VzLCAuYnRuLXByaW1hcnlbZGlzYWJsZWRdOmhvdmVyLCAuYnRuLXByaW1hcnlbZGlzYWJsZWRdOmZvY3VzLCAuYnRuLXByaW1hcnlbZGlzYWJsZWRdLmZvY3VzLFxuICBmaWVsZHNldFtkaXNhYmxlZF0gLmJ0bi1wcmltYXJ5OmhvdmVyLFxuICBmaWVsZHNldFtkaXNhYmxlZF0gLmJ0bi1wcmltYXJ5OmZvY3VzLFxuICBmaWVsZHNldFtkaXNhYmxlZF0gLmJ0bi1wcmltYXJ5LmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzM3YWI3O1xuICAgIGJvcmRlci1jb2xvcjogIzJlNmRhNDsgfVxuICAuYnRuLXByaW1hcnkgLmJhZGdlIHtcbiAgICBjb2xvcjogIzMzN2FiNztcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyB9XG5cbi5idG4tc3VjY2VzcyB7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNWNiODVjO1xuICBib3JkZXItY29sb3I6ICM0Y2FlNGM7IH1cbiAgLmJ0bi1zdWNjZXNzOmZvY3VzLCAuYnRuLXN1Y2Nlc3MuZm9jdXMge1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM0NDlkNDQ7XG4gICAgYm9yZGVyLWNvbG9yOiAjMjU1NjI1OyB9XG4gIC5idG4tc3VjY2Vzczpob3ZlciB7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzQ0OWQ0NDtcbiAgICBib3JkZXItY29sb3I6ICMzOTg0Mzk7IH1cbiAgLmJ0bi1zdWNjZXNzOmFjdGl2ZSwgLmJ0bi1zdWNjZXNzLmFjdGl2ZSxcbiAgLm9wZW4gPiAuYnRuLXN1Y2Nlc3MuZHJvcGRvd24tdG9nZ2xlIHtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDQ5ZDQ0O1xuICAgIGJvcmRlci1jb2xvcjogIzM5ODQzOTsgfVxuICAgIC5idG4tc3VjY2VzczphY3RpdmU6aG92ZXIsIC5idG4tc3VjY2VzczphY3RpdmU6Zm9jdXMsIC5idG4tc3VjY2VzczphY3RpdmUuZm9jdXMsIC5idG4tc3VjY2Vzcy5hY3RpdmU6aG92ZXIsIC5idG4tc3VjY2Vzcy5hY3RpdmU6Zm9jdXMsIC5idG4tc3VjY2Vzcy5hY3RpdmUuZm9jdXMsXG4gICAgLm9wZW4gPiAuYnRuLXN1Y2Nlc3MuZHJvcGRvd24tdG9nZ2xlOmhvdmVyLFxuICAgIC5vcGVuID4gLmJ0bi1zdWNjZXNzLmRyb3Bkb3duLXRvZ2dsZTpmb2N1cyxcbiAgICAub3BlbiA+IC5idG4tc3VjY2Vzcy5kcm9wZG93bi10b2dnbGUuZm9jdXMge1xuICAgICAgY29sb3I6ICNmZmY7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzk4NDM5O1xuICAgICAgYm9yZGVyLWNvbG9yOiAjMjU1NjI1OyB9XG4gIC5idG4tc3VjY2VzczphY3RpdmUsIC5idG4tc3VjY2Vzcy5hY3RpdmUsXG4gIC5vcGVuID4gLmJ0bi1zdWNjZXNzLmRyb3Bkb3duLXRvZ2dsZSB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTsgfVxuICAuYnRuLXN1Y2Nlc3MuZGlzYWJsZWQ6aG92ZXIsIC5idG4tc3VjY2Vzcy5kaXNhYmxlZDpmb2N1cywgLmJ0bi1zdWNjZXNzLmRpc2FibGVkLmZvY3VzLCAuYnRuLXN1Y2Nlc3NbZGlzYWJsZWRdOmhvdmVyLCAuYnRuLXN1Y2Nlc3NbZGlzYWJsZWRdOmZvY3VzLCAuYnRuLXN1Y2Nlc3NbZGlzYWJsZWRdLmZvY3VzLFxuICBmaWVsZHNldFtkaXNhYmxlZF0gLmJ0bi1zdWNjZXNzOmhvdmVyLFxuICBmaWVsZHNldFtkaXNhYmxlZF0gLmJ0bi1zdWNjZXNzOmZvY3VzLFxuICBmaWVsZHNldFtkaXNhYmxlZF0gLmJ0bi1zdWNjZXNzLmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNWNiODVjO1xuICAgIGJvcmRlci1jb2xvcjogIzRjYWU0YzsgfVxuICAuYnRuLXN1Y2Nlc3MgLmJhZGdlIHtcbiAgICBjb2xvcjogIzVjYjg1YztcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyB9XG5cbi5idG4taW5mbyB7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNWJjMGRlO1xuICBib3JkZXItY29sb3I6ICM0NmI4ZGE7IH1cbiAgLmJ0bi1pbmZvOmZvY3VzLCAuYnRuLWluZm8uZm9jdXMge1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMzMWIwZDU7XG4gICAgYm9yZGVyLWNvbG9yOiAjMWI2ZDg1OyB9XG4gIC5idG4taW5mbzpob3ZlciB7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzMxYjBkNTtcbiAgICBib3JkZXItY29sb3I6ICMyNjlhYmM7IH1cbiAgLmJ0bi1pbmZvOmFjdGl2ZSwgLmJ0bi1pbmZvLmFjdGl2ZSxcbiAgLm9wZW4gPiAuYnRuLWluZm8uZHJvcGRvd24tdG9nZ2xlIHtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzFiMGQ1O1xuICAgIGJvcmRlci1jb2xvcjogIzI2OWFiYzsgfVxuICAgIC5idG4taW5mbzphY3RpdmU6aG92ZXIsIC5idG4taW5mbzphY3RpdmU6Zm9jdXMsIC5idG4taW5mbzphY3RpdmUuZm9jdXMsIC5idG4taW5mby5hY3RpdmU6aG92ZXIsIC5idG4taW5mby5hY3RpdmU6Zm9jdXMsIC5idG4taW5mby5hY3RpdmUuZm9jdXMsXG4gICAgLm9wZW4gPiAuYnRuLWluZm8uZHJvcGRvd24tdG9nZ2xlOmhvdmVyLFxuICAgIC5vcGVuID4gLmJ0bi1pbmZvLmRyb3Bkb3duLXRvZ2dsZTpmb2N1cyxcbiAgICAub3BlbiA+IC5idG4taW5mby5kcm9wZG93bi10b2dnbGUuZm9jdXMge1xuICAgICAgY29sb3I6ICNmZmY7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjY5YWJjO1xuICAgICAgYm9yZGVyLWNvbG9yOiAjMWI2ZDg1OyB9XG4gIC5idG4taW5mbzphY3RpdmUsIC5idG4taW5mby5hY3RpdmUsXG4gIC5vcGVuID4gLmJ0bi1pbmZvLmRyb3Bkb3duLXRvZ2dsZSB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTsgfVxuICAuYnRuLWluZm8uZGlzYWJsZWQ6aG92ZXIsIC5idG4taW5mby5kaXNhYmxlZDpmb2N1cywgLmJ0bi1pbmZvLmRpc2FibGVkLmZvY3VzLCAuYnRuLWluZm9bZGlzYWJsZWRdOmhvdmVyLCAuYnRuLWluZm9bZGlzYWJsZWRdOmZvY3VzLCAuYnRuLWluZm9bZGlzYWJsZWRdLmZvY3VzLFxuICBmaWVsZHNldFtkaXNhYmxlZF0gLmJ0bi1pbmZvOmhvdmVyLFxuICBmaWVsZHNldFtkaXNhYmxlZF0gLmJ0bi1pbmZvOmZvY3VzLFxuICBmaWVsZHNldFtkaXNhYmxlZF0gLmJ0bi1pbmZvLmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNWJjMGRlO1xuICAgIGJvcmRlci1jb2xvcjogIzQ2YjhkYTsgfVxuICAuYnRuLWluZm8gLmJhZGdlIHtcbiAgICBjb2xvcjogIzViYzBkZTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyB9XG5cbi5idG4td2FybmluZyB7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjBhZDRlO1xuICBib3JkZXItY29sb3I6ICNlZWEyMzY7IH1cbiAgLmJ0bi13YXJuaW5nOmZvY3VzLCAuYnRuLXdhcm5pbmcuZm9jdXMge1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNlYzk3MWY7XG4gICAgYm9yZGVyLWNvbG9yOiAjOTg1ZjBkOyB9XG4gIC5idG4td2FybmluZzpob3ZlciB7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2VjOTcxZjtcbiAgICBib3JkZXItY29sb3I6ICNkNTg1MTI7IH1cbiAgLmJ0bi13YXJuaW5nOmFjdGl2ZSwgLmJ0bi13YXJuaW5nLmFjdGl2ZSxcbiAgLm9wZW4gPiAuYnRuLXdhcm5pbmcuZHJvcGRvd24tdG9nZ2xlIHtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWM5NzFmO1xuICAgIGJvcmRlci1jb2xvcjogI2Q1ODUxMjsgfVxuICAgIC5idG4td2FybmluZzphY3RpdmU6aG92ZXIsIC5idG4td2FybmluZzphY3RpdmU6Zm9jdXMsIC5idG4td2FybmluZzphY3RpdmUuZm9jdXMsIC5idG4td2FybmluZy5hY3RpdmU6aG92ZXIsIC5idG4td2FybmluZy5hY3RpdmU6Zm9jdXMsIC5idG4td2FybmluZy5hY3RpdmUuZm9jdXMsXG4gICAgLm9wZW4gPiAuYnRuLXdhcm5pbmcuZHJvcGRvd24tdG9nZ2xlOmhvdmVyLFxuICAgIC5vcGVuID4gLmJ0bi13YXJuaW5nLmRyb3Bkb3duLXRvZ2dsZTpmb2N1cyxcbiAgICAub3BlbiA+IC5idG4td2FybmluZy5kcm9wZG93bi10b2dnbGUuZm9jdXMge1xuICAgICAgY29sb3I6ICNmZmY7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDU4NTEyO1xuICAgICAgYm9yZGVyLWNvbG9yOiAjOTg1ZjBkOyB9XG4gIC5idG4td2FybmluZzphY3RpdmUsIC5idG4td2FybmluZy5hY3RpdmUsXG4gIC5vcGVuID4gLmJ0bi13YXJuaW5nLmRyb3Bkb3duLXRvZ2dsZSB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTsgfVxuICAuYnRuLXdhcm5pbmcuZGlzYWJsZWQ6aG92ZXIsIC5idG4td2FybmluZy5kaXNhYmxlZDpmb2N1cywgLmJ0bi13YXJuaW5nLmRpc2FibGVkLmZvY3VzLCAuYnRuLXdhcm5pbmdbZGlzYWJsZWRdOmhvdmVyLCAuYnRuLXdhcm5pbmdbZGlzYWJsZWRdOmZvY3VzLCAuYnRuLXdhcm5pbmdbZGlzYWJsZWRdLmZvY3VzLFxuICBmaWVsZHNldFtkaXNhYmxlZF0gLmJ0bi13YXJuaW5nOmhvdmVyLFxuICBmaWVsZHNldFtkaXNhYmxlZF0gLmJ0bi13YXJuaW5nOmZvY3VzLFxuICBmaWVsZHNldFtkaXNhYmxlZF0gLmJ0bi13YXJuaW5nLmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjBhZDRlO1xuICAgIGJvcmRlci1jb2xvcjogI2VlYTIzNjsgfVxuICAuYnRuLXdhcm5pbmcgLmJhZGdlIHtcbiAgICBjb2xvcjogI2YwYWQ0ZTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyB9XG5cbi5idG4tZGFuZ2VyIHtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkOTUzNGY7XG4gIGJvcmRlci1jb2xvcjogI2Q0M2YzYTsgfVxuICAuYnRuLWRhbmdlcjpmb2N1cywgLmJ0bi1kYW5nZXIuZm9jdXMge1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNjOTMwMmM7XG4gICAgYm9yZGVyLWNvbG9yOiAjNzYxYzE5OyB9XG4gIC5idG4tZGFuZ2VyOmhvdmVyIHtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYzkzMDJjO1xuICAgIGJvcmRlci1jb2xvcjogI2FjMjkyNTsgfVxuICAuYnRuLWRhbmdlcjphY3RpdmUsIC5idG4tZGFuZ2VyLmFjdGl2ZSxcbiAgLm9wZW4gPiAuYnRuLWRhbmdlci5kcm9wZG93bi10b2dnbGUge1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNjOTMwMmM7XG4gICAgYm9yZGVyLWNvbG9yOiAjYWMyOTI1OyB9XG4gICAgLmJ0bi1kYW5nZXI6YWN0aXZlOmhvdmVyLCAuYnRuLWRhbmdlcjphY3RpdmU6Zm9jdXMsIC5idG4tZGFuZ2VyOmFjdGl2ZS5mb2N1cywgLmJ0bi1kYW5nZXIuYWN0aXZlOmhvdmVyLCAuYnRuLWRhbmdlci5hY3RpdmU6Zm9jdXMsIC5idG4tZGFuZ2VyLmFjdGl2ZS5mb2N1cyxcbiAgICAub3BlbiA+IC5idG4tZGFuZ2VyLmRyb3Bkb3duLXRvZ2dsZTpob3ZlcixcbiAgICAub3BlbiA+IC5idG4tZGFuZ2VyLmRyb3Bkb3duLXRvZ2dsZTpmb2N1cyxcbiAgICAub3BlbiA+IC5idG4tZGFuZ2VyLmRyb3Bkb3duLXRvZ2dsZS5mb2N1cyB7XG4gICAgICBjb2xvcjogI2ZmZjtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNhYzI5MjU7XG4gICAgICBib3JkZXItY29sb3I6ICM3NjFjMTk7IH1cbiAgLmJ0bi1kYW5nZXI6YWN0aXZlLCAuYnRuLWRhbmdlci5hY3RpdmUsXG4gIC5vcGVuID4gLmJ0bi1kYW5nZXIuZHJvcGRvd24tdG9nZ2xlIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBub25lOyB9XG4gIC5idG4tZGFuZ2VyLmRpc2FibGVkOmhvdmVyLCAuYnRuLWRhbmdlci5kaXNhYmxlZDpmb2N1cywgLmJ0bi1kYW5nZXIuZGlzYWJsZWQuZm9jdXMsIC5idG4tZGFuZ2VyW2Rpc2FibGVkXTpob3ZlciwgLmJ0bi1kYW5nZXJbZGlzYWJsZWRdOmZvY3VzLCAuYnRuLWRhbmdlcltkaXNhYmxlZF0uZm9jdXMsXG4gIGZpZWxkc2V0W2Rpc2FibGVkXSAuYnRuLWRhbmdlcjpob3ZlcixcbiAgZmllbGRzZXRbZGlzYWJsZWRdIC5idG4tZGFuZ2VyOmZvY3VzLFxuICBmaWVsZHNldFtkaXNhYmxlZF0gLmJ0bi1kYW5nZXIuZm9jdXMge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNkOTUzNGY7XG4gICAgYm9yZGVyLWNvbG9yOiAjZDQzZjNhOyB9XG4gIC5idG4tZGFuZ2VyIC5iYWRnZSB7XG4gICAgY29sb3I6ICNkOTUzNGY7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsgfVxuXG4uYnRuLWxpbmsge1xuICBjb2xvcjogIzMzN2FiNztcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgYm9yZGVyLXJhZGl1czogMDsgfVxuICAuYnRuLWxpbmssIC5idG4tbGluazphY3RpdmUsIC5idG4tbGluay5hY3RpdmUsIC5idG4tbGlua1tkaXNhYmxlZF0sXG4gIGZpZWxkc2V0W2Rpc2FibGVkXSAuYnRuLWxpbmsge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIC13ZWJraXQtYm94LXNoYWRvdzogbm9uZTtcbiAgICBib3gtc2hhZG93OiBub25lOyB9XG4gIC5idG4tbGluaywgLmJ0bi1saW5rOmhvdmVyLCAuYnRuLWxpbms6Zm9jdXMsIC5idG4tbGluazphY3RpdmUge1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cbiAgLmJ0bi1saW5rOmhvdmVyLCAuYnRuLWxpbms6Zm9jdXMge1xuICAgIGNvbG9yOiAjMjM1MjdjO1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OyB9XG4gIC5idG4tbGlua1tkaXNhYmxlZF06aG92ZXIsIC5idG4tbGlua1tkaXNhYmxlZF06Zm9jdXMsXG4gIGZpZWxkc2V0W2Rpc2FibGVkXSAuYnRuLWxpbms6aG92ZXIsXG4gIGZpZWxkc2V0W2Rpc2FibGVkXSAuYnRuLWxpbms6Zm9jdXMge1xuICAgIGNvbG9yOiAjNzc3Nzc3O1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuXG4uYnRuLWxnLCAuYnRuLWdyb3VwLWxnID4gLmJ0biB7XG4gIHBhZGRpbmc6IDEwcHggMTZweDtcbiAgZm9udC1zaXplOiAxOHB4O1xuICBsaW5lLWhlaWdodDogMS4zMzMzMztcbiAgYm9yZGVyLXJhZGl1czogNnB4OyB9XG5cbi5idG4tc20sIC5idG4tZ3JvdXAtc20gPiAuYnRuIHtcbiAgcGFkZGluZzogNXB4IDEwcHg7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgYm9yZGVyLXJhZGl1czogM3B4OyB9XG5cbi5idG4teHMsIC5idG4tZ3JvdXAteHMgPiAuYnRuIHtcbiAgcGFkZGluZzogMXB4IDVweDtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBsaW5lLWhlaWdodDogMS41O1xuICBib3JkZXItcmFkaXVzOiAzcHg7IH1cblxuLmJ0bi1ibG9jayB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTAwJTsgfVxuXG4uYnRuLWJsb2NrICsgLmJ0bi1ibG9jayB7XG4gIG1hcmdpbi10b3A6IDVweDsgfVxuXG5pbnB1dFt0eXBlPVwic3VibWl0XCJdLmJ0bi1ibG9jayxcbmlucHV0W3R5cGU9XCJyZXNldFwiXS5idG4tYmxvY2ssXG5pbnB1dFt0eXBlPVwiYnV0dG9uXCJdLmJ0bi1ibG9jayB7XG4gIHdpZHRoOiAxMDAlOyB9XG5cbi5mYWRlIHtcbiAgb3BhY2l0eTogMDtcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBvcGFjaXR5IDAuMTVzIGxpbmVhcjtcbiAgLW8tdHJhbnNpdGlvbjogb3BhY2l0eSAwLjE1cyBsaW5lYXI7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4xNXMgbGluZWFyOyB9XG4gIC5mYWRlLmluIHtcbiAgICBvcGFjaXR5OiAxOyB9XG5cbi5jb2xsYXBzZSB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cbiAgLmNvbGxhcHNlLmluIHtcbiAgICBkaXNwbGF5OiBibG9jazsgfVxuXG50ci5jb2xsYXBzZS5pbiB7XG4gIGRpc3BsYXk6IHRhYmxlLXJvdzsgfVxuXG50Ym9keS5jb2xsYXBzZS5pbiB7XG4gIGRpc3BsYXk6IHRhYmxlLXJvdy1ncm91cDsgfVxuXG4uY29sbGFwc2luZyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgaGVpZ2h0OiAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICAtd2Via2l0LXRyYW5zaXRpb24tcHJvcGVydHk6IGhlaWdodCwgdmlzaWJpbGl0eTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogaGVpZ2h0LCB2aXNpYmlsaXR5O1xuICAtd2Via2l0LXRyYW5zaXRpb24tZHVyYXRpb246IDAuMzVzO1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjM1cztcbiAgLXdlYmtpdC10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZTtcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2U7IH1cblxuLmNhcmV0IHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aWR0aDogMDtcbiAgaGVpZ2h0OiAwO1xuICBtYXJnaW4tbGVmdDogMnB4O1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBib3JkZXItdG9wOiA0cHggZGFzaGVkO1xuICBib3JkZXItdG9wOiA0cHggc29saWQgXFw5O1xuICBib3JkZXItcmlnaHQ6IDRweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLWxlZnQ6IDRweCBzb2xpZCB0cmFuc3BhcmVudDsgfVxuXG4uZHJvcHVwLFxuLmRyb3Bkb3duIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG5cbi5kcm9wZG93bi10b2dnbGU6Zm9jdXMge1xuICBvdXRsaW5lOiAwOyB9XG5cbi5kcm9wZG93bi1tZW51IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDEwMCU7XG4gIGxlZnQ6IDA7XG4gIHotaW5kZXg6IDEwMDA7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGZsb2F0OiBsZWZ0O1xuICBtaW4td2lkdGg6IDE2MHB4O1xuICBwYWRkaW5nOiA1cHggMDtcbiAgbWFyZ2luOiAycHggMCAwO1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBmb250LXNpemU6IDE0cHg7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjY2M7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC4xNSk7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDZweCAxMnB4IHJnYmEoMCwgMCwgMCwgMC4xNzUpO1xuICBib3gtc2hhZG93OiAwIDZweCAxMnB4IHJnYmEoMCwgMCwgMCwgMC4xNzUpO1xuICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94OyB9XG4gIC5kcm9wZG93bi1tZW51LnB1bGwtcmlnaHQge1xuICAgIHJpZ2h0OiAwO1xuICAgIGxlZnQ6IGF1dG87IH1cbiAgLmRyb3Bkb3duLW1lbnUgLmRpdmlkZXIge1xuICAgIGhlaWdodDogMXB4O1xuICAgIG1hcmdpbjogOXB4IDA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTVlNWU1OyB9XG4gIC5kcm9wZG93bi1tZW51ID4gbGkgPiBhIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwYWRkaW5nOiAzcHggMjBweDtcbiAgICBjbGVhcjogYm90aDtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjQyODU3O1xuICAgIGNvbG9yOiAjMzMzMzMzO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7IH1cblxuLmRyb3Bkb3duLW1lbnUgPiBsaSA+IGE6aG92ZXIsIC5kcm9wZG93bi1tZW51ID4gbGkgPiBhOmZvY3VzIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBjb2xvcjogIzI2MjYyNjtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y1ZjVmNTsgfVxuXG4uZHJvcGRvd24tbWVudSA+IC5hY3RpdmUgPiBhLCAuZHJvcGRvd24tbWVudSA+IC5hY3RpdmUgPiBhOmhvdmVyLCAuZHJvcGRvd24tbWVudSA+IC5hY3RpdmUgPiBhOmZvY3VzIHtcbiAgY29sb3I6ICNmZmY7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgb3V0bGluZTogMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzMzN2FiNzsgfVxuXG4uZHJvcGRvd24tbWVudSA+IC5kaXNhYmxlZCA+IGEsIC5kcm9wZG93bi1tZW51ID4gLmRpc2FibGVkID4gYTpob3ZlciwgLmRyb3Bkb3duLW1lbnUgPiAuZGlzYWJsZWQgPiBhOmZvY3VzIHtcbiAgY29sb3I6ICM3Nzc3Nzc7IH1cblxuLmRyb3Bkb3duLW1lbnUgPiAuZGlzYWJsZWQgPiBhOmhvdmVyLCAuZHJvcGRvd24tbWVudSA+IC5kaXNhYmxlZCA+IGE6Zm9jdXMge1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xuICBmaWx0ZXI6IHByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudChlbmFibGVkID0gZmFsc2UpO1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkOyB9XG5cbi5vcGVuID4gLmRyb3Bkb3duLW1lbnUge1xuICBkaXNwbGF5OiBibG9jazsgfVxuXG4ub3BlbiA+IGEge1xuICBvdXRsaW5lOiAwOyB9XG5cbi5kcm9wZG93bi1tZW51LXJpZ2h0IHtcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IDA7IH1cblxuLmRyb3Bkb3duLW1lbnUtbGVmdCB7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiBhdXRvOyB9XG5cbi5kcm9wZG93bi1oZWFkZXIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcGFkZGluZzogM3B4IDIwcHg7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgbGluZS1oZWlnaHQ6IDEuNDI4NTc7XG4gIGNvbG9yOiAjNzc3Nzc3O1xuICB3aGl0ZS1zcGFjZTogbm93cmFwOyB9XG5cbi5kcm9wZG93bi1iYWNrZHJvcCB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgdG9wOiAwO1xuICB6LWluZGV4OiA5OTA7IH1cblxuLnB1bGwtcmlnaHQgPiAuZHJvcGRvd24tbWVudSB7XG4gIHJpZ2h0OiAwO1xuICBsZWZ0OiBhdXRvOyB9XG5cbi5kcm9wdXAgLmNhcmV0LFxuLm5hdmJhci1maXhlZC1ib3R0b20gLmRyb3Bkb3duIC5jYXJldCB7XG4gIGJvcmRlci10b3A6IDA7XG4gIGJvcmRlci1ib3R0b206IDRweCBkYXNoZWQ7XG4gIGJvcmRlci1ib3R0b206IDRweCBzb2xpZCBcXDk7XG4gIGNvbnRlbnQ6IFwiXCI7IH1cblxuLmRyb3B1cCAuZHJvcGRvd24tbWVudSxcbi5uYXZiYXItZml4ZWQtYm90dG9tIC5kcm9wZG93biAuZHJvcGRvd24tbWVudSB7XG4gIHRvcDogYXV0bztcbiAgYm90dG9tOiAxMDAlO1xuICBtYXJnaW4tYm90dG9tOiAycHg7IH1cblxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5uYXZiYXItcmlnaHQgLmRyb3Bkb3duLW1lbnUge1xuICAgIHJpZ2h0OiAwO1xuICAgIGxlZnQ6IGF1dG87IH1cbiAgLm5hdmJhci1yaWdodCAuZHJvcGRvd24tbWVudS1sZWZ0IHtcbiAgICBsZWZ0OiAwO1xuICAgIHJpZ2h0OiBhdXRvOyB9IH1cblxuLmJ0bi1ncm91cCxcbi5idG4tZ3JvdXAtdmVydGljYWwge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsgfVxuICAuYnRuLWdyb3VwID4gLmJ0bixcbiAgLmJ0bi1ncm91cC12ZXJ0aWNhbCA+IC5idG4ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBmbG9hdDogbGVmdDsgfVxuICAgIC5idG4tZ3JvdXAgPiAuYnRuOmhvdmVyLCAuYnRuLWdyb3VwID4gLmJ0bjpmb2N1cywgLmJ0bi1ncm91cCA+IC5idG46YWN0aXZlLCAuYnRuLWdyb3VwID4gLmJ0bi5hY3RpdmUsXG4gICAgLmJ0bi1ncm91cC12ZXJ0aWNhbCA+IC5idG46aG92ZXIsXG4gICAgLmJ0bi1ncm91cC12ZXJ0aWNhbCA+IC5idG46Zm9jdXMsXG4gICAgLmJ0bi1ncm91cC12ZXJ0aWNhbCA+IC5idG46YWN0aXZlLFxuICAgIC5idG4tZ3JvdXAtdmVydGljYWwgPiAuYnRuLmFjdGl2ZSB7XG4gICAgICB6LWluZGV4OiAyOyB9XG5cbi5idG4tZ3JvdXAgLmJ0biArIC5idG4sXG4uYnRuLWdyb3VwIC5idG4gKyAuYnRuLWdyb3VwLFxuLmJ0bi1ncm91cCAuYnRuLWdyb3VwICsgLmJ0bixcbi5idG4tZ3JvdXAgLmJ0bi1ncm91cCArIC5idG4tZ3JvdXAge1xuICBtYXJnaW4tbGVmdDogLTFweDsgfVxuXG4uYnRuLXRvb2xiYXIge1xuICBtYXJnaW4tbGVmdDogLTVweDsgfVxuICAuYnRuLXRvb2xiYXI6YmVmb3JlLCAuYnRuLXRvb2xiYXI6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiIFwiO1xuICAgIGRpc3BsYXk6IHRhYmxlOyB9XG4gIC5idG4tdG9vbGJhcjphZnRlciB7XG4gICAgY2xlYXI6IGJvdGg7IH1cbiAgLmJ0bi10b29sYmFyIC5idG4sXG4gIC5idG4tdG9vbGJhciAuYnRuLWdyb3VwLFxuICAuYnRuLXRvb2xiYXIgLmlucHV0LWdyb3VwIHtcbiAgICBmbG9hdDogbGVmdDsgfVxuICAuYnRuLXRvb2xiYXIgPiAuYnRuLFxuICAuYnRuLXRvb2xiYXIgPiAuYnRuLWdyb3VwLFxuICAuYnRuLXRvb2xiYXIgPiAuaW5wdXQtZ3JvdXAge1xuICAgIG1hcmdpbi1sZWZ0OiA1cHg7IH1cblxuLmJ0bi1ncm91cCA+IC5idG46bm90KDpmaXJzdC1jaGlsZCk6bm90KDpsYXN0LWNoaWxkKTpub3QoLmRyb3Bkb3duLXRvZ2dsZSkge1xuICBib3JkZXItcmFkaXVzOiAwOyB9XG5cbi5idG4tZ3JvdXAgPiAuYnRuOmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luLWxlZnQ6IDA7IH1cbiAgLmJ0bi1ncm91cCA+IC5idG46Zmlyc3QtY2hpbGQ6bm90KDpsYXN0LWNoaWxkKTpub3QoLmRyb3Bkb3duLXRvZ2dsZSkge1xuICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwO1xuICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwOyB9XG5cbi5idG4tZ3JvdXAgPiAuYnRuOmxhc3QtY2hpbGQ6bm90KDpmaXJzdC1jaGlsZCksXG4uYnRuLWdyb3VwID4gLmRyb3Bkb3duLXRvZ2dsZTpub3QoOmZpcnN0LWNoaWxkKSB7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDA7IH1cblxuLmJ0bi1ncm91cCA+IC5idG4tZ3JvdXAge1xuICBmbG9hdDogbGVmdDsgfVxuXG4uYnRuLWdyb3VwID4gLmJ0bi1ncm91cDpub3QoOmZpcnN0LWNoaWxkKTpub3QoOmxhc3QtY2hpbGQpID4gLmJ0biB7XG4gIGJvcmRlci1yYWRpdXM6IDA7IH1cblxuLmJ0bi1ncm91cCA+IC5idG4tZ3JvdXA6Zmlyc3QtY2hpbGQ6bm90KDpsYXN0LWNoaWxkKSA+IC5idG46bGFzdC1jaGlsZCxcbi5idG4tZ3JvdXAgPiAuYnRuLWdyb3VwOmZpcnN0LWNoaWxkOm5vdCg6bGFzdC1jaGlsZCkgPiAuZHJvcGRvd24tdG9nZ2xlIHtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwOyB9XG5cbi5idG4tZ3JvdXAgPiAuYnRuLWdyb3VwOmxhc3QtY2hpbGQ6bm90KDpmaXJzdC1jaGlsZCkgPiAuYnRuOmZpcnN0LWNoaWxkIHtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMDsgfVxuXG4uYnRuLWdyb3VwIC5kcm9wZG93bi10b2dnbGU6YWN0aXZlLFxuLmJ0bi1ncm91cC5vcGVuIC5kcm9wZG93bi10b2dnbGUge1xuICBvdXRsaW5lOiAwOyB9XG5cbi5idG4tZ3JvdXAgPiAuYnRuICsgLmRyb3Bkb3duLXRvZ2dsZSB7XG4gIHBhZGRpbmctbGVmdDogOHB4O1xuICBwYWRkaW5nLXJpZ2h0OiA4cHg7IH1cblxuLmJ0bi1ncm91cCA+IC5idG4tbGcgKyAuZHJvcGRvd24tdG9nZ2xlLCAuYnRuLWdyb3VwLWxnLmJ0bi1ncm91cCA+IC5idG4gKyAuZHJvcGRvd24tdG9nZ2xlIHtcbiAgcGFkZGluZy1sZWZ0OiAxMnB4O1xuICBwYWRkaW5nLXJpZ2h0OiAxMnB4OyB9XG5cbi5idG4tZ3JvdXAub3BlbiAuZHJvcGRvd24tdG9nZ2xlIHtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiBpbnNldCAwIDNweCA1cHggcmdiYSgwLCAwLCAwLCAwLjEyNSk7XG4gIGJveC1zaGFkb3c6IGluc2V0IDAgM3B4IDVweCByZ2JhKDAsIDAsIDAsIDAuMTI1KTsgfVxuICAuYnRuLWdyb3VwLm9wZW4gLmRyb3Bkb3duLXRvZ2dsZS5idG4tbGluayB7XG4gICAgLXdlYmtpdC1ib3gtc2hhZG93OiBub25lO1xuICAgIGJveC1zaGFkb3c6IG5vbmU7IH1cblxuLmJ0biAuY2FyZXQge1xuICBtYXJnaW4tbGVmdDogMDsgfVxuXG4uYnRuLWxnIC5jYXJldCwgLmJ0bi1ncm91cC1sZyA+IC5idG4gLmNhcmV0IHtcbiAgYm9yZGVyLXdpZHRoOiA1cHggNXB4IDA7XG4gIGJvcmRlci1ib3R0b20td2lkdGg6IDA7IH1cblxuLmRyb3B1cCAuYnRuLWxnIC5jYXJldCwgLmRyb3B1cCAuYnRuLWdyb3VwLWxnID4gLmJ0biAuY2FyZXQge1xuICBib3JkZXItd2lkdGg6IDAgNXB4IDVweDsgfVxuXG4uYnRuLWdyb3VwLXZlcnRpY2FsID4gLmJ0bixcbi5idG4tZ3JvdXAtdmVydGljYWwgPiAuYnRuLWdyb3VwLFxuLmJ0bi1ncm91cC12ZXJ0aWNhbCA+IC5idG4tZ3JvdXAgPiAuYnRuIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZsb2F0OiBub25lO1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiAxMDAlOyB9XG5cbi5idG4tZ3JvdXAtdmVydGljYWwgPiAuYnRuLWdyb3VwOmJlZm9yZSwgLmJ0bi1ncm91cC12ZXJ0aWNhbCA+IC5idG4tZ3JvdXA6YWZ0ZXIge1xuICBjb250ZW50OiBcIiBcIjtcbiAgZGlzcGxheTogdGFibGU7IH1cblxuLmJ0bi1ncm91cC12ZXJ0aWNhbCA+IC5idG4tZ3JvdXA6YWZ0ZXIge1xuICBjbGVhcjogYm90aDsgfVxuXG4uYnRuLWdyb3VwLXZlcnRpY2FsID4gLmJ0bi1ncm91cCA+IC5idG4ge1xuICBmbG9hdDogbm9uZTsgfVxuXG4uYnRuLWdyb3VwLXZlcnRpY2FsID4gLmJ0biArIC5idG4sXG4uYnRuLWdyb3VwLXZlcnRpY2FsID4gLmJ0biArIC5idG4tZ3JvdXAsXG4uYnRuLWdyb3VwLXZlcnRpY2FsID4gLmJ0bi1ncm91cCArIC5idG4sXG4uYnRuLWdyb3VwLXZlcnRpY2FsID4gLmJ0bi1ncm91cCArIC5idG4tZ3JvdXAge1xuICBtYXJnaW4tdG9wOiAtMXB4O1xuICBtYXJnaW4tbGVmdDogMDsgfVxuXG4uYnRuLWdyb3VwLXZlcnRpY2FsID4gLmJ0bjpub3QoOmZpcnN0LWNoaWxkKTpub3QoOmxhc3QtY2hpbGQpIHtcbiAgYm9yZGVyLXJhZGl1czogMDsgfVxuXG4uYnRuLWdyb3VwLXZlcnRpY2FsID4gLmJ0bjpmaXJzdC1jaGlsZDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDRweDtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogNHB4O1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMDtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDsgfVxuXG4uYnRuLWdyb3VwLXZlcnRpY2FsID4gLmJ0bjpsYXN0LWNoaWxkOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDA7XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDA7XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiA0cHg7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDRweDsgfVxuXG4uYnRuLWdyb3VwLXZlcnRpY2FsID4gLmJ0bi1ncm91cDpub3QoOmZpcnN0LWNoaWxkKTpub3QoOmxhc3QtY2hpbGQpID4gLmJ0biB7XG4gIGJvcmRlci1yYWRpdXM6IDA7IH1cblxuLmJ0bi1ncm91cC12ZXJ0aWNhbCA+IC5idG4tZ3JvdXA6Zmlyc3QtY2hpbGQ6bm90KDpsYXN0LWNoaWxkKSA+IC5idG46bGFzdC1jaGlsZCxcbi5idG4tZ3JvdXAtdmVydGljYWwgPiAuYnRuLWdyb3VwOmZpcnN0LWNoaWxkOm5vdCg6bGFzdC1jaGlsZCkgPiAuZHJvcGRvd24tdG9nZ2xlIHtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7IH1cblxuLmJ0bi1ncm91cC12ZXJ0aWNhbCA+IC5idG4tZ3JvdXA6bGFzdC1jaGlsZDpub3QoOmZpcnN0LWNoaWxkKSA+IC5idG46Zmlyc3QtY2hpbGQge1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMDtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMDsgfVxuXG4uYnRuLWdyb3VwLWp1c3RpZmllZCB7XG4gIGRpc3BsYXk6IHRhYmxlO1xuICB3aWR0aDogMTAwJTtcbiAgdGFibGUtbGF5b3V0OiBmaXhlZDtcbiAgYm9yZGVyLWNvbGxhcHNlOiBzZXBhcmF0ZTsgfVxuICAuYnRuLWdyb3VwLWp1c3RpZmllZCA+IC5idG4sXG4gIC5idG4tZ3JvdXAtanVzdGlmaWVkID4gLmJ0bi1ncm91cCB7XG4gICAgZmxvYXQ6IG5vbmU7XG4gICAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgICB3aWR0aDogMSU7IH1cbiAgLmJ0bi1ncm91cC1qdXN0aWZpZWQgPiAuYnRuLWdyb3VwIC5idG4ge1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gIC5idG4tZ3JvdXAtanVzdGlmaWVkID4gLmJ0bi1ncm91cCAuZHJvcGRvd24tbWVudSB7XG4gICAgbGVmdDogYXV0bzsgfVxuXG5bZGF0YS10b2dnbGU9XCJidXR0b25zXCJdID4gLmJ0biBpbnB1dFt0eXBlPVwicmFkaW9cIl0sXG5bZGF0YS10b2dnbGU9XCJidXR0b25zXCJdID4gLmJ0biBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0sXG5bZGF0YS10b2dnbGU9XCJidXR0b25zXCJdID4gLmJ0bi1ncm91cCA+IC5idG4gaW5wdXRbdHlwZT1cInJhZGlvXCJdLFxuW2RhdGEtdG9nZ2xlPVwiYnV0dG9uc1wiXSA+IC5idG4tZ3JvdXAgPiAuYnRuIGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgY2xpcDogcmVjdCgwLCAwLCAwLCAwKTtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7IH1cblxuLmlucHV0LWdyb3VwIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiB0YWJsZTtcbiAgYm9yZGVyLWNvbGxhcHNlOiBzZXBhcmF0ZTsgfVxuICAuaW5wdXQtZ3JvdXBbY2xhc3MqPVwiY29sLVwiXSB7XG4gICAgZmxvYXQ6IG5vbmU7XG4gICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgIHBhZGRpbmctcmlnaHQ6IDA7IH1cbiAgLmlucHV0LWdyb3VwIC5mb3JtLWNvbnRyb2wge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB6LWluZGV4OiAyO1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi1ib3R0b206IDA7IH1cbiAgICAuaW5wdXQtZ3JvdXAgLmZvcm0tY29udHJvbDpmb2N1cyB7XG4gICAgICB6LWluZGV4OiAzOyB9XG5cbi5pbnB1dC1ncm91cC1hZGRvbixcbi5pbnB1dC1ncm91cC1idG4sXG4uaW5wdXQtZ3JvdXAgLmZvcm0tY29udHJvbCB7XG4gIGRpc3BsYXk6IHRhYmxlLWNlbGw7IH1cbiAgLmlucHV0LWdyb3VwLWFkZG9uOm5vdCg6Zmlyc3QtY2hpbGQpOm5vdCg6bGFzdC1jaGlsZCksXG4gIC5pbnB1dC1ncm91cC1idG46bm90KDpmaXJzdC1jaGlsZCk6bm90KDpsYXN0LWNoaWxkKSxcbiAgLmlucHV0LWdyb3VwIC5mb3JtLWNvbnRyb2w6bm90KDpmaXJzdC1jaGlsZCk6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgYm9yZGVyLXJhZGl1czogMDsgfVxuXG4uaW5wdXQtZ3JvdXAtYWRkb24sXG4uaW5wdXQtZ3JvdXAtYnRuIHtcbiAgd2lkdGg6IDElO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyB9XG5cbi5pbnB1dC1ncm91cC1hZGRvbiB7XG4gIHBhZGRpbmc6IDZweCAxMnB4O1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBjb2xvcjogIzU1NTU1NTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlZWVlO1xuICBib3JkZXI6IDFweCBzb2xpZCAjY2NjO1xuICBib3JkZXItcmFkaXVzOiA0cHg7IH1cbiAgLmlucHV0LWdyb3VwLWFkZG9uLmlucHV0LXNtLFxuICAuaW5wdXQtZ3JvdXAtc20gPiAuaW5wdXQtZ3JvdXAtYWRkb24sXG4gIC5pbnB1dC1ncm91cC1zbSA+IC5pbnB1dC1ncm91cC1idG4gPiAuaW5wdXQtZ3JvdXAtYWRkb24uYnRuIHtcbiAgICBwYWRkaW5nOiA1cHggMTBweDtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgYm9yZGVyLXJhZGl1czogM3B4OyB9XG4gIC5pbnB1dC1ncm91cC1hZGRvbi5pbnB1dC1sZyxcbiAgLmlucHV0LWdyb3VwLWxnID4gLmlucHV0LWdyb3VwLWFkZG9uLFxuICAuaW5wdXQtZ3JvdXAtbGcgPiAuaW5wdXQtZ3JvdXAtYnRuID4gLmlucHV0LWdyb3VwLWFkZG9uLmJ0biB7XG4gICAgcGFkZGluZzogMTBweCAxNnB4O1xuICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICBib3JkZXItcmFkaXVzOiA2cHg7IH1cbiAgLmlucHV0LWdyb3VwLWFkZG9uIGlucHV0W3R5cGU9XCJyYWRpb1wiXSxcbiAgLmlucHV0LWdyb3VwLWFkZG9uIGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSB7XG4gICAgbWFyZ2luLXRvcDogMDsgfVxuXG4uaW5wdXQtZ3JvdXAgLmZvcm0tY29udHJvbDpmaXJzdC1jaGlsZCxcbi5pbnB1dC1ncm91cC1hZGRvbjpmaXJzdC1jaGlsZCxcbi5pbnB1dC1ncm91cC1idG46Zmlyc3QtY2hpbGQgPiAuYnRuLFxuLmlucHV0LWdyb3VwLWJ0bjpmaXJzdC1jaGlsZCA+IC5idG4tZ3JvdXAgPiAuYnRuLFxuLmlucHV0LWdyb3VwLWJ0bjpmaXJzdC1jaGlsZCA+IC5kcm9wZG93bi10b2dnbGUsXG4uaW5wdXQtZ3JvdXAtYnRuOmxhc3QtY2hpbGQgPiAuYnRuOm5vdCg6bGFzdC1jaGlsZCk6bm90KC5kcm9wZG93bi10b2dnbGUpLFxuLmlucHV0LWdyb3VwLWJ0bjpsYXN0LWNoaWxkID4gLmJ0bi1ncm91cDpub3QoOmxhc3QtY2hpbGQpID4gLmJ0biB7XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwO1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMDsgfVxuXG4uaW5wdXQtZ3JvdXAtYWRkb246Zmlyc3QtY2hpbGQge1xuICBib3JkZXItcmlnaHQ6IDA7IH1cblxuLmlucHV0LWdyb3VwIC5mb3JtLWNvbnRyb2w6bGFzdC1jaGlsZCxcbi5pbnB1dC1ncm91cC1hZGRvbjpsYXN0LWNoaWxkLFxuLmlucHV0LWdyb3VwLWJ0bjpsYXN0LWNoaWxkID4gLmJ0bixcbi5pbnB1dC1ncm91cC1idG46bGFzdC1jaGlsZCA+IC5idG4tZ3JvdXAgPiAuYnRuLFxuLmlucHV0LWdyb3VwLWJ0bjpsYXN0LWNoaWxkID4gLmRyb3Bkb3duLXRvZ2dsZSxcbi5pbnB1dC1ncm91cC1idG46Zmlyc3QtY2hpbGQgPiAuYnRuOm5vdCg6Zmlyc3QtY2hpbGQpLFxuLmlucHV0LWdyb3VwLWJ0bjpmaXJzdC1jaGlsZCA+IC5idG4tZ3JvdXA6bm90KDpmaXJzdC1jaGlsZCkgPiAuYnRuIHtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMDsgfVxuXG4uaW5wdXQtZ3JvdXAtYWRkb246bGFzdC1jaGlsZCB7XG4gIGJvcmRlci1sZWZ0OiAwOyB9XG5cbi5pbnB1dC1ncm91cC1idG4ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGZvbnQtc2l6ZTogMDtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDsgfVxuICAuaW5wdXQtZ3JvdXAtYnRuID4gLmJ0biB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gICAgLmlucHV0LWdyb3VwLWJ0biA+IC5idG4gKyAuYnRuIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAtMXB4OyB9XG4gICAgLmlucHV0LWdyb3VwLWJ0biA+IC5idG46aG92ZXIsIC5pbnB1dC1ncm91cC1idG4gPiAuYnRuOmZvY3VzLCAuaW5wdXQtZ3JvdXAtYnRuID4gLmJ0bjphY3RpdmUge1xuICAgICAgei1pbmRleDogMjsgfVxuICAuaW5wdXQtZ3JvdXAtYnRuOmZpcnN0LWNoaWxkID4gLmJ0bixcbiAgLmlucHV0LWdyb3VwLWJ0bjpmaXJzdC1jaGlsZCA+IC5idG4tZ3JvdXAge1xuICAgIG1hcmdpbi1yaWdodDogLTFweDsgfVxuICAuaW5wdXQtZ3JvdXAtYnRuOmxhc3QtY2hpbGQgPiAuYnRuLFxuICAuaW5wdXQtZ3JvdXAtYnRuOmxhc3QtY2hpbGQgPiAuYnRuLWdyb3VwIHtcbiAgICB6LWluZGV4OiAyO1xuICAgIG1hcmdpbi1sZWZ0OiAtMXB4OyB9XG5cbi5uYXYge1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICBwYWRkaW5nLWxlZnQ6IDA7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7IH1cbiAgLm5hdjpiZWZvcmUsIC5uYXY6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiIFwiO1xuICAgIGRpc3BsYXk6IHRhYmxlOyB9XG4gIC5uYXY6YWZ0ZXIge1xuICAgIGNsZWFyOiBib3RoOyB9XG4gIC5uYXYgPiBsaSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gICAgLm5hdiA+IGxpID4gYSB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHBhZGRpbmc6IDEwcHggMTVweDsgfVxuICAgICAgLm5hdiA+IGxpID4gYTpob3ZlciwgLm5hdiA+IGxpID4gYTpmb2N1cyB7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2VlZWVlZTsgfVxuICAgIC5uYXYgPiBsaS5kaXNhYmxlZCA+IGEge1xuICAgICAgY29sb3I6ICM3Nzc3Nzc7IH1cbiAgICAgIC5uYXYgPiBsaS5kaXNhYmxlZCA+IGE6aG92ZXIsIC5uYXYgPiBsaS5kaXNhYmxlZCA+IGE6Zm9jdXMge1xuICAgICAgICBjb2xvcjogIzc3Nzc3NztcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDsgfVxuICAubmF2IC5vcGVuID4gYSwgLm5hdiAub3BlbiA+IGE6aG92ZXIsIC5uYXYgLm9wZW4gPiBhOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlZWVlO1xuICAgIGJvcmRlci1jb2xvcjogIzMzN2FiNzsgfVxuICAubmF2IC5uYXYtZGl2aWRlciB7XG4gICAgaGVpZ2h0OiAxcHg7XG4gICAgbWFyZ2luOiA5cHggMDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNlNWU1ZTU7IH1cbiAgLm5hdiA+IGxpID4gYSA+IGltZyB7XG4gICAgbWF4LXdpZHRoOiBub25lOyB9XG5cbi5uYXYtdGFicyB7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZGRkOyB9XG4gIC5uYXYtdGFicyA+IGxpIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBtYXJnaW4tYm90dG9tOiAtMXB4OyB9XG4gICAgLm5hdi10YWJzID4gbGkgPiBhIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMnB4O1xuICAgICAgbGluZS1oZWlnaHQ6IDEuNDI4NTc7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDRweCA0cHggMCAwOyB9XG4gICAgICAubmF2LXRhYnMgPiBsaSA+IGE6aG92ZXIge1xuICAgICAgICBib3JkZXItY29sb3I6ICNlZWVlZWUgI2VlZWVlZSAjZGRkOyB9XG4gICAgLm5hdi10YWJzID4gbGkuYWN0aXZlID4gYSwgLm5hdi10YWJzID4gbGkuYWN0aXZlID4gYTpob3ZlciwgLm5hdi10YWJzID4gbGkuYWN0aXZlID4gYTpmb2N1cyB7XG4gICAgICBjb2xvcjogIzU1NTU1NTtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjZGRkO1xuICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICBjdXJzb3I6IGRlZmF1bHQ7IH1cblxuLm5hdi1waWxscyA+IGxpIHtcbiAgZmxvYXQ6IGxlZnQ7IH1cbiAgLm5hdi1waWxscyA+IGxpID4gYSB7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4OyB9XG4gIC5uYXYtcGlsbHMgPiBsaSArIGxpIHtcbiAgICBtYXJnaW4tbGVmdDogMnB4OyB9XG4gIC5uYXYtcGlsbHMgPiBsaS5hY3RpdmUgPiBhLCAubmF2LXBpbGxzID4gbGkuYWN0aXZlID4gYTpob3ZlciwgLm5hdi1waWxscyA+IGxpLmFjdGl2ZSA+IGE6Zm9jdXMge1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMzMzdhYjc7IH1cblxuLm5hdi1zdGFja2VkID4gbGkge1xuICBmbG9hdDogbm9uZTsgfVxuICAubmF2LXN0YWNrZWQgPiBsaSArIGxpIHtcbiAgICBtYXJnaW4tdG9wOiAycHg7XG4gICAgbWFyZ2luLWxlZnQ6IDA7IH1cblxuLm5hdi1qdXN0aWZpZWQsIC5uYXYtdGFicy5uYXYtanVzdGlmaWVkIHtcbiAgd2lkdGg6IDEwMCU7IH1cbiAgLm5hdi1qdXN0aWZpZWQgPiBsaSwgLm5hdi10YWJzLm5hdi1qdXN0aWZpZWQgPiBsaSB7XG4gICAgZmxvYXQ6IG5vbmU7IH1cbiAgICAubmF2LWp1c3RpZmllZCA+IGxpID4gYSwgLm5hdi10YWJzLm5hdi1qdXN0aWZpZWQgPiBsaSA+IGEge1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgbWFyZ2luLWJvdHRvbTogNXB4OyB9XG4gIC5uYXYtanVzdGlmaWVkID4gLmRyb3Bkb3duIC5kcm9wZG93bi1tZW51IHtcbiAgICB0b3A6IGF1dG87XG4gICAgbGVmdDogYXV0bzsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgICAubmF2LWp1c3RpZmllZCA+IGxpLCAubmF2LXRhYnMubmF2LWp1c3RpZmllZCA+IGxpIHtcbiAgICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgICB3aWR0aDogMSU7IH1cbiAgICAgIC5uYXYtanVzdGlmaWVkID4gbGkgPiBhLCAubmF2LXRhYnMubmF2LWp1c3RpZmllZCA+IGxpID4gYSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7IH0gfVxuXG4ubmF2LXRhYnMtanVzdGlmaWVkLCAubmF2LXRhYnMubmF2LWp1c3RpZmllZCB7XG4gIGJvcmRlci1ib3R0b206IDA7IH1cbiAgLm5hdi10YWJzLWp1c3RpZmllZCA+IGxpID4gYSwgLm5hdi10YWJzLm5hdi1qdXN0aWZpZWQgPiBsaSA+IGEge1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7IH1cbiAgLm5hdi10YWJzLWp1c3RpZmllZCA+IC5hY3RpdmUgPiBhLCAubmF2LXRhYnMubmF2LWp1c3RpZmllZCA+IC5hY3RpdmUgPiBhLFxuICAubmF2LXRhYnMtanVzdGlmaWVkID4gLmFjdGl2ZSA+IGE6aG92ZXIsXG4gIC5uYXYtdGFicy5uYXYtanVzdGlmaWVkID4gLmFjdGl2ZSA+IGE6aG92ZXIsXG4gIC5uYXYtdGFicy1qdXN0aWZpZWQgPiAuYWN0aXZlID4gYTpmb2N1cyxcbiAgLm5hdi10YWJzLm5hdi1qdXN0aWZpZWQgPiAuYWN0aXZlID4gYTpmb2N1cyB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2RkZDsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgICAubmF2LXRhYnMtanVzdGlmaWVkID4gbGkgPiBhLCAubmF2LXRhYnMubmF2LWp1c3RpZmllZCA+IGxpID4gYSB7XG4gICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2RkZDtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDRweCA0cHggMCAwOyB9XG4gICAgLm5hdi10YWJzLWp1c3RpZmllZCA+IC5hY3RpdmUgPiBhLCAubmF2LXRhYnMubmF2LWp1c3RpZmllZCA+IC5hY3RpdmUgPiBhLFxuICAgIC5uYXYtdGFicy1qdXN0aWZpZWQgPiAuYWN0aXZlID4gYTpob3ZlcixcbiAgICAubmF2LXRhYnMubmF2LWp1c3RpZmllZCA+IC5hY3RpdmUgPiBhOmhvdmVyLFxuICAgIC5uYXYtdGFicy1qdXN0aWZpZWQgPiAuYWN0aXZlID4gYTpmb2N1cyxcbiAgICAubmF2LXRhYnMubmF2LWp1c3RpZmllZCA+IC5hY3RpdmUgPiBhOmZvY3VzIHtcbiAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICNmZmY7IH0gfVxuXG4udGFiLWNvbnRlbnQgPiAudGFiLXBhbmUge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbi50YWItY29udGVudCA+IC5hY3RpdmUge1xuICBkaXNwbGF5OiBibG9jazsgfVxuXG4ubmF2LXRhYnMgLmRyb3Bkb3duLW1lbnUge1xuICBtYXJnaW4tdG9wOiAtMXB4O1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMDtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMDsgfVxuXG4ubmF2YmFyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtaW4taGVpZ2h0OiA1MHB4O1xuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDsgfVxuICAubmF2YmFyOmJlZm9yZSwgLm5hdmJhcjphZnRlciB7XG4gICAgY29udGVudDogXCIgXCI7XG4gICAgZGlzcGxheTogdGFibGU7IH1cbiAgLm5hdmJhcjphZnRlciB7XG4gICAgY2xlYXI6IGJvdGg7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gICAgLm5hdmJhciB7XG4gICAgICBib3JkZXItcmFkaXVzOiA0cHg7IH0gfVxuXG4ubmF2YmFyLWhlYWRlcjpiZWZvcmUsIC5uYXZiYXItaGVhZGVyOmFmdGVyIHtcbiAgY29udGVudDogXCIgXCI7XG4gIGRpc3BsYXk6IHRhYmxlOyB9XG5cbi5uYXZiYXItaGVhZGVyOmFmdGVyIHtcbiAgY2xlYXI6IGJvdGg7IH1cblxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5uYXZiYXItaGVhZGVyIHtcbiAgICBmbG9hdDogbGVmdDsgfSB9XG5cbi5uYXZiYXItY29sbGFwc2Uge1xuICBvdmVyZmxvdy14OiB2aXNpYmxlO1xuICBwYWRkaW5nLXJpZ2h0OiAxNXB4O1xuICBwYWRkaW5nLWxlZnQ6IDE1cHg7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSk7XG4gIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDsgfVxuICAubmF2YmFyLWNvbGxhcHNlOmJlZm9yZSwgLm5hdmJhci1jb2xsYXBzZTphZnRlciB7XG4gICAgY29udGVudDogXCIgXCI7XG4gICAgZGlzcGxheTogdGFibGU7IH1cbiAgLm5hdmJhci1jb2xsYXBzZTphZnRlciB7XG4gICAgY2xlYXI6IGJvdGg7IH1cbiAgLm5hdmJhci1jb2xsYXBzZS5pbiB7XG4gICAgb3ZlcmZsb3cteTogYXV0bzsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgICAubmF2YmFyLWNvbGxhcHNlIHtcbiAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgYm9yZGVyLXRvcDogMDtcbiAgICAgIGJveC1zaGFkb3c6IG5vbmU7IH1cbiAgICAgIC5uYXZiYXItY29sbGFwc2UuY29sbGFwc2Uge1xuICAgICAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICAgICAgICBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgIG92ZXJmbG93OiB2aXNpYmxlICFpbXBvcnRhbnQ7IH1cbiAgICAgIC5uYXZiYXItY29sbGFwc2UuaW4ge1xuICAgICAgICBvdmVyZmxvdy15OiB2aXNpYmxlOyB9XG4gICAgICAubmF2YmFyLWZpeGVkLXRvcCAubmF2YmFyLWNvbGxhcHNlLFxuICAgICAgLm5hdmJhci1zdGF0aWMtdG9wIC5uYXZiYXItY29sbGFwc2UsXG4gICAgICAubmF2YmFyLWZpeGVkLWJvdHRvbSAubmF2YmFyLWNvbGxhcHNlIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwOyB9IH1cblxuLm5hdmJhci1maXhlZC10b3AgLm5hdmJhci1jb2xsYXBzZSxcbi5uYXZiYXItZml4ZWQtYm90dG9tIC5uYXZiYXItY29sbGFwc2Uge1xuICBtYXgtaGVpZ2h0OiAzNDBweDsgfVxuICBAbWVkaWEgKG1heC1kZXZpY2Utd2lkdGg6IDQ4MHB4KSBhbmQgKG9yaWVudGF0aW9uOiBsYW5kc2NhcGUpIHtcbiAgICAubmF2YmFyLWZpeGVkLXRvcCAubmF2YmFyLWNvbGxhcHNlLFxuICAgIC5uYXZiYXItZml4ZWQtYm90dG9tIC5uYXZiYXItY29sbGFwc2Uge1xuICAgICAgbWF4LWhlaWdodDogMjAwcHg7IH0gfVxuXG4uY29udGFpbmVyID4gLm5hdmJhci1oZWFkZXIsXG4uY29udGFpbmVyID4gLm5hdmJhci1jb2xsYXBzZSxcbi5jb250YWluZXItZmx1aWQgPiAubmF2YmFyLWhlYWRlcixcbi5jb250YWluZXItZmx1aWQgPiAubmF2YmFyLWNvbGxhcHNlIHtcbiAgbWFyZ2luLXJpZ2h0OiAtMTVweDtcbiAgbWFyZ2luLWxlZnQ6IC0xNXB4OyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAgIC5jb250YWluZXIgPiAubmF2YmFyLWhlYWRlcixcbiAgICAuY29udGFpbmVyID4gLm5hdmJhci1jb2xsYXBzZSxcbiAgICAuY29udGFpbmVyLWZsdWlkID4gLm5hdmJhci1oZWFkZXIsXG4gICAgLmNvbnRhaW5lci1mbHVpZCA+IC5uYXZiYXItY29sbGFwc2Uge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgbWFyZ2luLWxlZnQ6IDA7IH0gfVxuXG4ubmF2YmFyLXN0YXRpYy10b3Age1xuICB6LWluZGV4OiAxMDAwO1xuICBib3JkZXItd2lkdGg6IDAgMCAxcHg7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gICAgLm5hdmJhci1zdGF0aWMtdG9wIHtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDA7IH0gfVxuXG4ubmF2YmFyLWZpeGVkLXRvcCxcbi5uYXZiYXItZml4ZWQtYm90dG9tIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICByaWdodDogMDtcbiAgbGVmdDogMDtcbiAgei1pbmRleDogMTAzMDsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgICAubmF2YmFyLWZpeGVkLXRvcCxcbiAgICAubmF2YmFyLWZpeGVkLWJvdHRvbSB7XG4gICAgICBib3JkZXItcmFkaXVzOiAwOyB9IH1cblxuLm5hdmJhci1maXhlZC10b3Age1xuICB0b3A6IDA7XG4gIGJvcmRlci13aWR0aDogMCAwIDFweDsgfVxuXG4ubmF2YmFyLWZpeGVkLWJvdHRvbSB7XG4gIGJvdHRvbTogMDtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgYm9yZGVyLXdpZHRoOiAxcHggMCAwOyB9XG5cbi5uYXZiYXItYnJhbmQge1xuICBmbG9hdDogbGVmdDtcbiAgcGFkZGluZzogMTVweCAxNXB4O1xuICBmb250LXNpemU6IDE4cHg7XG4gIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICBoZWlnaHQ6IDUwcHg7IH1cbiAgLm5hdmJhci1icmFuZDpob3ZlciwgLm5hdmJhci1icmFuZDpmb2N1cyB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG4gIC5uYXZiYXItYnJhbmQgPiBpbWcge1xuICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAgIC5uYXZiYXIgPiAuY29udGFpbmVyIC5uYXZiYXItYnJhbmQsXG4gICAgLm5hdmJhciA+IC5jb250YWluZXItZmx1aWQgLm5hdmJhci1icmFuZCB7XG4gICAgICBtYXJnaW4tbGVmdDogLTE1cHg7IH0gfVxuXG4ubmF2YmFyLXRvZ2dsZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBtYXJnaW4tcmlnaHQ6IDE1cHg7XG4gIHBhZGRpbmc6IDlweCAxMHB4O1xuICBtYXJnaW4tdG9wOiA4cHg7XG4gIG1hcmdpbi1ib3R0b206IDhweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItcmFkaXVzOiA0cHg7IH1cbiAgLm5hdmJhci10b2dnbGU6Zm9jdXMge1xuICAgIG91dGxpbmU6IDA7IH1cbiAgLm5hdmJhci10b2dnbGUgLmljb24tYmFyIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMjJweDtcbiAgICBoZWlnaHQ6IDJweDtcbiAgICBib3JkZXItcmFkaXVzOiAxcHg7IH1cbiAgLm5hdmJhci10b2dnbGUgLmljb24tYmFyICsgLmljb24tYmFyIHtcbiAgICBtYXJnaW4tdG9wOiA0cHg7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gICAgLm5hdmJhci10b2dnbGUge1xuICAgICAgZGlzcGxheTogbm9uZTsgfSB9XG5cbi5uYXZiYXItbmF2IHtcbiAgbWFyZ2luOiA3LjVweCAtMTVweDsgfVxuICAubmF2YmFyLW5hdiA+IGxpID4gYSB7XG4gICAgcGFkZGluZy10b3A6IDEwcHg7XG4gICAgcGFkZGluZy1ib3R0b206IDEwcHg7XG4gICAgbGluZS1oZWlnaHQ6IDIwcHg7IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gICAgLm5hdmJhci1uYXYgLm9wZW4gLmRyb3Bkb3duLW1lbnUge1xuICAgICAgcG9zaXRpb246IHN0YXRpYztcbiAgICAgIGZsb2F0OiBub25lO1xuICAgICAgd2lkdGg6IGF1dG87XG4gICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICBib3JkZXI6IDA7XG4gICAgICBib3gtc2hhZG93OiBub25lOyB9XG4gICAgICAubmF2YmFyLW5hdiAub3BlbiAuZHJvcGRvd24tbWVudSA+IGxpID4gYSxcbiAgICAgIC5uYXZiYXItbmF2IC5vcGVuIC5kcm9wZG93bi1tZW51IC5kcm9wZG93bi1oZWFkZXIge1xuICAgICAgICBwYWRkaW5nOiA1cHggMTVweCA1cHggMjVweDsgfVxuICAgICAgLm5hdmJhci1uYXYgLm9wZW4gLmRyb3Bkb3duLW1lbnUgPiBsaSA+IGEge1xuICAgICAgICBsaW5lLWhlaWdodDogMjBweDsgfVxuICAgICAgICAubmF2YmFyLW5hdiAub3BlbiAuZHJvcGRvd24tbWVudSA+IGxpID4gYTpob3ZlciwgLm5hdmJhci1uYXYgLm9wZW4gLmRyb3Bkb3duLW1lbnUgPiBsaSA+IGE6Zm9jdXMge1xuICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7IH0gfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgICAubmF2YmFyLW5hdiB7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICAgIG1hcmdpbjogMDsgfVxuICAgICAgLm5hdmJhci1uYXYgPiBsaSB7XG4gICAgICAgIGZsb2F0OiBsZWZ0OyB9XG4gICAgICAgIC5uYXZiYXItbmF2ID4gbGkgPiBhIHtcbiAgICAgICAgICBwYWRkaW5nLXRvcDogMTVweDtcbiAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMTVweDsgfSB9XG5cbi5uYXZiYXItZm9ybSB7XG4gIG1hcmdpbi1sZWZ0OiAtMTVweDtcbiAgbWFyZ2luLXJpZ2h0OiAtMTVweDtcbiAgcGFkZGluZzogMTBweCAxNXB4O1xuICBib3JkZXItdG9wOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiBpbnNldCAwIDFweCAwIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKSwgMCAxcHggMCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSk7XG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpLCAwIDFweCAwIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTtcbiAgbWFyZ2luLXRvcDogOHB4O1xuICBtYXJnaW4tYm90dG9tOiA4cHg7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gICAgLm5hdmJhci1mb3JtIC5mb3JtLWdyb3VwIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyB9XG4gICAgLm5hdmJhci1mb3JtIC5mb3JtLWNvbnRyb2wge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgd2lkdGg6IGF1dG87XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyB9XG4gICAgLm5hdmJhci1mb3JtIC5mb3JtLWNvbnRyb2wtc3RhdGljIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsgfVxuICAgIC5uYXZiYXItZm9ybSAuaW5wdXQtZ3JvdXAge1xuICAgICAgZGlzcGxheTogaW5saW5lLXRhYmxlO1xuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsgfVxuICAgICAgLm5hdmJhci1mb3JtIC5pbnB1dC1ncm91cCAuaW5wdXQtZ3JvdXAtYWRkb24sXG4gICAgICAubmF2YmFyLWZvcm0gLmlucHV0LWdyb3VwIC5pbnB1dC1ncm91cC1idG4sXG4gICAgICAubmF2YmFyLWZvcm0gLmlucHV0LWdyb3VwIC5mb3JtLWNvbnRyb2wge1xuICAgICAgICB3aWR0aDogYXV0bzsgfVxuICAgIC5uYXZiYXItZm9ybSAuaW5wdXQtZ3JvdXAgPiAuZm9ybS1jb250cm9sIHtcbiAgICAgIHdpZHRoOiAxMDAlOyB9XG4gICAgLm5hdmJhci1mb3JtIC5jb250cm9sLWxhYmVsIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyB9XG4gICAgLm5hdmJhci1mb3JtIC5yYWRpbyxcbiAgICAubmF2YmFyLWZvcm0gLmNoZWNrYm94IHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsgfVxuICAgICAgLm5hdmJhci1mb3JtIC5yYWRpbyBsYWJlbCxcbiAgICAgIC5uYXZiYXItZm9ybSAuY2hlY2tib3ggbGFiZWwge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7IH1cbiAgICAubmF2YmFyLWZvcm0gLnJhZGlvIGlucHV0W3R5cGU9XCJyYWRpb1wiXSxcbiAgICAubmF2YmFyLWZvcm0gLmNoZWNrYm94IGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBtYXJnaW4tbGVmdDogMDsgfVxuICAgIC5uYXZiYXItZm9ybSAuaGFzLWZlZWRiYWNrIC5mb3JtLWNvbnRyb2wtZmVlZGJhY2sge1xuICAgICAgdG9wOiAwOyB9IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gICAgLm5hdmJhci1mb3JtIC5mb3JtLWdyb3VwIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDVweDsgfVxuICAgICAgLm5hdmJhci1mb3JtIC5mb3JtLWdyb3VwOmxhc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwOyB9IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gICAgLm5hdmJhci1mb3JtIHtcbiAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgYm9yZGVyOiAwO1xuICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICBwYWRkaW5nLXRvcDogMDtcbiAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgLXdlYmtpdC1ib3gtc2hhZG93OiBub25lO1xuICAgICAgYm94LXNoYWRvdzogbm9uZTsgfSB9XG5cbi5uYXZiYXItbmF2ID4gbGkgPiAuZHJvcGRvd24tbWVudSB7XG4gIG1hcmdpbi10b3A6IDA7XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwO1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwOyB9XG5cbi5uYXZiYXItZml4ZWQtYm90dG9tIC5uYXZiYXItbmF2ID4gbGkgPiAuZHJvcGRvd24tbWVudSB7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiA0cHg7XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDRweDtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7IH1cblxuLm5hdmJhci1idG4ge1xuICBtYXJnaW4tdG9wOiA4cHg7XG4gIG1hcmdpbi1ib3R0b206IDhweDsgfVxuICAubmF2YmFyLWJ0bi5idG4tc20sIC5idG4tZ3JvdXAtc20gPiAubmF2YmFyLWJ0bi5idG4ge1xuICAgIG1hcmdpbi10b3A6IDEwcHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDsgfVxuICAubmF2YmFyLWJ0bi5idG4teHMsIC5idG4tZ3JvdXAteHMgPiAubmF2YmFyLWJ0bi5idG4ge1xuICAgIG1hcmdpbi10b3A6IDE0cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMTRweDsgfVxuXG4ubmF2YmFyLXRleHQge1xuICBtYXJnaW4tdG9wOiAxNXB4O1xuICBtYXJnaW4tYm90dG9tOiAxNXB4OyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAgIC5uYXZiYXItdGV4dCB7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICAgIG1hcmdpbi1sZWZ0OiAxNXB4O1xuICAgICAgbWFyZ2luLXJpZ2h0OiAxNXB4OyB9IH1cblxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5uYXZiYXItbGVmdCB7XG4gICAgZmxvYXQ6IGxlZnQgIWltcG9ydGFudDsgfVxuICAubmF2YmFyLXJpZ2h0IHtcbiAgICBmbG9hdDogcmlnaHQgIWltcG9ydGFudDtcbiAgICBtYXJnaW4tcmlnaHQ6IC0xNXB4OyB9XG4gICAgLm5hdmJhci1yaWdodCB+IC5uYXZiYXItcmlnaHQge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwOyB9IH1cblxuLm5hdmJhci1kZWZhdWx0IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y4ZjhmODtcbiAgYm9yZGVyLWNvbG9yOiAjZTdlN2U3OyB9XG4gIC5uYXZiYXItZGVmYXVsdCAubmF2YmFyLWJyYW5kIHtcbiAgICBjb2xvcjogIzc3NzsgfVxuICAgIC5uYXZiYXItZGVmYXVsdCAubmF2YmFyLWJyYW5kOmhvdmVyLCAubmF2YmFyLWRlZmF1bHQgLm5hdmJhci1icmFuZDpmb2N1cyB7XG4gICAgICBjb2xvcjogIzVlNWU1ZTtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OyB9XG4gIC5uYXZiYXItZGVmYXVsdCAubmF2YmFyLXRleHQge1xuICAgIGNvbG9yOiAjNzc3OyB9XG4gIC5uYXZiYXItZGVmYXVsdCAubmF2YmFyLW5hdiA+IGxpID4gYSB7XG4gICAgY29sb3I6ICM3Nzc7IH1cbiAgICAubmF2YmFyLWRlZmF1bHQgLm5hdmJhci1uYXYgPiBsaSA+IGE6aG92ZXIsIC5uYXZiYXItZGVmYXVsdCAubmF2YmFyLW5hdiA+IGxpID4gYTpmb2N1cyB7XG4gICAgICBjb2xvcjogIzMzMztcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OyB9XG4gIC5uYXZiYXItZGVmYXVsdCAubmF2YmFyLW5hdiA+IC5hY3RpdmUgPiBhLCAubmF2YmFyLWRlZmF1bHQgLm5hdmJhci1uYXYgPiAuYWN0aXZlID4gYTpob3ZlciwgLm5hdmJhci1kZWZhdWx0IC5uYXZiYXItbmF2ID4gLmFjdGl2ZSA+IGE6Zm9jdXMge1xuICAgIGNvbG9yOiAjNTU1O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNlN2U3ZTc7IH1cbiAgLm5hdmJhci1kZWZhdWx0IC5uYXZiYXItbmF2ID4gLmRpc2FibGVkID4gYSwgLm5hdmJhci1kZWZhdWx0IC5uYXZiYXItbmF2ID4gLmRpc2FibGVkID4gYTpob3ZlciwgLm5hdmJhci1kZWZhdWx0IC5uYXZiYXItbmF2ID4gLmRpc2FibGVkID4gYTpmb2N1cyB7XG4gICAgY29sb3I6ICNjY2M7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cbiAgLm5hdmJhci1kZWZhdWx0IC5uYXZiYXItdG9nZ2xlIHtcbiAgICBib3JkZXItY29sb3I6ICNkZGQ7IH1cbiAgICAubmF2YmFyLWRlZmF1bHQgLm5hdmJhci10b2dnbGU6aG92ZXIsIC5uYXZiYXItZGVmYXVsdCAubmF2YmFyLXRvZ2dsZTpmb2N1cyB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGRkOyB9XG4gICAgLm5hdmJhci1kZWZhdWx0IC5uYXZiYXItdG9nZ2xlIC5pY29uLWJhciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjODg4OyB9XG4gIC5uYXZiYXItZGVmYXVsdCAubmF2YmFyLWNvbGxhcHNlLFxuICAubmF2YmFyLWRlZmF1bHQgLm5hdmJhci1mb3JtIHtcbiAgICBib3JkZXItY29sb3I6ICNlN2U3ZTc7IH1cbiAgLm5hdmJhci1kZWZhdWx0IC5uYXZiYXItbmF2ID4gLm9wZW4gPiBhLCAubmF2YmFyLWRlZmF1bHQgLm5hdmJhci1uYXYgPiAub3BlbiA+IGE6aG92ZXIsIC5uYXZiYXItZGVmYXVsdCAubmF2YmFyLW5hdiA+IC5vcGVuID4gYTpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2U3ZTdlNztcbiAgICBjb2xvcjogIzU1NTsgfVxuICBAbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgICAubmF2YmFyLWRlZmF1bHQgLm5hdmJhci1uYXYgLm9wZW4gLmRyb3Bkb3duLW1lbnUgPiBsaSA+IGEge1xuICAgICAgY29sb3I6ICM3Nzc7IH1cbiAgICAgIC5uYXZiYXItZGVmYXVsdCAubmF2YmFyLW5hdiAub3BlbiAuZHJvcGRvd24tbWVudSA+IGxpID4gYTpob3ZlciwgLm5hdmJhci1kZWZhdWx0IC5uYXZiYXItbmF2IC5vcGVuIC5kcm9wZG93bi1tZW51ID4gbGkgPiBhOmZvY3VzIHtcbiAgICAgICAgY29sb3I6ICMzMzM7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OyB9XG4gICAgLm5hdmJhci1kZWZhdWx0IC5uYXZiYXItbmF2IC5vcGVuIC5kcm9wZG93bi1tZW51ID4gLmFjdGl2ZSA+IGEsIC5uYXZiYXItZGVmYXVsdCAubmF2YmFyLW5hdiAub3BlbiAuZHJvcGRvd24tbWVudSA+IC5hY3RpdmUgPiBhOmhvdmVyLCAubmF2YmFyLWRlZmF1bHQgLm5hdmJhci1uYXYgLm9wZW4gLmRyb3Bkb3duLW1lbnUgPiAuYWN0aXZlID4gYTpmb2N1cyB7XG4gICAgICBjb2xvcjogIzU1NTtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNlN2U3ZTc7IH1cbiAgICAubmF2YmFyLWRlZmF1bHQgLm5hdmJhci1uYXYgLm9wZW4gLmRyb3Bkb3duLW1lbnUgPiAuZGlzYWJsZWQgPiBhLCAubmF2YmFyLWRlZmF1bHQgLm5hdmJhci1uYXYgLm9wZW4gLmRyb3Bkb3duLW1lbnUgPiAuZGlzYWJsZWQgPiBhOmhvdmVyLCAubmF2YmFyLWRlZmF1bHQgLm5hdmJhci1uYXYgLm9wZW4gLmRyb3Bkb3duLW1lbnUgPiAuZGlzYWJsZWQgPiBhOmZvY3VzIHtcbiAgICAgIGNvbG9yOiAjY2NjO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IH0gfVxuICAubmF2YmFyLWRlZmF1bHQgLm5hdmJhci1saW5rIHtcbiAgICBjb2xvcjogIzc3NzsgfVxuICAgIC5uYXZiYXItZGVmYXVsdCAubmF2YmFyLWxpbms6aG92ZXIge1xuICAgICAgY29sb3I6ICMzMzM7IH1cbiAgLm5hdmJhci1kZWZhdWx0IC5idG4tbGluayB7XG4gICAgY29sb3I6ICM3Nzc7IH1cbiAgICAubmF2YmFyLWRlZmF1bHQgLmJ0bi1saW5rOmhvdmVyLCAubmF2YmFyLWRlZmF1bHQgLmJ0bi1saW5rOmZvY3VzIHtcbiAgICAgIGNvbG9yOiAjMzMzOyB9XG4gICAgLm5hdmJhci1kZWZhdWx0IC5idG4tbGlua1tkaXNhYmxlZF06aG92ZXIsIC5uYXZiYXItZGVmYXVsdCAuYnRuLWxpbmtbZGlzYWJsZWRdOmZvY3VzLFxuICAgIGZpZWxkc2V0W2Rpc2FibGVkXSAubmF2YmFyLWRlZmF1bHQgLmJ0bi1saW5rOmhvdmVyLFxuICAgIGZpZWxkc2V0W2Rpc2FibGVkXSAubmF2YmFyLWRlZmF1bHQgLmJ0bi1saW5rOmZvY3VzIHtcbiAgICAgIGNvbG9yOiAjY2NjOyB9XG5cbi5uYXZiYXItaW52ZXJzZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyMjI7XG4gIGJvcmRlci1jb2xvcjogIzA5MDkwOTsgfVxuICAubmF2YmFyLWludmVyc2UgLm5hdmJhci1icmFuZCB7XG4gICAgY29sb3I6ICM5ZDlkOWQ7IH1cbiAgICAubmF2YmFyLWludmVyc2UgLm5hdmJhci1icmFuZDpob3ZlciwgLm5hdmJhci1pbnZlcnNlIC5uYXZiYXItYnJhbmQ6Zm9jdXMge1xuICAgICAgY29sb3I6ICNmZmY7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgfVxuICAubmF2YmFyLWludmVyc2UgLm5hdmJhci10ZXh0IHtcbiAgICBjb2xvcjogIzlkOWQ5ZDsgfVxuICAubmF2YmFyLWludmVyc2UgLm5hdmJhci1uYXYgPiBsaSA+IGEge1xuICAgIGNvbG9yOiAjOWQ5ZDlkOyB9XG4gICAgLm5hdmJhci1pbnZlcnNlIC5uYXZiYXItbmF2ID4gbGkgPiBhOmhvdmVyLCAubmF2YmFyLWludmVyc2UgLm5hdmJhci1uYXYgPiBsaSA+IGE6Zm9jdXMge1xuICAgICAgY29sb3I6ICNmZmY7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgfVxuICAubmF2YmFyLWludmVyc2UgLm5hdmJhci1uYXYgPiAuYWN0aXZlID4gYSwgLm5hdmJhci1pbnZlcnNlIC5uYXZiYXItbmF2ID4gLmFjdGl2ZSA+IGE6aG92ZXIsIC5uYXZiYXItaW52ZXJzZSAubmF2YmFyLW5hdiA+IC5hY3RpdmUgPiBhOmZvY3VzIHtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDkwOTA5OyB9XG4gIC5uYXZiYXItaW52ZXJzZSAubmF2YmFyLW5hdiA+IC5kaXNhYmxlZCA+IGEsIC5uYXZiYXItaW52ZXJzZSAubmF2YmFyLW5hdiA+IC5kaXNhYmxlZCA+IGE6aG92ZXIsIC5uYXZiYXItaW52ZXJzZSAubmF2YmFyLW5hdiA+IC5kaXNhYmxlZCA+IGE6Zm9jdXMge1xuICAgIGNvbG9yOiAjNDQ0O1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OyB9XG4gIC5uYXZiYXItaW52ZXJzZSAubmF2YmFyLXRvZ2dsZSB7XG4gICAgYm9yZGVyLWNvbG9yOiAjMzMzOyB9XG4gICAgLm5hdmJhci1pbnZlcnNlIC5uYXZiYXItdG9nZ2xlOmhvdmVyLCAubmF2YmFyLWludmVyc2UgLm5hdmJhci10b2dnbGU6Zm9jdXMge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzMzMzsgfVxuICAgIC5uYXZiYXItaW52ZXJzZSAubmF2YmFyLXRvZ2dsZSAuaWNvbi1iYXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsgfVxuICAubmF2YmFyLWludmVyc2UgLm5hdmJhci1jb2xsYXBzZSxcbiAgLm5hdmJhci1pbnZlcnNlIC5uYXZiYXItZm9ybSB7XG4gICAgYm9yZGVyLWNvbG9yOiAjMTAxMDEwOyB9XG4gIC5uYXZiYXItaW52ZXJzZSAubmF2YmFyLW5hdiA+IC5vcGVuID4gYSwgLm5hdmJhci1pbnZlcnNlIC5uYXZiYXItbmF2ID4gLm9wZW4gPiBhOmhvdmVyLCAubmF2YmFyLWludmVyc2UgLm5hdmJhci1uYXYgPiAub3BlbiA+IGE6Zm9jdXMge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMwOTA5MDk7XG4gICAgY29sb3I6ICNmZmY7IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gICAgLm5hdmJhci1pbnZlcnNlIC5uYXZiYXItbmF2IC5vcGVuIC5kcm9wZG93bi1tZW51ID4gLmRyb3Bkb3duLWhlYWRlciB7XG4gICAgICBib3JkZXItY29sb3I6ICMwOTA5MDk7IH1cbiAgICAubmF2YmFyLWludmVyc2UgLm5hdmJhci1uYXYgLm9wZW4gLmRyb3Bkb3duLW1lbnUgLmRpdmlkZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzA5MDkwOTsgfVxuICAgIC5uYXZiYXItaW52ZXJzZSAubmF2YmFyLW5hdiAub3BlbiAuZHJvcGRvd24tbWVudSA+IGxpID4gYSB7XG4gICAgICBjb2xvcjogIzlkOWQ5ZDsgfVxuICAgICAgLm5hdmJhci1pbnZlcnNlIC5uYXZiYXItbmF2IC5vcGVuIC5kcm9wZG93bi1tZW51ID4gbGkgPiBhOmhvdmVyLCAubmF2YmFyLWludmVyc2UgLm5hdmJhci1uYXYgLm9wZW4gLmRyb3Bkb3duLW1lbnUgPiBsaSA+IGE6Zm9jdXMge1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cbiAgICAubmF2YmFyLWludmVyc2UgLm5hdmJhci1uYXYgLm9wZW4gLmRyb3Bkb3duLW1lbnUgPiAuYWN0aXZlID4gYSwgLm5hdmJhci1pbnZlcnNlIC5uYXZiYXItbmF2IC5vcGVuIC5kcm9wZG93bi1tZW51ID4gLmFjdGl2ZSA+IGE6aG92ZXIsIC5uYXZiYXItaW52ZXJzZSAubmF2YmFyLW5hdiAub3BlbiAuZHJvcGRvd24tbWVudSA+IC5hY3RpdmUgPiBhOmZvY3VzIHtcbiAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzA5MDkwOTsgfVxuICAgIC5uYXZiYXItaW52ZXJzZSAubmF2YmFyLW5hdiAub3BlbiAuZHJvcGRvd24tbWVudSA+IC5kaXNhYmxlZCA+IGEsIC5uYXZiYXItaW52ZXJzZSAubmF2YmFyLW5hdiAub3BlbiAuZHJvcGRvd24tbWVudSA+IC5kaXNhYmxlZCA+IGE6aG92ZXIsIC5uYXZiYXItaW52ZXJzZSAubmF2YmFyLW5hdiAub3BlbiAuZHJvcGRvd24tbWVudSA+IC5kaXNhYmxlZCA+IGE6Zm9jdXMge1xuICAgICAgY29sb3I6ICM0NDQ7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgfSB9XG4gIC5uYXZiYXItaW52ZXJzZSAubmF2YmFyLWxpbmsge1xuICAgIGNvbG9yOiAjOWQ5ZDlkOyB9XG4gICAgLm5hdmJhci1pbnZlcnNlIC5uYXZiYXItbGluazpob3ZlciB7XG4gICAgICBjb2xvcjogI2ZmZjsgfVxuICAubmF2YmFyLWludmVyc2UgLmJ0bi1saW5rIHtcbiAgICBjb2xvcjogIzlkOWQ5ZDsgfVxuICAgIC5uYXZiYXItaW52ZXJzZSAuYnRuLWxpbms6aG92ZXIsIC5uYXZiYXItaW52ZXJzZSAuYnRuLWxpbms6Zm9jdXMge1xuICAgICAgY29sb3I6ICNmZmY7IH1cbiAgICAubmF2YmFyLWludmVyc2UgLmJ0bi1saW5rW2Rpc2FibGVkXTpob3ZlciwgLm5hdmJhci1pbnZlcnNlIC5idG4tbGlua1tkaXNhYmxlZF06Zm9jdXMsXG4gICAgZmllbGRzZXRbZGlzYWJsZWRdIC5uYXZiYXItaW52ZXJzZSAuYnRuLWxpbms6aG92ZXIsXG4gICAgZmllbGRzZXRbZGlzYWJsZWRdIC5uYXZiYXItaW52ZXJzZSAuYnRuLWxpbms6Zm9jdXMge1xuICAgICAgY29sb3I6ICM0NDQ7IH1cblxuLmJyZWFkY3J1bWIge1xuICBwYWRkaW5nOiA4cHggMTVweDtcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y1ZjVmNTtcbiAgYm9yZGVyLXJhZGl1czogNHB4OyB9XG4gIC5icmVhZGNydW1iID4gbGkge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsgfVxuICAgIC5icmVhZGNydW1iID4gbGkgKyBsaTpiZWZvcmUge1xuICAgICAgY29udGVudDogXCIvwqBcIjtcbiAgICAgIHBhZGRpbmc6IDAgNXB4O1xuICAgICAgY29sb3I6ICNjY2M7IH1cbiAgLmJyZWFkY3J1bWIgPiAuYWN0aXZlIHtcbiAgICBjb2xvcjogIzc3Nzc3NzsgfVxuXG4ucGFnaW5hdGlvbiB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcGFkZGluZy1sZWZ0OiAwO1xuICBtYXJnaW46IDIwcHggMDtcbiAgYm9yZGVyLXJhZGl1czogNHB4OyB9XG4gIC5wYWdpbmF0aW9uID4gbGkge1xuICAgIGRpc3BsYXk6IGlubGluZTsgfVxuICAgIC5wYWdpbmF0aW9uID4gbGkgPiBhLFxuICAgIC5wYWdpbmF0aW9uID4gbGkgPiBzcGFuIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgcGFkZGluZzogNnB4IDEycHg7XG4gICAgICBsaW5lLWhlaWdodDogMS40Mjg1NztcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgIGNvbG9yOiAjMzM3YWI3O1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNkZGQ7XG4gICAgICBtYXJnaW4tbGVmdDogLTFweDsgfVxuICAgIC5wYWdpbmF0aW9uID4gbGk6Zmlyc3QtY2hpbGQgPiBhLFxuICAgIC5wYWdpbmF0aW9uID4gbGk6Zmlyc3QtY2hpbGQgPiBzcGFuIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogNHB4O1xuICAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogNHB4OyB9XG4gICAgLnBhZ2luYXRpb24gPiBsaTpsYXN0LWNoaWxkID4gYSxcbiAgICAucGFnaW5hdGlvbiA+IGxpOmxhc3QtY2hpbGQgPiBzcGFuIHtcbiAgICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiA0cHg7XG4gICAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogNHB4OyB9XG4gIC5wYWdpbmF0aW9uID4gbGkgPiBhOmhvdmVyLCAucGFnaW5hdGlvbiA+IGxpID4gYTpmb2N1cyxcbiAgLnBhZ2luYXRpb24gPiBsaSA+IHNwYW46aG92ZXIsXG4gIC5wYWdpbmF0aW9uID4gbGkgPiBzcGFuOmZvY3VzIHtcbiAgICB6LWluZGV4OiAyO1xuICAgIGNvbG9yOiAjMjM1MjdjO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNlZWVlZWU7XG4gICAgYm9yZGVyLWNvbG9yOiAjZGRkOyB9XG4gIC5wYWdpbmF0aW9uID4gLmFjdGl2ZSA+IGEsIC5wYWdpbmF0aW9uID4gLmFjdGl2ZSA+IGE6aG92ZXIsIC5wYWdpbmF0aW9uID4gLmFjdGl2ZSA+IGE6Zm9jdXMsXG4gIC5wYWdpbmF0aW9uID4gLmFjdGl2ZSA+IHNwYW4sXG4gIC5wYWdpbmF0aW9uID4gLmFjdGl2ZSA+IHNwYW46aG92ZXIsXG4gIC5wYWdpbmF0aW9uID4gLmFjdGl2ZSA+IHNwYW46Zm9jdXMge1xuICAgIHotaW5kZXg6IDM7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzMzN2FiNztcbiAgICBib3JkZXItY29sb3I6ICMzMzdhYjc7XG4gICAgY3Vyc29yOiBkZWZhdWx0OyB9XG4gIC5wYWdpbmF0aW9uID4gLmRpc2FibGVkID4gc3BhbixcbiAgLnBhZ2luYXRpb24gPiAuZGlzYWJsZWQgPiBzcGFuOmhvdmVyLFxuICAucGFnaW5hdGlvbiA+IC5kaXNhYmxlZCA+IHNwYW46Zm9jdXMsXG4gIC5wYWdpbmF0aW9uID4gLmRpc2FibGVkID4gYSxcbiAgLnBhZ2luYXRpb24gPiAuZGlzYWJsZWQgPiBhOmhvdmVyLFxuICAucGFnaW5hdGlvbiA+IC5kaXNhYmxlZCA+IGE6Zm9jdXMge1xuICAgIGNvbG9yOiAjNzc3Nzc3O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gICAgYm9yZGVyLWNvbG9yOiAjZGRkO1xuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7IH1cblxuLnBhZ2luYXRpb24tbGcgPiBsaSA+IGEsXG4ucGFnaW5hdGlvbi1sZyA+IGxpID4gc3BhbiB7XG4gIHBhZGRpbmc6IDEwcHggMTZweDtcbiAgZm9udC1zaXplOiAxOHB4O1xuICBsaW5lLWhlaWdodDogMS4zMzMzMzsgfVxuXG4ucGFnaW5hdGlvbi1sZyA+IGxpOmZpcnN0LWNoaWxkID4gYSxcbi5wYWdpbmF0aW9uLWxnID4gbGk6Zmlyc3QtY2hpbGQgPiBzcGFuIHtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogNnB4O1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiA2cHg7IH1cblxuLnBhZ2luYXRpb24tbGcgPiBsaTpsYXN0LWNoaWxkID4gYSxcbi5wYWdpbmF0aW9uLWxnID4gbGk6bGFzdC1jaGlsZCA+IHNwYW4ge1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogNnB4O1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogNnB4OyB9XG5cbi5wYWdpbmF0aW9uLXNtID4gbGkgPiBhLFxuLnBhZ2luYXRpb24tc20gPiBsaSA+IHNwYW4ge1xuICBwYWRkaW5nOiA1cHggMTBweDtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBsaW5lLWhlaWdodDogMS41OyB9XG5cbi5wYWdpbmF0aW9uLXNtID4gbGk6Zmlyc3QtY2hpbGQgPiBhLFxuLnBhZ2luYXRpb24tc20gPiBsaTpmaXJzdC1jaGlsZCA+IHNwYW4ge1xuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAzcHg7XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDNweDsgfVxuXG4ucGFnaW5hdGlvbi1zbSA+IGxpOmxhc3QtY2hpbGQgPiBhLFxuLnBhZ2luYXRpb24tc20gPiBsaTpsYXN0LWNoaWxkID4gc3BhbiB7XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAzcHg7XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAzcHg7IH1cblxuLnBhZ2VyIHtcbiAgcGFkZGluZy1sZWZ0OiAwO1xuICBtYXJnaW46IDIwcHggMDtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gIC5wYWdlcjpiZWZvcmUsIC5wYWdlcjphZnRlciB7XG4gICAgY29udGVudDogXCIgXCI7XG4gICAgZGlzcGxheTogdGFibGU7IH1cbiAgLnBhZ2VyOmFmdGVyIHtcbiAgICBjbGVhcjogYm90aDsgfVxuICAucGFnZXIgbGkge1xuICAgIGRpc3BsYXk6IGlubGluZTsgfVxuICAgIC5wYWdlciBsaSA+IGEsXG4gICAgLnBhZ2VyIGxpID4gc3BhbiB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBwYWRkaW5nOiA1cHggMTRweDtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjZGRkO1xuICAgICAgYm9yZGVyLXJhZGl1czogMTVweDsgfVxuICAgIC5wYWdlciBsaSA+IGE6aG92ZXIsXG4gICAgLnBhZ2VyIGxpID4gYTpmb2N1cyB7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlZWVlOyB9XG4gIC5wYWdlciAubmV4dCA+IGEsXG4gIC5wYWdlciAubmV4dCA+IHNwYW4ge1xuICAgIGZsb2F0OiByaWdodDsgfVxuICAucGFnZXIgLnByZXZpb3VzID4gYSxcbiAgLnBhZ2VyIC5wcmV2aW91cyA+IHNwYW4ge1xuICAgIGZsb2F0OiBsZWZ0OyB9XG4gIC5wYWdlciAuZGlzYWJsZWQgPiBhLFxuICAucGFnZXIgLmRpc2FibGVkID4gYTpob3ZlcixcbiAgLnBhZ2VyIC5kaXNhYmxlZCA+IGE6Zm9jdXMsXG4gIC5wYWdlciAuZGlzYWJsZWQgPiBzcGFuIHtcbiAgICBjb2xvcjogIzc3Nzc3NztcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7IH1cblxuLmxhYmVsIHtcbiAgZGlzcGxheTogaW5saW5lO1xuICBwYWRkaW5nOiAuMmVtIC42ZW0gLjNlbTtcbiAgZm9udC1zaXplOiA3NSU7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBsaW5lLWhlaWdodDogMTtcbiAgY29sb3I6ICNmZmY7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuICBib3JkZXItcmFkaXVzOiAuMjVlbTsgfVxuICAubGFiZWw6ZW1wdHkge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgLmJ0biAubGFiZWwge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0b3A6IC0xcHg7IH1cblxuYS5sYWJlbDpob3ZlciwgYS5sYWJlbDpmb2N1cyB7XG4gIGNvbG9yOiAjZmZmO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGN1cnNvcjogcG9pbnRlcjsgfVxuXG4ubGFiZWwtZGVmYXVsdCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM3Nzc3Nzc7IH1cbiAgLmxhYmVsLWRlZmF1bHRbaHJlZl06aG92ZXIsIC5sYWJlbC1kZWZhdWx0W2hyZWZdOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNWU1ZTVlOyB9XG5cbi5sYWJlbC1wcmltYXJ5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzMzN2FiNzsgfVxuICAubGFiZWwtcHJpbWFyeVtocmVmXTpob3ZlciwgLmxhYmVsLXByaW1hcnlbaHJlZl06Zm9jdXMge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMyODYwOTA7IH1cblxuLmxhYmVsLXN1Y2Nlc3Mge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNWNiODVjOyB9XG4gIC5sYWJlbC1zdWNjZXNzW2hyZWZdOmhvdmVyLCAubGFiZWwtc3VjY2Vzc1tocmVmXTpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzQ0OWQ0NDsgfVxuXG4ubGFiZWwtaW5mbyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM1YmMwZGU7IH1cbiAgLmxhYmVsLWluZm9baHJlZl06aG92ZXIsIC5sYWJlbC1pbmZvW2hyZWZdOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzFiMGQ1OyB9XG5cbi5sYWJlbC13YXJuaW5nIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2YwYWQ0ZTsgfVxuICAubGFiZWwtd2FybmluZ1tocmVmXTpob3ZlciwgLmxhYmVsLXdhcm5pbmdbaHJlZl06Zm9jdXMge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNlYzk3MWY7IH1cblxuLmxhYmVsLWRhbmdlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkOTUzNGY7IH1cbiAgLmxhYmVsLWRhbmdlcltocmVmXTpob3ZlciwgLmxhYmVsLWRhbmdlcltocmVmXTpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2M5MzAyYzsgfVxuXG4uYmFkZ2Uge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1pbi13aWR0aDogMTBweDtcbiAgcGFkZGluZzogM3B4IDdweDtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgY29sb3I6ICNmZmY7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGJhY2tncm91bmQtY29sb3I6ICM3Nzc3Nzc7XG4gIGJvcmRlci1yYWRpdXM6IDEwcHg7IH1cbiAgLmJhZGdlOmVtcHR5IHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG4gIC5idG4gLmJhZGdlIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAtMXB4OyB9XG4gIC5idG4teHMgLmJhZGdlLCAuYnRuLWdyb3VwLXhzID4gLmJ0biAuYmFkZ2UsXG4gIC5idG4tZ3JvdXAteHMgPiAuYnRuIC5iYWRnZSB7XG4gICAgdG9wOiAwO1xuICAgIHBhZGRpbmc6IDFweCA1cHg7IH1cbiAgLmxpc3QtZ3JvdXAtaXRlbS5hY3RpdmUgPiAuYmFkZ2UsXG4gIC5uYXYtcGlsbHMgPiAuYWN0aXZlID4gYSA+IC5iYWRnZSB7XG4gICAgY29sb3I6ICMzMzdhYjc7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsgfVxuICAubGlzdC1ncm91cC1pdGVtID4gLmJhZGdlIHtcbiAgICBmbG9hdDogcmlnaHQ7IH1cbiAgLmxpc3QtZ3JvdXAtaXRlbSA+IC5iYWRnZSArIC5iYWRnZSB7XG4gICAgbWFyZ2luLXJpZ2h0OiA1cHg7IH1cbiAgLm5hdi1waWxscyA+IGxpID4gYSA+IC5iYWRnZSB7XG4gICAgbWFyZ2luLWxlZnQ6IDNweDsgfVxuXG5hLmJhZGdlOmhvdmVyLCBhLmJhZGdlOmZvY3VzIHtcbiAgY29sb3I6ICNmZmY7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgY3Vyc29yOiBwb2ludGVyOyB9XG5cbi5qdW1ib3Ryb24ge1xuICBwYWRkaW5nLXRvcDogMzBweDtcbiAgcGFkZGluZy1ib3R0b206IDMwcHg7XG4gIG1hcmdpbi1ib3R0b206IDMwcHg7XG4gIGNvbG9yOiBpbmhlcml0O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlZWVlOyB9XG4gIC5qdW1ib3Ryb24gaDEsXG4gIC5qdW1ib3Ryb24gLmgxIHtcbiAgICBjb2xvcjogaW5oZXJpdDsgfVxuICAuanVtYm90cm9uIHAge1xuICAgIG1hcmdpbi1ib3R0b206IDE1cHg7XG4gICAgZm9udC1zaXplOiAyMXB4O1xuICAgIGZvbnQtd2VpZ2h0OiAyMDA7IH1cbiAgLmp1bWJvdHJvbiA+IGhyIHtcbiAgICBib3JkZXItdG9wLWNvbG9yOiAjZDVkNWQ1OyB9XG4gIC5jb250YWluZXIgLmp1bWJvdHJvbixcbiAgLmNvbnRhaW5lci1mbHVpZCAuanVtYm90cm9uIHtcbiAgICBib3JkZXItcmFkaXVzOiA2cHg7XG4gICAgcGFkZGluZy1sZWZ0OiAxNXB4O1xuICAgIHBhZGRpbmctcmlnaHQ6IDE1cHg7IH1cbiAgLmp1bWJvdHJvbiAuY29udGFpbmVyIHtcbiAgICBtYXgtd2lkdGg6IDEwMCU7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgICAuanVtYm90cm9uIHtcbiAgICAgIHBhZGRpbmctdG9wOiA0OHB4O1xuICAgICAgcGFkZGluZy1ib3R0b206IDQ4cHg7IH1cbiAgICAgIC5jb250YWluZXIgLmp1bWJvdHJvbixcbiAgICAgIC5jb250YWluZXItZmx1aWQgLmp1bWJvdHJvbiB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogNjBweDtcbiAgICAgICAgcGFkZGluZy1yaWdodDogNjBweDsgfVxuICAgICAgLmp1bWJvdHJvbiBoMSxcbiAgICAgIC5qdW1ib3Ryb24gLmgxIHtcbiAgICAgICAgZm9udC1zaXplOiA2M3B4OyB9IH1cblxuLnRodW1ibmFpbCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwYWRkaW5nOiA0cHg7XG4gIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gIGxpbmUtaGVpZ2h0OiAxLjQyODU3O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBib3JkZXI6IDFweCBzb2xpZCAjZGRkO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIC13ZWJraXQtdHJhbnNpdGlvbjogYm9yZGVyIDAuMnMgZWFzZS1pbi1vdXQ7XG4gIC1vLXRyYW5zaXRpb246IGJvcmRlciAwLjJzIGVhc2UtaW4tb3V0O1xuICB0cmFuc2l0aW9uOiBib3JkZXIgMC4ycyBlYXNlLWluLW91dDsgfVxuICAudGh1bWJuYWlsID4gaW1nLFxuICAudGh1bWJuYWlsIGEgPiBpbWcge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvOyB9XG4gIC50aHVtYm5haWwgLmNhcHRpb24ge1xuICAgIHBhZGRpbmc6IDlweDtcbiAgICBjb2xvcjogIzMzMzMzMzsgfVxuXG5hLnRodW1ibmFpbDpob3ZlcixcbmEudGh1bWJuYWlsOmZvY3VzLFxuYS50aHVtYm5haWwuYWN0aXZlIHtcbiAgYm9yZGVyLWNvbG9yOiAjMzM3YWI3OyB9XG5cbi5hbGVydCB7XG4gIHBhZGRpbmc6IDE1cHg7XG4gIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItcmFkaXVzOiA0cHg7IH1cbiAgLmFsZXJ0IGg0IHtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIGNvbG9yOiBpbmhlcml0OyB9XG4gIC5hbGVydCAuYWxlcnQtbGluayB7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7IH1cbiAgLmFsZXJ0ID4gcCxcbiAgLmFsZXJ0ID4gdWwge1xuICAgIG1hcmdpbi1ib3R0b206IDA7IH1cbiAgLmFsZXJ0ID4gcCArIHAge1xuICAgIG1hcmdpbi10b3A6IDVweDsgfVxuXG4uYWxlcnQtZGlzbWlzc2FibGUsXG4uYWxlcnQtZGlzbWlzc2libGUge1xuICBwYWRkaW5nLXJpZ2h0OiAzNXB4OyB9XG4gIC5hbGVydC1kaXNtaXNzYWJsZSAuY2xvc2UsXG4gIC5hbGVydC1kaXNtaXNzaWJsZSAuY2xvc2Uge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0b3A6IC0ycHg7XG4gICAgcmlnaHQ6IC0yMXB4O1xuICAgIGNvbG9yOiBpbmhlcml0OyB9XG5cbi5hbGVydC1zdWNjZXNzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2RmZjBkODtcbiAgYm9yZGVyLWNvbG9yOiAjZDZlOWM2O1xuICBjb2xvcjogIzNjNzYzZDsgfVxuICAuYWxlcnQtc3VjY2VzcyBociB7XG4gICAgYm9yZGVyLXRvcC1jb2xvcjogI2M5ZTJiMzsgfVxuICAuYWxlcnQtc3VjY2VzcyAuYWxlcnQtbGluayB7XG4gICAgY29sb3I6ICMyYjU0MmM7IH1cblxuLmFsZXJ0LWluZm8ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDllZGY3O1xuICBib3JkZXItY29sb3I6ICNiY2U4ZjE7XG4gIGNvbG9yOiAjMzE3MDhmOyB9XG4gIC5hbGVydC1pbmZvIGhyIHtcbiAgICBib3JkZXItdG9wLWNvbG9yOiAjYTZlMWVjOyB9XG4gIC5hbGVydC1pbmZvIC5hbGVydC1saW5rIHtcbiAgICBjb2xvcjogIzI0NTI2OTsgfVxuXG4uYWxlcnQtd2FybmluZyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmY2Y4ZTM7XG4gIGJvcmRlci1jb2xvcjogI2ZhZWJjYztcbiAgY29sb3I6ICM4YTZkM2I7IH1cbiAgLmFsZXJ0LXdhcm5pbmcgaHIge1xuICAgIGJvcmRlci10b3AtY29sb3I6ICNmN2UxYjU7IH1cbiAgLmFsZXJ0LXdhcm5pbmcgLmFsZXJ0LWxpbmsge1xuICAgIGNvbG9yOiAjNjY1MTJjOyB9XG5cbi5hbGVydC1kYW5nZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjJkZWRlO1xuICBib3JkZXItY29sb3I6ICNlYmNjZDE7XG4gIGNvbG9yOiAjYTk0NDQyOyB9XG4gIC5hbGVydC1kYW5nZXIgaHIge1xuICAgIGJvcmRlci10b3AtY29sb3I6ICNlNGI5YzA7IH1cbiAgLmFsZXJ0LWRhbmdlciAuYWxlcnQtbGluayB7XG4gICAgY29sb3I6ICM4NDM1MzQ7IH1cblxuQC13ZWJraXQta2V5ZnJhbWVzIHByb2dyZXNzLWJhci1zdHJpcGVzIHtcbiAgZnJvbSB7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogNDBweCAwOyB9XG4gIHRvIHtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIDA7IH0gfVxuXG5Aa2V5ZnJhbWVzIHByb2dyZXNzLWJhci1zdHJpcGVzIHtcbiAgZnJvbSB7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogNDBweCAwOyB9XG4gIHRvIHtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIDA7IH0gfVxuXG4ucHJvZ3Jlc3Mge1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBoZWlnaHQ6IDIwcHg7XG4gIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNWY1ZjU7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiBpbnNldCAwIDFweCAycHggcmdiYSgwLCAwLCAwLCAwLjEpO1xuICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAycHggcmdiYSgwLCAwLCAwLCAwLjEpOyB9XG5cbi5wcm9ncmVzcy1iYXIge1xuICBmbG9hdDogbGVmdDtcbiAgd2lkdGg6IDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gIGNvbG9yOiAjZmZmO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzMzdhYjc7XG4gIC13ZWJraXQtYm94LXNoYWRvdzogaW5zZXQgMCAtMXB4IDAgcmdiYSgwLCAwLCAwLCAwLjE1KTtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAtMXB4IDAgcmdiYSgwLCAwLCAwLCAwLjE1KTtcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiB3aWR0aCAwLjZzIGVhc2U7XG4gIC1vLXRyYW5zaXRpb246IHdpZHRoIDAuNnMgZWFzZTtcbiAgdHJhbnNpdGlvbjogd2lkdGggMC42cyBlYXNlOyB9XG5cbi5wcm9ncmVzcy1zdHJpcGVkIC5wcm9ncmVzcy1iYXIsXG4ucHJvZ3Jlc3MtYmFyLXN0cmlwZWQge1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudCg0NWRlZywgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSAyNSUsIHRyYW5zcGFyZW50IDI1JSwgdHJhbnNwYXJlbnQgNTAlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpIDUwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSA3NSUsIHRyYW5zcGFyZW50IDc1JSwgdHJhbnNwYXJlbnQpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtby1saW5lYXItZ3JhZGllbnQoNDVkZWcsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSkgMjUlLCB0cmFuc3BhcmVudCAyNSUsIHRyYW5zcGFyZW50IDUwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSA1MCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSkgNzUlLCB0cmFuc3BhcmVudCA3NSUsIHRyYW5zcGFyZW50KTtcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KDQ1ZGVnLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpIDI1JSwgdHJhbnNwYXJlbnQgMjUlLCB0cmFuc3BhcmVudCA1MCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSkgNTAlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpIDc1JSwgdHJhbnNwYXJlbnQgNzUlLCB0cmFuc3BhcmVudCk7XG4gIGJhY2tncm91bmQtc2l6ZTogNDBweCA0MHB4OyB9XG5cbi5wcm9ncmVzcy5hY3RpdmUgLnByb2dyZXNzLWJhcixcbi5wcm9ncmVzcy1iYXIuYWN0aXZlIHtcbiAgLXdlYmtpdC1hbmltYXRpb246IHByb2dyZXNzLWJhci1zdHJpcGVzIDJzIGxpbmVhciBpbmZpbml0ZTtcbiAgLW8tYW5pbWF0aW9uOiBwcm9ncmVzcy1iYXItc3RyaXBlcyAycyBsaW5lYXIgaW5maW5pdGU7XG4gIGFuaW1hdGlvbjogcHJvZ3Jlc3MtYmFyLXN0cmlwZXMgMnMgbGluZWFyIGluZmluaXRlOyB9XG5cbi5wcm9ncmVzcy1iYXItc3VjY2VzcyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM1Y2I4NWM7IH1cbiAgLnByb2dyZXNzLXN0cmlwZWQgLnByb2dyZXNzLWJhci1zdWNjZXNzIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudCg0NWRlZywgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSAyNSUsIHRyYW5zcGFyZW50IDI1JSwgdHJhbnNwYXJlbnQgNTAlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpIDUwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSA3NSUsIHRyYW5zcGFyZW50IDc1JSwgdHJhbnNwYXJlbnQpO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IC1vLWxpbmVhci1ncmFkaWVudCg0NWRlZywgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSAyNSUsIHRyYW5zcGFyZW50IDI1JSwgdHJhbnNwYXJlbnQgNTAlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpIDUwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSA3NSUsIHRyYW5zcGFyZW50IDc1JSwgdHJhbnNwYXJlbnQpO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCg0NWRlZywgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSAyNSUsIHRyYW5zcGFyZW50IDI1JSwgdHJhbnNwYXJlbnQgNTAlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpIDUwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSA3NSUsIHRyYW5zcGFyZW50IDc1JSwgdHJhbnNwYXJlbnQpOyB9XG5cbi5wcm9ncmVzcy1iYXItaW5mbyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM1YmMwZGU7IH1cbiAgLnByb2dyZXNzLXN0cmlwZWQgLnByb2dyZXNzLWJhci1pbmZvIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudCg0NWRlZywgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSAyNSUsIHRyYW5zcGFyZW50IDI1JSwgdHJhbnNwYXJlbnQgNTAlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpIDUwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSA3NSUsIHRyYW5zcGFyZW50IDc1JSwgdHJhbnNwYXJlbnQpO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IC1vLWxpbmVhci1ncmFkaWVudCg0NWRlZywgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSAyNSUsIHRyYW5zcGFyZW50IDI1JSwgdHJhbnNwYXJlbnQgNTAlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpIDUwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSA3NSUsIHRyYW5zcGFyZW50IDc1JSwgdHJhbnNwYXJlbnQpO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCg0NWRlZywgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSAyNSUsIHRyYW5zcGFyZW50IDI1JSwgdHJhbnNwYXJlbnQgNTAlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpIDUwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSA3NSUsIHRyYW5zcGFyZW50IDc1JSwgdHJhbnNwYXJlbnQpOyB9XG5cbi5wcm9ncmVzcy1iYXItd2FybmluZyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmMGFkNGU7IH1cbiAgLnByb2dyZXNzLXN0cmlwZWQgLnByb2dyZXNzLWJhci13YXJuaW5nIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudCg0NWRlZywgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSAyNSUsIHRyYW5zcGFyZW50IDI1JSwgdHJhbnNwYXJlbnQgNTAlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpIDUwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSA3NSUsIHRyYW5zcGFyZW50IDc1JSwgdHJhbnNwYXJlbnQpO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IC1vLWxpbmVhci1ncmFkaWVudCg0NWRlZywgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSAyNSUsIHRyYW5zcGFyZW50IDI1JSwgdHJhbnNwYXJlbnQgNTAlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpIDUwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSA3NSUsIHRyYW5zcGFyZW50IDc1JSwgdHJhbnNwYXJlbnQpO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCg0NWRlZywgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSAyNSUsIHRyYW5zcGFyZW50IDI1JSwgdHJhbnNwYXJlbnQgNTAlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpIDUwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSA3NSUsIHRyYW5zcGFyZW50IDc1JSwgdHJhbnNwYXJlbnQpOyB9XG5cbi5wcm9ncmVzcy1iYXItZGFuZ2VyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Q5NTM0ZjsgfVxuICAucHJvZ3Jlc3Mtc3RyaXBlZCAucHJvZ3Jlc3MtYmFyLWRhbmdlciB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQoNDVkZWcsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSkgMjUlLCB0cmFuc3BhcmVudCAyNSUsIHRyYW5zcGFyZW50IDUwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSA1MCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSkgNzUlLCB0cmFuc3BhcmVudCA3NSUsIHRyYW5zcGFyZW50KTtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiAtby1saW5lYXItZ3JhZGllbnQoNDVkZWcsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSkgMjUlLCB0cmFuc3BhcmVudCAyNSUsIHRyYW5zcGFyZW50IDUwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSA1MCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSkgNzUlLCB0cmFuc3BhcmVudCA3NSUsIHRyYW5zcGFyZW50KTtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoNDVkZWcsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSkgMjUlLCB0cmFuc3BhcmVudCAyNSUsIHRyYW5zcGFyZW50IDUwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSA1MCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSkgNzUlLCB0cmFuc3BhcmVudCA3NSUsIHRyYW5zcGFyZW50KTsgfVxuXG4ubWVkaWEge1xuICBtYXJnaW4tdG9wOiAxNXB4OyB9XG4gIC5tZWRpYTpmaXJzdC1jaGlsZCB7XG4gICAgbWFyZ2luLXRvcDogMDsgfVxuXG4ubWVkaWEsXG4ubWVkaWEtYm9keSB7XG4gIHpvb206IDE7XG4gIG92ZXJmbG93OiBoaWRkZW47IH1cblxuLm1lZGlhLWJvZHkge1xuICB3aWR0aDogMTAwMDBweDsgfVxuXG4ubWVkaWEtb2JqZWN0IHtcbiAgZGlzcGxheTogYmxvY2s7IH1cbiAgLm1lZGlhLW9iamVjdC5pbWctdGh1bWJuYWlsIHtcbiAgICBtYXgtd2lkdGg6IG5vbmU7IH1cblxuLm1lZGlhLXJpZ2h0LFxuLm1lZGlhID4gLnB1bGwtcmlnaHQge1xuICBwYWRkaW5nLWxlZnQ6IDEwcHg7IH1cblxuLm1lZGlhLWxlZnQsXG4ubWVkaWEgPiAucHVsbC1sZWZ0IHtcbiAgcGFkZGluZy1yaWdodDogMTBweDsgfVxuXG4ubWVkaWEtbGVmdCxcbi5tZWRpYS1yaWdodCxcbi5tZWRpYS1ib2R5IHtcbiAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgdmVydGljYWwtYWxpZ246IHRvcDsgfVxuXG4ubWVkaWEtbWlkZGxlIHtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsgfVxuXG4ubWVkaWEtYm90dG9tIHtcbiAgdmVydGljYWwtYWxpZ246IGJvdHRvbTsgfVxuXG4ubWVkaWEtaGVhZGluZyB7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1ib3R0b206IDVweDsgfVxuXG4ubWVkaWEtbGlzdCB7XG4gIHBhZGRpbmctbGVmdDogMDtcbiAgbGlzdC1zdHlsZTogbm9uZTsgfVxuXG4ubGlzdC1ncm91cCB7XG4gIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gIHBhZGRpbmctbGVmdDogMDsgfVxuXG4ubGlzdC1ncm91cC1pdGVtIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgcGFkZGluZzogMTBweCAxNXB4O1xuICBtYXJnaW4tYm90dG9tOiAtMXB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBib3JkZXI6IDFweCBzb2xpZCAjZGRkOyB9XG4gIC5saXN0LWdyb3VwLWl0ZW06Zmlyc3QtY2hpbGQge1xuICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiA0cHg7XG4gICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogNHB4OyB9XG4gIC5saXN0LWdyb3VwLWl0ZW06bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogNHB4O1xuICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDRweDsgfVxuXG5hLmxpc3QtZ3JvdXAtaXRlbSxcbmJ1dHRvbi5saXN0LWdyb3VwLWl0ZW0ge1xuICBjb2xvcjogIzU1NTsgfVxuICBhLmxpc3QtZ3JvdXAtaXRlbSAubGlzdC1ncm91cC1pdGVtLWhlYWRpbmcsXG4gIGJ1dHRvbi5saXN0LWdyb3VwLWl0ZW0gLmxpc3QtZ3JvdXAtaXRlbS1oZWFkaW5nIHtcbiAgICBjb2xvcjogIzMzMzsgfVxuICBhLmxpc3QtZ3JvdXAtaXRlbTpob3ZlciwgYS5saXN0LWdyb3VwLWl0ZW06Zm9jdXMsXG4gIGJ1dHRvbi5saXN0LWdyb3VwLWl0ZW06aG92ZXIsXG4gIGJ1dHRvbi5saXN0LWdyb3VwLWl0ZW06Zm9jdXMge1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBjb2xvcjogIzU1NTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjVmNWY1OyB9XG5cbmJ1dHRvbi5saXN0LWdyb3VwLWl0ZW0ge1xuICB3aWR0aDogMTAwJTtcbiAgdGV4dC1hbGlnbjogbGVmdDsgfVxuXG4ubGlzdC1ncm91cC1pdGVtLmRpc2FibGVkLCAubGlzdC1ncm91cC1pdGVtLmRpc2FibGVkOmhvdmVyLCAubGlzdC1ncm91cC1pdGVtLmRpc2FibGVkOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VlZWVlZTtcbiAgY29sb3I6ICM3Nzc3Nzc7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7IH1cbiAgLmxpc3QtZ3JvdXAtaXRlbS5kaXNhYmxlZCAubGlzdC1ncm91cC1pdGVtLWhlYWRpbmcsIC5saXN0LWdyb3VwLWl0ZW0uZGlzYWJsZWQ6aG92ZXIgLmxpc3QtZ3JvdXAtaXRlbS1oZWFkaW5nLCAubGlzdC1ncm91cC1pdGVtLmRpc2FibGVkOmZvY3VzIC5saXN0LWdyb3VwLWl0ZW0taGVhZGluZyB7XG4gICAgY29sb3I6IGluaGVyaXQ7IH1cbiAgLmxpc3QtZ3JvdXAtaXRlbS5kaXNhYmxlZCAubGlzdC1ncm91cC1pdGVtLXRleHQsIC5saXN0LWdyb3VwLWl0ZW0uZGlzYWJsZWQ6aG92ZXIgLmxpc3QtZ3JvdXAtaXRlbS10ZXh0LCAubGlzdC1ncm91cC1pdGVtLmRpc2FibGVkOmZvY3VzIC5saXN0LWdyb3VwLWl0ZW0tdGV4dCB7XG4gICAgY29sb3I6ICM3Nzc3Nzc7IH1cblxuLmxpc3QtZ3JvdXAtaXRlbS5hY3RpdmUsIC5saXN0LWdyb3VwLWl0ZW0uYWN0aXZlOmhvdmVyLCAubGlzdC1ncm91cC1pdGVtLmFjdGl2ZTpmb2N1cyB7XG4gIHotaW5kZXg6IDI7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzM3YWI3O1xuICBib3JkZXItY29sb3I6ICMzMzdhYjc7IH1cbiAgLmxpc3QtZ3JvdXAtaXRlbS5hY3RpdmUgLmxpc3QtZ3JvdXAtaXRlbS1oZWFkaW5nLFxuICAubGlzdC1ncm91cC1pdGVtLmFjdGl2ZSAubGlzdC1ncm91cC1pdGVtLWhlYWRpbmcgPiBzbWFsbCxcbiAgLmxpc3QtZ3JvdXAtaXRlbS5hY3RpdmUgLmxpc3QtZ3JvdXAtaXRlbS1oZWFkaW5nID4gLnNtYWxsLCAubGlzdC1ncm91cC1pdGVtLmFjdGl2ZTpob3ZlciAubGlzdC1ncm91cC1pdGVtLWhlYWRpbmcsXG4gIC5saXN0LWdyb3VwLWl0ZW0uYWN0aXZlOmhvdmVyIC5saXN0LWdyb3VwLWl0ZW0taGVhZGluZyA+IHNtYWxsLFxuICAubGlzdC1ncm91cC1pdGVtLmFjdGl2ZTpob3ZlciAubGlzdC1ncm91cC1pdGVtLWhlYWRpbmcgPiAuc21hbGwsIC5saXN0LWdyb3VwLWl0ZW0uYWN0aXZlOmZvY3VzIC5saXN0LWdyb3VwLWl0ZW0taGVhZGluZyxcbiAgLmxpc3QtZ3JvdXAtaXRlbS5hY3RpdmU6Zm9jdXMgLmxpc3QtZ3JvdXAtaXRlbS1oZWFkaW5nID4gc21hbGwsXG4gIC5saXN0LWdyb3VwLWl0ZW0uYWN0aXZlOmZvY3VzIC5saXN0LWdyb3VwLWl0ZW0taGVhZGluZyA+IC5zbWFsbCB7XG4gICAgY29sb3I6IGluaGVyaXQ7IH1cbiAgLmxpc3QtZ3JvdXAtaXRlbS5hY3RpdmUgLmxpc3QtZ3JvdXAtaXRlbS10ZXh0LCAubGlzdC1ncm91cC1pdGVtLmFjdGl2ZTpob3ZlciAubGlzdC1ncm91cC1pdGVtLXRleHQsIC5saXN0LWdyb3VwLWl0ZW0uYWN0aXZlOmZvY3VzIC5saXN0LWdyb3VwLWl0ZW0tdGV4dCB7XG4gICAgY29sb3I6ICNjN2RkZWY7IH1cblxuLmxpc3QtZ3JvdXAtaXRlbS1zdWNjZXNzIHtcbiAgY29sb3I6ICMzYzc2M2Q7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkZmYwZDg7IH1cblxuYS5saXN0LWdyb3VwLWl0ZW0tc3VjY2VzcyxcbmJ1dHRvbi5saXN0LWdyb3VwLWl0ZW0tc3VjY2VzcyB7XG4gIGNvbG9yOiAjM2M3NjNkOyB9XG4gIGEubGlzdC1ncm91cC1pdGVtLXN1Y2Nlc3MgLmxpc3QtZ3JvdXAtaXRlbS1oZWFkaW5nLFxuICBidXR0b24ubGlzdC1ncm91cC1pdGVtLXN1Y2Nlc3MgLmxpc3QtZ3JvdXAtaXRlbS1oZWFkaW5nIHtcbiAgICBjb2xvcjogaW5oZXJpdDsgfVxuICBhLmxpc3QtZ3JvdXAtaXRlbS1zdWNjZXNzOmhvdmVyLCBhLmxpc3QtZ3JvdXAtaXRlbS1zdWNjZXNzOmZvY3VzLFxuICBidXR0b24ubGlzdC1ncm91cC1pdGVtLXN1Y2Nlc3M6aG92ZXIsXG4gIGJ1dHRvbi5saXN0LWdyb3VwLWl0ZW0tc3VjY2Vzczpmb2N1cyB7XG4gICAgY29sb3I6ICMzYzc2M2Q7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2QwZTljNjsgfVxuICBhLmxpc3QtZ3JvdXAtaXRlbS1zdWNjZXNzLmFjdGl2ZSwgYS5saXN0LWdyb3VwLWl0ZW0tc3VjY2Vzcy5hY3RpdmU6aG92ZXIsIGEubGlzdC1ncm91cC1pdGVtLXN1Y2Nlc3MuYWN0aXZlOmZvY3VzLFxuICBidXR0b24ubGlzdC1ncm91cC1pdGVtLXN1Y2Nlc3MuYWN0aXZlLFxuICBidXR0b24ubGlzdC1ncm91cC1pdGVtLXN1Y2Nlc3MuYWN0aXZlOmhvdmVyLFxuICBidXR0b24ubGlzdC1ncm91cC1pdGVtLXN1Y2Nlc3MuYWN0aXZlOmZvY3VzIHtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjM2M3NjNkO1xuICAgIGJvcmRlci1jb2xvcjogIzNjNzYzZDsgfVxuXG4ubGlzdC1ncm91cC1pdGVtLWluZm8ge1xuICBjb2xvcjogIzMxNzA4ZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Q5ZWRmNzsgfVxuXG5hLmxpc3QtZ3JvdXAtaXRlbS1pbmZvLFxuYnV0dG9uLmxpc3QtZ3JvdXAtaXRlbS1pbmZvIHtcbiAgY29sb3I6ICMzMTcwOGY7IH1cbiAgYS5saXN0LWdyb3VwLWl0ZW0taW5mbyAubGlzdC1ncm91cC1pdGVtLWhlYWRpbmcsXG4gIGJ1dHRvbi5saXN0LWdyb3VwLWl0ZW0taW5mbyAubGlzdC1ncm91cC1pdGVtLWhlYWRpbmcge1xuICAgIGNvbG9yOiBpbmhlcml0OyB9XG4gIGEubGlzdC1ncm91cC1pdGVtLWluZm86aG92ZXIsIGEubGlzdC1ncm91cC1pdGVtLWluZm86Zm9jdXMsXG4gIGJ1dHRvbi5saXN0LWdyb3VwLWl0ZW0taW5mbzpob3ZlcixcbiAgYnV0dG9uLmxpc3QtZ3JvdXAtaXRlbS1pbmZvOmZvY3VzIHtcbiAgICBjb2xvcjogIzMxNzA4ZjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYzRlM2YzOyB9XG4gIGEubGlzdC1ncm91cC1pdGVtLWluZm8uYWN0aXZlLCBhLmxpc3QtZ3JvdXAtaXRlbS1pbmZvLmFjdGl2ZTpob3ZlciwgYS5saXN0LWdyb3VwLWl0ZW0taW5mby5hY3RpdmU6Zm9jdXMsXG4gIGJ1dHRvbi5saXN0LWdyb3VwLWl0ZW0taW5mby5hY3RpdmUsXG4gIGJ1dHRvbi5saXN0LWdyb3VwLWl0ZW0taW5mby5hY3RpdmU6aG92ZXIsXG4gIGJ1dHRvbi5saXN0LWdyb3VwLWl0ZW0taW5mby5hY3RpdmU6Zm9jdXMge1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMzMTcwOGY7XG4gICAgYm9yZGVyLWNvbG9yOiAjMzE3MDhmOyB9XG5cbi5saXN0LWdyb3VwLWl0ZW0td2FybmluZyB7XG4gIGNvbG9yOiAjOGE2ZDNiO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmNmOGUzOyB9XG5cbmEubGlzdC1ncm91cC1pdGVtLXdhcm5pbmcsXG5idXR0b24ubGlzdC1ncm91cC1pdGVtLXdhcm5pbmcge1xuICBjb2xvcjogIzhhNmQzYjsgfVxuICBhLmxpc3QtZ3JvdXAtaXRlbS13YXJuaW5nIC5saXN0LWdyb3VwLWl0ZW0taGVhZGluZyxcbiAgYnV0dG9uLmxpc3QtZ3JvdXAtaXRlbS13YXJuaW5nIC5saXN0LWdyb3VwLWl0ZW0taGVhZGluZyB7XG4gICAgY29sb3I6IGluaGVyaXQ7IH1cbiAgYS5saXN0LWdyb3VwLWl0ZW0td2FybmluZzpob3ZlciwgYS5saXN0LWdyb3VwLWl0ZW0td2FybmluZzpmb2N1cyxcbiAgYnV0dG9uLmxpc3QtZ3JvdXAtaXRlbS13YXJuaW5nOmhvdmVyLFxuICBidXR0b24ubGlzdC1ncm91cC1pdGVtLXdhcm5pbmc6Zm9jdXMge1xuICAgIGNvbG9yOiAjOGE2ZDNiO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmYWYyY2M7IH1cbiAgYS5saXN0LWdyb3VwLWl0ZW0td2FybmluZy5hY3RpdmUsIGEubGlzdC1ncm91cC1pdGVtLXdhcm5pbmcuYWN0aXZlOmhvdmVyLCBhLmxpc3QtZ3JvdXAtaXRlbS13YXJuaW5nLmFjdGl2ZTpmb2N1cyxcbiAgYnV0dG9uLmxpc3QtZ3JvdXAtaXRlbS13YXJuaW5nLmFjdGl2ZSxcbiAgYnV0dG9uLmxpc3QtZ3JvdXAtaXRlbS13YXJuaW5nLmFjdGl2ZTpob3ZlcixcbiAgYnV0dG9uLmxpc3QtZ3JvdXAtaXRlbS13YXJuaW5nLmFjdGl2ZTpmb2N1cyB7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzhhNmQzYjtcbiAgICBib3JkZXItY29sb3I6ICM4YTZkM2I7IH1cblxuLmxpc3QtZ3JvdXAtaXRlbS1kYW5nZXIge1xuICBjb2xvcjogI2E5NDQ0MjtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2YyZGVkZTsgfVxuXG5hLmxpc3QtZ3JvdXAtaXRlbS1kYW5nZXIsXG5idXR0b24ubGlzdC1ncm91cC1pdGVtLWRhbmdlciB7XG4gIGNvbG9yOiAjYTk0NDQyOyB9XG4gIGEubGlzdC1ncm91cC1pdGVtLWRhbmdlciAubGlzdC1ncm91cC1pdGVtLWhlYWRpbmcsXG4gIGJ1dHRvbi5saXN0LWdyb3VwLWl0ZW0tZGFuZ2VyIC5saXN0LWdyb3VwLWl0ZW0taGVhZGluZyB7XG4gICAgY29sb3I6IGluaGVyaXQ7IH1cbiAgYS5saXN0LWdyb3VwLWl0ZW0tZGFuZ2VyOmhvdmVyLCBhLmxpc3QtZ3JvdXAtaXRlbS1kYW5nZXI6Zm9jdXMsXG4gIGJ1dHRvbi5saXN0LWdyb3VwLWl0ZW0tZGFuZ2VyOmhvdmVyLFxuICBidXR0b24ubGlzdC1ncm91cC1pdGVtLWRhbmdlcjpmb2N1cyB7XG4gICAgY29sb3I6ICNhOTQ0NDI7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ViY2NjYzsgfVxuICBhLmxpc3QtZ3JvdXAtaXRlbS1kYW5nZXIuYWN0aXZlLCBhLmxpc3QtZ3JvdXAtaXRlbS1kYW5nZXIuYWN0aXZlOmhvdmVyLCBhLmxpc3QtZ3JvdXAtaXRlbS1kYW5nZXIuYWN0aXZlOmZvY3VzLFxuICBidXR0b24ubGlzdC1ncm91cC1pdGVtLWRhbmdlci5hY3RpdmUsXG4gIGJ1dHRvbi5saXN0LWdyb3VwLWl0ZW0tZGFuZ2VyLmFjdGl2ZTpob3ZlcixcbiAgYnV0dG9uLmxpc3QtZ3JvdXAtaXRlbS1kYW5nZXIuYWN0aXZlOmZvY3VzIHtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYTk0NDQyO1xuICAgIGJvcmRlci1jb2xvcjogI2E5NDQ0MjsgfVxuXG4ubGlzdC1ncm91cC1pdGVtLWhlYWRpbmcge1xuICBtYXJnaW4tdG9wOiAwO1xuICBtYXJnaW4tYm90dG9tOiA1cHg7IH1cblxuLmxpc3QtZ3JvdXAtaXRlbS10ZXh0IHtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgbGluZS1oZWlnaHQ6IDEuMzsgfVxuXG4ucGFuZWwge1xuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgMXB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMDUpO1xuICBib3gtc2hhZG93OiAwIDFweCAxcHggcmdiYSgwLCAwLCAwLCAwLjA1KTsgfVxuXG4ucGFuZWwtYm9keSB7XG4gIHBhZGRpbmc6IDE1cHg7IH1cbiAgLnBhbmVsLWJvZHk6YmVmb3JlLCAucGFuZWwtYm9keTphZnRlciB7XG4gICAgY29udGVudDogXCIgXCI7XG4gICAgZGlzcGxheTogdGFibGU7IH1cbiAgLnBhbmVsLWJvZHk6YWZ0ZXIge1xuICAgIGNsZWFyOiBib3RoOyB9XG5cbi5wYW5lbC1oZWFkaW5nIHtcbiAgcGFkZGluZzogMTBweCAxNXB4O1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAzcHg7XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDNweDsgfVxuICAucGFuZWwtaGVhZGluZyA+IC5kcm9wZG93biAuZHJvcGRvd24tdG9nZ2xlIHtcbiAgICBjb2xvcjogaW5oZXJpdDsgfVxuXG4ucGFuZWwtdGl0bGUge1xuICBtYXJnaW4tdG9wOiAwO1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICBmb250LXNpemU6IDE2cHg7XG4gIGNvbG9yOiBpbmhlcml0OyB9XG4gIC5wYW5lbC10aXRsZSA+IGEsXG4gIC5wYW5lbC10aXRsZSA+IHNtYWxsLFxuICAucGFuZWwtdGl0bGUgPiAuc21hbGwsXG4gIC5wYW5lbC10aXRsZSA+IHNtYWxsID4gYSxcbiAgLnBhbmVsLXRpdGxlID4gLnNtYWxsID4gYSB7XG4gICAgY29sb3I6IGluaGVyaXQ7IH1cblxuLnBhbmVsLWZvb3RlciB7XG4gIHBhZGRpbmc6IDEwcHggMTVweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y1ZjVmNTtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNkZGQ7XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAzcHg7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDNweDsgfVxuXG4ucGFuZWwgPiAubGlzdC1ncm91cCxcbi5wYW5lbCA+IC5wYW5lbC1jb2xsYXBzZSA+IC5saXN0LWdyb3VwIHtcbiAgbWFyZ2luLWJvdHRvbTogMDsgfVxuICAucGFuZWwgPiAubGlzdC1ncm91cCAubGlzdC1ncm91cC1pdGVtLFxuICAucGFuZWwgPiAucGFuZWwtY29sbGFwc2UgPiAubGlzdC1ncm91cCAubGlzdC1ncm91cC1pdGVtIHtcbiAgICBib3JkZXItd2lkdGg6IDFweCAwO1xuICAgIGJvcmRlci1yYWRpdXM6IDA7IH1cbiAgLnBhbmVsID4gLmxpc3QtZ3JvdXA6Zmlyc3QtY2hpbGQgLmxpc3QtZ3JvdXAtaXRlbTpmaXJzdC1jaGlsZCxcbiAgLnBhbmVsID4gLnBhbmVsLWNvbGxhcHNlID4gLmxpc3QtZ3JvdXA6Zmlyc3QtY2hpbGQgLmxpc3QtZ3JvdXAtaXRlbTpmaXJzdC1jaGlsZCB7XG4gICAgYm9yZGVyLXRvcDogMDtcbiAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogM3B4O1xuICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDNweDsgfVxuICAucGFuZWwgPiAubGlzdC1ncm91cDpsYXN0LWNoaWxkIC5saXN0LWdyb3VwLWl0ZW06bGFzdC1jaGlsZCxcbiAgLnBhbmVsID4gLnBhbmVsLWNvbGxhcHNlID4gLmxpc3QtZ3JvdXA6bGFzdC1jaGlsZCAubGlzdC1ncm91cC1pdGVtOmxhc3QtY2hpbGQge1xuICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDNweDtcbiAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAzcHg7IH1cblxuLnBhbmVsID4gLnBhbmVsLWhlYWRpbmcgKyAucGFuZWwtY29sbGFwc2UgPiAubGlzdC1ncm91cCAubGlzdC1ncm91cC1pdGVtOmZpcnN0LWNoaWxkIHtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDA7XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDA7IH1cblxuLnBhbmVsLWhlYWRpbmcgKyAubGlzdC1ncm91cCAubGlzdC1ncm91cC1pdGVtOmZpcnN0LWNoaWxkIHtcbiAgYm9yZGVyLXRvcC13aWR0aDogMDsgfVxuXG4ubGlzdC1ncm91cCArIC5wYW5lbC1mb290ZXIge1xuICBib3JkZXItdG9wLXdpZHRoOiAwOyB9XG5cbi5wYW5lbCA+IC50YWJsZSxcbi5wYW5lbCA+IC50YWJsZS1yZXNwb25zaXZlID4gLnRhYmxlLFxuLnBhbmVsID4gLnBhbmVsLWNvbGxhcHNlID4gLnRhYmxlIHtcbiAgbWFyZ2luLWJvdHRvbTogMDsgfVxuICAucGFuZWwgPiAudGFibGUgY2FwdGlvbixcbiAgLnBhbmVsID4gLnRhYmxlLXJlc3BvbnNpdmUgPiAudGFibGUgY2FwdGlvbixcbiAgLnBhbmVsID4gLnBhbmVsLWNvbGxhcHNlID4gLnRhYmxlIGNhcHRpb24ge1xuICAgIHBhZGRpbmctbGVmdDogMTVweDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxNXB4OyB9XG5cbi5wYW5lbCA+IC50YWJsZTpmaXJzdC1jaGlsZCxcbi5wYW5lbCA+IC50YWJsZS1yZXNwb25zaXZlOmZpcnN0LWNoaWxkID4gLnRhYmxlOmZpcnN0LWNoaWxkIHtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDNweDtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogM3B4OyB9XG4gIC5wYW5lbCA+IC50YWJsZTpmaXJzdC1jaGlsZCA+IHRoZWFkOmZpcnN0LWNoaWxkID4gdHI6Zmlyc3QtY2hpbGQsXG4gIC5wYW5lbCA+IC50YWJsZTpmaXJzdC1jaGlsZCA+IHRib2R5OmZpcnN0LWNoaWxkID4gdHI6Zmlyc3QtY2hpbGQsXG4gIC5wYW5lbCA+IC50YWJsZS1yZXNwb25zaXZlOmZpcnN0LWNoaWxkID4gLnRhYmxlOmZpcnN0LWNoaWxkID4gdGhlYWQ6Zmlyc3QtY2hpbGQgPiB0cjpmaXJzdC1jaGlsZCxcbiAgLnBhbmVsID4gLnRhYmxlLXJlc3BvbnNpdmU6Zmlyc3QtY2hpbGQgPiAudGFibGU6Zmlyc3QtY2hpbGQgPiB0Ym9keTpmaXJzdC1jaGlsZCA+IHRyOmZpcnN0LWNoaWxkIHtcbiAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAzcHg7XG4gICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDNweDsgfVxuICAgIC5wYW5lbCA+IC50YWJsZTpmaXJzdC1jaGlsZCA+IHRoZWFkOmZpcnN0LWNoaWxkID4gdHI6Zmlyc3QtY2hpbGQgdGQ6Zmlyc3QtY2hpbGQsXG4gICAgLnBhbmVsID4gLnRhYmxlOmZpcnN0LWNoaWxkID4gdGhlYWQ6Zmlyc3QtY2hpbGQgPiB0cjpmaXJzdC1jaGlsZCB0aDpmaXJzdC1jaGlsZCxcbiAgICAucGFuZWwgPiAudGFibGU6Zmlyc3QtY2hpbGQgPiB0Ym9keTpmaXJzdC1jaGlsZCA+IHRyOmZpcnN0LWNoaWxkIHRkOmZpcnN0LWNoaWxkLFxuICAgIC5wYW5lbCA+IC50YWJsZTpmaXJzdC1jaGlsZCA+IHRib2R5OmZpcnN0LWNoaWxkID4gdHI6Zmlyc3QtY2hpbGQgdGg6Zmlyc3QtY2hpbGQsXG4gICAgLnBhbmVsID4gLnRhYmxlLXJlc3BvbnNpdmU6Zmlyc3QtY2hpbGQgPiAudGFibGU6Zmlyc3QtY2hpbGQgPiB0aGVhZDpmaXJzdC1jaGlsZCA+IHRyOmZpcnN0LWNoaWxkIHRkOmZpcnN0LWNoaWxkLFxuICAgIC5wYW5lbCA+IC50YWJsZS1yZXNwb25zaXZlOmZpcnN0LWNoaWxkID4gLnRhYmxlOmZpcnN0LWNoaWxkID4gdGhlYWQ6Zmlyc3QtY2hpbGQgPiB0cjpmaXJzdC1jaGlsZCB0aDpmaXJzdC1jaGlsZCxcbiAgICAucGFuZWwgPiAudGFibGUtcmVzcG9uc2l2ZTpmaXJzdC1jaGlsZCA+IC50YWJsZTpmaXJzdC1jaGlsZCA+IHRib2R5OmZpcnN0LWNoaWxkID4gdHI6Zmlyc3QtY2hpbGQgdGQ6Zmlyc3QtY2hpbGQsXG4gICAgLnBhbmVsID4gLnRhYmxlLXJlc3BvbnNpdmU6Zmlyc3QtY2hpbGQgPiAudGFibGU6Zmlyc3QtY2hpbGQgPiB0Ym9keTpmaXJzdC1jaGlsZCA+IHRyOmZpcnN0LWNoaWxkIHRoOmZpcnN0LWNoaWxkIHtcbiAgICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDNweDsgfVxuICAgIC5wYW5lbCA+IC50YWJsZTpmaXJzdC1jaGlsZCA+IHRoZWFkOmZpcnN0LWNoaWxkID4gdHI6Zmlyc3QtY2hpbGQgdGQ6bGFzdC1jaGlsZCxcbiAgICAucGFuZWwgPiAudGFibGU6Zmlyc3QtY2hpbGQgPiB0aGVhZDpmaXJzdC1jaGlsZCA+IHRyOmZpcnN0LWNoaWxkIHRoOmxhc3QtY2hpbGQsXG4gICAgLnBhbmVsID4gLnRhYmxlOmZpcnN0LWNoaWxkID4gdGJvZHk6Zmlyc3QtY2hpbGQgPiB0cjpmaXJzdC1jaGlsZCB0ZDpsYXN0LWNoaWxkLFxuICAgIC5wYW5lbCA+IC50YWJsZTpmaXJzdC1jaGlsZCA+IHRib2R5OmZpcnN0LWNoaWxkID4gdHI6Zmlyc3QtY2hpbGQgdGg6bGFzdC1jaGlsZCxcbiAgICAucGFuZWwgPiAudGFibGUtcmVzcG9uc2l2ZTpmaXJzdC1jaGlsZCA+IC50YWJsZTpmaXJzdC1jaGlsZCA+IHRoZWFkOmZpcnN0LWNoaWxkID4gdHI6Zmlyc3QtY2hpbGQgdGQ6bGFzdC1jaGlsZCxcbiAgICAucGFuZWwgPiAudGFibGUtcmVzcG9uc2l2ZTpmaXJzdC1jaGlsZCA+IC50YWJsZTpmaXJzdC1jaGlsZCA+IHRoZWFkOmZpcnN0LWNoaWxkID4gdHI6Zmlyc3QtY2hpbGQgdGg6bGFzdC1jaGlsZCxcbiAgICAucGFuZWwgPiAudGFibGUtcmVzcG9uc2l2ZTpmaXJzdC1jaGlsZCA+IC50YWJsZTpmaXJzdC1jaGlsZCA+IHRib2R5OmZpcnN0LWNoaWxkID4gdHI6Zmlyc3QtY2hpbGQgdGQ6bGFzdC1jaGlsZCxcbiAgICAucGFuZWwgPiAudGFibGUtcmVzcG9uc2l2ZTpmaXJzdC1jaGlsZCA+IC50YWJsZTpmaXJzdC1jaGlsZCA+IHRib2R5OmZpcnN0LWNoaWxkID4gdHI6Zmlyc3QtY2hpbGQgdGg6bGFzdC1jaGlsZCB7XG4gICAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogM3B4OyB9XG5cbi5wYW5lbCA+IC50YWJsZTpsYXN0LWNoaWxkLFxuLnBhbmVsID4gLnRhYmxlLXJlc3BvbnNpdmU6bGFzdC1jaGlsZCA+IC50YWJsZTpsYXN0LWNoaWxkIHtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDNweDtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogM3B4OyB9XG4gIC5wYW5lbCA+IC50YWJsZTpsYXN0LWNoaWxkID4gdGJvZHk6bGFzdC1jaGlsZCA+IHRyOmxhc3QtY2hpbGQsXG4gIC5wYW5lbCA+IC50YWJsZTpsYXN0LWNoaWxkID4gdGZvb3Q6bGFzdC1jaGlsZCA+IHRyOmxhc3QtY2hpbGQsXG4gIC5wYW5lbCA+IC50YWJsZS1yZXNwb25zaXZlOmxhc3QtY2hpbGQgPiAudGFibGU6bGFzdC1jaGlsZCA+IHRib2R5Omxhc3QtY2hpbGQgPiB0cjpsYXN0LWNoaWxkLFxuICAucGFuZWwgPiAudGFibGUtcmVzcG9uc2l2ZTpsYXN0LWNoaWxkID4gLnRhYmxlOmxhc3QtY2hpbGQgPiB0Zm9vdDpsYXN0LWNoaWxkID4gdHI6bGFzdC1jaGlsZCB7XG4gICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogM3B4O1xuICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAzcHg7IH1cbiAgICAucGFuZWwgPiAudGFibGU6bGFzdC1jaGlsZCA+IHRib2R5Omxhc3QtY2hpbGQgPiB0cjpsYXN0LWNoaWxkIHRkOmZpcnN0LWNoaWxkLFxuICAgIC5wYW5lbCA+IC50YWJsZTpsYXN0LWNoaWxkID4gdGJvZHk6bGFzdC1jaGlsZCA+IHRyOmxhc3QtY2hpbGQgdGg6Zmlyc3QtY2hpbGQsXG4gICAgLnBhbmVsID4gLnRhYmxlOmxhc3QtY2hpbGQgPiB0Zm9vdDpsYXN0LWNoaWxkID4gdHI6bGFzdC1jaGlsZCB0ZDpmaXJzdC1jaGlsZCxcbiAgICAucGFuZWwgPiAudGFibGU6bGFzdC1jaGlsZCA+IHRmb290Omxhc3QtY2hpbGQgPiB0cjpsYXN0LWNoaWxkIHRoOmZpcnN0LWNoaWxkLFxuICAgIC5wYW5lbCA+IC50YWJsZS1yZXNwb25zaXZlOmxhc3QtY2hpbGQgPiAudGFibGU6bGFzdC1jaGlsZCA+IHRib2R5Omxhc3QtY2hpbGQgPiB0cjpsYXN0LWNoaWxkIHRkOmZpcnN0LWNoaWxkLFxuICAgIC5wYW5lbCA+IC50YWJsZS1yZXNwb25zaXZlOmxhc3QtY2hpbGQgPiAudGFibGU6bGFzdC1jaGlsZCA+IHRib2R5Omxhc3QtY2hpbGQgPiB0cjpsYXN0LWNoaWxkIHRoOmZpcnN0LWNoaWxkLFxuICAgIC5wYW5lbCA+IC50YWJsZS1yZXNwb25zaXZlOmxhc3QtY2hpbGQgPiAudGFibGU6bGFzdC1jaGlsZCA+IHRmb290Omxhc3QtY2hpbGQgPiB0cjpsYXN0LWNoaWxkIHRkOmZpcnN0LWNoaWxkLFxuICAgIC5wYW5lbCA+IC50YWJsZS1yZXNwb25zaXZlOmxhc3QtY2hpbGQgPiAudGFibGU6bGFzdC1jaGlsZCA+IHRmb290Omxhc3QtY2hpbGQgPiB0cjpsYXN0LWNoaWxkIHRoOmZpcnN0LWNoaWxkIHtcbiAgICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDNweDsgfVxuICAgIC5wYW5lbCA+IC50YWJsZTpsYXN0LWNoaWxkID4gdGJvZHk6bGFzdC1jaGlsZCA+IHRyOmxhc3QtY2hpbGQgdGQ6bGFzdC1jaGlsZCxcbiAgICAucGFuZWwgPiAudGFibGU6bGFzdC1jaGlsZCA+IHRib2R5Omxhc3QtY2hpbGQgPiB0cjpsYXN0LWNoaWxkIHRoOmxhc3QtY2hpbGQsXG4gICAgLnBhbmVsID4gLnRhYmxlOmxhc3QtY2hpbGQgPiB0Zm9vdDpsYXN0LWNoaWxkID4gdHI6bGFzdC1jaGlsZCB0ZDpsYXN0LWNoaWxkLFxuICAgIC5wYW5lbCA+IC50YWJsZTpsYXN0LWNoaWxkID4gdGZvb3Q6bGFzdC1jaGlsZCA+IHRyOmxhc3QtY2hpbGQgdGg6bGFzdC1jaGlsZCxcbiAgICAucGFuZWwgPiAudGFibGUtcmVzcG9uc2l2ZTpsYXN0LWNoaWxkID4gLnRhYmxlOmxhc3QtY2hpbGQgPiB0Ym9keTpsYXN0LWNoaWxkID4gdHI6bGFzdC1jaGlsZCB0ZDpsYXN0LWNoaWxkLFxuICAgIC5wYW5lbCA+IC50YWJsZS1yZXNwb25zaXZlOmxhc3QtY2hpbGQgPiAudGFibGU6bGFzdC1jaGlsZCA+IHRib2R5Omxhc3QtY2hpbGQgPiB0cjpsYXN0LWNoaWxkIHRoOmxhc3QtY2hpbGQsXG4gICAgLnBhbmVsID4gLnRhYmxlLXJlc3BvbnNpdmU6bGFzdC1jaGlsZCA+IC50YWJsZTpsYXN0LWNoaWxkID4gdGZvb3Q6bGFzdC1jaGlsZCA+IHRyOmxhc3QtY2hpbGQgdGQ6bGFzdC1jaGlsZCxcbiAgICAucGFuZWwgPiAudGFibGUtcmVzcG9uc2l2ZTpsYXN0LWNoaWxkID4gLnRhYmxlOmxhc3QtY2hpbGQgPiB0Zm9vdDpsYXN0LWNoaWxkID4gdHI6bGFzdC1jaGlsZCB0aDpsYXN0LWNoaWxkIHtcbiAgICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAzcHg7IH1cblxuLnBhbmVsID4gLnBhbmVsLWJvZHkgKyAudGFibGUsXG4ucGFuZWwgPiAucGFuZWwtYm9keSArIC50YWJsZS1yZXNwb25zaXZlLFxuLnBhbmVsID4gLnRhYmxlICsgLnBhbmVsLWJvZHksXG4ucGFuZWwgPiAudGFibGUtcmVzcG9uc2l2ZSArIC5wYW5lbC1ib2R5IHtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNkZGQ7IH1cblxuLnBhbmVsID4gLnRhYmxlID4gdGJvZHk6Zmlyc3QtY2hpbGQgPiB0cjpmaXJzdC1jaGlsZCB0aCxcbi5wYW5lbCA+IC50YWJsZSA+IHRib2R5OmZpcnN0LWNoaWxkID4gdHI6Zmlyc3QtY2hpbGQgdGQge1xuICBib3JkZXItdG9wOiAwOyB9XG5cbi5wYW5lbCA+IC50YWJsZS1ib3JkZXJlZCxcbi5wYW5lbCA+IC50YWJsZS1yZXNwb25zaXZlID4gLnRhYmxlLWJvcmRlcmVkIHtcbiAgYm9yZGVyOiAwOyB9XG4gIC5wYW5lbCA+IC50YWJsZS1ib3JkZXJlZCA+IHRoZWFkID4gdHIgPiB0aDpmaXJzdC1jaGlsZCxcbiAgLnBhbmVsID4gLnRhYmxlLWJvcmRlcmVkID4gdGhlYWQgPiB0ciA+IHRkOmZpcnN0LWNoaWxkLFxuICAucGFuZWwgPiAudGFibGUtYm9yZGVyZWQgPiB0Ym9keSA+IHRyID4gdGg6Zmlyc3QtY2hpbGQsXG4gIC5wYW5lbCA+IC50YWJsZS1ib3JkZXJlZCA+IHRib2R5ID4gdHIgPiB0ZDpmaXJzdC1jaGlsZCxcbiAgLnBhbmVsID4gLnRhYmxlLWJvcmRlcmVkID4gdGZvb3QgPiB0ciA+IHRoOmZpcnN0LWNoaWxkLFxuICAucGFuZWwgPiAudGFibGUtYm9yZGVyZWQgPiB0Zm9vdCA+IHRyID4gdGQ6Zmlyc3QtY2hpbGQsXG4gIC5wYW5lbCA+IC50YWJsZS1yZXNwb25zaXZlID4gLnRhYmxlLWJvcmRlcmVkID4gdGhlYWQgPiB0ciA+IHRoOmZpcnN0LWNoaWxkLFxuICAucGFuZWwgPiAudGFibGUtcmVzcG9uc2l2ZSA+IC50YWJsZS1ib3JkZXJlZCA+IHRoZWFkID4gdHIgPiB0ZDpmaXJzdC1jaGlsZCxcbiAgLnBhbmVsID4gLnRhYmxlLXJlc3BvbnNpdmUgPiAudGFibGUtYm9yZGVyZWQgPiB0Ym9keSA+IHRyID4gdGg6Zmlyc3QtY2hpbGQsXG4gIC5wYW5lbCA+IC50YWJsZS1yZXNwb25zaXZlID4gLnRhYmxlLWJvcmRlcmVkID4gdGJvZHkgPiB0ciA+IHRkOmZpcnN0LWNoaWxkLFxuICAucGFuZWwgPiAudGFibGUtcmVzcG9uc2l2ZSA+IC50YWJsZS1ib3JkZXJlZCA+IHRmb290ID4gdHIgPiB0aDpmaXJzdC1jaGlsZCxcbiAgLnBhbmVsID4gLnRhYmxlLXJlc3BvbnNpdmUgPiAudGFibGUtYm9yZGVyZWQgPiB0Zm9vdCA+IHRyID4gdGQ6Zmlyc3QtY2hpbGQge1xuICAgIGJvcmRlci1sZWZ0OiAwOyB9XG4gIC5wYW5lbCA+IC50YWJsZS1ib3JkZXJlZCA+IHRoZWFkID4gdHIgPiB0aDpsYXN0LWNoaWxkLFxuICAucGFuZWwgPiAudGFibGUtYm9yZGVyZWQgPiB0aGVhZCA+IHRyID4gdGQ6bGFzdC1jaGlsZCxcbiAgLnBhbmVsID4gLnRhYmxlLWJvcmRlcmVkID4gdGJvZHkgPiB0ciA+IHRoOmxhc3QtY2hpbGQsXG4gIC5wYW5lbCA+IC50YWJsZS1ib3JkZXJlZCA+IHRib2R5ID4gdHIgPiB0ZDpsYXN0LWNoaWxkLFxuICAucGFuZWwgPiAudGFibGUtYm9yZGVyZWQgPiB0Zm9vdCA+IHRyID4gdGg6bGFzdC1jaGlsZCxcbiAgLnBhbmVsID4gLnRhYmxlLWJvcmRlcmVkID4gdGZvb3QgPiB0ciA+IHRkOmxhc3QtY2hpbGQsXG4gIC5wYW5lbCA+IC50YWJsZS1yZXNwb25zaXZlID4gLnRhYmxlLWJvcmRlcmVkID4gdGhlYWQgPiB0ciA+IHRoOmxhc3QtY2hpbGQsXG4gIC5wYW5lbCA+IC50YWJsZS1yZXNwb25zaXZlID4gLnRhYmxlLWJvcmRlcmVkID4gdGhlYWQgPiB0ciA+IHRkOmxhc3QtY2hpbGQsXG4gIC5wYW5lbCA+IC50YWJsZS1yZXNwb25zaXZlID4gLnRhYmxlLWJvcmRlcmVkID4gdGJvZHkgPiB0ciA+IHRoOmxhc3QtY2hpbGQsXG4gIC5wYW5lbCA+IC50YWJsZS1yZXNwb25zaXZlID4gLnRhYmxlLWJvcmRlcmVkID4gdGJvZHkgPiB0ciA+IHRkOmxhc3QtY2hpbGQsXG4gIC5wYW5lbCA+IC50YWJsZS1yZXNwb25zaXZlID4gLnRhYmxlLWJvcmRlcmVkID4gdGZvb3QgPiB0ciA+IHRoOmxhc3QtY2hpbGQsXG4gIC5wYW5lbCA+IC50YWJsZS1yZXNwb25zaXZlID4gLnRhYmxlLWJvcmRlcmVkID4gdGZvb3QgPiB0ciA+IHRkOmxhc3QtY2hpbGQge1xuICAgIGJvcmRlci1yaWdodDogMDsgfVxuICAucGFuZWwgPiAudGFibGUtYm9yZGVyZWQgPiB0aGVhZCA+IHRyOmZpcnN0LWNoaWxkID4gdGQsXG4gIC5wYW5lbCA+IC50YWJsZS1ib3JkZXJlZCA+IHRoZWFkID4gdHI6Zmlyc3QtY2hpbGQgPiB0aCxcbiAgLnBhbmVsID4gLnRhYmxlLWJvcmRlcmVkID4gdGJvZHkgPiB0cjpmaXJzdC1jaGlsZCA+IHRkLFxuICAucGFuZWwgPiAudGFibGUtYm9yZGVyZWQgPiB0Ym9keSA+IHRyOmZpcnN0LWNoaWxkID4gdGgsXG4gIC5wYW5lbCA+IC50YWJsZS1yZXNwb25zaXZlID4gLnRhYmxlLWJvcmRlcmVkID4gdGhlYWQgPiB0cjpmaXJzdC1jaGlsZCA+IHRkLFxuICAucGFuZWwgPiAudGFibGUtcmVzcG9uc2l2ZSA+IC50YWJsZS1ib3JkZXJlZCA+IHRoZWFkID4gdHI6Zmlyc3QtY2hpbGQgPiB0aCxcbiAgLnBhbmVsID4gLnRhYmxlLXJlc3BvbnNpdmUgPiAudGFibGUtYm9yZGVyZWQgPiB0Ym9keSA+IHRyOmZpcnN0LWNoaWxkID4gdGQsXG4gIC5wYW5lbCA+IC50YWJsZS1yZXNwb25zaXZlID4gLnRhYmxlLWJvcmRlcmVkID4gdGJvZHkgPiB0cjpmaXJzdC1jaGlsZCA+IHRoIHtcbiAgICBib3JkZXItYm90dG9tOiAwOyB9XG4gIC5wYW5lbCA+IC50YWJsZS1ib3JkZXJlZCA+IHRib2R5ID4gdHI6bGFzdC1jaGlsZCA+IHRkLFxuICAucGFuZWwgPiAudGFibGUtYm9yZGVyZWQgPiB0Ym9keSA+IHRyOmxhc3QtY2hpbGQgPiB0aCxcbiAgLnBhbmVsID4gLnRhYmxlLWJvcmRlcmVkID4gdGZvb3QgPiB0cjpsYXN0LWNoaWxkID4gdGQsXG4gIC5wYW5lbCA+IC50YWJsZS1ib3JkZXJlZCA+IHRmb290ID4gdHI6bGFzdC1jaGlsZCA+IHRoLFxuICAucGFuZWwgPiAudGFibGUtcmVzcG9uc2l2ZSA+IC50YWJsZS1ib3JkZXJlZCA+IHRib2R5ID4gdHI6bGFzdC1jaGlsZCA+IHRkLFxuICAucGFuZWwgPiAudGFibGUtcmVzcG9uc2l2ZSA+IC50YWJsZS1ib3JkZXJlZCA+IHRib2R5ID4gdHI6bGFzdC1jaGlsZCA+IHRoLFxuICAucGFuZWwgPiAudGFibGUtcmVzcG9uc2l2ZSA+IC50YWJsZS1ib3JkZXJlZCA+IHRmb290ID4gdHI6bGFzdC1jaGlsZCA+IHRkLFxuICAucGFuZWwgPiAudGFibGUtcmVzcG9uc2l2ZSA+IC50YWJsZS1ib3JkZXJlZCA+IHRmb290ID4gdHI6bGFzdC1jaGlsZCA+IHRoIHtcbiAgICBib3JkZXItYm90dG9tOiAwOyB9XG5cbi5wYW5lbCA+IC50YWJsZS1yZXNwb25zaXZlIHtcbiAgYm9yZGVyOiAwO1xuICBtYXJnaW4tYm90dG9tOiAwOyB9XG5cbi5wYW5lbC1ncm91cCB7XG4gIG1hcmdpbi1ib3R0b206IDIwcHg7IH1cbiAgLnBhbmVsLWdyb3VwIC5wYW5lbCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7IH1cbiAgICAucGFuZWwtZ3JvdXAgLnBhbmVsICsgLnBhbmVsIHtcbiAgICAgIG1hcmdpbi10b3A6IDVweDsgfVxuICAucGFuZWwtZ3JvdXAgLnBhbmVsLWhlYWRpbmcge1xuICAgIGJvcmRlci1ib3R0b206IDA7IH1cbiAgICAucGFuZWwtZ3JvdXAgLnBhbmVsLWhlYWRpbmcgKyAucGFuZWwtY29sbGFwc2UgPiAucGFuZWwtYm9keSxcbiAgICAucGFuZWwtZ3JvdXAgLnBhbmVsLWhlYWRpbmcgKyAucGFuZWwtY29sbGFwc2UgPiAubGlzdC1ncm91cCB7XG4gICAgICBib3JkZXItdG9wOiAxcHggc29saWQgI2RkZDsgfVxuICAucGFuZWwtZ3JvdXAgLnBhbmVsLWZvb3RlciB7XG4gICAgYm9yZGVyLXRvcDogMDsgfVxuICAgIC5wYW5lbC1ncm91cCAucGFuZWwtZm9vdGVyICsgLnBhbmVsLWNvbGxhcHNlIC5wYW5lbC1ib2R5IHtcbiAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZGRkOyB9XG5cbi5wYW5lbC1kZWZhdWx0IHtcbiAgYm9yZGVyLWNvbG9yOiAjZGRkOyB9XG4gIC5wYW5lbC1kZWZhdWx0ID4gLnBhbmVsLWhlYWRpbmcge1xuICAgIGNvbG9yOiAjMzMzMzMzO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmNWY1ZjU7XG4gICAgYm9yZGVyLWNvbG9yOiAjZGRkOyB9XG4gICAgLnBhbmVsLWRlZmF1bHQgPiAucGFuZWwtaGVhZGluZyArIC5wYW5lbC1jb2xsYXBzZSA+IC5wYW5lbC1ib2R5IHtcbiAgICAgIGJvcmRlci10b3AtY29sb3I6ICNkZGQ7IH1cbiAgICAucGFuZWwtZGVmYXVsdCA+IC5wYW5lbC1oZWFkaW5nIC5iYWRnZSB7XG4gICAgICBjb2xvcjogI2Y1ZjVmNTtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMzMzMzMzM7IH1cbiAgLnBhbmVsLWRlZmF1bHQgPiAucGFuZWwtZm9vdGVyICsgLnBhbmVsLWNvbGxhcHNlID4gLnBhbmVsLWJvZHkge1xuICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICNkZGQ7IH1cblxuLnBhbmVsLXByaW1hcnkge1xuICBib3JkZXItY29sb3I6ICMzMzdhYjc7IH1cbiAgLnBhbmVsLXByaW1hcnkgPiAucGFuZWwtaGVhZGluZyB7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzMzN2FiNztcbiAgICBib3JkZXItY29sb3I6ICMzMzdhYjc7IH1cbiAgICAucGFuZWwtcHJpbWFyeSA+IC5wYW5lbC1oZWFkaW5nICsgLnBhbmVsLWNvbGxhcHNlID4gLnBhbmVsLWJvZHkge1xuICAgICAgYm9yZGVyLXRvcC1jb2xvcjogIzMzN2FiNzsgfVxuICAgIC5wYW5lbC1wcmltYXJ5ID4gLnBhbmVsLWhlYWRpbmcgLmJhZGdlIHtcbiAgICAgIGNvbG9yOiAjMzM3YWI3O1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsgfVxuICAucGFuZWwtcHJpbWFyeSA+IC5wYW5lbC1mb290ZXIgKyAucGFuZWwtY29sbGFwc2UgPiAucGFuZWwtYm9keSB7XG4gICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogIzMzN2FiNzsgfVxuXG4ucGFuZWwtc3VjY2VzcyB7XG4gIGJvcmRlci1jb2xvcjogI2Q2ZTljNjsgfVxuICAucGFuZWwtc3VjY2VzcyA+IC5wYW5lbC1oZWFkaW5nIHtcbiAgICBjb2xvcjogIzNjNzYzZDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGZmMGQ4O1xuICAgIGJvcmRlci1jb2xvcjogI2Q2ZTljNjsgfVxuICAgIC5wYW5lbC1zdWNjZXNzID4gLnBhbmVsLWhlYWRpbmcgKyAucGFuZWwtY29sbGFwc2UgPiAucGFuZWwtYm9keSB7XG4gICAgICBib3JkZXItdG9wLWNvbG9yOiAjZDZlOWM2OyB9XG4gICAgLnBhbmVsLXN1Y2Nlc3MgPiAucGFuZWwtaGVhZGluZyAuYmFkZ2Uge1xuICAgICAgY29sb3I6ICNkZmYwZDg7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjM2M3NjNkOyB9XG4gIC5wYW5lbC1zdWNjZXNzID4gLnBhbmVsLWZvb3RlciArIC5wYW5lbC1jb2xsYXBzZSA+IC5wYW5lbC1ib2R5IHtcbiAgICBib3JkZXItYm90dG9tLWNvbG9yOiAjZDZlOWM2OyB9XG5cbi5wYW5lbC1pbmZvIHtcbiAgYm9yZGVyLWNvbG9yOiAjYmNlOGYxOyB9XG4gIC5wYW5lbC1pbmZvID4gLnBhbmVsLWhlYWRpbmcge1xuICAgIGNvbG9yOiAjMzE3MDhmO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNkOWVkZjc7XG4gICAgYm9yZGVyLWNvbG9yOiAjYmNlOGYxOyB9XG4gICAgLnBhbmVsLWluZm8gPiAucGFuZWwtaGVhZGluZyArIC5wYW5lbC1jb2xsYXBzZSA+IC5wYW5lbC1ib2R5IHtcbiAgICAgIGJvcmRlci10b3AtY29sb3I6ICNiY2U4ZjE7IH1cbiAgICAucGFuZWwtaW5mbyA+IC5wYW5lbC1oZWFkaW5nIC5iYWRnZSB7XG4gICAgICBjb2xvcjogI2Q5ZWRmNztcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMzMTcwOGY7IH1cbiAgLnBhbmVsLWluZm8gPiAucGFuZWwtZm9vdGVyICsgLnBhbmVsLWNvbGxhcHNlID4gLnBhbmVsLWJvZHkge1xuICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICNiY2U4ZjE7IH1cblxuLnBhbmVsLXdhcm5pbmcge1xuICBib3JkZXItY29sb3I6ICNmYWViY2M7IH1cbiAgLnBhbmVsLXdhcm5pbmcgPiAucGFuZWwtaGVhZGluZyB7XG4gICAgY29sb3I6ICM4YTZkM2I7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZjZjhlMztcbiAgICBib3JkZXItY29sb3I6ICNmYWViY2M7IH1cbiAgICAucGFuZWwtd2FybmluZyA+IC5wYW5lbC1oZWFkaW5nICsgLnBhbmVsLWNvbGxhcHNlID4gLnBhbmVsLWJvZHkge1xuICAgICAgYm9yZGVyLXRvcC1jb2xvcjogI2ZhZWJjYzsgfVxuICAgIC5wYW5lbC13YXJuaW5nID4gLnBhbmVsLWhlYWRpbmcgLmJhZGdlIHtcbiAgICAgIGNvbG9yOiAjZmNmOGUzO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzhhNmQzYjsgfVxuICAucGFuZWwtd2FybmluZyA+IC5wYW5lbC1mb290ZXIgKyAucGFuZWwtY29sbGFwc2UgPiAucGFuZWwtYm9keSB7XG4gICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogI2ZhZWJjYzsgfVxuXG4ucGFuZWwtZGFuZ2VyIHtcbiAgYm9yZGVyLWNvbG9yOiAjZWJjY2QxOyB9XG4gIC5wYW5lbC1kYW5nZXIgPiAucGFuZWwtaGVhZGluZyB7XG4gICAgY29sb3I6ICNhOTQ0NDI7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2YyZGVkZTtcbiAgICBib3JkZXItY29sb3I6ICNlYmNjZDE7IH1cbiAgICAucGFuZWwtZGFuZ2VyID4gLnBhbmVsLWhlYWRpbmcgKyAucGFuZWwtY29sbGFwc2UgPiAucGFuZWwtYm9keSB7XG4gICAgICBib3JkZXItdG9wLWNvbG9yOiAjZWJjY2QxOyB9XG4gICAgLnBhbmVsLWRhbmdlciA+IC5wYW5lbC1oZWFkaW5nIC5iYWRnZSB7XG4gICAgICBjb2xvcjogI2YyZGVkZTtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNhOTQ0NDI7IH1cbiAgLnBhbmVsLWRhbmdlciA+IC5wYW5lbC1mb290ZXIgKyAucGFuZWwtY29sbGFwc2UgPiAucGFuZWwtYm9keSB7XG4gICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogI2ViY2NkMTsgfVxuXG4uZW1iZWQtcmVzcG9uc2l2ZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGhlaWdodDogMDtcbiAgcGFkZGluZzogMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuICAuZW1iZWQtcmVzcG9uc2l2ZSAuZW1iZWQtcmVzcG9uc2l2ZS1pdGVtLFxuICAuZW1iZWQtcmVzcG9uc2l2ZSBpZnJhbWUsXG4gIC5lbWJlZC1yZXNwb25zaXZlIGVtYmVkLFxuICAuZW1iZWQtcmVzcG9uc2l2ZSBvYmplY3QsXG4gIC5lbWJlZC1yZXNwb25zaXZlIHZpZGVvIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgYm90dG9tOiAwO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBib3JkZXI6IDA7IH1cblxuLmVtYmVkLXJlc3BvbnNpdmUtMTZieTkge1xuICBwYWRkaW5nLWJvdHRvbTogNTYuMjUlOyB9XG5cbi5lbWJlZC1yZXNwb25zaXZlLTRieTMge1xuICBwYWRkaW5nLWJvdHRvbTogNzUlOyB9XG5cbi53ZWxsIHtcbiAgbWluLWhlaWdodDogMjBweDtcbiAgcGFkZGluZzogMTlweDtcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y1ZjVmNTtcbiAgYm9yZGVyOiAxcHggc29saWQgI2UzZTNlMztcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAtd2Via2l0LWJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMDUpO1xuICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAxcHggcmdiYSgwLCAwLCAwLCAwLjA1KTsgfVxuICAud2VsbCBibG9ja3F1b3RlIHtcbiAgICBib3JkZXItY29sb3I6ICNkZGQ7XG4gICAgYm9yZGVyLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMTUpOyB9XG5cbi53ZWxsLWxnIHtcbiAgcGFkZGluZzogMjRweDtcbiAgYm9yZGVyLXJhZGl1czogNnB4OyB9XG5cbi53ZWxsLXNtIHtcbiAgcGFkZGluZzogOXB4O1xuICBib3JkZXItcmFkaXVzOiAzcHg7IH1cblxuLmNsb3NlIHtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBmb250LXNpemU6IDIxcHg7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBsaW5lLWhlaWdodDogMTtcbiAgY29sb3I6ICMwMDA7XG4gIHRleHQtc2hhZG93OiAwIDFweCAwICNmZmY7XG4gIG9wYWNpdHk6IDAuMjtcbiAgZmlsdGVyOiBhbHBoYShvcGFjaXR5PTIwKTsgfVxuICAuY2xvc2U6aG92ZXIsIC5jbG9zZTpmb2N1cyB7XG4gICAgY29sb3I6ICMwMDA7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBvcGFjaXR5OiAwLjU7XG4gICAgZmlsdGVyOiBhbHBoYShvcGFjaXR5PTUwKTsgfVxuXG5idXR0b24uY2xvc2Uge1xuICBwYWRkaW5nOiAwO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBib3JkZXI6IDA7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsgfVxuXG4ubW9kYWwtb3BlbiB7XG4gIG92ZXJmbG93OiBoaWRkZW47IH1cblxuLm1vZGFsIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7XG4gIHotaW5kZXg6IDEwNTA7XG4gIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcbiAgb3V0bGluZTogMDsgfVxuICAubW9kYWwuZmFkZSAubW9kYWwtZGlhbG9nIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIC0yNSUpO1xuICAgIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAtMjUlKTtcbiAgICAtby10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAtMjUlKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAtMjUlKTtcbiAgICAtd2Via2l0LXRyYW5zaXRpb246IC13ZWJraXQtdHJhbnNmb3JtIDAuM3MgZWFzZS1vdXQ7XG4gICAgLW1vei10cmFuc2l0aW9uOiAtbW96LXRyYW5zZm9ybSAwLjNzIGVhc2Utb3V0O1xuICAgIC1vLXRyYW5zaXRpb246IC1vLXRyYW5zZm9ybSAwLjNzIGVhc2Utb3V0O1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjNzIGVhc2Utb3V0OyB9XG4gIC5tb2RhbC5pbiAubW9kYWwtZGlhbG9nIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xuICAgIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcbiAgICAtby10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTsgfVxuXG4ubW9kYWwtb3BlbiAubW9kYWwge1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG4gIG92ZXJmbG93LXk6IGF1dG87IH1cblxuLm1vZGFsLWRpYWxvZyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IGF1dG87XG4gIG1hcmdpbjogMTBweDsgfVxuXG4ubW9kYWwtY29udGVudCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgYm9yZGVyOiAxcHggc29saWQgIzk5OTtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjIpO1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAzcHggOXB4IHJnYmEoMCwgMCwgMCwgMC41KTtcbiAgYm94LXNoYWRvdzogMCAzcHggOXB4IHJnYmEoMCwgMCwgMCwgMC41KTtcbiAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcbiAgb3V0bGluZTogMDsgfVxuXG4ubW9kYWwtYmFja2Ryb3Age1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcbiAgei1pbmRleDogMTA0MDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDsgfVxuICAubW9kYWwtYmFja2Ryb3AuZmFkZSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICBmaWx0ZXI6IGFscGhhKG9wYWNpdHk9MCk7IH1cbiAgLm1vZGFsLWJhY2tkcm9wLmluIHtcbiAgICBvcGFjaXR5OiAwLjU7XG4gICAgZmlsdGVyOiBhbHBoYShvcGFjaXR5PTUwKTsgfVxuXG4ubW9kYWwtaGVhZGVyIHtcbiAgcGFkZGluZzogMTVweDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlNWU1ZTU7IH1cbiAgLm1vZGFsLWhlYWRlcjpiZWZvcmUsIC5tb2RhbC1oZWFkZXI6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiIFwiO1xuICAgIGRpc3BsYXk6IHRhYmxlOyB9XG4gIC5tb2RhbC1oZWFkZXI6YWZ0ZXIge1xuICAgIGNsZWFyOiBib3RoOyB9XG5cbi5tb2RhbC1oZWFkZXIgLmNsb3NlIHtcbiAgbWFyZ2luLXRvcDogLTJweDsgfVxuXG4ubW9kYWwtdGl0bGUge1xuICBtYXJnaW46IDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjQyODU3OyB9XG5cbi5tb2RhbC1ib2R5IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBwYWRkaW5nOiAxNXB4OyB9XG5cbi5tb2RhbC1mb290ZXIge1xuICBwYWRkaW5nOiAxNXB4O1xuICB0ZXh0LWFsaWduOiByaWdodDtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNlNWU1ZTU7IH1cbiAgLm1vZGFsLWZvb3RlcjpiZWZvcmUsIC5tb2RhbC1mb290ZXI6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiIFwiO1xuICAgIGRpc3BsYXk6IHRhYmxlOyB9XG4gIC5tb2RhbC1mb290ZXI6YWZ0ZXIge1xuICAgIGNsZWFyOiBib3RoOyB9XG4gIC5tb2RhbC1mb290ZXIgLmJ0biArIC5idG4ge1xuICAgIG1hcmdpbi1sZWZ0OiA1cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMDsgfVxuICAubW9kYWwtZm9vdGVyIC5idG4tZ3JvdXAgLmJ0biArIC5idG4ge1xuICAgIG1hcmdpbi1sZWZ0OiAtMXB4OyB9XG4gIC5tb2RhbC1mb290ZXIgLmJ0bi1ibG9jayArIC5idG4tYmxvY2sge1xuICAgIG1hcmdpbi1sZWZ0OiAwOyB9XG5cbi5tb2RhbC1zY3JvbGxiYXItbWVhc3VyZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAtOTk5OXB4O1xuICB3aWR0aDogNTBweDtcbiAgaGVpZ2h0OiA1MHB4O1xuICBvdmVyZmxvdzogc2Nyb2xsOyB9XG5cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAubW9kYWwtZGlhbG9nIHtcbiAgICB3aWR0aDogNjAwcHg7XG4gICAgbWFyZ2luOiAzMHB4IGF1dG87IH1cbiAgLm1vZGFsLWNvbnRlbnQge1xuICAgIC13ZWJraXQtYm94LXNoYWRvdzogMCA1cHggMTVweCByZ2JhKDAsIDAsIDAsIDAuNSk7XG4gICAgYm94LXNoYWRvdzogMCA1cHggMTVweCByZ2JhKDAsIDAsIDAsIDAuNSk7IH1cbiAgLm1vZGFsLXNtIHtcbiAgICB3aWR0aDogMzAwcHg7IH0gfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgLm1vZGFsLWxnIHtcbiAgICB3aWR0aDogOTAwcHg7IH0gfVxuXG4udG9vbHRpcCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMTA3MDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtZmFtaWx5OiBcIkhlbHZldGljYSBOZXVlXCIsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcbiAgbGluZS1icmVhazogYXV0bztcbiAgbGluZS1oZWlnaHQ6IDEuNDI4NTc7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIHRleHQtYWxpZ246IHN0YXJ0O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHRleHQtc2hhZG93OiBub25lO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbiAgd29yZC1icmVhazogbm9ybWFsO1xuICB3b3JkLXNwYWNpbmc6IG5vcm1hbDtcbiAgd29yZC13cmFwOiBub3JtYWw7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgb3BhY2l0eTogMDtcbiAgZmlsdGVyOiBhbHBoYShvcGFjaXR5PTApOyB9XG4gIC50b29sdGlwLmluIHtcbiAgICBvcGFjaXR5OiAwLjk7XG4gICAgZmlsdGVyOiBhbHBoYShvcGFjaXR5PTkwKTsgfVxuICAudG9vbHRpcC50b3Age1xuICAgIG1hcmdpbi10b3A6IC0zcHg7XG4gICAgcGFkZGluZzogNXB4IDA7IH1cbiAgLnRvb2x0aXAucmlnaHQge1xuICAgIG1hcmdpbi1sZWZ0OiAzcHg7XG4gICAgcGFkZGluZzogMCA1cHg7IH1cbiAgLnRvb2x0aXAuYm90dG9tIHtcbiAgICBtYXJnaW4tdG9wOiAzcHg7XG4gICAgcGFkZGluZzogNXB4IDA7IH1cbiAgLnRvb2x0aXAubGVmdCB7XG4gICAgbWFyZ2luLWxlZnQ6IC0zcHg7XG4gICAgcGFkZGluZzogMCA1cHg7IH1cblxuLnRvb2x0aXAtaW5uZXIge1xuICBtYXgtd2lkdGg6IDIwMHB4O1xuICBwYWRkaW5nOiAzcHggOHB4O1xuICBjb2xvcjogI2ZmZjtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwO1xuICBib3JkZXItcmFkaXVzOiA0cHg7IH1cblxuLnRvb2x0aXAtYXJyb3cge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiAwO1xuICBoZWlnaHQ6IDA7XG4gIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1zdHlsZTogc29saWQ7IH1cblxuLnRvb2x0aXAudG9wIC50b29sdGlwLWFycm93IHtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiA1MCU7XG4gIG1hcmdpbi1sZWZ0OiAtNXB4O1xuICBib3JkZXItd2lkdGg6IDVweCA1cHggMDtcbiAgYm9yZGVyLXRvcC1jb2xvcjogIzAwMDsgfVxuXG4udG9vbHRpcC50b3AtbGVmdCAudG9vbHRpcC1hcnJvdyB7XG4gIGJvdHRvbTogMDtcbiAgcmlnaHQ6IDVweDtcbiAgbWFyZ2luLWJvdHRvbTogLTVweDtcbiAgYm9yZGVyLXdpZHRoOiA1cHggNXB4IDA7XG4gIGJvcmRlci10b3AtY29sb3I6ICMwMDA7IH1cblxuLnRvb2x0aXAudG9wLXJpZ2h0IC50b29sdGlwLWFycm93IHtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiA1cHg7XG4gIG1hcmdpbi1ib3R0b206IC01cHg7XG4gIGJvcmRlci13aWR0aDogNXB4IDVweCAwO1xuICBib3JkZXItdG9wLWNvbG9yOiAjMDAwOyB9XG5cbi50b29sdGlwLnJpZ2h0IC50b29sdGlwLWFycm93IHtcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDA7XG4gIG1hcmdpbi10b3A6IC01cHg7XG4gIGJvcmRlci13aWR0aDogNXB4IDVweCA1cHggMDtcbiAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAjMDAwOyB9XG5cbi50b29sdGlwLmxlZnQgLnRvb2x0aXAtYXJyb3cge1xuICB0b3A6IDUwJTtcbiAgcmlnaHQ6IDA7XG4gIG1hcmdpbi10b3A6IC01cHg7XG4gIGJvcmRlci13aWR0aDogNXB4IDAgNXB4IDVweDtcbiAgYm9yZGVyLWxlZnQtY29sb3I6ICMwMDA7IH1cblxuLnRvb2x0aXAuYm90dG9tIC50b29sdGlwLWFycm93IHtcbiAgdG9wOiAwO1xuICBsZWZ0OiA1MCU7XG4gIG1hcmdpbi1sZWZ0OiAtNXB4O1xuICBib3JkZXItd2lkdGg6IDAgNXB4IDVweDtcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogIzAwMDsgfVxuXG4udG9vbHRpcC5ib3R0b20tbGVmdCAudG9vbHRpcC1hcnJvdyB7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDVweDtcbiAgbWFyZ2luLXRvcDogLTVweDtcbiAgYm9yZGVyLXdpZHRoOiAwIDVweCA1cHg7XG4gIGJvcmRlci1ib3R0b20tY29sb3I6ICMwMDA7IH1cblxuLnRvb2x0aXAuYm90dG9tLXJpZ2h0IC50b29sdGlwLWFycm93IHtcbiAgdG9wOiAwO1xuICBsZWZ0OiA1cHg7XG4gIG1hcmdpbi10b3A6IC01cHg7XG4gIGJvcmRlci13aWR0aDogMCA1cHggNXB4O1xuICBib3JkZXItYm90dG9tLWNvbG9yOiAjMDAwOyB9XG5cbi5wb3BvdmVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHotaW5kZXg6IDEwNjA7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIG1heC13aWR0aDogMjc2cHg7XG4gIHBhZGRpbmc6IDFweDtcbiAgZm9udC1mYW1pbHk6IFwiSGVsdmV0aWNhIE5ldWVcIiwgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBsZXR0ZXItc3BhY2luZzogbm9ybWFsO1xuICBsaW5lLWJyZWFrOiBhdXRvO1xuICBsaW5lLWhlaWdodDogMS40Mjg1NztcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgdGV4dC1hbGlnbjogc3RhcnQ7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xuICB3b3JkLWJyZWFrOiBub3JtYWw7XG4gIHdvcmQtc3BhY2luZzogbm9ybWFsO1xuICB3b3JkLXdyYXA6IG5vcm1hbDtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xuICBib3JkZXI6IDFweCBzb2xpZCAjY2NjO1xuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuMik7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDVweCAxMHB4IHJnYmEoMCwgMCwgMCwgMC4yKTtcbiAgYm94LXNoYWRvdzogMCA1cHggMTBweCByZ2JhKDAsIDAsIDAsIDAuMik7IH1cbiAgLnBvcG92ZXIudG9wIHtcbiAgICBtYXJnaW4tdG9wOiAtMTBweDsgfVxuICAucG9wb3Zlci5yaWdodCB7XG4gICAgbWFyZ2luLWxlZnQ6IDEwcHg7IH1cbiAgLnBvcG92ZXIuYm90dG9tIHtcbiAgICBtYXJnaW4tdG9wOiAxMHB4OyB9XG4gIC5wb3BvdmVyLmxlZnQge1xuICAgIG1hcmdpbi1sZWZ0OiAtMTBweDsgfVxuXG4ucG9wb3Zlci10aXRsZSB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogOHB4IDE0cHg7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y3ZjdmNztcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlYmViZWI7XG4gIGJvcmRlci1yYWRpdXM6IDVweCA1cHggMCAwOyB9XG5cbi5wb3BvdmVyLWNvbnRlbnQge1xuICBwYWRkaW5nOiA5cHggMTRweDsgfVxuXG4ucG9wb3ZlciA+IC5hcnJvdywgLnBvcG92ZXIgPiAuYXJyb3c6YWZ0ZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMDtcbiAgaGVpZ2h0OiAwO1xuICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3JkZXItc3R5bGU6IHNvbGlkOyB9XG5cbi5wb3BvdmVyID4gLmFycm93IHtcbiAgYm9yZGVyLXdpZHRoOiAxMXB4OyB9XG5cbi5wb3BvdmVyID4gLmFycm93OmFmdGVyIHtcbiAgYm9yZGVyLXdpZHRoOiAxMHB4O1xuICBjb250ZW50OiBcIlwiOyB9XG5cbi5wb3BvdmVyLnRvcCA+IC5hcnJvdyB7XG4gIGxlZnQ6IDUwJTtcbiAgbWFyZ2luLWxlZnQ6IC0xMXB4O1xuICBib3JkZXItYm90dG9tLXdpZHRoOiAwO1xuICBib3JkZXItdG9wLWNvbG9yOiAjOTk5OTk5O1xuICBib3JkZXItdG9wLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMjUpO1xuICBib3R0b206IC0xMXB4OyB9XG4gIC5wb3BvdmVyLnRvcCA+IC5hcnJvdzphZnRlciB7XG4gICAgY29udGVudDogXCIgXCI7XG4gICAgYm90dG9tOiAxcHg7XG4gICAgbWFyZ2luLWxlZnQ6IC0xMHB4O1xuICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDA7XG4gICAgYm9yZGVyLXRvcC1jb2xvcjogI2ZmZjsgfVxuXG4ucG9wb3Zlci5yaWdodCA+IC5hcnJvdyB7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiAtMTFweDtcbiAgbWFyZ2luLXRvcDogLTExcHg7XG4gIGJvcmRlci1sZWZ0LXdpZHRoOiAwO1xuICBib3JkZXItcmlnaHQtY29sb3I6ICM5OTk5OTk7XG4gIGJvcmRlci1yaWdodC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjI1KTsgfVxuICAucG9wb3Zlci5yaWdodCA+IC5hcnJvdzphZnRlciB7XG4gICAgY29udGVudDogXCIgXCI7XG4gICAgbGVmdDogMXB4O1xuICAgIGJvdHRvbTogLTEwcHg7XG4gICAgYm9yZGVyLWxlZnQtd2lkdGg6IDA7XG4gICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAjZmZmOyB9XG5cbi5wb3BvdmVyLmJvdHRvbSA+IC5hcnJvdyB7XG4gIGxlZnQ6IDUwJTtcbiAgbWFyZ2luLWxlZnQ6IC0xMXB4O1xuICBib3JkZXItdG9wLXdpZHRoOiAwO1xuICBib3JkZXItYm90dG9tLWNvbG9yOiAjOTk5OTk5O1xuICBib3JkZXItYm90dG9tLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMjUpO1xuICB0b3A6IC0xMXB4OyB9XG4gIC5wb3BvdmVyLmJvdHRvbSA+IC5hcnJvdzphZnRlciB7XG4gICAgY29udGVudDogXCIgXCI7XG4gICAgdG9wOiAxcHg7XG4gICAgbWFyZ2luLWxlZnQ6IC0xMHB4O1xuICAgIGJvcmRlci10b3Atd2lkdGg6IDA7XG4gICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogI2ZmZjsgfVxuXG4ucG9wb3Zlci5sZWZ0ID4gLmFycm93IHtcbiAgdG9wOiA1MCU7XG4gIHJpZ2h0OiAtMTFweDtcbiAgbWFyZ2luLXRvcDogLTExcHg7XG4gIGJvcmRlci1yaWdodC13aWR0aDogMDtcbiAgYm9yZGVyLWxlZnQtY29sb3I6ICM5OTk5OTk7XG4gIGJvcmRlci1sZWZ0LWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMjUpOyB9XG4gIC5wb3BvdmVyLmxlZnQgPiAuYXJyb3c6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiIFwiO1xuICAgIHJpZ2h0OiAxcHg7XG4gICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAwO1xuICAgIGJvcmRlci1sZWZ0LWNvbG9yOiAjZmZmO1xuICAgIGJvdHRvbTogLTEwcHg7IH1cblxuLmNhcm91c2VsIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG5cbi5jYXJvdXNlbC1pbm5lciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgd2lkdGg6IDEwMCU7IH1cbiAgLmNhcm91c2VsLWlubmVyID4gLml0ZW0ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIC13ZWJraXQtdHJhbnNpdGlvbjogMC42cyBlYXNlLWluLW91dCBsZWZ0O1xuICAgIC1vLXRyYW5zaXRpb246IDAuNnMgZWFzZS1pbi1vdXQgbGVmdDtcbiAgICB0cmFuc2l0aW9uOiAwLjZzIGVhc2UtaW4tb3V0IGxlZnQ7IH1cbiAgICAuY2Fyb3VzZWwtaW5uZXIgPiAuaXRlbSA+IGltZyxcbiAgICAuY2Fyb3VzZWwtaW5uZXIgPiAuaXRlbSA+IGEgPiBpbWcge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICBsaW5lLWhlaWdodDogMTsgfVxuICAgIEBtZWRpYSBhbGwgYW5kICh0cmFuc2Zvcm0tM2QpLCAoLXdlYmtpdC10cmFuc2Zvcm0tM2QpIHtcbiAgICAgIC5jYXJvdXNlbC1pbm5lciA+IC5pdGVtIHtcbiAgICAgICAgLXdlYmtpdC10cmFuc2l0aW9uOiAtd2Via2l0LXRyYW5zZm9ybSAwLjZzIGVhc2UtaW4tb3V0O1xuICAgICAgICAtbW96LXRyYW5zaXRpb246IC1tb3otdHJhbnNmb3JtIDAuNnMgZWFzZS1pbi1vdXQ7XG4gICAgICAgIC1vLXRyYW5zaXRpb246IC1vLXRyYW5zZm9ybSAwLjZzIGVhc2UtaW4tb3V0O1xuICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC42cyBlYXNlLWluLW91dDtcbiAgICAgICAgLXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgIC1tb3otYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgIC13ZWJraXQtcGVyc3BlY3RpdmU6IDEwMDBweDtcbiAgICAgICAgLW1vei1wZXJzcGVjdGl2ZTogMTAwMHB4O1xuICAgICAgICBwZXJzcGVjdGl2ZTogMTAwMHB4OyB9XG4gICAgICAgIC5jYXJvdXNlbC1pbm5lciA+IC5pdGVtLm5leHQsIC5jYXJvdXNlbC1pbm5lciA+IC5pdGVtLmFjdGl2ZS5yaWdodCB7XG4gICAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEwMCUsIDAsIDApO1xuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMTAwJSwgMCwgMCk7XG4gICAgICAgICAgbGVmdDogMDsgfVxuICAgICAgICAuY2Fyb3VzZWwtaW5uZXIgPiAuaXRlbS5wcmV2LCAuY2Fyb3VzZWwtaW5uZXIgPiAuaXRlbS5hY3RpdmUubGVmdCB7XG4gICAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0xMDAlLCAwLCAwKTtcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0xMDAlLCAwLCAwKTtcbiAgICAgICAgICBsZWZ0OiAwOyB9XG4gICAgICAgIC5jYXJvdXNlbC1pbm5lciA+IC5pdGVtLm5leHQubGVmdCwgLmNhcm91c2VsLWlubmVyID4gLml0ZW0ucHJldi5yaWdodCwgLmNhcm91c2VsLWlubmVyID4gLml0ZW0uYWN0aXZlIHtcbiAgICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICAgICAgICBsZWZ0OiAwOyB9IH1cbiAgLmNhcm91c2VsLWlubmVyID4gLmFjdGl2ZSxcbiAgLmNhcm91c2VsLWlubmVyID4gLm5leHQsXG4gIC5jYXJvdXNlbC1pbm5lciA+IC5wcmV2IHtcbiAgICBkaXNwbGF5OiBibG9jazsgfVxuICAuY2Fyb3VzZWwtaW5uZXIgPiAuYWN0aXZlIHtcbiAgICBsZWZ0OiAwOyB9XG4gIC5jYXJvdXNlbC1pbm5lciA+IC5uZXh0LFxuICAuY2Fyb3VzZWwtaW5uZXIgPiAucHJldiB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICB3aWR0aDogMTAwJTsgfVxuICAuY2Fyb3VzZWwtaW5uZXIgPiAubmV4dCB7XG4gICAgbGVmdDogMTAwJTsgfVxuICAuY2Fyb3VzZWwtaW5uZXIgPiAucHJldiB7XG4gICAgbGVmdDogLTEwMCU7IH1cbiAgLmNhcm91c2VsLWlubmVyID4gLm5leHQubGVmdCxcbiAgLmNhcm91c2VsLWlubmVyID4gLnByZXYucmlnaHQge1xuICAgIGxlZnQ6IDA7IH1cbiAgLmNhcm91c2VsLWlubmVyID4gLmFjdGl2ZS5sZWZ0IHtcbiAgICBsZWZ0OiAtMTAwJTsgfVxuICAuY2Fyb3VzZWwtaW5uZXIgPiAuYWN0aXZlLnJpZ2h0IHtcbiAgICBsZWZ0OiAxMDAlOyB9XG5cbi5jYXJvdXNlbC1jb250cm9sIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgd2lkdGg6IDE1JTtcbiAgb3BhY2l0eTogMC41O1xuICBmaWx0ZXI6IGFscGhhKG9wYWNpdHk9NTApO1xuICBmb250LXNpemU6IDIwcHg7XG4gIGNvbG9yOiAjZmZmO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHRleHQtc2hhZG93OiAwIDFweCAycHggcmdiYSgwLCAwLCAwLCAwLjYpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDApOyB9XG4gIC5jYXJvdXNlbC1jb250cm9sLmxlZnQge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KGxlZnQsIHJnYmEoMCwgMCwgMCwgMC41KSAwJSwgcmdiYSgwLCAwLCAwLCAwLjAwMDEpIDEwMCUpO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IC1vLWxpbmVhci1ncmFkaWVudChsZWZ0LCByZ2JhKDAsIDAsIDAsIDAuNSkgMCUsIHJnYmEoMCwgMCwgMCwgMC4wMDAxKSAxMDAlKTtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHJnYmEoMCwgMCwgMCwgMC41KSAwJSwgcmdiYSgwLCAwLCAwLCAwLjAwMDEpIDEwMCUpO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiByZXBlYXQteDtcbiAgICBmaWx0ZXI6IHByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudChzdGFydENvbG9yc3RyPScjODAwMDAwMDAnLCBlbmRDb2xvcnN0cj0nIzAwMDAwMDAwJywgR3JhZGllbnRUeXBlPTEpOyB9XG4gIC5jYXJvdXNlbC1jb250cm9sLnJpZ2h0IHtcbiAgICBsZWZ0OiBhdXRvO1xuICAgIHJpZ2h0OiAwO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KGxlZnQsIHJnYmEoMCwgMCwgMCwgMC4wMDAxKSAwJSwgcmdiYSgwLCAwLCAwLCAwLjUpIDEwMCUpO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IC1vLWxpbmVhci1ncmFkaWVudChsZWZ0LCByZ2JhKDAsIDAsIDAsIDAuMDAwMSkgMCUsIHJnYmEoMCwgMCwgMCwgMC41KSAxMDAlKTtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHJnYmEoMCwgMCwgMCwgMC4wMDAxKSAwJSwgcmdiYSgwLCAwLCAwLCAwLjUpIDEwMCUpO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiByZXBlYXQteDtcbiAgICBmaWx0ZXI6IHByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudChzdGFydENvbG9yc3RyPScjMDAwMDAwMDAnLCBlbmRDb2xvcnN0cj0nIzgwMDAwMDAwJywgR3JhZGllbnRUeXBlPTEpOyB9XG4gIC5jYXJvdXNlbC1jb250cm9sOmhvdmVyLCAuY2Fyb3VzZWwtY29udHJvbDpmb2N1cyB7XG4gICAgb3V0bGluZTogMDtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgb3BhY2l0eTogMC45O1xuICAgIGZpbHRlcjogYWxwaGEob3BhY2l0eT05MCk7IH1cbiAgLmNhcm91c2VsLWNvbnRyb2wgLmljb24tcHJldixcbiAgLmNhcm91c2VsLWNvbnRyb2wgLmljb24tbmV4dCxcbiAgLmNhcm91c2VsLWNvbnRyb2wgLmdseXBoaWNvbi1jaGV2cm9uLWxlZnQsXG4gIC5jYXJvdXNlbC1jb250cm9sIC5nbHlwaGljb24tY2hldnJvbi1yaWdodCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogNTAlO1xuICAgIG1hcmdpbi10b3A6IC0xMHB4O1xuICAgIHotaW5kZXg6IDU7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9XG4gIC5jYXJvdXNlbC1jb250cm9sIC5pY29uLXByZXYsXG4gIC5jYXJvdXNlbC1jb250cm9sIC5nbHlwaGljb24tY2hldnJvbi1sZWZ0IHtcbiAgICBsZWZ0OiA1MCU7XG4gICAgbWFyZ2luLWxlZnQ6IC0xMHB4OyB9XG4gIC5jYXJvdXNlbC1jb250cm9sIC5pY29uLW5leHQsXG4gIC5jYXJvdXNlbC1jb250cm9sIC5nbHlwaGljb24tY2hldnJvbi1yaWdodCB7XG4gICAgcmlnaHQ6IDUwJTtcbiAgICBtYXJnaW4tcmlnaHQ6IC0xMHB4OyB9XG4gIC5jYXJvdXNlbC1jb250cm9sIC5pY29uLXByZXYsXG4gIC5jYXJvdXNlbC1jb250cm9sIC5pY29uLW5leHQge1xuICAgIHdpZHRoOiAyMHB4O1xuICAgIGhlaWdodDogMjBweDtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBmb250LWZhbWlseTogc2VyaWY7IH1cbiAgLmNhcm91c2VsLWNvbnRyb2wgLmljb24tcHJldjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICdcXDIwMzknOyB9XG4gIC5jYXJvdXNlbC1jb250cm9sIC5pY29uLW5leHQ6YmVmb3JlIHtcbiAgICBjb250ZW50OiAnXFwyMDNhJzsgfVxuXG4uY2Fyb3VzZWwtaW5kaWNhdG9ycyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiAxMHB4O1xuICBsZWZ0OiA1MCU7XG4gIHotaW5kZXg6IDE1O1xuICB3aWR0aDogNjAlO1xuICBtYXJnaW4tbGVmdDogLTMwJTtcbiAgcGFkZGluZy1sZWZ0OiAwO1xuICBsaXN0LXN0eWxlOiBub25lO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgLmNhcm91c2VsLWluZGljYXRvcnMgbGkge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB3aWR0aDogMTBweDtcbiAgICBoZWlnaHQ6IDEwcHg7XG4gICAgbWFyZ2luOiAxcHg7XG4gICAgdGV4dC1pbmRlbnQ6IC05OTlweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZmZmO1xuICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDAgXFw5O1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMCk7IH1cbiAgLmNhcm91c2VsLWluZGljYXRvcnMgLmFjdGl2ZSB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHdpZHRoOiAxMnB4O1xuICAgIGhlaWdodDogMTJweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyB9XG5cbi5jYXJvdXNlbC1jYXB0aW9uIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAxNSU7XG4gIHJpZ2h0OiAxNSU7XG4gIGJvdHRvbTogMjBweDtcbiAgei1pbmRleDogMTA7XG4gIHBhZGRpbmctdG9wOiAyMHB4O1xuICBwYWRkaW5nLWJvdHRvbTogMjBweDtcbiAgY29sb3I6ICNmZmY7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdGV4dC1zaGFkb3c6IDAgMXB4IDJweCByZ2JhKDAsIDAsIDAsIDAuNik7IH1cbiAgLmNhcm91c2VsLWNhcHRpb24gLmJ0biB7XG4gICAgdGV4dC1zaGFkb3c6IG5vbmU7IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLmNhcm91c2VsLWNvbnRyb2wgLmdseXBoaWNvbi1jaGV2cm9uLWxlZnQsXG4gIC5jYXJvdXNlbC1jb250cm9sIC5nbHlwaGljb24tY2hldnJvbi1yaWdodCxcbiAgLmNhcm91c2VsLWNvbnRyb2wgLmljb24tcHJldixcbiAgLmNhcm91c2VsLWNvbnRyb2wgLmljb24tbmV4dCB7XG4gICAgd2lkdGg6IDMwcHg7XG4gICAgaGVpZ2h0OiAzMHB4O1xuICAgIG1hcmdpbi10b3A6IC0xMHB4O1xuICAgIGZvbnQtc2l6ZTogMzBweDsgfVxuICAuY2Fyb3VzZWwtY29udHJvbCAuZ2x5cGhpY29uLWNoZXZyb24tbGVmdCxcbiAgLmNhcm91c2VsLWNvbnRyb2wgLmljb24tcHJldiB7XG4gICAgbWFyZ2luLWxlZnQ6IC0xMHB4OyB9XG4gIC5jYXJvdXNlbC1jb250cm9sIC5nbHlwaGljb24tY2hldnJvbi1yaWdodCxcbiAgLmNhcm91c2VsLWNvbnRyb2wgLmljb24tbmV4dCB7XG4gICAgbWFyZ2luLXJpZ2h0OiAtMTBweDsgfVxuICAuY2Fyb3VzZWwtY2FwdGlvbiB7XG4gICAgbGVmdDogMjAlO1xuICAgIHJpZ2h0OiAyMCU7XG4gICAgcGFkZGluZy1ib3R0b206IDMwcHg7IH1cbiAgLmNhcm91c2VsLWluZGljYXRvcnMge1xuICAgIGJvdHRvbTogMjBweDsgfSB9XG5cbi5jbGVhcmZpeDpiZWZvcmUsIC5jbGVhcmZpeDphZnRlciB7XG4gIGNvbnRlbnQ6IFwiIFwiO1xuICBkaXNwbGF5OiB0YWJsZTsgfVxuXG4uY2xlYXJmaXg6YWZ0ZXIge1xuICBjbGVhcjogYm90aDsgfVxuXG4uY2VudGVyLWJsb2NrIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87IH1cblxuLnB1bGwtcmlnaHQge1xuICBmbG9hdDogcmlnaHQgIWltcG9ydGFudDsgfVxuXG4ucHVsbC1sZWZ0IHtcbiAgZmxvYXQ6IGxlZnQgIWltcG9ydGFudDsgfVxuXG4uaGlkZSB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuXG4uc2hvdyB7XG4gIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7IH1cblxuLmludmlzaWJsZSB7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjsgfVxuXG4udGV4dC1oaWRlIHtcbiAgZm9udDogMC8wIGE7XG4gIGNvbG9yOiB0cmFuc3BhcmVudDtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3JkZXI6IDA7IH1cblxuLmhpZGRlbiB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuXG4uYWZmaXgge1xuICBwb3NpdGlvbjogZml4ZWQ7IH1cblxuQC1tcy12aWV3cG9ydCB7XG4gIHdpZHRoOiBkZXZpY2Utd2lkdGg7IH1cblxuLnZpc2libGUteHMge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cblxuLnZpc2libGUtc20ge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cblxuLnZpc2libGUtbWQge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cblxuLnZpc2libGUtbGcge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cblxuLnZpc2libGUteHMtYmxvY2ssXG4udmlzaWJsZS14cy1pbmxpbmUsXG4udmlzaWJsZS14cy1pbmxpbmUtYmxvY2ssXG4udmlzaWJsZS1zbS1ibG9jayxcbi52aXNpYmxlLXNtLWlubGluZSxcbi52aXNpYmxlLXNtLWlubGluZS1ibG9jayxcbi52aXNpYmxlLW1kLWJsb2NrLFxuLnZpc2libGUtbWQtaW5saW5lLFxuLnZpc2libGUtbWQtaW5saW5lLWJsb2NrLFxuLnZpc2libGUtbGctYmxvY2ssXG4udmlzaWJsZS1sZy1pbmxpbmUsXG4udmlzaWJsZS1sZy1pbmxpbmUtYmxvY2sge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC52aXNpYmxlLXhzIHtcbiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50OyB9XG4gIHRhYmxlLnZpc2libGUteHMge1xuICAgIGRpc3BsYXk6IHRhYmxlICFpbXBvcnRhbnQ7IH1cbiAgdHIudmlzaWJsZS14cyB7XG4gICAgZGlzcGxheTogdGFibGUtcm93ICFpbXBvcnRhbnQ7IH1cbiAgdGgudmlzaWJsZS14cyxcbiAgdGQudmlzaWJsZS14cyB7XG4gICAgZGlzcGxheTogdGFibGUtY2VsbCAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC52aXNpYmxlLXhzLWJsb2NrIHtcbiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC52aXNpYmxlLXhzLWlubGluZSB7XG4gICAgZGlzcGxheTogaW5saW5lICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLnZpc2libGUteHMtaW5saW5lLWJsb2NrIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2sgIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkgYW5kIChtYXgtd2lkdGg6IDk5MXB4KSB7XG4gIC52aXNpYmxlLXNtIHtcbiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50OyB9XG4gIHRhYmxlLnZpc2libGUtc20ge1xuICAgIGRpc3BsYXk6IHRhYmxlICFpbXBvcnRhbnQ7IH1cbiAgdHIudmlzaWJsZS1zbSB7XG4gICAgZGlzcGxheTogdGFibGUtcm93ICFpbXBvcnRhbnQ7IH1cbiAgdGgudmlzaWJsZS1zbSxcbiAgdGQudmlzaWJsZS1zbSB7XG4gICAgZGlzcGxheTogdGFibGUtY2VsbCAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSBhbmQgKG1heC13aWR0aDogOTkxcHgpIHtcbiAgLnZpc2libGUtc20tYmxvY2sge1xuICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIGFuZCAobWF4LXdpZHRoOiA5OTFweCkge1xuICAudmlzaWJsZS1zbS1pbmxpbmUge1xuICAgIGRpc3BsYXk6IGlubGluZSAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSBhbmQgKG1heC13aWR0aDogOTkxcHgpIHtcbiAgLnZpc2libGUtc20taW5saW5lLWJsb2NrIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2sgIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkgYW5kIChtYXgtd2lkdGg6IDExOTlweCkge1xuICAudmlzaWJsZS1tZCB7XG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDsgfVxuICB0YWJsZS52aXNpYmxlLW1kIHtcbiAgICBkaXNwbGF5OiB0YWJsZSAhaW1wb3J0YW50OyB9XG4gIHRyLnZpc2libGUtbWQge1xuICAgIGRpc3BsYXk6IHRhYmxlLXJvdyAhaW1wb3J0YW50OyB9XG4gIHRoLnZpc2libGUtbWQsXG4gIHRkLnZpc2libGUtbWQge1xuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGwgIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkgYW5kIChtYXgtd2lkdGg6IDExOTlweCkge1xuICAudmlzaWJsZS1tZC1ibG9jayB7XG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkgYW5kIChtYXgtd2lkdGg6IDExOTlweCkge1xuICAudmlzaWJsZS1tZC1pbmxpbmUge1xuICAgIGRpc3BsYXk6IGlubGluZSAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSBhbmQgKG1heC13aWR0aDogMTE5OXB4KSB7XG4gIC52aXNpYmxlLW1kLWlubGluZS1ibG9jayB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gIC52aXNpYmxlLWxnIHtcbiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50OyB9XG4gIHRhYmxlLnZpc2libGUtbGcge1xuICAgIGRpc3BsYXk6IHRhYmxlICFpbXBvcnRhbnQ7IH1cbiAgdHIudmlzaWJsZS1sZyB7XG4gICAgZGlzcGxheTogdGFibGUtcm93ICFpbXBvcnRhbnQ7IH1cbiAgdGgudmlzaWJsZS1sZyxcbiAgdGQudmlzaWJsZS1sZyB7XG4gICAgZGlzcGxheTogdGFibGUtY2VsbCAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCkge1xuICAudmlzaWJsZS1sZy1ibG9jayB7XG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSAobWluLXdpZHRoOiAxMjAwcHgpIHtcbiAgLnZpc2libGUtbGctaW5saW5lIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUgIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSAobWluLXdpZHRoOiAxMjAwcHgpIHtcbiAgLnZpc2libGUtbGctaW5saW5lLWJsb2NrIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2sgIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICAuaGlkZGVuLXhzIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIGFuZCAobWF4LXdpZHRoOiA5OTFweCkge1xuICAuaGlkZGVuLXNtIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIGFuZCAobWF4LXdpZHRoOiAxMTk5cHgpIHtcbiAgLmhpZGRlbi1tZCB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCkge1xuICAuaGlkZGVuLWxnIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0gfVxuXG4udmlzaWJsZS1wcmludCB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuXG5AbWVkaWEgcHJpbnQge1xuICAudmlzaWJsZS1wcmludCB7XG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDsgfVxuICB0YWJsZS52aXNpYmxlLXByaW50IHtcbiAgICBkaXNwbGF5OiB0YWJsZSAhaW1wb3J0YW50OyB9XG4gIHRyLnZpc2libGUtcHJpbnQge1xuICAgIGRpc3BsYXk6IHRhYmxlLXJvdyAhaW1wb3J0YW50OyB9XG4gIHRoLnZpc2libGUtcHJpbnQsXG4gIHRkLnZpc2libGUtcHJpbnQge1xuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGwgIWltcG9ydGFudDsgfSB9XG5cbi52aXNpYmxlLXByaW50LWJsb2NrIHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG4gIEBtZWRpYSBwcmludCB7XG4gICAgLnZpc2libGUtcHJpbnQtYmxvY2sge1xuICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDsgfSB9XG5cbi52aXNpYmxlLXByaW50LWlubGluZSB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuICBAbWVkaWEgcHJpbnQge1xuICAgIC52aXNpYmxlLXByaW50LWlubGluZSB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUgIWltcG9ydGFudDsgfSB9XG5cbi52aXNpYmxlLXByaW50LWlubGluZS1ibG9jayB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuICBAbWVkaWEgcHJpbnQge1xuICAgIC52aXNpYmxlLXByaW50LWlubGluZS1ibG9jayB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2sgIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSBwcmludCB7XG4gIC5oaWRkZW4tcHJpbnQge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSB9XG5cbi8qIVxuICogRm9udCBBd2Vzb21lIEZyZWUgNS4xLjEgYnkgQGZvbnRhd2Vzb21lIC0gaHR0cHM6Ly9mb250YXdlc29tZS5jb21cbiAqIExpY2Vuc2UgLSBodHRwczovL2ZvbnRhd2Vzb21lLmNvbS9saWNlbnNlIChJY29uczogQ0MgQlkgNC4wLCBGb250czogU0lMIE9GTCAxLjEsIENvZGU6IE1JVCBMaWNlbnNlKVxuICovXG4uZmEsXG4uZmFzLFxuLmZhcixcbi5mYWwsXG4uZmFiIHtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXZhcmlhbnQ6IG5vcm1hbDtcbiAgdGV4dC1yZW5kZXJpbmc6IGF1dG87XG4gIGxpbmUtaGVpZ2h0OiAxOyB9XG5cbi5mYS1sZyB7XG4gIGZvbnQtc2l6ZTogMS4zMzMzM2VtO1xuICBsaW5lLWhlaWdodDogMC43NWVtO1xuICB2ZXJ0aWNhbC1hbGlnbjogLS4wNjY3ZW07IH1cblxuLmZhLXhzIHtcbiAgZm9udC1zaXplOiAuNzVlbTsgfVxuXG4uZmEtc20ge1xuICBmb250LXNpemU6IC44NzVlbTsgfVxuXG4uZmEtMXgge1xuICBmb250LXNpemU6IDFlbTsgfVxuXG4uZmEtMngge1xuICBmb250LXNpemU6IDJlbTsgfVxuXG4uZmEtM3gge1xuICBmb250LXNpemU6IDNlbTsgfVxuXG4uZmEtNHgge1xuICBmb250LXNpemU6IDRlbTsgfVxuXG4uZmEtNXgge1xuICBmb250LXNpemU6IDVlbTsgfVxuXG4uZmEtNngge1xuICBmb250LXNpemU6IDZlbTsgfVxuXG4uZmEtN3gge1xuICBmb250LXNpemU6IDdlbTsgfVxuXG4uZmEtOHgge1xuICBmb250LXNpemU6IDhlbTsgfVxuXG4uZmEtOXgge1xuICBmb250LXNpemU6IDllbTsgfVxuXG4uZmEtMTB4IHtcbiAgZm9udC1zaXplOiAxMGVtOyB9XG5cbi5mYS1mdyB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgd2lkdGg6IDEuMjVlbTsgfVxuXG4uZmEtdWwge1xuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gIG1hcmdpbi1sZWZ0OiAyLjVlbTtcbiAgcGFkZGluZy1sZWZ0OiAwOyB9XG4gIC5mYS11bCA+IGxpIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cblxuLmZhLWxpIHtcbiAgbGVmdDogLTJlbTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHdpZHRoOiAyZW07XG4gIGxpbmUtaGVpZ2h0OiBpbmhlcml0OyB9XG5cbi5mYS1ib3JkZXIge1xuICBib3JkZXI6IHNvbGlkIDAuMDhlbSAjZWVlO1xuICBib3JkZXItcmFkaXVzOiAuMWVtO1xuICBwYWRkaW5nOiAuMmVtIC4yNWVtIC4xNWVtOyB9XG5cbi5mYS1wdWxsLWxlZnQge1xuICBmbG9hdDogbGVmdDsgfVxuXG4uZmEtcHVsbC1yaWdodCB7XG4gIGZsb2F0OiByaWdodDsgfVxuXG4uZmEuZmEtcHVsbC1sZWZ0LFxuLmZhcy5mYS1wdWxsLWxlZnQsXG4uZmFyLmZhLXB1bGwtbGVmdCxcbi5mYWwuZmEtcHVsbC1sZWZ0LFxuLmZhYi5mYS1wdWxsLWxlZnQge1xuICBtYXJnaW4tcmlnaHQ6IC4zZW07IH1cblxuLmZhLmZhLXB1bGwtcmlnaHQsXG4uZmFzLmZhLXB1bGwtcmlnaHQsXG4uZmFyLmZhLXB1bGwtcmlnaHQsXG4uZmFsLmZhLXB1bGwtcmlnaHQsXG4uZmFiLmZhLXB1bGwtcmlnaHQge1xuICBtYXJnaW4tbGVmdDogLjNlbTsgfVxuXG4uZmEtc3BpbiB7XG4gIGFuaW1hdGlvbjogZmEtc3BpbiAycyBpbmZpbml0ZSBsaW5lYXI7IH1cblxuLmZhLXB1bHNlIHtcbiAgYW5pbWF0aW9uOiBmYS1zcGluIDFzIGluZmluaXRlIHN0ZXBzKDgpOyB9XG5cbkBrZXlmcmFtZXMgZmEtc3BpbiB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTsgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOyB9IH1cblxuLmZhLXJvdGF0ZS05MCB7XG4gIC1tcy1maWx0ZXI6IFwicHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LkJhc2ljSW1hZ2Uocm90YXRpb249MSlcIjtcbiAgdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpOyB9XG5cbi5mYS1yb3RhdGUtMTgwIHtcbiAgLW1zLWZpbHRlcjogXCJwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuQmFzaWNJbWFnZShyb3RhdGlvbj0yKVwiO1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpOyB9XG5cbi5mYS1yb3RhdGUtMjcwIHtcbiAgLW1zLWZpbHRlcjogXCJwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuQmFzaWNJbWFnZShyb3RhdGlvbj0zKVwiO1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgyNzBkZWcpOyB9XG5cbi5mYS1mbGlwLWhvcml6b250YWwge1xuICAtbXMtZmlsdGVyOiBcInByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5CYXNpY0ltYWdlKHJvdGF0aW9uPTAsIG1pcnJvcj0xKVwiO1xuICB0cmFuc2Zvcm06IHNjYWxlKC0xLCAxKTsgfVxuXG4uZmEtZmxpcC12ZXJ0aWNhbCB7XG4gIC1tcy1maWx0ZXI6IFwicHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LkJhc2ljSW1hZ2Uocm90YXRpb249MiwgbWlycm9yPTEpXCI7XG4gIHRyYW5zZm9ybTogc2NhbGUoMSwgLTEpOyB9XG5cbi5mYS1mbGlwLWhvcml6b250YWwuZmEtZmxpcC12ZXJ0aWNhbCB7XG4gIC1tcy1maWx0ZXI6IFwicHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LkJhc2ljSW1hZ2Uocm90YXRpb249MiwgbWlycm9yPTEpXCI7XG4gIHRyYW5zZm9ybTogc2NhbGUoLTEsIC0xKTsgfVxuXG46cm9vdCAuZmEtcm90YXRlLTkwLFxuOnJvb3QgLmZhLXJvdGF0ZS0xODAsXG46cm9vdCAuZmEtcm90YXRlLTI3MCxcbjpyb290IC5mYS1mbGlwLWhvcml6b250YWwsXG46cm9vdCAuZmEtZmxpcC12ZXJ0aWNhbCB7XG4gIGZpbHRlcjogbm9uZTsgfVxuXG4uZmEtc3RhY2sge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGhlaWdodDogMmVtO1xuICBsaW5lLWhlaWdodDogMmVtO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIHdpZHRoOiAyZW07IH1cblxuLmZhLXN0YWNrLTF4LFxuLmZhLXN0YWNrLTJ4IHtcbiAgbGVmdDogMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHdpZHRoOiAxMDAlOyB9XG5cbi5mYS1zdGFjay0xeCB7XG4gIGxpbmUtaGVpZ2h0OiBpbmhlcml0OyB9XG5cbi5mYS1zdGFjay0yeCB7XG4gIGZvbnQtc2l6ZTogMmVtOyB9XG5cbi5mYS1pbnZlcnNlIHtcbiAgY29sb3I6ICNmZmY7IH1cblxuLyogRm9udCBBd2Vzb21lIHVzZXMgdGhlIFVuaWNvZGUgUHJpdmF0ZSBVc2UgQXJlYSAoUFVBKSB0byBlbnN1cmUgc2NyZWVuXG5yZWFkZXJzIGRvIG5vdCByZWFkIG9mZiByYW5kb20gY2hhcmFjdGVycyB0aGF0IHJlcHJlc2VudCBpY29ucyAqL1xuLmZhLTUwMHB4OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjZlXCI7IH1cblxuLmZhLWFjY2Vzc2libGUtaWNvbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjM2OFwiOyB9XG5cbi5mYS1hY2N1c29mdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjM2OVwiOyB9XG5cbi5mYS1hZGRyZXNzLWJvb2s6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyYjlcIjsgfVxuXG4uZmEtYWRkcmVzcy1jYXJkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmJiXCI7IH1cblxuLmZhLWFkanVzdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA0MlwiOyB9XG5cbi5mYS1hZG46YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNzBcIjsgfVxuXG4uZmEtYWR2ZXJzYWw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzNmFcIjsgfVxuXG4uZmEtYWZmaWxpYXRldGhlbWU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzNmJcIjsgfVxuXG4uZmEtYWxnb2xpYTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjM2Y1wiOyB9XG5cbi5mYS1hbGlnbi1jZW50ZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMzdcIjsgfVxuXG4uZmEtYWxpZ24tanVzdGlmeTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAzOVwiOyB9XG5cbi5mYS1hbGlnbi1sZWZ0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDM2XCI7IH1cblxuLmZhLWFsaWduLXJpZ2h0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDM4XCI7IH1cblxuLmZhLWFsbGVyZ2llczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQ2MVwiOyB9XG5cbi5mYS1hbWF6b246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNzBcIjsgfVxuXG4uZmEtYW1hem9uLXBheTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQyY1wiOyB9XG5cbi5mYS1hbWJ1bGFuY2U6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwZjlcIjsgfVxuXG4uZmEtYW1lcmljYW4tc2lnbi1sYW5ndWFnZS1pbnRlcnByZXRpbmc6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyYTNcIjsgfVxuXG4uZmEtYW1pbGlhOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzZkXCI7IH1cblxuLmZhLWFuY2hvcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEzZFwiOyB9XG5cbi5mYS1hbmRyb2lkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTdiXCI7IH1cblxuLmZhLWFuZ2VsbGlzdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIwOVwiOyB9XG5cbi5mYS1hbmdsZS1kb3VibGUtZG93bjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEwM1wiOyB9XG5cbi5mYS1hbmdsZS1kb3VibGUtbGVmdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEwMFwiOyB9XG5cbi5mYS1hbmdsZS1kb3VibGUtcmlnaHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMDFcIjsgfVxuXG4uZmEtYW5nbGUtZG91YmxlLXVwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTAyXCI7IH1cblxuLmZhLWFuZ2xlLWRvd246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMDdcIjsgfVxuXG4uZmEtYW5nbGUtbGVmdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEwNFwiOyB9XG5cbi5mYS1hbmdsZS1yaWdodDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEwNVwiOyB9XG5cbi5mYS1hbmdsZS11cDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEwNlwiOyB9XG5cbi5mYS1hbmdyeTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjU1NlwiOyB9XG5cbi5mYS1hbmdyeWNyZWF0aXZlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzZlXCI7IH1cblxuLmZhLWFuZ3VsYXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0MjBcIjsgfVxuXG4uZmEtYXBwLXN0b3JlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzZmXCI7IH1cblxuLmZhLWFwcC1zdG9yZS1pb3M6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzNzBcIjsgfVxuXG4uZmEtYXBwZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzNzFcIjsgfVxuXG4uZmEtYXBwbGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNzlcIjsgfVxuXG4uZmEtYXBwbGUtcGF5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDE1XCI7IH1cblxuLmZhLWFyY2hpdmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxODdcIjsgfVxuXG4uZmEtYXJjaHdheTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjU1N1wiOyB9XG5cbi5mYS1hcnJvdy1hbHQtY2lyY2xlLWRvd246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzNThcIjsgfVxuXG4uZmEtYXJyb3ctYWx0LWNpcmNsZS1sZWZ0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzU5XCI7IH1cblxuLmZhLWFycm93LWFsdC1jaXJjbGUtcmlnaHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzNWFcIjsgfVxuXG4uZmEtYXJyb3ctYWx0LWNpcmNsZS11cDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjM1YlwiOyB9XG5cbi5mYS1hcnJvdy1jaXJjbGUtZG93bjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBhYlwiOyB9XG5cbi5mYS1hcnJvdy1jaXJjbGUtbGVmdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBhOFwiOyB9XG5cbi5mYS1hcnJvdy1jaXJjbGUtcmlnaHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwYTlcIjsgfVxuXG4uZmEtYXJyb3ctY2lyY2xlLXVwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGFhXCI7IH1cblxuLmZhLWFycm93LWRvd246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNjNcIjsgfVxuXG4uZmEtYXJyb3ctbGVmdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA2MFwiOyB9XG5cbi5mYS1hcnJvdy1yaWdodDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA2MVwiOyB9XG5cbi5mYS1hcnJvdy11cDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA2MlwiOyB9XG5cbi5mYS1hcnJvd3MtYWx0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGIyXCI7IH1cblxuLmZhLWFycm93cy1hbHQtaDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjMzN1wiOyB9XG5cbi5mYS1hcnJvd3MtYWx0LXY6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzMzhcIjsgfVxuXG4uZmEtYXNzaXN0aXZlLWxpc3RlbmluZy1zeXN0ZW1zOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmEyXCI7IH1cblxuLmZhLWFzdGVyaXNrOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDY5XCI7IH1cblxuLmZhLWFzeW1tZXRyaWs6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzNzJcIjsgfVxuXG4uZmEtYXQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZmFcIjsgfVxuXG4uZmEtYXRsYXM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY1NThcIjsgfVxuXG4uZmEtYXVkaWJsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjM3M1wiOyB9XG5cbi5mYS1hdWRpby1kZXNjcmlwdGlvbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI5ZVwiOyB9XG5cbi5mYS1hdXRvcHJlZml4ZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0MWNcIjsgfVxuXG4uZmEtYXZpYW5leDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjM3NFwiOyB9XG5cbi5mYS1hdmlhdG86YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0MjFcIjsgfVxuXG4uZmEtYXdhcmQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY1NTlcIjsgfVxuXG4uZmEtYXdzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzc1XCI7IH1cblxuLmZhLWJhY2tzcGFjZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjU1YVwiOyB9XG5cbi5mYS1iYWNrd2FyZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA0YVwiOyB9XG5cbi5mYS1iYWxhbmNlLXNjYWxlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjRlXCI7IH1cblxuLmZhLWJhbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA1ZVwiOyB9XG5cbi5mYS1iYW5kLWFpZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQ2MlwiOyB9XG5cbi5mYS1iYW5kY2FtcDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJkNVwiOyB9XG5cbi5mYS1iYXJjb2RlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDJhXCI7IH1cblxuLmZhLWJhcnM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwYzlcIjsgfVxuXG4uZmEtYmFzZWJhbGwtYmFsbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQzM1wiOyB9XG5cbi5mYS1iYXNrZXRiYWxsLWJhbGw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0MzRcIjsgfVxuXG4uZmEtYmF0aDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJjZFwiOyB9XG5cbi5mYS1iYXR0ZXJ5LWVtcHR5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjQ0XCI7IH1cblxuLmZhLWJhdHRlcnktZnVsbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI0MFwiOyB9XG5cbi5mYS1iYXR0ZXJ5LWhhbGY6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNDJcIjsgfVxuXG4uZmEtYmF0dGVyeS1xdWFydGVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjQzXCI7IH1cblxuLmZhLWJhdHRlcnktdGhyZWUtcXVhcnRlcnM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNDFcIjsgfVxuXG4uZmEtYmVkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjM2XCI7IH1cblxuLmZhLWJlZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwZmNcIjsgfVxuXG4uZmEtYmVoYW5jZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFiNFwiOyB9XG5cbi5mYS1iZWhhbmNlLXNxdWFyZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFiNVwiOyB9XG5cbi5mYS1iZWxsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGYzXCI7IH1cblxuLmZhLWJlbGwtc2xhc2g6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZjZcIjsgfVxuXG4uZmEtYmV6aWVyLWN1cnZlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNTViXCI7IH1cblxuLmZhLWJpY3ljbGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMDZcIjsgfVxuXG4uZmEtYmltb2JqZWN0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzc4XCI7IH1cblxuLmZhLWJpbm9jdWxhcnM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZTVcIjsgfVxuXG4uZmEtYmlydGhkYXktY2FrZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFmZFwiOyB9XG5cbi5mYS1iaXRidWNrZXQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNzFcIjsgfVxuXG4uZmEtYml0Y29pbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjM3OVwiOyB9XG5cbi5mYS1iaXR5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzdhXCI7IH1cblxuLmZhLWJsYWNrLXRpZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI3ZVwiOyB9XG5cbi5mYS1ibGFja2JlcnJ5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzdiXCI7IH1cblxuLmZhLWJsZW5kZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY1MTdcIjsgfVxuXG4uZmEtYmxpbmQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyOWRcIjsgfVxuXG4uZmEtYmxvZ2dlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjM3Y1wiOyB9XG5cbi5mYS1ibG9nZ2VyLWI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzN2RcIjsgfVxuXG4uZmEtYmx1ZXRvb3RoOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjkzXCI7IH1cblxuLmZhLWJsdWV0b290aC1iOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjk0XCI7IH1cblxuLmZhLWJvbGQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMzJcIjsgfVxuXG4uZmEtYm9sdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBlN1wiOyB9XG5cbi5mYS1ib21iOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWUyXCI7IH1cblxuLmZhLWJvbmc6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY1NWNcIjsgfVxuXG4uZmEtYm9vazpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAyZFwiOyB9XG5cbi5mYS1ib29rLW9wZW46YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY1MThcIjsgfVxuXG4uZmEtYm9va21hcms6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMmVcIjsgfVxuXG4uZmEtYm93bGluZy1iYWxsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDM2XCI7IH1cblxuLmZhLWJveDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQ2NlwiOyB9XG5cbi5mYS1ib3gtb3BlbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQ5ZVwiOyB9XG5cbi5mYS1ib3hlczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQ2OFwiOyB9XG5cbi5mYS1icmFpbGxlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmExXCI7IH1cblxuLmZhLWJyaWVmY2FzZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBiMVwiOyB9XG5cbi5mYS1icmllZmNhc2UtbWVkaWNhbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQ2OVwiOyB9XG5cbi5mYS1icm9hZGNhc3QtdG93ZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY1MTlcIjsgfVxuXG4uZmEtYnJvb206YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY1MWFcIjsgfVxuXG4uZmEtYnJ1c2g6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY1NWRcIjsgfVxuXG4uZmEtYnRjOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTVhXCI7IH1cblxuLmZhLWJ1ZzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE4OFwiOyB9XG5cbi5mYS1idWlsZGluZzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFhZFwiOyB9XG5cbi5mYS1idWxsaG9ybjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBhMVwiOyB9XG5cbi5mYS1idWxsc2V5ZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE0MFwiOyB9XG5cbi5mYS1idXJuOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDZhXCI7IH1cblxuLmZhLWJ1cm9tb2JlbGV4cGVydGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzN2ZcIjsgfVxuXG4uZmEtYnVzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjA3XCI7IH1cblxuLmZhLWJ1cy1hbHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY1NWVcIjsgfVxuXG4uZmEtYnV5c2VsbGFkczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIwZFwiOyB9XG5cbi5mYS1jYWxjdWxhdG9yOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWVjXCI7IH1cblxuLmZhLWNhbGVuZGFyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTMzXCI7IH1cblxuLmZhLWNhbGVuZGFyLWFsdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA3M1wiOyB9XG5cbi5mYS1jYWxlbmRhci1jaGVjazpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI3NFwiOyB9XG5cbi5mYS1jYWxlbmRhci1taW51czpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI3MlwiOyB9XG5cbi5mYS1jYWxlbmRhci1wbHVzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjcxXCI7IH1cblxuLmZhLWNhbGVuZGFyLXRpbWVzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjczXCI7IH1cblxuLmZhLWNhbWVyYTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAzMFwiOyB9XG5cbi5mYS1jYW1lcmEtcmV0cm86YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwODNcIjsgfVxuXG4uZmEtY2FubmFiaXM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY1NWZcIjsgfVxuXG4uZmEtY2Fwc3VsZXM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0NmJcIjsgfVxuXG4uZmEtY2FyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWI5XCI7IH1cblxuLmZhLWNhcmV0LWRvd246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwZDdcIjsgfVxuXG4uZmEtY2FyZXQtbGVmdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBkOVwiOyB9XG5cbi5mYS1jYXJldC1yaWdodDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBkYVwiOyB9XG5cbi5mYS1jYXJldC1zcXVhcmUtZG93bjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE1MFwiOyB9XG5cbi5mYS1jYXJldC1zcXVhcmUtbGVmdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE5MVwiOyB9XG5cbi5mYS1jYXJldC1zcXVhcmUtcmlnaHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNTJcIjsgfVxuXG4uZmEtY2FyZXQtc3F1YXJlLXVwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTUxXCI7IH1cblxuLmZhLWNhcmV0LXVwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGQ4XCI7IH1cblxuLmZhLWNhcnQtYXJyb3ctZG93bjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIxOFwiOyB9XG5cbi5mYS1jYXJ0LXBsdXM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMTdcIjsgfVxuXG4uZmEtY2MtYW1hem9uLXBheTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQyZFwiOyB9XG5cbi5mYS1jYy1hbWV4OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWYzXCI7IH1cblxuLmZhLWNjLWFwcGxlLXBheTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQxNlwiOyB9XG5cbi5mYS1jYy1kaW5lcnMtY2x1YjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI0Y1wiOyB9XG5cbi5mYS1jYy1kaXNjb3ZlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFmMlwiOyB9XG5cbi5mYS1jYy1qY2I6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNGJcIjsgfVxuXG4uZmEtY2MtbWFzdGVyY2FyZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFmMVwiOyB9XG5cbi5mYS1jYy1wYXlwYWw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZjRcIjsgfVxuXG4uZmEtY2Mtc3RyaXBlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWY1XCI7IH1cblxuLmZhLWNjLXZpc2E6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZjBcIjsgfVxuXG4uZmEtY2VudGVyY29kZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjM4MFwiOyB9XG5cbi5mYS1jZXJ0aWZpY2F0ZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBhM1wiOyB9XG5cbi5mYS1jaGFsa2JvYXJkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNTFiXCI7IH1cblxuLmZhLWNoYWxrYm9hcmQtdGVhY2hlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjUxY1wiOyB9XG5cbi5mYS1jaGFydC1hcmVhOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWZlXCI7IH1cblxuLmZhLWNoYXJ0LWJhcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA4MFwiOyB9XG5cbi5mYS1jaGFydC1saW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjAxXCI7IH1cblxuLmZhLWNoYXJ0LXBpZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIwMFwiOyB9XG5cbi5mYS1jaGVjazpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAwY1wiOyB9XG5cbi5mYS1jaGVjay1jaXJjbGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNThcIjsgfVxuXG4uZmEtY2hlY2stZG91YmxlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNTYwXCI7IH1cblxuLmZhLWNoZWNrLXNxdWFyZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE0YVwiOyB9XG5cbi5mYS1jaGVzczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQzOVwiOyB9XG5cbi5mYS1jaGVzcy1iaXNob3A6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0M2FcIjsgfVxuXG4uZmEtY2hlc3MtYm9hcmQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0M2NcIjsgfVxuXG4uZmEtY2hlc3Mta2luZzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQzZlwiOyB9XG5cbi5mYS1jaGVzcy1rbmlnaHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0NDFcIjsgfVxuXG4uZmEtY2hlc3MtcGF3bjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQ0M1wiOyB9XG5cbi5mYS1jaGVzcy1xdWVlbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQ0NVwiOyB9XG5cbi5mYS1jaGVzcy1yb29rOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDQ3XCI7IH1cblxuLmZhLWNoZXZyb24tY2lyY2xlLWRvd246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxM2FcIjsgfVxuXG4uZmEtY2hldnJvbi1jaXJjbGUtbGVmdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEzN1wiOyB9XG5cbi5mYS1jaGV2cm9uLWNpcmNsZS1yaWdodDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEzOFwiOyB9XG5cbi5mYS1jaGV2cm9uLWNpcmNsZS11cDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEzOVwiOyB9XG5cbi5mYS1jaGV2cm9uLWRvd246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNzhcIjsgfVxuXG4uZmEtY2hldnJvbi1sZWZ0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDUzXCI7IH1cblxuLmZhLWNoZXZyb24tcmlnaHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNTRcIjsgfVxuXG4uZmEtY2hldnJvbi11cDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA3N1wiOyB9XG5cbi5mYS1jaGlsZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFhZVwiOyB9XG5cbi5mYS1jaHJvbWU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNjhcIjsgfVxuXG4uZmEtY2h1cmNoOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNTFkXCI7IH1cblxuLmZhLWNpcmNsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjExMVwiOyB9XG5cbi5mYS1jaXJjbGUtbm90Y2g6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxY2VcIjsgfVxuXG4uZmEtY2xpcGJvYXJkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzI4XCI7IH1cblxuLmZhLWNsaXBib2FyZC1jaGVjazpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQ2Y1wiOyB9XG5cbi5mYS1jbGlwYm9hcmQtbGlzdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQ2ZFwiOyB9XG5cbi5mYS1jbG9jazpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAxN1wiOyB9XG5cbi5mYS1jbG9uZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI0ZFwiOyB9XG5cbi5mYS1jbG9zZWQtY2FwdGlvbmluZzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIwYVwiOyB9XG5cbi5mYS1jbG91ZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBjMlwiOyB9XG5cbi5mYS1jbG91ZC1kb3dubG9hZC1hbHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzODFcIjsgfVxuXG4uZmEtY2xvdWQtdXBsb2FkLWFsdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjM4MlwiOyB9XG5cbi5mYS1jbG91ZHNjYWxlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzgzXCI7IH1cblxuLmZhLWNsb3Vkc21pdGg6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzODRcIjsgfVxuXG4uZmEtY2xvdWR2ZXJzaWZ5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzg1XCI7IH1cblxuLmZhLWNvY2t0YWlsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNTYxXCI7IH1cblxuLmZhLWNvZGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMjFcIjsgfVxuXG4uZmEtY29kZS1icmFuY2g6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMjZcIjsgfVxuXG4uZmEtY29kZXBlbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFjYlwiOyB9XG5cbi5mYS1jb2RpZXBpZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI4NFwiOyB9XG5cbi5mYS1jb2ZmZWU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwZjRcIjsgfVxuXG4uZmEtY29nOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDEzXCI7IH1cblxuLmZhLWNvZ3M6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwODVcIjsgfVxuXG4uZmEtY29pbnM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY1MWVcIjsgfVxuXG4uZmEtY29sdW1uczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBkYlwiOyB9XG5cbi5mYS1jb21tZW50OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDc1XCI7IH1cblxuLmZhLWNvbW1lbnQtYWx0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjdhXCI7IH1cblxuLmZhLWNvbW1lbnQtZG90czpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjRhZFwiOyB9XG5cbi5mYS1jb21tZW50LXNsYXNoOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNGIzXCI7IH1cblxuLmZhLWNvbW1lbnRzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDg2XCI7IH1cblxuLmZhLWNvbXBhY3QtZGlzYzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjUxZlwiOyB9XG5cbi5mYS1jb21wYXNzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTRlXCI7IH1cblxuLmZhLWNvbXByZXNzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDY2XCI7IH1cblxuLmZhLWNvbmNpZXJnZS1iZWxsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNTYyXCI7IH1cblxuLmZhLWNvbm5lY3RkZXZlbG9wOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjBlXCI7IH1cblxuLmZhLWNvbnRhbzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI2ZFwiOyB9XG5cbi5mYS1jb29raWU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY1NjNcIjsgfVxuXG4uZmEtY29va2llLWJpdGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY1NjRcIjsgfVxuXG4uZmEtY29weTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBjNVwiOyB9XG5cbi5mYS1jb3B5cmlnaHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZjlcIjsgfVxuXG4uZmEtY291Y2g6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0YjhcIjsgfVxuXG4uZmEtY3BhbmVsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzg4XCI7IH1cblxuLmZhLWNyZWF0aXZlLWNvbW1vbnM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNWVcIjsgfVxuXG4uZmEtY3JlYXRpdmUtY29tbW9ucy1ieTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjRlN1wiOyB9XG5cbi5mYS1jcmVhdGl2ZS1jb21tb25zLW5jOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNGU4XCI7IH1cblxuLmZhLWNyZWF0aXZlLWNvbW1vbnMtbmMtZXU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0ZTlcIjsgfVxuXG4uZmEtY3JlYXRpdmUtY29tbW9ucy1uYy1qcDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjRlYVwiOyB9XG5cbi5mYS1jcmVhdGl2ZS1jb21tb25zLW5kOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNGViXCI7IH1cblxuLmZhLWNyZWF0aXZlLWNvbW1vbnMtcGQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0ZWNcIjsgfVxuXG4uZmEtY3JlYXRpdmUtY29tbW9ucy1wZC1hbHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0ZWRcIjsgfVxuXG4uZmEtY3JlYXRpdmUtY29tbW9ucy1yZW1peDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjRlZVwiOyB9XG5cbi5mYS1jcmVhdGl2ZS1jb21tb25zLXNhOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNGVmXCI7IH1cblxuLmZhLWNyZWF0aXZlLWNvbW1vbnMtc2FtcGxpbmc6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0ZjBcIjsgfVxuXG4uZmEtY3JlYXRpdmUtY29tbW9ucy1zYW1wbGluZy1wbHVzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNGYxXCI7IH1cblxuLmZhLWNyZWF0aXZlLWNvbW1vbnMtc2hhcmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0ZjJcIjsgfVxuXG4uZmEtY3JlZGl0LWNhcmQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwOWRcIjsgfVxuXG4uZmEtY3JvcDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEyNVwiOyB9XG5cbi5mYS1jcm9wLWFsdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjU2NVwiOyB9XG5cbi5mYS1jcm9zc2hhaXJzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDViXCI7IH1cblxuLmZhLWNyb3c6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY1MjBcIjsgfVxuXG4uZmEtY3Jvd246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY1MjFcIjsgfVxuXG4uZmEtY3NzMzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEzY1wiOyB9XG5cbi5mYS1jc3MzLWFsdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjM4YlwiOyB9XG5cbi5mYS1jdWJlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWIyXCI7IH1cblxuLmZhLWN1YmVzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWIzXCI7IH1cblxuLmZhLWN1dDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBjNFwiOyB9XG5cbi5mYS1jdXR0bGVmaXNoOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzhjXCI7IH1cblxuLmZhLWQtYW5kLWQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzOGRcIjsgfVxuXG4uZmEtZGFzaGN1YmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMTBcIjsgfVxuXG4uZmEtZGF0YWJhc2U6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxYzBcIjsgfVxuXG4uZmEtZGVhZjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJhNFwiOyB9XG5cbi5mYS1kZWxpY2lvdXM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxYTVcIjsgfVxuXG4uZmEtZGVwbG95ZG9nOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzhlXCI7IH1cblxuLmZhLWRlc2twcm86YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzOGZcIjsgfVxuXG4uZmEtZGVza3RvcDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEwOFwiOyB9XG5cbi5mYS1kZXZpYW50YXJ0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWJkXCI7IH1cblxuLmZhLWRpYWdub3NlczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQ3MFwiOyB9XG5cbi5mYS1kaWNlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNTIyXCI7IH1cblxuLmZhLWRpY2UtZml2ZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjUyM1wiOyB9XG5cbi5mYS1kaWNlLWZvdXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY1MjRcIjsgfVxuXG4uZmEtZGljZS1vbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY1MjVcIjsgfVxuXG4uZmEtZGljZS1zaXg6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY1MjZcIjsgfVxuXG4uZmEtZGljZS10aHJlZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjUyN1wiOyB9XG5cbi5mYS1kaWNlLXR3bzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjUyOFwiOyB9XG5cbi5mYS1kaWdnOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWE2XCI7IH1cblxuLmZhLWRpZ2l0YWwtb2NlYW46YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzOTFcIjsgfVxuXG4uZmEtZGlnaXRhbC10YWNob2dyYXBoOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNTY2XCI7IH1cblxuLmZhLWRpc2NvcmQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzOTJcIjsgfVxuXG4uZmEtZGlzY291cnNlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzkzXCI7IH1cblxuLmZhLWRpdmlkZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjUyOVwiOyB9XG5cbi5mYS1kaXp6eTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjU2N1wiOyB9XG5cbi5mYS1kbmE6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0NzFcIjsgfVxuXG4uZmEtZG9jaHViOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzk0XCI7IH1cblxuLmZhLWRvY2tlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjM5NVwiOyB9XG5cbi5mYS1kb2xsYXItc2lnbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE1NVwiOyB9XG5cbi5mYS1kb2xseTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQ3MlwiOyB9XG5cbi5mYS1kb2xseS1mbGF0YmVkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDc0XCI7IH1cblxuLmZhLWRvbmF0ZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjRiOVwiOyB9XG5cbi5mYS1kb29yLWNsb3NlZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjUyYVwiOyB9XG5cbi5mYS1kb29yLW9wZW46YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY1MmJcIjsgfVxuXG4uZmEtZG90LWNpcmNsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE5MlwiOyB9XG5cbi5mYS1kb3ZlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNGJhXCI7IH1cblxuLmZhLWRvd25sb2FkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDE5XCI7IH1cblxuLmZhLWRyYWZ0MmRpZ2l0YWw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzOTZcIjsgfVxuXG4uZmEtZHJhZnRpbmctY29tcGFzczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjU2OFwiOyB9XG5cbi5mYS1kcmliYmJsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE3ZFwiOyB9XG5cbi5mYS1kcmliYmJsZS1zcXVhcmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzOTdcIjsgfVxuXG4uZmEtZHJvcGJveDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE2YlwiOyB9XG5cbi5mYS1kcnVtOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNTY5XCI7IH1cblxuLmZhLWRydW0tc3RlZWxwYW46YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY1NmFcIjsgfVxuXG4uZmEtZHJ1cGFsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWE5XCI7IH1cblxuLmZhLWR1bWJiZWxsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDRiXCI7IH1cblxuLmZhLWR5YWxvZzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjM5OVwiOyB9XG5cbi5mYS1lYXJseWJpcmRzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzlhXCI7IH1cblxuLmZhLWViYXk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0ZjRcIjsgfVxuXG4uZmEtZWRnZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI4MlwiOyB9XG5cbi5mYS1lZGl0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDQ0XCI7IH1cblxuLmZhLWVqZWN0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDUyXCI7IH1cblxuLmZhLWVsZW1lbnRvcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQzMFwiOyB9XG5cbi5mYS1lbGxpcHNpcy1oOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTQxXCI7IH1cblxuLmZhLWVsbGlwc2lzLXY6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNDJcIjsgfVxuXG4uZmEtZW1iZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0MjNcIjsgfVxuXG4uZmEtZW1waXJlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWQxXCI7IH1cblxuLmZhLWVudmVsb3BlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGUwXCI7IH1cblxuLmZhLWVudmVsb3BlLW9wZW46YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyYjZcIjsgfVxuXG4uZmEtZW52ZWxvcGUtc3F1YXJlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTk5XCI7IH1cblxuLmZhLWVudmlyYTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI5OVwiOyB9XG5cbi5mYS1lcXVhbHM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY1MmNcIjsgfVxuXG4uZmEtZXJhc2VyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTJkXCI7IH1cblxuLmZhLWVybGFuZzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjM5ZFwiOyB9XG5cbi5mYS1ldGhlcmV1bTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQyZVwiOyB9XG5cbi5mYS1ldHN5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmQ3XCI7IH1cblxuLmZhLWV1cm8tc2lnbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE1M1wiOyB9XG5cbi5mYS1leGNoYW5nZS1hbHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzNjJcIjsgfVxuXG4uZmEtZXhjbGFtYXRpb246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMmFcIjsgfVxuXG4uZmEtZXhjbGFtYXRpb24tY2lyY2xlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDZhXCI7IH1cblxuLmZhLWV4Y2xhbWF0aW9uLXRyaWFuZ2xlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDcxXCI7IH1cblxuLmZhLWV4cGFuZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA2NVwiOyB9XG5cbi5mYS1leHBhbmQtYXJyb3dzLWFsdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjMxZVwiOyB9XG5cbi5mYS1leHBlZGl0ZWRzc2w6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyM2VcIjsgfVxuXG4uZmEtZXh0ZXJuYWwtbGluay1hbHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzNWRcIjsgfVxuXG4uZmEtZXh0ZXJuYWwtbGluay1zcXVhcmUtYWx0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzYwXCI7IH1cblxuLmZhLWV5ZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA2ZVwiOyB9XG5cbi5mYS1leWUtZHJvcHBlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFmYlwiOyB9XG5cbi5mYS1leWUtc2xhc2g6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNzBcIjsgfVxuXG4uZmEtZmFjZWJvb2s6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwOWFcIjsgfVxuXG4uZmEtZmFjZWJvb2stZjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjM5ZVwiOyB9XG5cbi5mYS1mYWNlYm9vay1tZXNzZW5nZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzOWZcIjsgfVxuXG4uZmEtZmFjZWJvb2stc3F1YXJlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDgyXCI7IH1cblxuLmZhLWZhc3QtYmFja3dhcmQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNDlcIjsgfVxuXG4uZmEtZmFzdC1mb3J3YXJkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDUwXCI7IH1cblxuLmZhLWZheDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFhY1wiOyB9XG5cbi5mYS1mZWF0aGVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNTJkXCI7IH1cblxuLmZhLWZlYXRoZXItYWx0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNTZiXCI7IH1cblxuLmZhLWZlbWFsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE4MlwiOyB9XG5cbi5mYS1maWdodGVyLWpldDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBmYlwiOyB9XG5cbi5mYS1maWxlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTViXCI7IH1cblxuLmZhLWZpbGUtYWx0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTVjXCI7IH1cblxuLmZhLWZpbGUtYXJjaGl2ZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFjNlwiOyB9XG5cbi5mYS1maWxlLWF1ZGlvOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWM3XCI7IH1cblxuLmZhLWZpbGUtY29kZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFjOVwiOyB9XG5cbi5mYS1maWxlLWNvbnRyYWN0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNTZjXCI7IH1cblxuLmZhLWZpbGUtZG93bmxvYWQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY1NmRcIjsgfVxuXG4uZmEtZmlsZS1leGNlbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFjM1wiOyB9XG5cbi5mYS1maWxlLWV4cG9ydDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjU2ZVwiOyB9XG5cbi5mYS1maWxlLWltYWdlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWM1XCI7IH1cblxuLmZhLWZpbGUtaW1wb3J0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNTZmXCI7IH1cblxuLmZhLWZpbGUtaW52b2ljZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjU3MFwiOyB9XG5cbi5mYS1maWxlLWludm9pY2UtZG9sbGFyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNTcxXCI7IH1cblxuLmZhLWZpbGUtbWVkaWNhbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQ3N1wiOyB9XG5cbi5mYS1maWxlLW1lZGljYWwtYWx0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDc4XCI7IH1cblxuLmZhLWZpbGUtcGRmOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWMxXCI7IH1cblxuLmZhLWZpbGUtcG93ZXJwb2ludDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFjNFwiOyB9XG5cbi5mYS1maWxlLXByZXNjcmlwdGlvbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjU3MlwiOyB9XG5cbi5mYS1maWxlLXNpZ25hdHVyZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjU3M1wiOyB9XG5cbi5mYS1maWxlLXVwbG9hZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjU3NFwiOyB9XG5cbi5mYS1maWxlLXZpZGVvOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWM4XCI7IH1cblxuLmZhLWZpbGUtd29yZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFjMlwiOyB9XG5cbi5mYS1maWxsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNTc1XCI7IH1cblxuLmZhLWZpbGwtZHJpcDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjU3NlwiOyB9XG5cbi5mYS1maWxtOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDA4XCI7IH1cblxuLmZhLWZpbHRlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBiMFwiOyB9XG5cbi5mYS1maW5nZXJwcmludDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjU3N1wiOyB9XG5cbi5mYS1maXJlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDZkXCI7IH1cblxuLmZhLWZpcmUtZXh0aW5ndWlzaGVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTM0XCI7IH1cblxuLmZhLWZpcmVmb3g6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNjlcIjsgfVxuXG4uZmEtZmlyc3QtYWlkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDc5XCI7IH1cblxuLmZhLWZpcnN0LW9yZGVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmIwXCI7IH1cblxuLmZhLWZpcnN0LW9yZGVyLWFsdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjUwYVwiOyB9XG5cbi5mYS1maXJzdGRyYWZ0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2ExXCI7IH1cblxuLmZhLWZpc2g6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY1NzhcIjsgfVxuXG4uZmEtZmxhZzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAyNFwiOyB9XG5cbi5mYS1mbGFnLWNoZWNrZXJlZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjExZVwiOyB9XG5cbi5mYS1mbGFzazpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBjM1wiOyB9XG5cbi5mYS1mbGlja3I6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNmVcIjsgfVxuXG4uZmEtZmxpcGJvYXJkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDRkXCI7IH1cblxuLmZhLWZsdXNoZWQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY1NzlcIjsgfVxuXG4uZmEtZmx5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDE3XCI7IH1cblxuLmZhLWZvbGRlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA3YlwiOyB9XG5cbi5mYS1mb2xkZXItb3BlbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA3Y1wiOyB9XG5cbi5mYS1mb250OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDMxXCI7IH1cblxuLmZhLWZvbnQtYXdlc29tZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJiNFwiOyB9XG5cbi5mYS1mb250LWF3ZXNvbWUtYWx0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzVjXCI7IH1cblxuLmZhLWZvbnQtYXdlc29tZS1mbGFnOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDI1XCI7IH1cblxuLmZhLWZvbnQtYXdlc29tZS1sb2dvLWZ1bGw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0ZTZcIjsgfVxuXG4uZmEtZm9udGljb25zOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjgwXCI7IH1cblxuLmZhLWZvbnRpY29ucy1maTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNhMlwiOyB9XG5cbi5mYS1mb290YmFsbC1iYWxsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDRlXCI7IH1cblxuLmZhLWZvcnQtYXdlc29tZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI4NlwiOyB9XG5cbi5mYS1mb3J0LWF3ZXNvbWUtYWx0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2EzXCI7IH1cblxuLmZhLWZvcnVtYmVlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjExXCI7IH1cblxuLmZhLWZvcndhcmQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNGVcIjsgfVxuXG4uZmEtZm91cnNxdWFyZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE4MFwiOyB9XG5cbi5mYS1mcmVlLWNvZGUtY2FtcDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJjNVwiOyB9XG5cbi5mYS1mcmVlYnNkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2E0XCI7IH1cblxuLmZhLWZyb2c6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY1MmVcIjsgfVxuXG4uZmEtZnJvd246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMTlcIjsgfVxuXG4uZmEtZnJvd24tb3BlbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjU3YVwiOyB9XG5cbi5mYS1mdWxjcnVtOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNTBiXCI7IH1cblxuLmZhLWZ1dGJvbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFlM1wiOyB9XG5cbi5mYS1nYWxhY3RpYy1yZXB1YmxpYzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjUwY1wiOyB9XG5cbi5mYS1nYWxhY3RpYy1zZW5hdGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY1MGRcIjsgfVxuXG4uZmEtZ2FtZXBhZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjExYlwiOyB9XG5cbi5mYS1nYXMtcHVtcDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjUyZlwiOyB9XG5cbi5mYS1nYXZlbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBlM1wiOyB9XG5cbi5mYS1nZW06YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzYTVcIjsgfVxuXG4uZmEtZ2VuZGVybGVzczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIyZFwiOyB9XG5cbi5mYS1nZXQtcG9ja2V0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjY1XCI7IH1cblxuLmZhLWdnOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjYwXCI7IH1cblxuLmZhLWdnLWNpcmNsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI2MVwiOyB9XG5cbi5mYS1naWZ0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDZiXCI7IH1cblxuLmZhLWdpdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFkM1wiOyB9XG5cbi5mYS1naXQtc3F1YXJlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWQyXCI7IH1cblxuLmZhLWdpdGh1YjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA5YlwiOyB9XG5cbi5mYS1naXRodWItYWx0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTEzXCI7IH1cblxuLmZhLWdpdGh1Yi1zcXVhcmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwOTJcIjsgfVxuXG4uZmEtZ2l0a3Jha2VuOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2E2XCI7IH1cblxuLmZhLWdpdGxhYjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI5NlwiOyB9XG5cbi5mYS1naXR0ZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0MjZcIjsgfVxuXG4uZmEtZ2xhc3MtbWFydGluaTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAwMFwiOyB9XG5cbi5mYS1nbGFzcy1tYXJ0aW5pLWFsdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjU3YlwiOyB9XG5cbi5mYS1nbGFzc2VzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNTMwXCI7IH1cblxuLmZhLWdsaWRlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmE1XCI7IH1cblxuLmZhLWdsaWRlLWc6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyYTZcIjsgfVxuXG4uZmEtZ2xvYmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwYWNcIjsgfVxuXG4uZmEtZ2xvYmUtYWZyaWNhOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNTdjXCI7IH1cblxuLmZhLWdsb2JlLWFtZXJpY2FzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNTdkXCI7IH1cblxuLmZhLWdsb2JlLWFzaWE6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY1N2VcIjsgfVxuXG4uZmEtZ29mb3JlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2E3XCI7IH1cblxuLmZhLWdvbGYtYmFsbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQ1MFwiOyB9XG5cbi5mYS1nb29kcmVhZHM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzYThcIjsgfVxuXG4uZmEtZ29vZHJlYWRzLWc6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzYTlcIjsgfVxuXG4uZmEtZ29vZ2xlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWEwXCI7IH1cblxuLmZhLWdvb2dsZS1kcml2ZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNhYVwiOyB9XG5cbi5mYS1nb29nbGUtcGxheTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNhYlwiOyB9XG5cbi5mYS1nb29nbGUtcGx1czpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJiM1wiOyB9XG5cbi5mYS1nb29nbGUtcGx1cy1nOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGQ1XCI7IH1cblxuLmZhLWdvb2dsZS1wbHVzLXNxdWFyZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBkNFwiOyB9XG5cbi5mYS1nb29nbGUtd2FsbGV0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWVlXCI7IH1cblxuLmZhLWdyYWR1YXRpb24tY2FwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTlkXCI7IH1cblxuLmZhLWdyYXRpcGF5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTg0XCI7IH1cblxuLmZhLWdyYXY6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyZDZcIjsgfVxuXG4uZmEtZ3JlYXRlci10aGFuOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNTMxXCI7IH1cblxuLmZhLWdyZWF0ZXItdGhhbi1lcXVhbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjUzMlwiOyB9XG5cbi5mYS1ncmltYWNlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNTdmXCI7IH1cblxuLmZhLWdyaW46YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY1ODBcIjsgfVxuXG4uZmEtZ3Jpbi1hbHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY1ODFcIjsgfVxuXG4uZmEtZ3Jpbi1iZWFtOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNTgyXCI7IH1cblxuLmZhLWdyaW4tYmVhbS1zd2VhdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjU4M1wiOyB9XG5cbi5mYS1ncmluLWhlYXJ0czpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjU4NFwiOyB9XG5cbi5mYS1ncmluLXNxdWludDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjU4NVwiOyB9XG5cbi5mYS1ncmluLXNxdWludC10ZWFyczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjU4NlwiOyB9XG5cbi5mYS1ncmluLXN0YXJzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNTg3XCI7IH1cblxuLmZhLWdyaW4tdGVhcnM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY1ODhcIjsgfVxuXG4uZmEtZ3Jpbi10b25ndWU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY1ODlcIjsgfVxuXG4uZmEtZ3Jpbi10b25ndWUtc3F1aW50OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNThhXCI7IH1cblxuLmZhLWdyaW4tdG9uZ3VlLXdpbms6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY1OGJcIjsgfVxuXG4uZmEtZ3Jpbi13aW5rOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNThjXCI7IH1cblxuLmZhLWdyaXAtaG9yaXpvbnRhbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjU4ZFwiOyB9XG5cbi5mYS1ncmlwLXZlcnRpY2FsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNThlXCI7IH1cblxuLmZhLWdyaXBmaXJlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2FjXCI7IH1cblxuLmZhLWdydW50OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2FkXCI7IH1cblxuLmZhLWd1bHA6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzYWVcIjsgfVxuXG4uZmEtaC1zcXVhcmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwZmRcIjsgfVxuXG4uZmEtaGFja2VyLW5ld3M6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZDRcIjsgfVxuXG4uZmEtaGFja2VyLW5ld3Mtc3F1YXJlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2FmXCI7IH1cblxuLmZhLWhhbmQtaG9sZGluZzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjRiZFwiOyB9XG5cbi5mYS1oYW5kLWhvbGRpbmctaGVhcnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0YmVcIjsgfVxuXG4uZmEtaGFuZC1ob2xkaW5nLXVzZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjRjMFwiOyB9XG5cbi5mYS1oYW5kLWxpemFyZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI1OFwiOyB9XG5cbi5mYS1oYW5kLXBhcGVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjU2XCI7IH1cblxuLmZhLWhhbmQtcGVhY2U6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNWJcIjsgfVxuXG4uZmEtaGFuZC1wb2ludC1kb3duOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGE3XCI7IH1cblxuLmZhLWhhbmQtcG9pbnQtbGVmdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBhNVwiOyB9XG5cbi5mYS1oYW5kLXBvaW50LXJpZ2h0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGE0XCI7IH1cblxuLmZhLWhhbmQtcG9pbnQtdXA6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwYTZcIjsgfVxuXG4uZmEtaGFuZC1wb2ludGVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjVhXCI7IH1cblxuLmZhLWhhbmQtcm9jazpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI1NVwiOyB9XG5cbi5mYS1oYW5kLXNjaXNzb3JzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjU3XCI7IH1cblxuLmZhLWhhbmQtc3BvY2s6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNTlcIjsgfVxuXG4uZmEtaGFuZHM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0YzJcIjsgfVxuXG4uZmEtaGFuZHMtaGVscGluZzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjRjNFwiOyB9XG5cbi5mYS1oYW5kc2hha2U6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyYjVcIjsgfVxuXG4uZmEtaGFzaHRhZzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI5MlwiOyB9XG5cbi5mYS1oZGQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwYTBcIjsgfVxuXG4uZmEtaGVhZGluZzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFkY1wiOyB9XG5cbi5mYS1oZWFkcGhvbmVzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDI1XCI7IH1cblxuLmZhLWhlYWRwaG9uZXMtYWx0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNThmXCI7IH1cblxuLmZhLWhlYWRzZXQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY1OTBcIjsgfVxuXG4uZmEtaGVhcnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMDRcIjsgfVxuXG4uZmEtaGVhcnRiZWF0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjFlXCI7IH1cblxuLmZhLWhlbGljb3B0ZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY1MzNcIjsgfVxuXG4uZmEtaGlnaGxpZ2h0ZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY1OTFcIjsgfVxuXG4uZmEtaGlwczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQ1MlwiOyB9XG5cbi5mYS1oaXJlLWEtaGVscGVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2IwXCI7IH1cblxuLmZhLWhpc3Rvcnk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZGFcIjsgfVxuXG4uZmEtaG9ja2V5LXB1Y2s6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0NTNcIjsgfVxuXG4uZmEtaG9tZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAxNVwiOyB9XG5cbi5mYS1ob29saTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQyN1wiOyB9XG5cbi5mYS1ob3JuYmlsbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjU5MlwiOyB9XG5cbi5mYS1ob3NwaXRhbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBmOFwiOyB9XG5cbi5mYS1ob3NwaXRhbC1hbHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0N2RcIjsgfVxuXG4uZmEtaG9zcGl0YWwtc3ltYm9sOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDdlXCI7IH1cblxuLmZhLWhvdC10dWI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY1OTNcIjsgfVxuXG4uZmEtaG90ZWw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY1OTRcIjsgfVxuXG4uZmEtaG90amFyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2IxXCI7IH1cblxuLmZhLWhvdXJnbGFzczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI1NFwiOyB9XG5cbi5mYS1ob3VyZ2xhc3MtZW5kOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjUzXCI7IH1cblxuLmZhLWhvdXJnbGFzcy1oYWxmOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjUyXCI7IH1cblxuLmZhLWhvdXJnbGFzcy1zdGFydDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI1MVwiOyB9XG5cbi5mYS1ob3V6ejpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI3Y1wiOyB9XG5cbi5mYS1odG1sNTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEzYlwiOyB9XG5cbi5mYS1odWJzcG90OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2IyXCI7IH1cblxuLmZhLWktY3Vyc29yOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjQ2XCI7IH1cblxuLmZhLWlkLWJhZGdlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmMxXCI7IH1cblxuLmZhLWlkLWNhcmQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyYzJcIjsgfVxuXG4uZmEtaWQtY2FyZC1hbHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0N2ZcIjsgfVxuXG4uZmEtaW1hZ2U6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwM2VcIjsgfVxuXG4uZmEtaW1hZ2VzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzAyXCI7IH1cblxuLmZhLWltZGI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyZDhcIjsgfVxuXG4uZmEtaW5ib3g6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMWNcIjsgfVxuXG4uZmEtaW5kZW50OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDNjXCI7IH1cblxuLmZhLWluZHVzdHJ5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjc1XCI7IH1cblxuLmZhLWluZmluaXR5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNTM0XCI7IH1cblxuLmZhLWluZm86YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMjlcIjsgfVxuXG4uZmEtaW5mby1jaXJjbGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNWFcIjsgfVxuXG4uZmEtaW5zdGFncmFtOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTZkXCI7IH1cblxuLmZhLWludGVybmV0LWV4cGxvcmVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjZiXCI7IH1cblxuLmZhLWlveGhvc3Q6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMDhcIjsgfVxuXG4uZmEtaXRhbGljOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDMzXCI7IH1cblxuLmZhLWl0dW5lczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNiNFwiOyB9XG5cbi5mYS1pdHVuZXMtbm90ZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNiNVwiOyB9XG5cbi5mYS1qYXZhOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNGU0XCI7IH1cblxuLmZhLWplZGktb3JkZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY1MGVcIjsgfVxuXG4uZmEtamVua2luczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNiNlwiOyB9XG5cbi5mYS1qb2dldDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNiN1wiOyB9XG5cbi5mYS1qb2ludDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjU5NVwiOyB9XG5cbi5mYS1qb29tbGE6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxYWFcIjsgfVxuXG4uZmEtanM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzYjhcIjsgfVxuXG4uZmEtanMtc3F1YXJlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2I5XCI7IH1cblxuLmZhLWpzZmlkZGxlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWNjXCI7IH1cblxuLmZhLWtleTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA4NFwiOyB9XG5cbi5mYS1rZXliYXNlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNGY1XCI7IH1cblxuLmZhLWtleWJvYXJkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTFjXCI7IH1cblxuLmZhLWtleWNkbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNiYVwiOyB9XG5cbi5mYS1raWNrc3RhcnRlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNiYlwiOyB9XG5cbi5mYS1raWNrc3RhcnRlci1rOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2JjXCI7IH1cblxuLmZhLWtpc3M6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY1OTZcIjsgfVxuXG4uZmEta2lzcy1iZWFtOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNTk3XCI7IH1cblxuLmZhLWtpc3Mtd2luay1oZWFydDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjU5OFwiOyB9XG5cbi5mYS1raXdpLWJpcmQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY1MzVcIjsgfVxuXG4uZmEta29ydnVlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDJmXCI7IH1cblxuLmZhLWxhbmd1YWdlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWFiXCI7IH1cblxuLmZhLWxhcHRvcDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEwOVwiOyB9XG5cbi5mYS1sYXJhdmVsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2JkXCI7IH1cblxuLmZhLWxhc3RmbTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIwMlwiOyB9XG5cbi5mYS1sYXN0Zm0tc3F1YXJlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjAzXCI7IH1cblxuLmZhLWxhdWdoOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNTk5XCI7IH1cblxuLmZhLWxhdWdoLWJlYW06YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY1OWFcIjsgfVxuXG4uZmEtbGF1Z2gtc3F1aW50OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNTliXCI7IH1cblxuLmZhLWxhdWdoLXdpbms6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY1OWNcIjsgfVxuXG4uZmEtbGVhZjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA2Y1wiOyB9XG5cbi5mYS1sZWFucHViOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjEyXCI7IH1cblxuLmZhLWxlbW9uOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDk0XCI7IH1cblxuLmZhLWxlc3M6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0MWRcIjsgfVxuXG4uZmEtbGVzcy10aGFuOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNTM2XCI7IH1cblxuLmZhLWxlc3MtdGhhbi1lcXVhbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjUzN1wiOyB9XG5cbi5mYS1sZXZlbC1kb3duLWFsdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNiZVwiOyB9XG5cbi5mYS1sZXZlbC11cC1hbHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzYmZcIjsgfVxuXG4uZmEtbGlmZS1yaW5nOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWNkXCI7IH1cblxuLmZhLWxpZ2h0YnVsYjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBlYlwiOyB9XG5cbi5mYS1saW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2MwXCI7IH1cblxuLmZhLWxpbms6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwYzFcIjsgfVxuXG4uZmEtbGlua2VkaW46YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwOGNcIjsgfVxuXG4uZmEtbGlua2VkaW4taW46YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwZTFcIjsgfVxuXG4uZmEtbGlub2RlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmI4XCI7IH1cblxuLmZhLWxpbnV4OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTdjXCI7IH1cblxuLmZhLWxpcmEtc2lnbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE5NVwiOyB9XG5cbi5mYS1saXN0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDNhXCI7IH1cblxuLmZhLWxpc3QtYWx0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDIyXCI7IH1cblxuLmZhLWxpc3Qtb2w6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwY2JcIjsgfVxuXG4uZmEtbGlzdC11bDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBjYVwiOyB9XG5cbi5mYS1sb2NhdGlvbi1hcnJvdzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEyNFwiOyB9XG5cbi5mYS1sb2NrOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDIzXCI7IH1cblxuLmZhLWxvY2stb3BlbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNjMVwiOyB9XG5cbi5mYS1sb25nLWFycm93LWFsdC1kb3duOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzA5XCI7IH1cblxuLmZhLWxvbmctYXJyb3ctYWx0LWxlZnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzMGFcIjsgfVxuXG4uZmEtbG9uZy1hcnJvdy1hbHQtcmlnaHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzMGJcIjsgfVxuXG4uZmEtbG9uZy1hcnJvdy1hbHQtdXA6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzMGNcIjsgfVxuXG4uZmEtbG93LXZpc2lvbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJhOFwiOyB9XG5cbi5mYS1sdWdnYWdlLWNhcnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY1OWRcIjsgfVxuXG4uZmEtbHlmdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNjM1wiOyB9XG5cbi5mYS1tYWdlbnRvOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2M0XCI7IH1cblxuLmZhLW1hZ2ljOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGQwXCI7IH1cblxuLmZhLW1hZ25ldDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA3NlwiOyB9XG5cbi5mYS1tYWlsY2hpbXA6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY1OWVcIjsgfVxuXG4uZmEtbWFsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE4M1wiOyB9XG5cbi5mYS1tYW5kYWxvcmlhbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjUwZlwiOyB9XG5cbi5mYS1tYXA6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNzlcIjsgfVxuXG4uZmEtbWFwLW1hcmtlZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjU5ZlwiOyB9XG5cbi5mYS1tYXAtbWFya2VkLWFsdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjVhMFwiOyB9XG5cbi5mYS1tYXAtbWFya2VyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDQxXCI7IH1cblxuLmZhLW1hcC1tYXJrZXItYWx0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2M1XCI7IH1cblxuLmZhLW1hcC1waW46YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNzZcIjsgfVxuXG4uZmEtbWFwLXNpZ25zOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjc3XCI7IH1cblxuLmZhLW1hcmtlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjVhMVwiOyB9XG5cbi5mYS1tYXJzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjIyXCI7IH1cblxuLmZhLW1hcnMtZG91YmxlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjI3XCI7IH1cblxuLmZhLW1hcnMtc3Ryb2tlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjI5XCI7IH1cblxuLmZhLW1hcnMtc3Ryb2tlLWg6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMmJcIjsgfVxuXG4uZmEtbWFycy1zdHJva2UtdjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIyYVwiOyB9XG5cbi5mYS1tYXN0b2RvbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjRmNlwiOyB9XG5cbi5mYS1tYXhjZG46YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMzZcIjsgfVxuXG4uZmEtbWVkYWw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY1YTJcIjsgfVxuXG4uZmEtbWVkYXBwczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNjNlwiOyB9XG5cbi5mYS1tZWRpdW06YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyM2FcIjsgfVxuXG4uZmEtbWVkaXVtLW06YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzYzdcIjsgfVxuXG4uZmEtbWVka2l0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGZhXCI7IH1cblxuLmZhLW1lZHJ0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2M4XCI7IH1cblxuLmZhLW1lZXR1cDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJlMFwiOyB9XG5cbi5mYS1tZWdhcG9ydDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjVhM1wiOyB9XG5cbi5mYS1tZWg6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMWFcIjsgfVxuXG4uZmEtbWVoLWJsYW5rOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNWE0XCI7IH1cblxuLmZhLW1laC1yb2xsaW5nLWV5ZXM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY1YTVcIjsgfVxuXG4uZmEtbWVtb3J5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNTM4XCI7IH1cblxuLmZhLW1lcmN1cnk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMjNcIjsgfVxuXG4uZmEtbWljcm9jaGlwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmRiXCI7IH1cblxuLmZhLW1pY3JvcGhvbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMzBcIjsgfVxuXG4uZmEtbWljcm9waG9uZS1hbHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzYzlcIjsgfVxuXG4uZmEtbWljcm9waG9uZS1hbHQtc2xhc2g6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY1MzlcIjsgfVxuXG4uZmEtbWljcm9waG9uZS1zbGFzaDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEzMVwiOyB9XG5cbi5mYS1taWNyb3NvZnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzY2FcIjsgfVxuXG4uZmEtbWludXM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNjhcIjsgfVxuXG4uZmEtbWludXMtY2lyY2xlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDU2XCI7IH1cblxuLmZhLW1pbnVzLXNxdWFyZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE0NlwiOyB9XG5cbi5mYS1taXg6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzY2JcIjsgfVxuXG4uZmEtbWl4Y2xvdWQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyODlcIjsgfVxuXG4uZmEtbWl6dW5pOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2NjXCI7IH1cblxuLmZhLW1vYmlsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEwYlwiOyB9XG5cbi5mYS1tb2JpbGUtYWx0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2NkXCI7IH1cblxuLmZhLW1vZHg6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyODVcIjsgfVxuXG4uZmEtbW9uZXJvOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2QwXCI7IH1cblxuLmZhLW1vbmV5LWJpbGw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwZDZcIjsgfVxuXG4uZmEtbW9uZXktYmlsbC1hbHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzZDFcIjsgfVxuXG4uZmEtbW9uZXktYmlsbC13YXZlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNTNhXCI7IH1cblxuLmZhLW1vbmV5LWJpbGwtd2F2ZS1hbHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY1M2JcIjsgfVxuXG4uZmEtbW9uZXktY2hlY2s6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY1M2NcIjsgfVxuXG4uZmEtbW9uZXktY2hlY2stYWx0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNTNkXCI7IH1cblxuLmZhLW1vbnVtZW50OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNWE2XCI7IH1cblxuLmZhLW1vb246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxODZcIjsgfVxuXG4uZmEtbW9ydGFyLXBlc3RsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjVhN1wiOyB9XG5cbi5mYS1tb3RvcmN5Y2xlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjFjXCI7IH1cblxuLmZhLW1vdXNlLXBvaW50ZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNDVcIjsgfVxuXG4uZmEtbXVzaWM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMDFcIjsgfVxuXG4uZmEtbmFwc3RlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNkMlwiOyB9XG5cbi5mYS1uZXV0ZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMmNcIjsgfVxuXG4uZmEtbmV3c3BhcGVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWVhXCI7IH1cblxuLmZhLW5pbWJscjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjVhOFwiOyB9XG5cbi5mYS1uaW50ZW5kby1zd2l0Y2g6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0MThcIjsgfVxuXG4uZmEtbm9kZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQxOVwiOyB9XG5cbi5mYS1ub2RlLWpzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2QzXCI7IH1cblxuLmZhLW5vdC1lcXVhbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjUzZVwiOyB9XG5cbi5mYS1ub3Rlcy1tZWRpY2FsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDgxXCI7IH1cblxuLmZhLW5wbTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNkNFwiOyB9XG5cbi5mYS1uczg6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzZDVcIjsgfVxuXG4uZmEtbnV0cml0aW9uaXg6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzZDZcIjsgfVxuXG4uZmEtb2JqZWN0LWdyb3VwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjQ3XCI7IH1cblxuLmZhLW9iamVjdC11bmdyb3VwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjQ4XCI7IH1cblxuLmZhLW9kbm9rbGFzc25pa2k6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNjNcIjsgfVxuXG4uZmEtb2Rub2tsYXNzbmlraS1zcXVhcmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNjRcIjsgfVxuXG4uZmEtb2xkLXJlcHVibGljOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNTEwXCI7IH1cblxuLmZhLW9wZW5jYXJ0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjNkXCI7IH1cblxuLmZhLW9wZW5pZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE5YlwiOyB9XG5cbi5mYS1vcGVyYTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI2YVwiOyB9XG5cbi5mYS1vcHRpbi1tb25zdGVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjNjXCI7IH1cblxuLmZhLW9zaTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQxYVwiOyB9XG5cbi5mYS1vdXRkZW50OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDNiXCI7IH1cblxuLmZhLXBhZ2U0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2Q3XCI7IH1cblxuLmZhLXBhZ2VsaW5lczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE4Y1wiOyB9XG5cbi5mYS1wYWludC1icnVzaDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFmY1wiOyB9XG5cbi5mYS1wYWludC1yb2xsZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY1YWFcIjsgfVxuXG4uZmEtcGFsZXR0ZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjUzZlwiOyB9XG5cbi5mYS1wYWxmZWQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzZDhcIjsgfVxuXG4uZmEtcGFsbGV0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDgyXCI7IH1cblxuLmZhLXBhcGVyLXBsYW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWQ4XCI7IH1cblxuLmZhLXBhcGVyY2xpcDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBjNlwiOyB9XG5cbi5mYS1wYXJhY2h1dGUtYm94OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNGNkXCI7IH1cblxuLmZhLXBhcmFncmFwaDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFkZFwiOyB9XG5cbi5mYS1wYXJraW5nOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNTQwXCI7IH1cblxuLmZhLXBhc3Nwb3J0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNWFiXCI7IH1cblxuLmZhLXBhc3RlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGVhXCI7IH1cblxuLmZhLXBhdHJlb246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzZDlcIjsgfVxuXG4uZmEtcGF1c2U6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNGNcIjsgfVxuXG4uZmEtcGF1c2UtY2lyY2xlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjhiXCI7IH1cblxuLmZhLXBhdzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFiMFwiOyB9XG5cbi5mYS1wYXlwYWw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZWRcIjsgfVxuXG4uZmEtcGVuOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzA0XCI7IH1cblxuLmZhLXBlbi1hbHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzMDVcIjsgfVxuXG4uZmEtcGVuLWZhbmN5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNWFjXCI7IH1cblxuLmZhLXBlbi1uaWI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY1YWRcIjsgfVxuXG4uZmEtcGVuLXNxdWFyZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE0YlwiOyB9XG5cbi5mYS1wZW5jaWwtYWx0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzAzXCI7IH1cblxuLmZhLXBlbmNpbC1ydWxlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjVhZVwiOyB9XG5cbi5mYS1wZW9wbGUtY2Fycnk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0Y2VcIjsgfVxuXG4uZmEtcGVyY2VudDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI5NVwiOyB9XG5cbi5mYS1wZXJjZW50YWdlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNTQxXCI7IH1cblxuLmZhLXBlcmlzY29wZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNkYVwiOyB9XG5cbi5mYS1waGFicmljYXRvcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNkYlwiOyB9XG5cbi5mYS1waG9lbml4LWZyYW1ld29yazpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNkY1wiOyB9XG5cbi5mYS1waG9lbml4LXNxdWFkcm9uOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNTExXCI7IH1cblxuLmZhLXBob25lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDk1XCI7IH1cblxuLmZhLXBob25lLXNsYXNoOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2RkXCI7IH1cblxuLmZhLXBob25lLXNxdWFyZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA5OFwiOyB9XG5cbi5mYS1waG9uZS12b2x1bWU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyYTBcIjsgfVxuXG4uZmEtcGhwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDU3XCI7IH1cblxuLmZhLXBpZWQtcGlwZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyYWVcIjsgfVxuXG4uZmEtcGllZC1waXBlci1hbHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxYThcIjsgfVxuXG4uZmEtcGllZC1waXBlci1oYXQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0ZTVcIjsgfVxuXG4uZmEtcGllZC1waXBlci1wcDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFhN1wiOyB9XG5cbi5mYS1waWdneS1iYW5rOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNGQzXCI7IH1cblxuLmZhLXBpbGxzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDg0XCI7IH1cblxuLmZhLXBpbnRlcmVzdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBkMlwiOyB9XG5cbi5mYS1waW50ZXJlc3QtcDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIzMVwiOyB9XG5cbi5mYS1waW50ZXJlc3Qtc3F1YXJlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGQzXCI7IH1cblxuLmZhLXBsYW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDcyXCI7IH1cblxuLmZhLXBsYW5lLWFycml2YWw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY1YWZcIjsgfVxuXG4uZmEtcGxhbmUtZGVwYXJ0dXJlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNWIwXCI7IH1cblxuLmZhLXBsYXk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNGJcIjsgfVxuXG4uZmEtcGxheS1jaXJjbGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNDRcIjsgfVxuXG4uZmEtcGxheXN0YXRpb246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzZGZcIjsgfVxuXG4uZmEtcGx1ZzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFlNlwiOyB9XG5cbi5mYS1wbHVzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDY3XCI7IH1cblxuLmZhLXBsdXMtY2lyY2xlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDU1XCI7IH1cblxuLmZhLXBsdXMtc3F1YXJlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGZlXCI7IH1cblxuLmZhLXBvZGNhc3Q6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyY2VcIjsgfVxuXG4uZmEtcG9vOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmZlXCI7IH1cblxuLmZhLXBvcnRyYWl0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2UwXCI7IH1cblxuLmZhLXBvdW5kLXNpZ246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNTRcIjsgfVxuXG4uZmEtcG93ZXItb2ZmOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDExXCI7IH1cblxuLmZhLXByZXNjcmlwdGlvbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjViMVwiOyB9XG5cbi5mYS1wcmVzY3JpcHRpb24tYm90dGxlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDg1XCI7IH1cblxuLmZhLXByZXNjcmlwdGlvbi1ib3R0bGUtYWx0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDg2XCI7IH1cblxuLmZhLXByaW50OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDJmXCI7IH1cblxuLmZhLXByb2NlZHVyZXM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0ODdcIjsgfVxuXG4uZmEtcHJvZHVjdC1odW50OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjg4XCI7IH1cblxuLmZhLXByb2plY3QtZGlhZ3JhbTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjU0MlwiOyB9XG5cbi5mYS1wdXNoZWQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzZTFcIjsgfVxuXG4uZmEtcHV6emxlLXBpZWNlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTJlXCI7IH1cblxuLmZhLXB5dGhvbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNlMlwiOyB9XG5cbi5mYS1xcTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFkNlwiOyB9XG5cbi5mYS1xcmNvZGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMjlcIjsgfVxuXG4uZmEtcXVlc3Rpb246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMjhcIjsgfVxuXG4uZmEtcXVlc3Rpb24tY2lyY2xlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDU5XCI7IH1cblxuLmZhLXF1aWRkaXRjaDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQ1OFwiOyB9XG5cbi5mYS1xdWluc2NhcGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0NTlcIjsgfVxuXG4uZmEtcXVvcmE6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyYzRcIjsgfVxuXG4uZmEtcXVvdGUtbGVmdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEwZFwiOyB9XG5cbi5mYS1xdW90ZS1yaWdodDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEwZVwiOyB9XG5cbi5mYS1yLXByb2plY3Q6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0ZjdcIjsgfVxuXG4uZmEtcmFuZG9tOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDc0XCI7IH1cblxuLmZhLXJhdmVscnk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyZDlcIjsgfVxuXG4uZmEtcmVhY3Q6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0MWJcIjsgfVxuXG4uZmEtcmVhZG1lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNGQ1XCI7IH1cblxuLmZhLXJlYmVsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWQwXCI7IH1cblxuLmZhLXJlY2VpcHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY1NDNcIjsgfVxuXG4uZmEtcmVjeWNsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFiOFwiOyB9XG5cbi5mYS1yZWQtcml2ZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzZTNcIjsgfVxuXG4uZmEtcmVkZGl0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWExXCI7IH1cblxuLmZhLXJlZGRpdC1hbGllbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI4MVwiOyB9XG5cbi5mYS1yZWRkaXQtc3F1YXJlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWEyXCI7IH1cblxuLmZhLXJlZG86YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMWVcIjsgfVxuXG4uZmEtcmVkby1hbHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyZjlcIjsgfVxuXG4uZmEtcmVnaXN0ZXJlZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI1ZFwiOyB9XG5cbi5mYS1yZW5kYWN0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2U0XCI7IH1cblxuLmZhLXJlbnJlbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE4YlwiOyB9XG5cbi5mYS1yZXBseTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNlNVwiOyB9XG5cbi5mYS1yZXBseS1hbGw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMjJcIjsgfVxuXG4uZmEtcmVwbHlkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2U2XCI7IH1cblxuLmZhLXJlc2VhcmNoZ2F0ZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjRmOFwiOyB9XG5cbi5mYS1yZXNvbHZpbmc6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzZTdcIjsgfVxuXG4uZmEtcmV0d2VldDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA3OVwiOyB9XG5cbi5mYS1yZXY6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY1YjJcIjsgfVxuXG4uZmEtcmliYm9uOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNGQ2XCI7IH1cblxuLmZhLXJvYWQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMThcIjsgfVxuXG4uZmEtcm9ib3Q6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY1NDRcIjsgfVxuXG4uZmEtcm9ja2V0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTM1XCI7IH1cblxuLmZhLXJvY2tldGNoYXQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzZThcIjsgfVxuXG4uZmEtcm9ja3JtczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNlOVwiOyB9XG5cbi5mYS1yc3M6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwOWVcIjsgfVxuXG4uZmEtcnNzLXNxdWFyZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE0M1wiOyB9XG5cbi5mYS1ydWJsZS1zaWduOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTU4XCI7IH1cblxuLmZhLXJ1bGVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNTQ1XCI7IH1cblxuLmZhLXJ1bGVyLWNvbWJpbmVkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNTQ2XCI7IH1cblxuLmZhLXJ1bGVyLWhvcml6b250YWw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY1NDdcIjsgfVxuXG4uZmEtcnVsZXItdmVydGljYWw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY1NDhcIjsgfVxuXG4uZmEtcnVwZWUtc2lnbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE1NlwiOyB9XG5cbi5mYS1zYWQtY3J5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNWIzXCI7IH1cblxuLmZhLXNhZC10ZWFyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNWI0XCI7IH1cblxuLmZhLXNhZmFyaTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI2N1wiOyB9XG5cbi5mYS1zYXNzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDFlXCI7IH1cblxuLmZhLXNhdmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwYzdcIjsgfVxuXG4uZmEtc2NobGl4OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2VhXCI7IH1cblxuLmZhLXNjaG9vbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjU0OVwiOyB9XG5cbi5mYS1zY3Jld2RyaXZlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjU0YVwiOyB9XG5cbi5mYS1zY3JpYmQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyOGFcIjsgfVxuXG4uZmEtc2VhcmNoOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDAyXCI7IH1cblxuLmZhLXNlYXJjaC1taW51czpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAxMFwiOyB9XG5cbi5mYS1zZWFyY2gtcGx1czpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAwZVwiOyB9XG5cbi5mYS1zZWFyY2hlbmdpbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNlYlwiOyB9XG5cbi5mYS1zZWVkbGluZzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjRkOFwiOyB9XG5cbi5mYS1zZWxsY2FzdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJkYVwiOyB9XG5cbi5mYS1zZWxsc3k6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMTNcIjsgfVxuXG4uZmEtc2VydmVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjMzXCI7IH1cblxuLmZhLXNlcnZpY2VzdGFjazpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNlY1wiOyB9XG5cbi5mYS1zaGFyZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA2NFwiOyB9XG5cbi5mYS1zaGFyZS1hbHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZTBcIjsgfVxuXG4uZmEtc2hhcmUtYWx0LXNxdWFyZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFlMVwiOyB9XG5cbi5mYS1zaGFyZS1zcXVhcmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNGRcIjsgfVxuXG4uZmEtc2hla2VsLXNpZ246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMGJcIjsgfVxuXG4uZmEtc2hpZWxkLWFsdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNlZFwiOyB9XG5cbi5mYS1zaGlwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjFhXCI7IH1cblxuLmZhLXNoaXBwaW5nLWZhc3Q6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0OGJcIjsgfVxuXG4uZmEtc2hpcnRzaW5idWxrOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjE0XCI7IH1cblxuLmZhLXNob2UtcHJpbnRzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNTRiXCI7IH1cblxuLmZhLXNob3BwaW5nLWJhZzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI5MFwiOyB9XG5cbi5mYS1zaG9wcGluZy1iYXNrZXQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyOTFcIjsgfVxuXG4uZmEtc2hvcHBpbmctY2FydDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA3YVwiOyB9XG5cbi5mYS1zaG9wd2FyZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjViNVwiOyB9XG5cbi5mYS1zaG93ZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyY2NcIjsgfVxuXG4uZmEtc2h1dHRsZS12YW46YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY1YjZcIjsgfVxuXG4uZmEtc2lnbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjRkOVwiOyB9XG5cbi5mYS1zaWduLWluLWFsdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJmNlwiOyB9XG5cbi5mYS1zaWduLWxhbmd1YWdlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmE3XCI7IH1cblxuLmZhLXNpZ24tb3V0LWFsdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJmNVwiOyB9XG5cbi5mYS1zaWduYWw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMTJcIjsgfVxuXG4uZmEtc2lnbmF0dXJlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNWI3XCI7IH1cblxuLmZhLXNpbXBseWJ1aWx0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjE1XCI7IH1cblxuLmZhLXNpc3RyaXg6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzZWVcIjsgfVxuXG4uZmEtc2l0ZW1hcDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBlOFwiOyB9XG5cbi5mYS1zaXRoOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNTEyXCI7IH1cblxuLmZhLXNrdWxsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNTRjXCI7IH1cblxuLmZhLXNreWF0bGFzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjE2XCI7IH1cblxuLmZhLXNreXBlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTdlXCI7IH1cblxuLmZhLXNsYWNrOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTk4XCI7IH1cblxuLmZhLXNsYWNrLWhhc2g6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzZWZcIjsgfVxuXG4uZmEtc2xpZGVycy1oOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWRlXCI7IH1cblxuLmZhLXNsaWRlc2hhcmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZTdcIjsgfVxuXG4uZmEtc21pbGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMThcIjsgfVxuXG4uZmEtc21pbGUtYmVhbTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjViOFwiOyB9XG5cbi5mYS1zbWlsZS13aW5rOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNGRhXCI7IH1cblxuLmZhLXNtb2tpbmc6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0OGRcIjsgfVxuXG4uZmEtc21va2luZy1iYW46YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY1NGRcIjsgfVxuXG4uZmEtc25hcGNoYXQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyYWJcIjsgfVxuXG4uZmEtc25hcGNoYXQtZ2hvc3Q6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyYWNcIjsgfVxuXG4uZmEtc25hcGNoYXQtc3F1YXJlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmFkXCI7IH1cblxuLmZhLXNub3dmbGFrZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJkY1wiOyB9XG5cbi5mYS1zb2xhci1wYW5lbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjViYVwiOyB9XG5cbi5mYS1zb3J0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGRjXCI7IH1cblxuLmZhLXNvcnQtYWxwaGEtZG93bjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE1ZFwiOyB9XG5cbi5mYS1zb3J0LWFscGhhLXVwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTVlXCI7IH1cblxuLmZhLXNvcnQtYW1vdW50LWRvd246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNjBcIjsgfVxuXG4uZmEtc29ydC1hbW91bnQtdXA6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNjFcIjsgfVxuXG4uZmEtc29ydC1kb3duOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGRkXCI7IH1cblxuLmZhLXNvcnQtbnVtZXJpYy1kb3duOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTYyXCI7IH1cblxuLmZhLXNvcnQtbnVtZXJpYy11cDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE2M1wiOyB9XG5cbi5mYS1zb3J0LXVwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGRlXCI7IH1cblxuLmZhLXNvdW5kY2xvdWQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxYmVcIjsgfVxuXG4uZmEtc3BhOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNWJiXCI7IH1cblxuLmZhLXNwYWNlLXNodXR0bGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxOTdcIjsgfVxuXG4uZmEtc3BlYWthcDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNmM1wiOyB9XG5cbi5mYS1zcGlubmVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTEwXCI7IH1cblxuLmZhLXNwbG90Y2g6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY1YmNcIjsgfVxuXG4uZmEtc3BvdGlmeTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFiY1wiOyB9XG5cbi5mYS1zcHJheS1jYW46YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY1YmRcIjsgfVxuXG4uZmEtc3F1YXJlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGM4XCI7IH1cblxuLmZhLXNxdWFyZS1mdWxsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDVjXCI7IH1cblxuLmZhLXNxdWFyZXNwYWNlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNWJlXCI7IH1cblxuLmZhLXN0YWNrLWV4Y2hhbmdlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMThkXCI7IH1cblxuLmZhLXN0YWNrLW92ZXJmbG93OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTZjXCI7IH1cblxuLmZhLXN0YW1wOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNWJmXCI7IH1cblxuLmZhLXN0YXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMDVcIjsgfVxuXG4uZmEtc3Rhci1oYWxmOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDg5XCI7IH1cblxuLmZhLXN0YXItaGFsZi1hbHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY1YzBcIjsgfVxuXG4uZmEtc3RheWxpbmtlZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNmNVwiOyB9XG5cbi5mYS1zdGVhbTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFiNlwiOyB9XG5cbi5mYS1zdGVhbS1zcXVhcmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxYjdcIjsgfVxuXG4uZmEtc3RlYW0tc3ltYm9sOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2Y2XCI7IH1cblxuLmZhLXN0ZXAtYmFja3dhcmQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNDhcIjsgfVxuXG4uZmEtc3RlcC1mb3J3YXJkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDUxXCI7IH1cblxuLmZhLXN0ZXRob3Njb3BlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGYxXCI7IH1cblxuLmZhLXN0aWNrZXItbXVsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNmN1wiOyB9XG5cbi5mYS1zdGlja3ktbm90ZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI0OVwiOyB9XG5cbi5mYS1zdG9wOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDRkXCI7IH1cblxuLmZhLXN0b3AtY2lyY2xlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjhkXCI7IH1cblxuLmZhLXN0b3B3YXRjaDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJmMlwiOyB9XG5cbi5mYS1zdG9yZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjU0ZVwiOyB9XG5cbi5mYS1zdG9yZS1hbHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY1NGZcIjsgfVxuXG4uZmEtc3RyYXZhOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDI4XCI7IH1cblxuLmZhLXN0cmVhbTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjU1MFwiOyB9XG5cbi5mYS1zdHJlZXQtdmlldzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIxZFwiOyB9XG5cbi5mYS1zdHJpa2V0aHJvdWdoOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGNjXCI7IH1cblxuLmZhLXN0cmlwZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQyOVwiOyB9XG5cbi5mYS1zdHJpcGUtczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQyYVwiOyB9XG5cbi5mYS1zdHJvb3B3YWZlbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjU1MVwiOyB9XG5cbi5mYS1zdHVkaW92aW5hcmk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzZjhcIjsgfVxuXG4uZmEtc3R1bWJsZXVwb246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxYTRcIjsgfVxuXG4uZmEtc3R1bWJsZXVwb24tY2lyY2xlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWEzXCI7IH1cblxuLmZhLXN1YnNjcmlwdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEyY1wiOyB9XG5cbi5mYS1zdWJ3YXk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMzlcIjsgfVxuXG4uZmEtc3VpdGNhc2U6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwZjJcIjsgfVxuXG4uZmEtc3VpdGNhc2Utcm9sbGluZzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjVjMVwiOyB9XG5cbi5mYS1zdW46YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxODVcIjsgfVxuXG4uZmEtc3VwZXJwb3dlcnM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyZGRcIjsgfVxuXG4uZmEtc3VwZXJzY3JpcHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMmJcIjsgfVxuXG4uZmEtc3VwcGxlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2Y5XCI7IH1cblxuLmZhLXN1cnByaXNlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNWMyXCI7IH1cblxuLmZhLXN3YXRjaGJvb2s6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY1YzNcIjsgfVxuXG4uZmEtc3dpbW1lcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjVjNFwiOyB9XG5cbi5mYS1zd2ltbWluZy1wb29sOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNWM1XCI7IH1cblxuLmZhLXN5bmM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMjFcIjsgfVxuXG4uZmEtc3luYy1hbHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyZjFcIjsgfVxuXG4uZmEtc3lyaW5nZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQ4ZVwiOyB9XG5cbi5mYS10YWJsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBjZVwiOyB9XG5cbi5mYS10YWJsZS10ZW5uaXM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0NWRcIjsgfVxuXG4uZmEtdGFibGV0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTBhXCI7IH1cblxuLmZhLXRhYmxldC1hbHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzZmFcIjsgfVxuXG4uZmEtdGFibGV0czpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQ5MFwiOyB9XG5cbi5mYS10YWNob21ldGVyLWFsdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNmZFwiOyB9XG5cbi5mYS10YWc6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMmJcIjsgfVxuXG4uZmEtdGFnczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAyY1wiOyB9XG5cbi5mYS10YXBlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNGRiXCI7IH1cblxuLmZhLXRhc2tzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGFlXCI7IH1cblxuLmZhLXRheGk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxYmFcIjsgfVxuXG4uZmEtdGVhbXNwZWFrOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNGY5XCI7IH1cblxuLmZhLXRlbGVncmFtOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmM2XCI7IH1cblxuLmZhLXRlbGVncmFtLXBsYW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2ZlXCI7IH1cblxuLmZhLXRlbmNlbnQtd2VpYm86YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZDVcIjsgfVxuXG4uZmEtdGVybWluYWw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMjBcIjsgfVxuXG4uZmEtdGV4dC1oZWlnaHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMzRcIjsgfVxuXG4uZmEtdGV4dC13aWR0aDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAzNVwiOyB9XG5cbi5mYS10aDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAwYVwiOyB9XG5cbi5mYS10aC1sYXJnZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAwOVwiOyB9XG5cbi5mYS10aC1saXN0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDBiXCI7IH1cblxuLmZhLXRoZW1lY286YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY1YzZcIjsgfVxuXG4uZmEtdGhlbWVpc2xlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmIyXCI7IH1cblxuLmZhLXRoZXJtb21ldGVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDkxXCI7IH1cblxuLmZhLXRoZXJtb21ldGVyLWVtcHR5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmNiXCI7IH1cblxuLmZhLXRoZXJtb21ldGVyLWZ1bGw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyYzdcIjsgfVxuXG4uZmEtdGhlcm1vbWV0ZXItaGFsZjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJjOVwiOyB9XG5cbi5mYS10aGVybW9tZXRlci1xdWFydGVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmNhXCI7IH1cblxuLmZhLXRoZXJtb21ldGVyLXRocmVlLXF1YXJ0ZXJzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmM4XCI7IH1cblxuLmZhLXRodW1icy1kb3duOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTY1XCI7IH1cblxuLmZhLXRodW1icy11cDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE2NFwiOyB9XG5cbi5mYS10aHVtYnRhY2s6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwOGRcIjsgfVxuXG4uZmEtdGlja2V0LWFsdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNmZlwiOyB9XG5cbi5mYS10aW1lczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAwZFwiOyB9XG5cbi5mYS10aW1lcy1jaXJjbGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNTdcIjsgfVxuXG4uZmEtdGludDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA0M1wiOyB9XG5cbi5mYS10aW50LXNsYXNoOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNWM3XCI7IH1cblxuLmZhLXRpcmVkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNWM4XCI7IH1cblxuLmZhLXRvZ2dsZS1vZmY6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMDRcIjsgfVxuXG4uZmEtdG9nZ2xlLW9uOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjA1XCI7IH1cblxuLmZhLXRvb2xib3g6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY1NTJcIjsgfVxuXG4uZmEtdG9vdGg6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY1YzlcIjsgfVxuXG4uZmEtdHJhZGUtZmVkZXJhdGlvbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjUxM1wiOyB9XG5cbi5mYS10cmFkZW1hcms6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNWNcIjsgfVxuXG4uZmEtdHJhaW46YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMzhcIjsgfVxuXG4uZmEtdHJhbnNnZW5kZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMjRcIjsgfVxuXG4uZmEtdHJhbnNnZW5kZXItYWx0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjI1XCI7IH1cblxuLmZhLXRyYXNoOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWY4XCI7IH1cblxuLmZhLXRyYXNoLWFsdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJlZFwiOyB9XG5cbi5mYS10cmVlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWJiXCI7IH1cblxuLmZhLXRyZWxsbzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE4MVwiOyB9XG5cbi5mYS10cmlwYWR2aXNvcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI2MlwiOyB9XG5cbi5mYS10cm9waHk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwOTFcIjsgfVxuXG4uZmEtdHJ1Y2s6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwZDFcIjsgfVxuXG4uZmEtdHJ1Y2stbG9hZGluZzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjRkZVwiOyB9XG5cbi5mYS10cnVjay1tb3Zpbmc6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0ZGZcIjsgfVxuXG4uZmEtdHNoaXJ0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNTUzXCI7IH1cblxuLmZhLXR0eTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFlNFwiOyB9XG5cbi5mYS10dW1ibHI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNzNcIjsgfVxuXG4uZmEtdHVtYmxyLXNxdWFyZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE3NFwiOyB9XG5cbi5mYS10djpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI2Y1wiOyB9XG5cbi5mYS10d2l0Y2g6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZThcIjsgfVxuXG4uZmEtdHdpdHRlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA5OVwiOyB9XG5cbi5mYS10d2l0dGVyLXNxdWFyZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA4MVwiOyB9XG5cbi5mYS10eXBvMzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQyYlwiOyB9XG5cbi5mYS11YmVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDAyXCI7IH1cblxuLmZhLXVpa2l0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDAzXCI7IH1cblxuLmZhLXVtYnJlbGxhOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGU5XCI7IH1cblxuLmZhLXVtYnJlbGxhLWJlYWNoOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNWNhXCI7IH1cblxuLmZhLXVuZGVybGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBjZFwiOyB9XG5cbi5mYS11bmRvOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGUyXCI7IH1cblxuLmZhLXVuZG8tYWx0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmVhXCI7IH1cblxuLmZhLXVuaXJlZ2lzdHJ5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDA0XCI7IH1cblxuLmZhLXVuaXZlcnNhbC1hY2Nlc3M6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyOWFcIjsgfVxuXG4uZmEtdW5pdmVyc2l0eTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE5Y1wiOyB9XG5cbi5mYS11bmxpbms6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMjdcIjsgfVxuXG4uZmEtdW5sb2NrOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDljXCI7IH1cblxuLmZhLXVubG9jay1hbHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxM2VcIjsgfVxuXG4uZmEtdW50YXBwZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQwNVwiOyB9XG5cbi5mYS11cGxvYWQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwOTNcIjsgfVxuXG4uZmEtdXNiOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjg3XCI7IH1cblxuLmZhLXVzZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMDdcIjsgfVxuXG4uZmEtdXNlci1hbHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0MDZcIjsgfVxuXG4uZmEtdXNlci1hbHQtc2xhc2g6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0ZmFcIjsgfVxuXG4uZmEtdXNlci1hc3Ryb25hdXQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0ZmJcIjsgfVxuXG4uZmEtdXNlci1jaGVjazpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjRmY1wiOyB9XG5cbi5mYS11c2VyLWNpcmNsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJiZFwiOyB9XG5cbi5mYS11c2VyLWNsb2NrOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNGZkXCI7IH1cblxuLmZhLXVzZXItY29nOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNGZlXCI7IH1cblxuLmZhLXVzZXItZWRpdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjRmZlwiOyB9XG5cbi5mYS11c2VyLWZyaWVuZHM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY1MDBcIjsgfVxuXG4uZmEtdXNlci1ncmFkdWF0ZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjUwMVwiOyB9XG5cbi5mYS11c2VyLWxvY2s6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY1MDJcIjsgfVxuXG4uZmEtdXNlci1tZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBmMFwiOyB9XG5cbi5mYS11c2VyLW1pbnVzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNTAzXCI7IH1cblxuLmZhLXVzZXItbmluamE6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY1MDRcIjsgfVxuXG4uZmEtdXNlci1wbHVzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjM0XCI7IH1cblxuLmZhLXVzZXItc2VjcmV0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjFiXCI7IH1cblxuLmZhLXVzZXItc2hpZWxkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNTA1XCI7IH1cblxuLmZhLXVzZXItc2xhc2g6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY1MDZcIjsgfVxuXG4uZmEtdXNlci10YWc6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY1MDdcIjsgfVxuXG4uZmEtdXNlci10aWU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY1MDhcIjsgfVxuXG4uZmEtdXNlci10aW1lczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIzNVwiOyB9XG5cbi5mYS11c2VyczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBjMFwiOyB9XG5cbi5mYS11c2Vycy1jb2c6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY1MDlcIjsgfVxuXG4uZmEtdXNzdW5uYWg6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0MDdcIjsgfVxuXG4uZmEtdXRlbnNpbC1zcG9vbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJlNVwiOyB9XG5cbi5mYS11dGVuc2lsczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJlN1wiOyB9XG5cbi5mYS12YWFkaW46YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0MDhcIjsgfVxuXG4uZmEtdmVjdG9yLXNxdWFyZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjVjYlwiOyB9XG5cbi5mYS12ZW51czpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIyMVwiOyB9XG5cbi5mYS12ZW51cy1kb3VibGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMjZcIjsgfVxuXG4uZmEtdmVudXMtbWFyczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIyOFwiOyB9XG5cbi5mYS12aWFjb2luOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjM3XCI7IH1cblxuLmZhLXZpYWRlbzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJhOVwiOyB9XG5cbi5mYS12aWFkZW8tc3F1YXJlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmFhXCI7IH1cblxuLmZhLXZpYWw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0OTJcIjsgfVxuXG4uZmEtdmlhbHM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0OTNcIjsgfVxuXG4uZmEtdmliZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0MDlcIjsgfVxuXG4uZmEtdmlkZW86YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwM2RcIjsgfVxuXG4uZmEtdmlkZW8tc2xhc2g6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0ZTJcIjsgfVxuXG4uZmEtdmltZW86YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0MGFcIjsgfVxuXG4uZmEtdmltZW8tc3F1YXJlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTk0XCI7IH1cblxuLmZhLXZpbWVvLXY6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyN2RcIjsgfVxuXG4uZmEtdmluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFjYVwiOyB9XG5cbi5mYS12azpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE4OVwiOyB9XG5cbi5mYS12bnY6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0MGJcIjsgfVxuXG4uZmEtdm9sbGV5YmFsbC1iYWxsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDVmXCI7IH1cblxuLmZhLXZvbHVtZS1kb3duOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDI3XCI7IH1cblxuLmZhLXZvbHVtZS1vZmY6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMjZcIjsgfVxuXG4uZmEtdm9sdW1lLXVwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDI4XCI7IH1cblxuLmZhLXZ1ZWpzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDFmXCI7IH1cblxuLmZhLXdhbGtpbmc6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY1NTRcIjsgfVxuXG4uZmEtd2FsbGV0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNTU1XCI7IH1cblxuLmZhLXdhcmVob3VzZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQ5NFwiOyB9XG5cbi5mYS13ZWVibHk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY1Y2NcIjsgfVxuXG4uZmEtd2VpYm86YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxOGFcIjsgfVxuXG4uZmEtd2VpZ2h0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDk2XCI7IH1cblxuLmZhLXdlaWdodC1oYW5naW5nOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNWNkXCI7IH1cblxuLmZhLXdlaXhpbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFkN1wiOyB9XG5cbi5mYS13aGF0c2FwcDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIzMlwiOyB9XG5cbi5mYS13aGF0c2FwcC1zcXVhcmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0MGNcIjsgfVxuXG4uZmEtd2hlZWxjaGFpcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE5M1wiOyB9XG5cbi5mYS13aG1jczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQwZFwiOyB9XG5cbi5mYS13aWZpOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWViXCI7IH1cblxuLmZhLXdpa2lwZWRpYS13OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjY2XCI7IH1cblxuLmZhLXdpbmRvdy1jbG9zZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQxMFwiOyB9XG5cbi5mYS13aW5kb3ctbWF4aW1pemU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyZDBcIjsgfVxuXG4uZmEtd2luZG93LW1pbmltaXplOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmQxXCI7IH1cblxuLmZhLXdpbmRvdy1yZXN0b3JlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmQyXCI7IH1cblxuLmZhLXdpbmRvd3M6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxN2FcIjsgfVxuXG4uZmEtd2luZS1nbGFzczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjRlM1wiOyB9XG5cbi5mYS13aW5lLWdsYXNzLWFsdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjVjZVwiOyB9XG5cbi5mYS13aXg6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY1Y2ZcIjsgfVxuXG4uZmEtd29sZi1wYWNrLWJhdHRhbGlvbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjUxNFwiOyB9XG5cbi5mYS13b24tc2lnbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE1OVwiOyB9XG5cbi5mYS13b3JkcHJlc3M6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxOWFcIjsgfVxuXG4uZmEtd29yZHByZXNzLXNpbXBsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQxMVwiOyB9XG5cbi5mYS13cGJlZ2lubmVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjk3XCI7IH1cblxuLmZhLXdwZXhwbG9yZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyZGVcIjsgfVxuXG4uZmEtd3Bmb3JtczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI5OFwiOyB9XG5cbi5mYS13cmVuY2g6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwYWRcIjsgfVxuXG4uZmEteC1yYXk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0OTdcIjsgfVxuXG4uZmEteGJveDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQxMlwiOyB9XG5cbi5mYS14aW5nOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTY4XCI7IH1cblxuLmZhLXhpbmctc3F1YXJlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTY5XCI7IH1cblxuLmZhLXktY29tYmluYXRvcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIzYlwiOyB9XG5cbi5mYS15YWhvbzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE5ZVwiOyB9XG5cbi5mYS15YW5kZXg6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0MTNcIjsgfVxuXG4uZmEteWFuZGV4LWludGVybmF0aW9uYWw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0MTRcIjsgfVxuXG4uZmEteWVscDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFlOVwiOyB9XG5cbi5mYS15ZW4tc2lnbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE1N1wiOyB9XG5cbi5mYS15b2FzdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJiMVwiOyB9XG5cbi5mYS15b3V0dWJlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTY3XCI7IH1cblxuLmZhLXlvdXR1YmUtc3F1YXJlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDMxXCI7IH1cblxuLnNyLW9ubHkge1xuICBib3JkZXI6IDA7XG4gIGNsaXA6IHJlY3QoMCwgMCwgMCwgMCk7XG4gIGhlaWdodDogMXB4O1xuICBtYXJnaW46IC0xcHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBhZGRpbmc6IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDFweDsgfVxuXG4uc3Itb25seS1mb2N1c2FibGU6YWN0aXZlLCAuc3Itb25seS1mb2N1c2FibGU6Zm9jdXMge1xuICBjbGlwOiBhdXRvO1xuICBoZWlnaHQ6IGF1dG87XG4gIG1hcmdpbjogMDtcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG4gIHBvc2l0aW9uOiBzdGF0aWM7XG4gIHdpZHRoOiBhdXRvOyB9XG5cbi8qIVxuICogRm9udCBBd2Vzb21lIEZyZWUgNS4xLjEgYnkgQGZvbnRhd2Vzb21lIC0gaHR0cHM6Ly9mb250YXdlc29tZS5jb21cbiAqIExpY2Vuc2UgLSBodHRwczovL2ZvbnRhd2Vzb21lLmNvbS9saWNlbnNlIChJY29uczogQ0MgQlkgNC4wLCBGb250czogU0lMIE9GTCAxLjEsIENvZGU6IE1JVCBMaWNlbnNlKVxuICovXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdGb250IEF3ZXNvbWUgNSBGcmVlJztcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogNDAwO1xuICBzcmM6IHVybChcIn5AZm9ydGF3ZXNvbWUvZm9udGF3ZXNvbWUtZnJlZS93ZWJmb250cy8vZmEtcmVndWxhci00MDAuZW90XCIpO1xuICBzcmM6IHVybChcIn5AZm9ydGF3ZXNvbWUvZm9udGF3ZXNvbWUtZnJlZS93ZWJmb250cy8vZmEtcmVndWxhci00MDAuZW90PyNpZWZpeFwiKSBmb3JtYXQoXCJlbWJlZGRlZC1vcGVudHlwZVwiKSwgdXJsKFwifkBmb3J0YXdlc29tZS9mb250YXdlc29tZS1mcmVlL3dlYmZvbnRzLy9mYS1yZWd1bGFyLTQwMC53b2ZmMlwiKSBmb3JtYXQoXCJ3b2ZmMlwiKSwgdXJsKFwifkBmb3J0YXdlc29tZS9mb250YXdlc29tZS1mcmVlL3dlYmZvbnRzLy9mYS1yZWd1bGFyLTQwMC53b2ZmXCIpIGZvcm1hdChcIndvZmZcIiksIHVybChcIn5AZm9ydGF3ZXNvbWUvZm9udGF3ZXNvbWUtZnJlZS93ZWJmb250cy8vZmEtcmVndWxhci00MDAudHRmXCIpIGZvcm1hdChcInRydWV0eXBlXCIpLCB1cmwoXCJ+QGZvcnRhd2Vzb21lL2ZvbnRhd2Vzb21lLWZyZWUvd2ViZm9udHMvL2ZhLXJlZ3VsYXItNDAwLnN2ZyNmb250YXdlc29tZVwiKSBmb3JtYXQoXCJzdmdcIik7IH1cblxuLmZhciB7XG4gIGZvbnQtZmFtaWx5OiAnRm9udCBBd2Vzb21lIDUgRnJlZSc7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7IH1cblxuLyohXG4gKiBGb250IEF3ZXNvbWUgRnJlZSA1LjEuMSBieSBAZm9udGF3ZXNvbWUgLSBodHRwczovL2ZvbnRhd2Vzb21lLmNvbVxuICogTGljZW5zZSAtIGh0dHBzOi8vZm9udGF3ZXNvbWUuY29tL2xpY2Vuc2UgKEljb25zOiBDQyBCWSA0LjAsIEZvbnRzOiBTSUwgT0ZMIDEuMSwgQ29kZTogTUlUIExpY2Vuc2UpXG4gKi9cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ0ZvbnQgQXdlc29tZSA1IEZyZWUnO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiA5MDA7XG4gIHNyYzogdXJsKFwifkBmb3J0YXdlc29tZS9mb250YXdlc29tZS1mcmVlL3dlYmZvbnRzLy9mYS1zb2xpZC05MDAuZW90XCIpO1xuICBzcmM6IHVybChcIn5AZm9ydGF3ZXNvbWUvZm9udGF3ZXNvbWUtZnJlZS93ZWJmb250cy8vZmEtc29saWQtOTAwLmVvdD8jaWVmaXhcIikgZm9ybWF0KFwiZW1iZWRkZWQtb3BlbnR5cGVcIiksIHVybChcIn5AZm9ydGF3ZXNvbWUvZm9udGF3ZXNvbWUtZnJlZS93ZWJmb250cy8vZmEtc29saWQtOTAwLndvZmYyXCIpIGZvcm1hdChcIndvZmYyXCIpLCB1cmwoXCJ+QGZvcnRhd2Vzb21lL2ZvbnRhd2Vzb21lLWZyZWUvd2ViZm9udHMvL2ZhLXNvbGlkLTkwMC53b2ZmXCIpIGZvcm1hdChcIndvZmZcIiksIHVybChcIn5AZm9ydGF3ZXNvbWUvZm9udGF3ZXNvbWUtZnJlZS93ZWJmb250cy8vZmEtc29saWQtOTAwLnR0ZlwiKSBmb3JtYXQoXCJ0cnVldHlwZVwiKSwgdXJsKFwifkBmb3J0YXdlc29tZS9mb250YXdlc29tZS1mcmVlL3dlYmZvbnRzLy9mYS1zb2xpZC05MDAuc3ZnI2ZvbnRhd2Vzb21lXCIpIGZvcm1hdChcInN2Z1wiKTsgfVxuXG4uZmEsXG4uZmFzIHtcbiAgZm9udC1mYW1pbHk6ICdGb250IEF3ZXNvbWUgNSBGcmVlJztcbiAgZm9udC13ZWlnaHQ6IDkwMDsgfVxuXG4vKiFcbiAqIEZvbnQgQXdlc29tZSBGcmVlIDUuMS4xIGJ5IEBmb250YXdlc29tZSAtIGh0dHBzOi8vZm9udGF3ZXNvbWUuY29tXG4gKiBMaWNlbnNlIC0gaHR0cHM6Ly9mb250YXdlc29tZS5jb20vbGljZW5zZSAoSWNvbnM6IENDIEJZIDQuMCwgRm9udHM6IFNJTCBPRkwgMS4xLCBDb2RlOiBNSVQgTGljZW5zZSlcbiAqL1xuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnRm9udCBBd2Vzb21lIDUgQnJhbmRzJztcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBzcmM6IHVybChcIn5AZm9ydGF3ZXNvbWUvZm9udGF3ZXNvbWUtZnJlZS93ZWJmb250cy8vZmEtYnJhbmRzLTQwMC5lb3RcIik7XG4gIHNyYzogdXJsKFwifkBmb3J0YXdlc29tZS9mb250YXdlc29tZS1mcmVlL3dlYmZvbnRzLy9mYS1icmFuZHMtNDAwLmVvdD8jaWVmaXhcIikgZm9ybWF0KFwiZW1iZWRkZWQtb3BlbnR5cGVcIiksIHVybChcIn5AZm9ydGF3ZXNvbWUvZm9udGF3ZXNvbWUtZnJlZS93ZWJmb250cy8vZmEtYnJhbmRzLTQwMC53b2ZmMlwiKSBmb3JtYXQoXCJ3b2ZmMlwiKSwgdXJsKFwifkBmb3J0YXdlc29tZS9mb250YXdlc29tZS1mcmVlL3dlYmZvbnRzLy9mYS1icmFuZHMtNDAwLndvZmZcIikgZm9ybWF0KFwid29mZlwiKSwgdXJsKFwifkBmb3J0YXdlc29tZS9mb250YXdlc29tZS1mcmVlL3dlYmZvbnRzLy9mYS1icmFuZHMtNDAwLnR0ZlwiKSBmb3JtYXQoXCJ0cnVldHlwZVwiKSwgdXJsKFwifkBmb3J0YXdlc29tZS9mb250YXdlc29tZS1mcmVlL3dlYmZvbnRzLy9mYS1icmFuZHMtNDAwLnN2ZyNmb250YXdlc29tZVwiKSBmb3JtYXQoXCJzdmdcIik7IH1cblxuLmZhYiB7XG4gIGZvbnQtZmFtaWx5OiAnRm9udCBBd2Vzb21lIDUgQnJhbmRzJzsgfVxuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vdmVuZG9yL2tldmlucGFwc3QvYWRtaW5sdGUtYnVuZGxlL1Jlc291cmNlcy9hc3NldHMvYWRtaW4tbHRlLnNjc3MiLCIvKiFcbiAqIEJvb3RzdHJhcCB2My4zLjcgKGh0dHA6Ly9nZXRib290c3RyYXAuY29tKVxuICogQ29weXJpZ2h0IDIwMTEtMjAxNiBUd2l0dGVyLCBJbmMuXG4gKiBMaWNlbnNlZCB1bmRlciBNSVQgKGh0dHBzOi8vZ2l0aHViLmNvbS90d2JzL2Jvb3RzdHJhcC9ibG9iL21hc3Rlci9MSUNFTlNFKVxuICovXG5cbi8vIENvcmUgdmFyaWFibGVzIGFuZCBtaXhpbnNcbkBpbXBvcnQgXCJib290c3RyYXAvdmFyaWFibGVzXCI7XG5AaW1wb3J0IFwiYm9vdHN0cmFwL21peGluc1wiO1xuXG4vLyBSZXNldCBhbmQgZGVwZW5kZW5jaWVzXG5AaW1wb3J0IFwiYm9vdHN0cmFwL25vcm1hbGl6ZVwiO1xuQGltcG9ydCBcImJvb3RzdHJhcC9wcmludFwiO1xuQGltcG9ydCBcImJvb3RzdHJhcC9nbHlwaGljb25zXCI7XG5cbi8vIENvcmUgQ1NTXG5AaW1wb3J0IFwiYm9vdHN0cmFwL3NjYWZmb2xkaW5nXCI7XG5AaW1wb3J0IFwiYm9vdHN0cmFwL3R5cGVcIjtcbkBpbXBvcnQgXCJib290c3RyYXAvY29kZVwiO1xuQGltcG9ydCBcImJvb3RzdHJhcC9ncmlkXCI7XG5AaW1wb3J0IFwiYm9vdHN0cmFwL3RhYmxlc1wiO1xuQGltcG9ydCBcImJvb3RzdHJhcC9mb3Jtc1wiO1xuQGltcG9ydCBcImJvb3RzdHJhcC9idXR0b25zXCI7XG5cbi8vIENvbXBvbmVudHNcbkBpbXBvcnQgXCJib290c3RyYXAvY29tcG9uZW50LWFuaW1hdGlvbnNcIjtcbkBpbXBvcnQgXCJib290c3RyYXAvZHJvcGRvd25zXCI7XG5AaW1wb3J0IFwiYm9vdHN0cmFwL2J1dHRvbi1ncm91cHNcIjtcbkBpbXBvcnQgXCJib290c3RyYXAvaW5wdXQtZ3JvdXBzXCI7XG5AaW1wb3J0IFwiYm9vdHN0cmFwL25hdnNcIjtcbkBpbXBvcnQgXCJib290c3RyYXAvbmF2YmFyXCI7XG5AaW1wb3J0IFwiYm9vdHN0cmFwL2JyZWFkY3J1bWJzXCI7XG5AaW1wb3J0IFwiYm9vdHN0cmFwL3BhZ2luYXRpb25cIjtcbkBpbXBvcnQgXCJib290c3RyYXAvcGFnZXJcIjtcbkBpbXBvcnQgXCJib290c3RyYXAvbGFiZWxzXCI7XG5AaW1wb3J0IFwiYm9vdHN0cmFwL2JhZGdlc1wiO1xuQGltcG9ydCBcImJvb3RzdHJhcC9qdW1ib3Ryb25cIjtcbkBpbXBvcnQgXCJib290c3RyYXAvdGh1bWJuYWlsc1wiO1xuQGltcG9ydCBcImJvb3RzdHJhcC9hbGVydHNcIjtcbkBpbXBvcnQgXCJib290c3RyYXAvcHJvZ3Jlc3MtYmFyc1wiO1xuQGltcG9ydCBcImJvb3RzdHJhcC9tZWRpYVwiO1xuQGltcG9ydCBcImJvb3RzdHJhcC9saXN0LWdyb3VwXCI7XG5AaW1wb3J0IFwiYm9vdHN0cmFwL3BhbmVsc1wiO1xuQGltcG9ydCBcImJvb3RzdHJhcC9yZXNwb25zaXZlLWVtYmVkXCI7XG5AaW1wb3J0IFwiYm9vdHN0cmFwL3dlbGxzXCI7XG5AaW1wb3J0IFwiYm9vdHN0cmFwL2Nsb3NlXCI7XG5cbi8vIENvbXBvbmVudHMgdy8gSmF2YVNjcmlwdFxuQGltcG9ydCBcImJvb3RzdHJhcC9tb2RhbHNcIjtcbkBpbXBvcnQgXCJib290c3RyYXAvdG9vbHRpcFwiO1xuQGltcG9ydCBcImJvb3RzdHJhcC9wb3BvdmVyc1wiO1xuQGltcG9ydCBcImJvb3RzdHJhcC9jYXJvdXNlbFwiO1xuXG4vLyBVdGlsaXR5IGNsYXNzZXNcbkBpbXBvcnQgXCJib290c3RyYXAvdXRpbGl0aWVzXCI7XG5AaW1wb3J0IFwiYm9vdHN0cmFwL3Jlc3BvbnNpdmUtdXRpbGl0aWVzXCI7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9ub2RlX21vZHVsZXMvYm9vdHN0cmFwLXNhc3MvYXNzZXRzL3N0eWxlc2hlZXRzL19ib290c3RyYXAuc2NzcyIsIi8qISBub3JtYWxpemUuY3NzIHYzLjAuMyB8IE1JVCBMaWNlbnNlIHwgZ2l0aHViLmNvbS9uZWNvbGFzL25vcm1hbGl6ZS5jc3MgKi9cblxuLy9cbi8vIDEuIFNldCBkZWZhdWx0IGZvbnQgZmFtaWx5IHRvIHNhbnMtc2VyaWYuXG4vLyAyLiBQcmV2ZW50IGlPUyBhbmQgSUUgdGV4dCBzaXplIGFkanVzdCBhZnRlciBkZXZpY2Ugb3JpZW50YXRpb24gY2hhbmdlLFxuLy8gICAgd2l0aG91dCBkaXNhYmxpbmcgdXNlciB6b29tLlxuLy9cblxuaHRtbCB7XG4gIGZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmOyAvLyAxXG4gIC1tcy10ZXh0LXNpemUtYWRqdXN0OiAxMDAlOyAvLyAyXG4gIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTsgLy8gMlxufVxuXG4vL1xuLy8gUmVtb3ZlIGRlZmF1bHQgbWFyZ2luLlxuLy9cblxuYm9keSB7XG4gIG1hcmdpbjogMDtcbn1cblxuLy8gSFRNTDUgZGlzcGxheSBkZWZpbml0aW9uc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLy9cbi8vIENvcnJlY3QgYGJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGZvciBhbnkgSFRNTDUgZWxlbWVudCBpbiBJRSA4LzkuXG4vLyBDb3JyZWN0IGBibG9ja2AgZGlzcGxheSBub3QgZGVmaW5lZCBmb3IgYGRldGFpbHNgIG9yIGBzdW1tYXJ5YCBpbiBJRSAxMC8xMVxuLy8gYW5kIEZpcmVmb3guXG4vLyBDb3JyZWN0IGBibG9ja2AgZGlzcGxheSBub3QgZGVmaW5lZCBmb3IgYG1haW5gIGluIElFIDExLlxuLy9cblxuYXJ0aWNsZSxcbmFzaWRlLFxuZGV0YWlscyxcbmZpZ2NhcHRpb24sXG5maWd1cmUsXG5mb290ZXIsXG5oZWFkZXIsXG5oZ3JvdXAsXG5tYWluLFxubWVudSxcbm5hdixcbnNlY3Rpb24sXG5zdW1tYXJ5IHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi8vXG4vLyAxLiBDb3JyZWN0IGBpbmxpbmUtYmxvY2tgIGRpc3BsYXkgbm90IGRlZmluZWQgaW4gSUUgOC85LlxuLy8gMi4gTm9ybWFsaXplIHZlcnRpY2FsIGFsaWdubWVudCBvZiBgcHJvZ3Jlc3NgIGluIENocm9tZSwgRmlyZWZveCwgYW5kIE9wZXJhLlxuLy9cblxuYXVkaW8sXG5jYW52YXMsXG5wcm9ncmVzcyxcbnZpZGVvIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrOyAvLyAxXG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTsgLy8gMlxufVxuXG4vL1xuLy8gUHJldmVudCBtb2Rlcm4gYnJvd3NlcnMgZnJvbSBkaXNwbGF5aW5nIGBhdWRpb2Agd2l0aG91dCBjb250cm9scy5cbi8vIFJlbW92ZSBleGNlc3MgaGVpZ2h0IGluIGlPUyA1IGRldmljZXMuXG4vL1xuXG5hdWRpbzpub3QoW2NvbnRyb2xzXSkge1xuICBkaXNwbGF5OiBub25lO1xuICBoZWlnaHQ6IDA7XG59XG5cbi8vXG4vLyBBZGRyZXNzIGBbaGlkZGVuXWAgc3R5bGluZyBub3QgcHJlc2VudCBpbiBJRSA4LzkvMTAuXG4vLyBIaWRlIHRoZSBgdGVtcGxhdGVgIGVsZW1lbnQgaW4gSUUgOC85LzEwLzExLCBTYWZhcmksIGFuZCBGaXJlZm94IDwgMjIuXG4vL1xuXG5baGlkZGVuXSxcbnRlbXBsYXRlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLy8gTGlua3Ncbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8vXG4vLyBSZW1vdmUgdGhlIGdyYXkgYmFja2dyb3VuZCBjb2xvciBmcm9tIGFjdGl2ZSBsaW5rcyBpbiBJRSAxMC5cbi8vXG5cbmEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuLy9cbi8vIEltcHJvdmUgcmVhZGFiaWxpdHkgb2YgZm9jdXNlZCBlbGVtZW50cyB3aGVuIHRoZXkgYXJlIGFsc28gaW4gYW5cbi8vIGFjdGl2ZS9ob3ZlciBzdGF0ZS5cbi8vXG5cbmE6YWN0aXZlLFxuYTpob3ZlciB7XG4gIG91dGxpbmU6IDA7XG59XG5cbi8vIFRleHQtbGV2ZWwgc2VtYW50aWNzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vL1xuLy8gQWRkcmVzcyBzdHlsaW5nIG5vdCBwcmVzZW50IGluIElFIDgvOS8xMC8xMSwgU2FmYXJpLCBhbmQgQ2hyb21lLlxuLy9cblxuYWJiclt0aXRsZV0ge1xuICBib3JkZXItYm90dG9tOiAxcHggZG90dGVkO1xufVxuXG4vL1xuLy8gQWRkcmVzcyBzdHlsZSBzZXQgdG8gYGJvbGRlcmAgaW4gRmlyZWZveCA0KywgU2FmYXJpLCBhbmQgQ2hyb21lLlxuLy9cblxuYixcbnN0cm9uZyB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG4vL1xuLy8gQWRkcmVzcyBzdHlsaW5nIG5vdCBwcmVzZW50IGluIFNhZmFyaSBhbmQgQ2hyb21lLlxuLy9cblxuZGZuIHtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xufVxuXG4vL1xuLy8gQWRkcmVzcyB2YXJpYWJsZSBgaDFgIGZvbnQtc2l6ZSBhbmQgbWFyZ2luIHdpdGhpbiBgc2VjdGlvbmAgYW5kIGBhcnRpY2xlYFxuLy8gY29udGV4dHMgaW4gRmlyZWZveCA0KywgU2FmYXJpLCBhbmQgQ2hyb21lLlxuLy9cblxuaDEge1xuICBmb250LXNpemU6IDJlbTtcbiAgbWFyZ2luOiAwLjY3ZW0gMDtcbn1cblxuLy9cbi8vIEFkZHJlc3Mgc3R5bGluZyBub3QgcHJlc2VudCBpbiBJRSA4LzkuXG4vL1xuXG5tYXJrIHtcbiAgYmFja2dyb3VuZDogI2ZmMDtcbiAgY29sb3I6ICMwMDA7XG59XG5cbi8vXG4vLyBBZGRyZXNzIGluY29uc2lzdGVudCBhbmQgdmFyaWFibGUgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbi8vXG5cbnNtYWxsIHtcbiAgZm9udC1zaXplOiA4MCU7XG59XG5cbi8vXG4vLyBQcmV2ZW50IGBzdWJgIGFuZCBgc3VwYCBhZmZlY3RpbmcgYGxpbmUtaGVpZ2h0YCBpbiBhbGwgYnJvd3NlcnMuXG4vL1xuXG5zdWIsXG5zdXAge1xuICBmb250LXNpemU6IDc1JTtcbiAgbGluZS1oZWlnaHQ6IDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xufVxuXG5zdXAge1xuICB0b3A6IC0wLjVlbTtcbn1cblxuc3ViIHtcbiAgYm90dG9tOiAtMC4yNWVtO1xufVxuXG4vLyBFbWJlZGRlZCBjb250ZW50XG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vL1xuLy8gUmVtb3ZlIGJvcmRlciB3aGVuIGluc2lkZSBgYWAgZWxlbWVudCBpbiBJRSA4LzkvMTAuXG4vL1xuXG5pbWcge1xuICBib3JkZXI6IDA7XG59XG5cbi8vXG4vLyBDb3JyZWN0IG92ZXJmbG93IG5vdCBoaWRkZW4gaW4gSUUgOS8xMC8xMS5cbi8vXG5cbnN2Zzpub3QoOnJvb3QpIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLy8gR3JvdXBpbmcgY29udGVudFxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLy9cbi8vIEFkZHJlc3MgbWFyZ2luIG5vdCBwcmVzZW50IGluIElFIDgvOSBhbmQgU2FmYXJpLlxuLy9cblxuZmlndXJlIHtcbiAgbWFyZ2luOiAxZW0gNDBweDtcbn1cblxuLy9cbi8vIEFkZHJlc3MgZGlmZmVyZW5jZXMgYmV0d2VlbiBGaXJlZm94IGFuZCBvdGhlciBicm93c2Vycy5cbi8vXG5cbmhyIHtcbiAgYm94LXNpemluZzogY29udGVudC1ib3g7XG4gIGhlaWdodDogMDtcbn1cblxuLy9cbi8vIENvbnRhaW4gb3ZlcmZsb3cgaW4gYWxsIGJyb3dzZXJzLlxuLy9cblxucHJlIHtcbiAgb3ZlcmZsb3c6IGF1dG87XG59XG5cbi8vXG4vLyBBZGRyZXNzIG9kZCBgZW1gLXVuaXQgZm9udCBzaXplIHJlbmRlcmluZyBpbiBhbGwgYnJvd3NlcnMuXG4vL1xuXG5jb2RlLFxua2JkLFxucHJlLFxuc2FtcCB7XG4gIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTtcbiAgZm9udC1zaXplOiAxZW07XG59XG5cbi8vIEZvcm1zXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vL1xuLy8gS25vd24gbGltaXRhdGlvbjogYnkgZGVmYXVsdCwgQ2hyb21lIGFuZCBTYWZhcmkgb24gT1MgWCBhbGxvdyB2ZXJ5IGxpbWl0ZWRcbi8vIHN0eWxpbmcgb2YgYHNlbGVjdGAsIHVubGVzcyBhIGBib3JkZXJgIHByb3BlcnR5IGlzIHNldC5cbi8vXG5cbi8vXG4vLyAxLiBDb3JyZWN0IGNvbG9yIG5vdCBiZWluZyBpbmhlcml0ZWQuXG4vLyAgICBLbm93biBpc3N1ZTogYWZmZWN0cyBjb2xvciBvZiBkaXNhYmxlZCBlbGVtZW50cy5cbi8vIDIuIENvcnJlY3QgZm9udCBwcm9wZXJ0aWVzIG5vdCBiZWluZyBpbmhlcml0ZWQuXG4vLyAzLiBBZGRyZXNzIG1hcmdpbnMgc2V0IGRpZmZlcmVudGx5IGluIEZpcmVmb3ggNCssIFNhZmFyaSwgYW5kIENocm9tZS5cbi8vXG5cbmJ1dHRvbixcbmlucHV0LFxub3B0Z3JvdXAsXG5zZWxlY3QsXG50ZXh0YXJlYSB7XG4gIGNvbG9yOiBpbmhlcml0OyAvLyAxXG4gIGZvbnQ6IGluaGVyaXQ7IC8vIDJcbiAgbWFyZ2luOiAwOyAvLyAzXG59XG5cbi8vXG4vLyBBZGRyZXNzIGBvdmVyZmxvd2Agc2V0IHRvIGBoaWRkZW5gIGluIElFIDgvOS8xMC8xMS5cbi8vXG5cbmJ1dHRvbiB7XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xufVxuXG4vL1xuLy8gQWRkcmVzcyBpbmNvbnNpc3RlbnQgYHRleHQtdHJhbnNmb3JtYCBpbmhlcml0YW5jZSBmb3IgYGJ1dHRvbmAgYW5kIGBzZWxlY3RgLlxuLy8gQWxsIG90aGVyIGZvcm0gY29udHJvbCBlbGVtZW50cyBkbyBub3QgaW5oZXJpdCBgdGV4dC10cmFuc2Zvcm1gIHZhbHVlcy5cbi8vIENvcnJlY3QgYGJ1dHRvbmAgc3R5bGUgaW5oZXJpdGFuY2UgaW4gRmlyZWZveCwgSUUgOC85LzEwLzExLCBhbmQgT3BlcmEuXG4vLyBDb3JyZWN0IGBzZWxlY3RgIHN0eWxlIGluaGVyaXRhbmNlIGluIEZpcmVmb3guXG4vL1xuXG5idXR0b24sXG5zZWxlY3Qge1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbn1cblxuLy9cbi8vIDEuIEF2b2lkIHRoZSBXZWJLaXQgYnVnIGluIEFuZHJvaWQgNC4wLiogd2hlcmUgKDIpIGRlc3Ryb3lzIG5hdGl2ZSBgYXVkaW9gXG4vLyAgICBhbmQgYHZpZGVvYCBjb250cm9scy5cbi8vIDIuIENvcnJlY3QgaW5hYmlsaXR5IHRvIHN0eWxlIGNsaWNrYWJsZSBgaW5wdXRgIHR5cGVzIGluIGlPUy5cbi8vIDMuIEltcHJvdmUgdXNhYmlsaXR5IGFuZCBjb25zaXN0ZW5jeSBvZiBjdXJzb3Igc3R5bGUgYmV0d2VlbiBpbWFnZS10eXBlXG4vLyAgICBgaW5wdXRgIGFuZCBvdGhlcnMuXG4vL1xuXG5idXR0b24sXG5odG1sIGlucHV0W3R5cGU9XCJidXR0b25cIl0sIC8vIDFcbmlucHV0W3R5cGU9XCJyZXNldFwiXSxcbmlucHV0W3R5cGU9XCJzdWJtaXRcIl0ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjsgLy8gMlxuICBjdXJzb3I6IHBvaW50ZXI7IC8vIDNcbn1cblxuLy9cbi8vIFJlLXNldCBkZWZhdWx0IGN1cnNvciBmb3IgZGlzYWJsZWQgZWxlbWVudHMuXG4vL1xuXG5idXR0b25bZGlzYWJsZWRdLFxuaHRtbCBpbnB1dFtkaXNhYmxlZF0ge1xuICBjdXJzb3I6IGRlZmF1bHQ7XG59XG5cbi8vXG4vLyBSZW1vdmUgaW5uZXIgcGFkZGluZyBhbmQgYm9yZGVyIGluIEZpcmVmb3ggNCsuXG4vL1xuXG5idXR0b246Oi1tb3otZm9jdXMtaW5uZXIsXG5pbnB1dDo6LW1vei1mb2N1cy1pbm5lciB7XG4gIGJvcmRlcjogMDtcbiAgcGFkZGluZzogMDtcbn1cblxuLy9cbi8vIEFkZHJlc3MgRmlyZWZveCA0KyBzZXR0aW5nIGBsaW5lLWhlaWdodGAgb24gYGlucHV0YCB1c2luZyBgIWltcG9ydGFudGAgaW5cbi8vIHRoZSBVQSBzdHlsZXNoZWV0LlxuLy9cblxuaW5wdXQge1xuICBsaW5lLWhlaWdodDogbm9ybWFsO1xufVxuXG4vL1xuLy8gSXQncyByZWNvbW1lbmRlZCB0aGF0IHlvdSBkb24ndCBhdHRlbXB0IHRvIHN0eWxlIHRoZXNlIGVsZW1lbnRzLlxuLy8gRmlyZWZveCdzIGltcGxlbWVudGF0aW9uIGRvZXNuJ3QgcmVzcGVjdCBib3gtc2l6aW5nLCBwYWRkaW5nLCBvciB3aWR0aC5cbi8vXG4vLyAxLiBBZGRyZXNzIGJveCBzaXppbmcgc2V0IHRvIGBjb250ZW50LWJveGAgaW4gSUUgOC85LzEwLlxuLy8gMi4gUmVtb3ZlIGV4Y2VzcyBwYWRkaW5nIGluIElFIDgvOS8xMC5cbi8vXG5cbmlucHV0W3R5cGU9XCJjaGVja2JveFwiXSxcbmlucHV0W3R5cGU9XCJyYWRpb1wiXSB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IC8vIDFcbiAgcGFkZGluZzogMDsgLy8gMlxufVxuXG4vL1xuLy8gRml4IHRoZSBjdXJzb3Igc3R5bGUgZm9yIENocm9tZSdzIGluY3JlbWVudC9kZWNyZW1lbnQgYnV0dG9ucy4gRm9yIGNlcnRhaW5cbi8vIGBmb250LXNpemVgIHZhbHVlcyBvZiB0aGUgYGlucHV0YCwgaXQgY2F1c2VzIHRoZSBjdXJzb3Igc3R5bGUgb2YgdGhlXG4vLyBkZWNyZW1lbnQgYnV0dG9uIHRvIGNoYW5nZSBmcm9tIGBkZWZhdWx0YCB0byBgdGV4dGAuXG4vL1xuXG5pbnB1dFt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxuaW5wdXRbdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiB7XG4gIGhlaWdodDogYXV0bztcbn1cblxuLy9cbi8vIDEuIEFkZHJlc3MgYGFwcGVhcmFuY2VgIHNldCB0byBgc2VhcmNoZmllbGRgIGluIFNhZmFyaSBhbmQgQ2hyb21lLlxuLy8gMi4gQWRkcmVzcyBgYm94LXNpemluZ2Agc2V0IHRvIGBib3JkZXItYm94YCBpbiBTYWZhcmkgYW5kIENocm9tZS5cbi8vXG5cbmlucHV0W3R5cGU9XCJzZWFyY2hcIl0ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IHRleHRmaWVsZDsgLy8gMVxuICBib3gtc2l6aW5nOiBjb250ZW50LWJveDsgLy8yXG59XG5cbi8vXG4vLyBSZW1vdmUgaW5uZXIgcGFkZGluZyBhbmQgc2VhcmNoIGNhbmNlbCBidXR0b24gaW4gU2FmYXJpIGFuZCBDaHJvbWUgb24gT1MgWC5cbi8vIFNhZmFyaSAoYnV0IG5vdCBDaHJvbWUpIGNsaXBzIHRoZSBjYW5jZWwgYnV0dG9uIHdoZW4gdGhlIHNlYXJjaCBpbnB1dCBoYXNcbi8vIHBhZGRpbmcgKGFuZCBgdGV4dGZpZWxkYCBhcHBlYXJhbmNlKS5cbi8vXG5cbmlucHV0W3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWNhbmNlbC1idXR0b24sXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xufVxuXG4vL1xuLy8gRGVmaW5lIGNvbnNpc3RlbnQgYm9yZGVyLCBtYXJnaW4sIGFuZCBwYWRkaW5nLlxuLy9cblxuZmllbGRzZXQge1xuICBib3JkZXI6IDFweCBzb2xpZCAjYzBjMGMwO1xuICBtYXJnaW46IDAgMnB4O1xuICBwYWRkaW5nOiAwLjM1ZW0gMC42MjVlbSAwLjc1ZW07XG59XG5cbi8vXG4vLyAxLiBDb3JyZWN0IGBjb2xvcmAgbm90IGJlaW5nIGluaGVyaXRlZCBpbiBJRSA4LzkvMTAvMTEuXG4vLyAyLiBSZW1vdmUgcGFkZGluZyBzbyBwZW9wbGUgYXJlbid0IGNhdWdodCBvdXQgaWYgdGhleSB6ZXJvIG91dCBmaWVsZHNldHMuXG4vL1xuXG5sZWdlbmQge1xuICBib3JkZXI6IDA7IC8vIDFcbiAgcGFkZGluZzogMDsgLy8gMlxufVxuXG4vL1xuLy8gUmVtb3ZlIGRlZmF1bHQgdmVydGljYWwgc2Nyb2xsYmFyIGluIElFIDgvOS8xMC8xMS5cbi8vXG5cbnRleHRhcmVhIHtcbiAgb3ZlcmZsb3c6IGF1dG87XG59XG5cbi8vXG4vLyBEb24ndCBpbmhlcml0IHRoZSBgZm9udC13ZWlnaHRgIChhcHBsaWVkIGJ5IGEgcnVsZSBhYm92ZSkuXG4vLyBOT1RFOiB0aGUgZGVmYXVsdCBjYW5ub3Qgc2FmZWx5IGJlIGNoYW5nZWQgaW4gQ2hyb21lIGFuZCBTYWZhcmkgb24gT1MgWC5cbi8vXG5cbm9wdGdyb3VwIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbi8vIFRhYmxlc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLy9cbi8vIFJlbW92ZSBtb3N0IHNwYWNpbmcgYmV0d2VlbiB0YWJsZSBjZWxscy5cbi8vXG5cbnRhYmxlIHtcbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgYm9yZGVyLXNwYWNpbmc6IDA7XG59XG5cbnRkLFxudGgge1xuICBwYWRkaW5nOiAwO1xufVxuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vbm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC1zYXNzL2Fzc2V0cy9zdHlsZXNoZWV0cy9ib290c3RyYXAvX25vcm1hbGl6ZS5zY3NzIiwiLyohIFNvdXJjZTogaHR0cHM6Ly9naXRodWIuY29tL2g1YnAvaHRtbDUtYm9pbGVycGxhdGUvYmxvYi9tYXN0ZXIvc3JjL2Nzcy9tYWluLmNzcyAqL1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gUHJpbnQgc3R5bGVzLlxuLy8gSW5saW5lZCB0byBhdm9pZCB0aGUgYWRkaXRpb25hbCBIVFRQIHJlcXVlc3Q6IGg1YnAuY29tL3Jcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbkBtZWRpYSBwcmludCB7XG4gICAgKixcbiAgICAqOmJlZm9yZSxcbiAgICAqOmFmdGVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgICAgICAgY29sb3I6ICMwMDAgIWltcG9ydGFudDsgLy8gQmxhY2sgcHJpbnRzIGZhc3RlcjogaDVicC5jb20vc1xuICAgICAgICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAgIHRleHQtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgYSxcbiAgICBhOnZpc2l0ZWQge1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICB9XG5cbiAgICBhW2hyZWZdOmFmdGVyIHtcbiAgICAgICAgY29udGVudDogXCIgKFwiIGF0dHIoaHJlZikgXCIpXCI7XG4gICAgfVxuXG4gICAgYWJiclt0aXRsZV06YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiBcIiAoXCIgYXR0cih0aXRsZSkgXCIpXCI7XG4gICAgfVxuXG4gICAgLy8gRG9uJ3Qgc2hvdyBsaW5rcyB0aGF0IGFyZSBmcmFnbWVudCBpZGVudGlmaWVycyxcbiAgICAvLyBvciB1c2UgdGhlIGBqYXZhc2NyaXB0OmAgcHNldWRvIHByb3RvY29sXG4gICAgYVtocmVmXj1cIiNcIl06YWZ0ZXIsXG4gICAgYVtocmVmXj1cImphdmFzY3JpcHQ6XCJdOmFmdGVyIHtcbiAgICAgICAgY29udGVudDogXCJcIjtcbiAgICB9XG5cbiAgICBwcmUsXG4gICAgYmxvY2txdW90ZSB7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICM5OTk7XG4gICAgICAgIHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZDtcbiAgICB9XG5cbiAgICB0aGVhZCB7XG4gICAgICAgIGRpc3BsYXk6IHRhYmxlLWhlYWRlci1ncm91cDsgLy8gaDVicC5jb20vdFxuICAgIH1cblxuICAgIHRyLFxuICAgIGltZyB7XG4gICAgICAgIHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZDtcbiAgICB9XG5cbiAgICBpbWcge1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICBwLFxuICAgIGgyLFxuICAgIGgzIHtcbiAgICAgICAgb3JwaGFuczogMztcbiAgICAgICAgd2lkb3dzOiAzO1xuICAgIH1cblxuICAgIGgyLFxuICAgIGgzIHtcbiAgICAgICAgcGFnZS1icmVhay1hZnRlcjogYXZvaWQ7XG4gICAgfVxuXG4gICAgLy8gQm9vdHN0cmFwIHNwZWNpZmljIGNoYW5nZXMgc3RhcnRcblxuICAgIC8vIEJvb3RzdHJhcCBjb21wb25lbnRzXG4gICAgLm5hdmJhciB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICAgIC5idG4sXG4gICAgLmRyb3B1cCA+IC5idG4ge1xuICAgICAgICA+IC5jYXJldCB7XG4gICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiAjMDAwICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLmxhYmVsIHtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgIzAwMDtcbiAgICB9XG5cbiAgICAudGFibGUge1xuICAgICAgICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlICFpbXBvcnRhbnQ7XG5cbiAgICAgICAgdGQsXG4gICAgICAgIHRoIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmYgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgIH1cbiAgICAudGFibGUtYm9yZGVyZWQge1xuICAgICAgICB0aCxcbiAgICAgICAgdGQge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgI2RkZCAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gQm9vdHN0cmFwIHNwZWNpZmljIGNoYW5nZXMgZW5kXG59XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9ub2RlX21vZHVsZXMvYm9vdHN0cmFwLXNhc3MvYXNzZXRzL3N0eWxlc2hlZXRzL2Jvb3RzdHJhcC9fcHJpbnQuc2NzcyIsIi8vXG4vLyBHbHlwaGljb25zIGZvciBCb290c3RyYXBcbi8vXG4vLyBTaW5jZSBpY29ucyBhcmUgZm9udHMsIHRoZXkgY2FuIGJlIHBsYWNlZCBhbnl3aGVyZSB0ZXh0IGlzIHBsYWNlZCBhbmQgYXJlXG4vLyB0aHVzIGF1dG9tYXRpY2FsbHkgc2l6ZWQgdG8gbWF0Y2ggdGhlIHN1cnJvdW5kaW5nIGNoaWxkLiBUbyB1c2UsIGNyZWF0ZSBhblxuLy8gaW5saW5lIGVsZW1lbnQgd2l0aCB0aGUgYXBwcm9wcmlhdGUgY2xhc3NlcywgbGlrZSBzbzpcbi8vXG4vLyA8YSBocmVmPVwiI1wiPjxzcGFuIGNsYXNzPVwiZ2x5cGhpY29uIGdseXBoaWNvbi1zdGFyXCI+PC9zcGFuPiBTdGFyPC9hPlxuXG5AYXQtcm9vdCB7XG4gIC8vIEltcG9ydCB0aGUgZm9udHNcbiAgQGZvbnQtZmFjZSB7XG4gICAgZm9udC1mYW1pbHk6ICdHbHlwaGljb25zIEhhbGZsaW5ncyc7XG4gICAgc3JjOiB1cmwoaWYoJGJvb3RzdHJhcC1zYXNzLWFzc2V0LWhlbHBlciwgdHdicy1mb250LXBhdGgoJyN7JGljb24tZm9udC1wYXRofSN7JGljb24tZm9udC1uYW1lfS5lb3QnKSwgJyN7JGljb24tZm9udC1wYXRofSN7JGljb24tZm9udC1uYW1lfS5lb3QnKSk7XG4gICAgc3JjOiB1cmwoaWYoJGJvb3RzdHJhcC1zYXNzLWFzc2V0LWhlbHBlciwgdHdicy1mb250LXBhdGgoJyN7JGljb24tZm9udC1wYXRofSN7JGljb24tZm9udC1uYW1lfS5lb3Q/I2llZml4JyksICcjeyRpY29uLWZvbnQtcGF0aH0jeyRpY29uLWZvbnQtbmFtZX0uZW90PyNpZWZpeCcpKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksXG4gICAgICAgICB1cmwoaWYoJGJvb3RzdHJhcC1zYXNzLWFzc2V0LWhlbHBlciwgdHdicy1mb250LXBhdGgoJyN7JGljb24tZm9udC1wYXRofSN7JGljb24tZm9udC1uYW1lfS53b2ZmMicpLCAnI3skaWNvbi1mb250LXBhdGh9I3skaWNvbi1mb250LW5hbWV9LndvZmYyJykpIGZvcm1hdCgnd29mZjInKSxcbiAgICAgICAgIHVybChpZigkYm9vdHN0cmFwLXNhc3MtYXNzZXQtaGVscGVyLCB0d2JzLWZvbnQtcGF0aCgnI3skaWNvbi1mb250LXBhdGh9I3skaWNvbi1mb250LW5hbWV9LndvZmYnKSwgJyN7JGljb24tZm9udC1wYXRofSN7JGljb24tZm9udC1uYW1lfS53b2ZmJykpIGZvcm1hdCgnd29mZicpLFxuICAgICAgICAgdXJsKGlmKCRib290c3RyYXAtc2Fzcy1hc3NldC1oZWxwZXIsIHR3YnMtZm9udC1wYXRoKCcjeyRpY29uLWZvbnQtcGF0aH0jeyRpY29uLWZvbnQtbmFtZX0udHRmJyksICcjeyRpY29uLWZvbnQtcGF0aH0jeyRpY29uLWZvbnQtbmFtZX0udHRmJykpIGZvcm1hdCgndHJ1ZXR5cGUnKSxcbiAgICAgICAgIHVybChpZigkYm9vdHN0cmFwLXNhc3MtYXNzZXQtaGVscGVyLCB0d2JzLWZvbnQtcGF0aCgnI3skaWNvbi1mb250LXBhdGh9I3skaWNvbi1mb250LW5hbWV9LnN2ZyMjeyRpY29uLWZvbnQtc3ZnLWlkfScpLCAnI3skaWNvbi1mb250LXBhdGh9I3skaWNvbi1mb250LW5hbWV9LnN2ZyMjeyRpY29uLWZvbnQtc3ZnLWlkfScpKSBmb3JtYXQoJ3N2ZycpO1xuICB9XG59XG5cbi8vIENhdGNoYWxsIGJhc2VjbGFzc1xuLmdseXBoaWNvbiB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdG9wOiAxcHg7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC1mYW1pbHk6ICdHbHlwaGljb25zIEhhbGZsaW5ncyc7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xufVxuXG4vLyBJbmRpdmlkdWFsIGljb25zXG4uZ2x5cGhpY29uLWFzdGVyaXNrICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFwwMDJhXCI7IH0gfVxuLmdseXBoaWNvbi1wbHVzICAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcMDAyYlwiOyB9IH1cbi5nbHlwaGljb24tZXVybyxcbi5nbHlwaGljb24tZXVyICAgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXDIwYWNcIjsgfSB9XG4uZ2x5cGhpY29uLW1pbnVzICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFwyMjEyXCI7IH0gfVxuLmdseXBoaWNvbi1jbG91ZCAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcMjYwMVwiOyB9IH1cbi5nbHlwaGljb24tZW52ZWxvcGUgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXDI3MDlcIjsgfSB9XG4uZ2x5cGhpY29uLXBlbmNpbCAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFwyNzBmXCI7IH0gfVxuLmdseXBoaWNvbi1nbGFzcyAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTAwMVwiOyB9IH1cbi5nbHlwaGljb24tbXVzaWMgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwMDJcIjsgfSB9XG4uZ2x5cGhpY29uLXNlYXJjaCAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDAzXCI7IH0gfVxuLmdseXBoaWNvbi1oZWFydCAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTAwNVwiOyB9IH1cbi5nbHlwaGljb24tc3RhciAgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwMDZcIjsgfSB9XG4uZ2x5cGhpY29uLXN0YXItZW1wdHkgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDA3XCI7IH0gfVxuLmdseXBoaWNvbi11c2VyICAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTAwOFwiOyB9IH1cbi5nbHlwaGljb24tZmlsbSAgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwMDlcIjsgfSB9XG4uZ2x5cGhpY29uLXRoLWxhcmdlICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDEwXCI7IH0gfVxuLmdseXBoaWNvbi10aCAgICAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTAxMVwiOyB9IH1cbi5nbHlwaGljb24tdGgtbGlzdCAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwMTJcIjsgfSB9XG4uZ2x5cGhpY29uLW9rICAgICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDEzXCI7IH0gfVxuLmdseXBoaWNvbi1yZW1vdmUgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTAxNFwiOyB9IH1cbi5nbHlwaGljb24tem9vbS1pbiAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwMTVcIjsgfSB9XG4uZ2x5cGhpY29uLXpvb20tb3V0ICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDE2XCI7IH0gfVxuLmdseXBoaWNvbi1vZmYgICAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTAxN1wiOyB9IH1cbi5nbHlwaGljb24tc2lnbmFsICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwMThcIjsgfSB9XG4uZ2x5cGhpY29uLWNvZyAgICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDE5XCI7IH0gfVxuLmdseXBoaWNvbi10cmFzaCAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTAyMFwiOyB9IH1cbi5nbHlwaGljb24taG9tZSAgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwMjFcIjsgfSB9XG4uZ2x5cGhpY29uLWZpbGUgICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDIyXCI7IH0gfVxuLmdseXBoaWNvbi10aW1lICAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTAyM1wiOyB9IH1cbi5nbHlwaGljb24tcm9hZCAgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwMjRcIjsgfSB9XG4uZ2x5cGhpY29uLWRvd25sb2FkLWFsdCAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDI1XCI7IH0gfVxuLmdseXBoaWNvbi1kb3dubG9hZCAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTAyNlwiOyB9IH1cbi5nbHlwaGljb24tdXBsb2FkICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwMjdcIjsgfSB9XG4uZ2x5cGhpY29uLWluYm94ICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDI4XCI7IH0gfVxuLmdseXBoaWNvbi1wbGF5LWNpcmNsZSAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTAyOVwiOyB9IH1cbi5nbHlwaGljb24tcmVwZWF0ICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwMzBcIjsgfSB9XG4uZ2x5cGhpY29uLXJlZnJlc2ggICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDMxXCI7IH0gfVxuLmdseXBoaWNvbi1saXN0LWFsdCAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTAzMlwiOyB9IH1cbi5nbHlwaGljb24tbG9jayAgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwMzNcIjsgfSB9XG4uZ2x5cGhpY29uLWZsYWcgICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDM0XCI7IH0gfVxuLmdseXBoaWNvbi1oZWFkcGhvbmVzICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTAzNVwiOyB9IH1cbi5nbHlwaGljb24tdm9sdW1lLW9mZiAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwMzZcIjsgfSB9XG4uZ2x5cGhpY29uLXZvbHVtZS1kb3duICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDM3XCI7IH0gfVxuLmdseXBoaWNvbi12b2x1bWUtdXAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTAzOFwiOyB9IH1cbi5nbHlwaGljb24tcXJjb2RlICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwMzlcIjsgfSB9XG4uZ2x5cGhpY29uLWJhcmNvZGUgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDQwXCI7IH0gfVxuLmdseXBoaWNvbi10YWcgICAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTA0MVwiOyB9IH1cbi5nbHlwaGljb24tdGFncyAgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwNDJcIjsgfSB9XG4uZ2x5cGhpY29uLWJvb2sgICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDQzXCI7IH0gfVxuLmdseXBoaWNvbi1ib29rbWFyayAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTA0NFwiOyB9IH1cbi5nbHlwaGljb24tcHJpbnQgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwNDVcIjsgfSB9XG4uZ2x5cGhpY29uLWNhbWVyYSAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDQ2XCI7IH0gfVxuLmdseXBoaWNvbi1mb250ICAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTA0N1wiOyB9IH1cbi5nbHlwaGljb24tYm9sZCAgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwNDhcIjsgfSB9XG4uZ2x5cGhpY29uLWl0YWxpYyAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDQ5XCI7IH0gfVxuLmdseXBoaWNvbi10ZXh0LWhlaWdodCAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTA1MFwiOyB9IH1cbi5nbHlwaGljb24tdGV4dC13aWR0aCAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwNTFcIjsgfSB9XG4uZ2x5cGhpY29uLWFsaWduLWxlZnQgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDUyXCI7IH0gfVxuLmdseXBoaWNvbi1hbGlnbi1jZW50ZXIgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTA1M1wiOyB9IH1cbi5nbHlwaGljb24tYWxpZ24tcmlnaHQgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwNTRcIjsgfSB9XG4uZ2x5cGhpY29uLWFsaWduLWp1c3RpZnkgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDU1XCI7IH0gfVxuLmdseXBoaWNvbi1saXN0ICAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTA1NlwiOyB9IH1cbi5nbHlwaGljb24taW5kZW50LWxlZnQgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwNTdcIjsgfSB9XG4uZ2x5cGhpY29uLWluZGVudC1yaWdodCAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDU4XCI7IH0gfVxuLmdseXBoaWNvbi1mYWNldGltZS12aWRlbyAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTA1OVwiOyB9IH1cbi5nbHlwaGljb24tcGljdHVyZSAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwNjBcIjsgfSB9XG4uZ2x5cGhpY29uLW1hcC1tYXJrZXIgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDYyXCI7IH0gfVxuLmdseXBoaWNvbi1hZGp1c3QgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTA2M1wiOyB9IH1cbi5nbHlwaGljb24tdGludCAgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwNjRcIjsgfSB9XG4uZ2x5cGhpY29uLWVkaXQgICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDY1XCI7IH0gfVxuLmdseXBoaWNvbi1zaGFyZSAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTA2NlwiOyB9IH1cbi5nbHlwaGljb24tY2hlY2sgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwNjdcIjsgfSB9XG4uZ2x5cGhpY29uLW1vdmUgICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDY4XCI7IH0gfVxuLmdseXBoaWNvbi1zdGVwLWJhY2t3YXJkICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTA2OVwiOyB9IH1cbi5nbHlwaGljb24tZmFzdC1iYWNrd2FyZCAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwNzBcIjsgfSB9XG4uZ2x5cGhpY29uLWJhY2t3YXJkICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDcxXCI7IH0gfVxuLmdseXBoaWNvbi1wbGF5ICAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTA3MlwiOyB9IH1cbi5nbHlwaGljb24tcGF1c2UgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwNzNcIjsgfSB9XG4uZ2x5cGhpY29uLXN0b3AgICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDc0XCI7IH0gfVxuLmdseXBoaWNvbi1mb3J3YXJkICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTA3NVwiOyB9IH1cbi5nbHlwaGljb24tZmFzdC1mb3J3YXJkICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwNzZcIjsgfSB9XG4uZ2x5cGhpY29uLXN0ZXAtZm9yd2FyZCAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDc3XCI7IH0gfVxuLmdseXBoaWNvbi1lamVjdCAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTA3OFwiOyB9IH1cbi5nbHlwaGljb24tY2hldnJvbi1sZWZ0ICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwNzlcIjsgfSB9XG4uZ2x5cGhpY29uLWNoZXZyb24tcmlnaHQgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDgwXCI7IH0gfVxuLmdseXBoaWNvbi1wbHVzLXNpZ24gICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTA4MVwiOyB9IH1cbi5nbHlwaGljb24tbWludXMtc2lnbiAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwODJcIjsgfSB9XG4uZ2x5cGhpY29uLXJlbW92ZS1zaWduICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDgzXCI7IH0gfVxuLmdseXBoaWNvbi1vay1zaWduICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTA4NFwiOyB9IH1cbi5nbHlwaGljb24tcXVlc3Rpb24tc2lnbiAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwODVcIjsgfSB9XG4uZ2x5cGhpY29uLWluZm8tc2lnbiAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDg2XCI7IH0gfVxuLmdseXBoaWNvbi1zY3JlZW5zaG90ICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTA4N1wiOyB9IH1cbi5nbHlwaGljb24tcmVtb3ZlLWNpcmNsZSAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwODhcIjsgfSB9XG4uZ2x5cGhpY29uLW9rLWNpcmNsZSAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDg5XCI7IH0gfVxuLmdseXBoaWNvbi1iYW4tY2lyY2xlICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTA5MFwiOyB9IH1cbi5nbHlwaGljb24tYXJyb3ctbGVmdCAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwOTFcIjsgfSB9XG4uZ2x5cGhpY29uLWFycm93LXJpZ2h0ICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDkyXCI7IH0gfVxuLmdseXBoaWNvbi1hcnJvdy11cCAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTA5M1wiOyB9IH1cbi5nbHlwaGljb24tYXJyb3ctZG93biAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwOTRcIjsgfSB9XG4uZ2x5cGhpY29uLXNoYXJlLWFsdCAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMDk1XCI7IH0gfVxuLmdseXBoaWNvbi1yZXNpemUtZnVsbCAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTA5NlwiOyB9IH1cbi5nbHlwaGljb24tcmVzaXplLXNtYWxsICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUwOTdcIjsgfSB9XG4uZ2x5cGhpY29uLWV4Y2xhbWF0aW9uLXNpZ24gICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTAxXCI7IH0gfVxuLmdseXBoaWNvbi1naWZ0ICAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTEwMlwiOyB9IH1cbi5nbHlwaGljb24tbGVhZiAgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxMDNcIjsgfSB9XG4uZ2x5cGhpY29uLWZpcmUgICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTA0XCI7IH0gfVxuLmdseXBoaWNvbi1leWUtb3BlbiAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTEwNVwiOyB9IH1cbi5nbHlwaGljb24tZXllLWNsb3NlICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxMDZcIjsgfSB9XG4uZ2x5cGhpY29uLXdhcm5pbmctc2lnbiAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTA3XCI7IH0gfVxuLmdseXBoaWNvbi1wbGFuZSAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTEwOFwiOyB9IH1cbi5nbHlwaGljb24tY2FsZW5kYXIgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxMDlcIjsgfSB9XG4uZ2x5cGhpY29uLXJhbmRvbSAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTEwXCI7IH0gfVxuLmdseXBoaWNvbi1jb21tZW50ICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTExMVwiOyB9IH1cbi5nbHlwaGljb24tbWFnbmV0ICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxMTJcIjsgfSB9XG4uZ2x5cGhpY29uLWNoZXZyb24tdXAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTEzXCI7IH0gfVxuLmdseXBoaWNvbi1jaGV2cm9uLWRvd24gICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTExNFwiOyB9IH1cbi5nbHlwaGljb24tcmV0d2VldCAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxMTVcIjsgfSB9XG4uZ2x5cGhpY29uLXNob3BwaW5nLWNhcnQgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTE2XCI7IH0gfVxuLmdseXBoaWNvbi1mb2xkZXItY2xvc2UgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTExN1wiOyB9IH1cbi5nbHlwaGljb24tZm9sZGVyLW9wZW4gICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxMThcIjsgfSB9XG4uZ2x5cGhpY29uLXJlc2l6ZS12ZXJ0aWNhbCAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTE5XCI7IH0gfVxuLmdseXBoaWNvbi1yZXNpemUtaG9yaXpvbnRhbCAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTEyMFwiOyB9IH1cbi5nbHlwaGljb24taGRkICAgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxMjFcIjsgfSB9XG4uZ2x5cGhpY29uLWJ1bGxob3JuICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTIyXCI7IH0gfVxuLmdseXBoaWNvbi1iZWxsICAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTEyM1wiOyB9IH1cbi5nbHlwaGljb24tY2VydGlmaWNhdGUgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxMjRcIjsgfSB9XG4uZ2x5cGhpY29uLXRodW1icy11cCAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTI1XCI7IH0gfVxuLmdseXBoaWNvbi10aHVtYnMtZG93biAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTEyNlwiOyB9IH1cbi5nbHlwaGljb24taGFuZC1yaWdodCAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxMjdcIjsgfSB9XG4uZ2x5cGhpY29uLWhhbmQtbGVmdCAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTI4XCI7IH0gfVxuLmdseXBoaWNvbi1oYW5kLXVwICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTEyOVwiOyB9IH1cbi5nbHlwaGljb24taGFuZC1kb3duICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxMzBcIjsgfSB9XG4uZ2x5cGhpY29uLWNpcmNsZS1hcnJvdy1yaWdodCAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTMxXCI7IH0gfVxuLmdseXBoaWNvbi1jaXJjbGUtYXJyb3ctbGVmdCAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTEzMlwiOyB9IH1cbi5nbHlwaGljb24tY2lyY2xlLWFycm93LXVwICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxMzNcIjsgfSB9XG4uZ2x5cGhpY29uLWNpcmNsZS1hcnJvdy1kb3duICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTM0XCI7IH0gfVxuLmdseXBoaWNvbi1nbG9iZSAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTEzNVwiOyB9IH1cbi5nbHlwaGljb24td3JlbmNoICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxMzZcIjsgfSB9XG4uZ2x5cGhpY29uLXRhc2tzICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTM3XCI7IH0gfVxuLmdseXBoaWNvbi1maWx0ZXIgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTEzOFwiOyB9IH1cbi5nbHlwaGljb24tYnJpZWZjYXNlICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxMzlcIjsgfSB9XG4uZ2x5cGhpY29uLWZ1bGxzY3JlZW4gICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTQwXCI7IH0gfVxuLmdseXBoaWNvbi1kYXNoYm9hcmQgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTE0MVwiOyB9IH1cbi5nbHlwaGljb24tcGFwZXJjbGlwICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxNDJcIjsgfSB9XG4uZ2x5cGhpY29uLWhlYXJ0LWVtcHR5ICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTQzXCI7IH0gfVxuLmdseXBoaWNvbi1saW5rICAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTE0NFwiOyB9IH1cbi5nbHlwaGljb24tcGhvbmUgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxNDVcIjsgfSB9XG4uZ2x5cGhpY29uLXB1c2hwaW4gICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTQ2XCI7IH0gfVxuLmdseXBoaWNvbi11c2QgICAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTE0OFwiOyB9IH1cbi5nbHlwaGljb24tZ2JwICAgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxNDlcIjsgfSB9XG4uZ2x5cGhpY29uLXNvcnQgICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTUwXCI7IH0gfVxuLmdseXBoaWNvbi1zb3J0LWJ5LWFscGhhYmV0ICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTE1MVwiOyB9IH1cbi5nbHlwaGljb24tc29ydC1ieS1hbHBoYWJldC1hbHQgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxNTJcIjsgfSB9XG4uZ2x5cGhpY29uLXNvcnQtYnktb3JkZXIgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTUzXCI7IH0gfVxuLmdseXBoaWNvbi1zb3J0LWJ5LW9yZGVyLWFsdCAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTE1NFwiOyB9IH1cbi5nbHlwaGljb24tc29ydC1ieS1hdHRyaWJ1dGVzICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxNTVcIjsgfSB9XG4uZ2x5cGhpY29uLXNvcnQtYnktYXR0cmlidXRlcy1hbHQgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTU2XCI7IH0gfVxuLmdseXBoaWNvbi11bmNoZWNrZWQgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTE1N1wiOyB9IH1cbi5nbHlwaGljb24tZXhwYW5kICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxNThcIjsgfSB9XG4uZ2x5cGhpY29uLWNvbGxhcHNlLWRvd24gICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTU5XCI7IH0gfVxuLmdseXBoaWNvbi1jb2xsYXBzZS11cCAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTE2MFwiOyB9IH1cbi5nbHlwaGljb24tbG9nLWluICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxNjFcIjsgfSB9XG4uZ2x5cGhpY29uLWZsYXNoICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTYyXCI7IH0gfVxuLmdseXBoaWNvbi1sb2ctb3V0ICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTE2M1wiOyB9IH1cbi5nbHlwaGljb24tbmV3LXdpbmRvdyAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxNjRcIjsgfSB9XG4uZ2x5cGhpY29uLXJlY29yZCAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTY1XCI7IH0gfVxuLmdseXBoaWNvbi1zYXZlICAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTE2NlwiOyB9IH1cbi5nbHlwaGljb24tb3BlbiAgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxNjdcIjsgfSB9XG4uZ2x5cGhpY29uLXNhdmVkICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTY4XCI7IH0gfVxuLmdseXBoaWNvbi1pbXBvcnQgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTE2OVwiOyB9IH1cbi5nbHlwaGljb24tZXhwb3J0ICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxNzBcIjsgfSB9XG4uZ2x5cGhpY29uLXNlbmQgICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTcxXCI7IH0gfVxuLmdseXBoaWNvbi1mbG9wcHktZGlzayAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTE3MlwiOyB9IH1cbi5nbHlwaGljb24tZmxvcHB5LXNhdmVkICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxNzNcIjsgfSB9XG4uZ2x5cGhpY29uLWZsb3BweS1yZW1vdmUgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTc0XCI7IH0gfVxuLmdseXBoaWNvbi1mbG9wcHktc2F2ZSAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTE3NVwiOyB9IH1cbi5nbHlwaGljb24tZmxvcHB5LW9wZW4gICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxNzZcIjsgfSB9XG4uZ2x5cGhpY29uLWNyZWRpdC1jYXJkICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTc3XCI7IH0gfVxuLmdseXBoaWNvbi10cmFuc2ZlciAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTE3OFwiOyB9IH1cbi5nbHlwaGljb24tY3V0bGVyeSAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxNzlcIjsgfSB9XG4uZ2x5cGhpY29uLWhlYWRlciAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTgwXCI7IH0gfVxuLmdseXBoaWNvbi1jb21wcmVzc2VkICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTE4MVwiOyB9IH1cbi5nbHlwaGljb24tZWFycGhvbmUgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxODJcIjsgfSB9XG4uZ2x5cGhpY29uLXBob25lLWFsdCAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTgzXCI7IH0gfVxuLmdseXBoaWNvbi10b3dlciAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTE4NFwiOyB9IH1cbi5nbHlwaGljb24tc3RhdHMgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxODVcIjsgfSB9XG4uZ2x5cGhpY29uLXNkLXZpZGVvICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTg2XCI7IH0gfVxuLmdseXBoaWNvbi1oZC12aWRlbyAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTE4N1wiOyB9IH1cbi5nbHlwaGljb24tc3VidGl0bGVzICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxODhcIjsgfSB9XG4uZ2x5cGhpY29uLXNvdW5kLXN0ZXJlbyAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTg5XCI7IH0gfVxuLmdseXBoaWNvbi1zb3VuZC1kb2xieSAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTE5MFwiOyB9IH1cbi5nbHlwaGljb24tc291bmQtNS0xICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxOTFcIjsgfSB9XG4uZ2x5cGhpY29uLXNvdW5kLTYtMSAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTkyXCI7IH0gfVxuLmdseXBoaWNvbi1zb3VuZC03LTEgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTE5M1wiOyB9IH1cbi5nbHlwaGljb24tY29weXJpZ2h0LW1hcmsgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxOTRcIjsgfSB9XG4uZ2x5cGhpY29uLXJlZ2lzdHJhdGlvbi1tYXJrICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTk1XCI7IH0gfVxuLmdseXBoaWNvbi1jbG91ZC1kb3dubG9hZCAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTE5N1wiOyB9IH1cbi5nbHlwaGljb24tY2xvdWQtdXBsb2FkICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUxOThcIjsgfSB9XG4uZ2x5cGhpY29uLXRyZWUtY29uaWZlciAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMTk5XCI7IH0gfVxuLmdseXBoaWNvbi10cmVlLWRlY2lkdW91cyAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTIwMFwiOyB9IH1cbi5nbHlwaGljb24tY2QgICAgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUyMDFcIjsgfSB9XG4uZ2x5cGhpY29uLXNhdmUtZmlsZSAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMjAyXCI7IH0gfVxuLmdseXBoaWNvbi1vcGVuLWZpbGUgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTIwM1wiOyB9IH1cbi5nbHlwaGljb24tbGV2ZWwtdXAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUyMDRcIjsgfSB9XG4uZ2x5cGhpY29uLWNvcHkgICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMjA1XCI7IH0gfVxuLmdseXBoaWNvbi1wYXN0ZSAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTIwNlwiOyB9IH1cbi8vIFRoZSBmb2xsb3dpbmcgMiBHbHlwaGljb25zIGFyZSBvbWl0dGVkIGZvciB0aGUgdGltZSBiZWluZyBiZWNhdXNlXG4vLyB0aGV5IGN1cnJlbnRseSB1c2UgVW5pY29kZSBjb2RlcG9pbnRzIHRoYXQgYXJlIG91dHNpZGUgdGhlXG4vLyBCYXNpYyBNdWx0aWxpbmd1YWwgUGxhbmUgKEJNUCkuIE9sZGVyIGJ1Z2d5IHZlcnNpb25zIG9mIFdlYktpdCBjYW4ndCBoYW5kbGVcbi8vIG5vbi1CTVAgY29kZXBvaW50cyBpbiBDU1Mgc3RyaW5nIGVzY2FwZXMsIGFuZCB0aHVzIGNhbid0IGRpc3BsYXkgdGhlc2UgdHdvIGljb25zLlxuLy8gTm90YWJseSwgdGhlIGJ1ZyBhZmZlY3RzIHNvbWUgb2xkZXIgdmVyc2lvbnMgb2YgdGhlIEFuZHJvaWQgQnJvd3Nlci5cbi8vIE1vcmUgaW5mbzogaHR0cHM6Ly9naXRodWIuY29tL3R3YnMvYm9vdHN0cmFwL2lzc3Vlcy8xMDEwNlxuLy8gLmdseXBoaWNvbi1kb29yICAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcMWY2YWFcIjsgfSB9XG4vLyAuZ2x5cGhpY29uLWtleSAgICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFwxZjUxMVwiOyB9IH1cbi5nbHlwaGljb24tYWxlcnQgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUyMDlcIjsgfSB9XG4uZ2x5cGhpY29uLWVxdWFsaXplciAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMjEwXCI7IH0gfVxuLmdseXBoaWNvbi1raW5nICAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTIxMVwiOyB9IH1cbi5nbHlwaGljb24tcXVlZW4gICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUyMTJcIjsgfSB9XG4uZ2x5cGhpY29uLXBhd24gICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMjEzXCI7IH0gfVxuLmdseXBoaWNvbi1iaXNob3AgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTIxNFwiOyB9IH1cbi5nbHlwaGljb24ta25pZ2h0ICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUyMTVcIjsgfSB9XG4uZ2x5cGhpY29uLWJhYnktZm9ybXVsYSAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMjE2XCI7IH0gfVxuLmdseXBoaWNvbi10ZW50ICAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcMjZmYVwiOyB9IH1cbi5nbHlwaGljb24tYmxhY2tib2FyZCAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUyMThcIjsgfSB9XG4uZ2x5cGhpY29uLWJlZCAgICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMjE5XCI7IH0gfVxuLmdseXBoaWNvbi1hcHBsZSAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjhmZlwiOyB9IH1cbi5nbHlwaGljb24tZXJhc2UgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUyMjFcIjsgfSB9XG4uZ2x5cGhpY29uLWhvdXJnbGFzcyAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFwyMzFiXCI7IH0gfVxuLmdseXBoaWNvbi1sYW1wICAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTIyM1wiOyB9IH1cbi5nbHlwaGljb24tZHVwbGljYXRlICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUyMjRcIjsgfSB9XG4uZ2x5cGhpY29uLXBpZ2d5LWJhbmsgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMjI1XCI7IH0gfVxuLmdseXBoaWNvbi1zY2lzc29ycyAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTIyNlwiOyB9IH1cbi5nbHlwaGljb24tYml0Y29pbiAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUyMjdcIjsgfSB9XG4uZ2x5cGhpY29uLWJ0YyAgICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMjI3XCI7IH0gfVxuLmdseXBoaWNvbi14YnQgICAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTIyN1wiOyB9IH1cbi5nbHlwaGljb24teWVuICAgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXDAwYTVcIjsgfSB9XG4uZ2x5cGhpY29uLWpweSAgICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFwwMGE1XCI7IH0gfVxuLmdseXBoaWNvbi1ydWJsZSAgICAgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcMjBiZFwiOyB9IH1cbi5nbHlwaGljb24tcnViICAgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXDIwYmRcIjsgfSB9XG4uZ2x5cGhpY29uLXNjYWxlICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMjMwXCI7IH0gfVxuLmdseXBoaWNvbi1pY2UtbG9sbHkgICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTIzMVwiOyB9IH1cbi5nbHlwaGljb24taWNlLWxvbGx5LXRhc3RlZCAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUyMzJcIjsgfSB9XG4uZ2x5cGhpY29uLWVkdWNhdGlvbiAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMjMzXCI7IH0gfVxuLmdseXBoaWNvbi1vcHRpb24taG9yaXpvbnRhbCAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTIzNFwiOyB9IH1cbi5nbHlwaGljb24tb3B0aW9uLXZlcnRpY2FsICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUyMzVcIjsgfSB9XG4uZ2x5cGhpY29uLW1lbnUtaGFtYnVyZ2VyICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMjM2XCI7IH0gfVxuLmdseXBoaWNvbi1tb2RhbC13aW5kb3cgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTIzN1wiOyB9IH1cbi5nbHlwaGljb24tb2lsICAgICAgICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUyMzhcIjsgfSB9XG4uZ2x5cGhpY29uLWdyYWluICAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMjM5XCI7IH0gfVxuLmdseXBoaWNvbi1zdW5nbGFzc2VzICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTI0MFwiOyB9IH1cbi5nbHlwaGljb24tdGV4dC1zaXplICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUyNDFcIjsgfSB9XG4uZ2x5cGhpY29uLXRleHQtY29sb3IgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMjQyXCI7IH0gfVxuLmdseXBoaWNvbi10ZXh0LWJhY2tncm91bmQgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTI0M1wiOyB9IH1cbi5nbHlwaGljb24tb2JqZWN0LWFsaWduLXRvcCAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUyNDRcIjsgfSB9XG4uZ2x5cGhpY29uLW9iamVjdC1hbGlnbi1ib3R0b20gICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMjQ1XCI7IH0gfVxuLmdseXBoaWNvbi1vYmplY3QtYWxpZ24taG9yaXpvbnRhbHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTI0NlwiOyB9IH1cbi5nbHlwaGljb24tb2JqZWN0LWFsaWduLWxlZnQgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUyNDdcIjsgfSB9XG4uZ2x5cGhpY29uLW9iamVjdC1hbGlnbi12ZXJ0aWNhbCAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMjQ4XCI7IH0gfVxuLmdseXBoaWNvbi1vYmplY3QtYWxpZ24tcmlnaHQgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTI0OVwiOyB9IH1cbi5nbHlwaGljb24tdHJpYW5nbGUtcmlnaHQgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUyNTBcIjsgfSB9XG4uZ2x5cGhpY29uLXRyaWFuZ2xlLWxlZnQgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMjUxXCI7IH0gfVxuLmdseXBoaWNvbi10cmlhbmdsZS1ib3R0b20gICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTI1MlwiOyB9IH1cbi5nbHlwaGljb24tdHJpYW5nbGUtdG9wICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUyNTNcIjsgfSB9XG4uZ2x5cGhpY29uLWNvbnNvbGUgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMjU0XCI7IH0gfVxuLmdseXBoaWNvbi1zdXBlcnNjcmlwdCAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTI1NVwiOyB9IH1cbi5nbHlwaGljb24tc3Vic2NyaXB0ICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUyNTZcIjsgfSB9XG4uZ2x5cGhpY29uLW1lbnUtbGVmdCAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMjU3XCI7IH0gfVxuLmdseXBoaWNvbi1tZW51LXJpZ2h0ICAgICAgICAgICAgIHsgJjpiZWZvcmUgeyBjb250ZW50OiBcIlxcZTI1OFwiOyB9IH1cbi5nbHlwaGljb24tbWVudS1kb3duICAgICAgICAgICAgICB7ICY6YmVmb3JlIHsgY29udGVudDogXCJcXGUyNTlcIjsgfSB9XG4uZ2x5cGhpY29uLW1lbnUtdXAgICAgICAgICAgICAgICAgeyAmOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxlMjYwXCI7IH0gfVxuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vbm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC1zYXNzL2Fzc2V0cy9zdHlsZXNoZWV0cy9ib290c3RyYXAvX2dseXBoaWNvbnMuc2NzcyIsIi8vXG4vLyBTY2FmZm9sZGluZ1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuXG4vLyBSZXNldCB0aGUgYm94LXNpemluZ1xuLy9cbi8vIEhlYWRzIHVwISBUaGlzIHJlc2V0IG1heSBjYXVzZSBjb25mbGljdHMgd2l0aCBzb21lIHRoaXJkLXBhcnR5IHdpZGdldHMuXG4vLyBGb3IgcmVjb21tZW5kYXRpb25zIG9uIHJlc29sdmluZyBzdWNoIGNvbmZsaWN0cywgc2VlXG4vLyBodHRwOi8vZ2V0Ym9vdHN0cmFwLmNvbS9nZXR0aW5nLXN0YXJ0ZWQvI3RoaXJkLWJveC1zaXppbmdcbioge1xuICBAaW5jbHVkZSBib3gtc2l6aW5nKGJvcmRlci1ib3gpO1xufVxuKjpiZWZvcmUsXG4qOmFmdGVyIHtcbiAgQGluY2x1ZGUgYm94LXNpemluZyhib3JkZXItYm94KTtcbn1cblxuXG4vLyBCb2R5IHJlc2V0XG5cbmh0bWwge1xuICBmb250LXNpemU6IDEwcHg7XG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogcmdiYSgwLDAsMCwwKTtcbn1cblxuYm9keSB7XG4gIGZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHktYmFzZTtcbiAgZm9udC1zaXplOiAkZm9udC1zaXplLWJhc2U7XG4gIGxpbmUtaGVpZ2h0OiAkbGluZS1oZWlnaHQtYmFzZTtcbiAgY29sb3I6ICR0ZXh0LWNvbG9yO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkYm9keS1iZztcbn1cblxuLy8gUmVzZXQgZm9udHMgZm9yIHJlbGV2YW50IGVsZW1lbnRzXG5pbnB1dCxcbmJ1dHRvbixcbnNlbGVjdCxcbnRleHRhcmVhIHtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG59XG5cblxuLy8gTGlua3NcblxuYSB7XG4gIGNvbG9yOiAkbGluay1jb2xvcjtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXG4gICY6aG92ZXIsXG4gICY6Zm9jdXMge1xuICAgIGNvbG9yOiAkbGluay1ob3Zlci1jb2xvcjtcbiAgICB0ZXh0LWRlY29yYXRpb246ICRsaW5rLWhvdmVyLWRlY29yYXRpb247XG4gIH1cblxuICAmOmZvY3VzIHtcbiAgICBAaW5jbHVkZSB0YWItZm9jdXM7XG4gIH1cbn1cblxuXG4vLyBGaWd1cmVzXG4vL1xuLy8gV2UgcmVzZXQgdGhpcyBoZXJlIGJlY2F1c2UgcHJldmlvdXNseSBOb3JtYWxpemUgaGFkIG5vIGBmaWd1cmVgIG1hcmdpbnMuIFRoaXNcbi8vIGVuc3VyZXMgd2UgZG9uJ3QgYnJlYWsgYW55b25lJ3MgdXNlIG9mIHRoZSBlbGVtZW50LlxuXG5maWd1cmUge1xuICBtYXJnaW46IDA7XG59XG5cblxuLy8gSW1hZ2VzXG5cbmltZyB7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG5cbi8vIFJlc3BvbnNpdmUgaW1hZ2VzIChlbnN1cmUgaW1hZ2VzIGRvbid0IHNjYWxlIGJleW9uZCB0aGVpciBwYXJlbnRzKVxuLmltZy1yZXNwb25zaXZlIHtcbiAgQGluY2x1ZGUgaW1nLXJlc3BvbnNpdmU7XG59XG5cbi8vIFJvdW5kZWQgY29ybmVyc1xuLmltZy1yb3VuZGVkIHtcbiAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXMtbGFyZ2U7XG59XG5cbi8vIEltYWdlIHRodW1ibmFpbHNcbi8vXG4vLyBIZWFkcyB1cCEgVGhpcyBpcyBtaXhpbi1lZCBpbnRvIHRodW1ibmFpbHMubGVzcyBmb3IgYC50aHVtYm5haWxgLlxuLmltZy10aHVtYm5haWwge1xuICBwYWRkaW5nOiAkdGh1bWJuYWlsLXBhZGRpbmc7XG4gIGxpbmUtaGVpZ2h0OiAkbGluZS1oZWlnaHQtYmFzZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHRodW1ibmFpbC1iZztcbiAgYm9yZGVyOiAxcHggc29saWQgJHRodW1ibmFpbC1ib3JkZXI7XG4gIGJvcmRlci1yYWRpdXM6ICR0aHVtYm5haWwtYm9yZGVyLXJhZGl1cztcbiAgQGluY2x1ZGUgdHJhbnNpdGlvbihhbGwgLjJzIGVhc2UtaW4tb3V0KTtcblxuICAvLyBLZWVwIHRoZW0gYXQgbW9zdCAxMDAlIHdpZGVcbiAgQGluY2x1ZGUgaW1nLXJlc3BvbnNpdmUoaW5saW5lLWJsb2NrKTtcbn1cblxuLy8gUGVyZmVjdCBjaXJjbGVcbi5pbWctY2lyY2xlIHtcbiAgYm9yZGVyLXJhZGl1czogNTAlOyAvLyBzZXQgcmFkaXVzIGluIHBlcmNlbnRzXG59XG5cblxuLy8gSG9yaXpvbnRhbCBydWxlc1xuXG5ociB7XG4gIG1hcmdpbi10b3A6ICAgICRsaW5lLWhlaWdodC1jb21wdXRlZDtcbiAgbWFyZ2luLWJvdHRvbTogJGxpbmUtaGVpZ2h0LWNvbXB1dGVkO1xuICBib3JkZXI6IDA7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAkaHItYm9yZGVyO1xufVxuXG5cbi8vIE9ubHkgZGlzcGxheSBjb250ZW50IHRvIHNjcmVlbiByZWFkZXJzXG4vL1xuLy8gU2VlOiBodHRwOi8vYTExeXByb2plY3QuY29tL3Bvc3RzL2hvdy10by1oaWRlLWNvbnRlbnRcblxuLnNyLW9ubHkge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiAxcHg7XG4gIGhlaWdodDogMXB4O1xuICBtYXJnaW46IC0xcHg7XG4gIHBhZGRpbmc6IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGNsaXA6IHJlY3QoMCwwLDAsMCk7XG4gIGJvcmRlcjogMDtcbn1cblxuLy8gVXNlIGluIGNvbmp1bmN0aW9uIHdpdGggLnNyLW9ubHkgdG8gb25seSBkaXNwbGF5IGNvbnRlbnQgd2hlbiBpdCdzIGZvY3VzZWQuXG4vLyBVc2VmdWwgZm9yIFwiU2tpcCB0byBtYWluIGNvbnRlbnRcIiBsaW5rczsgc2VlIGh0dHA6Ly93d3cudzMub3JnL1RSLzIwMTMvTk9URS1XQ0FHMjAtVEVDSFMtMjAxMzA5MDUvRzFcbi8vIENyZWRpdDogSFRNTDUgQm9pbGVycGxhdGVcblxuLnNyLW9ubHktZm9jdXNhYmxlIHtcbiAgJjphY3RpdmUsXG4gICY6Zm9jdXMge1xuICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIG1hcmdpbjogMDtcbiAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICBjbGlwOiBhdXRvO1xuICB9XG59XG5cblxuLy8gaU9TIFwiY2xpY2thYmxlIGVsZW1lbnRzXCIgZml4IGZvciByb2xlPVwiYnV0dG9uXCJcbi8vXG4vLyBGaXhlcyBcImNsaWNrYWJpbGl0eVwiIGlzc3VlIChhbmQgbW9yZSBnZW5lcmFsbHksIHRoZSBmaXJpbmcgb2YgZXZlbnRzIHN1Y2ggYXMgZm9jdXMgYXMgd2VsbClcbi8vIGZvciB0cmFkaXRpb25hbGx5IG5vbi1mb2N1c2FibGUgZWxlbWVudHMgd2l0aCByb2xlPVwiYnV0dG9uXCJcbi8vIHNlZSBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9FdmVudHMvY2xpY2sjU2FmYXJpX01vYmlsZVxuXG5bcm9sZT1cImJ1dHRvblwiXSB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL25vZGVfbW9kdWxlcy9ib290c3RyYXAtc2Fzcy9hc3NldHMvc3R5bGVzaGVldHMvYm9vdHN0cmFwL19zY2FmZm9sZGluZy5zY3NzIiwiLy8gVmVuZG9yIFByZWZpeGVzXG4vL1xuLy8gQWxsIHZlbmRvciBtaXhpbnMgYXJlIGRlcHJlY2F0ZWQgYXMgb2YgdjMuMi4wIGR1ZSB0byB0aGUgaW50cm9kdWN0aW9uIG9mXG4vLyBBdXRvcHJlZml4ZXIgaW4gb3VyIEdydW50ZmlsZS4gVGhleSBoYXZlIGJlZW4gcmVtb3ZlZCBpbiB2NC5cblxuLy8gLSBBbmltYXRpb25zXG4vLyAtIEJhY2tmYWNlIHZpc2liaWxpdHlcbi8vIC0gQm94IHNoYWRvd1xuLy8gLSBCb3ggc2l6aW5nXG4vLyAtIENvbnRlbnQgY29sdW1uc1xuLy8gLSBIeXBoZW5zXG4vLyAtIFBsYWNlaG9sZGVyIHRleHRcbi8vIC0gVHJhbnNmb3JtYXRpb25zXG4vLyAtIFRyYW5zaXRpb25zXG4vLyAtIFVzZXIgU2VsZWN0XG5cblxuLy8gQW5pbWF0aW9uc1xuQG1peGluIGFuaW1hdGlvbigkYW5pbWF0aW9uKSB7XG4gIC13ZWJraXQtYW5pbWF0aW9uOiAkYW5pbWF0aW9uO1xuICAgICAgIC1vLWFuaW1hdGlvbjogJGFuaW1hdGlvbjtcbiAgICAgICAgICBhbmltYXRpb246ICRhbmltYXRpb247XG59XG5AbWl4aW4gYW5pbWF0aW9uLW5hbWUoJG5hbWUpIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogJG5hbWU7XG4gICAgICAgICAgYW5pbWF0aW9uLW5hbWU6ICRuYW1lO1xufVxuQG1peGluIGFuaW1hdGlvbi1kdXJhdGlvbigkZHVyYXRpb24pIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb246ICRkdXJhdGlvbjtcbiAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246ICRkdXJhdGlvbjtcbn1cbkBtaXhpbiBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uKCR0aW1pbmctZnVuY3Rpb24pIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiAkdGltaW5nLWZ1bmN0aW9uO1xuICAgICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246ICR0aW1pbmctZnVuY3Rpb247XG59XG5AbWl4aW4gYW5pbWF0aW9uLWRlbGF5KCRkZWxheSkge1xuICAtd2Via2l0LWFuaW1hdGlvbi1kZWxheTogJGRlbGF5O1xuICAgICAgICAgIGFuaW1hdGlvbi1kZWxheTogJGRlbGF5O1xufVxuQG1peGluIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQoJGl0ZXJhdGlvbi1jb3VudCkge1xuICAtd2Via2l0LWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6ICRpdGVyYXRpb24tY291bnQ7XG4gICAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogJGl0ZXJhdGlvbi1jb3VudDtcbn1cbkBtaXhpbiBhbmltYXRpb24tZGlyZWN0aW9uKCRkaXJlY3Rpb24pIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tZGlyZWN0aW9uOiAkZGlyZWN0aW9uO1xuICAgICAgICAgIGFuaW1hdGlvbi1kaXJlY3Rpb246ICRkaXJlY3Rpb247XG59XG5AbWl4aW4gYW5pbWF0aW9uLWZpbGwtbW9kZSgkZmlsbC1tb2RlKSB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLWZpbGwtbW9kZTogJGZpbGwtbW9kZTtcbiAgICAgICAgICBhbmltYXRpb24tZmlsbC1tb2RlOiAkZmlsbC1tb2RlO1xufVxuXG4vLyBCYWNrZmFjZSB2aXNpYmlsaXR5XG4vLyBQcmV2ZW50IGJyb3dzZXJzIGZyb20gZmxpY2tlcmluZyB3aGVuIHVzaW5nIENTUyAzRCB0cmFuc2Zvcm1zLlxuLy8gRGVmYXVsdCB2YWx1ZSBpcyBgdmlzaWJsZWAsIGJ1dCBjYW4gYmUgY2hhbmdlZCB0byBgaGlkZGVuYFxuXG5AbWl4aW4gYmFja2ZhY2UtdmlzaWJpbGl0eSgkdmlzaWJpbGl0eSkge1xuICAtd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6ICR2aXNpYmlsaXR5O1xuICAgICAtbW96LWJhY2tmYWNlLXZpc2liaWxpdHk6ICR2aXNpYmlsaXR5O1xuICAgICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6ICR2aXNpYmlsaXR5O1xufVxuXG4vLyBEcm9wIHNoYWRvd3Ncbi8vXG4vLyBOb3RlOiBEZXByZWNhdGVkIGAuYm94LXNoYWRvdygpYCBhcyBvZiB2My4xLjAgc2luY2UgYWxsIG9mIEJvb3RzdHJhcCdzXG4vLyBzdXBwb3J0ZWQgYnJvd3NlcnMgdGhhdCBoYXZlIGJveCBzaGFkb3cgY2FwYWJpbGl0aWVzIG5vdyBzdXBwb3J0IGl0LlxuXG5AbWl4aW4gYm94LXNoYWRvdygkc2hhZG93Li4uKSB7XG4gIC13ZWJraXQtYm94LXNoYWRvdzogJHNoYWRvdzsgLy8gaU9TIDw0LjMgJiBBbmRyb2lkIDw0LjFcbiAgICAgICAgICBib3gtc2hhZG93OiAkc2hhZG93O1xufVxuXG4vLyBCb3ggc2l6aW5nXG5AbWl4aW4gYm94LXNpemluZygkYm94bW9kZWwpIHtcbiAgLXdlYmtpdC1ib3gtc2l6aW5nOiAkYm94bW9kZWw7XG4gICAgIC1tb3otYm94LXNpemluZzogJGJveG1vZGVsO1xuICAgICAgICAgIGJveC1zaXppbmc6ICRib3htb2RlbDtcbn1cblxuLy8gQ1NTMyBDb250ZW50IENvbHVtbnNcbkBtaXhpbiBjb250ZW50LWNvbHVtbnMoJGNvbHVtbi1jb3VudCwgJGNvbHVtbi1nYXA6ICRncmlkLWd1dHRlci13aWR0aCkge1xuICAtd2Via2l0LWNvbHVtbi1jb3VudDogJGNvbHVtbi1jb3VudDtcbiAgICAgLW1vei1jb2x1bW4tY291bnQ6ICRjb2x1bW4tY291bnQ7XG4gICAgICAgICAgY29sdW1uLWNvdW50OiAkY29sdW1uLWNvdW50O1xuICAtd2Via2l0LWNvbHVtbi1nYXA6ICRjb2x1bW4tZ2FwO1xuICAgICAtbW96LWNvbHVtbi1nYXA6ICRjb2x1bW4tZ2FwO1xuICAgICAgICAgIGNvbHVtbi1nYXA6ICRjb2x1bW4tZ2FwO1xufVxuXG4vLyBPcHRpb25hbCBoeXBoZW5hdGlvblxuQG1peGluIGh5cGhlbnMoJG1vZGU6IGF1dG8pIHtcbiAgd29yZC13cmFwOiBicmVhay13b3JkO1xuICAtd2Via2l0LWh5cGhlbnM6ICRtb2RlO1xuICAgICAtbW96LWh5cGhlbnM6ICRtb2RlO1xuICAgICAgLW1zLWh5cGhlbnM6ICRtb2RlOyAvLyBJRTEwK1xuICAgICAgIC1vLWh5cGhlbnM6ICRtb2RlO1xuICAgICAgICAgIGh5cGhlbnM6ICRtb2RlO1xufVxuXG4vLyBQbGFjZWhvbGRlciB0ZXh0XG5AbWl4aW4gcGxhY2Vob2xkZXIoJGNvbG9yOiAkaW5wdXQtY29sb3ItcGxhY2Vob2xkZXIpIHtcbiAgLy8gRmlyZWZveFxuICAmOjotbW96LXBsYWNlaG9sZGVyIHtcbiAgICBjb2xvcjogJGNvbG9yO1xuICAgIG9wYWNpdHk6IDE7IC8vIE92ZXJyaWRlIEZpcmVmb3gncyB1bnVzdWFsIGRlZmF1bHQgb3BhY2l0eTsgc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS90d2JzL2Jvb3RzdHJhcC9wdWxsLzExNTI2XG4gIH1cbiAgJjotbXMtaW5wdXQtcGxhY2Vob2xkZXIgeyBjb2xvcjogJGNvbG9yOyB9IC8vIEludGVybmV0IEV4cGxvcmVyIDEwK1xuICAmOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyICB7IGNvbG9yOiAkY29sb3I7IH0gLy8gU2FmYXJpIGFuZCBDaHJvbWVcbn1cblxuLy8gVHJhbnNmb3JtYXRpb25zXG5AbWl4aW4gc2NhbGUoJHJhdGlvLi4uKSB7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgkcmF0aW8pO1xuICAgICAgLW1zLXRyYW5zZm9ybTogc2NhbGUoJHJhdGlvKTsgLy8gSUU5IG9ubHlcbiAgICAgICAtby10cmFuc2Zvcm06IHNjYWxlKCRyYXRpbyk7XG4gICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgkcmF0aW8pO1xufVxuXG5AbWl4aW4gc2NhbGVYKCRyYXRpbykge1xuICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGVYKCRyYXRpbyk7XG4gICAgICAtbXMtdHJhbnNmb3JtOiBzY2FsZVgoJHJhdGlvKTsgLy8gSUU5IG9ubHlcbiAgICAgICAtby10cmFuc2Zvcm06IHNjYWxlWCgkcmF0aW8pO1xuICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGVYKCRyYXRpbyk7XG59XG5AbWl4aW4gc2NhbGVZKCRyYXRpbykge1xuICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGVZKCRyYXRpbyk7XG4gICAgICAtbXMtdHJhbnNmb3JtOiBzY2FsZVkoJHJhdGlvKTsgLy8gSUU5IG9ubHlcbiAgICAgICAtby10cmFuc2Zvcm06IHNjYWxlWSgkcmF0aW8pO1xuICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGVZKCRyYXRpbyk7XG59XG5AbWl4aW4gc2tldygkeCwgJHkpIHtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHNrZXdYKCR4KSBza2V3WSgkeSk7XG4gICAgICAtbXMtdHJhbnNmb3JtOiBza2V3WCgkeCkgc2tld1koJHkpOyAvLyBTZWUgaHR0cHM6Ly9naXRodWIuY29tL3R3YnMvYm9vdHN0cmFwL2lzc3Vlcy80ODg1OyBJRTkrXG4gICAgICAgLW8tdHJhbnNmb3JtOiBza2V3WCgkeCkgc2tld1koJHkpO1xuICAgICAgICAgIHRyYW5zZm9ybTogc2tld1goJHgpIHNrZXdZKCR5KTtcbn1cbkBtaXhpbiB0cmFuc2xhdGUoJHgsICR5KSB7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoJHgsICR5KTtcbiAgICAgIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZSgkeCwgJHkpOyAvLyBJRTkgb25seVxuICAgICAgIC1vLXRyYW5zZm9ybTogdHJhbnNsYXRlKCR4LCAkeSk7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoJHgsICR5KTtcbn1cbkBtaXhpbiB0cmFuc2xhdGUzZCgkeCwgJHksICR6KSB7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgkeCwgJHksICR6KTtcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKCR4LCAkeSwgJHopO1xufVxuQG1peGluIHJvdGF0ZSgkZGVncmVlcykge1xuICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKCRkZWdyZWVzKTtcbiAgICAgIC1tcy10cmFuc2Zvcm06IHJvdGF0ZSgkZGVncmVlcyk7IC8vIElFOSBvbmx5XG4gICAgICAgLW8tdHJhbnNmb3JtOiByb3RhdGUoJGRlZ3JlZXMpO1xuICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKCRkZWdyZWVzKTtcbn1cbkBtaXhpbiByb3RhdGVYKCRkZWdyZWVzKSB7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGVYKCRkZWdyZWVzKTtcbiAgICAgIC1tcy10cmFuc2Zvcm06IHJvdGF0ZVgoJGRlZ3JlZXMpOyAvLyBJRTkgb25seVxuICAgICAgIC1vLXRyYW5zZm9ybTogcm90YXRlWCgkZGVncmVlcyk7XG4gICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGVYKCRkZWdyZWVzKTtcbn1cbkBtaXhpbiByb3RhdGVZKCRkZWdyZWVzKSB7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGVZKCRkZWdyZWVzKTtcbiAgICAgIC1tcy10cmFuc2Zvcm06IHJvdGF0ZVkoJGRlZ3JlZXMpOyAvLyBJRTkgb25seVxuICAgICAgIC1vLXRyYW5zZm9ybTogcm90YXRlWSgkZGVncmVlcyk7XG4gICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGVZKCRkZWdyZWVzKTtcbn1cbkBtaXhpbiBwZXJzcGVjdGl2ZSgkcGVyc3BlY3RpdmUpIHtcbiAgLXdlYmtpdC1wZXJzcGVjdGl2ZTogJHBlcnNwZWN0aXZlO1xuICAgICAtbW96LXBlcnNwZWN0aXZlOiAkcGVyc3BlY3RpdmU7XG4gICAgICAgICAgcGVyc3BlY3RpdmU6ICRwZXJzcGVjdGl2ZTtcbn1cbkBtaXhpbiBwZXJzcGVjdGl2ZS1vcmlnaW4oJHBlcnNwZWN0aXZlKSB7XG4gIC13ZWJraXQtcGVyc3BlY3RpdmUtb3JpZ2luOiAkcGVyc3BlY3RpdmU7XG4gICAgIC1tb3otcGVyc3BlY3RpdmUtb3JpZ2luOiAkcGVyc3BlY3RpdmU7XG4gICAgICAgICAgcGVyc3BlY3RpdmUtb3JpZ2luOiAkcGVyc3BlY3RpdmU7XG59XG5AbWl4aW4gdHJhbnNmb3JtLW9yaWdpbigkb3JpZ2luKSB7XG4gIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogJG9yaWdpbjtcbiAgICAgLW1vei10cmFuc2Zvcm0tb3JpZ2luOiAkb3JpZ2luO1xuICAgICAgLW1zLXRyYW5zZm9ybS1vcmlnaW46ICRvcmlnaW47IC8vIElFOSBvbmx5XG4gICAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogJG9yaWdpbjtcbn1cblxuXG4vLyBUcmFuc2l0aW9uc1xuXG5AbWl4aW4gdHJhbnNpdGlvbigkdHJhbnNpdGlvbi4uLikge1xuICAtd2Via2l0LXRyYW5zaXRpb246ICR0cmFuc2l0aW9uO1xuICAgICAgIC1vLXRyYW5zaXRpb246ICR0cmFuc2l0aW9uO1xuICAgICAgICAgIHRyYW5zaXRpb246ICR0cmFuc2l0aW9uO1xufVxuQG1peGluIHRyYW5zaXRpb24tcHJvcGVydHkoJHRyYW5zaXRpb24tcHJvcGVydHkuLi4pIHtcbiAgLXdlYmtpdC10cmFuc2l0aW9uLXByb3BlcnR5OiAkdHJhbnNpdGlvbi1wcm9wZXJ0eTtcbiAgICAgICAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiAkdHJhbnNpdGlvbi1wcm9wZXJ0eTtcbn1cbkBtaXhpbiB0cmFuc2l0aW9uLWRlbGF5KCR0cmFuc2l0aW9uLWRlbGF5KSB7XG4gIC13ZWJraXQtdHJhbnNpdGlvbi1kZWxheTogJHRyYW5zaXRpb24tZGVsYXk7XG4gICAgICAgICAgdHJhbnNpdGlvbi1kZWxheTogJHRyYW5zaXRpb24tZGVsYXk7XG59XG5AbWl4aW4gdHJhbnNpdGlvbi1kdXJhdGlvbigkdHJhbnNpdGlvbi1kdXJhdGlvbi4uLikge1xuICAtd2Via2l0LXRyYW5zaXRpb24tZHVyYXRpb246ICR0cmFuc2l0aW9uLWR1cmF0aW9uO1xuICAgICAgICAgIHRyYW5zaXRpb24tZHVyYXRpb246ICR0cmFuc2l0aW9uLWR1cmF0aW9uO1xufVxuQG1peGluIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uKCR0aW1pbmctZnVuY3Rpb24pIHtcbiAgLXdlYmtpdC10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogJHRpbWluZy1mdW5jdGlvbjtcbiAgICAgICAgICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogJHRpbWluZy1mdW5jdGlvbjtcbn1cbkBtaXhpbiB0cmFuc2l0aW9uLXRyYW5zZm9ybSgkdHJhbnNpdGlvbi4uLikge1xuICAtd2Via2l0LXRyYW5zaXRpb246IC13ZWJraXQtdHJhbnNmb3JtICR0cmFuc2l0aW9uO1xuICAgICAtbW96LXRyYW5zaXRpb246IC1tb3otdHJhbnNmb3JtICR0cmFuc2l0aW9uO1xuICAgICAgIC1vLXRyYW5zaXRpb246IC1vLXRyYW5zZm9ybSAkdHJhbnNpdGlvbjtcbiAgICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gJHRyYW5zaXRpb247XG59XG5cblxuLy8gVXNlciBzZWxlY3Rcbi8vIEZvciBzZWxlY3RpbmcgdGV4dCBvbiB0aGUgcGFnZVxuXG5AbWl4aW4gdXNlci1zZWxlY3QoJHNlbGVjdCkge1xuICAtd2Via2l0LXVzZXItc2VsZWN0OiAkc2VsZWN0O1xuICAgICAtbW96LXVzZXItc2VsZWN0OiAkc2VsZWN0O1xuICAgICAgLW1zLXVzZXItc2VsZWN0OiAkc2VsZWN0OyAvLyBJRTEwK1xuICAgICAgICAgIHVzZXItc2VsZWN0OiAkc2VsZWN0O1xufVxuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vbm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC1zYXNzL2Fzc2V0cy9zdHlsZXNoZWV0cy9ib290c3RyYXAvbWl4aW5zL192ZW5kb3ItcHJlZml4ZXMuc2NzcyIsIiRib290c3RyYXAtc2Fzcy1hc3NldC1oZWxwZXI6IGZhbHNlICFkZWZhdWx0O1xuLy9cbi8vIFZhcmlhYmxlc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuXG4vLz09IENvbG9yc1xuLy9cbi8vIyMgR3JheSBhbmQgYnJhbmQgY29sb3JzIGZvciB1c2UgYWNyb3NzIEJvb3RzdHJhcC5cblxuJGdyYXktYmFzZTogICAgICAgICAgICAgICMwMDAgIWRlZmF1bHQ7XG4kZ3JheS1kYXJrZXI6ICAgICAgICAgICAgbGlnaHRlbigkZ3JheS1iYXNlLCAxMy41JSkgIWRlZmF1bHQ7IC8vICMyMjJcbiRncmF5LWRhcms6ICAgICAgICAgICAgICBsaWdodGVuKCRncmF5LWJhc2UsIDIwJSkgIWRlZmF1bHQ7ICAgLy8gIzMzM1xuJGdyYXk6ICAgICAgICAgICAgICAgICAgIGxpZ2h0ZW4oJGdyYXktYmFzZSwgMzMuNSUpICFkZWZhdWx0OyAvLyAjNTU1XG4kZ3JheS1saWdodDogICAgICAgICAgICAgbGlnaHRlbigkZ3JheS1iYXNlLCA0Ni43JSkgIWRlZmF1bHQ7IC8vICM3NzdcbiRncmF5LWxpZ2h0ZXI6ICAgICAgICAgICBsaWdodGVuKCRncmF5LWJhc2UsIDkzLjUlKSAhZGVmYXVsdDsgLy8gI2VlZVxuXG4kYnJhbmQtcHJpbWFyeTogICAgICAgICBkYXJrZW4oIzQyOGJjYSwgNi41JSkgIWRlZmF1bHQ7IC8vICMzMzdhYjdcbiRicmFuZC1zdWNjZXNzOiAgICAgICAgICM1Y2I4NWMgIWRlZmF1bHQ7XG4kYnJhbmQtaW5mbzogICAgICAgICAgICAjNWJjMGRlICFkZWZhdWx0O1xuJGJyYW5kLXdhcm5pbmc6ICAgICAgICAgI2YwYWQ0ZSAhZGVmYXVsdDtcbiRicmFuZC1kYW5nZXI6ICAgICAgICAgICNkOTUzNGYgIWRlZmF1bHQ7XG5cblxuLy89PSBTY2FmZm9sZGluZ1xuLy9cbi8vIyMgU2V0dGluZ3MgZm9yIHNvbWUgb2YgdGhlIG1vc3QgZ2xvYmFsIHN0eWxlcy5cblxuLy8qKiBCYWNrZ3JvdW5kIGNvbG9yIGZvciBgPGJvZHk+YC5cbiRib2R5LWJnOiAgICAgICAgICAgICAgICNmZmYgIWRlZmF1bHQ7XG4vLyoqIEdsb2JhbCB0ZXh0IGNvbG9yIG9uIGA8Ym9keT5gLlxuJHRleHQtY29sb3I6ICAgICAgICAgICAgJGdyYXktZGFyayAhZGVmYXVsdDtcblxuLy8qKiBHbG9iYWwgdGV4dHVhbCBsaW5rIGNvbG9yLlxuJGxpbmstY29sb3I6ICAgICAgICAgICAgJGJyYW5kLXByaW1hcnkgIWRlZmF1bHQ7XG4vLyoqIExpbmsgaG92ZXIgY29sb3Igc2V0IHZpYSBgZGFya2VuKClgIGZ1bmN0aW9uLlxuJGxpbmstaG92ZXItY29sb3I6ICAgICAgZGFya2VuKCRsaW5rLWNvbG9yLCAxNSUpICFkZWZhdWx0O1xuLy8qKiBMaW5rIGhvdmVyIGRlY29yYXRpb24uXG4kbGluay1ob3Zlci1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgIWRlZmF1bHQ7XG5cblxuLy89PSBUeXBvZ3JhcGh5XG4vL1xuLy8jIyBGb250LCBsaW5lLWhlaWdodCwgYW5kIGNvbG9yIGZvciBib2R5IHRleHQsIGhlYWRpbmdzLCBhbmQgbW9yZS5cblxuJGZvbnQtZmFtaWx5LXNhbnMtc2VyaWY6ICBcIkhlbHZldGljYSBOZXVlXCIsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWYgIWRlZmF1bHQ7XG4kZm9udC1mYW1pbHktc2VyaWY6ICAgICAgIEdlb3JnaWEsIFwiVGltZXMgTmV3IFJvbWFuXCIsIFRpbWVzLCBzZXJpZiAhZGVmYXVsdDtcbi8vKiogRGVmYXVsdCBtb25vc3BhY2UgZm9udHMgZm9yIGA8Y29kZT5gLCBgPGtiZD5gLCBhbmQgYDxwcmU+YC5cbiRmb250LWZhbWlseS1tb25vc3BhY2U6ICAgTWVubG8sIE1vbmFjbywgQ29uc29sYXMsIFwiQ291cmllciBOZXdcIiwgbW9ub3NwYWNlICFkZWZhdWx0O1xuJGZvbnQtZmFtaWx5LWJhc2U6ICAgICAgICAkZm9udC1mYW1pbHktc2Fucy1zZXJpZiAhZGVmYXVsdDtcblxuJGZvbnQtc2l6ZS1iYXNlOiAgICAgICAgICAxNHB4ICFkZWZhdWx0O1xuJGZvbnQtc2l6ZS1sYXJnZTogICAgICAgICBjZWlsKCgkZm9udC1zaXplLWJhc2UgKiAxLjI1KSkgIWRlZmF1bHQ7IC8vIH4xOHB4XG4kZm9udC1zaXplLXNtYWxsOiAgICAgICAgIGNlaWwoKCRmb250LXNpemUtYmFzZSAqIDAuODUpKSAhZGVmYXVsdDsgLy8gfjEycHhcblxuJGZvbnQtc2l6ZS1oMTogICAgICAgICAgICBmbG9vcigoJGZvbnQtc2l6ZS1iYXNlICogMi42KSkgIWRlZmF1bHQ7IC8vIH4zNnB4XG4kZm9udC1zaXplLWgyOiAgICAgICAgICAgIGZsb29yKCgkZm9udC1zaXplLWJhc2UgKiAyLjE1KSkgIWRlZmF1bHQ7IC8vIH4zMHB4XG4kZm9udC1zaXplLWgzOiAgICAgICAgICAgIGNlaWwoKCRmb250LXNpemUtYmFzZSAqIDEuNykpICFkZWZhdWx0OyAvLyB+MjRweFxuJGZvbnQtc2l6ZS1oNDogICAgICAgICAgICBjZWlsKCgkZm9udC1zaXplLWJhc2UgKiAxLjI1KSkgIWRlZmF1bHQ7IC8vIH4xOHB4XG4kZm9udC1zaXplLWg1OiAgICAgICAgICAgICRmb250LXNpemUtYmFzZSAhZGVmYXVsdDtcbiRmb250LXNpemUtaDY6ICAgICAgICAgICAgY2VpbCgoJGZvbnQtc2l6ZS1iYXNlICogMC44NSkpICFkZWZhdWx0OyAvLyB+MTJweFxuXG4vLyoqIFVuaXQtbGVzcyBgbGluZS1oZWlnaHRgIGZvciB1c2UgaW4gY29tcG9uZW50cyBsaWtlIGJ1dHRvbnMuXG4kbGluZS1oZWlnaHQtYmFzZTogICAgICAgIDEuNDI4NTcxNDI5ICFkZWZhdWx0OyAvLyAyMC8xNFxuLy8qKiBDb21wdXRlZCBcImxpbmUtaGVpZ2h0XCIgKGBmb250LXNpemVgICogYGxpbmUtaGVpZ2h0YCkgZm9yIHVzZSB3aXRoIGBtYXJnaW5gLCBgcGFkZGluZ2AsIGV0Yy5cbiRsaW5lLWhlaWdodC1jb21wdXRlZDogICAgZmxvb3IoKCRmb250LXNpemUtYmFzZSAqICRsaW5lLWhlaWdodC1iYXNlKSkgIWRlZmF1bHQ7IC8vIH4yMHB4XG5cbi8vKiogQnkgZGVmYXVsdCwgdGhpcyBpbmhlcml0cyBmcm9tIHRoZSBgPGJvZHk+YC5cbiRoZWFkaW5ncy1mb250LWZhbWlseTogICAgaW5oZXJpdCAhZGVmYXVsdDtcbiRoZWFkaW5ncy1mb250LXdlaWdodDogICAgNTAwICFkZWZhdWx0O1xuJGhlYWRpbmdzLWxpbmUtaGVpZ2h0OiAgICAxLjEgIWRlZmF1bHQ7XG4kaGVhZGluZ3MtY29sb3I6ICAgICAgICAgIGluaGVyaXQgIWRlZmF1bHQ7XG5cblxuLy89PSBJY29ub2dyYXBoeVxuLy9cbi8vIyMgU3BlY2lmeSBjdXN0b20gbG9jYXRpb24gYW5kIGZpbGVuYW1lIG9mIHRoZSBpbmNsdWRlZCBHbHlwaGljb25zIGljb24gZm9udC4gVXNlZnVsIGZvciB0aG9zZSBpbmNsdWRpbmcgQm9vdHN0cmFwIHZpYSBCb3dlci5cblxuLy8qKiBMb2FkIGZvbnRzIGZyb20gdGhpcyBkaXJlY3RvcnkuXG5cbi8vIFtjb252ZXJ0ZXJdIElmICRib290c3RyYXAtc2Fzcy1hc3NldC1oZWxwZXIgaWYgdXNlZCwgcHJvdmlkZSBwYXRoIHJlbGF0aXZlIHRvIHRoZSBhc3NldHMgbG9hZCBwYXRoLlxuLy8gW2NvbnZlcnRlcl0gVGhpcyBpcyBiZWNhdXNlIHNvbWUgYXNzZXQgaGVscGVycywgc3VjaCBhcyBTcHJvY2tldHMsIGRvIG5vdCB3b3JrIHdpdGggZmlsZS1yZWxhdGl2ZSBwYXRocy5cbiRpY29uLWZvbnQtcGF0aDogaWYoJGJvb3RzdHJhcC1zYXNzLWFzc2V0LWhlbHBlciwgXCJib290c3RyYXAvXCIsIFwiLi4vZm9udHMvYm9vdHN0cmFwL1wiKSAhZGVmYXVsdDtcblxuLy8qKiBGaWxlIG5hbWUgZm9yIGFsbCBmb250IGZpbGVzLlxuJGljb24tZm9udC1uYW1lOiAgICAgICAgICBcImdseXBoaWNvbnMtaGFsZmxpbmdzLXJlZ3VsYXJcIiAhZGVmYXVsdDtcbi8vKiogRWxlbWVudCBJRCB3aXRoaW4gU1ZHIGljb24gZmlsZS5cbiRpY29uLWZvbnQtc3ZnLWlkOiAgICAgICAgXCJnbHlwaGljb25zX2hhbGZsaW5nc3JlZ3VsYXJcIiAhZGVmYXVsdDtcblxuXG4vLz09IENvbXBvbmVudHNcbi8vXG4vLyMjIERlZmluZSBjb21tb24gcGFkZGluZyBhbmQgYm9yZGVyIHJhZGl1cyBzaXplcyBhbmQgbW9yZS4gVmFsdWVzIGJhc2VkIG9uIDE0cHggdGV4dCBhbmQgMS40MjggbGluZS1oZWlnaHQgKH4yMHB4IHRvIHN0YXJ0KS5cblxuJHBhZGRpbmctYmFzZS12ZXJ0aWNhbDogICAgIDZweCAhZGVmYXVsdDtcbiRwYWRkaW5nLWJhc2UtaG9yaXpvbnRhbDogICAxMnB4ICFkZWZhdWx0O1xuXG4kcGFkZGluZy1sYXJnZS12ZXJ0aWNhbDogICAgMTBweCAhZGVmYXVsdDtcbiRwYWRkaW5nLWxhcmdlLWhvcml6b250YWw6ICAxNnB4ICFkZWZhdWx0O1xuXG4kcGFkZGluZy1zbWFsbC12ZXJ0aWNhbDogICAgNXB4ICFkZWZhdWx0O1xuJHBhZGRpbmctc21hbGwtaG9yaXpvbnRhbDogIDEwcHggIWRlZmF1bHQ7XG5cbiRwYWRkaW5nLXhzLXZlcnRpY2FsOiAgICAgICAxcHggIWRlZmF1bHQ7XG4kcGFkZGluZy14cy1ob3Jpem9udGFsOiAgICAgNXB4ICFkZWZhdWx0O1xuXG4kbGluZS1oZWlnaHQtbGFyZ2U6ICAgICAgICAgMS4zMzMzMzMzICFkZWZhdWx0OyAvLyBleHRyYSBkZWNpbWFscyBmb3IgV2luIDguMSBDaHJvbWVcbiRsaW5lLWhlaWdodC1zbWFsbDogICAgICAgICAxLjUgIWRlZmF1bHQ7XG5cbiRib3JkZXItcmFkaXVzLWJhc2U6ICAgICAgICA0cHggIWRlZmF1bHQ7XG4kYm9yZGVyLXJhZGl1cy1sYXJnZTogICAgICAgNnB4ICFkZWZhdWx0O1xuJGJvcmRlci1yYWRpdXMtc21hbGw6ICAgICAgIDNweCAhZGVmYXVsdDtcblxuLy8qKiBHbG9iYWwgY29sb3IgZm9yIGFjdGl2ZSBpdGVtcyAoZS5nLiwgbmF2cyBvciBkcm9wZG93bnMpLlxuJGNvbXBvbmVudC1hY3RpdmUtY29sb3I6ICAgICNmZmYgIWRlZmF1bHQ7XG4vLyoqIEdsb2JhbCBiYWNrZ3JvdW5kIGNvbG9yIGZvciBhY3RpdmUgaXRlbXMgKGUuZy4sIG5hdnMgb3IgZHJvcGRvd25zKS5cbiRjb21wb25lbnQtYWN0aXZlLWJnOiAgICAgICAkYnJhbmQtcHJpbWFyeSAhZGVmYXVsdDtcblxuLy8qKiBXaWR0aCBvZiB0aGUgYGJvcmRlcmAgZm9yIGdlbmVyYXRpbmcgY2FyZXRzIHRoYXQgaW5kaWNhdGUgZHJvcGRvd25zLlxuJGNhcmV0LXdpZHRoLWJhc2U6ICAgICAgICAgIDRweCAhZGVmYXVsdDtcbi8vKiogQ2FyZXRzIGluY3JlYXNlIHNsaWdodGx5IGluIHNpemUgZm9yIGxhcmdlciBjb21wb25lbnRzLlxuJGNhcmV0LXdpZHRoLWxhcmdlOiAgICAgICAgIDVweCAhZGVmYXVsdDtcblxuXG4vLz09IFRhYmxlc1xuLy9cbi8vIyMgQ3VzdG9taXplcyB0aGUgYC50YWJsZWAgY29tcG9uZW50IHdpdGggYmFzaWMgdmFsdWVzLCBlYWNoIHVzZWQgYWNyb3NzIGFsbCB0YWJsZSB2YXJpYXRpb25zLlxuXG4vLyoqIFBhZGRpbmcgZm9yIGA8dGg+YHMgYW5kIGA8dGQ+YHMuXG4kdGFibGUtY2VsbC1wYWRkaW5nOiAgICAgICAgICAgIDhweCAhZGVmYXVsdDtcbi8vKiogUGFkZGluZyBmb3IgY2VsbHMgaW4gYC50YWJsZS1jb25kZW5zZWRgLlxuJHRhYmxlLWNvbmRlbnNlZC1jZWxsLXBhZGRpbmc6ICA1cHggIWRlZmF1bHQ7XG5cbi8vKiogRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIHVzZWQgZm9yIGFsbCB0YWJsZXMuXG4kdGFibGUtYmc6ICAgICAgICAgICAgICAgICAgICAgIHRyYW5zcGFyZW50ICFkZWZhdWx0O1xuLy8qKiBCYWNrZ3JvdW5kIGNvbG9yIHVzZWQgZm9yIGAudGFibGUtc3RyaXBlZGAuXG4kdGFibGUtYmctYWNjZW50OiAgICAgICAgICAgICAgICNmOWY5ZjkgIWRlZmF1bHQ7XG4vLyoqIEJhY2tncm91bmQgY29sb3IgdXNlZCBmb3IgYC50YWJsZS1ob3ZlcmAuXG4kdGFibGUtYmctaG92ZXI6ICAgICAgICAgICAgICAgICNmNWY1ZjUgIWRlZmF1bHQ7XG4kdGFibGUtYmctYWN0aXZlOiAgICAgICAgICAgICAgICR0YWJsZS1iZy1ob3ZlciAhZGVmYXVsdDtcblxuLy8qKiBCb3JkZXIgY29sb3IgZm9yIHRhYmxlIGFuZCBjZWxsIGJvcmRlcnMuXG4kdGFibGUtYm9yZGVyLWNvbG9yOiAgICAgICAgICAgICNkZGQgIWRlZmF1bHQ7XG5cblxuLy89PSBCdXR0b25zXG4vL1xuLy8jIyBGb3IgZWFjaCBvZiBCb290c3RyYXAncyBidXR0b25zLCBkZWZpbmUgdGV4dCwgYmFja2dyb3VuZCBhbmQgYm9yZGVyIGNvbG9yLlxuXG4kYnRuLWZvbnQtd2VpZ2h0OiAgICAgICAgICAgICAgICBub3JtYWwgIWRlZmF1bHQ7XG5cbiRidG4tZGVmYXVsdC1jb2xvcjogICAgICAgICAgICAgICMzMzMgIWRlZmF1bHQ7XG4kYnRuLWRlZmF1bHQtYmc6ICAgICAgICAgICAgICAgICAjZmZmICFkZWZhdWx0O1xuJGJ0bi1kZWZhdWx0LWJvcmRlcjogICAgICAgICAgICAgI2NjYyAhZGVmYXVsdDtcblxuJGJ0bi1wcmltYXJ5LWNvbG9yOiAgICAgICAgICAgICAgI2ZmZiAhZGVmYXVsdDtcbiRidG4tcHJpbWFyeS1iZzogICAgICAgICAgICAgICAgICRicmFuZC1wcmltYXJ5ICFkZWZhdWx0O1xuJGJ0bi1wcmltYXJ5LWJvcmRlcjogICAgICAgICAgICAgZGFya2VuKCRidG4tcHJpbWFyeS1iZywgNSUpICFkZWZhdWx0O1xuXG4kYnRuLXN1Y2Nlc3MtY29sb3I6ICAgICAgICAgICAgICAjZmZmICFkZWZhdWx0O1xuJGJ0bi1zdWNjZXNzLWJnOiAgICAgICAgICAgICAgICAgJGJyYW5kLXN1Y2Nlc3MgIWRlZmF1bHQ7XG4kYnRuLXN1Y2Nlc3MtYm9yZGVyOiAgICAgICAgICAgICBkYXJrZW4oJGJ0bi1zdWNjZXNzLWJnLCA1JSkgIWRlZmF1bHQ7XG5cbiRidG4taW5mby1jb2xvcjogICAgICAgICAgICAgICAgICNmZmYgIWRlZmF1bHQ7XG4kYnRuLWluZm8tYmc6ICAgICAgICAgICAgICAgICAgICAkYnJhbmQtaW5mbyAhZGVmYXVsdDtcbiRidG4taW5mby1ib3JkZXI6ICAgICAgICAgICAgICAgIGRhcmtlbigkYnRuLWluZm8tYmcsIDUlKSAhZGVmYXVsdDtcblxuJGJ0bi13YXJuaW5nLWNvbG9yOiAgICAgICAgICAgICAgI2ZmZiAhZGVmYXVsdDtcbiRidG4td2FybmluZy1iZzogICAgICAgICAgICAgICAgICRicmFuZC13YXJuaW5nICFkZWZhdWx0O1xuJGJ0bi13YXJuaW5nLWJvcmRlcjogICAgICAgICAgICAgZGFya2VuKCRidG4td2FybmluZy1iZywgNSUpICFkZWZhdWx0O1xuXG4kYnRuLWRhbmdlci1jb2xvcjogICAgICAgICAgICAgICAjZmZmICFkZWZhdWx0O1xuJGJ0bi1kYW5nZXItYmc6ICAgICAgICAgICAgICAgICAgJGJyYW5kLWRhbmdlciAhZGVmYXVsdDtcbiRidG4tZGFuZ2VyLWJvcmRlcjogICAgICAgICAgICAgIGRhcmtlbigkYnRuLWRhbmdlci1iZywgNSUpICFkZWZhdWx0O1xuXG4kYnRuLWxpbmstZGlzYWJsZWQtY29sb3I6ICAgICAgICAkZ3JheS1saWdodCAhZGVmYXVsdDtcblxuLy8gQWxsb3dzIGZvciBjdXN0b21pemluZyBidXR0b24gcmFkaXVzIGluZGVwZW5kZW50bHkgZnJvbSBnbG9iYWwgYm9yZGVyIHJhZGl1c1xuJGJ0bi1ib3JkZXItcmFkaXVzLWJhc2U6ICAgICAgICAgJGJvcmRlci1yYWRpdXMtYmFzZSAhZGVmYXVsdDtcbiRidG4tYm9yZGVyLXJhZGl1cy1sYXJnZTogICAgICAgICRib3JkZXItcmFkaXVzLWxhcmdlICFkZWZhdWx0O1xuJGJ0bi1ib3JkZXItcmFkaXVzLXNtYWxsOiAgICAgICAgJGJvcmRlci1yYWRpdXMtc21hbGwgIWRlZmF1bHQ7XG5cblxuLy89PSBGb3Jtc1xuLy9cbi8vIyNcblxuLy8qKiBgPGlucHV0PmAgYmFja2dyb3VuZCBjb2xvclxuJGlucHV0LWJnOiAgICAgICAgICAgICAgICAgICAgICAgI2ZmZiAhZGVmYXVsdDtcbi8vKiogYDxpbnB1dCBkaXNhYmxlZD5gIGJhY2tncm91bmQgY29sb3JcbiRpbnB1dC1iZy1kaXNhYmxlZDogICAgICAgICAgICAgICRncmF5LWxpZ2h0ZXIgIWRlZmF1bHQ7XG5cbi8vKiogVGV4dCBjb2xvciBmb3IgYDxpbnB1dD5gc1xuJGlucHV0LWNvbG9yOiAgICAgICAgICAgICAgICAgICAgJGdyYXkgIWRlZmF1bHQ7XG4vLyoqIGA8aW5wdXQ+YCBib3JkZXIgY29sb3JcbiRpbnB1dC1ib3JkZXI6ICAgICAgICAgICAgICAgICAgICNjY2MgIWRlZmF1bHQ7XG5cbi8vIFRPRE86IFJlbmFtZSBgJGlucHV0LWJvcmRlci1yYWRpdXNgIHRvIGAkaW5wdXQtYm9yZGVyLXJhZGl1cy1iYXNlYCBpbiB2NFxuLy8qKiBEZWZhdWx0IGAuZm9ybS1jb250cm9sYCBib3JkZXIgcmFkaXVzXG4vLyBUaGlzIGhhcyBubyBlZmZlY3Qgb24gYDxzZWxlY3Q+YHMgaW4gc29tZSBicm93c2VycywgZHVlIHRvIHRoZSBsaW1pdGVkIHN0eWxhYmlsaXR5IG9mIGA8c2VsZWN0PmBzIGluIENTUy5cbiRpbnB1dC1ib3JkZXItcmFkaXVzOiAgICAgICAgICAgICRib3JkZXItcmFkaXVzLWJhc2UgIWRlZmF1bHQ7XG4vLyoqIExhcmdlIGAuZm9ybS1jb250cm9sYCBib3JkZXIgcmFkaXVzXG4kaW5wdXQtYm9yZGVyLXJhZGl1cy1sYXJnZTogICAgICAkYm9yZGVyLXJhZGl1cy1sYXJnZSAhZGVmYXVsdDtcbi8vKiogU21hbGwgYC5mb3JtLWNvbnRyb2xgIGJvcmRlciByYWRpdXNcbiRpbnB1dC1ib3JkZXItcmFkaXVzLXNtYWxsOiAgICAgICRib3JkZXItcmFkaXVzLXNtYWxsICFkZWZhdWx0O1xuXG4vLyoqIEJvcmRlciBjb2xvciBmb3IgaW5wdXRzIG9uIGZvY3VzXG4kaW5wdXQtYm9yZGVyLWZvY3VzOiAgICAgICAgICAgICAjNjZhZmU5ICFkZWZhdWx0O1xuXG4vLyoqIFBsYWNlaG9sZGVyIHRleHQgY29sb3JcbiRpbnB1dC1jb2xvci1wbGFjZWhvbGRlcjogICAgICAgICM5OTkgIWRlZmF1bHQ7XG5cbi8vKiogRGVmYXVsdCBgLmZvcm0tY29udHJvbGAgaGVpZ2h0XG4kaW5wdXQtaGVpZ2h0LWJhc2U6ICAgICAgICAgICAgICAoJGxpbmUtaGVpZ2h0LWNvbXB1dGVkICsgKCRwYWRkaW5nLWJhc2UtdmVydGljYWwgKiAyKSArIDIpICFkZWZhdWx0O1xuLy8qKiBMYXJnZSBgLmZvcm0tY29udHJvbGAgaGVpZ2h0XG4kaW5wdXQtaGVpZ2h0LWxhcmdlOiAgICAgICAgICAgICAoY2VpbCgkZm9udC1zaXplLWxhcmdlICogJGxpbmUtaGVpZ2h0LWxhcmdlKSArICgkcGFkZGluZy1sYXJnZS12ZXJ0aWNhbCAqIDIpICsgMikgIWRlZmF1bHQ7XG4vLyoqIFNtYWxsIGAuZm9ybS1jb250cm9sYCBoZWlnaHRcbiRpbnB1dC1oZWlnaHQtc21hbGw6ICAgICAgICAgICAgIChmbG9vcigkZm9udC1zaXplLXNtYWxsICogJGxpbmUtaGVpZ2h0LXNtYWxsKSArICgkcGFkZGluZy1zbWFsbC12ZXJ0aWNhbCAqIDIpICsgMikgIWRlZmF1bHQ7XG5cbi8vKiogYC5mb3JtLWdyb3VwYCBtYXJnaW5cbiRmb3JtLWdyb3VwLW1hcmdpbi1ib3R0b206ICAgICAgIDE1cHggIWRlZmF1bHQ7XG5cbiRsZWdlbmQtY29sb3I6ICAgICAgICAgICAgICAgICAgICRncmF5LWRhcmsgIWRlZmF1bHQ7XG4kbGVnZW5kLWJvcmRlci1jb2xvcjogICAgICAgICAgICAjZTVlNWU1ICFkZWZhdWx0O1xuXG4vLyoqIEJhY2tncm91bmQgY29sb3IgZm9yIHRleHR1YWwgaW5wdXQgYWRkb25zXG4kaW5wdXQtZ3JvdXAtYWRkb24tYmc6ICAgICAgICAgICAkZ3JheS1saWdodGVyICFkZWZhdWx0O1xuLy8qKiBCb3JkZXIgY29sb3IgZm9yIHRleHR1YWwgaW5wdXQgYWRkb25zXG4kaW5wdXQtZ3JvdXAtYWRkb24tYm9yZGVyLWNvbG9yOiAkaW5wdXQtYm9yZGVyICFkZWZhdWx0O1xuXG4vLyoqIERpc2FibGVkIGN1cnNvciBmb3IgZm9ybSBjb250cm9scyBhbmQgYnV0dG9ucy5cbiRjdXJzb3ItZGlzYWJsZWQ6ICAgICAgICAgICAgICAgIG5vdC1hbGxvd2VkICFkZWZhdWx0O1xuXG5cbi8vPT0gRHJvcGRvd25zXG4vL1xuLy8jIyBEcm9wZG93biBtZW51IGNvbnRhaW5lciBhbmQgY29udGVudHMuXG5cbi8vKiogQmFja2dyb3VuZCBmb3IgdGhlIGRyb3Bkb3duIG1lbnUuXG4kZHJvcGRvd24tYmc6ICAgICAgICAgICAgICAgICAgICAjZmZmICFkZWZhdWx0O1xuLy8qKiBEcm9wZG93biBtZW51IGBib3JkZXItY29sb3JgLlxuJGRyb3Bkb3duLWJvcmRlcjogICAgICAgICAgICAgICAgcmdiYSgwLDAsMCwuMTUpICFkZWZhdWx0O1xuLy8qKiBEcm9wZG93biBtZW51IGBib3JkZXItY29sb3JgICoqZm9yIElFOCoqLlxuJGRyb3Bkb3duLWZhbGxiYWNrLWJvcmRlcjogICAgICAgI2NjYyAhZGVmYXVsdDtcbi8vKiogRGl2aWRlciBjb2xvciBmb3IgYmV0d2VlbiBkcm9wZG93biBpdGVtcy5cbiRkcm9wZG93bi1kaXZpZGVyLWJnOiAgICAgICAgICAgICNlNWU1ZTUgIWRlZmF1bHQ7XG5cbi8vKiogRHJvcGRvd24gbGluayB0ZXh0IGNvbG9yLlxuJGRyb3Bkb3duLWxpbmstY29sb3I6ICAgICAgICAgICAgJGdyYXktZGFyayAhZGVmYXVsdDtcbi8vKiogSG92ZXIgY29sb3IgZm9yIGRyb3Bkb3duIGxpbmtzLlxuJGRyb3Bkb3duLWxpbmstaG92ZXItY29sb3I6ICAgICAgZGFya2VuKCRncmF5LWRhcmssIDUlKSAhZGVmYXVsdDtcbi8vKiogSG92ZXIgYmFja2dyb3VuZCBmb3IgZHJvcGRvd24gbGlua3MuXG4kZHJvcGRvd24tbGluay1ob3Zlci1iZzogICAgICAgICAjZjVmNWY1ICFkZWZhdWx0O1xuXG4vLyoqIEFjdGl2ZSBkcm9wZG93biBtZW51IGl0ZW0gdGV4dCBjb2xvci5cbiRkcm9wZG93bi1saW5rLWFjdGl2ZS1jb2xvcjogICAgICRjb21wb25lbnQtYWN0aXZlLWNvbG9yICFkZWZhdWx0O1xuLy8qKiBBY3RpdmUgZHJvcGRvd24gbWVudSBpdGVtIGJhY2tncm91bmQgY29sb3IuXG4kZHJvcGRvd24tbGluay1hY3RpdmUtYmc6ICAgICAgICAkY29tcG9uZW50LWFjdGl2ZS1iZyAhZGVmYXVsdDtcblxuLy8qKiBEaXNhYmxlZCBkcm9wZG93biBtZW51IGl0ZW0gYmFja2dyb3VuZCBjb2xvci5cbiRkcm9wZG93bi1saW5rLWRpc2FibGVkLWNvbG9yOiAgICRncmF5LWxpZ2h0ICFkZWZhdWx0O1xuXG4vLyoqIFRleHQgY29sb3IgZm9yIGhlYWRlcnMgd2l0aGluIGRyb3Bkb3duIG1lbnVzLlxuJGRyb3Bkb3duLWhlYWRlci1jb2xvcjogICAgICAgICAgJGdyYXktbGlnaHQgIWRlZmF1bHQ7XG5cbi8vKiogRGVwcmVjYXRlZCBgJGRyb3Bkb3duLWNhcmV0LWNvbG9yYCBhcyBvZiB2My4xLjBcbiRkcm9wZG93bi1jYXJldC1jb2xvcjogICAgICAgICAgICMwMDAgIWRlZmF1bHQ7XG5cblxuLy8tLSBaLWluZGV4IG1hc3RlciBsaXN0XG4vL1xuLy8gV2FybmluZzogQXZvaWQgY3VzdG9taXppbmcgdGhlc2UgdmFsdWVzLiBUaGV5J3JlIHVzZWQgZm9yIGEgYmlyZCdzIGV5ZSB2aWV3XG4vLyBvZiBjb21wb25lbnRzIGRlcGVuZGVudCBvbiB0aGUgei1heGlzIGFuZCBhcmUgZGVzaWduZWQgdG8gYWxsIHdvcmsgdG9nZXRoZXIuXG4vL1xuLy8gTm90ZTogVGhlc2UgdmFyaWFibGVzIGFyZSBub3QgZ2VuZXJhdGVkIGludG8gdGhlIEN1c3RvbWl6ZXIuXG5cbiR6aW5kZXgtbmF2YmFyOiAgICAgICAgICAgIDEwMDAgIWRlZmF1bHQ7XG4kemluZGV4LWRyb3Bkb3duOiAgICAgICAgICAxMDAwICFkZWZhdWx0O1xuJHppbmRleC1wb3BvdmVyOiAgICAgICAgICAgMTA2MCAhZGVmYXVsdDtcbiR6aW5kZXgtdG9vbHRpcDogICAgICAgICAgIDEwNzAgIWRlZmF1bHQ7XG4kemluZGV4LW5hdmJhci1maXhlZDogICAgICAxMDMwICFkZWZhdWx0O1xuJHppbmRleC1tb2RhbC1iYWNrZ3JvdW5kOiAgMTA0MCAhZGVmYXVsdDtcbiR6aW5kZXgtbW9kYWw6ICAgICAgICAgICAgIDEwNTAgIWRlZmF1bHQ7XG5cblxuLy89PSBNZWRpYSBxdWVyaWVzIGJyZWFrcG9pbnRzXG4vL1xuLy8jIyBEZWZpbmUgdGhlIGJyZWFrcG9pbnRzIGF0IHdoaWNoIHlvdXIgbGF5b3V0IHdpbGwgY2hhbmdlLCBhZGFwdGluZyB0byBkaWZmZXJlbnQgc2NyZWVuIHNpemVzLlxuXG4vLyBFeHRyYSBzbWFsbCBzY3JlZW4gLyBwaG9uZVxuLy8qKiBEZXByZWNhdGVkIGAkc2NyZWVuLXhzYCBhcyBvZiB2My4wLjFcbiRzY3JlZW4teHM6ICAgICAgICAgICAgICAgICAgNDgwcHggIWRlZmF1bHQ7XG4vLyoqIERlcHJlY2F0ZWQgYCRzY3JlZW4teHMtbWluYCBhcyBvZiB2My4yLjBcbiRzY3JlZW4teHMtbWluOiAgICAgICAgICAgICAgJHNjcmVlbi14cyAhZGVmYXVsdDtcbi8vKiogRGVwcmVjYXRlZCBgJHNjcmVlbi1waG9uZWAgYXMgb2YgdjMuMC4xXG4kc2NyZWVuLXBob25lOiAgICAgICAgICAgICAgICRzY3JlZW4teHMtbWluICFkZWZhdWx0O1xuXG4vLyBTbWFsbCBzY3JlZW4gLyB0YWJsZXRcbi8vKiogRGVwcmVjYXRlZCBgJHNjcmVlbi1zbWAgYXMgb2YgdjMuMC4xXG4kc2NyZWVuLXNtOiAgICAgICAgICAgICAgICAgIDc2OHB4ICFkZWZhdWx0O1xuJHNjcmVlbi1zbS1taW46ICAgICAgICAgICAgICAkc2NyZWVuLXNtICFkZWZhdWx0O1xuLy8qKiBEZXByZWNhdGVkIGAkc2NyZWVuLXRhYmxldGAgYXMgb2YgdjMuMC4xXG4kc2NyZWVuLXRhYmxldDogICAgICAgICAgICAgICRzY3JlZW4tc20tbWluICFkZWZhdWx0O1xuXG4vLyBNZWRpdW0gc2NyZWVuIC8gZGVza3RvcFxuLy8qKiBEZXByZWNhdGVkIGAkc2NyZWVuLW1kYCBhcyBvZiB2My4wLjFcbiRzY3JlZW4tbWQ6ICAgICAgICAgICAgICAgICAgOTkycHggIWRlZmF1bHQ7XG4kc2NyZWVuLW1kLW1pbjogICAgICAgICAgICAgICRzY3JlZW4tbWQgIWRlZmF1bHQ7XG4vLyoqIERlcHJlY2F0ZWQgYCRzY3JlZW4tZGVza3RvcGAgYXMgb2YgdjMuMC4xXG4kc2NyZWVuLWRlc2t0b3A6ICAgICAgICAgICAgICRzY3JlZW4tbWQtbWluICFkZWZhdWx0O1xuXG4vLyBMYXJnZSBzY3JlZW4gLyB3aWRlIGRlc2t0b3Bcbi8vKiogRGVwcmVjYXRlZCBgJHNjcmVlbi1sZ2AgYXMgb2YgdjMuMC4xXG4kc2NyZWVuLWxnOiAgICAgICAgICAgICAgICAgIDEyMDBweCAhZGVmYXVsdDtcbiRzY3JlZW4tbGctbWluOiAgICAgICAgICAgICAgJHNjcmVlbi1sZyAhZGVmYXVsdDtcbi8vKiogRGVwcmVjYXRlZCBgJHNjcmVlbi1sZy1kZXNrdG9wYCBhcyBvZiB2My4wLjFcbiRzY3JlZW4tbGctZGVza3RvcDogICAgICAgICAgJHNjcmVlbi1sZy1taW4gIWRlZmF1bHQ7XG5cbi8vIFNvIG1lZGlhIHF1ZXJpZXMgZG9uJ3Qgb3ZlcmxhcCB3aGVuIHJlcXVpcmVkLCBwcm92aWRlIGEgbWF4aW11bVxuJHNjcmVlbi14cy1tYXg6ICAgICAgICAgICAgICAoJHNjcmVlbi1zbS1taW4gLSAxKSAhZGVmYXVsdDtcbiRzY3JlZW4tc20tbWF4OiAgICAgICAgICAgICAgKCRzY3JlZW4tbWQtbWluIC0gMSkgIWRlZmF1bHQ7XG4kc2NyZWVuLW1kLW1heDogICAgICAgICAgICAgICgkc2NyZWVuLWxnLW1pbiAtIDEpICFkZWZhdWx0O1xuXG5cbi8vPT0gR3JpZCBzeXN0ZW1cbi8vXG4vLyMjIERlZmluZSB5b3VyIGN1c3RvbSByZXNwb25zaXZlIGdyaWQuXG5cbi8vKiogTnVtYmVyIG9mIGNvbHVtbnMgaW4gdGhlIGdyaWQuXG4kZ3JpZC1jb2x1bW5zOiAgICAgICAgICAgICAgMTIgIWRlZmF1bHQ7XG4vLyoqIFBhZGRpbmcgYmV0d2VlbiBjb2x1bW5zLiBHZXRzIGRpdmlkZWQgaW4gaGFsZiBmb3IgdGhlIGxlZnQgYW5kIHJpZ2h0LlxuJGdyaWQtZ3V0dGVyLXdpZHRoOiAgICAgICAgIDMwcHggIWRlZmF1bHQ7XG4vLyBOYXZiYXIgY29sbGFwc2Vcbi8vKiogUG9pbnQgYXQgd2hpY2ggdGhlIG5hdmJhciBiZWNvbWVzIHVuY29sbGFwc2VkLlxuJGdyaWQtZmxvYXQtYnJlYWtwb2ludDogICAgICRzY3JlZW4tc20tbWluICFkZWZhdWx0O1xuLy8qKiBQb2ludCBhdCB3aGljaCB0aGUgbmF2YmFyIGJlZ2lucyBjb2xsYXBzaW5nLlxuJGdyaWQtZmxvYXQtYnJlYWtwb2ludC1tYXg6ICgkZ3JpZC1mbG9hdC1icmVha3BvaW50IC0gMSkgIWRlZmF1bHQ7XG5cblxuLy89PSBDb250YWluZXIgc2l6ZXNcbi8vXG4vLyMjIERlZmluZSB0aGUgbWF4aW11bSB3aWR0aCBvZiBgLmNvbnRhaW5lcmAgZm9yIGRpZmZlcmVudCBzY3JlZW4gc2l6ZXMuXG5cbi8vIFNtYWxsIHNjcmVlbiAvIHRhYmxldFxuJGNvbnRhaW5lci10YWJsZXQ6ICAgICAgICAgICAgICg3MjBweCArICRncmlkLWd1dHRlci13aWR0aCkgIWRlZmF1bHQ7XG4vLyoqIEZvciBgJHNjcmVlbi1zbS1taW5gIGFuZCB1cC5cbiRjb250YWluZXItc206ICAgICAgICAgICAgICAgICAkY29udGFpbmVyLXRhYmxldCAhZGVmYXVsdDtcblxuLy8gTWVkaXVtIHNjcmVlbiAvIGRlc2t0b3BcbiRjb250YWluZXItZGVza3RvcDogICAgICAgICAgICAoOTQwcHggKyAkZ3JpZC1ndXR0ZXItd2lkdGgpICFkZWZhdWx0O1xuLy8qKiBGb3IgYCRzY3JlZW4tbWQtbWluYCBhbmQgdXAuXG4kY29udGFpbmVyLW1kOiAgICAgICAgICAgICAgICAgJGNvbnRhaW5lci1kZXNrdG9wICFkZWZhdWx0O1xuXG4vLyBMYXJnZSBzY3JlZW4gLyB3aWRlIGRlc2t0b3BcbiRjb250YWluZXItbGFyZ2UtZGVza3RvcDogICAgICAoMTE0MHB4ICsgJGdyaWQtZ3V0dGVyLXdpZHRoKSAhZGVmYXVsdDtcbi8vKiogRm9yIGAkc2NyZWVuLWxnLW1pbmAgYW5kIHVwLlxuJGNvbnRhaW5lci1sZzogICAgICAgICAgICAgICAgICRjb250YWluZXItbGFyZ2UtZGVza3RvcCAhZGVmYXVsdDtcblxuXG4vLz09IE5hdmJhclxuLy9cbi8vIyNcblxuLy8gQmFzaWNzIG9mIGEgbmF2YmFyXG4kbmF2YmFyLWhlaWdodDogICAgICAgICAgICAgICAgICAgIDUwcHggIWRlZmF1bHQ7XG4kbmF2YmFyLW1hcmdpbi1ib3R0b206ICAgICAgICAgICAgICRsaW5lLWhlaWdodC1jb21wdXRlZCAhZGVmYXVsdDtcbiRuYXZiYXItYm9yZGVyLXJhZGl1czogICAgICAgICAgICAgJGJvcmRlci1yYWRpdXMtYmFzZSAhZGVmYXVsdDtcbiRuYXZiYXItcGFkZGluZy1ob3Jpem9udGFsOiAgICAgICAgZmxvb3IoKCRncmlkLWd1dHRlci13aWR0aCAvIDIpKSAhZGVmYXVsdDtcbiRuYXZiYXItcGFkZGluZy12ZXJ0aWNhbDogICAgICAgICAgKCgkbmF2YmFyLWhlaWdodCAtICRsaW5lLWhlaWdodC1jb21wdXRlZCkgLyAyKSAhZGVmYXVsdDtcbiRuYXZiYXItY29sbGFwc2UtbWF4LWhlaWdodDogICAgICAgMzQwcHggIWRlZmF1bHQ7XG5cbiRuYXZiYXItZGVmYXVsdC1jb2xvcjogICAgICAgICAgICAgIzc3NyAhZGVmYXVsdDtcbiRuYXZiYXItZGVmYXVsdC1iZzogICAgICAgICAgICAgICAgI2Y4ZjhmOCAhZGVmYXVsdDtcbiRuYXZiYXItZGVmYXVsdC1ib3JkZXI6ICAgICAgICAgICAgZGFya2VuKCRuYXZiYXItZGVmYXVsdC1iZywgNi41JSkgIWRlZmF1bHQ7XG5cbi8vIE5hdmJhciBsaW5rc1xuJG5hdmJhci1kZWZhdWx0LWxpbmstY29sb3I6ICAgICAgICAgICAgICAgICM3NzcgIWRlZmF1bHQ7XG4kbmF2YmFyLWRlZmF1bHQtbGluay1ob3Zlci1jb2xvcjogICAgICAgICAgIzMzMyAhZGVmYXVsdDtcbiRuYXZiYXItZGVmYXVsdC1saW5rLWhvdmVyLWJnOiAgICAgICAgICAgICB0cmFuc3BhcmVudCAhZGVmYXVsdDtcbiRuYXZiYXItZGVmYXVsdC1saW5rLWFjdGl2ZS1jb2xvcjogICAgICAgICAjNTU1ICFkZWZhdWx0O1xuJG5hdmJhci1kZWZhdWx0LWxpbmstYWN0aXZlLWJnOiAgICAgICAgICAgIGRhcmtlbigkbmF2YmFyLWRlZmF1bHQtYmcsIDYuNSUpICFkZWZhdWx0O1xuJG5hdmJhci1kZWZhdWx0LWxpbmstZGlzYWJsZWQtY29sb3I6ICAgICAgICNjY2MgIWRlZmF1bHQ7XG4kbmF2YmFyLWRlZmF1bHQtbGluay1kaXNhYmxlZC1iZzogICAgICAgICAgdHJhbnNwYXJlbnQgIWRlZmF1bHQ7XG5cbi8vIE5hdmJhciBicmFuZCBsYWJlbFxuJG5hdmJhci1kZWZhdWx0LWJyYW5kLWNvbG9yOiAgICAgICAgICAgICAgICRuYXZiYXItZGVmYXVsdC1saW5rLWNvbG9yICFkZWZhdWx0O1xuJG5hdmJhci1kZWZhdWx0LWJyYW5kLWhvdmVyLWNvbG9yOiAgICAgICAgIGRhcmtlbigkbmF2YmFyLWRlZmF1bHQtYnJhbmQtY29sb3IsIDEwJSkgIWRlZmF1bHQ7XG4kbmF2YmFyLWRlZmF1bHQtYnJhbmQtaG92ZXItYmc6ICAgICAgICAgICAgdHJhbnNwYXJlbnQgIWRlZmF1bHQ7XG5cbi8vIE5hdmJhciB0b2dnbGVcbiRuYXZiYXItZGVmYXVsdC10b2dnbGUtaG92ZXItYmc6ICAgICAgICAgICAjZGRkICFkZWZhdWx0O1xuJG5hdmJhci1kZWZhdWx0LXRvZ2dsZS1pY29uLWJhci1iZzogICAgICAgICM4ODggIWRlZmF1bHQ7XG4kbmF2YmFyLWRlZmF1bHQtdG9nZ2xlLWJvcmRlci1jb2xvcjogICAgICAgI2RkZCAhZGVmYXVsdDtcblxuXG4vLz09PSBJbnZlcnRlZCBuYXZiYXJcbi8vIFJlc2V0IGludmVydGVkIG5hdmJhciBiYXNpY3NcbiRuYXZiYXItaW52ZXJzZS1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgbGlnaHRlbigkZ3JheS1saWdodCwgMTUlKSAhZGVmYXVsdDtcbiRuYXZiYXItaW52ZXJzZS1iZzogICAgICAgICAgICAgICAgICAgICAgICAgIzIyMiAhZGVmYXVsdDtcbiRuYXZiYXItaW52ZXJzZS1ib3JkZXI6ICAgICAgICAgICAgICAgICAgICAgZGFya2VuKCRuYXZiYXItaW52ZXJzZS1iZywgMTAlKSAhZGVmYXVsdDtcblxuLy8gSW52ZXJ0ZWQgbmF2YmFyIGxpbmtzXG4kbmF2YmFyLWludmVyc2UtbGluay1jb2xvcjogICAgICAgICAgICAgICAgIGxpZ2h0ZW4oJGdyYXktbGlnaHQsIDE1JSkgIWRlZmF1bHQ7XG4kbmF2YmFyLWludmVyc2UtbGluay1ob3Zlci1jb2xvcjogICAgICAgICAgICNmZmYgIWRlZmF1bHQ7XG4kbmF2YmFyLWludmVyc2UtbGluay1ob3Zlci1iZzogICAgICAgICAgICAgIHRyYW5zcGFyZW50ICFkZWZhdWx0O1xuJG5hdmJhci1pbnZlcnNlLWxpbmstYWN0aXZlLWNvbG9yOiAgICAgICAgICAkbmF2YmFyLWludmVyc2UtbGluay1ob3Zlci1jb2xvciAhZGVmYXVsdDtcbiRuYXZiYXItaW52ZXJzZS1saW5rLWFjdGl2ZS1iZzogICAgICAgICAgICAgZGFya2VuKCRuYXZiYXItaW52ZXJzZS1iZywgMTAlKSAhZGVmYXVsdDtcbiRuYXZiYXItaW52ZXJzZS1saW5rLWRpc2FibGVkLWNvbG9yOiAgICAgICAgIzQ0NCAhZGVmYXVsdDtcbiRuYXZiYXItaW52ZXJzZS1saW5rLWRpc2FibGVkLWJnOiAgICAgICAgICAgdHJhbnNwYXJlbnQgIWRlZmF1bHQ7XG5cbi8vIEludmVydGVkIG5hdmJhciBicmFuZCBsYWJlbFxuJG5hdmJhci1pbnZlcnNlLWJyYW5kLWNvbG9yOiAgICAgICAgICAgICAgICAkbmF2YmFyLWludmVyc2UtbGluay1jb2xvciAhZGVmYXVsdDtcbiRuYXZiYXItaW52ZXJzZS1icmFuZC1ob3Zlci1jb2xvcjogICAgICAgICAgI2ZmZiAhZGVmYXVsdDtcbiRuYXZiYXItaW52ZXJzZS1icmFuZC1ob3Zlci1iZzogICAgICAgICAgICAgdHJhbnNwYXJlbnQgIWRlZmF1bHQ7XG5cbi8vIEludmVydGVkIG5hdmJhciB0b2dnbGVcbiRuYXZiYXItaW52ZXJzZS10b2dnbGUtaG92ZXItYmc6ICAgICAgICAgICAgIzMzMyAhZGVmYXVsdDtcbiRuYXZiYXItaW52ZXJzZS10b2dnbGUtaWNvbi1iYXItYmc6ICAgICAgICAgI2ZmZiAhZGVmYXVsdDtcbiRuYXZiYXItaW52ZXJzZS10b2dnbGUtYm9yZGVyLWNvbG9yOiAgICAgICAgIzMzMyAhZGVmYXVsdDtcblxuXG4vLz09IE5hdnNcbi8vXG4vLyMjXG5cbi8vPT09IFNoYXJlZCBuYXYgc3R5bGVzXG4kbmF2LWxpbmstcGFkZGluZzogICAgICAgICAgICAgICAgICAgICAgICAgIDEwcHggMTVweCAhZGVmYXVsdDtcbiRuYXYtbGluay1ob3Zlci1iZzogICAgICAgICAgICAgICAgICAgICAgICAgJGdyYXktbGlnaHRlciAhZGVmYXVsdDtcblxuJG5hdi1kaXNhYmxlZC1saW5rLWNvbG9yOiAgICAgICAgICAgICAgICAgICAkZ3JheS1saWdodCAhZGVmYXVsdDtcbiRuYXYtZGlzYWJsZWQtbGluay1ob3Zlci1jb2xvcjogICAgICAgICAgICAgJGdyYXktbGlnaHQgIWRlZmF1bHQ7XG5cbi8vPT0gVGFic1xuJG5hdi10YWJzLWJvcmRlci1jb2xvcjogICAgICAgICAgICAgICAgICAgICAjZGRkICFkZWZhdWx0O1xuXG4kbmF2LXRhYnMtbGluay1ob3Zlci1ib3JkZXItY29sb3I6ICAgICAgICAgICRncmF5LWxpZ2h0ZXIgIWRlZmF1bHQ7XG5cbiRuYXYtdGFicy1hY3RpdmUtbGluay1ob3Zlci1iZzogICAgICAgICAgICAgJGJvZHktYmcgIWRlZmF1bHQ7XG4kbmF2LXRhYnMtYWN0aXZlLWxpbmstaG92ZXItY29sb3I6ICAgICAgICAgICRncmF5ICFkZWZhdWx0O1xuJG5hdi10YWJzLWFjdGl2ZS1saW5rLWhvdmVyLWJvcmRlci1jb2xvcjogICAjZGRkICFkZWZhdWx0O1xuXG4kbmF2LXRhYnMtanVzdGlmaWVkLWxpbmstYm9yZGVyLWNvbG9yOiAgICAgICAgICAgICNkZGQgIWRlZmF1bHQ7XG4kbmF2LXRhYnMtanVzdGlmaWVkLWFjdGl2ZS1saW5rLWJvcmRlci1jb2xvcjogICAgICRib2R5LWJnICFkZWZhdWx0O1xuXG4vLz09IFBpbGxzXG4kbmF2LXBpbGxzLWJvcmRlci1yYWRpdXM6ICAgICAgICAgICAgICAgICAgICRib3JkZXItcmFkaXVzLWJhc2UgIWRlZmF1bHQ7XG4kbmF2LXBpbGxzLWFjdGl2ZS1saW5rLWhvdmVyLWJnOiAgICAgICAgICAgICRjb21wb25lbnQtYWN0aXZlLWJnICFkZWZhdWx0O1xuJG5hdi1waWxscy1hY3RpdmUtbGluay1ob3Zlci1jb2xvcjogICAgICAgICAkY29tcG9uZW50LWFjdGl2ZS1jb2xvciAhZGVmYXVsdDtcblxuXG4vLz09IFBhZ2luYXRpb25cbi8vXG4vLyMjXG5cbiRwYWdpbmF0aW9uLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICRsaW5rLWNvbG9yICFkZWZhdWx0O1xuJHBhZ2luYXRpb24tYmc6ICAgICAgICAgICAgICAgICAgICAgICAgI2ZmZiAhZGVmYXVsdDtcbiRwYWdpbmF0aW9uLWJvcmRlcjogICAgICAgICAgICAgICAgICAgICNkZGQgIWRlZmF1bHQ7XG5cbiRwYWdpbmF0aW9uLWhvdmVyLWNvbG9yOiAgICAgICAgICAgICAgICRsaW5rLWhvdmVyLWNvbG9yICFkZWZhdWx0O1xuJHBhZ2luYXRpb24taG92ZXItYmc6ICAgICAgICAgICAgICAgICAgJGdyYXktbGlnaHRlciAhZGVmYXVsdDtcbiRwYWdpbmF0aW9uLWhvdmVyLWJvcmRlcjogICAgICAgICAgICAgICNkZGQgIWRlZmF1bHQ7XG5cbiRwYWdpbmF0aW9uLWFjdGl2ZS1jb2xvcjogICAgICAgICAgICAgICNmZmYgIWRlZmF1bHQ7XG4kcGFnaW5hdGlvbi1hY3RpdmUtYmc6ICAgICAgICAgICAgICAgICAkYnJhbmQtcHJpbWFyeSAhZGVmYXVsdDtcbiRwYWdpbmF0aW9uLWFjdGl2ZS1ib3JkZXI6ICAgICAgICAgICAgICRicmFuZC1wcmltYXJ5ICFkZWZhdWx0O1xuXG4kcGFnaW5hdGlvbi1kaXNhYmxlZC1jb2xvcjogICAgICAgICAgICAkZ3JheS1saWdodCAhZGVmYXVsdDtcbiRwYWdpbmF0aW9uLWRpc2FibGVkLWJnOiAgICAgICAgICAgICAgICNmZmYgIWRlZmF1bHQ7XG4kcGFnaW5hdGlvbi1kaXNhYmxlZC1ib3JkZXI6ICAgICAgICAgICAjZGRkICFkZWZhdWx0O1xuXG5cbi8vPT0gUGFnZXJcbi8vXG4vLyMjXG5cbiRwYWdlci1iZzogICAgICAgICAgICAgICAgICAgICAgICAgICAgICRwYWdpbmF0aW9uLWJnICFkZWZhdWx0O1xuJHBhZ2VyLWJvcmRlcjogICAgICAgICAgICAgICAgICAgICAgICAgJHBhZ2luYXRpb24tYm9yZGVyICFkZWZhdWx0O1xuJHBhZ2VyLWJvcmRlci1yYWRpdXM6ICAgICAgICAgICAgICAgICAgMTVweCAhZGVmYXVsdDtcblxuJHBhZ2VyLWhvdmVyLWJnOiAgICAgICAgICAgICAgICAgICAgICAgJHBhZ2luYXRpb24taG92ZXItYmcgIWRlZmF1bHQ7XG5cbiRwYWdlci1hY3RpdmUtYmc6ICAgICAgICAgICAgICAgICAgICAgICRwYWdpbmF0aW9uLWFjdGl2ZS1iZyAhZGVmYXVsdDtcbiRwYWdlci1hY3RpdmUtY29sb3I6ICAgICAgICAgICAgICAgICAgICRwYWdpbmF0aW9uLWFjdGl2ZS1jb2xvciAhZGVmYXVsdDtcblxuJHBhZ2VyLWRpc2FibGVkLWNvbG9yOiAgICAgICAgICAgICAgICAgJHBhZ2luYXRpb24tZGlzYWJsZWQtY29sb3IgIWRlZmF1bHQ7XG5cblxuLy89PSBKdW1ib3Ryb25cbi8vXG4vLyMjXG5cbiRqdW1ib3Ryb24tcGFkZGluZzogICAgICAgICAgICAgIDMwcHggIWRlZmF1bHQ7XG4kanVtYm90cm9uLWNvbG9yOiAgICAgICAgICAgICAgICBpbmhlcml0ICFkZWZhdWx0O1xuJGp1bWJvdHJvbi1iZzogICAgICAgICAgICAgICAgICAgJGdyYXktbGlnaHRlciAhZGVmYXVsdDtcbiRqdW1ib3Ryb24taGVhZGluZy1jb2xvcjogICAgICAgIGluaGVyaXQgIWRlZmF1bHQ7XG4kanVtYm90cm9uLWZvbnQtc2l6ZTogICAgICAgICAgICBjZWlsKCgkZm9udC1zaXplLWJhc2UgKiAxLjUpKSAhZGVmYXVsdDtcbiRqdW1ib3Ryb24taGVhZGluZy1mb250LXNpemU6ICAgIGNlaWwoKCRmb250LXNpemUtYmFzZSAqIDQuNSkpICFkZWZhdWx0O1xuXG5cbi8vPT0gRm9ybSBzdGF0ZXMgYW5kIGFsZXJ0c1xuLy9cbi8vIyMgRGVmaW5lIGNvbG9ycyBmb3IgZm9ybSBmZWVkYmFjayBzdGF0ZXMgYW5kLCBieSBkZWZhdWx0LCBhbGVydHMuXG5cbiRzdGF0ZS1zdWNjZXNzLXRleHQ6ICAgICAgICAgICAgICMzYzc2M2QgIWRlZmF1bHQ7XG4kc3RhdGUtc3VjY2Vzcy1iZzogICAgICAgICAgICAgICAjZGZmMGQ4ICFkZWZhdWx0O1xuJHN0YXRlLXN1Y2Nlc3MtYm9yZGVyOiAgICAgICAgICAgZGFya2VuKGFkanVzdC1odWUoJHN0YXRlLXN1Y2Nlc3MtYmcsIC0xMCksIDUlKSAhZGVmYXVsdDtcblxuJHN0YXRlLWluZm8tdGV4dDogICAgICAgICAgICAgICAgIzMxNzA4ZiAhZGVmYXVsdDtcbiRzdGF0ZS1pbmZvLWJnOiAgICAgICAgICAgICAgICAgICNkOWVkZjcgIWRlZmF1bHQ7XG4kc3RhdGUtaW5mby1ib3JkZXI6ICAgICAgICAgICAgICBkYXJrZW4oYWRqdXN0LWh1ZSgkc3RhdGUtaW5mby1iZywgLTEwKSwgNyUpICFkZWZhdWx0O1xuXG4kc3RhdGUtd2FybmluZy10ZXh0OiAgICAgICAgICAgICAjOGE2ZDNiICFkZWZhdWx0O1xuJHN0YXRlLXdhcm5pbmctYmc6ICAgICAgICAgICAgICAgI2ZjZjhlMyAhZGVmYXVsdDtcbiRzdGF0ZS13YXJuaW5nLWJvcmRlcjogICAgICAgICAgIGRhcmtlbihhZGp1c3QtaHVlKCRzdGF0ZS13YXJuaW5nLWJnLCAtMTApLCA1JSkgIWRlZmF1bHQ7XG5cbiRzdGF0ZS1kYW5nZXItdGV4dDogICAgICAgICAgICAgICNhOTQ0NDIgIWRlZmF1bHQ7XG4kc3RhdGUtZGFuZ2VyLWJnOiAgICAgICAgICAgICAgICAjZjJkZWRlICFkZWZhdWx0O1xuJHN0YXRlLWRhbmdlci1ib3JkZXI6ICAgICAgICAgICAgZGFya2VuKGFkanVzdC1odWUoJHN0YXRlLWRhbmdlci1iZywgLTEwKSwgNSUpICFkZWZhdWx0O1xuXG5cbi8vPT0gVG9vbHRpcHNcbi8vXG4vLyMjXG5cbi8vKiogVG9vbHRpcCBtYXggd2lkdGhcbiR0b29sdGlwLW1heC13aWR0aDogICAgICAgICAgIDIwMHB4ICFkZWZhdWx0O1xuLy8qKiBUb29sdGlwIHRleHQgY29sb3JcbiR0b29sdGlwLWNvbG9yOiAgICAgICAgICAgICAgICNmZmYgIWRlZmF1bHQ7XG4vLyoqIFRvb2x0aXAgYmFja2dyb3VuZCBjb2xvclxuJHRvb2x0aXAtYmc6ICAgICAgICAgICAgICAgICAgIzAwMCAhZGVmYXVsdDtcbiR0b29sdGlwLW9wYWNpdHk6ICAgICAgICAgICAgIC45ICFkZWZhdWx0O1xuXG4vLyoqIFRvb2x0aXAgYXJyb3cgd2lkdGhcbiR0b29sdGlwLWFycm93LXdpZHRoOiAgICAgICAgIDVweCAhZGVmYXVsdDtcbi8vKiogVG9vbHRpcCBhcnJvdyBjb2xvclxuJHRvb2x0aXAtYXJyb3ctY29sb3I6ICAgICAgICAgJHRvb2x0aXAtYmcgIWRlZmF1bHQ7XG5cblxuLy89PSBQb3BvdmVyc1xuLy9cbi8vIyNcblxuLy8qKiBQb3BvdmVyIGJvZHkgYmFja2dyb3VuZCBjb2xvclxuJHBvcG92ZXItYmc6ICAgICAgICAgICAgICAgICAgICAgICAgICAjZmZmICFkZWZhdWx0O1xuLy8qKiBQb3BvdmVyIG1heGltdW0gd2lkdGhcbiRwb3BvdmVyLW1heC13aWR0aDogICAgICAgICAgICAgICAgICAgMjc2cHggIWRlZmF1bHQ7XG4vLyoqIFBvcG92ZXIgYm9yZGVyIGNvbG9yXG4kcG9wb3Zlci1ib3JkZXItY29sb3I6ICAgICAgICAgICAgICAgIHJnYmEoMCwwLDAsLjIpICFkZWZhdWx0O1xuLy8qKiBQb3BvdmVyIGZhbGxiYWNrIGJvcmRlciBjb2xvclxuJHBvcG92ZXItZmFsbGJhY2stYm9yZGVyLWNvbG9yOiAgICAgICAjY2NjICFkZWZhdWx0O1xuXG4vLyoqIFBvcG92ZXIgdGl0bGUgYmFja2dyb3VuZCBjb2xvclxuJHBvcG92ZXItdGl0bGUtYmc6ICAgICAgICAgICAgICAgICAgICBkYXJrZW4oJHBvcG92ZXItYmcsIDMlKSAhZGVmYXVsdDtcblxuLy8qKiBQb3BvdmVyIGFycm93IHdpZHRoXG4kcG9wb3Zlci1hcnJvdy13aWR0aDogICAgICAgICAgICAgICAgIDEwcHggIWRlZmF1bHQ7XG4vLyoqIFBvcG92ZXIgYXJyb3cgY29sb3JcbiRwb3BvdmVyLWFycm93LWNvbG9yOiAgICAgICAgICAgICAgICAgJHBvcG92ZXItYmcgIWRlZmF1bHQ7XG5cbi8vKiogUG9wb3ZlciBvdXRlciBhcnJvdyB3aWR0aFxuJHBvcG92ZXItYXJyb3ctb3V0ZXItd2lkdGg6ICAgICAgICAgICAoJHBvcG92ZXItYXJyb3ctd2lkdGggKyAxKSAhZGVmYXVsdDtcbi8vKiogUG9wb3ZlciBvdXRlciBhcnJvdyBjb2xvclxuJHBvcG92ZXItYXJyb3ctb3V0ZXItY29sb3I6ICAgICAgICAgICBmYWRlX2luKCRwb3BvdmVyLWJvcmRlci1jb2xvciwgMC4wNSkgIWRlZmF1bHQ7XG4vLyoqIFBvcG92ZXIgb3V0ZXIgYXJyb3cgZmFsbGJhY2sgY29sb3JcbiRwb3BvdmVyLWFycm93LW91dGVyLWZhbGxiYWNrLWNvbG9yOiAgZGFya2VuKCRwb3BvdmVyLWZhbGxiYWNrLWJvcmRlci1jb2xvciwgMjAlKSAhZGVmYXVsdDtcblxuXG4vLz09IExhYmVsc1xuLy9cbi8vIyNcblxuLy8qKiBEZWZhdWx0IGxhYmVsIGJhY2tncm91bmQgY29sb3JcbiRsYWJlbC1kZWZhdWx0LWJnOiAgICAgICAgICAgICRncmF5LWxpZ2h0ICFkZWZhdWx0O1xuLy8qKiBQcmltYXJ5IGxhYmVsIGJhY2tncm91bmQgY29sb3JcbiRsYWJlbC1wcmltYXJ5LWJnOiAgICAgICAgICAgICRicmFuZC1wcmltYXJ5ICFkZWZhdWx0O1xuLy8qKiBTdWNjZXNzIGxhYmVsIGJhY2tncm91bmQgY29sb3JcbiRsYWJlbC1zdWNjZXNzLWJnOiAgICAgICAgICAgICRicmFuZC1zdWNjZXNzICFkZWZhdWx0O1xuLy8qKiBJbmZvIGxhYmVsIGJhY2tncm91bmQgY29sb3JcbiRsYWJlbC1pbmZvLWJnOiAgICAgICAgICAgICAgICRicmFuZC1pbmZvICFkZWZhdWx0O1xuLy8qKiBXYXJuaW5nIGxhYmVsIGJhY2tncm91bmQgY29sb3JcbiRsYWJlbC13YXJuaW5nLWJnOiAgICAgICAgICAgICRicmFuZC13YXJuaW5nICFkZWZhdWx0O1xuLy8qKiBEYW5nZXIgbGFiZWwgYmFja2dyb3VuZCBjb2xvclxuJGxhYmVsLWRhbmdlci1iZzogICAgICAgICAgICAgJGJyYW5kLWRhbmdlciAhZGVmYXVsdDtcblxuLy8qKiBEZWZhdWx0IGxhYmVsIHRleHQgY29sb3JcbiRsYWJlbC1jb2xvcjogICAgICAgICAgICAgICAgICNmZmYgIWRlZmF1bHQ7XG4vLyoqIERlZmF1bHQgdGV4dCBjb2xvciBvZiBhIGxpbmtlZCBsYWJlbFxuJGxhYmVsLWxpbmstaG92ZXItY29sb3I6ICAgICAgI2ZmZiAhZGVmYXVsdDtcblxuXG4vLz09IE1vZGFsc1xuLy9cbi8vIyNcblxuLy8qKiBQYWRkaW5nIGFwcGxpZWQgdG8gdGhlIG1vZGFsIGJvZHlcbiRtb2RhbC1pbm5lci1wYWRkaW5nOiAgICAgICAgIDE1cHggIWRlZmF1bHQ7XG5cbi8vKiogUGFkZGluZyBhcHBsaWVkIHRvIHRoZSBtb2RhbCB0aXRsZVxuJG1vZGFsLXRpdGxlLXBhZGRpbmc6ICAgICAgICAgMTVweCAhZGVmYXVsdDtcbi8vKiogTW9kYWwgdGl0bGUgbGluZS1oZWlnaHRcbiRtb2RhbC10aXRsZS1saW5lLWhlaWdodDogICAgICRsaW5lLWhlaWdodC1iYXNlICFkZWZhdWx0O1xuXG4vLyoqIEJhY2tncm91bmQgY29sb3Igb2YgbW9kYWwgY29udGVudCBhcmVhXG4kbW9kYWwtY29udGVudC1iZzogICAgICAgICAgICAgICAgICAgICAgICAgICAgICNmZmYgIWRlZmF1bHQ7XG4vLyoqIE1vZGFsIGNvbnRlbnQgYm9yZGVyIGNvbG9yXG4kbW9kYWwtY29udGVudC1ib3JkZXItY29sb3I6ICAgICAgICAgICAgICAgICAgIHJnYmEoMCwwLDAsLjIpICFkZWZhdWx0O1xuLy8qKiBNb2RhbCBjb250ZW50IGJvcmRlciBjb2xvciAqKmZvciBJRTgqKlxuJG1vZGFsLWNvbnRlbnQtZmFsbGJhY2stYm9yZGVyLWNvbG9yOiAgICAgICAgICAjOTk5ICFkZWZhdWx0O1xuXG4vLyoqIE1vZGFsIGJhY2tkcm9wIGJhY2tncm91bmQgY29sb3JcbiRtb2RhbC1iYWNrZHJvcC1iZzogICAgICAgICAgICMwMDAgIWRlZmF1bHQ7XG4vLyoqIE1vZGFsIGJhY2tkcm9wIG9wYWNpdHlcbiRtb2RhbC1iYWNrZHJvcC1vcGFjaXR5OiAgICAgIC41ICFkZWZhdWx0O1xuLy8qKiBNb2RhbCBoZWFkZXIgYm9yZGVyIGNvbG9yXG4kbW9kYWwtaGVhZGVyLWJvcmRlci1jb2xvcjogICAjZTVlNWU1ICFkZWZhdWx0O1xuLy8qKiBNb2RhbCBmb290ZXIgYm9yZGVyIGNvbG9yXG4kbW9kYWwtZm9vdGVyLWJvcmRlci1jb2xvcjogICAkbW9kYWwtaGVhZGVyLWJvcmRlci1jb2xvciAhZGVmYXVsdDtcblxuJG1vZGFsLWxnOiAgICAgICAgICAgICAgICAgICAgOTAwcHggIWRlZmF1bHQ7XG4kbW9kYWwtbWQ6ICAgICAgICAgICAgICAgICAgICA2MDBweCAhZGVmYXVsdDtcbiRtb2RhbC1zbTogICAgICAgICAgICAgICAgICAgIDMwMHB4ICFkZWZhdWx0O1xuXG5cbi8vPT0gQWxlcnRzXG4vL1xuLy8jIyBEZWZpbmUgYWxlcnQgY29sb3JzLCBib3JkZXIgcmFkaXVzLCBhbmQgcGFkZGluZy5cblxuJGFsZXJ0LXBhZGRpbmc6ICAgICAgICAgICAgICAgMTVweCAhZGVmYXVsdDtcbiRhbGVydC1ib3JkZXItcmFkaXVzOiAgICAgICAgICRib3JkZXItcmFkaXVzLWJhc2UgIWRlZmF1bHQ7XG4kYWxlcnQtbGluay1mb250LXdlaWdodDogICAgICBib2xkICFkZWZhdWx0O1xuXG4kYWxlcnQtc3VjY2Vzcy1iZzogICAgICAgICAgICAkc3RhdGUtc3VjY2Vzcy1iZyAhZGVmYXVsdDtcbiRhbGVydC1zdWNjZXNzLXRleHQ6ICAgICAgICAgICRzdGF0ZS1zdWNjZXNzLXRleHQgIWRlZmF1bHQ7XG4kYWxlcnQtc3VjY2Vzcy1ib3JkZXI6ICAgICAgICAkc3RhdGUtc3VjY2Vzcy1ib3JkZXIgIWRlZmF1bHQ7XG5cbiRhbGVydC1pbmZvLWJnOiAgICAgICAgICAgICAgICRzdGF0ZS1pbmZvLWJnICFkZWZhdWx0O1xuJGFsZXJ0LWluZm8tdGV4dDogICAgICAgICAgICAgJHN0YXRlLWluZm8tdGV4dCAhZGVmYXVsdDtcbiRhbGVydC1pbmZvLWJvcmRlcjogICAgICAgICAgICRzdGF0ZS1pbmZvLWJvcmRlciAhZGVmYXVsdDtcblxuJGFsZXJ0LXdhcm5pbmctYmc6ICAgICAgICAgICAgJHN0YXRlLXdhcm5pbmctYmcgIWRlZmF1bHQ7XG4kYWxlcnQtd2FybmluZy10ZXh0OiAgICAgICAgICAkc3RhdGUtd2FybmluZy10ZXh0ICFkZWZhdWx0O1xuJGFsZXJ0LXdhcm5pbmctYm9yZGVyOiAgICAgICAgJHN0YXRlLXdhcm5pbmctYm9yZGVyICFkZWZhdWx0O1xuXG4kYWxlcnQtZGFuZ2VyLWJnOiAgICAgICAgICAgICAkc3RhdGUtZGFuZ2VyLWJnICFkZWZhdWx0O1xuJGFsZXJ0LWRhbmdlci10ZXh0OiAgICAgICAgICAgJHN0YXRlLWRhbmdlci10ZXh0ICFkZWZhdWx0O1xuJGFsZXJ0LWRhbmdlci1ib3JkZXI6ICAgICAgICAgJHN0YXRlLWRhbmdlci1ib3JkZXIgIWRlZmF1bHQ7XG5cblxuLy89PSBQcm9ncmVzcyBiYXJzXG4vL1xuLy8jI1xuXG4vLyoqIEJhY2tncm91bmQgY29sb3Igb2YgdGhlIHdob2xlIHByb2dyZXNzIGNvbXBvbmVudFxuJHByb2dyZXNzLWJnOiAgICAgICAgICAgICAgICAgI2Y1ZjVmNSAhZGVmYXVsdDtcbi8vKiogUHJvZ3Jlc3MgYmFyIHRleHQgY29sb3JcbiRwcm9ncmVzcy1iYXItY29sb3I6ICAgICAgICAgICNmZmYgIWRlZmF1bHQ7XG4vLyoqIFZhcmlhYmxlIGZvciBzZXR0aW5nIHJvdW5kZWQgY29ybmVycyBvbiBwcm9ncmVzcyBiYXIuXG4kcHJvZ3Jlc3MtYm9yZGVyLXJhZGl1czogICAgICAkYm9yZGVyLXJhZGl1cy1iYXNlICFkZWZhdWx0O1xuXG4vLyoqIERlZmF1bHQgcHJvZ3Jlc3MgYmFyIGNvbG9yXG4kcHJvZ3Jlc3MtYmFyLWJnOiAgICAgICAgICAgICAkYnJhbmQtcHJpbWFyeSAhZGVmYXVsdDtcbi8vKiogU3VjY2VzcyBwcm9ncmVzcyBiYXIgY29sb3JcbiRwcm9ncmVzcy1iYXItc3VjY2Vzcy1iZzogICAgICRicmFuZC1zdWNjZXNzICFkZWZhdWx0O1xuLy8qKiBXYXJuaW5nIHByb2dyZXNzIGJhciBjb2xvclxuJHByb2dyZXNzLWJhci13YXJuaW5nLWJnOiAgICAgJGJyYW5kLXdhcm5pbmcgIWRlZmF1bHQ7XG4vLyoqIERhbmdlciBwcm9ncmVzcyBiYXIgY29sb3JcbiRwcm9ncmVzcy1iYXItZGFuZ2VyLWJnOiAgICAgICRicmFuZC1kYW5nZXIgIWRlZmF1bHQ7XG4vLyoqIEluZm8gcHJvZ3Jlc3MgYmFyIGNvbG9yXG4kcHJvZ3Jlc3MtYmFyLWluZm8tYmc6ICAgICAgICAkYnJhbmQtaW5mbyAhZGVmYXVsdDtcblxuXG4vLz09IExpc3QgZ3JvdXBcbi8vXG4vLyMjXG5cbi8vKiogQmFja2dyb3VuZCBjb2xvciBvbiBgLmxpc3QtZ3JvdXAtaXRlbWBcbiRsaXN0LWdyb3VwLWJnOiAgICAgICAgICAgICAgICAgI2ZmZiAhZGVmYXVsdDtcbi8vKiogYC5saXN0LWdyb3VwLWl0ZW1gIGJvcmRlciBjb2xvclxuJGxpc3QtZ3JvdXAtYm9yZGVyOiAgICAgICAgICAgICAjZGRkICFkZWZhdWx0O1xuLy8qKiBMaXN0IGdyb3VwIGJvcmRlciByYWRpdXNcbiRsaXN0LWdyb3VwLWJvcmRlci1yYWRpdXM6ICAgICAgJGJvcmRlci1yYWRpdXMtYmFzZSAhZGVmYXVsdDtcblxuLy8qKiBCYWNrZ3JvdW5kIGNvbG9yIG9mIHNpbmdsZSBsaXN0IGl0ZW1zIG9uIGhvdmVyXG4kbGlzdC1ncm91cC1ob3Zlci1iZzogICAgICAgICAgICNmNWY1ZjUgIWRlZmF1bHQ7XG4vLyoqIFRleHQgY29sb3Igb2YgYWN0aXZlIGxpc3QgaXRlbXNcbiRsaXN0LWdyb3VwLWFjdGl2ZS1jb2xvcjogICAgICAgJGNvbXBvbmVudC1hY3RpdmUtY29sb3IgIWRlZmF1bHQ7XG4vLyoqIEJhY2tncm91bmQgY29sb3Igb2YgYWN0aXZlIGxpc3QgaXRlbXNcbiRsaXN0LWdyb3VwLWFjdGl2ZS1iZzogICAgICAgICAgJGNvbXBvbmVudC1hY3RpdmUtYmcgIWRlZmF1bHQ7XG4vLyoqIEJvcmRlciBjb2xvciBvZiBhY3RpdmUgbGlzdCBlbGVtZW50c1xuJGxpc3QtZ3JvdXAtYWN0aXZlLWJvcmRlcjogICAgICAkbGlzdC1ncm91cC1hY3RpdmUtYmcgIWRlZmF1bHQ7XG4vLyoqIFRleHQgY29sb3IgZm9yIGNvbnRlbnQgd2l0aGluIGFjdGl2ZSBsaXN0IGl0ZW1zXG4kbGlzdC1ncm91cC1hY3RpdmUtdGV4dC1jb2xvcjogIGxpZ2h0ZW4oJGxpc3QtZ3JvdXAtYWN0aXZlLWJnLCA0MCUpICFkZWZhdWx0O1xuXG4vLyoqIFRleHQgY29sb3Igb2YgZGlzYWJsZWQgbGlzdCBpdGVtc1xuJGxpc3QtZ3JvdXAtZGlzYWJsZWQtY29sb3I6ICAgICAgJGdyYXktbGlnaHQgIWRlZmF1bHQ7XG4vLyoqIEJhY2tncm91bmQgY29sb3Igb2YgZGlzYWJsZWQgbGlzdCBpdGVtc1xuJGxpc3QtZ3JvdXAtZGlzYWJsZWQtYmc6ICAgICAgICAgJGdyYXktbGlnaHRlciAhZGVmYXVsdDtcbi8vKiogVGV4dCBjb2xvciBmb3IgY29udGVudCB3aXRoaW4gZGlzYWJsZWQgbGlzdCBpdGVtc1xuJGxpc3QtZ3JvdXAtZGlzYWJsZWQtdGV4dC1jb2xvcjogJGxpc3QtZ3JvdXAtZGlzYWJsZWQtY29sb3IgIWRlZmF1bHQ7XG5cbiRsaXN0LWdyb3VwLWxpbmstY29sb3I6ICAgICAgICAgIzU1NSAhZGVmYXVsdDtcbiRsaXN0LWdyb3VwLWxpbmstaG92ZXItY29sb3I6ICAgJGxpc3QtZ3JvdXAtbGluay1jb2xvciAhZGVmYXVsdDtcbiRsaXN0LWdyb3VwLWxpbmstaGVhZGluZy1jb2xvcjogIzMzMyAhZGVmYXVsdDtcblxuXG4vLz09IFBhbmVsc1xuLy9cbi8vIyNcblxuJHBhbmVsLWJnOiAgICAgICAgICAgICAgICAgICAgI2ZmZiAhZGVmYXVsdDtcbiRwYW5lbC1ib2R5LXBhZGRpbmc6ICAgICAgICAgIDE1cHggIWRlZmF1bHQ7XG4kcGFuZWwtaGVhZGluZy1wYWRkaW5nOiAgICAgICAxMHB4IDE1cHggIWRlZmF1bHQ7XG4kcGFuZWwtZm9vdGVyLXBhZGRpbmc6ICAgICAgICAkcGFuZWwtaGVhZGluZy1wYWRkaW5nICFkZWZhdWx0O1xuJHBhbmVsLWJvcmRlci1yYWRpdXM6ICAgICAgICAgJGJvcmRlci1yYWRpdXMtYmFzZSAhZGVmYXVsdDtcblxuLy8qKiBCb3JkZXIgY29sb3IgZm9yIGVsZW1lbnRzIHdpdGhpbiBwYW5lbHNcbiRwYW5lbC1pbm5lci1ib3JkZXI6ICAgICAgICAgICNkZGQgIWRlZmF1bHQ7XG4kcGFuZWwtZm9vdGVyLWJnOiAgICAgICAgICAgICAjZjVmNWY1ICFkZWZhdWx0O1xuXG4kcGFuZWwtZGVmYXVsdC10ZXh0OiAgICAgICAgICAkZ3JheS1kYXJrICFkZWZhdWx0O1xuJHBhbmVsLWRlZmF1bHQtYm9yZGVyOiAgICAgICAgI2RkZCAhZGVmYXVsdDtcbiRwYW5lbC1kZWZhdWx0LWhlYWRpbmctYmc6ICAgICNmNWY1ZjUgIWRlZmF1bHQ7XG5cbiRwYW5lbC1wcmltYXJ5LXRleHQ6ICAgICAgICAgICNmZmYgIWRlZmF1bHQ7XG4kcGFuZWwtcHJpbWFyeS1ib3JkZXI6ICAgICAgICAkYnJhbmQtcHJpbWFyeSAhZGVmYXVsdDtcbiRwYW5lbC1wcmltYXJ5LWhlYWRpbmctYmc6ICAgICRicmFuZC1wcmltYXJ5ICFkZWZhdWx0O1xuXG4kcGFuZWwtc3VjY2Vzcy10ZXh0OiAgICAgICAgICAkc3RhdGUtc3VjY2Vzcy10ZXh0ICFkZWZhdWx0O1xuJHBhbmVsLXN1Y2Nlc3MtYm9yZGVyOiAgICAgICAgJHN0YXRlLXN1Y2Nlc3MtYm9yZGVyICFkZWZhdWx0O1xuJHBhbmVsLXN1Y2Nlc3MtaGVhZGluZy1iZzogICAgJHN0YXRlLXN1Y2Nlc3MtYmcgIWRlZmF1bHQ7XG5cbiRwYW5lbC1pbmZvLXRleHQ6ICAgICAgICAgICAgICRzdGF0ZS1pbmZvLXRleHQgIWRlZmF1bHQ7XG4kcGFuZWwtaW5mby1ib3JkZXI6ICAgICAgICAgICAkc3RhdGUtaW5mby1ib3JkZXIgIWRlZmF1bHQ7XG4kcGFuZWwtaW5mby1oZWFkaW5nLWJnOiAgICAgICAkc3RhdGUtaW5mby1iZyAhZGVmYXVsdDtcblxuJHBhbmVsLXdhcm5pbmctdGV4dDogICAgICAgICAgJHN0YXRlLXdhcm5pbmctdGV4dCAhZGVmYXVsdDtcbiRwYW5lbC13YXJuaW5nLWJvcmRlcjogICAgICAgICRzdGF0ZS13YXJuaW5nLWJvcmRlciAhZGVmYXVsdDtcbiRwYW5lbC13YXJuaW5nLWhlYWRpbmctYmc6ICAgICRzdGF0ZS13YXJuaW5nLWJnICFkZWZhdWx0O1xuXG4kcGFuZWwtZGFuZ2VyLXRleHQ6ICAgICAgICAgICAkc3RhdGUtZGFuZ2VyLXRleHQgIWRlZmF1bHQ7XG4kcGFuZWwtZGFuZ2VyLWJvcmRlcjogICAgICAgICAkc3RhdGUtZGFuZ2VyLWJvcmRlciAhZGVmYXVsdDtcbiRwYW5lbC1kYW5nZXItaGVhZGluZy1iZzogICAgICRzdGF0ZS1kYW5nZXItYmcgIWRlZmF1bHQ7XG5cblxuLy89PSBUaHVtYm5haWxzXG4vL1xuLy8jI1xuXG4vLyoqIFBhZGRpbmcgYXJvdW5kIHRoZSB0aHVtYm5haWwgaW1hZ2VcbiR0aHVtYm5haWwtcGFkZGluZzogICAgICAgICAgIDRweCAhZGVmYXVsdDtcbi8vKiogVGh1bWJuYWlsIGJhY2tncm91bmQgY29sb3JcbiR0aHVtYm5haWwtYmc6ICAgICAgICAgICAgICAgICRib2R5LWJnICFkZWZhdWx0O1xuLy8qKiBUaHVtYm5haWwgYm9yZGVyIGNvbG9yXG4kdGh1bWJuYWlsLWJvcmRlcjogICAgICAgICAgICAjZGRkICFkZWZhdWx0O1xuLy8qKiBUaHVtYm5haWwgYm9yZGVyIHJhZGl1c1xuJHRodW1ibmFpbC1ib3JkZXItcmFkaXVzOiAgICAgJGJvcmRlci1yYWRpdXMtYmFzZSAhZGVmYXVsdDtcblxuLy8qKiBDdXN0b20gdGV4dCBjb2xvciBmb3IgdGh1bWJuYWlsIGNhcHRpb25zXG4kdGh1bWJuYWlsLWNhcHRpb24tY29sb3I6ICAgICAkdGV4dC1jb2xvciAhZGVmYXVsdDtcbi8vKiogUGFkZGluZyBhcm91bmQgdGhlIHRodW1ibmFpbCBjYXB0aW9uXG4kdGh1bWJuYWlsLWNhcHRpb24tcGFkZGluZzogICA5cHggIWRlZmF1bHQ7XG5cblxuLy89PSBXZWxsc1xuLy9cbi8vIyNcblxuJHdlbGwtYmc6ICAgICAgICAgICAgICAgICAgICAgI2Y1ZjVmNSAhZGVmYXVsdDtcbiR3ZWxsLWJvcmRlcjogICAgICAgICAgICAgICAgIGRhcmtlbigkd2VsbC1iZywgNyUpICFkZWZhdWx0O1xuXG5cbi8vPT0gQmFkZ2VzXG4vL1xuLy8jI1xuXG4kYmFkZ2UtY29sb3I6ICAgICAgICAgICAgICAgICAjZmZmICFkZWZhdWx0O1xuLy8qKiBMaW5rZWQgYmFkZ2UgdGV4dCBjb2xvciBvbiBob3ZlclxuJGJhZGdlLWxpbmstaG92ZXItY29sb3I6ICAgICAgI2ZmZiAhZGVmYXVsdDtcbiRiYWRnZS1iZzogICAgICAgICAgICAgICAgICAgICRncmF5LWxpZ2h0ICFkZWZhdWx0O1xuXG4vLyoqIEJhZGdlIHRleHQgY29sb3IgaW4gYWN0aXZlIG5hdiBsaW5rXG4kYmFkZ2UtYWN0aXZlLWNvbG9yOiAgICAgICAgICAkbGluay1jb2xvciAhZGVmYXVsdDtcbi8vKiogQmFkZ2UgYmFja2dyb3VuZCBjb2xvciBpbiBhY3RpdmUgbmF2IGxpbmtcbiRiYWRnZS1hY3RpdmUtYmc6ICAgICAgICAgICAgICNmZmYgIWRlZmF1bHQ7XG5cbiRiYWRnZS1mb250LXdlaWdodDogICAgICAgICAgIGJvbGQgIWRlZmF1bHQ7XG4kYmFkZ2UtbGluZS1oZWlnaHQ6ICAgICAgICAgICAxICFkZWZhdWx0O1xuJGJhZGdlLWJvcmRlci1yYWRpdXM6ICAgICAgICAgMTBweCAhZGVmYXVsdDtcblxuXG4vLz09IEJyZWFkY3J1bWJzXG4vL1xuLy8jI1xuXG4kYnJlYWRjcnVtYi1wYWRkaW5nLXZlcnRpY2FsOiAgIDhweCAhZGVmYXVsdDtcbiRicmVhZGNydW1iLXBhZGRpbmctaG9yaXpvbnRhbDogMTVweCAhZGVmYXVsdDtcbi8vKiogQnJlYWRjcnVtYiBiYWNrZ3JvdW5kIGNvbG9yXG4kYnJlYWRjcnVtYi1iZzogICAgICAgICAgICAgICAgICNmNWY1ZjUgIWRlZmF1bHQ7XG4vLyoqIEJyZWFkY3J1bWIgdGV4dCBjb2xvclxuJGJyZWFkY3J1bWItY29sb3I6ICAgICAgICAgICAgICAjY2NjICFkZWZhdWx0O1xuLy8qKiBUZXh0IGNvbG9yIG9mIGN1cnJlbnQgcGFnZSBpbiB0aGUgYnJlYWRjcnVtYlxuJGJyZWFkY3J1bWItYWN0aXZlLWNvbG9yOiAgICAgICAkZ3JheS1saWdodCAhZGVmYXVsdDtcbi8vKiogVGV4dHVhbCBzZXBhcmF0b3IgZm9yIGJldHdlZW4gYnJlYWRjcnVtYiBlbGVtZW50c1xuJGJyZWFkY3J1bWItc2VwYXJhdG9yOiAgICAgICAgICBcIi9cIiAhZGVmYXVsdDtcblxuXG4vLz09IENhcm91c2VsXG4vL1xuLy8jI1xuXG4kY2Fyb3VzZWwtdGV4dC1zaGFkb3c6ICAgICAgICAgICAgICAgICAgICAgICAgMCAxcHggMnB4IHJnYmEoMCwwLDAsLjYpICFkZWZhdWx0O1xuXG4kY2Fyb3VzZWwtY29udHJvbC1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgI2ZmZiAhZGVmYXVsdDtcbiRjYXJvdXNlbC1jb250cm9sLXdpZHRoOiAgICAgICAgICAgICAgICAgICAgICAxNSUgIWRlZmF1bHQ7XG4kY2Fyb3VzZWwtY29udHJvbC1vcGFjaXR5OiAgICAgICAgICAgICAgICAgICAgLjUgIWRlZmF1bHQ7XG4kY2Fyb3VzZWwtY29udHJvbC1mb250LXNpemU6ICAgICAgICAgICAgICAgICAgMjBweCAhZGVmYXVsdDtcblxuJGNhcm91c2VsLWluZGljYXRvci1hY3RpdmUtYmc6ICAgICAgICAgICAgICAgICNmZmYgIWRlZmF1bHQ7XG4kY2Fyb3VzZWwtaW5kaWNhdG9yLWJvcmRlci1jb2xvcjogICAgICAgICAgICAgI2ZmZiAhZGVmYXVsdDtcblxuJGNhcm91c2VsLWNhcHRpb24tY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICNmZmYgIWRlZmF1bHQ7XG5cblxuLy89PSBDbG9zZVxuLy9cbi8vIyNcblxuJGNsb3NlLWZvbnQtd2VpZ2h0OiAgICAgICAgICAgYm9sZCAhZGVmYXVsdDtcbiRjbG9zZS1jb2xvcjogICAgICAgICAgICAgICAgICMwMDAgIWRlZmF1bHQ7XG4kY2xvc2UtdGV4dC1zaGFkb3c6ICAgICAgICAgICAwIDFweCAwICNmZmYgIWRlZmF1bHQ7XG5cblxuLy89PSBDb2RlXG4vL1xuLy8jI1xuXG4kY29kZS1jb2xvcjogICAgICAgICAgICAgICAgICAjYzcyNTRlICFkZWZhdWx0O1xuJGNvZGUtYmc6ICAgICAgICAgICAgICAgICAgICAgI2Y5ZjJmNCAhZGVmYXVsdDtcblxuJGtiZC1jb2xvcjogICAgICAgICAgICAgICAgICAgI2ZmZiAhZGVmYXVsdDtcbiRrYmQtYmc6ICAgICAgICAgICAgICAgICAgICAgICMzMzMgIWRlZmF1bHQ7XG5cbiRwcmUtYmc6ICAgICAgICAgICAgICAgICAgICAgICNmNWY1ZjUgIWRlZmF1bHQ7XG4kcHJlLWNvbG9yOiAgICAgICAgICAgICAgICAgICAkZ3JheS1kYXJrICFkZWZhdWx0O1xuJHByZS1ib3JkZXItY29sb3I6ICAgICAgICAgICAgI2NjYyAhZGVmYXVsdDtcbiRwcmUtc2Nyb2xsYWJsZS1tYXgtaGVpZ2h0OiAgIDM0MHB4ICFkZWZhdWx0O1xuXG5cbi8vPT0gVHlwZVxuLy9cbi8vIyNcblxuLy8qKiBIb3Jpem9udGFsIG9mZnNldCBmb3IgZm9ybXMgYW5kIGxpc3RzLlxuJGNvbXBvbmVudC1vZmZzZXQtaG9yaXpvbnRhbDogMTgwcHggIWRlZmF1bHQ7XG4vLyoqIFRleHQgbXV0ZWQgY29sb3JcbiR0ZXh0LW11dGVkOiAgICAgICAgICAgICAgICAgICRncmF5LWxpZ2h0ICFkZWZhdWx0O1xuLy8qKiBBYmJyZXZpYXRpb25zIGFuZCBhY3JvbnltcyBib3JkZXIgY29sb3JcbiRhYmJyLWJvcmRlci1jb2xvcjogICAgICAgICAgICRncmF5LWxpZ2h0ICFkZWZhdWx0O1xuLy8qKiBIZWFkaW5ncyBzbWFsbCBjb2xvclxuJGhlYWRpbmdzLXNtYWxsLWNvbG9yOiAgICAgICAgJGdyYXktbGlnaHQgIWRlZmF1bHQ7XG4vLyoqIEJsb2NrcXVvdGUgc21hbGwgY29sb3JcbiRibG9ja3F1b3RlLXNtYWxsLWNvbG9yOiAgICAgICRncmF5LWxpZ2h0ICFkZWZhdWx0O1xuLy8qKiBCbG9ja3F1b3RlIGZvbnQgc2l6ZVxuJGJsb2NrcXVvdGUtZm9udC1zaXplOiAgICAgICAgKCRmb250LXNpemUtYmFzZSAqIDEuMjUpICFkZWZhdWx0O1xuLy8qKiBCbG9ja3F1b3RlIGJvcmRlciBjb2xvclxuJGJsb2NrcXVvdGUtYm9yZGVyLWNvbG9yOiAgICAgJGdyYXktbGlnaHRlciAhZGVmYXVsdDtcbi8vKiogUGFnZSBoZWFkZXIgYm9yZGVyIGNvbG9yXG4kcGFnZS1oZWFkZXItYm9yZGVyLWNvbG9yOiAgICAkZ3JheS1saWdodGVyICFkZWZhdWx0O1xuLy8qKiBXaWR0aCBvZiBob3Jpem9udGFsIGRlc2NyaXB0aW9uIGxpc3QgdGl0bGVzXG4kZGwtaG9yaXpvbnRhbC1vZmZzZXQ6ICAgICAgICAkY29tcG9uZW50LW9mZnNldC1ob3Jpem9udGFsICFkZWZhdWx0O1xuLy8qKiBQb2ludCBhdCB3aGljaCAuZGwtaG9yaXpvbnRhbCBiZWNvbWVzIGhvcml6b250YWxcbiRkbC1ob3Jpem9udGFsLWJyZWFrcG9pbnQ6ICAgICRncmlkLWZsb2F0LWJyZWFrcG9pbnQgIWRlZmF1bHQ7XG4vLyoqIEhvcml6b250YWwgbGluZSBjb2xvci5cbiRoci1ib3JkZXI6ICAgICAgICAgICAgICAgICAgICRncmF5LWxpZ2h0ZXIgIWRlZmF1bHQ7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9ub2RlX21vZHVsZXMvYm9vdHN0cmFwLXNhc3MvYXNzZXRzL3N0eWxlc2hlZXRzL2Jvb3RzdHJhcC9fdmFyaWFibGVzLnNjc3MiLCIvLyBXZWJLaXQtc3R5bGUgZm9jdXNcblxuQG1peGluIHRhYi1mb2N1cygpIHtcbiAgLy8gV2ViS2l0LXNwZWNpZmljLiBPdGhlciBicm93c2VycyB3aWxsIGtlZXAgdGhlaXIgZGVmYXVsdCBvdXRsaW5lIHN0eWxlLlxuICAvLyAoSW5pdGlhbGx5IHRyaWVkIHRvIGFsc28gZm9yY2UgZGVmYXVsdCB2aWEgYG91dGxpbmU6IGluaXRpYWxgLFxuICAvLyBidXQgdGhhdCBzZWVtcyB0byBlcnJvbmVvdXNseSByZW1vdmUgdGhlIG91dGxpbmUgaW4gRmlyZWZveCBhbHRvZ2V0aGVyLilcbiAgb3V0bGluZTogNXB4IGF1dG8gLXdlYmtpdC1mb2N1cy1yaW5nLWNvbG9yO1xuICBvdXRsaW5lLW9mZnNldDogLTJweDtcbn1cblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL25vZGVfbW9kdWxlcy9ib290c3RyYXAtc2Fzcy9hc3NldHMvc3R5bGVzaGVldHMvYm9vdHN0cmFwL21peGlucy9fdGFiLWZvY3VzLnNjc3MiLCIvLyBJbWFnZSBNaXhpbnNcbi8vIC0gUmVzcG9uc2l2ZSBpbWFnZVxuLy8gLSBSZXRpbmEgaW1hZ2VcblxuXG4vLyBSZXNwb25zaXZlIGltYWdlXG4vL1xuLy8gS2VlcCBpbWFnZXMgZnJvbSBzY2FsaW5nIGJleW9uZCB0aGUgd2lkdGggb2YgdGhlaXIgcGFyZW50cy5cbkBtaXhpbiBpbWctcmVzcG9uc2l2ZSgkZGlzcGxheTogYmxvY2spIHtcbiAgZGlzcGxheTogJGRpc3BsYXk7XG4gIG1heC13aWR0aDogMTAwJTsgLy8gUGFydCAxOiBTZXQgYSBtYXhpbXVtIHJlbGF0aXZlIHRvIHRoZSBwYXJlbnRcbiAgaGVpZ2h0OiBhdXRvOyAvLyBQYXJ0IDI6IFNjYWxlIHRoZSBoZWlnaHQgYWNjb3JkaW5nIHRvIHRoZSB3aWR0aCwgb3RoZXJ3aXNlIHlvdSBnZXQgc3RyZXRjaGluZ1xufVxuXG5cbi8vIFJldGluYSBpbWFnZVxuLy9cbi8vIFNob3J0IHJldGluYSBtaXhpbiBmb3Igc2V0dGluZyBiYWNrZ3JvdW5kLWltYWdlIGFuZCAtc2l6ZS4gTm90ZSB0aGF0IHRoZVxuLy8gc3BlbGxpbmcgb2YgYG1pbi0tbW96LWRldmljZS1waXhlbC1yYXRpb2AgaXMgaW50ZW50aW9uYWwuXG5AbWl4aW4gaW1nLXJldGluYSgkZmlsZS0xeCwgJGZpbGUtMngsICR3aWR0aC0xeCwgJGhlaWdodC0xeCkge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoaWYoJGJvb3RzdHJhcC1zYXNzLWFzc2V0LWhlbHBlciwgdHdicy1pbWFnZS1wYXRoKFwiI3skZmlsZS0xeH1cIiksIFwiI3skZmlsZS0xeH1cIikpO1xuXG4gIEBtZWRpYVxuICBvbmx5IHNjcmVlbiBhbmQgKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMiksXG4gIG9ubHkgc2NyZWVuIGFuZCAoICAgbWluLS1tb3otZGV2aWNlLXBpeGVsLXJhdGlvOiAyKSxcbiAgb25seSBzY3JlZW4gYW5kICggICAgIC1vLW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDIvMSksXG4gIG9ubHkgc2NyZWVuIGFuZCAoICAgICAgICBtaW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAyKSxcbiAgb25seSBzY3JlZW4gYW5kICggICAgICAgICAgICAgICAgbWluLXJlc29sdXRpb246IDE5MmRwaSksXG4gIG9ubHkgc2NyZWVuIGFuZCAoICAgICAgICAgICAgICAgIG1pbi1yZXNvbHV0aW9uOiAyZHBweCkge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChpZigkYm9vdHN0cmFwLXNhc3MtYXNzZXQtaGVscGVyLCB0d2JzLWltYWdlLXBhdGgoXCIjeyRmaWxlLTJ4fVwiKSwgXCIjeyRmaWxlLTJ4fVwiKSk7XG4gICAgYmFja2dyb3VuZC1zaXplOiAkd2lkdGgtMXggJGhlaWdodC0xeDtcbiAgfVxufVxuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vbm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC1zYXNzL2Fzc2V0cy9zdHlsZXNoZWV0cy9ib290c3RyYXAvbWl4aW5zL19pbWFnZS5zY3NzIiwiLy9cbi8vIFR5cG9ncmFwaHlcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cblxuLy8gSGVhZGluZ3Ncbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuaDEsIGgyLCBoMywgaDQsIGg1LCBoNixcbi5oMSwgLmgyLCAuaDMsIC5oNCwgLmg1LCAuaDYge1xuICBmb250LWZhbWlseTogJGhlYWRpbmdzLWZvbnQtZmFtaWx5O1xuICBmb250LXdlaWdodDogJGhlYWRpbmdzLWZvbnQtd2VpZ2h0O1xuICBsaW5lLWhlaWdodDogJGhlYWRpbmdzLWxpbmUtaGVpZ2h0O1xuICBjb2xvcjogJGhlYWRpbmdzLWNvbG9yO1xuXG4gIHNtYWxsLFxuICAuc21hbGwge1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgY29sb3I6ICRoZWFkaW5ncy1zbWFsbC1jb2xvcjtcbiAgfVxufVxuXG5oMSwgLmgxLFxuaDIsIC5oMixcbmgzLCAuaDMge1xuICBtYXJnaW4tdG9wOiAkbGluZS1oZWlnaHQtY29tcHV0ZWQ7XG4gIG1hcmdpbi1ib3R0b206ICgkbGluZS1oZWlnaHQtY29tcHV0ZWQgLyAyKTtcblxuICBzbWFsbCxcbiAgLnNtYWxsIHtcbiAgICBmb250LXNpemU6IDY1JTtcbiAgfVxufVxuaDQsIC5oNCxcbmg1LCAuaDUsXG5oNiwgLmg2IHtcbiAgbWFyZ2luLXRvcDogKCRsaW5lLWhlaWdodC1jb21wdXRlZCAvIDIpO1xuICBtYXJnaW4tYm90dG9tOiAoJGxpbmUtaGVpZ2h0LWNvbXB1dGVkIC8gMik7XG5cbiAgc21hbGwsXG4gIC5zbWFsbCB7XG4gICAgZm9udC1zaXplOiA3NSU7XG4gIH1cbn1cblxuaDEsIC5oMSB7IGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1oMTsgfVxuaDIsIC5oMiB7IGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1oMjsgfVxuaDMsIC5oMyB7IGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1oMzsgfVxuaDQsIC5oNCB7IGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1oNDsgfVxuaDUsIC5oNSB7IGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1oNTsgfVxuaDYsIC5oNiB7IGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1oNjsgfVxuXG5cbi8vIEJvZHkgdGV4dFxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5wIHtcbiAgbWFyZ2luOiAwIDAgKCRsaW5lLWhlaWdodC1jb21wdXRlZCAvIDIpO1xufVxuXG4ubGVhZCB7XG4gIG1hcmdpbi1ib3R0b206ICRsaW5lLWhlaWdodC1jb21wdXRlZDtcbiAgZm9udC1zaXplOiBmbG9vcigoJGZvbnQtc2l6ZS1iYXNlICogMS4xNSkpO1xuICBmb250LXdlaWdodDogMzAwO1xuICBsaW5lLWhlaWdodDogMS40O1xuXG4gIEBtZWRpYSAobWluLXdpZHRoOiAkc2NyZWVuLXNtLW1pbikge1xuICAgIGZvbnQtc2l6ZTogKCRmb250LXNpemUtYmFzZSAqIDEuNSk7XG4gIH1cbn1cblxuXG4vLyBFbXBoYXNpcyAmIG1pc2Ncbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLy8gRXg6ICgxMnB4IHNtYWxsIGZvbnQgLyAxNHB4IGJhc2UgZm9udCkgKiAxMDAlID0gYWJvdXQgODUlXG5zbWFsbCxcbi5zbWFsbCB7XG4gIGZvbnQtc2l6ZTogZmxvb3IoKDEwMCUgKiAkZm9udC1zaXplLXNtYWxsIC8gJGZvbnQtc2l6ZS1iYXNlKSk7XG59XG5cbm1hcmssXG4ubWFyayB7XG4gIGJhY2tncm91bmQtY29sb3I6ICRzdGF0ZS13YXJuaW5nLWJnO1xuICBwYWRkaW5nOiAuMmVtO1xufVxuXG4vLyBBbGlnbm1lbnRcbi50ZXh0LWxlZnQgICAgICAgICAgIHsgdGV4dC1hbGlnbjogbGVmdDsgfVxuLnRleHQtcmlnaHQgICAgICAgICAgeyB0ZXh0LWFsaWduOiByaWdodDsgfVxuLnRleHQtY2VudGVyICAgICAgICAgeyB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbi50ZXh0LWp1c3RpZnkgICAgICAgIHsgdGV4dC1hbGlnbjoganVzdGlmeTsgfVxuLnRleHQtbm93cmFwICAgICAgICAgeyB3aGl0ZS1zcGFjZTogbm93cmFwOyB9XG5cbi8vIFRyYW5zZm9ybWF0aW9uXG4udGV4dC1sb3dlcmNhc2UgICAgICB7IHRleHQtdHJhbnNmb3JtOiBsb3dlcmNhc2U7IH1cbi50ZXh0LXVwcGVyY2FzZSAgICAgIHsgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgfVxuLnRleHQtY2FwaXRhbGl6ZSAgICAgeyB0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTsgfVxuXG4vLyBDb250ZXh0dWFsIGNvbG9yc1xuLnRleHQtbXV0ZWQge1xuICBjb2xvcjogJHRleHQtbXV0ZWQ7XG59XG5cbkBpbmNsdWRlIHRleHQtZW1waGFzaXMtdmFyaWFudCgnLnRleHQtcHJpbWFyeScsICRicmFuZC1wcmltYXJ5KTtcblxuQGluY2x1ZGUgdGV4dC1lbXBoYXNpcy12YXJpYW50KCcudGV4dC1zdWNjZXNzJywgJHN0YXRlLXN1Y2Nlc3MtdGV4dCk7XG5cbkBpbmNsdWRlIHRleHQtZW1waGFzaXMtdmFyaWFudCgnLnRleHQtaW5mbycsICRzdGF0ZS1pbmZvLXRleHQpO1xuXG5AaW5jbHVkZSB0ZXh0LWVtcGhhc2lzLXZhcmlhbnQoJy50ZXh0LXdhcm5pbmcnLCAkc3RhdGUtd2FybmluZy10ZXh0KTtcblxuQGluY2x1ZGUgdGV4dC1lbXBoYXNpcy12YXJpYW50KCcudGV4dC1kYW5nZXInLCAkc3RhdGUtZGFuZ2VyLXRleHQpO1xuXG4vLyBDb250ZXh0dWFsIGJhY2tncm91bmRzXG4vLyBGb3Igbm93IHdlJ2xsIGxlYXZlIHRoZXNlIGFsb25nc2lkZSB0aGUgdGV4dCBjbGFzc2VzIHVudGlsIHY0IHdoZW4gd2UgY2FuXG4vLyBzYWZlbHkgc2hpZnQgdGhpbmdzIGFyb3VuZCAocGVyIFNlbVZlciBydWxlcykuXG4uYmctcHJpbWFyeSB7XG4gIC8vIEdpdmVuIHRoZSBjb250cmFzdCBoZXJlLCB0aGlzIGlzIHRoZSBvbmx5IGNsYXNzIHRvIGhhdmUgaXRzIGNvbG9yIGludmVydGVkXG4gIC8vIGF1dG9tYXRpY2FsbHkuXG4gIGNvbG9yOiAjZmZmO1xufVxuQGluY2x1ZGUgYmctdmFyaWFudCgnLmJnLXByaW1hcnknLCAkYnJhbmQtcHJpbWFyeSk7XG5cbkBpbmNsdWRlIGJnLXZhcmlhbnQoJy5iZy1zdWNjZXNzJywgJHN0YXRlLXN1Y2Nlc3MtYmcpO1xuXG5AaW5jbHVkZSBiZy12YXJpYW50KCcuYmctaW5mbycsICRzdGF0ZS1pbmZvLWJnKTtcblxuQGluY2x1ZGUgYmctdmFyaWFudCgnLmJnLXdhcm5pbmcnLCAkc3RhdGUtd2FybmluZy1iZyk7XG5cbkBpbmNsdWRlIGJnLXZhcmlhbnQoJy5iZy1kYW5nZXInLCAkc3RhdGUtZGFuZ2VyLWJnKTtcblxuXG4vLyBQYWdlIGhlYWRlclxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4ucGFnZS1oZWFkZXIge1xuICBwYWRkaW5nLWJvdHRvbTogKCgkbGluZS1oZWlnaHQtY29tcHV0ZWQgLyAyKSAtIDEpO1xuICBtYXJnaW46ICgkbGluZS1oZWlnaHQtY29tcHV0ZWQgKiAyKSAwICRsaW5lLWhlaWdodC1jb21wdXRlZDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRwYWdlLWhlYWRlci1ib3JkZXItY29sb3I7XG59XG5cblxuLy8gTGlzdHNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLy8gVW5vcmRlcmVkIGFuZCBPcmRlcmVkIGxpc3RzXG51bCxcbm9sIHtcbiAgbWFyZ2luLXRvcDogMDtcbiAgbWFyZ2luLWJvdHRvbTogKCRsaW5lLWhlaWdodC1jb21wdXRlZCAvIDIpO1xuICB1bCxcbiAgb2wge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cbn1cblxuLy8gTGlzdCBvcHRpb25zXG5cbi8vIFtjb252ZXJ0ZXJdIGV4dHJhY3RlZCBmcm9tIGAubGlzdC11bnN0eWxlZGAgZm9yIGxpYnNhc3MgY29tcGF0aWJpbGl0eVxuQG1peGluIGxpc3QtdW5zdHlsZWQge1xuICBwYWRkaW5nLWxlZnQ6IDA7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG59XG4vLyBbY29udmVydGVyXSBleHRyYWN0ZWQgYXMgYEBtaXhpbiBsaXN0LXVuc3R5bGVkYCBmb3IgbGlic2FzcyBjb21wYXRpYmlsaXR5XG4ubGlzdC11bnN0eWxlZCB7XG4gIEBpbmNsdWRlIGxpc3QtdW5zdHlsZWQ7XG59XG5cblxuLy8gSW5saW5lIHR1cm5zIGxpc3QgaXRlbXMgaW50byBpbmxpbmUtYmxvY2tcbi5saXN0LWlubGluZSB7XG4gIEBpbmNsdWRlIGxpc3QtdW5zdHlsZWQ7XG4gIG1hcmdpbi1sZWZ0OiAtNXB4O1xuXG4gID4gbGkge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBwYWRkaW5nLWxlZnQ6IDVweDtcbiAgICBwYWRkaW5nLXJpZ2h0OiA1cHg7XG4gIH1cbn1cblxuLy8gRGVzY3JpcHRpb24gTGlzdHNcbmRsIHtcbiAgbWFyZ2luLXRvcDogMDsgLy8gUmVtb3ZlIGJyb3dzZXIgZGVmYXVsdFxuICBtYXJnaW4tYm90dG9tOiAkbGluZS1oZWlnaHQtY29tcHV0ZWQ7XG59XG5kdCxcbmRkIHtcbiAgbGluZS1oZWlnaHQ6ICRsaW5lLWhlaWdodC1iYXNlO1xufVxuZHQge1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cbmRkIHtcbiAgbWFyZ2luLWxlZnQ6IDA7IC8vIFVuZG8gYnJvd3NlciBkZWZhdWx0XG59XG5cbi8vIEhvcml6b250YWwgZGVzY3JpcHRpb24gbGlzdHNcbi8vXG4vLyBEZWZhdWx0cyB0byBiZWluZyBzdGFja2VkIHdpdGhvdXQgYW55IG9mIHRoZSBiZWxvdyBzdHlsZXMgYXBwbGllZCwgdW50aWwgdGhlXG4vLyBncmlkIGJyZWFrcG9pbnQgaXMgcmVhY2hlZCAoZGVmYXVsdCBvZiB+NzY4cHgpLlxuXG4uZGwtaG9yaXpvbnRhbCB7XG4gIGRkIHtcbiAgICBAaW5jbHVkZSBjbGVhcmZpeDsgLy8gQ2xlYXIgdGhlIGZsb2F0ZWQgYGR0YCBpZiBhbiBlbXB0eSBgZGRgIGlzIHByZXNlbnRcbiAgfVxuXG4gIEBtZWRpYSAobWluLXdpZHRoOiAkZGwtaG9yaXpvbnRhbC1icmVha3BvaW50KSB7XG4gICAgZHQge1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICB3aWR0aDogKCRkbC1ob3Jpem9udGFsLW9mZnNldCAtIDIwKTtcbiAgICAgIGNsZWFyOiBsZWZ0O1xuICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICBAaW5jbHVkZSB0ZXh0LW92ZXJmbG93O1xuICAgIH1cbiAgICBkZCB7XG4gICAgICBtYXJnaW4tbGVmdDogJGRsLWhvcml6b250YWwtb2Zmc2V0O1xuICAgIH1cbiAgfVxufVxuXG5cbi8vIE1pc2Ncbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLy8gQWJicmV2aWF0aW9ucyBhbmQgYWNyb255bXNcbmFiYnJbdGl0bGVdLFxuLy8gQWRkIGRhdGEtKiBhdHRyaWJ1dGUgdG8gaGVscCBvdXQgb3VyIHRvb2x0aXAgcGx1Z2luLCBwZXIgaHR0cHM6Ly9naXRodWIuY29tL3R3YnMvYm9vdHN0cmFwL2lzc3Vlcy81MjU3XG5hYmJyW2RhdGEtb3JpZ2luYWwtdGl0bGVdIHtcbiAgY3Vyc29yOiBoZWxwO1xuICBib3JkZXItYm90dG9tOiAxcHggZG90dGVkICRhYmJyLWJvcmRlci1jb2xvcjtcbn1cbi5pbml0aWFsaXNtIHtcbiAgZm9udC1zaXplOiA5MCU7XG4gIEBleHRlbmQgLnRleHQtdXBwZXJjYXNlO1xufVxuXG4vLyBCbG9ja3F1b3Rlc1xuYmxvY2txdW90ZSB7XG4gIHBhZGRpbmc6ICgkbGluZS1oZWlnaHQtY29tcHV0ZWQgLyAyKSAkbGluZS1oZWlnaHQtY29tcHV0ZWQ7XG4gIG1hcmdpbjogMCAwICRsaW5lLWhlaWdodC1jb21wdXRlZDtcbiAgZm9udC1zaXplOiAkYmxvY2txdW90ZS1mb250LXNpemU7XG4gIGJvcmRlci1sZWZ0OiA1cHggc29saWQgJGJsb2NrcXVvdGUtYm9yZGVyLWNvbG9yO1xuXG4gIHAsXG4gIHVsLFxuICBvbCB7XG4gICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuICB9XG5cbiAgLy8gTm90ZTogRGVwcmVjYXRlZCBzbWFsbCBhbmQgLnNtYWxsIGFzIG9mIHYzLjEuMFxuICAvLyBDb250ZXh0OiBodHRwczovL2dpdGh1Yi5jb20vdHdicy9ib290c3RyYXAvaXNzdWVzLzExNjYwXG4gIGZvb3RlcixcbiAgc21hbGwsXG4gIC5zbWFsbCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZm9udC1zaXplOiA4MCU7IC8vIGJhY2sgdG8gZGVmYXVsdCBmb250LXNpemVcbiAgICBsaW5lLWhlaWdodDogJGxpbmUtaGVpZ2h0LWJhc2U7XG4gICAgY29sb3I6ICRibG9ja3F1b3RlLXNtYWxsLWNvbG9yO1xuXG4gICAgJjpiZWZvcmUge1xuICAgICAgY29udGVudDogJ1xcMjAxNCBcXDAwQTAnOyAvLyBlbSBkYXNoLCBuYnNwXG4gICAgfVxuICB9XG59XG5cbi8vIE9wcG9zaXRlIGFsaWdubWVudCBvZiBibG9ja3F1b3RlXG4vL1xuLy8gSGVhZHMgdXA6IGBibG9ja3F1b3RlLnB1bGwtcmlnaHRgIGhhcyBiZWVuIGRlcHJlY2F0ZWQgYXMgb2YgdjMuMS4wLlxuLmJsb2NrcXVvdGUtcmV2ZXJzZSxcbmJsb2NrcXVvdGUucHVsbC1yaWdodCB7XG4gIHBhZGRpbmctcmlnaHQ6IDE1cHg7XG4gIHBhZGRpbmctbGVmdDogMDtcbiAgYm9yZGVyLXJpZ2h0OiA1cHggc29saWQgJGJsb2NrcXVvdGUtYm9yZGVyLWNvbG9yO1xuICBib3JkZXItbGVmdDogMDtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG5cbiAgLy8gQWNjb3VudCBmb3IgY2l0YXRpb25cbiAgZm9vdGVyLFxuICBzbWFsbCxcbiAgLnNtYWxsIHtcbiAgICAmOmJlZm9yZSB7IGNvbnRlbnQ6ICcnOyB9XG4gICAgJjphZnRlciB7XG4gICAgICBjb250ZW50OiAnXFwwMEEwIFxcMjAxNCc7IC8vIG5ic3AsIGVtIGRhc2hcbiAgICB9XG4gIH1cbn1cblxuLy8gQWRkcmVzc2VzXG5hZGRyZXNzIHtcbiAgbWFyZ2luLWJvdHRvbTogJGxpbmUtaGVpZ2h0LWNvbXB1dGVkO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGxpbmUtaGVpZ2h0OiAkbGluZS1oZWlnaHQtYmFzZTtcbn1cblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL25vZGVfbW9kdWxlcy9ib290c3RyYXAtc2Fzcy9hc3NldHMvc3R5bGVzaGVldHMvYm9vdHN0cmFwL190eXBlLnNjc3MiLCIvLyBUeXBvZ3JhcGh5XG5cbi8vIFtjb252ZXJ0ZXJdICRwYXJlbnQgaGFja1xuQG1peGluIHRleHQtZW1waGFzaXMtdmFyaWFudCgkcGFyZW50LCAkY29sb3IpIHtcbiAgI3skcGFyZW50fSB7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgfVxuICBhI3skcGFyZW50fTpob3ZlcixcbiAgYSN7JHBhcmVudH06Zm9jdXMge1xuICAgIGNvbG9yOiBkYXJrZW4oJGNvbG9yLCAxMCUpO1xuICB9XG59XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9ub2RlX21vZHVsZXMvYm9vdHN0cmFwLXNhc3MvYXNzZXRzL3N0eWxlc2hlZXRzL2Jvb3RzdHJhcC9taXhpbnMvX3RleHQtZW1waGFzaXMuc2NzcyIsIi8vIENvbnRleHR1YWwgYmFja2dyb3VuZHNcblxuLy8gW2NvbnZlcnRlcl0gJHBhcmVudCBoYWNrXG5AbWl4aW4gYmctdmFyaWFudCgkcGFyZW50LCAkY29sb3IpIHtcbiAgI3skcGFyZW50fSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuICB9XG4gIGEjeyRwYXJlbnR9OmhvdmVyLFxuICBhI3skcGFyZW50fTpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogZGFya2VuKCRjb2xvciwgMTAlKTtcbiAgfVxufVxuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vbm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC1zYXNzL2Fzc2V0cy9zdHlsZXNoZWV0cy9ib290c3RyYXAvbWl4aW5zL19iYWNrZ3JvdW5kLXZhcmlhbnQuc2NzcyIsIi8vIENsZWFyZml4XG4vL1xuLy8gRm9yIG1vZGVybiBicm93c2Vyc1xuLy8gMS4gVGhlIHNwYWNlIGNvbnRlbnQgaXMgb25lIHdheSB0byBhdm9pZCBhbiBPcGVyYSBidWcgd2hlbiB0aGVcbi8vICAgIGNvbnRlbnRlZGl0YWJsZSBhdHRyaWJ1dGUgaXMgaW5jbHVkZWQgYW55d2hlcmUgZWxzZSBpbiB0aGUgZG9jdW1lbnQuXG4vLyAgICBPdGhlcndpc2UgaXQgY2F1c2VzIHNwYWNlIHRvIGFwcGVhciBhdCB0aGUgdG9wIGFuZCBib3R0b20gb2YgZWxlbWVudHNcbi8vICAgIHRoYXQgYXJlIGNsZWFyZml4ZWQuXG4vLyAyLiBUaGUgdXNlIG9mIGB0YWJsZWAgcmF0aGVyIHRoYW4gYGJsb2NrYCBpcyBvbmx5IG5lY2Vzc2FyeSBpZiB1c2luZ1xuLy8gICAgYDpiZWZvcmVgIHRvIGNvbnRhaW4gdGhlIHRvcC1tYXJnaW5zIG9mIGNoaWxkIGVsZW1lbnRzLlxuLy9cbi8vIFNvdXJjZTogaHR0cDovL25pY29sYXNnYWxsYWdoZXIuY29tL21pY3JvLWNsZWFyZml4LWhhY2svXG5cbkBtaXhpbiBjbGVhcmZpeCgpIHtcbiAgJjpiZWZvcmUsXG4gICY6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiIFwiOyAvLyAxXG4gICAgZGlzcGxheTogdGFibGU7IC8vIDJcbiAgfVxuICAmOmFmdGVyIHtcbiAgICBjbGVhcjogYm90aDtcbiAgfVxufVxuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vbm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC1zYXNzL2Fzc2V0cy9zdHlsZXNoZWV0cy9ib290c3RyYXAvbWl4aW5zL19jbGVhcmZpeC5zY3NzIiwiLy8gVGV4dCBvdmVyZmxvd1xuLy8gUmVxdWlyZXMgaW5saW5lLWJsb2NrIG9yIGJsb2NrIGZvciBwcm9wZXIgc3R5bGluZ1xuXG5AbWl4aW4gdGV4dC1vdmVyZmxvdygpIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9ub2RlX21vZHVsZXMvYm9vdHN0cmFwLXNhc3MvYXNzZXRzL3N0eWxlc2hlZXRzL2Jvb3RzdHJhcC9taXhpbnMvX3RleHQtb3ZlcmZsb3cuc2NzcyIsIi8vXG4vLyBDb2RlIChpbmxpbmUgYW5kIGJsb2NrKVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuXG4vLyBJbmxpbmUgYW5kIGJsb2NrIGNvZGUgc3R5bGVzXG5jb2RlLFxua2JkLFxucHJlLFxuc2FtcCB7XG4gIGZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHktbW9ub3NwYWNlO1xufVxuXG4vLyBJbmxpbmUgY29kZVxuY29kZSB7XG4gIHBhZGRpbmc6IDJweCA0cHg7XG4gIGZvbnQtc2l6ZTogOTAlO1xuICBjb2xvcjogJGNvZGUtY29sb3I7XG4gIGJhY2tncm91bmQtY29sb3I6ICRjb2RlLWJnO1xuICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cy1iYXNlO1xufVxuXG4vLyBVc2VyIGlucHV0IHR5cGljYWxseSBlbnRlcmVkIHZpYSBrZXlib2FyZFxua2JkIHtcbiAgcGFkZGluZzogMnB4IDRweDtcbiAgZm9udC1zaXplOiA5MCU7XG4gIGNvbG9yOiAka2JkLWNvbG9yO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAka2JkLWJnO1xuICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cy1zbWFsbDtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAtMXB4IDAgcmdiYSgwLDAsMCwuMjUpO1xuXG4gIGtiZCB7XG4gICAgcGFkZGluZzogMDtcbiAgICBmb250LXNpemU6IDEwMCU7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgfVxufVxuXG4vLyBCbG9ja3Mgb2YgY29kZVxucHJlIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmc6ICgoJGxpbmUtaGVpZ2h0LWNvbXB1dGVkIC0gMSkgLyAyKTtcbiAgbWFyZ2luOiAwIDAgKCRsaW5lLWhlaWdodC1jb21wdXRlZCAvIDIpO1xuICBmb250LXNpemU6ICgkZm9udC1zaXplLWJhc2UgLSAxKTsgLy8gMTRweCB0byAxM3B4XG4gIGxpbmUtaGVpZ2h0OiAkbGluZS1oZWlnaHQtYmFzZTtcbiAgd29yZC1icmVhazogYnJlYWstYWxsO1xuICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG4gIGNvbG9yOiAkcHJlLWNvbG9yO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkcHJlLWJnO1xuICBib3JkZXI6IDFweCBzb2xpZCAkcHJlLWJvcmRlci1jb2xvcjtcbiAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXMtYmFzZTtcblxuICAvLyBBY2NvdW50IGZvciBzb21lIGNvZGUgb3V0cHV0cyB0aGF0IHBsYWNlIGNvZGUgdGFncyBpbiBwcmUgdGFnc1xuICBjb2RlIHtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgICBjb2xvcjogaW5oZXJpdDtcbiAgICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgfVxufVxuXG4vLyBFbmFibGUgc2Nyb2xsYWJsZSBibG9ja3Mgb2YgY29kZVxuLnByZS1zY3JvbGxhYmxlIHtcbiAgbWF4LWhlaWdodDogJHByZS1zY3JvbGxhYmxlLW1heC1oZWlnaHQ7XG4gIG92ZXJmbG93LXk6IHNjcm9sbDtcbn1cblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL25vZGVfbW9kdWxlcy9ib290c3RyYXAtc2Fzcy9hc3NldHMvc3R5bGVzaGVldHMvYm9vdHN0cmFwL19jb2RlLnNjc3MiLCIvL1xuLy8gR3JpZCBzeXN0ZW1cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cblxuLy8gQ29udGFpbmVyIHdpZHRoc1xuLy9cbi8vIFNldCB0aGUgY29udGFpbmVyIHdpZHRoLCBhbmQgb3ZlcnJpZGUgaXQgZm9yIGZpeGVkIG5hdmJhcnMgaW4gbWVkaWEgcXVlcmllcy5cblxuLmNvbnRhaW5lciB7XG4gIEBpbmNsdWRlIGNvbnRhaW5lci1maXhlZDtcblxuICBAbWVkaWEgKG1pbi13aWR0aDogJHNjcmVlbi1zbS1taW4pIHtcbiAgICB3aWR0aDogJGNvbnRhaW5lci1zbTtcbiAgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogJHNjcmVlbi1tZC1taW4pIHtcbiAgICB3aWR0aDogJGNvbnRhaW5lci1tZDtcbiAgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogJHNjcmVlbi1sZy1taW4pIHtcbiAgICB3aWR0aDogJGNvbnRhaW5lci1sZztcbiAgfVxufVxuXG5cbi8vIEZsdWlkIGNvbnRhaW5lclxuLy9cbi8vIFV0aWxpemVzIHRoZSBtaXhpbiBtZWFudCBmb3IgZml4ZWQgd2lkdGggY29udGFpbmVycywgYnV0IHdpdGhvdXQgYW55IGRlZmluZWRcbi8vIHdpZHRoIGZvciBmbHVpZCwgZnVsbCB3aWR0aCBsYXlvdXRzLlxuXG4uY29udGFpbmVyLWZsdWlkIHtcbiAgQGluY2x1ZGUgY29udGFpbmVyLWZpeGVkO1xufVxuXG5cbi8vIFJvd1xuLy9cbi8vIFJvd3MgY29udGFpbiBhbmQgY2xlYXIgdGhlIGZsb2F0cyBvZiB5b3VyIGNvbHVtbnMuXG5cbi5yb3cge1xuICBAaW5jbHVkZSBtYWtlLXJvdztcbn1cblxuXG4vLyBDb2x1bW5zXG4vL1xuLy8gQ29tbW9uIHN0eWxlcyBmb3Igc21hbGwgYW5kIGxhcmdlIGdyaWQgY29sdW1uc1xuXG5AaW5jbHVkZSBtYWtlLWdyaWQtY29sdW1ucztcblxuXG4vLyBFeHRyYSBzbWFsbCBncmlkXG4vL1xuLy8gQ29sdW1ucywgb2Zmc2V0cywgcHVzaGVzLCBhbmQgcHVsbHMgZm9yIGV4dHJhIHNtYWxsIGRldmljZXMgbGlrZVxuLy8gc21hcnRwaG9uZXMuXG5cbkBpbmNsdWRlIG1ha2UtZ3JpZCh4cyk7XG5cblxuLy8gU21hbGwgZ3JpZFxuLy9cbi8vIENvbHVtbnMsIG9mZnNldHMsIHB1c2hlcywgYW5kIHB1bGxzIGZvciB0aGUgc21hbGwgZGV2aWNlIHJhbmdlLCBmcm9tIHBob25lc1xuLy8gdG8gdGFibGV0cy5cblxuQG1lZGlhIChtaW4td2lkdGg6ICRzY3JlZW4tc20tbWluKSB7XG4gIEBpbmNsdWRlIG1ha2UtZ3JpZChzbSk7XG59XG5cblxuLy8gTWVkaXVtIGdyaWRcbi8vXG4vLyBDb2x1bW5zLCBvZmZzZXRzLCBwdXNoZXMsIGFuZCBwdWxscyBmb3IgdGhlIGRlc2t0b3AgZGV2aWNlIHJhbmdlLlxuXG5AbWVkaWEgKG1pbi13aWR0aDogJHNjcmVlbi1tZC1taW4pIHtcbiAgQGluY2x1ZGUgbWFrZS1ncmlkKG1kKTtcbn1cblxuXG4vLyBMYXJnZSBncmlkXG4vL1xuLy8gQ29sdW1ucywgb2Zmc2V0cywgcHVzaGVzLCBhbmQgcHVsbHMgZm9yIHRoZSBsYXJnZSBkZXNrdG9wIGRldmljZSByYW5nZS5cblxuQG1lZGlhIChtaW4td2lkdGg6ICRzY3JlZW4tbGctbWluKSB7XG4gIEBpbmNsdWRlIG1ha2UtZ3JpZChsZyk7XG59XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9ub2RlX21vZHVsZXMvYm9vdHN0cmFwLXNhc3MvYXNzZXRzL3N0eWxlc2hlZXRzL2Jvb3RzdHJhcC9fZ3JpZC5zY3NzIiwiLy8gR3JpZCBzeXN0ZW1cbi8vXG4vLyBHZW5lcmF0ZSBzZW1hbnRpYyBncmlkIGNvbHVtbnMgd2l0aCB0aGVzZSBtaXhpbnMuXG5cbi8vIENlbnRlcmVkIGNvbnRhaW5lciBlbGVtZW50XG5AbWl4aW4gY29udGFpbmVyLWZpeGVkKCRndXR0ZXI6ICRncmlkLWd1dHRlci13aWR0aCkge1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBwYWRkaW5nLWxlZnQ6ICBmbG9vcigoJGd1dHRlciAvIDIpKTtcbiAgcGFkZGluZy1yaWdodDogY2VpbCgoJGd1dHRlciAvIDIpKTtcbiAgQGluY2x1ZGUgY2xlYXJmaXg7XG59XG5cbi8vIENyZWF0ZXMgYSB3cmFwcGVyIGZvciBhIHNlcmllcyBvZiBjb2x1bW5zXG5AbWl4aW4gbWFrZS1yb3coJGd1dHRlcjogJGdyaWQtZ3V0dGVyLXdpZHRoKSB7XG4gIG1hcmdpbi1sZWZ0OiAgY2VpbCgoJGd1dHRlciAvIC0yKSk7XG4gIG1hcmdpbi1yaWdodDogZmxvb3IoKCRndXR0ZXIgLyAtMikpO1xuICBAaW5jbHVkZSBjbGVhcmZpeDtcbn1cblxuLy8gR2VuZXJhdGUgdGhlIGV4dHJhIHNtYWxsIGNvbHVtbnNcbkBtaXhpbiBtYWtlLXhzLWNvbHVtbigkY29sdW1ucywgJGd1dHRlcjogJGdyaWQtZ3V0dGVyLXdpZHRoKSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZmxvYXQ6IGxlZnQ7XG4gIHdpZHRoOiBwZXJjZW50YWdlKCgkY29sdW1ucyAvICRncmlkLWNvbHVtbnMpKTtcbiAgbWluLWhlaWdodDogMXB4O1xuICBwYWRkaW5nLWxlZnQ6ICAoJGd1dHRlciAvIDIpO1xuICBwYWRkaW5nLXJpZ2h0OiAoJGd1dHRlciAvIDIpO1xufVxuQG1peGluIG1ha2UteHMtY29sdW1uLW9mZnNldCgkY29sdW1ucykge1xuICBtYXJnaW4tbGVmdDogcGVyY2VudGFnZSgoJGNvbHVtbnMgLyAkZ3JpZC1jb2x1bW5zKSk7XG59XG5AbWl4aW4gbWFrZS14cy1jb2x1bW4tcHVzaCgkY29sdW1ucykge1xuICBsZWZ0OiBwZXJjZW50YWdlKCgkY29sdW1ucyAvICRncmlkLWNvbHVtbnMpKTtcbn1cbkBtaXhpbiBtYWtlLXhzLWNvbHVtbi1wdWxsKCRjb2x1bW5zKSB7XG4gIHJpZ2h0OiBwZXJjZW50YWdlKCgkY29sdW1ucyAvICRncmlkLWNvbHVtbnMpKTtcbn1cblxuLy8gR2VuZXJhdGUgdGhlIHNtYWxsIGNvbHVtbnNcbkBtaXhpbiBtYWtlLXNtLWNvbHVtbigkY29sdW1ucywgJGd1dHRlcjogJGdyaWQtZ3V0dGVyLXdpZHRoKSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWluLWhlaWdodDogMXB4O1xuICBwYWRkaW5nLWxlZnQ6ICAoJGd1dHRlciAvIDIpO1xuICBwYWRkaW5nLXJpZ2h0OiAoJGd1dHRlciAvIDIpO1xuXG4gIEBtZWRpYSAobWluLXdpZHRoOiAkc2NyZWVuLXNtLW1pbikge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHdpZHRoOiBwZXJjZW50YWdlKCgkY29sdW1ucyAvICRncmlkLWNvbHVtbnMpKTtcbiAgfVxufVxuQG1peGluIG1ha2Utc20tY29sdW1uLW9mZnNldCgkY29sdW1ucykge1xuICBAbWVkaWEgKG1pbi13aWR0aDogJHNjcmVlbi1zbS1taW4pIHtcbiAgICBtYXJnaW4tbGVmdDogcGVyY2VudGFnZSgoJGNvbHVtbnMgLyAkZ3JpZC1jb2x1bW5zKSk7XG4gIH1cbn1cbkBtaXhpbiBtYWtlLXNtLWNvbHVtbi1wdXNoKCRjb2x1bW5zKSB7XG4gIEBtZWRpYSAobWluLXdpZHRoOiAkc2NyZWVuLXNtLW1pbikge1xuICAgIGxlZnQ6IHBlcmNlbnRhZ2UoKCRjb2x1bW5zIC8gJGdyaWQtY29sdW1ucykpO1xuICB9XG59XG5AbWl4aW4gbWFrZS1zbS1jb2x1bW4tcHVsbCgkY29sdW1ucykge1xuICBAbWVkaWEgKG1pbi13aWR0aDogJHNjcmVlbi1zbS1taW4pIHtcbiAgICByaWdodDogcGVyY2VudGFnZSgoJGNvbHVtbnMgLyAkZ3JpZC1jb2x1bW5zKSk7XG4gIH1cbn1cblxuLy8gR2VuZXJhdGUgdGhlIG1lZGl1bSBjb2x1bW5zXG5AbWl4aW4gbWFrZS1tZC1jb2x1bW4oJGNvbHVtbnMsICRndXR0ZXI6ICRncmlkLWd1dHRlci13aWR0aCkge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1pbi1oZWlnaHQ6IDFweDtcbiAgcGFkZGluZy1sZWZ0OiAgKCRndXR0ZXIgLyAyKTtcbiAgcGFkZGluZy1yaWdodDogKCRndXR0ZXIgLyAyKTtcblxuICBAbWVkaWEgKG1pbi13aWR0aDogJHNjcmVlbi1tZC1taW4pIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICB3aWR0aDogcGVyY2VudGFnZSgoJGNvbHVtbnMgLyAkZ3JpZC1jb2x1bW5zKSk7XG4gIH1cbn1cbkBtaXhpbiBtYWtlLW1kLWNvbHVtbi1vZmZzZXQoJGNvbHVtbnMpIHtcbiAgQG1lZGlhIChtaW4td2lkdGg6ICRzY3JlZW4tbWQtbWluKSB7XG4gICAgbWFyZ2luLWxlZnQ6IHBlcmNlbnRhZ2UoKCRjb2x1bW5zIC8gJGdyaWQtY29sdW1ucykpO1xuICB9XG59XG5AbWl4aW4gbWFrZS1tZC1jb2x1bW4tcHVzaCgkY29sdW1ucykge1xuICBAbWVkaWEgKG1pbi13aWR0aDogJHNjcmVlbi1tZC1taW4pIHtcbiAgICBsZWZ0OiBwZXJjZW50YWdlKCgkY29sdW1ucyAvICRncmlkLWNvbHVtbnMpKTtcbiAgfVxufVxuQG1peGluIG1ha2UtbWQtY29sdW1uLXB1bGwoJGNvbHVtbnMpIHtcbiAgQG1lZGlhIChtaW4td2lkdGg6ICRzY3JlZW4tbWQtbWluKSB7XG4gICAgcmlnaHQ6IHBlcmNlbnRhZ2UoKCRjb2x1bW5zIC8gJGdyaWQtY29sdW1ucykpO1xuICB9XG59XG5cbi8vIEdlbmVyYXRlIHRoZSBsYXJnZSBjb2x1bW5zXG5AbWl4aW4gbWFrZS1sZy1jb2x1bW4oJGNvbHVtbnMsICRndXR0ZXI6ICRncmlkLWd1dHRlci13aWR0aCkge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1pbi1oZWlnaHQ6IDFweDtcbiAgcGFkZGluZy1sZWZ0OiAgKCRndXR0ZXIgLyAyKTtcbiAgcGFkZGluZy1yaWdodDogKCRndXR0ZXIgLyAyKTtcblxuICBAbWVkaWEgKG1pbi13aWR0aDogJHNjcmVlbi1sZy1taW4pIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICB3aWR0aDogcGVyY2VudGFnZSgoJGNvbHVtbnMgLyAkZ3JpZC1jb2x1bW5zKSk7XG4gIH1cbn1cbkBtaXhpbiBtYWtlLWxnLWNvbHVtbi1vZmZzZXQoJGNvbHVtbnMpIHtcbiAgQG1lZGlhIChtaW4td2lkdGg6ICRzY3JlZW4tbGctbWluKSB7XG4gICAgbWFyZ2luLWxlZnQ6IHBlcmNlbnRhZ2UoKCRjb2x1bW5zIC8gJGdyaWQtY29sdW1ucykpO1xuICB9XG59XG5AbWl4aW4gbWFrZS1sZy1jb2x1bW4tcHVzaCgkY29sdW1ucykge1xuICBAbWVkaWEgKG1pbi13aWR0aDogJHNjcmVlbi1sZy1taW4pIHtcbiAgICBsZWZ0OiBwZXJjZW50YWdlKCgkY29sdW1ucyAvICRncmlkLWNvbHVtbnMpKTtcbiAgfVxufVxuQG1peGluIG1ha2UtbGctY29sdW1uLXB1bGwoJGNvbHVtbnMpIHtcbiAgQG1lZGlhIChtaW4td2lkdGg6ICRzY3JlZW4tbGctbWluKSB7XG4gICAgcmlnaHQ6IHBlcmNlbnRhZ2UoKCRjb2x1bW5zIC8gJGdyaWQtY29sdW1ucykpO1xuICB9XG59XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9ub2RlX21vZHVsZXMvYm9vdHN0cmFwLXNhc3MvYXNzZXRzL3N0eWxlc2hlZXRzL2Jvb3RzdHJhcC9taXhpbnMvX2dyaWQuc2NzcyIsIi8vIEZyYW1ld29yayBncmlkIGdlbmVyYXRpb25cbi8vXG4vLyBVc2VkIG9ubHkgYnkgQm9vdHN0cmFwIHRvIGdlbmVyYXRlIHRoZSBjb3JyZWN0IG51bWJlciBvZiBncmlkIGNsYXNzZXMgZ2l2ZW5cbi8vIGFueSB2YWx1ZSBvZiBgJGdyaWQtY29sdW1uc2AuXG5cbi8vIFtjb252ZXJ0ZXJdIFRoaXMgaXMgZGVmaW5lZCByZWN1cnNpdmVseSBpbiBMRVNTLCBidXQgU2FzcyBzdXBwb3J0cyByZWFsIGxvb3BzXG5AbWl4aW4gbWFrZS1ncmlkLWNvbHVtbnMoJGk6IDEsICRsaXN0OiBcIi5jb2wteHMtI3skaX0sIC5jb2wtc20tI3skaX0sIC5jb2wtbWQtI3skaX0sIC5jb2wtbGctI3skaX1cIikge1xuICBAZm9yICRpIGZyb20gKDEgKyAxKSB0aHJvdWdoICRncmlkLWNvbHVtbnMge1xuICAgICRsaXN0OiBcIiN7JGxpc3R9LCAuY29sLXhzLSN7JGl9LCAuY29sLXNtLSN7JGl9LCAuY29sLW1kLSN7JGl9LCAuY29sLWxnLSN7JGl9XCI7XG4gIH1cbiAgI3skbGlzdH0ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAvLyBQcmV2ZW50IGNvbHVtbnMgZnJvbSBjb2xsYXBzaW5nIHdoZW4gZW1wdHlcbiAgICBtaW4taGVpZ2h0OiAxcHg7XG4gICAgLy8gSW5uZXIgZ3V0dGVyIHZpYSBwYWRkaW5nXG4gICAgcGFkZGluZy1sZWZ0OiAgY2VpbCgoJGdyaWQtZ3V0dGVyLXdpZHRoIC8gMikpO1xuICAgIHBhZGRpbmctcmlnaHQ6IGZsb29yKCgkZ3JpZC1ndXR0ZXItd2lkdGggLyAyKSk7XG4gIH1cbn1cblxuXG4vLyBbY29udmVydGVyXSBUaGlzIGlzIGRlZmluZWQgcmVjdXJzaXZlbHkgaW4gTEVTUywgYnV0IFNhc3Mgc3VwcG9ydHMgcmVhbCBsb29wc1xuQG1peGluIGZsb2F0LWdyaWQtY29sdW1ucygkY2xhc3MsICRpOiAxLCAkbGlzdDogXCIuY29sLSN7JGNsYXNzfS0jeyRpfVwiKSB7XG4gIEBmb3IgJGkgZnJvbSAoMSArIDEpIHRocm91Z2ggJGdyaWQtY29sdW1ucyB7XG4gICAgJGxpc3Q6IFwiI3skbGlzdH0sIC5jb2wtI3skY2xhc3N9LSN7JGl9XCI7XG4gIH1cbiAgI3skbGlzdH0ge1xuICAgIGZsb2F0OiBsZWZ0O1xuICB9XG59XG5cblxuQG1peGluIGNhbGMtZ3JpZC1jb2x1bW4oJGluZGV4LCAkY2xhc3MsICR0eXBlKSB7XG4gIEBpZiAoJHR5cGUgPT0gd2lkdGgpIGFuZCAoJGluZGV4ID4gMCkge1xuICAgIC5jb2wtI3skY2xhc3N9LSN7JGluZGV4fSB7XG4gICAgICB3aWR0aDogcGVyY2VudGFnZSgoJGluZGV4IC8gJGdyaWQtY29sdW1ucykpO1xuICAgIH1cbiAgfVxuICBAaWYgKCR0eXBlID09IHB1c2gpIGFuZCAoJGluZGV4ID4gMCkge1xuICAgIC5jb2wtI3skY2xhc3N9LXB1c2gtI3skaW5kZXh9IHtcbiAgICAgIGxlZnQ6IHBlcmNlbnRhZ2UoKCRpbmRleCAvICRncmlkLWNvbHVtbnMpKTtcbiAgICB9XG4gIH1cbiAgQGlmICgkdHlwZSA9PSBwdXNoKSBhbmQgKCRpbmRleCA9PSAwKSB7XG4gICAgLmNvbC0jeyRjbGFzc30tcHVzaC0wIHtcbiAgICAgIGxlZnQ6IGF1dG87XG4gICAgfVxuICB9XG4gIEBpZiAoJHR5cGUgPT0gcHVsbCkgYW5kICgkaW5kZXggPiAwKSB7XG4gICAgLmNvbC0jeyRjbGFzc30tcHVsbC0jeyRpbmRleH0ge1xuICAgICAgcmlnaHQ6IHBlcmNlbnRhZ2UoKCRpbmRleCAvICRncmlkLWNvbHVtbnMpKTtcbiAgICB9XG4gIH1cbiAgQGlmICgkdHlwZSA9PSBwdWxsKSBhbmQgKCRpbmRleCA9PSAwKSB7XG4gICAgLmNvbC0jeyRjbGFzc30tcHVsbC0wIHtcbiAgICAgIHJpZ2h0OiBhdXRvO1xuICAgIH1cbiAgfVxuICBAaWYgKCR0eXBlID09IG9mZnNldCkge1xuICAgIC5jb2wtI3skY2xhc3N9LW9mZnNldC0jeyRpbmRleH0ge1xuICAgICAgbWFyZ2luLWxlZnQ6IHBlcmNlbnRhZ2UoKCRpbmRleCAvICRncmlkLWNvbHVtbnMpKTtcbiAgICB9XG4gIH1cbn1cblxuLy8gW2NvbnZlcnRlcl0gVGhpcyBpcyBkZWZpbmVkIHJlY3Vyc2l2ZWx5IGluIExFU1MsIGJ1dCBTYXNzIHN1cHBvcnRzIHJlYWwgbG9vcHNcbkBtaXhpbiBsb29wLWdyaWQtY29sdW1ucygkY29sdW1ucywgJGNsYXNzLCAkdHlwZSkge1xuICBAZm9yICRpIGZyb20gMCB0aHJvdWdoICRjb2x1bW5zIHtcbiAgICBAaW5jbHVkZSBjYWxjLWdyaWQtY29sdW1uKCRpLCAkY2xhc3MsICR0eXBlKTtcbiAgfVxufVxuXG5cbi8vIENyZWF0ZSBncmlkIGZvciBzcGVjaWZpYyBjbGFzc1xuQG1peGluIG1ha2UtZ3JpZCgkY2xhc3MpIHtcbiAgQGluY2x1ZGUgZmxvYXQtZ3JpZC1jb2x1bW5zKCRjbGFzcyk7XG4gIEBpbmNsdWRlIGxvb3AtZ3JpZC1jb2x1bW5zKCRncmlkLWNvbHVtbnMsICRjbGFzcywgd2lkdGgpO1xuICBAaW5jbHVkZSBsb29wLWdyaWQtY29sdW1ucygkZ3JpZC1jb2x1bW5zLCAkY2xhc3MsIHB1bGwpO1xuICBAaW5jbHVkZSBsb29wLWdyaWQtY29sdW1ucygkZ3JpZC1jb2x1bW5zLCAkY2xhc3MsIHB1c2gpO1xuICBAaW5jbHVkZSBsb29wLWdyaWQtY29sdW1ucygkZ3JpZC1jb2x1bW5zLCAkY2xhc3MsIG9mZnNldCk7XG59XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9ub2RlX21vZHVsZXMvYm9vdHN0cmFwLXNhc3MvYXNzZXRzL3N0eWxlc2hlZXRzL2Jvb3RzdHJhcC9taXhpbnMvX2dyaWQtZnJhbWV3b3JrLnNjc3MiLCIvL1xuLy8gVGFibGVzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5cbnRhYmxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHRhYmxlLWJnO1xufVxuY2FwdGlvbiB7XG4gIHBhZGRpbmctdG9wOiAkdGFibGUtY2VsbC1wYWRkaW5nO1xuICBwYWRkaW5nLWJvdHRvbTogJHRhYmxlLWNlbGwtcGFkZGluZztcbiAgY29sb3I6ICR0ZXh0LW11dGVkO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxudGgge1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuXG5cbi8vIEJhc2VsaW5lIHN0eWxlc1xuXG4udGFibGUge1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBtYXJnaW4tYm90dG9tOiAkbGluZS1oZWlnaHQtY29tcHV0ZWQ7XG4gIC8vIENlbGxzXG4gID4gdGhlYWQsXG4gID4gdGJvZHksXG4gID4gdGZvb3Qge1xuICAgID4gdHIge1xuICAgICAgPiB0aCxcbiAgICAgID4gdGQge1xuICAgICAgICBwYWRkaW5nOiAkdGFibGUtY2VsbC1wYWRkaW5nO1xuICAgICAgICBsaW5lLWhlaWdodDogJGxpbmUtaGVpZ2h0LWJhc2U7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkdGFibGUtYm9yZGVyLWNvbG9yO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICAvLyBCb3R0b20gYWxpZ24gZm9yIGNvbHVtbiBoZWFkaW5nc1xuICA+IHRoZWFkID4gdHIgPiB0aCB7XG4gICAgdmVydGljYWwtYWxpZ246IGJvdHRvbTtcbiAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgJHRhYmxlLWJvcmRlci1jb2xvcjtcbiAgfVxuICAvLyBSZW1vdmUgdG9wIGJvcmRlciBmcm9tIHRoZWFkIGJ5IGRlZmF1bHRcbiAgPiBjYXB0aW9uICsgdGhlYWQsXG4gID4gY29sZ3JvdXAgKyB0aGVhZCxcbiAgPiB0aGVhZDpmaXJzdC1jaGlsZCB7XG4gICAgPiB0cjpmaXJzdC1jaGlsZCB7XG4gICAgICA+IHRoLFxuICAgICAgPiB0ZCB7XG4gICAgICAgIGJvcmRlci10b3A6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIC8vIEFjY291bnQgZm9yIG11bHRpcGxlIHRib2R5IGluc3RhbmNlc1xuICA+IHRib2R5ICsgdGJvZHkge1xuICAgIGJvcmRlci10b3A6IDJweCBzb2xpZCAkdGFibGUtYm9yZGVyLWNvbG9yO1xuICB9XG5cbiAgLy8gTmVzdGluZ1xuICAudGFibGUge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRib2R5LWJnO1xuICB9XG59XG5cblxuLy8gQ29uZGVuc2VkIHRhYmxlIHcvIGhhbGYgcGFkZGluZ1xuXG4udGFibGUtY29uZGVuc2VkIHtcbiAgPiB0aGVhZCxcbiAgPiB0Ym9keSxcbiAgPiB0Zm9vdCB7XG4gICAgPiB0ciB7XG4gICAgICA+IHRoLFxuICAgICAgPiB0ZCB7XG4gICAgICAgIHBhZGRpbmc6ICR0YWJsZS1jb25kZW5zZWQtY2VsbC1wYWRkaW5nO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5cbi8vIEJvcmRlcmVkIHZlcnNpb25cbi8vXG4vLyBBZGQgYm9yZGVycyBhbGwgYXJvdW5kIHRoZSB0YWJsZSBhbmQgYmV0d2VlbiBhbGwgdGhlIGNvbHVtbnMuXG5cbi50YWJsZS1ib3JkZXJlZCB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICR0YWJsZS1ib3JkZXItY29sb3I7XG4gID4gdGhlYWQsXG4gID4gdGJvZHksXG4gID4gdGZvb3Qge1xuICAgID4gdHIge1xuICAgICAgPiB0aCxcbiAgICAgID4gdGQge1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkdGFibGUtYm9yZGVyLWNvbG9yO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICA+IHRoZWFkID4gdHIge1xuICAgID4gdGgsXG4gICAgPiB0ZCB7XG4gICAgICBib3JkZXItYm90dG9tLXdpZHRoOiAycHg7XG4gICAgfVxuICB9XG59XG5cblxuLy8gWmVicmEtc3RyaXBpbmdcbi8vXG4vLyBEZWZhdWx0IHplYnJhLXN0cmlwZSBzdHlsZXMgKGFsdGVybmF0aW5nIGdyYXkgYW5kIHRyYW5zcGFyZW50IGJhY2tncm91bmRzKVxuXG4udGFibGUtc3RyaXBlZCB7XG4gID4gdGJvZHkgPiB0cjpudGgtb2YtdHlwZShvZGQpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFibGUtYmctYWNjZW50O1xuICB9XG59XG5cblxuLy8gSG92ZXIgZWZmZWN0XG4vL1xuLy8gUGxhY2VkIGhlcmUgc2luY2UgaXQgaGFzIHRvIGNvbWUgYWZ0ZXIgdGhlIHBvdGVudGlhbCB6ZWJyYSBzdHJpcGluZ1xuXG4udGFibGUtaG92ZXIge1xuICA+IHRib2R5ID4gdHI6aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR0YWJsZS1iZy1ob3ZlcjtcbiAgfVxufVxuXG5cbi8vIFRhYmxlIGNlbGwgc2l6aW5nXG4vL1xuLy8gUmVzZXQgZGVmYXVsdCB0YWJsZSBiZWhhdmlvclxuXG50YWJsZSBjb2xbY2xhc3MqPVwiY29sLVwiXSB7XG4gIHBvc2l0aW9uOiBzdGF0aWM7IC8vIFByZXZlbnQgYm9yZGVyIGhpZGluZyBpbiBGaXJlZm94IGFuZCBJRTktMTEgKHNlZSBodHRwczovL2dpdGh1Yi5jb20vdHdicy9ib290c3RyYXAvaXNzdWVzLzExNjIzKVxuICBmbG9hdDogbm9uZTtcbiAgZGlzcGxheTogdGFibGUtY29sdW1uO1xufVxudGFibGUge1xuICB0ZCxcbiAgdGgge1xuICAgICZbY2xhc3MqPVwiY29sLVwiXSB7XG4gICAgICBwb3NpdGlvbjogc3RhdGljOyAvLyBQcmV2ZW50IGJvcmRlciBoaWRpbmcgaW4gRmlyZWZveCBhbmQgSUU5LTExIChzZWUgaHR0cHM6Ly9naXRodWIuY29tL3R3YnMvYm9vdHN0cmFwL2lzc3Vlcy8xMTYyMylcbiAgICAgIGZsb2F0OiBub25lO1xuICAgICAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgICB9XG4gIH1cbn1cblxuXG4vLyBUYWJsZSBiYWNrZ3JvdW5kc1xuLy9cbi8vIEV4YWN0IHNlbGVjdG9ycyBiZWxvdyByZXF1aXJlZCB0byBvdmVycmlkZSBgLnRhYmxlLXN0cmlwZWRgIGFuZCBwcmV2ZW50XG4vLyBpbmhlcml0YW5jZSB0byBuZXN0ZWQgdGFibGVzLlxuXG4vLyBHZW5lcmF0ZSB0aGUgY29udGV4dHVhbCB2YXJpYW50c1xuQGluY2x1ZGUgdGFibGUtcm93LXZhcmlhbnQoJ2FjdGl2ZScsICR0YWJsZS1iZy1hY3RpdmUpO1xuQGluY2x1ZGUgdGFibGUtcm93LXZhcmlhbnQoJ3N1Y2Nlc3MnLCAkc3RhdGUtc3VjY2Vzcy1iZyk7XG5AaW5jbHVkZSB0YWJsZS1yb3ctdmFyaWFudCgnaW5mbycsICRzdGF0ZS1pbmZvLWJnKTtcbkBpbmNsdWRlIHRhYmxlLXJvdy12YXJpYW50KCd3YXJuaW5nJywgJHN0YXRlLXdhcm5pbmctYmcpO1xuQGluY2x1ZGUgdGFibGUtcm93LXZhcmlhbnQoJ2RhbmdlcicsICRzdGF0ZS1kYW5nZXItYmcpO1xuXG5cbi8vIFJlc3BvbnNpdmUgdGFibGVzXG4vL1xuLy8gV3JhcCB5b3VyIHRhYmxlcyBpbiBgLnRhYmxlLXJlc3BvbnNpdmVgIGFuZCB3ZSdsbCBtYWtlIHRoZW0gbW9iaWxlIGZyaWVuZGx5XG4vLyBieSBlbmFibGluZyBob3Jpem9udGFsIHNjcm9sbGluZy4gT25seSBhcHBsaWVzIDw3NjhweC4gRXZlcnl0aGluZyBhYm92ZSB0aGF0XG4vLyB3aWxsIGRpc3BsYXkgbm9ybWFsbHkuXG5cbi50YWJsZS1yZXNwb25zaXZlIHtcbiAgb3ZlcmZsb3cteDogYXV0bztcbiAgbWluLWhlaWdodDogMC4wMSU7IC8vIFdvcmthcm91bmQgZm9yIElFOSBidWcgKHNlZSBodHRwczovL2dpdGh1Yi5jb20vdHdicy9ib290c3RyYXAvaXNzdWVzLzE0ODM3KVxuXG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRzY3JlZW4teHMtbWF4KSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luLWJvdHRvbTogKCRsaW5lLWhlaWdodC1jb21wdXRlZCAqIDAuNzUpO1xuICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcbiAgICAtbXMtb3ZlcmZsb3ctc3R5bGU6IC1tcy1hdXRvaGlkaW5nLXNjcm9sbGJhcjtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkdGFibGUtYm9yZGVyLWNvbG9yO1xuXG4gICAgLy8gVGlnaHRlbiB1cCBzcGFjaW5nXG4gICAgPiAudGFibGUge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcblxuICAgICAgLy8gRW5zdXJlIHRoZSBjb250ZW50IGRvZXNuJ3Qgd3JhcFxuICAgICAgPiB0aGVhZCxcbiAgICAgID4gdGJvZHksXG4gICAgICA+IHRmb290IHtcbiAgICAgICAgPiB0ciB7XG4gICAgICAgICAgPiB0aCxcbiAgICAgICAgICA+IHRkIHtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gU3BlY2lhbCBvdmVycmlkZXMgZm9yIHRoZSBib3JkZXJlZCB0YWJsZXNcbiAgICA+IC50YWJsZS1ib3JkZXJlZCB7XG4gICAgICBib3JkZXI6IDA7XG5cbiAgICAgIC8vIE51a2UgdGhlIGFwcHJvcHJpYXRlIGJvcmRlcnMgc28gdGhhdCB0aGUgcGFyZW50IGNhbiBoYW5kbGUgdGhlbVxuICAgICAgPiB0aGVhZCxcbiAgICAgID4gdGJvZHksXG4gICAgICA+IHRmb290IHtcbiAgICAgICAgPiB0ciB7XG4gICAgICAgICAgPiB0aDpmaXJzdC1jaGlsZCxcbiAgICAgICAgICA+IHRkOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0OiAwO1xuICAgICAgICAgIH1cbiAgICAgICAgICA+IHRoOmxhc3QtY2hpbGQsXG4gICAgICAgICAgPiB0ZDpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogMDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLy8gT25seSBudWtlIHRoZSBsYXN0IHJvdydzIGJvdHRvbS1ib3JkZXIgaW4gYHRib2R5YCBhbmQgYHRmb290YCBzaW5jZVxuICAgICAgLy8gY2hhbmNlcyBhcmUgdGhlcmUgd2lsbCBiZSBvbmx5IG9uZSBgdHJgIGluIGEgYHRoZWFkYCBhbmQgdGhhdCB3b3VsZFxuICAgICAgLy8gcmVtb3ZlIHRoZSBib3JkZXIgYWx0b2dldGhlci5cbiAgICAgID4gdGJvZHksXG4gICAgICA+IHRmb290IHtcbiAgICAgICAgPiB0cjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICA+IHRoLFxuICAgICAgICAgID4gdGQge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgIH1cbiAgfVxufVxuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vbm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC1zYXNzL2Fzc2V0cy9zdHlsZXNoZWV0cy9ib290c3RyYXAvX3RhYmxlcy5zY3NzIiwiLy8gVGFibGVzXG5cbkBtaXhpbiB0YWJsZS1yb3ctdmFyaWFudCgkc3RhdGUsICRiYWNrZ3JvdW5kKSB7XG4gIC8vIEV4YWN0IHNlbGVjdG9ycyBiZWxvdyByZXF1aXJlZCB0byBvdmVycmlkZSBgLnRhYmxlLXN0cmlwZWRgIGFuZCBwcmV2ZW50XG4gIC8vIGluaGVyaXRhbmNlIHRvIG5lc3RlZCB0YWJsZXMuXG4gIC50YWJsZSA+IHRoZWFkID4gdHIsXG4gIC50YWJsZSA+IHRib2R5ID4gdHIsXG4gIC50YWJsZSA+IHRmb290ID4gdHIge1xuICAgID4gdGQuI3skc3RhdGV9LFxuICAgID4gdGguI3skc3RhdGV9LFxuICAgICYuI3skc3RhdGV9ID4gdGQsXG4gICAgJi4jeyRzdGF0ZX0gPiB0aCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcbiAgICB9XG4gIH1cblxuICAvLyBIb3ZlciBzdGF0ZXMgZm9yIGAudGFibGUtaG92ZXJgXG4gIC8vIE5vdGU6IHRoaXMgaXMgbm90IGF2YWlsYWJsZSBmb3IgY2VsbHMgb3Igcm93cyB3aXRoaW4gYHRoZWFkYCBvciBgdGZvb3RgLlxuICAudGFibGUtaG92ZXIgPiB0Ym9keSA+IHRyIHtcbiAgICA+IHRkLiN7JHN0YXRlfTpob3ZlcixcbiAgICA+IHRoLiN7JHN0YXRlfTpob3ZlcixcbiAgICAmLiN7JHN0YXRlfTpob3ZlciA+IHRkLFxuICAgICY6aG92ZXIgPiAuI3skc3RhdGV9LFxuICAgICYuI3skc3RhdGV9OmhvdmVyID4gdGgge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogZGFya2VuKCRiYWNrZ3JvdW5kLCA1JSk7XG4gICAgfVxuICB9XG59XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9ub2RlX21vZHVsZXMvYm9vdHN0cmFwLXNhc3MvYXNzZXRzL3N0eWxlc2hlZXRzL2Jvb3RzdHJhcC9taXhpbnMvX3RhYmxlLXJvdy5zY3NzIiwiLy9cbi8vIEZvcm1zXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5cbi8vIE5vcm1hbGl6ZSBub24tY29udHJvbHNcbi8vXG4vLyBSZXN0eWxlIGFuZCBiYXNlbGluZSBub24tY29udHJvbCBmb3JtIGVsZW1lbnRzLlxuXG5maWVsZHNldCB7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogMDtcbiAgYm9yZGVyOiAwO1xuICAvLyBDaHJvbWUgYW5kIEZpcmVmb3ggc2V0IGEgYG1pbi13aWR0aDogbWluLWNvbnRlbnQ7YCBvbiBmaWVsZHNldHMsXG4gIC8vIHNvIHdlIHJlc2V0IHRoYXQgdG8gZW5zdXJlIGl0IGJlaGF2ZXMgbW9yZSBsaWtlIGEgc3RhbmRhcmQgYmxvY2sgZWxlbWVudC5cbiAgLy8gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS90d2JzL2Jvb3RzdHJhcC9pc3N1ZXMvMTIzNTkuXG4gIG1pbi13aWR0aDogMDtcbn1cblxubGVnZW5kIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW4tYm90dG9tOiAkbGluZS1oZWlnaHQtY29tcHV0ZWQ7XG4gIGZvbnQtc2l6ZTogKCRmb250LXNpemUtYmFzZSAqIDEuNSk7XG4gIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICBjb2xvcjogJGxlZ2VuZC1jb2xvcjtcbiAgYm9yZGVyOiAwO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGxlZ2VuZC1ib3JkZXItY29sb3I7XG59XG5cbmxhYmVsIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXgtd2lkdGg6IDEwMCU7IC8vIEZvcmNlIElFOCB0byB3cmFwIGxvbmcgY29udGVudCAoc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS90d2JzL2Jvb3RzdHJhcC9pc3N1ZXMvMTMxNDEpXG4gIG1hcmdpbi1ib3R0b206IDVweDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cblxuLy8gTm9ybWFsaXplIGZvcm0gY29udHJvbHNcbi8vXG4vLyBXaGlsZSBtb3N0IG9mIG91ciBmb3JtIHN0eWxlcyByZXF1aXJlIGV4dHJhIGNsYXNzZXMsIHNvbWUgYmFzaWMgbm9ybWFsaXphdGlvblxuLy8gaXMgcmVxdWlyZWQgdG8gZW5zdXJlIG9wdGltdW0gZGlzcGxheSB3aXRoIG9yIHdpdGhvdXQgdGhvc2UgY2xhc3NlcyB0byBiZXR0ZXJcbi8vIGFkZHJlc3MgYnJvd3NlciBpbmNvbnNpc3RlbmNpZXMuXG5cbi8vIE92ZXJyaWRlIGNvbnRlbnQtYm94IGluIE5vcm1hbGl6ZSAoKiBpc24ndCBzcGVjaWZpYyBlbm91Z2gpXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdIHtcbiAgQGluY2x1ZGUgYm94LXNpemluZyhib3JkZXItYm94KTtcbn1cblxuLy8gUG9zaXRpb24gcmFkaW9zIGFuZCBjaGVja2JveGVzIGJldHRlclxuaW5wdXRbdHlwZT1cInJhZGlvXCJdLFxuaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdIHtcbiAgbWFyZ2luOiA0cHggMCAwO1xuICBtYXJnaW4tdG9wOiAxcHggXFw5OyAvLyBJRTgtOVxuICBsaW5lLWhlaWdodDogbm9ybWFsO1xufVxuXG5pbnB1dFt0eXBlPVwiZmlsZVwiXSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4vLyBNYWtlIHJhbmdlIGlucHV0cyBiZWhhdmUgbGlrZSB0ZXh0dWFsIGZvcm0gY29udHJvbHNcbmlucHV0W3R5cGU9XCJyYW5nZVwiXSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTAwJTtcbn1cblxuLy8gTWFrZSBtdWx0aXBsZSBzZWxlY3QgZWxlbWVudHMgaGVpZ2h0IG5vdCBmaXhlZFxuc2VsZWN0W211bHRpcGxlXSxcbnNlbGVjdFtzaXplXSB7XG4gIGhlaWdodDogYXV0bztcbn1cblxuLy8gRm9jdXMgZm9yIGZpbGUsIHJhZGlvLCBhbmQgY2hlY2tib3hcbmlucHV0W3R5cGU9XCJmaWxlXCJdOmZvY3VzLFxuaW5wdXRbdHlwZT1cInJhZGlvXCJdOmZvY3VzLFxuaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdOmZvY3VzIHtcbiAgQGluY2x1ZGUgdGFiLWZvY3VzO1xufVxuXG4vLyBBZGp1c3Qgb3V0cHV0IGVsZW1lbnRcbm91dHB1dCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwYWRkaW5nLXRvcDogKCRwYWRkaW5nLWJhc2UtdmVydGljYWwgKyAxKTtcbiAgZm9udC1zaXplOiAkZm9udC1zaXplLWJhc2U7XG4gIGxpbmUtaGVpZ2h0OiAkbGluZS1oZWlnaHQtYmFzZTtcbiAgY29sb3I6ICRpbnB1dC1jb2xvcjtcbn1cblxuXG4vLyBDb21tb24gZm9ybSBjb250cm9sc1xuLy9cbi8vIFNoYXJlZCBzaXplIGFuZCB0eXBlIHJlc2V0cyBmb3IgZm9ybSBjb250cm9scy4gQXBwbHkgYC5mb3JtLWNvbnRyb2xgIHRvIGFueVxuLy8gb2YgdGhlIGZvbGxvd2luZyBmb3JtIGNvbnRyb2xzOlxuLy9cbi8vIHNlbGVjdFxuLy8gdGV4dGFyZWFcbi8vIGlucHV0W3R5cGU9XCJ0ZXh0XCJdXG4vLyBpbnB1dFt0eXBlPVwicGFzc3dvcmRcIl1cbi8vIGlucHV0W3R5cGU9XCJkYXRldGltZVwiXVxuLy8gaW5wdXRbdHlwZT1cImRhdGV0aW1lLWxvY2FsXCJdXG4vLyBpbnB1dFt0eXBlPVwiZGF0ZVwiXVxuLy8gaW5wdXRbdHlwZT1cIm1vbnRoXCJdXG4vLyBpbnB1dFt0eXBlPVwidGltZVwiXVxuLy8gaW5wdXRbdHlwZT1cIndlZWtcIl1cbi8vIGlucHV0W3R5cGU9XCJudW1iZXJcIl1cbi8vIGlucHV0W3R5cGU9XCJlbWFpbFwiXVxuLy8gaW5wdXRbdHlwZT1cInVybFwiXVxuLy8gaW5wdXRbdHlwZT1cInNlYXJjaFwiXVxuLy8gaW5wdXRbdHlwZT1cInRlbFwiXVxuLy8gaW5wdXRbdHlwZT1cImNvbG9yXCJdXG5cbi5mb3JtLWNvbnRyb2wge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogJGlucHV0LWhlaWdodC1iYXNlOyAvLyBNYWtlIGlucHV0cyBhdCBsZWFzdCB0aGUgaGVpZ2h0IG9mIHRoZWlyIGJ1dHRvbiBjb3VudGVycGFydCAoYmFzZSBsaW5lLWhlaWdodCArIHBhZGRpbmcgKyBib3JkZXIpXG4gIHBhZGRpbmc6ICRwYWRkaW5nLWJhc2UtdmVydGljYWwgJHBhZGRpbmctYmFzZS1ob3Jpem9udGFsO1xuICBmb250LXNpemU6ICRmb250LXNpemUtYmFzZTtcbiAgbGluZS1oZWlnaHQ6ICRsaW5lLWhlaWdodC1iYXNlO1xuICBjb2xvcjogJGlucHV0LWNvbG9yO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkaW5wdXQtYmc7XG4gIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7IC8vIFJlc2V0IHVudXN1YWwgRmlyZWZveC1vbi1BbmRyb2lkIGRlZmF1bHQgc3R5bGU7IHNlZSBodHRwczovL2dpdGh1Yi5jb20vbmVjb2xhcy9ub3JtYWxpemUuY3NzL2lzc3Vlcy8yMTRcbiAgYm9yZGVyOiAxcHggc29saWQgJGlucHV0LWJvcmRlcjtcbiAgYm9yZGVyLXJhZGl1czogJGlucHV0LWJvcmRlci1yYWRpdXM7IC8vIE5vdGU6IFRoaXMgaGFzIG5vIGVmZmVjdCBvbiA8c2VsZWN0PnMgaW4gc29tZSBicm93c2VycywgZHVlIHRvIHRoZSBsaW1pdGVkIHN0eWxhYmlsaXR5IG9mIDxzZWxlY3Q+cyBpbiBDU1MuXG4gIEBpbmNsdWRlIGJveC1zaGFkb3coaW5zZXQgMCAxcHggMXB4IHJnYmEoMCwwLDAsLjA3NSkpO1xuICBAaW5jbHVkZSB0cmFuc2l0aW9uKGJvcmRlci1jb2xvciBlYXNlLWluLW91dCAuMTVzLCBib3gtc2hhZG93IGVhc2UtaW4tb3V0IC4xNXMpO1xuXG4gIC8vIEN1c3RvbWl6ZSB0aGUgYDpmb2N1c2Agc3RhdGUgdG8gaW1pdGF0ZSBuYXRpdmUgV2ViS2l0IHN0eWxlcy5cbiAgQGluY2x1ZGUgZm9ybS1jb250cm9sLWZvY3VzO1xuXG4gIC8vIFBsYWNlaG9sZGVyXG4gIEBpbmNsdWRlIHBsYWNlaG9sZGVyO1xuXG4gIC8vIFVuc3R5bGUgdGhlIGNhcmV0IG9uIGA8c2VsZWN0PmBzIGluIElFMTArLlxuICAmOjotbXMtZXhwYW5kIHtcbiAgICBib3JkZXI6IDA7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIH1cblxuICAvLyBEaXNhYmxlZCBhbmQgcmVhZC1vbmx5IGlucHV0c1xuICAvL1xuICAvLyBIVE1MNSBzYXlzIHRoYXQgY29udHJvbHMgdW5kZXIgYSBmaWVsZHNldCA+IGxlZ2VuZDpmaXJzdC1jaGlsZCB3b24ndCBiZVxuICAvLyBkaXNhYmxlZCBpZiB0aGUgZmllbGRzZXQgaXMgZGlzYWJsZWQuIER1ZSB0byBpbXBsZW1lbnRhdGlvbiBkaWZmaWN1bHR5LCB3ZVxuICAvLyBkb24ndCBob25vciB0aGF0IGVkZ2UgY2FzZTsgd2Ugc3R5bGUgdGhlbSBhcyBkaXNhYmxlZCBhbnl3YXkuXG4gICZbZGlzYWJsZWRdLFxuICAmW3JlYWRvbmx5XSxcbiAgZmllbGRzZXRbZGlzYWJsZWRdICYge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRpbnB1dC1iZy1kaXNhYmxlZDtcbiAgICBvcGFjaXR5OiAxOyAvLyBpT1MgZml4IGZvciB1bnJlYWRhYmxlIGRpc2FibGVkIGNvbnRlbnQ7IHNlZSBodHRwczovL2dpdGh1Yi5jb20vdHdicy9ib290c3RyYXAvaXNzdWVzLzExNjU1XG4gIH1cblxuICAmW2Rpc2FibGVkXSxcbiAgZmllbGRzZXRbZGlzYWJsZWRdICYge1xuICAgIGN1cnNvcjogJGN1cnNvci1kaXNhYmxlZDtcbiAgfVxuXG4gIC8vIFtjb252ZXJ0ZXJdIGV4dHJhY3RlZCB0ZXh0YXJlYSYgdG8gdGV4dGFyZWEuZm9ybS1jb250cm9sXG59XG5cbi8vIFJlc2V0IGhlaWdodCBmb3IgYHRleHRhcmVhYHNcbnRleHRhcmVhLmZvcm0tY29udHJvbCB7XG4gIGhlaWdodDogYXV0bztcbn1cblxuXG4vLyBTZWFyY2ggaW5wdXRzIGluIGlPU1xuLy9cbi8vIFRoaXMgb3ZlcnJpZGVzIHRoZSBleHRyYSByb3VuZGVkIGNvcm5lcnMgb24gc2VhcmNoIGlucHV0cyBpbiBpT1Mgc28gdGhhdCBvdXJcbi8vIGAuZm9ybS1jb250cm9sYCBjbGFzcyBjYW4gcHJvcGVybHkgc3R5bGUgdGhlbS4gTm90ZSB0aGF0IHRoaXMgY2Fubm90IHNpbXBseVxuLy8gYmUgYWRkZWQgdG8gYC5mb3JtLWNvbnRyb2xgIGFzIGl0J3Mgbm90IHNwZWNpZmljIGVub3VnaC4gRm9yIGRldGFpbHMsIHNlZVxuLy8gaHR0cHM6Ly9naXRodWIuY29tL3R3YnMvYm9vdHN0cmFwL2lzc3Vlcy8xMTU4Ni5cblxuaW5wdXRbdHlwZT1cInNlYXJjaFwiXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbn1cblxuXG4vLyBTcGVjaWFsIHN0eWxlcyBmb3IgaU9TIHRlbXBvcmFsIGlucHV0c1xuLy9cbi8vIEluIE1vYmlsZSBTYWZhcmksIHNldHRpbmcgYGRpc3BsYXk6IGJsb2NrYCBvbiB0ZW1wb3JhbCBpbnB1dHMgY2F1c2VzIHRoZVxuLy8gdGV4dCB3aXRoaW4gdGhlIGlucHV0IHRvIGJlY29tZSB2ZXJ0aWNhbGx5IG1pc2FsaWduZWQuIEFzIGEgd29ya2Fyb3VuZCwgd2Vcbi8vIHNldCBhIHBpeGVsIGxpbmUtaGVpZ2h0IHRoYXQgbWF0Y2hlcyB0aGUgZ2l2ZW4gaGVpZ2h0IG9mIHRoZSBpbnB1dCwgYnV0IG9ubHlcbi8vIGZvciBTYWZhcmkuIFNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM5ODQ4XG4vL1xuLy8gTm90ZSB0aGF0IGFzIG9mIDkuMywgaU9TIGRvZXNuJ3Qgc3VwcG9ydCBgd2Vla2AuXG5cbkBtZWRpYSBzY3JlZW4gYW5kICgtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDApIHtcbiAgaW5wdXRbdHlwZT1cImRhdGVcIl0sXG4gIGlucHV0W3R5cGU9XCJ0aW1lXCJdLFxuICBpbnB1dFt0eXBlPVwiZGF0ZXRpbWUtbG9jYWxcIl0sXG4gIGlucHV0W3R5cGU9XCJtb250aFwiXSB7XG4gICAgJi5mb3JtLWNvbnRyb2wge1xuICAgICAgbGluZS1oZWlnaHQ6ICRpbnB1dC1oZWlnaHQtYmFzZTtcbiAgICB9XG5cbiAgICAmLmlucHV0LXNtLFxuICAgIC5pbnB1dC1ncm91cC1zbSAmIHtcbiAgICAgIGxpbmUtaGVpZ2h0OiAkaW5wdXQtaGVpZ2h0LXNtYWxsO1xuICAgIH1cblxuICAgICYuaW5wdXQtbGcsXG4gICAgLmlucHV0LWdyb3VwLWxnICYge1xuICAgICAgbGluZS1oZWlnaHQ6ICRpbnB1dC1oZWlnaHQtbGFyZ2U7XG4gICAgfVxuICB9XG59XG5cblxuLy8gRm9ybSBncm91cHNcbi8vXG4vLyBEZXNpZ25lZCB0byBoZWxwIHdpdGggdGhlIG9yZ2FuaXphdGlvbiBhbmQgc3BhY2luZyBvZiB2ZXJ0aWNhbCBmb3Jtcy4gRm9yXG4vLyBob3Jpem9udGFsIGZvcm1zLCB1c2UgdGhlIHByZWRlZmluZWQgZ3JpZCBjbGFzc2VzLlxuXG4uZm9ybS1ncm91cCB7XG4gIG1hcmdpbi1ib3R0b206ICRmb3JtLWdyb3VwLW1hcmdpbi1ib3R0b207XG59XG5cblxuLy8gQ2hlY2tib3hlcyBhbmQgcmFkaW9zXG4vL1xuLy8gSW5kZW50IHRoZSBsYWJlbHMgdG8gcG9zaXRpb24gcmFkaW9zL2NoZWNrYm94ZXMgYXMgaGFuZ2luZyBjb250cm9scy5cblxuLnJhZGlvLFxuLmNoZWNrYm94IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luLXRvcDogMTBweDtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcblxuICBsYWJlbCB7XG4gICAgbWluLWhlaWdodDogJGxpbmUtaGVpZ2h0LWNvbXB1dGVkOyAvLyBFbnN1cmUgdGhlIGlucHV0IGRvZXNuJ3QganVtcCB3aGVuIHRoZXJlIGlzIG5vIHRleHRcbiAgICBwYWRkaW5nLWxlZnQ6IDIwcHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxufVxuLnJhZGlvIGlucHV0W3R5cGU9XCJyYWRpb1wiXSxcbi5yYWRpby1pbmxpbmUgaW5wdXRbdHlwZT1cInJhZGlvXCJdLFxuLmNoZWNrYm94IGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSxcbi5jaGVja2JveC1pbmxpbmUgaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBtYXJnaW4tbGVmdDogLTIwcHg7XG4gIG1hcmdpbi10b3A6IDRweCBcXDk7XG59XG5cbi5yYWRpbyArIC5yYWRpbyxcbi5jaGVja2JveCArIC5jaGVja2JveCB7XG4gIG1hcmdpbi10b3A6IC01cHg7IC8vIE1vdmUgdXAgc2libGluZyByYWRpb3Mgb3IgY2hlY2tib3hlcyBmb3IgdGlnaHRlciBzcGFjaW5nXG59XG5cbi8vIFJhZGlvcyBhbmQgY2hlY2tib3hlcyBvbiBzYW1lIGxpbmVcbi5yYWRpby1pbmxpbmUsXG4uY2hlY2tib3gtaW5saW5lIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmctbGVmdDogMjBweDtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLnJhZGlvLWlubGluZSArIC5yYWRpby1pbmxpbmUsXG4uY2hlY2tib3gtaW5saW5lICsgLmNoZWNrYm94LWlubGluZSB7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1sZWZ0OiAxMHB4OyAvLyBzcGFjZSBvdXQgY29uc2VjdXRpdmUgaW5saW5lIGNvbnRyb2xzXG59XG5cbi8vIEFwcGx5IHNhbWUgZGlzYWJsZWQgY3Vyc29yIHR3ZWFrIGFzIGZvciBpbnB1dHNcbi8vIFNvbWUgc3BlY2lhbCBjYXJlIGlzIG5lZWRlZCBiZWNhdXNlIDxsYWJlbD5zIGRvbid0IGluaGVyaXQgdGhlaXIgcGFyZW50J3MgYGN1cnNvcmAuXG4vL1xuLy8gTm90ZTogTmVpdGhlciByYWRpb3Mgbm9yIGNoZWNrYm94ZXMgY2FuIGJlIHJlYWRvbmx5LlxuaW5wdXRbdHlwZT1cInJhZGlvXCJdLFxuaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdIHtcbiAgJltkaXNhYmxlZF0sXG4gICYuZGlzYWJsZWQsXG4gIGZpZWxkc2V0W2Rpc2FibGVkXSAmIHtcbiAgICBjdXJzb3I6ICRjdXJzb3ItZGlzYWJsZWQ7XG4gIH1cbn1cbi8vIFRoZXNlIGNsYXNzZXMgYXJlIHVzZWQgZGlyZWN0bHkgb24gPGxhYmVsPnNcbi5yYWRpby1pbmxpbmUsXG4uY2hlY2tib3gtaW5saW5lIHtcbiAgJi5kaXNhYmxlZCxcbiAgZmllbGRzZXRbZGlzYWJsZWRdICYge1xuICAgIGN1cnNvcjogJGN1cnNvci1kaXNhYmxlZDtcbiAgfVxufVxuLy8gVGhlc2UgY2xhc3NlcyBhcmUgdXNlZCBvbiBlbGVtZW50cyB3aXRoIDxsYWJlbD4gZGVzY2VuZGFudHNcbi5yYWRpbyxcbi5jaGVja2JveCB7XG4gICYuZGlzYWJsZWQsXG4gIGZpZWxkc2V0W2Rpc2FibGVkXSAmIHtcbiAgICBsYWJlbCB7XG4gICAgICBjdXJzb3I6ICRjdXJzb3ItZGlzYWJsZWQ7XG4gICAgfVxuICB9XG59XG5cblxuLy8gU3RhdGljIGZvcm0gY29udHJvbCB0ZXh0XG4vL1xuLy8gQXBwbHkgY2xhc3MgdG8gYSBgcGAgZWxlbWVudCB0byBtYWtlIGFueSBzdHJpbmcgb2YgdGV4dCBhbGlnbiB3aXRoIGxhYmVscyBpblxuLy8gYSBob3Jpem9udGFsIGZvcm0gbGF5b3V0LlxuXG4uZm9ybS1jb250cm9sLXN0YXRpYyB7XG4gIC8vIFNpemUgaXQgYXBwcm9wcmlhdGVseSBuZXh0IHRvIHJlYWwgZm9ybSBjb250cm9sc1xuICBwYWRkaW5nLXRvcDogKCRwYWRkaW5nLWJhc2UtdmVydGljYWwgKyAxKTtcbiAgcGFkZGluZy1ib3R0b206ICgkcGFkZGluZy1iYXNlLXZlcnRpY2FsICsgMSk7XG4gIC8vIFJlbW92ZSBkZWZhdWx0IG1hcmdpbiBmcm9tIGBwYFxuICBtYXJnaW4tYm90dG9tOiAwO1xuICBtaW4taGVpZ2h0OiAoJGxpbmUtaGVpZ2h0LWNvbXB1dGVkICsgJGZvbnQtc2l6ZS1iYXNlKTtcblxuICAmLmlucHV0LWxnLFxuICAmLmlucHV0LXNtIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgcGFkZGluZy1yaWdodDogMDtcbiAgfVxufVxuXG5cbi8vIEZvcm0gY29udHJvbCBzaXppbmdcbi8vXG4vLyBCdWlsZCBvbiBgLmZvcm0tY29udHJvbGAgd2l0aCBtb2RpZmllciBjbGFzc2VzIHRvIGRlY3JlYXNlIG9yIGluY3JlYXNlIHRoZVxuLy8gaGVpZ2h0IGFuZCBmb250LXNpemUgb2YgZm9ybSBjb250cm9scy5cbi8vXG4vLyBUaGUgYC5mb3JtLWdyb3VwLSogZm9ybS1jb250cm9sYCB2YXJpYXRpb25zIGFyZSBzYWRseSBkdXBsaWNhdGVkIHRvIGF2b2lkIHRoZVxuLy8gaXNzdWUgZG9jdW1lbnRlZCBpbiBodHRwczovL2dpdGh1Yi5jb20vdHdicy9ib290c3RyYXAvaXNzdWVzLzE1MDc0LlxuXG5AaW5jbHVkZSBpbnB1dC1zaXplKCcuaW5wdXQtc20nLCAkaW5wdXQtaGVpZ2h0LXNtYWxsLCAkcGFkZGluZy1zbWFsbC12ZXJ0aWNhbCwgJHBhZGRpbmctc21hbGwtaG9yaXpvbnRhbCwgJGZvbnQtc2l6ZS1zbWFsbCwgJGxpbmUtaGVpZ2h0LXNtYWxsLCAkaW5wdXQtYm9yZGVyLXJhZGl1cy1zbWFsbCk7XG4uZm9ybS1ncm91cC1zbSB7XG4gIC5mb3JtLWNvbnRyb2wge1xuICAgIGhlaWdodDogJGlucHV0LWhlaWdodC1zbWFsbDtcbiAgICBwYWRkaW5nOiAkcGFkZGluZy1zbWFsbC12ZXJ0aWNhbCAkcGFkZGluZy1zbWFsbC1ob3Jpem9udGFsO1xuICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1zbWFsbDtcbiAgICBsaW5lLWhlaWdodDogJGxpbmUtaGVpZ2h0LXNtYWxsO1xuICAgIGJvcmRlci1yYWRpdXM6ICRpbnB1dC1ib3JkZXItcmFkaXVzLXNtYWxsO1xuICB9XG4gIHNlbGVjdC5mb3JtLWNvbnRyb2wge1xuICAgIGhlaWdodDogJGlucHV0LWhlaWdodC1zbWFsbDtcbiAgICBsaW5lLWhlaWdodDogJGlucHV0LWhlaWdodC1zbWFsbDtcbiAgfVxuICB0ZXh0YXJlYS5mb3JtLWNvbnRyb2wsXG4gIHNlbGVjdFttdWx0aXBsZV0uZm9ybS1jb250cm9sIHtcbiAgICBoZWlnaHQ6IGF1dG87XG4gIH1cbiAgLmZvcm0tY29udHJvbC1zdGF0aWMge1xuICAgIGhlaWdodDogJGlucHV0LWhlaWdodC1zbWFsbDtcbiAgICBtaW4taGVpZ2h0OiAoJGxpbmUtaGVpZ2h0LWNvbXB1dGVkICsgJGZvbnQtc2l6ZS1zbWFsbCk7XG4gICAgcGFkZGluZzogKCRwYWRkaW5nLXNtYWxsLXZlcnRpY2FsICsgMSkgJHBhZGRpbmctc21hbGwtaG9yaXpvbnRhbDtcbiAgICBmb250LXNpemU6ICRmb250LXNpemUtc21hbGw7XG4gICAgbGluZS1oZWlnaHQ6ICRsaW5lLWhlaWdodC1zbWFsbDtcbiAgfVxufVxuXG5AaW5jbHVkZSBpbnB1dC1zaXplKCcuaW5wdXQtbGcnLCAkaW5wdXQtaGVpZ2h0LWxhcmdlLCAkcGFkZGluZy1sYXJnZS12ZXJ0aWNhbCwgJHBhZGRpbmctbGFyZ2UtaG9yaXpvbnRhbCwgJGZvbnQtc2l6ZS1sYXJnZSwgJGxpbmUtaGVpZ2h0LWxhcmdlLCAkaW5wdXQtYm9yZGVyLXJhZGl1cy1sYXJnZSk7XG4uZm9ybS1ncm91cC1sZyB7XG4gIC5mb3JtLWNvbnRyb2wge1xuICAgIGhlaWdodDogJGlucHV0LWhlaWdodC1sYXJnZTtcbiAgICBwYWRkaW5nOiAkcGFkZGluZy1sYXJnZS12ZXJ0aWNhbCAkcGFkZGluZy1sYXJnZS1ob3Jpem9udGFsO1xuICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1sYXJnZTtcbiAgICBsaW5lLWhlaWdodDogJGxpbmUtaGVpZ2h0LWxhcmdlO1xuICAgIGJvcmRlci1yYWRpdXM6ICRpbnB1dC1ib3JkZXItcmFkaXVzLWxhcmdlO1xuICB9XG4gIHNlbGVjdC5mb3JtLWNvbnRyb2wge1xuICAgIGhlaWdodDogJGlucHV0LWhlaWdodC1sYXJnZTtcbiAgICBsaW5lLWhlaWdodDogJGlucHV0LWhlaWdodC1sYXJnZTtcbiAgfVxuICB0ZXh0YXJlYS5mb3JtLWNvbnRyb2wsXG4gIHNlbGVjdFttdWx0aXBsZV0uZm9ybS1jb250cm9sIHtcbiAgICBoZWlnaHQ6IGF1dG87XG4gIH1cbiAgLmZvcm0tY29udHJvbC1zdGF0aWMge1xuICAgIGhlaWdodDogJGlucHV0LWhlaWdodC1sYXJnZTtcbiAgICBtaW4taGVpZ2h0OiAoJGxpbmUtaGVpZ2h0LWNvbXB1dGVkICsgJGZvbnQtc2l6ZS1sYXJnZSk7XG4gICAgcGFkZGluZzogKCRwYWRkaW5nLWxhcmdlLXZlcnRpY2FsICsgMSkgJHBhZGRpbmctbGFyZ2UtaG9yaXpvbnRhbDtcbiAgICBmb250LXNpemU6ICRmb250LXNpemUtbGFyZ2U7XG4gICAgbGluZS1oZWlnaHQ6ICRsaW5lLWhlaWdodC1sYXJnZTtcbiAgfVxufVxuXG5cbi8vIEZvcm0gY29udHJvbCBmZWVkYmFjayBzdGF0ZXNcbi8vXG4vLyBBcHBseSBjb250ZXh0dWFsIGFuZCBzZW1hbnRpYyBzdGF0ZXMgdG8gaW5kaXZpZHVhbCBmb3JtIGNvbnRyb2xzLlxuXG4uaGFzLWZlZWRiYWNrIHtcbiAgLy8gRW5hYmxlIGFic29sdXRlIHBvc2l0aW9uaW5nXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAvLyBFbnN1cmUgaWNvbnMgZG9uJ3Qgb3ZlcmxhcCB0ZXh0XG4gIC5mb3JtLWNvbnRyb2wge1xuICAgIHBhZGRpbmctcmlnaHQ6ICgkaW5wdXQtaGVpZ2h0LWJhc2UgKiAxLjI1KTtcbiAgfVxufVxuLy8gRmVlZGJhY2sgaWNvbiAocmVxdWlyZXMgLmdseXBoaWNvbiBjbGFzc2VzKVxuLmZvcm0tY29udHJvbC1mZWVkYmFjayB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbiAgei1pbmRleDogMjsgLy8gRW5zdXJlIGljb24gaXMgYWJvdmUgaW5wdXQgZ3JvdXBzXG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogJGlucHV0LWhlaWdodC1iYXNlO1xuICBoZWlnaHQ6ICRpbnB1dC1oZWlnaHQtYmFzZTtcbiAgbGluZS1oZWlnaHQ6ICRpbnB1dC1oZWlnaHQtYmFzZTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbi5pbnB1dC1sZyArIC5mb3JtLWNvbnRyb2wtZmVlZGJhY2ssXG4uaW5wdXQtZ3JvdXAtbGcgKyAuZm9ybS1jb250cm9sLWZlZWRiYWNrLFxuLmZvcm0tZ3JvdXAtbGcgLmZvcm0tY29udHJvbCArIC5mb3JtLWNvbnRyb2wtZmVlZGJhY2sge1xuICB3aWR0aDogJGlucHV0LWhlaWdodC1sYXJnZTtcbiAgaGVpZ2h0OiAkaW5wdXQtaGVpZ2h0LWxhcmdlO1xuICBsaW5lLWhlaWdodDogJGlucHV0LWhlaWdodC1sYXJnZTtcbn1cbi5pbnB1dC1zbSArIC5mb3JtLWNvbnRyb2wtZmVlZGJhY2ssXG4uaW5wdXQtZ3JvdXAtc20gKyAuZm9ybS1jb250cm9sLWZlZWRiYWNrLFxuLmZvcm0tZ3JvdXAtc20gLmZvcm0tY29udHJvbCArIC5mb3JtLWNvbnRyb2wtZmVlZGJhY2sge1xuICB3aWR0aDogJGlucHV0LWhlaWdodC1zbWFsbDtcbiAgaGVpZ2h0OiAkaW5wdXQtaGVpZ2h0LXNtYWxsO1xuICBsaW5lLWhlaWdodDogJGlucHV0LWhlaWdodC1zbWFsbDtcbn1cblxuLy8gRmVlZGJhY2sgc3RhdGVzXG4uaGFzLXN1Y2Nlc3Mge1xuICBAaW5jbHVkZSBmb3JtLWNvbnRyb2wtdmFsaWRhdGlvbigkc3RhdGUtc3VjY2Vzcy10ZXh0LCAkc3RhdGUtc3VjY2Vzcy10ZXh0LCAkc3RhdGUtc3VjY2Vzcy1iZyk7XG59XG4uaGFzLXdhcm5pbmcge1xuICBAaW5jbHVkZSBmb3JtLWNvbnRyb2wtdmFsaWRhdGlvbigkc3RhdGUtd2FybmluZy10ZXh0LCAkc3RhdGUtd2FybmluZy10ZXh0LCAkc3RhdGUtd2FybmluZy1iZyk7XG59XG4uaGFzLWVycm9yIHtcbiAgQGluY2x1ZGUgZm9ybS1jb250cm9sLXZhbGlkYXRpb24oJHN0YXRlLWRhbmdlci10ZXh0LCAkc3RhdGUtZGFuZ2VyLXRleHQsICRzdGF0ZS1kYW5nZXItYmcpO1xufVxuXG4vLyBSZXBvc2l0aW9uIGZlZWRiYWNrIGljb24gaWYgaW5wdXQgaGFzIHZpc2libGUgbGFiZWwgYWJvdmVcbi5oYXMtZmVlZGJhY2sgbGFiZWwge1xuXG4gICYgfiAuZm9ybS1jb250cm9sLWZlZWRiYWNrIHtcbiAgICB0b3A6ICgkbGluZS1oZWlnaHQtY29tcHV0ZWQgKyA1KTsgLy8gSGVpZ2h0IG9mIHRoZSBgbGFiZWxgIGFuZCBpdHMgbWFyZ2luXG4gIH1cbiAgJi5zci1vbmx5IH4gLmZvcm0tY29udHJvbC1mZWVkYmFjayB7XG4gICAgdG9wOiAwO1xuICB9XG59XG5cblxuLy8gSGVscCB0ZXh0XG4vL1xuLy8gQXBwbHkgdG8gYW55IGVsZW1lbnQgeW91IHdpc2ggdG8gY3JlYXRlIGxpZ2h0IHRleHQgZm9yIHBsYWNlbWVudCBpbW1lZGlhdGVseVxuLy8gYmVsb3cgYSBmb3JtIGNvbnRyb2wuIFVzZSBmb3IgZ2VuZXJhbCBoZWxwLCBmb3JtYXR0aW5nLCBvciBpbnN0cnVjdGlvbmFsIHRleHQuXG5cbi5oZWxwLWJsb2NrIHtcbiAgZGlzcGxheTogYmxvY2s7IC8vIGFjY291bnQgZm9yIGFueSBlbGVtZW50IHVzaW5nIGhlbHAtYmxvY2tcbiAgbWFyZ2luLXRvcDogNXB4O1xuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICBjb2xvcjogbGlnaHRlbigkdGV4dC1jb2xvciwgMjUlKTsgLy8gbGlnaHRlbiB0aGUgdGV4dCBzb21lIGZvciBjb250cmFzdFxufVxuXG5cbi8vIElubGluZSBmb3Jtc1xuLy9cbi8vIE1ha2UgZm9ybXMgYXBwZWFyIGlubGluZSgtYmxvY2spIGJ5IGFkZGluZyB0aGUgYC5mb3JtLWlubGluZWAgY2xhc3MuIElubGluZVxuLy8gZm9ybXMgYmVnaW4gc3RhY2tlZCBvbiBleHRyYSBzbWFsbCAobW9iaWxlKSBkZXZpY2VzIGFuZCB0aGVuIGdvIGlubGluZSB3aGVuXG4vLyB2aWV3cG9ydHMgcmVhY2ggPDc2OHB4LlxuLy9cbi8vIFJlcXVpcmVzIHdyYXBwaW5nIGlucHV0cyBhbmQgbGFiZWxzIHdpdGggYC5mb3JtLWdyb3VwYCBmb3IgcHJvcGVyIGRpc3BsYXkgb2Zcbi8vIGRlZmF1bHQgSFRNTCBmb3JtIGNvbnRyb2xzIGFuZCBvdXIgY3VzdG9tIGZvcm0gY29udHJvbHMgKGUuZy4sIGlucHV0IGdyb3VwcykuXG4vL1xuLy8gSGVhZHMgdXAhIFRoaXMgaXMgbWl4aW4tZWQgaW50byBgLm5hdmJhci1mb3JtYCBpbiBuYXZiYXJzLmxlc3MuXG5cbi8vIFtjb252ZXJ0ZXJdIGV4dHJhY3RlZCBmcm9tIGAuZm9ybS1pbmxpbmVgIGZvciBsaWJzYXNzIGNvbXBhdGliaWxpdHlcbkBtaXhpbiBmb3JtLWlubGluZSB7XG5cbiAgLy8gS2ljayBpbiB0aGUgaW5saW5lXG4gIEBtZWRpYSAobWluLXdpZHRoOiAkc2NyZWVuLXNtLW1pbikge1xuICAgIC8vIElubGluZS1ibG9jayBhbGwgdGhlIHRoaW5ncyBmb3IgXCJpbmxpbmVcIlxuICAgIC5mb3JtLWdyb3VwIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIH1cblxuICAgIC8vIEluIG5hdmJhci1mb3JtLCBhbGxvdyBmb2xrcyB0byAqbm90KiB1c2UgYC5mb3JtLWdyb3VwYFxuICAgIC5mb3JtLWNvbnRyb2wge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgd2lkdGg6IGF1dG87IC8vIFByZXZlbnQgbGFiZWxzIGZyb20gc3RhY2tpbmcgYWJvdmUgaW5wdXRzIGluIGAuZm9ybS1ncm91cGBcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgfVxuXG4gICAgLy8gTWFrZSBzdGF0aWMgY29udHJvbHMgYmVoYXZlIGxpa2UgcmVndWxhciBvbmVzXG4gICAgLmZvcm0tY29udHJvbC1zdGF0aWMge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIH1cblxuICAgIC5pbnB1dC1ncm91cCB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtdGFibGU7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgICAuaW5wdXQtZ3JvdXAtYWRkb24sXG4gICAgICAuaW5wdXQtZ3JvdXAtYnRuLFxuICAgICAgLmZvcm0tY29udHJvbCB7XG4gICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIElucHV0IGdyb3VwcyBuZWVkIHRoYXQgMTAwJSB3aWR0aCB0aG91Z2hcbiAgICAuaW5wdXQtZ3JvdXAgPiAuZm9ybS1jb250cm9sIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cblxuICAgIC5jb250cm9sLWxhYmVsIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIH1cblxuICAgIC8vIFJlbW92ZSBkZWZhdWx0IG1hcmdpbiBvbiByYWRpb3MvY2hlY2tib3hlcyB0aGF0IHdlcmUgdXNlZCBmb3Igc3RhY2tpbmcsIGFuZFxuICAgIC8vIHRoZW4gdW5kbyB0aGUgZmxvYXRpbmcgb2YgcmFkaW9zIGFuZCBjaGVja2JveGVzIHRvIG1hdGNoLlxuICAgIC5yYWRpbyxcbiAgICAuY2hlY2tib3gge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgICBsYWJlbCB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgIH1cbiAgICB9XG4gICAgLnJhZGlvIGlucHV0W3R5cGU9XCJyYWRpb1wiXSxcbiAgICAuY2hlY2tib3ggaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIH1cblxuICAgIC8vIFJlLW92ZXJyaWRlIHRoZSBmZWVkYmFjayBpY29uLlxuICAgIC5oYXMtZmVlZGJhY2sgLmZvcm0tY29udHJvbC1mZWVkYmFjayB7XG4gICAgICB0b3A6IDA7XG4gICAgfVxuICB9XG59XG4vLyBbY29udmVydGVyXSBleHRyYWN0ZWQgYXMgYEBtaXhpbiBmb3JtLWlubGluZWAgZm9yIGxpYnNhc3MgY29tcGF0aWJpbGl0eVxuLmZvcm0taW5saW5lIHtcbiAgQGluY2x1ZGUgZm9ybS1pbmxpbmU7XG59XG5cblxuXG4vLyBIb3Jpem9udGFsIGZvcm1zXG4vL1xuLy8gSG9yaXpvbnRhbCBmb3JtcyBhcmUgYnVpbHQgb24gZ3JpZCBjbGFzc2VzIGFuZCBhbGxvdyB5b3UgdG8gY3JlYXRlIGZvcm1zIHdpdGhcbi8vIGxhYmVscyBvbiB0aGUgbGVmdCBhbmQgaW5wdXRzIG9uIHRoZSByaWdodC5cblxuLmZvcm0taG9yaXpvbnRhbCB7XG5cbiAgLy8gQ29uc2lzdGVudCB2ZXJ0aWNhbCBhbGlnbm1lbnQgb2YgcmFkaW9zIGFuZCBjaGVja2JveGVzXG4gIC8vXG4gIC8vIExhYmVscyBhbHNvIGdldCBzb21lIHJlc2V0IHN0eWxlcywgYnV0IHRoYXQgaXMgc2NvcGVkIHRvIGEgbWVkaWEgcXVlcnkgYmVsb3cuXG4gIC5yYWRpbyxcbiAgLmNoZWNrYm94LFxuICAucmFkaW8taW5saW5lLFxuICAuY2hlY2tib3gtaW5saW5lIHtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgcGFkZGluZy10b3A6ICgkcGFkZGluZy1iYXNlLXZlcnRpY2FsICsgMSk7IC8vIERlZmF1bHQgcGFkZGluZyBwbHVzIGEgYm9yZGVyXG4gIH1cbiAgLy8gQWNjb3VudCBmb3IgcGFkZGluZyB3ZSdyZSBhZGRpbmcgdG8gZW5zdXJlIHRoZSBhbGlnbm1lbnQgYW5kIG9mIGhlbHAgdGV4dFxuICAvLyBhbmQgb3RoZXIgY29udGVudCBiZWxvdyBpdGVtc1xuICAucmFkaW8sXG4gIC5jaGVja2JveCB7XG4gICAgbWluLWhlaWdodDogKCRsaW5lLWhlaWdodC1jb21wdXRlZCArICgkcGFkZGluZy1iYXNlLXZlcnRpY2FsICsgMSkpO1xuICB9XG5cbiAgLy8gTWFrZSBmb3JtIGdyb3VwcyBiZWhhdmUgbGlrZSByb3dzXG4gIC5mb3JtLWdyb3VwIHtcbiAgICBAaW5jbHVkZSBtYWtlLXJvdztcbiAgfVxuXG4gIC8vIFJlc2V0IHNwYWNpbmcgYW5kIHJpZ2h0IGFsaWduIGxhYmVscywgYnV0IHNjb3BlIHRvIG1lZGlhIHF1ZXJpZXMgc28gdGhhdFxuICAvLyBsYWJlbHMgb24gbmFycm93IHZpZXdwb3J0cyBzdGFjayB0aGUgc2FtZSBhcyBhIGRlZmF1bHQgZm9ybSBleGFtcGxlLlxuICBAbWVkaWEgKG1pbi13aWR0aDogJHNjcmVlbi1zbS1taW4pIHtcbiAgICAuY29udHJvbC1sYWJlbCB7XG4gICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICBwYWRkaW5nLXRvcDogKCRwYWRkaW5nLWJhc2UtdmVydGljYWwgKyAxKTsgLy8gRGVmYXVsdCBwYWRkaW5nIHBsdXMgYSBib3JkZXJcbiAgICB9XG4gIH1cblxuICAvLyBWYWxpZGF0aW9uIHN0YXRlc1xuICAvL1xuICAvLyBSZXBvc2l0aW9uIHRoZSBpY29uIGJlY2F1c2UgaXQncyBub3cgd2l0aGluIGEgZ3JpZCBjb2x1bW4gYW5kIGNvbHVtbnMgaGF2ZVxuICAvLyBgcG9zaXRpb246IHJlbGF0aXZlO2Agb24gdGhlbS4gQWxzbyBhY2NvdW50cyBmb3IgdGhlIGdyaWQgZ3V0dGVyIHBhZGRpbmcuXG4gIC5oYXMtZmVlZGJhY2sgLmZvcm0tY29udHJvbC1mZWVkYmFjayB7XG4gICAgcmlnaHQ6IGZsb29yKCgkZ3JpZC1ndXR0ZXItd2lkdGggLyAyKSk7XG4gIH1cblxuICAvLyBGb3JtIGdyb3VwIHNpemVzXG4gIC8vXG4gIC8vIFF1aWNrIHV0aWxpdHkgY2xhc3MgZm9yIGFwcGx5aW5nIGAuaW5wdXQtbGdgIGFuZCBgLmlucHV0LXNtYCBzdHlsZXMgdG8gdGhlXG4gIC8vIGlucHV0cyBhbmQgbGFiZWxzIHdpdGhpbiBhIGAuZm9ybS1ncm91cGAuXG4gIC5mb3JtLWdyb3VwLWxnIHtcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogJHNjcmVlbi1zbS1taW4pIHtcbiAgICAgIC5jb250cm9sLWxhYmVsIHtcbiAgICAgICAgcGFkZGluZy10b3A6ICgkcGFkZGluZy1sYXJnZS12ZXJ0aWNhbCArIDEpO1xuICAgICAgICBmb250LXNpemU6ICRmb250LXNpemUtbGFyZ2U7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIC5mb3JtLWdyb3VwLXNtIHtcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogJHNjcmVlbi1zbS1taW4pIHtcbiAgICAgIC5jb250cm9sLWxhYmVsIHtcbiAgICAgICAgcGFkZGluZy10b3A6ICgkcGFkZGluZy1zbWFsbC12ZXJ0aWNhbCArIDEpO1xuICAgICAgICBmb250LXNpemU6ICRmb250LXNpemUtc21hbGw7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9ub2RlX21vZHVsZXMvYm9vdHN0cmFwLXNhc3MvYXNzZXRzL3N0eWxlc2hlZXRzL2Jvb3RzdHJhcC9fZm9ybXMuc2NzcyIsIi8vIEZvcm0gdmFsaWRhdGlvbiBzdGF0ZXNcbi8vXG4vLyBVc2VkIGluIGZvcm1zLmxlc3MgdG8gZ2VuZXJhdGUgdGhlIGZvcm0gdmFsaWRhdGlvbiBDU1MgZm9yIHdhcm5pbmdzLCBlcnJvcnMsXG4vLyBhbmQgc3VjY2Vzc2VzLlxuXG5AbWl4aW4gZm9ybS1jb250cm9sLXZhbGlkYXRpb24oJHRleHQtY29sb3I6ICM1NTUsICRib3JkZXItY29sb3I6ICNjY2MsICRiYWNrZ3JvdW5kLWNvbG9yOiAjZjVmNWY1KSB7XG4gIC8vIENvbG9yIHRoZSBsYWJlbCBhbmQgaGVscCB0ZXh0XG4gIC5oZWxwLWJsb2NrLFxuICAuY29udHJvbC1sYWJlbCxcbiAgLnJhZGlvLFxuICAuY2hlY2tib3gsXG4gIC5yYWRpby1pbmxpbmUsXG4gIC5jaGVja2JveC1pbmxpbmUsXG4gICYucmFkaW8gbGFiZWwsXG4gICYuY2hlY2tib3ggbGFiZWwsXG4gICYucmFkaW8taW5saW5lIGxhYmVsLFxuICAmLmNoZWNrYm94LWlubGluZSBsYWJlbCAge1xuICAgIGNvbG9yOiAkdGV4dC1jb2xvcjtcbiAgfVxuICAvLyBTZXQgdGhlIGJvcmRlciBhbmQgYm94IHNoYWRvdyBvbiBzcGVjaWZpYyBpbnB1dHMgdG8gbWF0Y2hcbiAgLmZvcm0tY29udHJvbCB7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yO1xuICAgIEBpbmNsdWRlIGJveC1zaGFkb3coaW5zZXQgMCAxcHggMXB4IHJnYmEoMCwwLDAsLjA3NSkpOyAvLyBSZWRlY2xhcmUgc28gdHJhbnNpdGlvbnMgd29ya1xuICAgICY6Zm9jdXMge1xuICAgICAgYm9yZGVyLWNvbG9yOiBkYXJrZW4oJGJvcmRlci1jb2xvciwgMTAlKTtcbiAgICAgICRzaGFkb3c6IGluc2V0IDAgMXB4IDFweCByZ2JhKDAsMCwwLC4wNzUpLCAwIDAgNnB4IGxpZ2h0ZW4oJGJvcmRlci1jb2xvciwgMjAlKTtcbiAgICAgIEBpbmNsdWRlIGJveC1zaGFkb3coJHNoYWRvdyk7XG4gICAgfVxuICB9XG4gIC8vIFNldCB2YWxpZGF0aW9uIHN0YXRlcyBhbHNvIGZvciBhZGRvbnNcbiAgLmlucHV0LWdyb3VwLWFkZG9uIHtcbiAgICBjb2xvcjogJHRleHQtY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kLWNvbG9yO1xuICB9XG4gIC8vIE9wdGlvbmFsIGZlZWRiYWNrIGljb25cbiAgLmZvcm0tY29udHJvbC1mZWVkYmFjayB7XG4gICAgY29sb3I6ICR0ZXh0LWNvbG9yO1xuICB9XG59XG5cblxuLy8gRm9ybSBjb250cm9sIGZvY3VzIHN0YXRlXG4vL1xuLy8gR2VuZXJhdGUgYSBjdXN0b21pemVkIGZvY3VzIHN0YXRlIGFuZCBmb3IgYW55IGlucHV0IHdpdGggdGhlIHNwZWNpZmllZCBjb2xvcixcbi8vIHdoaWNoIGRlZmF1bHRzIHRvIHRoZSBgJGlucHV0LWJvcmRlci1mb2N1c2AgdmFyaWFibGUuXG4vL1xuLy8gV2UgaGlnaGx5IGVuY291cmFnZSB5b3UgdG8gbm90IGN1c3RvbWl6ZSB0aGUgZGVmYXVsdCB2YWx1ZSwgYnV0IGluc3RlYWQgdXNlXG4vLyB0aGlzIHRvIHR3ZWFrIGNvbG9ycyBvbiBhbiBhcy1uZWVkZWQgYmFzaXMuIFRoaXMgYWVzdGhldGljIGNoYW5nZSBpcyBiYXNlZCBvblxuLy8gV2ViS2l0J3MgZGVmYXVsdCBzdHlsZXMsIGJ1dCBhcHBsaWNhYmxlIHRvIGEgd2lkZXIgcmFuZ2Ugb2YgYnJvd3NlcnMuIEl0c1xuLy8gdXNhYmlsaXR5IGFuZCBhY2Nlc3NpYmlsaXR5IHNob3VsZCBiZSB0YWtlbiBpbnRvIGFjY291bnQgd2l0aCBhbnkgY2hhbmdlLlxuLy9cbi8vIEV4YW1wbGUgdXNhZ2U6IGNoYW5nZSB0aGUgZGVmYXVsdCBibHVlIGJvcmRlciBhbmQgc2hhZG93IHRvIHdoaXRlIGZvciBiZXR0ZXJcbi8vIGNvbnRyYXN0IGFnYWluc3QgYSBkYXJrIGdyYXkgYmFja2dyb3VuZC5cbkBtaXhpbiBmb3JtLWNvbnRyb2wtZm9jdXMoJGNvbG9yOiAkaW5wdXQtYm9yZGVyLWZvY3VzKSB7XG4gICRjb2xvci1yZ2JhOiByZ2JhKHJlZCgkY29sb3IpLCBncmVlbigkY29sb3IpLCBibHVlKCRjb2xvciksIC42KTtcbiAgJjpmb2N1cyB7XG4gICAgYm9yZGVyLWNvbG9yOiAkY29sb3I7XG4gICAgb3V0bGluZTogMDtcbiAgICBAaW5jbHVkZSBib3gtc2hhZG93KGluc2V0IDAgMXB4IDFweCByZ2JhKDAsMCwwLC4wNzUpLCAwIDAgOHB4ICRjb2xvci1yZ2JhKTtcbiAgfVxufVxuXG4vLyBGb3JtIGNvbnRyb2wgc2l6aW5nXG4vL1xuLy8gUmVsYXRpdmUgdGV4dCBzaXplLCBwYWRkaW5nLCBhbmQgYm9yZGVyLXJhZGlpIGNoYW5nZXMgZm9yIGZvcm0gY29udHJvbHMuIEZvclxuLy8gaG9yaXpvbnRhbCBzaXppbmcsIHdyYXAgY29udHJvbHMgaW4gdGhlIHByZWRlZmluZWQgZ3JpZCBjbGFzc2VzLiBgPHNlbGVjdD5gXG4vLyBlbGVtZW50IGdldHMgc3BlY2lhbCBsb3ZlIGJlY2F1c2UgaXQncyBzcGVjaWFsLCBhbmQgdGhhdCdzIGEgZmFjdCFcbi8vIFtjb252ZXJ0ZXJdICRwYXJlbnQgaGFja1xuQG1peGluIGlucHV0LXNpemUoJHBhcmVudCwgJGlucHV0LWhlaWdodCwgJHBhZGRpbmctdmVydGljYWwsICRwYWRkaW5nLWhvcml6b250YWwsICRmb250LXNpemUsICRsaW5lLWhlaWdodCwgJGJvcmRlci1yYWRpdXMpIHtcbiAgI3skcGFyZW50fSB7XG4gICAgaGVpZ2h0OiAkaW5wdXQtaGVpZ2h0O1xuICAgIHBhZGRpbmc6ICRwYWRkaW5nLXZlcnRpY2FsICRwYWRkaW5nLWhvcml6b250YWw7XG4gICAgZm9udC1zaXplOiAkZm9udC1zaXplO1xuICAgIGxpbmUtaGVpZ2h0OiAkbGluZS1oZWlnaHQ7XG4gICAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG4gIH1cblxuICBzZWxlY3QjeyRwYXJlbnR9IHtcbiAgICBoZWlnaHQ6ICRpbnB1dC1oZWlnaHQ7XG4gICAgbGluZS1oZWlnaHQ6ICRpbnB1dC1oZWlnaHQ7XG4gIH1cblxuICB0ZXh0YXJlYSN7JHBhcmVudH0sXG4gIHNlbGVjdFttdWx0aXBsZV0jeyRwYXJlbnR9IHtcbiAgICBoZWlnaHQ6IGF1dG87XG4gIH1cbn1cblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL25vZGVfbW9kdWxlcy9ib290c3RyYXAtc2Fzcy9hc3NldHMvc3R5bGVzaGVldHMvYm9vdHN0cmFwL21peGlucy9fZm9ybXMuc2NzcyIsIi8vXG4vLyBCdXR0b25zXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5cbi8vIEJhc2Ugc3R5bGVzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4uYnRuIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXJnaW4tYm90dG9tOiAwOyAvLyBGb3IgaW5wdXQuYnRuXG4gIGZvbnQtd2VpZ2h0OiAkYnRuLWZvbnQtd2VpZ2h0O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIHRvdWNoLWFjdGlvbjogbWFuaXB1bGF0aW9uO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7IC8vIFJlc2V0IHVudXN1YWwgRmlyZWZveC1vbi1BbmRyb2lkIGRlZmF1bHQgc3R5bGU7IHNlZSBodHRwczovL2dpdGh1Yi5jb20vbmVjb2xhcy9ub3JtYWxpemUuY3NzL2lzc3Vlcy8yMTRcbiAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIEBpbmNsdWRlIGJ1dHRvbi1zaXplKCRwYWRkaW5nLWJhc2UtdmVydGljYWwsICRwYWRkaW5nLWJhc2UtaG9yaXpvbnRhbCwgJGZvbnQtc2l6ZS1iYXNlLCAkbGluZS1oZWlnaHQtYmFzZSwgJGJ0bi1ib3JkZXItcmFkaXVzLWJhc2UpO1xuICBAaW5jbHVkZSB1c2VyLXNlbGVjdChub25lKTtcblxuICAmLFxuICAmOmFjdGl2ZSxcbiAgJi5hY3RpdmUge1xuICAgICY6Zm9jdXMsXG4gICAgJi5mb2N1cyB7XG4gICAgICBAaW5jbHVkZSB0YWItZm9jdXM7XG4gICAgfVxuICB9XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyxcbiAgJi5mb2N1cyB7XG4gICAgY29sb3I6ICRidG4tZGVmYXVsdC1jb2xvcjtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIH1cblxuICAmOmFjdGl2ZSxcbiAgJi5hY3RpdmUge1xuICAgIG91dGxpbmU6IDA7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbiAgICBAaW5jbHVkZSBib3gtc2hhZG93KGluc2V0IDAgM3B4IDVweCByZ2JhKDAsMCwwLC4xMjUpKTtcbiAgfVxuXG4gICYuZGlzYWJsZWQsXG4gICZbZGlzYWJsZWRdLFxuICBmaWVsZHNldFtkaXNhYmxlZF0gJiB7XG4gICAgY3Vyc29yOiAkY3Vyc29yLWRpc2FibGVkO1xuICAgIEBpbmNsdWRlIG9wYWNpdHkoLjY1KTtcbiAgICBAaW5jbHVkZSBib3gtc2hhZG93KG5vbmUpO1xuICB9XG5cbiAgLy8gW2NvbnZlcnRlcl0gZXh0cmFjdGVkIGEmIHRvIGEuYnRuXG59XG5cbmEuYnRuIHtcbiAgJi5kaXNhYmxlZCxcbiAgZmllbGRzZXRbZGlzYWJsZWRdICYge1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lOyAvLyBGdXR1cmUtcHJvb2YgZGlzYWJsaW5nIG9mIGNsaWNrcyBvbiBgPGE+YCBlbGVtZW50c1xuICB9XG59XG5cblxuLy8gQWx0ZXJuYXRlIGJ1dHRvbnNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi5idG4tZGVmYXVsdCB7XG4gIEBpbmNsdWRlIGJ1dHRvbi12YXJpYW50KCRidG4tZGVmYXVsdC1jb2xvciwgJGJ0bi1kZWZhdWx0LWJnLCAkYnRuLWRlZmF1bHQtYm9yZGVyKTtcbn1cbi5idG4tcHJpbWFyeSB7XG4gIEBpbmNsdWRlIGJ1dHRvbi12YXJpYW50KCRidG4tcHJpbWFyeS1jb2xvciwgJGJ0bi1wcmltYXJ5LWJnLCAkYnRuLXByaW1hcnktYm9yZGVyKTtcbn1cbi8vIFN1Y2Nlc3MgYXBwZWFycyBhcyBncmVlblxuLmJ0bi1zdWNjZXNzIHtcbiAgQGluY2x1ZGUgYnV0dG9uLXZhcmlhbnQoJGJ0bi1zdWNjZXNzLWNvbG9yLCAkYnRuLXN1Y2Nlc3MtYmcsICRidG4tc3VjY2Vzcy1ib3JkZXIpO1xufVxuLy8gSW5mbyBhcHBlYXJzIGFzIGJsdWUtZ3JlZW5cbi5idG4taW5mbyB7XG4gIEBpbmNsdWRlIGJ1dHRvbi12YXJpYW50KCRidG4taW5mby1jb2xvciwgJGJ0bi1pbmZvLWJnLCAkYnRuLWluZm8tYm9yZGVyKTtcbn1cbi8vIFdhcm5pbmcgYXBwZWFycyBhcyBvcmFuZ2Vcbi5idG4td2FybmluZyB7XG4gIEBpbmNsdWRlIGJ1dHRvbi12YXJpYW50KCRidG4td2FybmluZy1jb2xvciwgJGJ0bi13YXJuaW5nLWJnLCAkYnRuLXdhcm5pbmctYm9yZGVyKTtcbn1cbi8vIERhbmdlciBhbmQgZXJyb3IgYXBwZWFyIGFzIHJlZFxuLmJ0bi1kYW5nZXIge1xuICBAaW5jbHVkZSBidXR0b24tdmFyaWFudCgkYnRuLWRhbmdlci1jb2xvciwgJGJ0bi1kYW5nZXItYmcsICRidG4tZGFuZ2VyLWJvcmRlcik7XG59XG5cblxuLy8gTGluayBidXR0b25zXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vIE1ha2UgYSBidXR0b24gbG9vayBhbmQgYmVoYXZlIGxpa2UgYSBsaW5rXG4uYnRuLWxpbmsge1xuICBjb2xvcjogJGxpbmstY29sb3I7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG5cbiAgJixcbiAgJjphY3RpdmUsXG4gICYuYWN0aXZlLFxuICAmW2Rpc2FibGVkXSxcbiAgZmllbGRzZXRbZGlzYWJsZWRdICYge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIEBpbmNsdWRlIGJveC1zaGFkb3cobm9uZSk7XG4gIH1cbiAgJixcbiAgJjpob3ZlcixcbiAgJjpmb2N1cyxcbiAgJjphY3RpdmUge1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIH1cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyB7XG4gICAgY29sb3I6ICRsaW5rLWhvdmVyLWNvbG9yO1xuICAgIHRleHQtZGVjb3JhdGlvbjogJGxpbmstaG92ZXItZGVjb3JhdGlvbjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgfVxuICAmW2Rpc2FibGVkXSxcbiAgZmllbGRzZXRbZGlzYWJsZWRdICYge1xuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyB7XG4gICAgICBjb2xvcjogJGJ0bi1saW5rLWRpc2FibGVkLWNvbG9yO1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIH1cbiAgfVxufVxuXG5cbi8vIEJ1dHRvbiBTaXplc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLmJ0bi1sZyB7XG4gIC8vIGxpbmUtaGVpZ2h0OiBlbnN1cmUgZXZlbi1udW1iZXJlZCBoZWlnaHQgb2YgYnV0dG9uIG5leHQgdG8gbGFyZ2UgaW5wdXRcbiAgQGluY2x1ZGUgYnV0dG9uLXNpemUoJHBhZGRpbmctbGFyZ2UtdmVydGljYWwsICRwYWRkaW5nLWxhcmdlLWhvcml6b250YWwsICRmb250LXNpemUtbGFyZ2UsICRsaW5lLWhlaWdodC1sYXJnZSwgJGJ0bi1ib3JkZXItcmFkaXVzLWxhcmdlKTtcbn1cbi5idG4tc20ge1xuICAvLyBsaW5lLWhlaWdodDogZW5zdXJlIHByb3BlciBoZWlnaHQgb2YgYnV0dG9uIG5leHQgdG8gc21hbGwgaW5wdXRcbiAgQGluY2x1ZGUgYnV0dG9uLXNpemUoJHBhZGRpbmctc21hbGwtdmVydGljYWwsICRwYWRkaW5nLXNtYWxsLWhvcml6b250YWwsICRmb250LXNpemUtc21hbGwsICRsaW5lLWhlaWdodC1zbWFsbCwgJGJ0bi1ib3JkZXItcmFkaXVzLXNtYWxsKTtcbn1cbi5idG4teHMge1xuICBAaW5jbHVkZSBidXR0b24tc2l6ZSgkcGFkZGluZy14cy12ZXJ0aWNhbCwgJHBhZGRpbmcteHMtaG9yaXpvbnRhbCwgJGZvbnQtc2l6ZS1zbWFsbCwgJGxpbmUtaGVpZ2h0LXNtYWxsLCAkYnRuLWJvcmRlci1yYWRpdXMtc21hbGwpO1xufVxuXG5cbi8vIEJsb2NrIGJ1dHRvblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLmJ0bi1ibG9jayB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTAwJTtcbn1cblxuLy8gVmVydGljYWxseSBzcGFjZSBvdXQgbXVsdGlwbGUgYmxvY2sgYnV0dG9uc1xuLmJ0bi1ibG9jayArIC5idG4tYmxvY2sge1xuICBtYXJnaW4tdG9wOiA1cHg7XG59XG5cbi8vIFNwZWNpZmljaXR5IG92ZXJyaWRlc1xuaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSxcbmlucHV0W3R5cGU9XCJyZXNldFwiXSxcbmlucHV0W3R5cGU9XCJidXR0b25cIl0ge1xuICAmLmJ0bi1ibG9jayB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbn1cblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL25vZGVfbW9kdWxlcy9ib290c3RyYXAtc2Fzcy9hc3NldHMvc3R5bGVzaGVldHMvYm9vdHN0cmFwL19idXR0b25zLnNjc3MiLCIvLyBCdXR0b24gdmFyaWFudHNcbi8vXG4vLyBFYXNpbHkgcHVtcCBvdXQgZGVmYXVsdCBzdHlsZXMsIGFzIHdlbGwgYXMgOmhvdmVyLCA6Zm9jdXMsIDphY3RpdmUsXG4vLyBhbmQgZGlzYWJsZWQgb3B0aW9ucyBmb3IgYWxsIGJ1dHRvbnNcblxuQG1peGluIGJ1dHRvbi12YXJpYW50KCRjb2xvciwgJGJhY2tncm91bmQsICRib3JkZXIpIHtcbiAgY29sb3I6ICRjb2xvcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQ7XG4gIGJvcmRlci1jb2xvcjogJGJvcmRlcjtcblxuICAmOmZvY3VzLFxuICAmLmZvY3VzIHtcbiAgICBjb2xvcjogJGNvbG9yO1xuICAgIGJhY2tncm91bmQtY29sb3I6IGRhcmtlbigkYmFja2dyb3VuZCwgMTAlKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiBkYXJrZW4oJGJvcmRlciwgMjUlKTtcbiAgfVxuICAmOmhvdmVyIHtcbiAgICBjb2xvcjogJGNvbG9yO1xuICAgIGJhY2tncm91bmQtY29sb3I6IGRhcmtlbigkYmFja2dyb3VuZCwgMTAlKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiBkYXJrZW4oJGJvcmRlciwgMTIlKTtcbiAgfVxuICAmOmFjdGl2ZSxcbiAgJi5hY3RpdmUsXG4gIC5vcGVuID4gJi5kcm9wZG93bi10b2dnbGUge1xuICAgIGNvbG9yOiAkY29sb3I7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogZGFya2VuKCRiYWNrZ3JvdW5kLCAxMCUpO1xuICAgICAgICBib3JkZXItY29sb3I6IGRhcmtlbigkYm9yZGVyLCAxMiUpO1xuXG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzLFxuICAgICYuZm9jdXMge1xuICAgICAgY29sb3I6ICRjb2xvcjtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IGRhcmtlbigkYmFja2dyb3VuZCwgMTclKTtcbiAgICAgICAgICBib3JkZXItY29sb3I6IGRhcmtlbigkYm9yZGVyLCAyNSUpO1xuICAgIH1cbiAgfVxuICAmOmFjdGl2ZSxcbiAgJi5hY3RpdmUsXG4gIC5vcGVuID4gJi5kcm9wZG93bi10b2dnbGUge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG4gIH1cbiAgJi5kaXNhYmxlZCxcbiAgJltkaXNhYmxlZF0sXG4gIGZpZWxkc2V0W2Rpc2FibGVkXSAmIHtcbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMsXG4gICAgJi5mb2N1cyB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcbiAgICAgICAgICBib3JkZXItY29sb3I6ICRib3JkZXI7XG4gICAgfVxuICB9XG5cbiAgLmJhZGdlIHtcbiAgICBjb2xvcjogJGJhY2tncm91bmQ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuICB9XG59XG5cbi8vIEJ1dHRvbiBzaXplc1xuQG1peGluIGJ1dHRvbi1zaXplKCRwYWRkaW5nLXZlcnRpY2FsLCAkcGFkZGluZy1ob3Jpem9udGFsLCAkZm9udC1zaXplLCAkbGluZS1oZWlnaHQsICRib3JkZXItcmFkaXVzKSB7XG4gIHBhZGRpbmc6ICRwYWRkaW5nLXZlcnRpY2FsICRwYWRkaW5nLWhvcml6b250YWw7XG4gIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZTtcbiAgbGluZS1oZWlnaHQ6ICRsaW5lLWhlaWdodDtcbiAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG59XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9ub2RlX21vZHVsZXMvYm9vdHN0cmFwLXNhc3MvYXNzZXRzL3N0eWxlc2hlZXRzL2Jvb3RzdHJhcC9taXhpbnMvX2J1dHRvbnMuc2NzcyIsIi8vIE9wYWNpdHlcblxuQG1peGluIG9wYWNpdHkoJG9wYWNpdHkpIHtcbiAgb3BhY2l0eTogJG9wYWNpdHk7XG4gIC8vIElFOCBmaWx0ZXJcbiAgJG9wYWNpdHktaWU6ICgkb3BhY2l0eSAqIDEwMCk7XG4gIGZpbHRlcjogYWxwaGEob3BhY2l0eT0kb3BhY2l0eS1pZSk7XG59XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9ub2RlX21vZHVsZXMvYm9vdHN0cmFwLXNhc3MvYXNzZXRzL3N0eWxlc2hlZXRzL2Jvb3RzdHJhcC9taXhpbnMvX29wYWNpdHkuc2NzcyIsIi8vXG4vLyBDb21wb25lbnQgYW5pbWF0aW9uc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLy8gSGVhZHMgdXAhXG4vL1xuLy8gV2UgZG9uJ3QgdXNlIHRoZSBgLm9wYWNpdHkoKWAgbWl4aW4gaGVyZSBzaW5jZSBpdCBjYXVzZXMgYSBidWcgd2l0aCB0ZXh0XG4vLyBmaWVsZHMgaW4gSUU3LTguIFNvdXJjZTogaHR0cHM6Ly9naXRodWIuY29tL3R3YnMvYm9vdHN0cmFwL3B1bGwvMzU1Mi5cblxuLmZhZGUge1xuICBvcGFjaXR5OiAwO1xuICBAaW5jbHVkZSB0cmFuc2l0aW9uKG9wYWNpdHkgLjE1cyBsaW5lYXIpO1xuICAmLmluIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG59XG5cbi5jb2xsYXBzZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG5cbiAgJi5pbiAgICAgIHsgZGlzcGxheTogYmxvY2s7IH1cbiAgLy8gW2NvbnZlcnRlcl0gZXh0cmFjdGVkIHRyJi5pbiB0byB0ci5jb2xsYXBzZS5pblxuICAvLyBbY29udmVydGVyXSBleHRyYWN0ZWQgdGJvZHkmLmluIHRvIHRib2R5LmNvbGxhcHNlLmluXG59XG5cbnRyLmNvbGxhcHNlLmluICAgIHsgZGlzcGxheTogdGFibGUtcm93OyB9XG5cbnRib2R5LmNvbGxhcHNlLmluIHsgZGlzcGxheTogdGFibGUtcm93LWdyb3VwOyB9XG5cbi5jb2xsYXBzaW5nIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBoZWlnaHQ6IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIEBpbmNsdWRlIHRyYW5zaXRpb24tcHJvcGVydHkoaGVpZ2h0LCB2aXNpYmlsaXR5KTtcbiAgQGluY2x1ZGUgdHJhbnNpdGlvbi1kdXJhdGlvbiguMzVzKTtcbiAgQGluY2x1ZGUgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24oZWFzZSk7XG59XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9ub2RlX21vZHVsZXMvYm9vdHN0cmFwLXNhc3MvYXNzZXRzL3N0eWxlc2hlZXRzL2Jvb3RzdHJhcC9fY29tcG9uZW50LWFuaW1hdGlvbnMuc2NzcyIsIi8vXG4vLyBEcm9wZG93biBtZW51c1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuXG4vLyBEcm9wZG93biBhcnJvdy9jYXJldFxuLmNhcmV0IHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aWR0aDogMDtcbiAgaGVpZ2h0OiAwO1xuICBtYXJnaW4tbGVmdDogMnB4O1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBib3JkZXItdG9wOiAgICRjYXJldC13aWR0aC1iYXNlIGRhc2hlZDtcbiAgYm9yZGVyLXRvcDogICAkY2FyZXQtd2lkdGgtYmFzZSBzb2xpZCBcXDk7IC8vIElFOFxuICBib3JkZXItcmlnaHQ6ICRjYXJldC13aWR0aC1iYXNlIHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItbGVmdDogICRjYXJldC13aWR0aC1iYXNlIHNvbGlkIHRyYW5zcGFyZW50O1xufVxuXG4vLyBUaGUgZHJvcGRvd24gd3JhcHBlciAoZGl2KVxuLmRyb3B1cCxcbi5kcm9wZG93biB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLy8gUHJldmVudCB0aGUgZm9jdXMgb24gdGhlIGRyb3Bkb3duIHRvZ2dsZSB3aGVuIGNsb3NpbmcgZHJvcGRvd25zXG4uZHJvcGRvd24tdG9nZ2xlOmZvY3VzIHtcbiAgb3V0bGluZTogMDtcbn1cblxuLy8gVGhlIGRyb3Bkb3duIG1lbnUgKHVsKVxuLmRyb3Bkb3duLW1lbnUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMTAwJTtcbiAgbGVmdDogMDtcbiAgei1pbmRleDogJHppbmRleC1kcm9wZG93bjtcbiAgZGlzcGxheTogbm9uZTsgLy8gbm9uZSBieSBkZWZhdWx0LCBidXQgYmxvY2sgb24gXCJvcGVuXCIgb2YgdGhlIG1lbnVcbiAgZmxvYXQ6IGxlZnQ7XG4gIG1pbi13aWR0aDogMTYwcHg7XG4gIHBhZGRpbmc6IDVweCAwO1xuICBtYXJnaW46IDJweCAwIDA7IC8vIG92ZXJyaWRlIGRlZmF1bHQgdWxcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgZm9udC1zaXplOiAkZm9udC1zaXplLWJhc2U7XG4gIHRleHQtYWxpZ246IGxlZnQ7IC8vIEVuc3VyZXMgcHJvcGVyIGFsaWdubWVudCBpZiBwYXJlbnQgaGFzIGl0IGNoYW5nZWQgKGUuZy4sIG1vZGFsIGZvb3RlcilcbiAgYmFja2dyb3VuZC1jb2xvcjogJGRyb3Bkb3duLWJnO1xuICBib3JkZXI6IDFweCBzb2xpZCAkZHJvcGRvd24tZmFsbGJhY2stYm9yZGVyOyAvLyBJRTggZmFsbGJhY2tcbiAgYm9yZGVyOiAxcHggc29saWQgJGRyb3Bkb3duLWJvcmRlcjtcbiAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXMtYmFzZTtcbiAgQGluY2x1ZGUgYm94LXNoYWRvdygwIDZweCAxMnB4IHJnYmEoMCwwLDAsLjE3NSkpO1xuICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xuXG4gIC8vIEFsaWducyB0aGUgZHJvcGRvd24gbWVudSB0byByaWdodFxuICAvL1xuICAvLyBEZXByZWNhdGVkIGFzIG9mIDMuMS4wIGluIGZhdm9yIG9mIGAuZHJvcGRvd24tbWVudS1bZGlyXWBcbiAgJi5wdWxsLXJpZ2h0IHtcbiAgICByaWdodDogMDtcbiAgICBsZWZ0OiBhdXRvO1xuICB9XG5cbiAgLy8gRGl2aWRlcnMgKGJhc2ljYWxseSBhbiBocikgd2l0aGluIHRoZSBkcm9wZG93blxuICAuZGl2aWRlciB7XG4gICAgQGluY2x1ZGUgbmF2LWRpdmlkZXIoJGRyb3Bkb3duLWRpdmlkZXItYmcpO1xuICB9XG5cbiAgLy8gTGlua3Mgd2l0aGluIHRoZSBkcm9wZG93biBtZW51XG4gID4gbGkgPiBhIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwYWRkaW5nOiAzcHggMjBweDtcbiAgICBjbGVhcjogYm90aDtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIGxpbmUtaGVpZ2h0OiAkbGluZS1oZWlnaHQtYmFzZTtcbiAgICBjb2xvcjogJGRyb3Bkb3duLWxpbmstY29sb3I7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsgLy8gcHJldmVudCBsaW5rcyBmcm9tIHJhbmRvbWx5IGJyZWFraW5nIG9udG8gbmV3IGxpbmVzXG4gIH1cbn1cblxuLy8gSG92ZXIvRm9jdXMgc3RhdGVcbi5kcm9wZG93bi1tZW51ID4gbGkgPiBhIHtcbiAgJjpob3ZlcixcbiAgJjpmb2N1cyB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGNvbG9yOiAkZHJvcGRvd24tbGluay1ob3Zlci1jb2xvcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZHJvcGRvd24tbGluay1ob3Zlci1iZztcbiAgfVxufVxuXG4vLyBBY3RpdmUgc3RhdGVcbi5kcm9wZG93bi1tZW51ID4gLmFjdGl2ZSA+IGEge1xuICAmLFxuICAmOmhvdmVyLFxuICAmOmZvY3VzIHtcbiAgICBjb2xvcjogJGRyb3Bkb3duLWxpbmstYWN0aXZlLWNvbG9yO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBvdXRsaW5lOiAwO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRkcm9wZG93bi1saW5rLWFjdGl2ZS1iZztcbiAgfVxufVxuXG4vLyBEaXNhYmxlZCBzdGF0ZVxuLy9cbi8vIEdyYXkgb3V0IHRleHQgYW5kIGVuc3VyZSB0aGUgaG92ZXIvZm9jdXMgc3RhdGUgcmVtYWlucyBncmF5XG5cbi5kcm9wZG93bi1tZW51ID4gLmRpc2FibGVkID4gYSB7XG4gICYsXG4gICY6aG92ZXIsXG4gICY6Zm9jdXMge1xuICAgIGNvbG9yOiAkZHJvcGRvd24tbGluay1kaXNhYmxlZC1jb2xvcjtcbiAgfVxuXG4gIC8vIE51a2UgaG92ZXIvZm9jdXMgZWZmZWN0c1xuICAmOmhvdmVyLFxuICAmOmZvY3VzIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTsgLy8gUmVtb3ZlIENTUyBncmFkaWVudFxuICAgIEBpbmNsdWRlIHJlc2V0LWZpbHRlcjtcbiAgICBjdXJzb3I6ICRjdXJzb3ItZGlzYWJsZWQ7XG4gIH1cbn1cblxuLy8gT3BlbiBzdGF0ZSBmb3IgdGhlIGRyb3Bkb3duXG4ub3BlbiB7XG4gIC8vIFNob3cgdGhlIG1lbnVcbiAgPiAuZHJvcGRvd24tbWVudSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cblxuICAvLyBSZW1vdmUgdGhlIG91dGxpbmUgd2hlbiA6Zm9jdXMgaXMgdHJpZ2dlcmVkXG4gID4gYSB7XG4gICAgb3V0bGluZTogMDtcbiAgfVxufVxuXG4vLyBNZW51IHBvc2l0aW9uaW5nXG4vL1xuLy8gQWRkIGV4dHJhIGNsYXNzIHRvIGAuZHJvcGRvd24tbWVudWAgdG8gZmxpcCB0aGUgYWxpZ25tZW50IG9mIHRoZSBkcm9wZG93blxuLy8gbWVudSB3aXRoIHRoZSBwYXJlbnQuXG4uZHJvcGRvd24tbWVudS1yaWdodCB7XG4gIGxlZnQ6IGF1dG87IC8vIFJlc2V0IHRoZSBkZWZhdWx0IGZyb20gYC5kcm9wZG93bi1tZW51YFxuICByaWdodDogMDtcbn1cbi8vIFdpdGggdjMsIHdlIGVuYWJsZWQgYXV0by1mbGlwcGluZyBpZiB5b3UgaGF2ZSBhIGRyb3Bkb3duIHdpdGhpbiBhIHJpZ2h0XG4vLyBhbGlnbmVkIG5hdiBjb21wb25lbnQuIFRvIGVuYWJsZSB0aGUgdW5kb2luZyBvZiB0aGF0LCB3ZSBwcm92aWRlIGFuIG92ZXJyaWRlXG4vLyB0byByZXN0b3JlIHRoZSBkZWZhdWx0IGRyb3Bkb3duIG1lbnUgYWxpZ25tZW50LlxuLy9cbi8vIFRoaXMgaXMgb25seSBmb3IgbGVmdC1hbGlnbmluZyBhIGRyb3Bkb3duIG1lbnUgd2l0aGluIGEgYC5uYXZiYXItcmlnaHRgIG9yXG4vLyBgLnB1bGwtcmlnaHRgIG5hdiBjb21wb25lbnQuXG4uZHJvcGRvd24tbWVudS1sZWZ0IHtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IGF1dG87XG59XG5cbi8vIERyb3Bkb3duIHNlY3Rpb24gaGVhZGVyc1xuLmRyb3Bkb3duLWhlYWRlciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwYWRkaW5nOiAzcHggMjBweDtcbiAgZm9udC1zaXplOiAkZm9udC1zaXplLXNtYWxsO1xuICBsaW5lLWhlaWdodDogJGxpbmUtaGVpZ2h0LWJhc2U7XG4gIGNvbG9yOiAkZHJvcGRvd24taGVhZGVyLWNvbG9yO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwOyAvLyBhcyB3aXRoID4gbGkgPiBhXG59XG5cbi8vIEJhY2tkcm9wIHRvIGNhdGNoIGJvZHkgY2xpY2tzIG9uIG1vYmlsZSwgZXRjLlxuLmRyb3Bkb3duLWJhY2tkcm9wIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xuICB0b3A6IDA7XG4gIHotaW5kZXg6ICgkemluZGV4LWRyb3Bkb3duIC0gMTApO1xufVxuXG4vLyBSaWdodCBhbGlnbmVkIGRyb3Bkb3duc1xuLnB1bGwtcmlnaHQgPiAuZHJvcGRvd24tbWVudSB7XG4gIHJpZ2h0OiAwO1xuICBsZWZ0OiBhdXRvO1xufVxuXG4vLyBBbGxvdyBmb3IgZHJvcGRvd25zIHRvIGdvIGJvdHRvbSB1cCAoYWthLCBkcm9wdXAtbWVudSlcbi8vXG4vLyBKdXN0IGFkZCAuZHJvcHVwIGFmdGVyIHRoZSBzdGFuZGFyZCAuZHJvcGRvd24gY2xhc3MgYW5kIHlvdSdyZSBzZXQsIGJyby5cbi8vIFRPRE86IGFic3RyYWN0IHRoaXMgc28gdGhhdCB0aGUgbmF2YmFyIGZpeGVkIHN0eWxlcyBhcmUgbm90IHBsYWNlZCBoZXJlP1xuXG4uZHJvcHVwLFxuLm5hdmJhci1maXhlZC1ib3R0b20gLmRyb3Bkb3duIHtcbiAgLy8gUmV2ZXJzZSB0aGUgY2FyZXRcbiAgLmNhcmV0IHtcbiAgICBib3JkZXItdG9wOiAwO1xuICAgIGJvcmRlci1ib3R0b206ICRjYXJldC13aWR0aC1iYXNlIGRhc2hlZDtcbiAgICBib3JkZXItYm90dG9tOiAkY2FyZXQtd2lkdGgtYmFzZSBzb2xpZCBcXDk7IC8vIElFOFxuICAgIGNvbnRlbnQ6IFwiXCI7XG4gIH1cbiAgLy8gRGlmZmVyZW50IHBvc2l0aW9uaW5nIGZvciBib3R0b20gdXAgbWVudVxuICAuZHJvcGRvd24tbWVudSB7XG4gICAgdG9wOiBhdXRvO1xuICAgIGJvdHRvbTogMTAwJTtcbiAgICBtYXJnaW4tYm90dG9tOiAycHg7XG4gIH1cbn1cblxuXG4vLyBDb21wb25lbnQgYWxpZ25tZW50XG4vL1xuLy8gUmVpdGVyYXRlIHBlciBuYXZiYXIubGVzcyBhbmQgdGhlIG1vZGlmaWVkIGNvbXBvbmVudCBhbGlnbm1lbnQgdGhlcmUuXG5cbkBtZWRpYSAobWluLXdpZHRoOiAkZ3JpZC1mbG9hdC1icmVha3BvaW50KSB7XG4gIC5uYXZiYXItcmlnaHQge1xuICAgIC5kcm9wZG93bi1tZW51IHtcbiAgICAgIHJpZ2h0OiAwOyBsZWZ0OiBhdXRvO1xuICAgIH1cbiAgICAvLyBOZWNlc3NhcnkgZm9yIG92ZXJyaWRlcyBvZiB0aGUgZGVmYXVsdCByaWdodCBhbGlnbmVkIG1lbnUuXG4gICAgLy8gV2lsbCByZW1vdmUgY29tZSB2NCBpbiBhbGwgbGlrZWxpaG9vZC5cbiAgICAuZHJvcGRvd24tbWVudS1sZWZ0IHtcbiAgICAgIGxlZnQ6IDA7IHJpZ2h0OiBhdXRvO1xuICAgIH1cbiAgfVxufVxuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vbm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC1zYXNzL2Fzc2V0cy9zdHlsZXNoZWV0cy9ib290c3RyYXAvX2Ryb3Bkb3ducy5zY3NzIiwiLy8gSG9yaXpvbnRhbCBkaXZpZGVyc1xuLy9cbi8vIERpdmlkZXJzIChiYXNpY2FsbHkgYW4gaHIpIHdpdGhpbiBkcm9wZG93bnMgYW5kIG5hdiBsaXN0c1xuXG5AbWl4aW4gbmF2LWRpdmlkZXIoJGNvbG9yOiAjZTVlNWU1KSB7XG4gIGhlaWdodDogMXB4O1xuICBtYXJnaW46ICgoJGxpbmUtaGVpZ2h0LWNvbXB1dGVkIC8gMikgLSAxKSAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG59XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9ub2RlX21vZHVsZXMvYm9vdHN0cmFwLXNhc3MvYXNzZXRzL3N0eWxlc2hlZXRzL2Jvb3RzdHJhcC9taXhpbnMvX25hdi1kaXZpZGVyLnNjc3MiLCIvLyBSZXNldCBmaWx0ZXJzIGZvciBJRVxuLy9cbi8vIFdoZW4geW91IG5lZWQgdG8gcmVtb3ZlIGEgZ3JhZGllbnQgYmFja2dyb3VuZCwgZG8gbm90IGZvcmdldCB0byB1c2UgdGhpcyB0byByZXNldFxuLy8gdGhlIElFIGZpbHRlciBmb3IgSUU5IGFuZCBiZWxvdy5cblxuQG1peGluIHJlc2V0LWZpbHRlcigpIHtcbiAgZmlsdGVyOiBwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoZW5hYmxlZCA9IGZhbHNlKTtcbn1cblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL25vZGVfbW9kdWxlcy9ib290c3RyYXAtc2Fzcy9hc3NldHMvc3R5bGVzaGVldHMvYm9vdHN0cmFwL21peGlucy9fcmVzZXQtZmlsdGVyLnNjc3MiLCIvL1xuLy8gQnV0dG9uIGdyb3Vwc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLy8gTWFrZSB0aGUgZGl2IGJlaGF2ZSBsaWtlIGEgYnV0dG9uXG4uYnRuLWdyb3VwLFxuLmJ0bi1ncm91cC12ZXJ0aWNhbCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyAvLyBtYXRjaCAuYnRuIGFsaWdubWVudCBnaXZlbiBmb250LXNpemUgaGFjayBhYm92ZVxuICA+IC5idG4ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBmbG9hdDogbGVmdDtcbiAgICAvLyBCcmluZyB0aGUgXCJhY3RpdmVcIiBidXR0b24gdG8gdGhlIGZyb250XG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzLFxuICAgICY6YWN0aXZlLFxuICAgICYuYWN0aXZlIHtcbiAgICAgIHotaW5kZXg6IDI7XG4gICAgfVxuICB9XG59XG5cbi8vIFByZXZlbnQgZG91YmxlIGJvcmRlcnMgd2hlbiBidXR0b25zIGFyZSBuZXh0IHRvIGVhY2ggb3RoZXJcbi5idG4tZ3JvdXAge1xuICAuYnRuICsgLmJ0bixcbiAgLmJ0biArIC5idG4tZ3JvdXAsXG4gIC5idG4tZ3JvdXAgKyAuYnRuLFxuICAuYnRuLWdyb3VwICsgLmJ0bi1ncm91cCB7XG4gICAgbWFyZ2luLWxlZnQ6IC0xcHg7XG4gIH1cbn1cblxuLy8gT3B0aW9uYWw6IEdyb3VwIG11bHRpcGxlIGJ1dHRvbiBncm91cHMgdG9nZXRoZXIgZm9yIGEgdG9vbGJhclxuLmJ0bi10b29sYmFyIHtcbiAgbWFyZ2luLWxlZnQ6IC01cHg7IC8vIE9mZnNldCB0aGUgZmlyc3QgY2hpbGQncyBtYXJnaW5cbiAgQGluY2x1ZGUgY2xlYXJmaXg7XG5cbiAgLmJ0bixcbiAgLmJ0bi1ncm91cCxcbiAgLmlucHV0LWdyb3VwIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgfVxuICA+IC5idG4sXG4gID4gLmJ0bi1ncm91cCxcbiAgPiAuaW5wdXQtZ3JvdXAge1xuICAgIG1hcmdpbi1sZWZ0OiA1cHg7XG4gIH1cbn1cblxuLmJ0bi1ncm91cCA+IC5idG46bm90KDpmaXJzdC1jaGlsZCk6bm90KDpsYXN0LWNoaWxkKTpub3QoLmRyb3Bkb3duLXRvZ2dsZSkge1xuICBib3JkZXItcmFkaXVzOiAwO1xufVxuXG4vLyBTZXQgY29ybmVycyBpbmRpdmlkdWFsIGJlY2F1c2Ugc29tZXRpbWVzIGEgc2luZ2xlIGJ1dHRvbiBjYW4gYmUgaW4gYSAuYnRuLWdyb3VwIGFuZCB3ZSBuZWVkIDpmaXJzdC1jaGlsZCBhbmQgOmxhc3QtY2hpbGQgdG8gYm90aCBtYXRjaFxuLmJ0bi1ncm91cCA+IC5idG46Zmlyc3QtY2hpbGQge1xuICBtYXJnaW4tbGVmdDogMDtcbiAgJjpub3QoOmxhc3QtY2hpbGQpOm5vdCguZHJvcGRvd24tdG9nZ2xlKSB7XG4gICAgQGluY2x1ZGUgYm9yZGVyLXJpZ2h0LXJhZGl1cygwKTtcbiAgfVxufVxuLy8gTmVlZCAuZHJvcGRvd24tdG9nZ2xlIHNpbmNlIDpsYXN0LWNoaWxkIGRvZXNuJ3QgYXBwbHksIGdpdmVuIHRoYXQgYSAuZHJvcGRvd24tbWVudSBpcyB1c2VkIGltbWVkaWF0ZWx5IGFmdGVyIGl0XG4uYnRuLWdyb3VwID4gLmJ0bjpsYXN0LWNoaWxkOm5vdCg6Zmlyc3QtY2hpbGQpLFxuLmJ0bi1ncm91cCA+IC5kcm9wZG93bi10b2dnbGU6bm90KDpmaXJzdC1jaGlsZCkge1xuICBAaW5jbHVkZSBib3JkZXItbGVmdC1yYWRpdXMoMCk7XG59XG5cbi8vIEN1c3RvbSBlZGl0cyBmb3IgaW5jbHVkaW5nIGJ0bi1ncm91cHMgd2l0aGluIGJ0bi1ncm91cHMgKHVzZWZ1bCBmb3IgaW5jbHVkaW5nIGRyb3Bkb3duIGJ1dHRvbnMgd2l0aGluIGEgYnRuLWdyb3VwKVxuLmJ0bi1ncm91cCA+IC5idG4tZ3JvdXAge1xuICBmbG9hdDogbGVmdDtcbn1cbi5idG4tZ3JvdXAgPiAuYnRuLWdyb3VwOm5vdCg6Zmlyc3QtY2hpbGQpOm5vdCg6bGFzdC1jaGlsZCkgPiAuYnRuIHtcbiAgYm9yZGVyLXJhZGl1czogMDtcbn1cbi5idG4tZ3JvdXAgPiAuYnRuLWdyb3VwOmZpcnN0LWNoaWxkOm5vdCg6bGFzdC1jaGlsZCkge1xuICA+IC5idG46bGFzdC1jaGlsZCxcbiAgPiAuZHJvcGRvd24tdG9nZ2xlIHtcbiAgICBAaW5jbHVkZSBib3JkZXItcmlnaHQtcmFkaXVzKDApO1xuICB9XG59XG4uYnRuLWdyb3VwID4gLmJ0bi1ncm91cDpsYXN0LWNoaWxkOm5vdCg6Zmlyc3QtY2hpbGQpID4gLmJ0bjpmaXJzdC1jaGlsZCB7XG4gIEBpbmNsdWRlIGJvcmRlci1sZWZ0LXJhZGl1cygwKTtcbn1cblxuLy8gT24gYWN0aXZlIGFuZCBvcGVuLCBkb24ndCBzaG93IG91dGxpbmVcbi5idG4tZ3JvdXAgLmRyb3Bkb3duLXRvZ2dsZTphY3RpdmUsXG4uYnRuLWdyb3VwLm9wZW4gLmRyb3Bkb3duLXRvZ2dsZSB7XG4gIG91dGxpbmU6IDA7XG59XG5cblxuLy8gU2l6aW5nXG4vL1xuLy8gUmVtaXggdGhlIGRlZmF1bHQgYnV0dG9uIHNpemluZyBjbGFzc2VzIGludG8gbmV3IG9uZXMgZm9yIGVhc2llciBtYW5pcHVsYXRpb24uXG5cbi5idG4tZ3JvdXAteHMgPiAuYnRuIHsgQGV4dGVuZCAuYnRuLXhzOyB9XG4uYnRuLWdyb3VwLXNtID4gLmJ0biB7IEBleHRlbmQgLmJ0bi1zbTsgfVxuLmJ0bi1ncm91cC1sZyA+IC5idG4geyBAZXh0ZW5kIC5idG4tbGc7IH1cblxuXG4vLyBTcGxpdCBidXR0b24gZHJvcGRvd25zXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vIEdpdmUgdGhlIGxpbmUgYmV0d2VlbiBidXR0b25zIHNvbWUgZGVwdGhcbi5idG4tZ3JvdXAgPiAuYnRuICsgLmRyb3Bkb3duLXRvZ2dsZSB7XG4gIHBhZGRpbmctbGVmdDogOHB4O1xuICBwYWRkaW5nLXJpZ2h0OiA4cHg7XG59XG4uYnRuLWdyb3VwID4gLmJ0bi1sZyArIC5kcm9wZG93bi10b2dnbGUge1xuICBwYWRkaW5nLWxlZnQ6IDEycHg7XG4gIHBhZGRpbmctcmlnaHQ6IDEycHg7XG59XG5cbi8vIFRoZSBjbGlja2FibGUgYnV0dG9uIGZvciB0b2dnbGluZyB0aGUgbWVudVxuLy8gUmVtb3ZlIHRoZSBncmFkaWVudCBhbmQgc2V0IHRoZSBzYW1lIGluc2V0IHNoYWRvdyBhcyB0aGUgOmFjdGl2ZSBzdGF0ZVxuLmJ0bi1ncm91cC5vcGVuIC5kcm9wZG93bi10b2dnbGUge1xuICBAaW5jbHVkZSBib3gtc2hhZG93KGluc2V0IDAgM3B4IDVweCByZ2JhKDAsMCwwLC4xMjUpKTtcblxuICAvLyBTaG93IG5vIHNoYWRvdyBmb3IgYC5idG4tbGlua2Agc2luY2UgaXQgaGFzIG5vIG90aGVyIGJ1dHRvbiBzdHlsZXMuXG4gICYuYnRuLWxpbmsge1xuICAgIEBpbmNsdWRlIGJveC1zaGFkb3cobm9uZSk7XG4gIH1cbn1cblxuXG4vLyBSZXBvc2l0aW9uIHRoZSBjYXJldFxuLmJ0biAuY2FyZXQge1xuICBtYXJnaW4tbGVmdDogMDtcbn1cbi8vIENhcmV0cyBpbiBvdGhlciBidXR0b24gc2l6ZXNcbi5idG4tbGcgLmNhcmV0IHtcbiAgYm9yZGVyLXdpZHRoOiAkY2FyZXQtd2lkdGgtbGFyZ2UgJGNhcmV0LXdpZHRoLWxhcmdlIDA7XG4gIGJvcmRlci1ib3R0b20td2lkdGg6IDA7XG59XG4vLyBVcHNpZGUgZG93biBjYXJldHMgZm9yIC5kcm9wdXBcbi5kcm9wdXAgLmJ0bi1sZyAuY2FyZXQge1xuICBib3JkZXItd2lkdGg6IDAgJGNhcmV0LXdpZHRoLWxhcmdlICRjYXJldC13aWR0aC1sYXJnZTtcbn1cblxuXG4vLyBWZXJ0aWNhbCBidXR0b24gZ3JvdXBzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi5idG4tZ3JvdXAtdmVydGljYWwge1xuICA+IC5idG4sXG4gID4gLmJ0bi1ncm91cCxcbiAgPiAuYnRuLWdyb3VwID4gLmJ0biB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZmxvYXQ6IG5vbmU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICB9XG5cbiAgLy8gQ2xlYXIgZmxvYXRzIHNvIGRyb3Bkb3duIG1lbnVzIGNhbiBiZSBwcm9wZXJseSBwbGFjZWRcbiAgPiAuYnRuLWdyb3VwIHtcbiAgICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgICA+IC5idG4ge1xuICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgPiAuYnRuICsgLmJ0bixcbiAgPiAuYnRuICsgLmJ0bi1ncm91cCxcbiAgPiAuYnRuLWdyb3VwICsgLmJ0bixcbiAgPiAuYnRuLWdyb3VwICsgLmJ0bi1ncm91cCB7XG4gICAgbWFyZ2luLXRvcDogLTFweDtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgfVxufVxuXG4uYnRuLWdyb3VwLXZlcnRpY2FsID4gLmJ0biB7XG4gICY6bm90KDpmaXJzdC1jaGlsZCk6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgfVxuICAmOmZpcnN0LWNoaWxkOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgIEBpbmNsdWRlIGJvcmRlci10b3AtcmFkaXVzKCRidG4tYm9yZGVyLXJhZGl1cy1iYXNlKTtcbiAgICBAaW5jbHVkZSBib3JkZXItYm90dG9tLXJhZGl1cygwKTtcbiAgfVxuICAmOmxhc3QtY2hpbGQ6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgIEBpbmNsdWRlIGJvcmRlci10b3AtcmFkaXVzKDApO1xuICAgIEBpbmNsdWRlIGJvcmRlci1ib3R0b20tcmFkaXVzKCRidG4tYm9yZGVyLXJhZGl1cy1iYXNlKTtcbiAgfVxufVxuLmJ0bi1ncm91cC12ZXJ0aWNhbCA+IC5idG4tZ3JvdXA6bm90KDpmaXJzdC1jaGlsZCk6bm90KDpsYXN0LWNoaWxkKSA+IC5idG4ge1xuICBib3JkZXItcmFkaXVzOiAwO1xufVxuLmJ0bi1ncm91cC12ZXJ0aWNhbCA+IC5idG4tZ3JvdXA6Zmlyc3QtY2hpbGQ6bm90KDpsYXN0LWNoaWxkKSB7XG4gID4gLmJ0bjpsYXN0LWNoaWxkLFxuICA+IC5kcm9wZG93bi10b2dnbGUge1xuICAgIEBpbmNsdWRlIGJvcmRlci1ib3R0b20tcmFkaXVzKDApO1xuICB9XG59XG4uYnRuLWdyb3VwLXZlcnRpY2FsID4gLmJ0bi1ncm91cDpsYXN0LWNoaWxkOm5vdCg6Zmlyc3QtY2hpbGQpID4gLmJ0bjpmaXJzdC1jaGlsZCB7XG4gIEBpbmNsdWRlIGJvcmRlci10b3AtcmFkaXVzKDApO1xufVxuXG5cbi8vIEp1c3RpZmllZCBidXR0b24gZ3JvdXBzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi5idG4tZ3JvdXAtanVzdGlmaWVkIHtcbiAgZGlzcGxheTogdGFibGU7XG4gIHdpZHRoOiAxMDAlO1xuICB0YWJsZS1sYXlvdXQ6IGZpeGVkO1xuICBib3JkZXItY29sbGFwc2U6IHNlcGFyYXRlO1xuICA+IC5idG4sXG4gID4gLmJ0bi1ncm91cCB7XG4gICAgZmxvYXQ6IG5vbmU7XG4gICAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgICB3aWR0aDogMSU7XG4gIH1cbiAgPiAuYnRuLWdyb3VwIC5idG4ge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG5cbiAgPiAuYnRuLWdyb3VwIC5kcm9wZG93bi1tZW51IHtcbiAgICBsZWZ0OiBhdXRvO1xuICB9XG59XG5cblxuLy8gQ2hlY2tib3ggYW5kIHJhZGlvIG9wdGlvbnNcbi8vXG4vLyBJbiBvcmRlciB0byBzdXBwb3J0IHRoZSBicm93c2VyJ3MgZm9ybSB2YWxpZGF0aW9uIGZlZWRiYWNrLCBwb3dlcmVkIGJ5IHRoZVxuLy8gYHJlcXVpcmVkYCBhdHRyaWJ1dGUsIHdlIGhhdmUgdG8gXCJoaWRlXCIgdGhlIGlucHV0cyB2aWEgYGNsaXBgLiBXZSBjYW5ub3QgdXNlXG4vLyBgZGlzcGxheTogbm9uZTtgIG9yIGB2aXNpYmlsaXR5OiBoaWRkZW47YCBhcyB0aGF0IGFsc28gaGlkZXMgdGhlIHBvcG92ZXIuXG4vLyBTaW1wbHkgdmlzdWFsbHkgaGlkaW5nIHRoZSBpbnB1dHMgdmlhIGBvcGFjaXR5YCB3b3VsZCBsZWF2ZSB0aGVtIGNsaWNrYWJsZSBpblxuLy8gY2VydGFpbiBjYXNlcyB3aGljaCBpcyBwcmV2ZW50ZWQgYnkgdXNpbmcgYGNsaXBgIGFuZCBgcG9pbnRlci1ldmVudHNgLlxuLy8gVGhpcyB3YXksIHdlIGVuc3VyZSBhIERPTSBlbGVtZW50IGlzIHZpc2libGUgdG8gcG9zaXRpb24gdGhlIHBvcG92ZXIgZnJvbS5cbi8vXG4vLyBTZWUgaHR0cHM6Ly9naXRodWIuY29tL3R3YnMvYm9vdHN0cmFwL3B1bGwvMTI3OTQgYW5kXG4vLyBodHRwczovL2dpdGh1Yi5jb20vdHdicy9ib290c3RyYXAvcHVsbC8xNDU1OSBmb3IgbW9yZSBpbmZvcm1hdGlvbi5cblxuW2RhdGEtdG9nZ2xlPVwiYnV0dG9uc1wiXSB7XG4gID4gLmJ0bixcbiAgPiAuYnRuLWdyb3VwID4gLmJ0biB7XG4gICAgaW5wdXRbdHlwZT1cInJhZGlvXCJdLFxuICAgIGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBjbGlwOiByZWN0KDAsMCwwLDApO1xuICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgfVxuICB9XG59XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9ub2RlX21vZHVsZXMvYm9vdHN0cmFwLXNhc3MvYXNzZXRzL3N0eWxlc2hlZXRzL2Jvb3RzdHJhcC9fYnV0dG9uLWdyb3Vwcy5zY3NzIiwiLy8gU2luZ2xlIHNpZGUgYm9yZGVyLXJhZGl1c1xuXG5AbWl4aW4gYm9yZGVyLXRvcC1yYWRpdXMoJHJhZGl1cykge1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogJHJhZGl1cztcbiAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6ICRyYWRpdXM7XG59XG5AbWl4aW4gYm9yZGVyLXJpZ2h0LXJhZGl1cygkcmFkaXVzKSB7XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAkcmFkaXVzO1xuICAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogJHJhZGl1cztcbn1cbkBtaXhpbiBib3JkZXItYm90dG9tLXJhZGl1cygkcmFkaXVzKSB7XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAkcmFkaXVzO1xuICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogJHJhZGl1cztcbn1cbkBtaXhpbiBib3JkZXItbGVmdC1yYWRpdXMoJHJhZGl1cykge1xuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAkcmFkaXVzO1xuICAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAkcmFkaXVzO1xufVxuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vbm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC1zYXNzL2Fzc2V0cy9zdHlsZXNoZWV0cy9ib290c3RyYXAvbWl4aW5zL19ib3JkZXItcmFkaXVzLnNjc3MiLCIvL1xuLy8gSW5wdXQgZ3JvdXBzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vLyBCYXNlIHN0eWxlc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLmlucHV0LWdyb3VwIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyAvLyBGb3IgZHJvcGRvd25zXG4gIGRpc3BsYXk6IHRhYmxlO1xuICBib3JkZXItY29sbGFwc2U6IHNlcGFyYXRlOyAvLyBwcmV2ZW50IGlucHV0IGdyb3VwcyBmcm9tIGluaGVyaXRpbmcgYm9yZGVyIHN0eWxlcyBmcm9tIHRhYmxlIGNlbGxzIHdoZW4gcGxhY2VkIHdpdGhpbiBhIHRhYmxlXG5cbiAgLy8gVW5kbyBwYWRkaW5nIGFuZCBmbG9hdCBvZiBncmlkIGNsYXNzZXNcbiAgJltjbGFzcyo9XCJjb2wtXCJdIHtcbiAgICBmbG9hdDogbm9uZTtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgcGFkZGluZy1yaWdodDogMDtcbiAgfVxuXG4gIC5mb3JtLWNvbnRyb2wge1xuICAgIC8vIEVuc3VyZSB0aGF0IHRoZSBpbnB1dCBpcyBhbHdheXMgYWJvdmUgdGhlICphcHBlbmRlZCogYWRkb24gYnV0dG9uIGZvclxuICAgIC8vIHByb3BlciBib3JkZXIgY29sb3JzLlxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB6LWluZGV4OiAyO1xuXG4gICAgLy8gSUU5IGZ1YmFycyB0aGUgcGxhY2Vob2xkZXIgYXR0cmlidXRlIGluIHRleHQgaW5wdXRzIGFuZCB0aGUgYXJyb3dzIG9uXG4gICAgLy8gc2VsZWN0IGVsZW1lbnRzIGluIGlucHV0IGdyb3Vwcy4gVG8gZml4IGl0LCB3ZSBmbG9hdCB0aGUgaW5wdXQuIERldGFpbHM6XG4gICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3R3YnMvYm9vdHN0cmFwL2lzc3Vlcy8xMTU2MSNpc3N1ZWNvbW1lbnQtMjg5MzY4NTVcbiAgICBmbG9hdDogbGVmdDtcblxuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG5cbiAgICAmOmZvY3VzIHtcbiAgICAgIHotaW5kZXg6IDM7XG4gICAgfVxuICB9XG59XG5cbi8vIFNpemluZyBvcHRpb25zXG4vL1xuLy8gUmVtaXggdGhlIGRlZmF1bHQgZm9ybSBjb250cm9sIHNpemluZyBjbGFzc2VzIGludG8gbmV3IG9uZXMgZm9yIGVhc2llclxuLy8gbWFuaXB1bGF0aW9uLlxuXG4uaW5wdXQtZ3JvdXAtbGcgPiAuZm9ybS1jb250cm9sLFxuLmlucHV0LWdyb3VwLWxnID4gLmlucHV0LWdyb3VwLWFkZG9uLFxuLmlucHV0LWdyb3VwLWxnID4gLmlucHV0LWdyb3VwLWJ0biA+IC5idG4ge1xuICBAZXh0ZW5kIC5pbnB1dC1sZztcbn1cbi5pbnB1dC1ncm91cC1zbSA+IC5mb3JtLWNvbnRyb2wsXG4uaW5wdXQtZ3JvdXAtc20gPiAuaW5wdXQtZ3JvdXAtYWRkb24sXG4uaW5wdXQtZ3JvdXAtc20gPiAuaW5wdXQtZ3JvdXAtYnRuID4gLmJ0biB7XG4gIEBleHRlbmQgLmlucHV0LXNtO1xufVxuXG5cbi8vIERpc3BsYXkgYXMgdGFibGUtY2VsbFxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLmlucHV0LWdyb3VwLWFkZG9uLFxuLmlucHV0LWdyb3VwLWJ0bixcbi5pbnB1dC1ncm91cCAuZm9ybS1jb250cm9sIHtcbiAgZGlzcGxheTogdGFibGUtY2VsbDtcblxuICAmOm5vdCg6Zmlyc3QtY2hpbGQpOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gIH1cbn1cbi8vIEFkZG9uIGFuZCBhZGRvbiB3cmFwcGVyIGZvciBidXR0b25zXG4uaW5wdXQtZ3JvdXAtYWRkb24sXG4uaW5wdXQtZ3JvdXAtYnRuIHtcbiAgd2lkdGg6IDElO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyAvLyBNYXRjaCB0aGUgaW5wdXRzXG59XG5cbi8vIFRleHQgaW5wdXQgZ3JvdXBzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4uaW5wdXQtZ3JvdXAtYWRkb24ge1xuICBwYWRkaW5nOiAkcGFkZGluZy1iYXNlLXZlcnRpY2FsICRwYWRkaW5nLWJhc2UtaG9yaXpvbnRhbDtcbiAgZm9udC1zaXplOiAkZm9udC1zaXplLWJhc2U7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBjb2xvcjogJGlucHV0LWNvbG9yO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGJhY2tncm91bmQtY29sb3I6ICRpbnB1dC1ncm91cC1hZGRvbi1iZztcbiAgYm9yZGVyOiAxcHggc29saWQgJGlucHV0LWdyb3VwLWFkZG9uLWJvcmRlci1jb2xvcjtcbiAgYm9yZGVyLXJhZGl1czogJGlucHV0LWJvcmRlci1yYWRpdXM7XG5cbiAgLy8gU2l6aW5nXG4gICYuaW5wdXQtc20ge1xuICAgIHBhZGRpbmc6ICRwYWRkaW5nLXNtYWxsLXZlcnRpY2FsICRwYWRkaW5nLXNtYWxsLWhvcml6b250YWw7XG4gICAgZm9udC1zaXplOiAkZm9udC1zaXplLXNtYWxsO1xuICAgIGJvcmRlci1yYWRpdXM6ICRpbnB1dC1ib3JkZXItcmFkaXVzLXNtYWxsO1xuICB9XG4gICYuaW5wdXQtbGcge1xuICAgIHBhZGRpbmc6ICRwYWRkaW5nLWxhcmdlLXZlcnRpY2FsICRwYWRkaW5nLWxhcmdlLWhvcml6b250YWw7XG4gICAgZm9udC1zaXplOiAkZm9udC1zaXplLWxhcmdlO1xuICAgIGJvcmRlci1yYWRpdXM6ICRpbnB1dC1ib3JkZXItcmFkaXVzLWxhcmdlO1xuICB9XG5cbiAgLy8gTnVrZSBkZWZhdWx0IG1hcmdpbnMgZnJvbSBjaGVja2JveGVzIGFuZCByYWRpb3MgdG8gdmVydGljYWxseSBjZW50ZXIgd2l0aGluLlxuICBpbnB1dFt0eXBlPVwicmFkaW9cIl0sXG4gIGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSB7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgfVxufVxuXG4vLyBSZXNldCByb3VuZGVkIGNvcm5lcnNcbi5pbnB1dC1ncm91cCAuZm9ybS1jb250cm9sOmZpcnN0LWNoaWxkLFxuLmlucHV0LWdyb3VwLWFkZG9uOmZpcnN0LWNoaWxkLFxuLmlucHV0LWdyb3VwLWJ0bjpmaXJzdC1jaGlsZCA+IC5idG4sXG4uaW5wdXQtZ3JvdXAtYnRuOmZpcnN0LWNoaWxkID4gLmJ0bi1ncm91cCA+IC5idG4sXG4uaW5wdXQtZ3JvdXAtYnRuOmZpcnN0LWNoaWxkID4gLmRyb3Bkb3duLXRvZ2dsZSxcbi5pbnB1dC1ncm91cC1idG46bGFzdC1jaGlsZCA+IC5idG46bm90KDpsYXN0LWNoaWxkKTpub3QoLmRyb3Bkb3duLXRvZ2dsZSksXG4uaW5wdXQtZ3JvdXAtYnRuOmxhc3QtY2hpbGQgPiAuYnRuLWdyb3VwOm5vdCg6bGFzdC1jaGlsZCkgPiAuYnRuIHtcbiAgQGluY2x1ZGUgYm9yZGVyLXJpZ2h0LXJhZGl1cygwKTtcbn1cbi5pbnB1dC1ncm91cC1hZGRvbjpmaXJzdC1jaGlsZCB7XG4gIGJvcmRlci1yaWdodDogMDtcbn1cbi5pbnB1dC1ncm91cCAuZm9ybS1jb250cm9sOmxhc3QtY2hpbGQsXG4uaW5wdXQtZ3JvdXAtYWRkb246bGFzdC1jaGlsZCxcbi5pbnB1dC1ncm91cC1idG46bGFzdC1jaGlsZCA+IC5idG4sXG4uaW5wdXQtZ3JvdXAtYnRuOmxhc3QtY2hpbGQgPiAuYnRuLWdyb3VwID4gLmJ0bixcbi5pbnB1dC1ncm91cC1idG46bGFzdC1jaGlsZCA+IC5kcm9wZG93bi10b2dnbGUsXG4uaW5wdXQtZ3JvdXAtYnRuOmZpcnN0LWNoaWxkID4gLmJ0bjpub3QoOmZpcnN0LWNoaWxkKSxcbi5pbnB1dC1ncm91cC1idG46Zmlyc3QtY2hpbGQgPiAuYnRuLWdyb3VwOm5vdCg6Zmlyc3QtY2hpbGQpID4gLmJ0biB7XG4gIEBpbmNsdWRlIGJvcmRlci1sZWZ0LXJhZGl1cygwKTtcbn1cbi5pbnB1dC1ncm91cC1hZGRvbjpsYXN0LWNoaWxkIHtcbiAgYm9yZGVyLWxlZnQ6IDA7XG59XG5cbi8vIEJ1dHRvbiBpbnB1dCBncm91cHNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi5pbnB1dC1ncm91cC1idG4ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIC8vIEphbmtpbHkgcHJldmVudCBpbnB1dCBidXR0b24gZ3JvdXBzIGZyb20gd3JhcHBpbmcgd2l0aCBgd2hpdGUtc3BhY2VgIGFuZFxuICAvLyBgZm9udC1zaXplYCBpbiBjb21iaW5hdGlvbiB3aXRoIGBpbmxpbmUtYmxvY2tgIG9uIGJ1dHRvbnMuXG4gIGZvbnQtc2l6ZTogMDtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcblxuICAvLyBOZWdhdGl2ZSBtYXJnaW4gZm9yIHNwYWNpbmcsIHBvc2l0aW9uIGZvciBicmluZ2luZyBob3ZlcmVkL2ZvY3VzZWQvYWN0aXZlZFxuICAvLyBlbGVtZW50IGFib3ZlIHRoZSBzaWJsaW5ncy5cbiAgPiAuYnRuIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgKyAuYnRuIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAtMXB4O1xuICAgIH1cbiAgICAvLyBCcmluZyB0aGUgXCJhY3RpdmVcIiBidXR0b24gdG8gdGhlIGZyb250XG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzLFxuICAgICY6YWN0aXZlIHtcbiAgICAgIHotaW5kZXg6IDI7XG4gICAgfVxuICB9XG5cbiAgLy8gTmVnYXRpdmUgbWFyZ2luIHRvIG9ubHkgaGF2ZSBhIDFweCBib3JkZXIgYmV0d2VlbiB0aGUgdHdvXG4gICY6Zmlyc3QtY2hpbGQge1xuICAgID4gLmJ0bixcbiAgICA+IC5idG4tZ3JvdXAge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAtMXB4O1xuICAgIH1cbiAgfVxuICAmOmxhc3QtY2hpbGQge1xuICAgID4gLmJ0bixcbiAgICA+IC5idG4tZ3JvdXAge1xuICAgICAgei1pbmRleDogMjtcbiAgICAgIG1hcmdpbi1sZWZ0OiAtMXB4O1xuICAgIH1cbiAgfVxufVxuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vbm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC1zYXNzL2Fzc2V0cy9zdHlsZXNoZWV0cy9ib290c3RyYXAvX2lucHV0LWdyb3Vwcy5zY3NzIiwiLy9cbi8vIE5hdnNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cblxuLy8gQmFzZSBjbGFzc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLm5hdiB7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIHBhZGRpbmctbGVmdDogMDsgLy8gT3ZlcnJpZGUgZGVmYXVsdCB1bC9vbFxuICBsaXN0LXN0eWxlOiBub25lO1xuICBAaW5jbHVkZSBjbGVhcmZpeDtcblxuICA+IGxpIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICA+IGEge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBwYWRkaW5nOiAkbmF2LWxpbmstcGFkZGluZztcbiAgICAgICY6aG92ZXIsXG4gICAgICAmOmZvY3VzIHtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbmF2LWxpbmstaG92ZXItYmc7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gRGlzYWJsZWQgc3RhdGUgc2V0cyB0ZXh0IHRvIGdyYXkgYW5kIG51a2VzIGhvdmVyL3RhYiBlZmZlY3RzXG4gICAgJi5kaXNhYmxlZCA+IGEge1xuICAgICAgY29sb3I6ICRuYXYtZGlzYWJsZWQtbGluay1jb2xvcjtcblxuICAgICAgJjpob3ZlcixcbiAgICAgICY6Zm9jdXMge1xuICAgICAgICBjb2xvcjogJG5hdi1kaXNhYmxlZC1saW5rLWhvdmVyLWNvbG9yO1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBjdXJzb3I6ICRjdXJzb3ItZGlzYWJsZWQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gT3BlbiBkcm9wZG93bnNcbiAgLm9wZW4gPiBhIHtcbiAgICAmLFxuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbmF2LWxpbmstaG92ZXItYmc7XG4gICAgICBib3JkZXItY29sb3I6ICRsaW5rLWNvbG9yO1xuICAgIH1cbiAgfVxuXG4gIC8vIE5hdiBkaXZpZGVycyAoZGVwcmVjYXRlZCB3aXRoIHYzLjAuMSlcbiAgLy9cbiAgLy8gVGhpcyBzaG91bGQgaGF2ZSBiZWVuIHJlbW92ZWQgaW4gdjMgd2l0aCB0aGUgZHJvcHBpbmcgb2YgYC5uYXYtbGlzdGAsIGJ1dFxuICAvLyB3ZSBtaXNzZWQgaXQuIFdlIGRvbid0IGN1cnJlbnRseSBzdXBwb3J0IHRoaXMgYW55d2hlcmUsIGJ1dCBpbiB0aGUgaW50ZXJlc3RcbiAgLy8gb2YgbWFpbnRhaW5pbmcgYmFja3dhcmQgY29tcGF0aWJpbGl0eSBpbiBjYXNlIHlvdSB1c2UgaXQsIGl0J3MgZGVwcmVjYXRlZC5cbiAgLm5hdi1kaXZpZGVyIHtcbiAgICBAaW5jbHVkZSBuYXYtZGl2aWRlcjtcbiAgfVxuXG4gIC8vIFByZXZlbnQgSUU4IGZyb20gbWlzcGxhY2luZyBpbWdzXG4gIC8vXG4gIC8vIFNlZSBodHRwczovL2dpdGh1Yi5jb20vaDVicC9odG1sNS1ib2lsZXJwbGF0ZS9pc3N1ZXMvOTg0I2lzc3VlY29tbWVudC0zOTg1OTg5XG4gID4gbGkgPiBhID4gaW1nIHtcbiAgICBtYXgtd2lkdGg6IG5vbmU7XG4gIH1cbn1cblxuXG4vLyBUYWJzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vIEdpdmUgdGhlIHRhYnMgc29tZXRoaW5nIHRvIHNpdCBvblxuLm5hdi10YWJzIHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRuYXYtdGFicy1ib3JkZXItY29sb3I7XG4gID4gbGkge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIC8vIE1ha2UgdGhlIGxpc3QtaXRlbXMgb3ZlcmxheSB0aGUgYm90dG9tIGJvcmRlclxuICAgIG1hcmdpbi1ib3R0b206IC0xcHg7XG5cbiAgICAvLyBBY3R1YWwgdGFicyAoYXMgbGlua3MpXG4gICAgPiBhIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMnB4O1xuICAgICAgbGluZS1oZWlnaHQ6ICRsaW5lLWhlaWdodC1iYXNlO1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cy1iYXNlICRib3JkZXItcmFkaXVzLWJhc2UgMCAwO1xuICAgICAgJjpob3ZlciB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJG5hdi10YWJzLWxpbmstaG92ZXItYm9yZGVyLWNvbG9yICRuYXYtdGFicy1saW5rLWhvdmVyLWJvcmRlci1jb2xvciAkbmF2LXRhYnMtYm9yZGVyLWNvbG9yO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEFjdGl2ZSBzdGF0ZSwgYW5kIGl0cyA6aG92ZXIgdG8gb3ZlcnJpZGUgbm9ybWFsIDpob3ZlclxuICAgICYuYWN0aXZlID4gYSB7XG4gICAgICAmLFxuICAgICAgJjpob3ZlcixcbiAgICAgICY6Zm9jdXMge1xuICAgICAgICBjb2xvcjogJG5hdi10YWJzLWFjdGl2ZS1saW5rLWhvdmVyLWNvbG9yO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbmF2LXRhYnMtYWN0aXZlLWxpbmstaG92ZXItYmc7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRuYXYtdGFicy1hY3RpdmUtbGluay1ob3Zlci1ib3JkZXItY29sb3I7XG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIC8vIHB1bGxpbmcgdGhpcyBpbiBtYWlubHkgZm9yIGxlc3Mgc2hvcnRoYW5kXG4gICYubmF2LWp1c3RpZmllZCB7XG4gICAgQGV4dGVuZCAubmF2LWp1c3RpZmllZDtcbiAgICBAZXh0ZW5kIC5uYXYtdGFicy1qdXN0aWZpZWQ7XG4gIH1cbn1cblxuXG4vLyBQaWxsc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLm5hdi1waWxscyB7XG4gID4gbGkge1xuICAgIGZsb2F0OiBsZWZ0O1xuXG4gICAgLy8gTGlua3MgcmVuZGVyZWQgYXMgcGlsbHNcbiAgICA+IGEge1xuICAgICAgYm9yZGVyLXJhZGl1czogJG5hdi1waWxscy1ib3JkZXItcmFkaXVzO1xuICAgIH1cbiAgICArIGxpIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAycHg7XG4gICAgfVxuXG4gICAgLy8gQWN0aXZlIHN0YXRlXG4gICAgJi5hY3RpdmUgPiBhIHtcbiAgICAgICYsXG4gICAgICAmOmhvdmVyLFxuICAgICAgJjpmb2N1cyB7XG4gICAgICAgIGNvbG9yOiAkbmF2LXBpbGxzLWFjdGl2ZS1saW5rLWhvdmVyLWNvbG9yO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbmF2LXBpbGxzLWFjdGl2ZS1saW5rLWhvdmVyLWJnO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5cbi8vIFN0YWNrZWQgcGlsbHNcbi5uYXYtc3RhY2tlZCB7XG4gID4gbGkge1xuICAgIGZsb2F0OiBub25lO1xuICAgICsgbGkge1xuICAgICAgbWFyZ2luLXRvcDogMnB4O1xuICAgICAgbWFyZ2luLWxlZnQ6IDA7IC8vIG5vIG5lZWQgZm9yIHRoaXMgZ2FwIGJldHdlZW4gbmF2IGl0ZW1zXG4gICAgfVxuICB9XG59XG5cblxuLy8gTmF2IHZhcmlhdGlvbnNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vIEp1c3RpZmllZCBuYXYgbGlua3Ncbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLm5hdi1qdXN0aWZpZWQge1xuICB3aWR0aDogMTAwJTtcblxuICA+IGxpIHtcbiAgICBmbG9hdDogbm9uZTtcbiAgICA+IGEge1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgbWFyZ2luLWJvdHRvbTogNXB4O1xuICAgIH1cbiAgfVxuXG4gID4gLmRyb3Bkb3duIC5kcm9wZG93bi1tZW51IHtcbiAgICB0b3A6IGF1dG87XG4gICAgbGVmdDogYXV0bztcbiAgfVxuXG4gIEBtZWRpYSAobWluLXdpZHRoOiAkc2NyZWVuLXNtLW1pbikge1xuICAgID4gbGkge1xuICAgICAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgICAgIHdpZHRoOiAxJTtcbiAgICAgID4gYSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vIE1vdmUgYm9yZGVycyB0byBhbmNob3JzIGluc3RlYWQgb2YgYm90dG9tIG9mIGxpc3Rcbi8vXG4vLyBNaXhpbiBmb3IgYWRkaW5nIG9uIHRvcCB0aGUgc2hhcmVkIGAubmF2LWp1c3RpZmllZGAgc3R5bGVzIGZvciBvdXIgdGFic1xuLm5hdi10YWJzLWp1c3RpZmllZCB7XG4gIGJvcmRlci1ib3R0b206IDA7XG5cbiAgPiBsaSA+IGEge1xuICAgIC8vIE92ZXJyaWRlIG1hcmdpbiBmcm9tIC5uYXYtdGFic1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cy1iYXNlO1xuICB9XG5cbiAgPiAuYWN0aXZlID4gYSxcbiAgPiAuYWN0aXZlID4gYTpob3ZlcixcbiAgPiAuYWN0aXZlID4gYTpmb2N1cyB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJG5hdi10YWJzLWp1c3RpZmllZC1saW5rLWJvcmRlci1jb2xvcjtcbiAgfVxuXG4gIEBtZWRpYSAobWluLXdpZHRoOiAkc2NyZWVuLXNtLW1pbikge1xuICAgID4gbGkgPiBhIHtcbiAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkbmF2LXRhYnMtanVzdGlmaWVkLWxpbmstYm9yZGVyLWNvbG9yO1xuICAgICAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXMtYmFzZSAkYm9yZGVyLXJhZGl1cy1iYXNlIDAgMDtcbiAgICB9XG4gICAgPiAuYWN0aXZlID4gYSxcbiAgICA+IC5hY3RpdmUgPiBhOmhvdmVyLFxuICAgID4gLmFjdGl2ZSA+IGE6Zm9jdXMge1xuICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJG5hdi10YWJzLWp1c3RpZmllZC1hY3RpdmUtbGluay1ib3JkZXItY29sb3I7XG4gICAgfVxuICB9XG59XG5cblxuLy8gVGFiYmFibGUgdGFic1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vLyBIaWRlIHRhYmJhYmxlIHBhbmVzIHRvIHN0YXJ0LCBzaG93IHRoZW0gd2hlbiBgLmFjdGl2ZWBcbi50YWItY29udGVudCB7XG4gID4gLnRhYi1wYW5lIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG4gID4gLmFjdGl2ZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbn1cblxuXG4vLyBEcm9wZG93bnNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLy8gU3BlY2lmaWMgZHJvcGRvd25zXG4ubmF2LXRhYnMgLmRyb3Bkb3duLW1lbnUge1xuICAvLyBtYWtlIGRyb3Bkb3duIGJvcmRlciBvdmVybGFwIHRhYiBib3JkZXJcbiAgbWFyZ2luLXRvcDogLTFweDtcbiAgLy8gUmVtb3ZlIHRoZSB0b3Agcm91bmRlZCBjb3JuZXJzIGhlcmUgc2luY2UgdGhlcmUgaXMgYSBoYXJkIGVkZ2UgYWJvdmUgdGhlIG1lbnVcbiAgQGluY2x1ZGUgYm9yZGVyLXRvcC1yYWRpdXMoMCk7XG59XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9ub2RlX21vZHVsZXMvYm9vdHN0cmFwLXNhc3MvYXNzZXRzL3N0eWxlc2hlZXRzL2Jvb3RzdHJhcC9fbmF2cy5zY3NzIiwiLy9cbi8vIE5hdmJhcnNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cblxuLy8gV3JhcHBlciBhbmQgYmFzZSBjbGFzc1xuLy9cbi8vIFByb3ZpZGUgYSBzdGF0aWMgbmF2YmFyIGZyb20gd2hpY2ggd2UgZXhwYW5kIHRvIGNyZWF0ZSBmdWxsLXdpZHRoLCBmaXhlZCwgYW5kXG4vLyBvdGhlciBuYXZiYXIgdmFyaWF0aW9ucy5cblxuLm5hdmJhciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWluLWhlaWdodDogJG5hdmJhci1oZWlnaHQ7IC8vIEVuc3VyZSBhIG5hdmJhciBhbHdheXMgc2hvd3MgKGUuZy4sIHdpdGhvdXQgYSAubmF2YmFyLWJyYW5kIGluIGNvbGxhcHNlZCBtb2RlKVxuICBtYXJnaW4tYm90dG9tOiAkbmF2YmFyLW1hcmdpbi1ib3R0b207XG4gIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuXG4gIC8vIFByZXZlbnQgZmxvYXRzIGZyb20gYnJlYWtpbmcgdGhlIG5hdmJhclxuICBAaW5jbHVkZSBjbGVhcmZpeDtcblxuICBAbWVkaWEgKG1pbi13aWR0aDogJGdyaWQtZmxvYXQtYnJlYWtwb2ludCkge1xuICAgIGJvcmRlci1yYWRpdXM6ICRuYXZiYXItYm9yZGVyLXJhZGl1cztcbiAgfVxufVxuXG5cbi8vIE5hdmJhciBoZWFkaW5nXG4vL1xuLy8gR3JvdXBzIGAubmF2YmFyLWJyYW5kYCBhbmQgYC5uYXZiYXItdG9nZ2xlYCBpbnRvIGEgc2luZ2xlIGNvbXBvbmVudCBmb3IgZWFzeVxuLy8gc3R5bGluZyBvZiByZXNwb25zaXZlIGFzcGVjdHMuXG5cbi5uYXZiYXItaGVhZGVyIHtcbiAgQGluY2x1ZGUgY2xlYXJmaXg7XG5cbiAgQG1lZGlhIChtaW4td2lkdGg6ICRncmlkLWZsb2F0LWJyZWFrcG9pbnQpIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgfVxufVxuXG5cbi8vIE5hdmJhciBjb2xsYXBzZSAoYm9keSlcbi8vXG4vLyBHcm91cCB5b3VyIG5hdmJhciBjb250ZW50IGludG8gdGhpcyBmb3IgZWFzeSBjb2xsYXBzaW5nIGFuZCBleHBhbmRpbmcgYWNyb3NzXG4vLyB2YXJpb3VzIGRldmljZSBzaXplcy4gQnkgZGVmYXVsdCwgdGhpcyBjb250ZW50IGlzIGNvbGxhcHNlZCB3aGVuIDw3NjhweCwgYnV0XG4vLyB3aWxsIGV4cGFuZCBwYXN0IHRoYXQgZm9yIGEgaG9yaXpvbnRhbCBkaXNwbGF5LlxuLy9cbi8vIFRvIHN0YXJ0IChvbiBtb2JpbGUgZGV2aWNlcykgdGhlIG5hdmJhciBsaW5rcywgZm9ybXMsIGFuZCBidXR0b25zIGFyZSBzdGFja2VkXG4vLyB2ZXJ0aWNhbGx5IGFuZCBpbmNsdWRlIGEgYG1heC1oZWlnaHRgIHRvIG92ZXJmbG93IGluIGNhc2UgeW91IGhhdmUgdG9vIG11Y2hcbi8vIGNvbnRlbnQgZm9yIHRoZSB1c2VyJ3Mgdmlld3BvcnQuXG5cbi5uYXZiYXItY29sbGFwc2Uge1xuICBvdmVyZmxvdy14OiB2aXNpYmxlO1xuICBwYWRkaW5nLXJpZ2h0OiAkbmF2YmFyLXBhZGRpbmctaG9yaXpvbnRhbDtcbiAgcGFkZGluZy1sZWZ0OiAgJG5hdmJhci1wYWRkaW5nLWhvcml6b250YWw7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMCByZ2JhKDI1NSwyNTUsMjU1LC4xKTtcbiAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcblxuICAmLmluIHtcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xuICB9XG5cbiAgQG1lZGlhIChtaW4td2lkdGg6ICRncmlkLWZsb2F0LWJyZWFrcG9pbnQpIHtcbiAgICB3aWR0aDogYXV0bztcbiAgICBib3JkZXItdG9wOiAwO1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG5cbiAgICAmLmNvbGxhcHNlIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gICAgICBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICAgIHBhZGRpbmctYm90dG9tOiAwOyAvLyBPdmVycmlkZSBkZWZhdWx0IHNldHRpbmdcbiAgICAgIG92ZXJmbG93OiB2aXNpYmxlICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgJi5pbiB7XG4gICAgICBvdmVyZmxvdy15OiB2aXNpYmxlO1xuICAgIH1cblxuICAgIC8vIFVuZG8gdGhlIGNvbGxhcHNlIHNpZGUgcGFkZGluZyBmb3IgbmF2YmFycyB3aXRoIGNvbnRhaW5lcnMgdG8gZW5zdXJlXG4gICAgLy8gYWxpZ25tZW50IG9mIHJpZ2h0LWFsaWduZWQgY29udGVudHMuXG4gICAgLm5hdmJhci1maXhlZC10b3AgJixcbiAgICAubmF2YmFyLXN0YXRpYy10b3AgJixcbiAgICAubmF2YmFyLWZpeGVkLWJvdHRvbSAmIHtcbiAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgfVxuICB9XG59XG5cbi5uYXZiYXItZml4ZWQtdG9wLFxuLm5hdmJhci1maXhlZC1ib3R0b20ge1xuICAubmF2YmFyLWNvbGxhcHNlIHtcbiAgICBtYXgtaGVpZ2h0OiAkbmF2YmFyLWNvbGxhcHNlLW1heC1oZWlnaHQ7XG5cbiAgICBAbWVkaWEgKG1heC1kZXZpY2Utd2lkdGg6ICRzY3JlZW4teHMtbWluKSBhbmQgKG9yaWVudGF0aW9uOiBsYW5kc2NhcGUpIHtcbiAgICAgIG1heC1oZWlnaHQ6IDIwMHB4O1xuICAgIH1cbiAgfVxufVxuXG5cbi8vIEJvdGggbmF2YmFyIGhlYWRlciBhbmQgY29sbGFwc2Vcbi8vXG4vLyBXaGVuIGEgY29udGFpbmVyIGlzIHByZXNlbnQsIGNoYW5nZSB0aGUgYmVoYXZpb3Igb2YgdGhlIGhlYWRlciBhbmQgY29sbGFwc2UuXG5cbi5jb250YWluZXIsXG4uY29udGFpbmVyLWZsdWlkIHtcbiAgPiAubmF2YmFyLWhlYWRlcixcbiAgPiAubmF2YmFyLWNvbGxhcHNlIHtcbiAgICBtYXJnaW4tcmlnaHQ6IC0kbmF2YmFyLXBhZGRpbmctaG9yaXpvbnRhbDtcbiAgICBtYXJnaW4tbGVmdDogIC0kbmF2YmFyLXBhZGRpbmctaG9yaXpvbnRhbDtcblxuICAgIEBtZWRpYSAobWluLXdpZHRoOiAkZ3JpZC1mbG9hdC1icmVha3BvaW50KSB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICBtYXJnaW4tbGVmdDogIDA7XG4gICAgfVxuICB9XG59XG5cblxuLy9cbi8vIE5hdmJhciBhbGlnbm1lbnQgb3B0aW9uc1xuLy9cbi8vIERpc3BsYXkgdGhlIG5hdmJhciBhY3Jvc3MgdGhlIGVudGlyZXR5IG9mIHRoZSBwYWdlIG9yIGZpeGVkIGl0IHRvIHRoZSB0b3Agb3Jcbi8vIGJvdHRvbSBvZiB0aGUgcGFnZS5cblxuLy8gU3RhdGljIHRvcCAodW5maXhlZCwgYnV0IDEwMCUgd2lkZSkgbmF2YmFyXG4ubmF2YmFyLXN0YXRpYy10b3Age1xuICB6LWluZGV4OiAkemluZGV4LW5hdmJhcjtcbiAgYm9yZGVyLXdpZHRoOiAwIDAgMXB4O1xuXG4gIEBtZWRpYSAobWluLXdpZHRoOiAkZ3JpZC1mbG9hdC1icmVha3BvaW50KSB7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgfVxufVxuXG4vLyBGaXggdGhlIHRvcC9ib3R0b20gbmF2YmFycyB3aGVuIHNjcmVlbiByZWFsIGVzdGF0ZSBzdXBwb3J0cyBpdFxuLm5hdmJhci1maXhlZC10b3AsXG4ubmF2YmFyLWZpeGVkLWJvdHRvbSB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgcmlnaHQ6IDA7XG4gIGxlZnQ6IDA7XG4gIHotaW5kZXg6ICR6aW5kZXgtbmF2YmFyLWZpeGVkO1xuXG4gIC8vIFVuZG8gdGhlIHJvdW5kZWQgY29ybmVyc1xuICBAbWVkaWEgKG1pbi13aWR0aDogJGdyaWQtZmxvYXQtYnJlYWtwb2ludCkge1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gIH1cbn1cbi5uYXZiYXItZml4ZWQtdG9wIHtcbiAgdG9wOiAwO1xuICBib3JkZXItd2lkdGg6IDAgMCAxcHg7XG59XG4ubmF2YmFyLWZpeGVkLWJvdHRvbSB7XG4gIGJvdHRvbTogMDtcbiAgbWFyZ2luLWJvdHRvbTogMDsgLy8gb3ZlcnJpZGUgLm5hdmJhciBkZWZhdWx0c1xuICBib3JkZXItd2lkdGg6IDFweCAwIDA7XG59XG5cblxuLy8gQnJhbmQvcHJvamVjdCBuYW1lXG5cbi5uYXZiYXItYnJhbmQge1xuICBmbG9hdDogbGVmdDtcbiAgcGFkZGluZzogJG5hdmJhci1wYWRkaW5nLXZlcnRpY2FsICRuYXZiYXItcGFkZGluZy1ob3Jpem9udGFsO1xuICBmb250LXNpemU6ICRmb250LXNpemUtbGFyZ2U7XG4gIGxpbmUtaGVpZ2h0OiAkbGluZS1oZWlnaHQtY29tcHV0ZWQ7XG4gIGhlaWdodDogJG5hdmJhci1oZWlnaHQ7XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB9XG5cbiAgPiBpbWcge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG5cbiAgQG1lZGlhIChtaW4td2lkdGg6ICRncmlkLWZsb2F0LWJyZWFrcG9pbnQpIHtcbiAgICAubmF2YmFyID4gLmNvbnRhaW5lciAmLFxuICAgIC5uYXZiYXIgPiAuY29udGFpbmVyLWZsdWlkICYge1xuICAgICAgbWFyZ2luLWxlZnQ6IC0kbmF2YmFyLXBhZGRpbmctaG9yaXpvbnRhbDtcbiAgICB9XG4gIH1cbn1cblxuXG4vLyBOYXZiYXIgdG9nZ2xlXG4vL1xuLy8gQ3VzdG9tIGJ1dHRvbiBmb3IgdG9nZ2xpbmcgdGhlIGAubmF2YmFyLWNvbGxhcHNlYCwgcG93ZXJlZCBieSB0aGUgY29sbGFwc2Vcbi8vIEphdmFTY3JpcHQgcGx1Z2luLlxuXG4ubmF2YmFyLXRvZ2dsZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBtYXJnaW4tcmlnaHQ6ICRuYXZiYXItcGFkZGluZy1ob3Jpem9udGFsO1xuICBwYWRkaW5nOiA5cHggMTBweDtcbiAgQGluY2x1ZGUgbmF2YmFyLXZlcnRpY2FsLWFsaWduKDM0cHgpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTsgLy8gUmVzZXQgdW51c3VhbCBGaXJlZm94LW9uLUFuZHJvaWQgZGVmYXVsdCBzdHlsZTsgc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9uZWNvbGFzL25vcm1hbGl6ZS5jc3MvaXNzdWVzLzIxNFxuICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXMtYmFzZTtcblxuICAvLyBXZSByZW1vdmUgdGhlIGBvdXRsaW5lYCBoZXJlLCBidXQgbGF0ZXIgY29tcGVuc2F0ZSBieSBhdHRhY2hpbmcgYDpob3ZlcmBcbiAgLy8gc3R5bGVzIHRvIGA6Zm9jdXNgLlxuICAmOmZvY3VzIHtcbiAgICBvdXRsaW5lOiAwO1xuICB9XG5cbiAgLy8gQmFyc1xuICAuaWNvbi1iYXIge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAyMnB4O1xuICAgIGhlaWdodDogMnB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDFweDtcbiAgfVxuICAuaWNvbi1iYXIgKyAuaWNvbi1iYXIge1xuICAgIG1hcmdpbi10b3A6IDRweDtcbiAgfVxuXG4gIEBtZWRpYSAobWluLXdpZHRoOiAkZ3JpZC1mbG9hdC1icmVha3BvaW50KSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuXG5cbi8vIE5hdmJhciBuYXYgbGlua3Ncbi8vXG4vLyBCdWlsZHMgb24gdG9wIG9mIHRoZSBgLm5hdmAgY29tcG9uZW50cyB3aXRoIGl0cyBvd24gbW9kaWZpZXIgY2xhc3MgdG8gbWFrZVxuLy8gdGhlIG5hdiB0aGUgZnVsbCBoZWlnaHQgb2YgdGhlIGhvcml6b250YWwgbmF2IChhYm92ZSA3NjhweCkuXG5cbi5uYXZiYXItbmF2IHtcbiAgbWFyZ2luOiAoJG5hdmJhci1wYWRkaW5nLXZlcnRpY2FsIC8gMikgKC0kbmF2YmFyLXBhZGRpbmctaG9yaXpvbnRhbCk7XG5cbiAgPiBsaSA+IGEge1xuICAgIHBhZGRpbmctdG9wOiAgICAxMHB4O1xuICAgIHBhZGRpbmctYm90dG9tOiAxMHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAkbGluZS1oZWlnaHQtY29tcHV0ZWQ7XG4gIH1cblxuICBAbWVkaWEgKG1heC13aWR0aDogJGdyaWQtZmxvYXQtYnJlYWtwb2ludC1tYXgpIHtcbiAgICAvLyBEcm9wZG93bnMgZ2V0IGN1c3RvbSBkaXNwbGF5IHdoZW4gY29sbGFwc2VkXG4gICAgLm9wZW4gLmRyb3Bkb3duLW1lbnUge1xuICAgICAgcG9zaXRpb246IHN0YXRpYztcbiAgICAgIGZsb2F0OiBub25lO1xuICAgICAgd2lkdGg6IGF1dG87XG4gICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICBib3JkZXI6IDA7XG4gICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgPiBsaSA+IGEsXG4gICAgICAuZHJvcGRvd24taGVhZGVyIHtcbiAgICAgICAgcGFkZGluZzogNXB4IDE1cHggNXB4IDI1cHg7XG4gICAgICB9XG4gICAgICA+IGxpID4gYSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAkbGluZS1oZWlnaHQtY29tcHV0ZWQ7XG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBVbmNvbGxhcHNlIHRoZSBuYXZcbiAgQG1lZGlhIChtaW4td2lkdGg6ICRncmlkLWZsb2F0LWJyZWFrcG9pbnQpIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBtYXJnaW46IDA7XG5cbiAgICA+IGxpIHtcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgPiBhIHtcbiAgICAgICAgcGFkZGluZy10b3A6ICAgICRuYXZiYXItcGFkZGluZy12ZXJ0aWNhbDtcbiAgICAgICAgcGFkZGluZy1ib3R0b206ICRuYXZiYXItcGFkZGluZy12ZXJ0aWNhbDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuXG4vLyBOYXZiYXIgZm9ybVxuLy9cbi8vIEV4dGVuc2lvbiBvZiB0aGUgYC5mb3JtLWlubGluZWAgd2l0aCBzb21lIGV4dHJhIGZsYXZvciBmb3Igb3B0aW11bSBkaXNwbGF5IGluXG4vLyBvdXIgbmF2YmFycy5cblxuLm5hdmJhci1mb3JtIHtcbiAgbWFyZ2luLWxlZnQ6IC0kbmF2YmFyLXBhZGRpbmctaG9yaXpvbnRhbDtcbiAgbWFyZ2luLXJpZ2h0OiAtJG5hdmJhci1wYWRkaW5nLWhvcml6b250YWw7XG4gIHBhZGRpbmc6IDEwcHggJG5hdmJhci1wYWRkaW5nLWhvcml6b250YWw7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAkc2hhZG93OiBpbnNldCAwIDFweCAwIHJnYmEoMjU1LDI1NSwyNTUsLjEpLCAwIDFweCAwIHJnYmEoMjU1LDI1NSwyNTUsLjEpO1xuICBAaW5jbHVkZSBib3gtc2hhZG93KCRzaGFkb3cpO1xuXG4gIC8vIE1peGluIGJlaGF2aW9yIGZvciBvcHRpbXVtIGRpc3BsYXlcbiAgQGluY2x1ZGUgZm9ybS1pbmxpbmU7XG5cbiAgLmZvcm0tZ3JvdXAge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkZ3JpZC1mbG9hdC1icmVha3BvaW50LW1heCkge1xuICAgICAgbWFyZ2luLWJvdHRvbTogNXB4O1xuXG4gICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIFZlcnRpY2FsbHkgY2VudGVyIGluIGV4cGFuZGVkLCBob3Jpem9udGFsIG5hdmJhclxuICBAaW5jbHVkZSBuYXZiYXItdmVydGljYWwtYWxpZ24oJGlucHV0LWhlaWdodC1iYXNlKTtcblxuICAvLyBVbmRvIDEwMCUgd2lkdGggZm9yIHB1bGwgY2xhc3Nlc1xuICBAbWVkaWEgKG1pbi13aWR0aDogJGdyaWQtZmxvYXQtYnJlYWtwb2ludCkge1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIGJvcmRlcjogMDtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgcGFkZGluZy10b3A6IDA7XG4gICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgQGluY2x1ZGUgYm94LXNoYWRvdyhub25lKTtcbiAgfVxufVxuXG5cbi8vIERyb3Bkb3duIG1lbnVzXG5cbi8vIE1lbnUgcG9zaXRpb24gYW5kIG1lbnUgY2FyZXRzXG4ubmF2YmFyLW5hdiA+IGxpID4gLmRyb3Bkb3duLW1lbnUge1xuICBtYXJnaW4tdG9wOiAwO1xuICBAaW5jbHVkZSBib3JkZXItdG9wLXJhZGl1cygwKTtcbn1cbi8vIE1lbnUgcG9zaXRpb24gYW5kIG1lbnUgY2FyZXQgc3VwcG9ydCBmb3IgZHJvcHVwcyB2aWEgZXh0cmEgZHJvcHVwIGNsYXNzXG4ubmF2YmFyLWZpeGVkLWJvdHRvbSAubmF2YmFyLW5hdiA+IGxpID4gLmRyb3Bkb3duLW1lbnUge1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICBAaW5jbHVkZSBib3JkZXItdG9wLXJhZGl1cygkbmF2YmFyLWJvcmRlci1yYWRpdXMpO1xuICBAaW5jbHVkZSBib3JkZXItYm90dG9tLXJhZGl1cygwKTtcbn1cblxuXG4vLyBCdXR0b25zIGluIG5hdmJhcnNcbi8vXG4vLyBWZXJ0aWNhbGx5IGNlbnRlciBhIGJ1dHRvbiB3aXRoaW4gYSBuYXZiYXIgKHdoZW4gKm5vdCogaW4gYSBmb3JtKS5cblxuLm5hdmJhci1idG4ge1xuICBAaW5jbHVkZSBuYXZiYXItdmVydGljYWwtYWxpZ24oJGlucHV0LWhlaWdodC1iYXNlKTtcblxuICAmLmJ0bi1zbSB7XG4gICAgQGluY2x1ZGUgbmF2YmFyLXZlcnRpY2FsLWFsaWduKCRpbnB1dC1oZWlnaHQtc21hbGwpO1xuICB9XG4gICYuYnRuLXhzIHtcbiAgICBAaW5jbHVkZSBuYXZiYXItdmVydGljYWwtYWxpZ24oMjIpO1xuICB9XG59XG5cblxuLy8gVGV4dCBpbiBuYXZiYXJzXG4vL1xuLy8gQWRkIGEgY2xhc3MgdG8gbWFrZSBhbnkgZWxlbWVudCBwcm9wZXJseSBhbGlnbiBpdHNlbGYgdmVydGljYWxseSB3aXRoaW4gdGhlIG5hdmJhcnMuXG5cbi5uYXZiYXItdGV4dCB7XG4gIEBpbmNsdWRlIG5hdmJhci12ZXJ0aWNhbC1hbGlnbigkbGluZS1oZWlnaHQtY29tcHV0ZWQpO1xuXG4gIEBtZWRpYSAobWluLXdpZHRoOiAkZ3JpZC1mbG9hdC1icmVha3BvaW50KSB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgbWFyZ2luLWxlZnQ6ICRuYXZiYXItcGFkZGluZy1ob3Jpem9udGFsO1xuICAgIG1hcmdpbi1yaWdodDogJG5hdmJhci1wYWRkaW5nLWhvcml6b250YWw7XG4gIH1cbn1cblxuXG4vLyBDb21wb25lbnQgYWxpZ25tZW50XG4vL1xuLy8gUmVwdXJwb3NlIHRoZSBwdWxsIHV0aWxpdGllcyBhcyB0aGVpciBvd24gbmF2YmFyIHV0aWxpdGllcyB0byBhdm9pZCBzcGVjaWZpY2l0eVxuLy8gaXNzdWVzIHdpdGggcGFyZW50cyBhbmQgY2hhaW5pbmcuIE9ubHkgZG8gdGhpcyB3aGVuIHRoZSBuYXZiYXIgaXMgdW5jb2xsYXBzZWRcbi8vIHRob3VnaCBzbyB0aGF0IG5hdmJhciBjb250ZW50cyBwcm9wZXJseSBzdGFjayBhbmQgYWxpZ24gaW4gbW9iaWxlLlxuLy9cbi8vIERlY2xhcmVkIGFmdGVyIHRoZSBuYXZiYXIgY29tcG9uZW50cyB0byBlbnN1cmUgbW9yZSBzcGVjaWZpY2l0eSBvbiB0aGUgbWFyZ2lucy5cblxuQG1lZGlhIChtaW4td2lkdGg6ICRncmlkLWZsb2F0LWJyZWFrcG9pbnQpIHtcbiAgLm5hdmJhci1sZWZ0IHtcbiAgICBmbG9hdDogbGVmdCAhaW1wb3J0YW50O1xuICB9XG4gIC5uYXZiYXItcmlnaHQge1xuICAgIGZsb2F0OiByaWdodCAhaW1wb3J0YW50O1xuICBtYXJnaW4tcmlnaHQ6IC0kbmF2YmFyLXBhZGRpbmctaG9yaXpvbnRhbDtcblxuICAgIH4gLm5hdmJhci1yaWdodCB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgfVxuICB9XG59XG5cblxuLy8gQWx0ZXJuYXRlIG5hdmJhcnNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vIERlZmF1bHQgbmF2YmFyXG4ubmF2YmFyLWRlZmF1bHQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkbmF2YmFyLWRlZmF1bHQtYmc7XG4gIGJvcmRlci1jb2xvcjogJG5hdmJhci1kZWZhdWx0LWJvcmRlcjtcblxuICAubmF2YmFyLWJyYW5kIHtcbiAgICBjb2xvcjogJG5hdmJhci1kZWZhdWx0LWJyYW5kLWNvbG9yO1xuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyB7XG4gICAgICBjb2xvcjogJG5hdmJhci1kZWZhdWx0LWJyYW5kLWhvdmVyLWNvbG9yO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJG5hdmJhci1kZWZhdWx0LWJyYW5kLWhvdmVyLWJnO1xuICAgIH1cbiAgfVxuXG4gIC5uYXZiYXItdGV4dCB7XG4gICAgY29sb3I6ICRuYXZiYXItZGVmYXVsdC1jb2xvcjtcbiAgfVxuXG4gIC5uYXZiYXItbmF2IHtcbiAgICA+IGxpID4gYSB7XG4gICAgICBjb2xvcjogJG5hdmJhci1kZWZhdWx0LWxpbmstY29sb3I7XG5cbiAgICAgICY6aG92ZXIsXG4gICAgICAmOmZvY3VzIHtcbiAgICAgICAgY29sb3I6ICRuYXZiYXItZGVmYXVsdC1saW5rLWhvdmVyLWNvbG9yO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbmF2YmFyLWRlZmF1bHQtbGluay1ob3Zlci1iZztcbiAgICAgIH1cbiAgICB9XG4gICAgPiAuYWN0aXZlID4gYSB7XG4gICAgICAmLFxuICAgICAgJjpob3ZlcixcbiAgICAgICY6Zm9jdXMge1xuICAgICAgICBjb2xvcjogJG5hdmJhci1kZWZhdWx0LWxpbmstYWN0aXZlLWNvbG9yO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbmF2YmFyLWRlZmF1bHQtbGluay1hY3RpdmUtYmc7XG4gICAgICB9XG4gICAgfVxuICAgID4gLmRpc2FibGVkID4gYSB7XG4gICAgICAmLFxuICAgICAgJjpob3ZlcixcbiAgICAgICY6Zm9jdXMge1xuICAgICAgICBjb2xvcjogJG5hdmJhci1kZWZhdWx0LWxpbmstZGlzYWJsZWQtY29sb3I7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRuYXZiYXItZGVmYXVsdC1saW5rLWRpc2FibGVkLWJnO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5uYXZiYXItdG9nZ2xlIHtcbiAgICBib3JkZXItY29sb3I6ICRuYXZiYXItZGVmYXVsdC10b2dnbGUtYm9yZGVyLWNvbG9yO1xuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbmF2YmFyLWRlZmF1bHQtdG9nZ2xlLWhvdmVyLWJnO1xuICAgIH1cbiAgICAuaWNvbi1iYXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJG5hdmJhci1kZWZhdWx0LXRvZ2dsZS1pY29uLWJhci1iZztcbiAgICB9XG4gIH1cblxuICAubmF2YmFyLWNvbGxhcHNlLFxuICAubmF2YmFyLWZvcm0ge1xuICAgIGJvcmRlci1jb2xvcjogJG5hdmJhci1kZWZhdWx0LWJvcmRlcjtcbiAgfVxuXG4gIC8vIERyb3Bkb3duIG1lbnUgaXRlbXNcbiAgLm5hdmJhci1uYXYge1xuICAgIC8vIFJlbW92ZSBiYWNrZ3JvdW5kIGNvbG9yIGZyb20gb3BlbiBkcm9wZG93blxuICAgID4gLm9wZW4gPiBhIHtcbiAgICAgICYsXG4gICAgICAmOmhvdmVyLFxuICAgICAgJjpmb2N1cyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRuYXZiYXItZGVmYXVsdC1saW5rLWFjdGl2ZS1iZztcbiAgICAgICAgY29sb3I6ICRuYXZiYXItZGVmYXVsdC1saW5rLWFjdGl2ZS1jb2xvcjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBAbWVkaWEgKG1heC13aWR0aDogJGdyaWQtZmxvYXQtYnJlYWtwb2ludC1tYXgpIHtcbiAgICAgIC8vIERyb3Bkb3ducyBnZXQgY3VzdG9tIGRpc3BsYXkgd2hlbiBjb2xsYXBzZWRcbiAgICAgIC5vcGVuIC5kcm9wZG93bi1tZW51IHtcbiAgICAgICAgPiBsaSA+IGEge1xuICAgICAgICAgIGNvbG9yOiAkbmF2YmFyLWRlZmF1bHQtbGluay1jb2xvcjtcbiAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgY29sb3I6ICRuYXZiYXItZGVmYXVsdC1saW5rLWhvdmVyLWNvbG9yO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJG5hdmJhci1kZWZhdWx0LWxpbmstaG92ZXItYmc7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgID4gLmFjdGl2ZSA+IGEge1xuICAgICAgICAgICYsXG4gICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGNvbG9yOiAkbmF2YmFyLWRlZmF1bHQtbGluay1hY3RpdmUtY29sb3I7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbmF2YmFyLWRlZmF1bHQtbGluay1hY3RpdmUtYmc7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgID4gLmRpc2FibGVkID4gYSB7XG4gICAgICAgICAgJixcbiAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgY29sb3I6ICRuYXZiYXItZGVmYXVsdC1saW5rLWRpc2FibGVkLWNvbG9yO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJG5hdmJhci1kZWZhdWx0LWxpbmstZGlzYWJsZWQtYmc7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cblxuICAvLyBMaW5rcyBpbiBuYXZiYXJzXG4gIC8vXG4gIC8vIEFkZCBhIGNsYXNzIHRvIGVuc3VyZSBsaW5rcyBvdXRzaWRlIHRoZSBuYXZiYXIgbmF2IGFyZSBjb2xvcmVkIGNvcnJlY3RseS5cblxuICAubmF2YmFyLWxpbmsge1xuICAgIGNvbG9yOiAkbmF2YmFyLWRlZmF1bHQtbGluay1jb2xvcjtcbiAgICAmOmhvdmVyIHtcbiAgICAgIGNvbG9yOiAkbmF2YmFyLWRlZmF1bHQtbGluay1ob3Zlci1jb2xvcjtcbiAgICB9XG4gIH1cblxuICAuYnRuLWxpbmsge1xuICAgIGNvbG9yOiAkbmF2YmFyLWRlZmF1bHQtbGluay1jb2xvcjtcbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMge1xuICAgICAgY29sb3I6ICRuYXZiYXItZGVmYXVsdC1saW5rLWhvdmVyLWNvbG9yO1xuICAgIH1cbiAgICAmW2Rpc2FibGVkXSxcbiAgICBmaWVsZHNldFtkaXNhYmxlZF0gJiB7XG4gICAgICAmOmhvdmVyLFxuICAgICAgJjpmb2N1cyB7XG4gICAgICAgIGNvbG9yOiAkbmF2YmFyLWRlZmF1bHQtbGluay1kaXNhYmxlZC1jb2xvcjtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8gSW52ZXJzZSBuYXZiYXJcblxuLm5hdmJhci1pbnZlcnNlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogJG5hdmJhci1pbnZlcnNlLWJnO1xuICBib3JkZXItY29sb3I6ICRuYXZiYXItaW52ZXJzZS1ib3JkZXI7XG5cbiAgLm5hdmJhci1icmFuZCB7XG4gICAgY29sb3I6ICRuYXZiYXItaW52ZXJzZS1icmFuZC1jb2xvcjtcbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMge1xuICAgICAgY29sb3I6ICRuYXZiYXItaW52ZXJzZS1icmFuZC1ob3Zlci1jb2xvcjtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRuYXZiYXItaW52ZXJzZS1icmFuZC1ob3Zlci1iZztcbiAgICB9XG4gIH1cblxuICAubmF2YmFyLXRleHQge1xuICAgIGNvbG9yOiAkbmF2YmFyLWludmVyc2UtY29sb3I7XG4gIH1cblxuICAubmF2YmFyLW5hdiB7XG4gICAgPiBsaSA+IGEge1xuICAgICAgY29sb3I6ICRuYXZiYXItaW52ZXJzZS1saW5rLWNvbG9yO1xuXG4gICAgICAmOmhvdmVyLFxuICAgICAgJjpmb2N1cyB7XG4gICAgICAgIGNvbG9yOiAkbmF2YmFyLWludmVyc2UtbGluay1ob3Zlci1jb2xvcjtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJG5hdmJhci1pbnZlcnNlLWxpbmstaG92ZXItYmc7XG4gICAgICB9XG4gICAgfVxuICAgID4gLmFjdGl2ZSA+IGEge1xuICAgICAgJixcbiAgICAgICY6aG92ZXIsXG4gICAgICAmOmZvY3VzIHtcbiAgICAgICAgY29sb3I6ICRuYXZiYXItaW52ZXJzZS1saW5rLWFjdGl2ZS1jb2xvcjtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJG5hdmJhci1pbnZlcnNlLWxpbmstYWN0aXZlLWJnO1xuICAgICAgfVxuICAgIH1cbiAgICA+IC5kaXNhYmxlZCA+IGEge1xuICAgICAgJixcbiAgICAgICY6aG92ZXIsXG4gICAgICAmOmZvY3VzIHtcbiAgICAgICAgY29sb3I6ICRuYXZiYXItaW52ZXJzZS1saW5rLWRpc2FibGVkLWNvbG9yO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbmF2YmFyLWludmVyc2UtbGluay1kaXNhYmxlZC1iZztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBEYXJrZW4gdGhlIHJlc3BvbnNpdmUgbmF2IHRvZ2dsZVxuICAubmF2YmFyLXRvZ2dsZSB7XG4gICAgYm9yZGVyLWNvbG9yOiAkbmF2YmFyLWludmVyc2UtdG9nZ2xlLWJvcmRlci1jb2xvcjtcbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJG5hdmJhci1pbnZlcnNlLXRvZ2dsZS1ob3Zlci1iZztcbiAgICB9XG4gICAgLmljb24tYmFyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRuYXZiYXItaW52ZXJzZS10b2dnbGUtaWNvbi1iYXItYmc7XG4gICAgfVxuICB9XG5cbiAgLm5hdmJhci1jb2xsYXBzZSxcbiAgLm5hdmJhci1mb3JtIHtcbiAgICBib3JkZXItY29sb3I6IGRhcmtlbigkbmF2YmFyLWludmVyc2UtYmcsIDclKTtcbiAgfVxuXG4gIC8vIERyb3Bkb3duc1xuICAubmF2YmFyLW5hdiB7XG4gICAgPiAub3BlbiA+IGEge1xuICAgICAgJixcbiAgICAgICY6aG92ZXIsXG4gICAgICAmOmZvY3VzIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJG5hdmJhci1pbnZlcnNlLWxpbmstYWN0aXZlLWJnO1xuICAgICAgICBjb2xvcjogJG5hdmJhci1pbnZlcnNlLWxpbmstYWN0aXZlLWNvbG9yO1xuICAgICAgfVxuICAgIH1cblxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkZ3JpZC1mbG9hdC1icmVha3BvaW50LW1heCkge1xuICAgICAgLy8gRHJvcGRvd25zIGdldCBjdXN0b20gZGlzcGxheVxuICAgICAgLm9wZW4gLmRyb3Bkb3duLW1lbnUge1xuICAgICAgICA+IC5kcm9wZG93bi1oZWFkZXIge1xuICAgICAgICAgIGJvcmRlci1jb2xvcjogJG5hdmJhci1pbnZlcnNlLWJvcmRlcjtcbiAgICAgICAgfVxuICAgICAgICAuZGl2aWRlciB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJG5hdmJhci1pbnZlcnNlLWJvcmRlcjtcbiAgICAgICAgfVxuICAgICAgICA+IGxpID4gYSB7XG4gICAgICAgICAgY29sb3I6ICRuYXZiYXItaW52ZXJzZS1saW5rLWNvbG9yO1xuICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBjb2xvcjogJG5hdmJhci1pbnZlcnNlLWxpbmstaG92ZXItY29sb3I7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbmF2YmFyLWludmVyc2UtbGluay1ob3Zlci1iZztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgPiAuYWN0aXZlID4gYSB7XG4gICAgICAgICAgJixcbiAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgY29sb3I6ICRuYXZiYXItaW52ZXJzZS1saW5rLWFjdGl2ZS1jb2xvcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRuYXZiYXItaW52ZXJzZS1saW5rLWFjdGl2ZS1iZztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgPiAuZGlzYWJsZWQgPiBhIHtcbiAgICAgICAgICAmLFxuICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBjb2xvcjogJG5hdmJhci1pbnZlcnNlLWxpbmstZGlzYWJsZWQtY29sb3I7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbmF2YmFyLWludmVyc2UtbGluay1kaXNhYmxlZC1iZztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAubmF2YmFyLWxpbmsge1xuICAgIGNvbG9yOiAkbmF2YmFyLWludmVyc2UtbGluay1jb2xvcjtcbiAgICAmOmhvdmVyIHtcbiAgICAgIGNvbG9yOiAkbmF2YmFyLWludmVyc2UtbGluay1ob3Zlci1jb2xvcjtcbiAgICB9XG4gIH1cblxuICAuYnRuLWxpbmsge1xuICAgIGNvbG9yOiAkbmF2YmFyLWludmVyc2UtbGluay1jb2xvcjtcbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMge1xuICAgICAgY29sb3I6ICRuYXZiYXItaW52ZXJzZS1saW5rLWhvdmVyLWNvbG9yO1xuICAgIH1cbiAgICAmW2Rpc2FibGVkXSxcbiAgICBmaWVsZHNldFtkaXNhYmxlZF0gJiB7XG4gICAgICAmOmhvdmVyLFxuICAgICAgJjpmb2N1cyB7XG4gICAgICAgIGNvbG9yOiAkbmF2YmFyLWludmVyc2UtbGluay1kaXNhYmxlZC1jb2xvcjtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL25vZGVfbW9kdWxlcy9ib290c3RyYXAtc2Fzcy9hc3NldHMvc3R5bGVzaGVldHMvYm9vdHN0cmFwL19uYXZiYXIuc2NzcyIsIi8vIE5hdmJhciB2ZXJ0aWNhbCBhbGlnblxuLy9cbi8vIFZlcnRpY2FsbHkgY2VudGVyIGVsZW1lbnRzIGluIHRoZSBuYXZiYXIuXG4vLyBFeGFtcGxlOiBhbiBlbGVtZW50IGhhcyBhIGhlaWdodCBvZiAzMHB4LCBzbyB3cml0ZSBvdXQgYC5uYXZiYXItdmVydGljYWwtYWxpZ24oMzBweCk7YCB0byBjYWxjdWxhdGUgdGhlIGFwcHJvcHJpYXRlIHRvcCBtYXJnaW4uXG5cbkBtaXhpbiBuYXZiYXItdmVydGljYWwtYWxpZ24oJGVsZW1lbnQtaGVpZ2h0KSB7XG4gIG1hcmdpbi10b3A6ICgoJG5hdmJhci1oZWlnaHQgLSAkZWxlbWVudC1oZWlnaHQpIC8gMik7XG4gIG1hcmdpbi1ib3R0b206ICgoJG5hdmJhci1oZWlnaHQgLSAkZWxlbWVudC1oZWlnaHQpIC8gMik7XG59XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9ub2RlX21vZHVsZXMvYm9vdHN0cmFwLXNhc3MvYXNzZXRzL3N0eWxlc2hlZXRzL2Jvb3RzdHJhcC9taXhpbnMvX25hdi12ZXJ0aWNhbC1hbGlnbi5zY3NzIiwiLy9cbi8vIEJyZWFkY3J1bWJzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5cbi5icmVhZGNydW1iIHtcbiAgcGFkZGluZzogJGJyZWFkY3J1bWItcGFkZGluZy12ZXJ0aWNhbCAkYnJlYWRjcnVtYi1wYWRkaW5nLWhvcml6b250YWw7XG4gIG1hcmdpbi1ib3R0b206ICRsaW5lLWhlaWdodC1jb21wdXRlZDtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGJyZWFkY3J1bWItYmc7XG4gIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzLWJhc2U7XG5cbiAgPiBsaSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgKyBsaTpiZWZvcmUge1xuICAgICAgLy8gW2NvbnZlcnRlcl0gV29ya2Fyb3VuZCBmb3IgaHR0cHM6Ly9naXRodWIuY29tL3Nhc3MvbGlic2Fzcy9pc3N1ZXMvMTExNVxuICAgICAgJG5ic3A6IFwiXFwwMGEwXCI7XG4gICAgICBjb250ZW50OiBcIiN7JGJyZWFkY3J1bWItc2VwYXJhdG9yfSN7JG5ic3B9XCI7IC8vIFVuaWNvZGUgc3BhY2UgYWRkZWQgc2luY2UgaW5saW5lLWJsb2NrIG1lYW5zIG5vbi1jb2xsYXBzaW5nIHdoaXRlLXNwYWNlXG4gICAgICBwYWRkaW5nOiAwIDVweDtcbiAgICAgIGNvbG9yOiAkYnJlYWRjcnVtYi1jb2xvcjtcbiAgICB9XG4gIH1cblxuICA+IC5hY3RpdmUge1xuICAgIGNvbG9yOiAkYnJlYWRjcnVtYi1hY3RpdmUtY29sb3I7XG4gIH1cbn1cblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL25vZGVfbW9kdWxlcy9ib290c3RyYXAtc2Fzcy9hc3NldHMvc3R5bGVzaGVldHMvYm9vdHN0cmFwL19icmVhZGNydW1icy5zY3NzIiwiLy9cbi8vIFBhZ2luYXRpb24gKG11bHRpcGxlIHBhZ2VzKVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi5wYWdpbmF0aW9uIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwYWRkaW5nLWxlZnQ6IDA7XG4gIG1hcmdpbjogJGxpbmUtaGVpZ2h0LWNvbXB1dGVkIDA7XG4gIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzLWJhc2U7XG5cbiAgPiBsaSB7XG4gICAgZGlzcGxheTogaW5saW5lOyAvLyBSZW1vdmUgbGlzdC1zdHlsZSBhbmQgYmxvY2stbGV2ZWwgZGVmYXVsdHNcbiAgICA+IGEsXG4gICAgPiBzcGFuIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIGZsb2F0OiBsZWZ0OyAvLyBDb2xsYXBzZSB3aGl0ZS1zcGFjZVxuICAgICAgcGFkZGluZzogJHBhZGRpbmctYmFzZS12ZXJ0aWNhbCAkcGFkZGluZy1iYXNlLWhvcml6b250YWw7XG4gICAgICBsaW5lLWhlaWdodDogJGxpbmUtaGVpZ2h0LWJhc2U7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICBjb2xvcjogJHBhZ2luYXRpb24tY29sb3I7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcGFnaW5hdGlvbi1iZztcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRwYWdpbmF0aW9uLWJvcmRlcjtcbiAgICAgIG1hcmdpbi1sZWZ0OiAtMXB4O1xuICAgIH1cbiAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgID4gYSxcbiAgICAgID4gc3BhbiB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICBAaW5jbHVkZSBib3JkZXItbGVmdC1yYWRpdXMoJGJvcmRlci1yYWRpdXMtYmFzZSk7XG4gICAgICB9XG4gICAgfVxuICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICA+IGEsXG4gICAgICA+IHNwYW4ge1xuICAgICAgICBAaW5jbHVkZSBib3JkZXItcmlnaHQtcmFkaXVzKCRib3JkZXItcmFkaXVzLWJhc2UpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gID4gbGkgPiBhLFxuICA+IGxpID4gc3BhbiB7XG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzIHtcbiAgICAgIHotaW5kZXg6IDI7XG4gICAgICBjb2xvcjogJHBhZ2luYXRpb24taG92ZXItY29sb3I7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcGFnaW5hdGlvbi1ob3Zlci1iZztcbiAgICAgIGJvcmRlci1jb2xvcjogJHBhZ2luYXRpb24taG92ZXItYm9yZGVyO1xuICAgIH1cbiAgfVxuXG4gID4gLmFjdGl2ZSA+IGEsXG4gID4gLmFjdGl2ZSA+IHNwYW4ge1xuICAgICYsXG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzIHtcbiAgICAgIHotaW5kZXg6IDM7XG4gICAgICBjb2xvcjogJHBhZ2luYXRpb24tYWN0aXZlLWNvbG9yO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHBhZ2luYXRpb24tYWN0aXZlLWJnO1xuICAgICAgYm9yZGVyLWNvbG9yOiAkcGFnaW5hdGlvbi1hY3RpdmUtYm9yZGVyO1xuICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgIH1cbiAgfVxuXG4gID4gLmRpc2FibGVkIHtcbiAgICA+IHNwYW4sXG4gICAgPiBzcGFuOmhvdmVyLFxuICAgID4gc3Bhbjpmb2N1cyxcbiAgICA+IGEsXG4gICAgPiBhOmhvdmVyLFxuICAgID4gYTpmb2N1cyB7XG4gICAgICBjb2xvcjogJHBhZ2luYXRpb24tZGlzYWJsZWQtY29sb3I7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcGFnaW5hdGlvbi1kaXNhYmxlZC1iZztcbiAgICAgIGJvcmRlci1jb2xvcjogJHBhZ2luYXRpb24tZGlzYWJsZWQtYm9yZGVyO1xuICAgICAgY3Vyc29yOiAkY3Vyc29yLWRpc2FibGVkO1xuICAgIH1cbiAgfVxufVxuXG4vLyBTaXppbmdcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vIExhcmdlXG4ucGFnaW5hdGlvbi1sZyB7XG4gIEBpbmNsdWRlIHBhZ2luYXRpb24tc2l6ZSgkcGFkZGluZy1sYXJnZS12ZXJ0aWNhbCwgJHBhZGRpbmctbGFyZ2UtaG9yaXpvbnRhbCwgJGZvbnQtc2l6ZS1sYXJnZSwgJGxpbmUtaGVpZ2h0LWxhcmdlLCAkYm9yZGVyLXJhZGl1cy1sYXJnZSk7XG59XG5cbi8vIFNtYWxsXG4ucGFnaW5hdGlvbi1zbSB7XG4gIEBpbmNsdWRlIHBhZ2luYXRpb24tc2l6ZSgkcGFkZGluZy1zbWFsbC12ZXJ0aWNhbCwgJHBhZGRpbmctc21hbGwtaG9yaXpvbnRhbCwgJGZvbnQtc2l6ZS1zbWFsbCwgJGxpbmUtaGVpZ2h0LXNtYWxsLCAkYm9yZGVyLXJhZGl1cy1zbWFsbCk7XG59XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9ub2RlX21vZHVsZXMvYm9vdHN0cmFwLXNhc3MvYXNzZXRzL3N0eWxlc2hlZXRzL2Jvb3RzdHJhcC9fcGFnaW5hdGlvbi5zY3NzIiwiLy8gUGFnaW5hdGlvblxuXG5AbWl4aW4gcGFnaW5hdGlvbi1zaXplKCRwYWRkaW5nLXZlcnRpY2FsLCAkcGFkZGluZy1ob3Jpem9udGFsLCAkZm9udC1zaXplLCAkbGluZS1oZWlnaHQsICRib3JkZXItcmFkaXVzKSB7XG4gID4gbGkge1xuICAgID4gYSxcbiAgICA+IHNwYW4ge1xuICAgICAgcGFkZGluZzogJHBhZGRpbmctdmVydGljYWwgJHBhZGRpbmctaG9yaXpvbnRhbDtcbiAgICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAkbGluZS1oZWlnaHQ7XG4gICAgfVxuICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgPiBhLFxuICAgICAgPiBzcGFuIHtcbiAgICAgICAgQGluY2x1ZGUgYm9yZGVyLWxlZnQtcmFkaXVzKCRib3JkZXItcmFkaXVzKTtcbiAgICAgIH1cbiAgICB9XG4gICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgID4gYSxcbiAgICAgID4gc3BhbiB7XG4gICAgICAgIEBpbmNsdWRlIGJvcmRlci1yaWdodC1yYWRpdXMoJGJvcmRlci1yYWRpdXMpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vbm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC1zYXNzL2Fzc2V0cy9zdHlsZXNoZWV0cy9ib290c3RyYXAvbWl4aW5zL19wYWdpbmF0aW9uLnNjc3MiLCIvL1xuLy8gUGFnZXIgcGFnaW5hdGlvblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuXG4ucGFnZXIge1xuICBwYWRkaW5nLWxlZnQ6IDA7XG4gIG1hcmdpbjogJGxpbmUtaGVpZ2h0LWNvbXB1dGVkIDA7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gIGxpIHtcbiAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgPiBhLFxuICAgID4gc3BhbiB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBwYWRkaW5nOiA1cHggMTRweDtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRwYWdlci1iZztcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRwYWdlci1ib3JkZXI7XG4gICAgICBib3JkZXItcmFkaXVzOiAkcGFnZXItYm9yZGVyLXJhZGl1cztcbiAgICB9XG5cbiAgICA+IGE6aG92ZXIsXG4gICAgPiBhOmZvY3VzIHtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRwYWdlci1ob3Zlci1iZztcbiAgICB9XG4gIH1cblxuICAubmV4dCB7XG4gICAgPiBhLFxuICAgID4gc3BhbiB7XG4gICAgICBmbG9hdDogcmlnaHQ7XG4gICAgfVxuICB9XG5cbiAgLnByZXZpb3VzIHtcbiAgICA+IGEsXG4gICAgPiBzcGFuIHtcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgIH1cbiAgfVxuXG4gIC5kaXNhYmxlZCB7XG4gICAgPiBhLFxuICAgID4gYTpob3ZlcixcbiAgICA+IGE6Zm9jdXMsXG4gICAgPiBzcGFuIHtcbiAgICAgIGNvbG9yOiAkcGFnZXItZGlzYWJsZWQtY29sb3I7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcGFnZXItYmc7XG4gICAgICBjdXJzb3I6ICRjdXJzb3ItZGlzYWJsZWQ7XG4gICAgfVxuICB9XG59XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9ub2RlX21vZHVsZXMvYm9vdHN0cmFwLXNhc3MvYXNzZXRzL3N0eWxlc2hlZXRzL2Jvb3RzdHJhcC9fcGFnZXIuc2NzcyIsIi8vXG4vLyBMYWJlbHNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi5sYWJlbCB7XG4gIGRpc3BsYXk6IGlubGluZTtcbiAgcGFkZGluZzogLjJlbSAuNmVtIC4zZW07XG4gIGZvbnQtc2l6ZTogNzUlO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGNvbG9yOiAkbGFiZWwtY29sb3I7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuICBib3JkZXItcmFkaXVzOiAuMjVlbTtcblxuICAvLyBbY29udmVydGVyXSBleHRyYWN0ZWQgYSYgdG8gYS5sYWJlbFxuXG4gIC8vIEVtcHR5IGxhYmVscyBjb2xsYXBzZSBhdXRvbWF0aWNhbGx5IChub3QgYXZhaWxhYmxlIGluIElFOClcbiAgJjplbXB0eSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gIC8vIFF1aWNrIGZpeCBmb3IgbGFiZWxzIGluIGJ1dHRvbnNcbiAgLmJ0biAmIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAtMXB4O1xuICB9XG59XG5cbi8vIEFkZCBob3ZlciBlZmZlY3RzLCBidXQgb25seSBmb3IgbGlua3NcbmEubGFiZWwge1xuICAmOmhvdmVyLFxuICAmOmZvY3VzIHtcbiAgICBjb2xvcjogJGxhYmVsLWxpbmstaG92ZXItY29sb3I7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxufVxuXG4vLyBDb2xvcnNcbi8vIENvbnRleHR1YWwgdmFyaWF0aW9ucyAobGlua2VkIGxhYmVscyBnZXQgZGFya2VyIG9uIDpob3ZlcilcblxuLmxhYmVsLWRlZmF1bHQge1xuICBAaW5jbHVkZSBsYWJlbC12YXJpYW50KCRsYWJlbC1kZWZhdWx0LWJnKTtcbn1cblxuLmxhYmVsLXByaW1hcnkge1xuICBAaW5jbHVkZSBsYWJlbC12YXJpYW50KCRsYWJlbC1wcmltYXJ5LWJnKTtcbn1cblxuLmxhYmVsLXN1Y2Nlc3Mge1xuICBAaW5jbHVkZSBsYWJlbC12YXJpYW50KCRsYWJlbC1zdWNjZXNzLWJnKTtcbn1cblxuLmxhYmVsLWluZm8ge1xuICBAaW5jbHVkZSBsYWJlbC12YXJpYW50KCRsYWJlbC1pbmZvLWJnKTtcbn1cblxuLmxhYmVsLXdhcm5pbmcge1xuICBAaW5jbHVkZSBsYWJlbC12YXJpYW50KCRsYWJlbC13YXJuaW5nLWJnKTtcbn1cblxuLmxhYmVsLWRhbmdlciB7XG4gIEBpbmNsdWRlIGxhYmVsLXZhcmlhbnQoJGxhYmVsLWRhbmdlci1iZyk7XG59XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9ub2RlX21vZHVsZXMvYm9vdHN0cmFwLXNhc3MvYXNzZXRzL3N0eWxlc2hlZXRzL2Jvb3RzdHJhcC9fbGFiZWxzLnNjc3MiLCIvLyBMYWJlbHNcblxuQG1peGluIGxhYmVsLXZhcmlhbnQoJGNvbG9yKSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjtcblxuICAmW2hyZWZdIHtcbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogZGFya2VuKCRjb2xvciwgMTAlKTtcbiAgICB9XG4gIH1cbn1cblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL25vZGVfbW9kdWxlcy9ib290c3RyYXAtc2Fzcy9hc3NldHMvc3R5bGVzaGVldHMvYm9vdHN0cmFwL21peGlucy9fbGFiZWxzLnNjc3MiLCIvL1xuLy8gQmFkZ2VzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5cbi8vIEJhc2UgY2xhc3Ncbi5iYWRnZSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWluLXdpZHRoOiAxMHB4O1xuICBwYWRkaW5nOiAzcHggN3B4O1xuICBmb250LXNpemU6ICRmb250LXNpemUtc21hbGw7XG4gIGZvbnQtd2VpZ2h0OiAkYmFkZ2UtZm9udC13ZWlnaHQ7XG4gIGNvbG9yOiAkYmFkZ2UtY29sb3I7XG4gIGxpbmUtaGVpZ2h0OiAkYmFkZ2UtbGluZS1oZWlnaHQ7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGJhZGdlLWJnO1xuICBib3JkZXItcmFkaXVzOiAkYmFkZ2UtYm9yZGVyLXJhZGl1cztcblxuICAvLyBFbXB0eSBiYWRnZXMgY29sbGFwc2UgYXV0b21hdGljYWxseSAobm90IGF2YWlsYWJsZSBpbiBJRTgpXG4gICY6ZW1wdHkge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICAvLyBRdWljayBmaXggZm9yIGJhZGdlcyBpbiBidXR0b25zXG4gIC5idG4gJiB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogLTFweDtcbiAgfVxuXG4gIC5idG4teHMgJixcbiAgLmJ0bi1ncm91cC14cyA+IC5idG4gJiB7XG4gICAgdG9wOiAwO1xuICAgIHBhZGRpbmc6IDFweCA1cHg7XG4gIH1cblxuICAvLyBbY29udmVydGVyXSBleHRyYWN0ZWQgYSYgdG8gYS5iYWRnZVxuXG4gIC8vIEFjY291bnQgZm9yIGJhZGdlcyBpbiBuYXZzXG4gIC5saXN0LWdyb3VwLWl0ZW0uYWN0aXZlID4gJixcbiAgLm5hdi1waWxscyA+IC5hY3RpdmUgPiBhID4gJiB7XG4gICAgY29sb3I6ICRiYWRnZS1hY3RpdmUtY29sb3I7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJhZGdlLWFjdGl2ZS1iZztcbiAgfVxuXG4gIC5saXN0LWdyb3VwLWl0ZW0gPiAmIHtcbiAgICBmbG9hdDogcmlnaHQ7XG4gIH1cblxuICAubGlzdC1ncm91cC1pdGVtID4gJiArICYge1xuICAgIG1hcmdpbi1yaWdodDogNXB4O1xuICB9XG5cbiAgLm5hdi1waWxscyA+IGxpID4gYSA+ICYge1xuICAgIG1hcmdpbi1sZWZ0OiAzcHg7XG4gIH1cbn1cblxuLy8gSG92ZXIgc3RhdGUsIGJ1dCBvbmx5IGZvciBsaW5rc1xuYS5iYWRnZSB7XG4gICY6aG92ZXIsXG4gICY6Zm9jdXMge1xuICAgIGNvbG9yOiAkYmFkZ2UtbGluay1ob3Zlci1jb2xvcjtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICB9XG59XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9ub2RlX21vZHVsZXMvYm9vdHN0cmFwLXNhc3MvYXNzZXRzL3N0eWxlc2hlZXRzL2Jvb3RzdHJhcC9fYmFkZ2VzLnNjc3MiLCIvL1xuLy8gSnVtYm90cm9uXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5cbi5qdW1ib3Ryb24ge1xuICBwYWRkaW5nLXRvcDogICAgJGp1bWJvdHJvbi1wYWRkaW5nO1xuICBwYWRkaW5nLWJvdHRvbTogJGp1bWJvdHJvbi1wYWRkaW5nO1xuICBtYXJnaW4tYm90dG9tOiAkanVtYm90cm9uLXBhZGRpbmc7XG4gIGNvbG9yOiAkanVtYm90cm9uLWNvbG9yO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkanVtYm90cm9uLWJnO1xuXG4gIGgxLFxuICAuaDEge1xuICAgIGNvbG9yOiAkanVtYm90cm9uLWhlYWRpbmctY29sb3I7XG4gIH1cblxuICBwIHtcbiAgICBtYXJnaW4tYm90dG9tOiAoJGp1bWJvdHJvbi1wYWRkaW5nIC8gMik7XG4gICAgZm9udC1zaXplOiAkanVtYm90cm9uLWZvbnQtc2l6ZTtcbiAgICBmb250LXdlaWdodDogMjAwO1xuICB9XG5cbiAgPiBociB7XG4gICAgYm9yZGVyLXRvcC1jb2xvcjogZGFya2VuKCRqdW1ib3Ryb24tYmcsIDEwJSk7XG4gIH1cblxuICAuY29udGFpbmVyICYsXG4gIC5jb250YWluZXItZmx1aWQgJiB7XG4gICAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXMtbGFyZ2U7IC8vIE9ubHkgcm91bmQgY29ybmVycyBhdCBoaWdoZXIgcmVzb2x1dGlvbnMgaWYgY29udGFpbmVkIGluIGEgY29udGFpbmVyXG4gICAgcGFkZGluZy1sZWZ0OiAgKCRncmlkLWd1dHRlci13aWR0aCAvIDIpO1xuICAgIHBhZGRpbmctcmlnaHQ6ICgkZ3JpZC1ndXR0ZXItd2lkdGggLyAyKTtcbiAgfVxuXG4gIC5jb250YWluZXIge1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgfVxuXG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6ICRzY3JlZW4tc20tbWluKSB7XG4gICAgcGFkZGluZy10b3A6ICAgICgkanVtYm90cm9uLXBhZGRpbmcgKiAxLjYpO1xuICAgIHBhZGRpbmctYm90dG9tOiAoJGp1bWJvdHJvbi1wYWRkaW5nICogMS42KTtcblxuICAgIC5jb250YWluZXIgJixcbiAgICAuY29udGFpbmVyLWZsdWlkICYge1xuICAgICAgcGFkZGluZy1sZWZ0OiAgKCRqdW1ib3Ryb24tcGFkZGluZyAqIDIpO1xuICAgICAgcGFkZGluZy1yaWdodDogKCRqdW1ib3Ryb24tcGFkZGluZyAqIDIpO1xuICAgIH1cblxuICAgIGgxLFxuICAgIC5oMSB7XG4gICAgICBmb250LXNpemU6ICRqdW1ib3Ryb24taGVhZGluZy1mb250LXNpemU7XG4gICAgfVxuICB9XG59XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9ub2RlX21vZHVsZXMvYm9vdHN0cmFwLXNhc3MvYXNzZXRzL3N0eWxlc2hlZXRzL2Jvb3RzdHJhcC9fanVtYm90cm9uLnNjc3MiLCIvL1xuLy8gVGh1bWJuYWlsc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuXG4vLyBNaXhpbiBhbmQgYWRqdXN0IHRoZSByZWd1bGFyIGltYWdlIGNsYXNzXG4udGh1bWJuYWlsIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmc6ICR0aHVtYm5haWwtcGFkZGluZztcbiAgbWFyZ2luLWJvdHRvbTogJGxpbmUtaGVpZ2h0LWNvbXB1dGVkO1xuICBsaW5lLWhlaWdodDogJGxpbmUtaGVpZ2h0LWJhc2U7XG4gIGJhY2tncm91bmQtY29sb3I6ICR0aHVtYm5haWwtYmc7XG4gIGJvcmRlcjogMXB4IHNvbGlkICR0aHVtYm5haWwtYm9yZGVyO1xuICBib3JkZXItcmFkaXVzOiAkdGh1bWJuYWlsLWJvcmRlci1yYWRpdXM7XG4gIEBpbmNsdWRlIHRyYW5zaXRpb24oYm9yZGVyIC4ycyBlYXNlLWluLW91dCk7XG5cbiAgPiBpbWcsXG4gIGEgPiBpbWcge1xuICAgIEBpbmNsdWRlIGltZy1yZXNwb25zaXZlO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgfVxuXG4gIC8vIFtjb252ZXJ0ZXJdIGV4dHJhY3RlZCBhJjpob3ZlciwgYSY6Zm9jdXMsIGEmLmFjdGl2ZSB0byBhLnRodW1ibmFpbDpob3ZlciwgYS50aHVtYm5haWw6Zm9jdXMsIGEudGh1bWJuYWlsLmFjdGl2ZVxuXG4gIC8vIEltYWdlIGNhcHRpb25zXG4gIC5jYXB0aW9uIHtcbiAgICBwYWRkaW5nOiAkdGh1bWJuYWlsLWNhcHRpb24tcGFkZGluZztcbiAgICBjb2xvcjogJHRodW1ibmFpbC1jYXB0aW9uLWNvbG9yO1xuICB9XG59XG5cbi8vIEFkZCBhIGhvdmVyIHN0YXRlIGZvciBsaW5rZWQgdmVyc2lvbnMgb25seVxuYS50aHVtYm5haWw6aG92ZXIsXG5hLnRodW1ibmFpbDpmb2N1cyxcbmEudGh1bWJuYWlsLmFjdGl2ZSB7XG4gIGJvcmRlci1jb2xvcjogJGxpbmstY29sb3I7XG59XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9ub2RlX21vZHVsZXMvYm9vdHN0cmFwLXNhc3MvYXNzZXRzL3N0eWxlc2hlZXRzL2Jvb3RzdHJhcC9fdGh1bWJuYWlscy5zY3NzIiwiLy9cbi8vIEFsZXJ0c1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuXG4vLyBCYXNlIHN0eWxlc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4uYWxlcnQge1xuICBwYWRkaW5nOiAkYWxlcnQtcGFkZGluZztcbiAgbWFyZ2luLWJvdHRvbTogJGxpbmUtaGVpZ2h0LWNvbXB1dGVkO1xuICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXJhZGl1czogJGFsZXJ0LWJvcmRlci1yYWRpdXM7XG5cbiAgLy8gSGVhZGluZ3MgZm9yIGxhcmdlciBhbGVydHNcbiAgaDQge1xuICAgIG1hcmdpbi10b3A6IDA7XG4gICAgLy8gU3BlY2lmaWVkIGZvciB0aGUgaDQgdG8gcHJldmVudCBjb25mbGljdHMgb2YgY2hhbmdpbmcgJGhlYWRpbmdzLWNvbG9yXG4gICAgY29sb3I6IGluaGVyaXQ7XG4gIH1cblxuICAvLyBQcm92aWRlIGNsYXNzIGZvciBsaW5rcyB0aGF0IG1hdGNoIGFsZXJ0c1xuICAuYWxlcnQtbGluayB7XG4gICAgZm9udC13ZWlnaHQ6ICRhbGVydC1saW5rLWZvbnQtd2VpZ2h0O1xuICB9XG5cbiAgLy8gSW1wcm92ZSBhbGlnbm1lbnQgYW5kIHNwYWNpbmcgb2YgaW5uZXIgY29udGVudFxuICA+IHAsXG4gID4gdWwge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cblxuICA+IHAgKyBwIHtcbiAgICBtYXJnaW4tdG9wOiA1cHg7XG4gIH1cbn1cblxuLy8gRGlzbWlzc2libGUgYWxlcnRzXG4vL1xuLy8gRXhwYW5kIHRoZSByaWdodCBwYWRkaW5nIGFuZCBhY2NvdW50IGZvciB0aGUgY2xvc2UgYnV0dG9uJ3MgcG9zaXRpb25pbmcuXG5cbi5hbGVydC1kaXNtaXNzYWJsZSwgLy8gVGhlIG1pc3NwZWxsZWQgLmFsZXJ0LWRpc21pc3NhYmxlIHdhcyBkZXByZWNhdGVkIGluIDMuMi4wLlxuLmFsZXJ0LWRpc21pc3NpYmxlIHtcbiAgcGFkZGluZy1yaWdodDogKCRhbGVydC1wYWRkaW5nICsgMjApO1xuXG4gIC8vIEFkanVzdCBjbG9zZSBsaW5rIHBvc2l0aW9uXG4gIC5jbG9zZSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogLTJweDtcbiAgICByaWdodDogLTIxcHg7XG4gICAgY29sb3I6IGluaGVyaXQ7XG4gIH1cbn1cblxuLy8gQWx0ZXJuYXRlIHN0eWxlc1xuLy9cbi8vIEdlbmVyYXRlIGNvbnRleHR1YWwgbW9kaWZpZXIgY2xhc3NlcyBmb3IgY29sb3JpemluZyB0aGUgYWxlcnQuXG5cbi5hbGVydC1zdWNjZXNzIHtcbiAgQGluY2x1ZGUgYWxlcnQtdmFyaWFudCgkYWxlcnQtc3VjY2Vzcy1iZywgJGFsZXJ0LXN1Y2Nlc3MtYm9yZGVyLCAkYWxlcnQtc3VjY2Vzcy10ZXh0KTtcbn1cblxuLmFsZXJ0LWluZm8ge1xuICBAaW5jbHVkZSBhbGVydC12YXJpYW50KCRhbGVydC1pbmZvLWJnLCAkYWxlcnQtaW5mby1ib3JkZXIsICRhbGVydC1pbmZvLXRleHQpO1xufVxuXG4uYWxlcnQtd2FybmluZyB7XG4gIEBpbmNsdWRlIGFsZXJ0LXZhcmlhbnQoJGFsZXJ0LXdhcm5pbmctYmcsICRhbGVydC13YXJuaW5nLWJvcmRlciwgJGFsZXJ0LXdhcm5pbmctdGV4dCk7XG59XG5cbi5hbGVydC1kYW5nZXIge1xuICBAaW5jbHVkZSBhbGVydC12YXJpYW50KCRhbGVydC1kYW5nZXItYmcsICRhbGVydC1kYW5nZXItYm9yZGVyLCAkYWxlcnQtZGFuZ2VyLXRleHQpO1xufVxuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vbm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC1zYXNzL2Fzc2V0cy9zdHlsZXNoZWV0cy9ib290c3RyYXAvX2FsZXJ0cy5zY3NzIiwiLy8gQWxlcnRzXG5cbkBtaXhpbiBhbGVydC12YXJpYW50KCRiYWNrZ3JvdW5kLCAkYm9yZGVyLCAkdGV4dC1jb2xvcikge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcbiAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyO1xuICBjb2xvcjogJHRleHQtY29sb3I7XG5cbiAgaHIge1xuICAgIGJvcmRlci10b3AtY29sb3I6IGRhcmtlbigkYm9yZGVyLCA1JSk7XG4gIH1cbiAgLmFsZXJ0LWxpbmsge1xuICAgIGNvbG9yOiBkYXJrZW4oJHRleHQtY29sb3IsIDEwJSk7XG4gIH1cbn1cblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL25vZGVfbW9kdWxlcy9ib290c3RyYXAtc2Fzcy9hc3NldHMvc3R5bGVzaGVldHMvYm9vdHN0cmFwL21peGlucy9fYWxlcnRzLnNjc3MiLCIvL1xuLy8gUHJvZ3Jlc3MgYmFyc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuXG4vLyBCYXIgYW5pbWF0aW9uc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vLyBXZWJLaXRcbkAtd2Via2l0LWtleWZyYW1lcyBwcm9ncmVzcy1iYXItc3RyaXBlcyB7XG4gIGZyb20gIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogNDBweCAwOyB9XG4gIHRvICAgIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogMCAwOyB9XG59XG5cbi8vIFNwZWMgYW5kIElFMTArXG5Aa2V5ZnJhbWVzIHByb2dyZXNzLWJhci1zdHJpcGVzIHtcbiAgZnJvbSAgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiA0MHB4IDA7IH1cbiAgdG8gICAgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIDA7IH1cbn1cblxuXG4vLyBCYXIgaXRzZWxmXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vIE91dGVyIGNvbnRhaW5lclxuLnByb2dyZXNzIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgaGVpZ2h0OiAkbGluZS1oZWlnaHQtY29tcHV0ZWQ7XG4gIG1hcmdpbi1ib3R0b206ICRsaW5lLWhlaWdodC1jb21wdXRlZDtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHByb2dyZXNzLWJnO1xuICBib3JkZXItcmFkaXVzOiAkcHJvZ3Jlc3MtYm9yZGVyLXJhZGl1cztcbiAgQGluY2x1ZGUgYm94LXNoYWRvdyhpbnNldCAwIDFweCAycHggcmdiYSgwLDAsMCwuMSkpO1xufVxuXG4vLyBCYXIgb2YgcHJvZ3Jlc3Ncbi5wcm9ncmVzcy1iYXIge1xuICBmbG9hdDogbGVmdDtcbiAgd2lkdGg6IDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1zbWFsbDtcbiAgbGluZS1oZWlnaHQ6ICRsaW5lLWhlaWdodC1jb21wdXRlZDtcbiAgY29sb3I6ICRwcm9ncmVzcy1iYXItY29sb3I7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHByb2dyZXNzLWJhci1iZztcbiAgQGluY2x1ZGUgYm94LXNoYWRvdyhpbnNldCAwIC0xcHggMCByZ2JhKDAsMCwwLC4xNSkpO1xuICBAaW5jbHVkZSB0cmFuc2l0aW9uKHdpZHRoIC42cyBlYXNlKTtcbn1cblxuLy8gU3RyaXBlZCBiYXJzXG4vL1xuLy8gYC5wcm9ncmVzcy1zdHJpcGVkIC5wcm9ncmVzcy1iYXJgIGlzIGRlcHJlY2F0ZWQgYXMgb2YgdjMuMi4wIGluIGZhdm9yIG9mIHRoZVxuLy8gYC5wcm9ncmVzcy1iYXItc3RyaXBlZGAgY2xhc3MsIHdoaWNoIHlvdSBqdXN0IGFkZCB0byBhbiBleGlzdGluZ1xuLy8gYC5wcm9ncmVzcy1iYXJgLlxuLnByb2dyZXNzLXN0cmlwZWQgLnByb2dyZXNzLWJhcixcbi5wcm9ncmVzcy1iYXItc3RyaXBlZCB7XG4gIEBpbmNsdWRlIGdyYWRpZW50LXN0cmlwZWQ7XG4gIGJhY2tncm91bmQtc2l6ZTogNDBweCA0MHB4O1xufVxuXG4vLyBDYWxsIGFuaW1hdGlvbiBmb3IgdGhlIGFjdGl2ZSBvbmVcbi8vXG4vLyBgLnByb2dyZXNzLmFjdGl2ZSAucHJvZ3Jlc3MtYmFyYCBpcyBkZXByZWNhdGVkIGFzIG9mIHYzLjIuMCBpbiBmYXZvciBvZiB0aGVcbi8vIGAucHJvZ3Jlc3MtYmFyLmFjdGl2ZWAgYXBwcm9hY2guXG4ucHJvZ3Jlc3MuYWN0aXZlIC5wcm9ncmVzcy1iYXIsXG4ucHJvZ3Jlc3MtYmFyLmFjdGl2ZSB7XG4gIEBpbmNsdWRlIGFuaW1hdGlvbihwcm9ncmVzcy1iYXItc3RyaXBlcyAycyBsaW5lYXIgaW5maW5pdGUpO1xufVxuXG5cbi8vIFZhcmlhdGlvbnNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLnByb2dyZXNzLWJhci1zdWNjZXNzIHtcbiAgQGluY2x1ZGUgcHJvZ3Jlc3MtYmFyLXZhcmlhbnQoJHByb2dyZXNzLWJhci1zdWNjZXNzLWJnKTtcbn1cblxuLnByb2dyZXNzLWJhci1pbmZvIHtcbiAgQGluY2x1ZGUgcHJvZ3Jlc3MtYmFyLXZhcmlhbnQoJHByb2dyZXNzLWJhci1pbmZvLWJnKTtcbn1cblxuLnByb2dyZXNzLWJhci13YXJuaW5nIHtcbiAgQGluY2x1ZGUgcHJvZ3Jlc3MtYmFyLXZhcmlhbnQoJHByb2dyZXNzLWJhci13YXJuaW5nLWJnKTtcbn1cblxuLnByb2dyZXNzLWJhci1kYW5nZXIge1xuICBAaW5jbHVkZSBwcm9ncmVzcy1iYXItdmFyaWFudCgkcHJvZ3Jlc3MtYmFyLWRhbmdlci1iZyk7XG59XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9ub2RlX21vZHVsZXMvYm9vdHN0cmFwLXNhc3MvYXNzZXRzL3N0eWxlc2hlZXRzL2Jvb3RzdHJhcC9fcHJvZ3Jlc3MtYmFycy5zY3NzIiwiLy8gR3JhZGllbnRzXG5cblxuXG4vLyBIb3Jpem9udGFsIGdyYWRpZW50LCBmcm9tIGxlZnQgdG8gcmlnaHRcbi8vXG4vLyBDcmVhdGVzIHR3byBjb2xvciBzdG9wcywgc3RhcnQgYW5kIGVuZCwgYnkgc3BlY2lmeWluZyBhIGNvbG9yIGFuZCBwb3NpdGlvbiBmb3IgZWFjaCBjb2xvciBzdG9wLlxuLy8gQ29sb3Igc3RvcHMgYXJlIG5vdCBhdmFpbGFibGUgaW4gSUU5IGFuZCBiZWxvdy5cbkBtaXhpbiBncmFkaWVudC1ob3Jpem9udGFsKCRzdGFydC1jb2xvcjogIzU1NSwgJGVuZC1jb2xvcjogIzMzMywgJHN0YXJ0LXBlcmNlbnQ6IDAlLCAkZW5kLXBlcmNlbnQ6IDEwMCUpIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQobGVmdCwgJHN0YXJ0LWNvbG9yICRzdGFydC1wZXJjZW50LCAkZW5kLWNvbG9yICRlbmQtcGVyY2VudCk7IC8vIFNhZmFyaSA1LjEtNiwgQ2hyb21lIDEwK1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtby1saW5lYXItZ3JhZGllbnQobGVmdCwgJHN0YXJ0LWNvbG9yICRzdGFydC1wZXJjZW50LCAkZW5kLWNvbG9yICRlbmQtcGVyY2VudCk7IC8vIE9wZXJhIDEyXG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgJHN0YXJ0LWNvbG9yICRzdGFydC1wZXJjZW50LCAkZW5kLWNvbG9yICRlbmQtcGVyY2VudCk7IC8vIFN0YW5kYXJkLCBJRTEwLCBGaXJlZm94IDE2KywgT3BlcmEgMTIuMTArLCBTYWZhcmkgNyssIENocm9tZSAyNitcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IHJlcGVhdC14O1xuICBmaWx0ZXI6IHByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudChzdGFydENvbG9yc3RyPScje2llLWhleC1zdHIoJHN0YXJ0LWNvbG9yKX0nLCBlbmRDb2xvcnN0cj0nI3tpZS1oZXgtc3RyKCRlbmQtY29sb3IpfScsIEdyYWRpZW50VHlwZT0xKTsgLy8gSUU5IGFuZCBkb3duXG59XG5cbi8vIFZlcnRpY2FsIGdyYWRpZW50LCBmcm9tIHRvcCB0byBib3R0b21cbi8vXG4vLyBDcmVhdGVzIHR3byBjb2xvciBzdG9wcywgc3RhcnQgYW5kIGVuZCwgYnkgc3BlY2lmeWluZyBhIGNvbG9yIGFuZCBwb3NpdGlvbiBmb3IgZWFjaCBjb2xvciBzdG9wLlxuLy8gQ29sb3Igc3RvcHMgYXJlIG5vdCBhdmFpbGFibGUgaW4gSUU5IGFuZCBiZWxvdy5cbkBtaXhpbiBncmFkaWVudC12ZXJ0aWNhbCgkc3RhcnQtY29sb3I6ICM1NTUsICRlbmQtY29sb3I6ICMzMzMsICRzdGFydC1wZXJjZW50OiAwJSwgJGVuZC1wZXJjZW50OiAxMDAlKSB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KHRvcCwgJHN0YXJ0LWNvbG9yICRzdGFydC1wZXJjZW50LCAkZW5kLWNvbG9yICRlbmQtcGVyY2VudCk7ICAvLyBTYWZhcmkgNS4xLTYsIENocm9tZSAxMCtcbiAgYmFja2dyb3VuZC1pbWFnZTogLW8tbGluZWFyLWdyYWRpZW50KHRvcCwgJHN0YXJ0LWNvbG9yICRzdGFydC1wZXJjZW50LCAkZW5kLWNvbG9yICRlbmQtcGVyY2VudCk7ICAvLyBPcGVyYSAxMlxuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCAkc3RhcnQtY29sb3IgJHN0YXJ0LXBlcmNlbnQsICRlbmQtY29sb3IgJGVuZC1wZXJjZW50KTsgLy8gU3RhbmRhcmQsIElFMTAsIEZpcmVmb3ggMTYrLCBPcGVyYSAxMi4xMCssIFNhZmFyaSA3KywgQ2hyb21lIDI2K1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogcmVwZWF0LXg7XG4gIGZpbHRlcjogcHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LmdyYWRpZW50KHN0YXJ0Q29sb3JzdHI9JyN7aWUtaGV4LXN0cigkc3RhcnQtY29sb3IpfScsIGVuZENvbG9yc3RyPScje2llLWhleC1zdHIoJGVuZC1jb2xvcil9JywgR3JhZGllbnRUeXBlPTApOyAvLyBJRTkgYW5kIGRvd25cbn1cblxuQG1peGluIGdyYWRpZW50LWRpcmVjdGlvbmFsKCRzdGFydC1jb2xvcjogIzU1NSwgJGVuZC1jb2xvcjogIzMzMywgJGRlZzogNDVkZWcpIHtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IHJlcGVhdC14O1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudCgkZGVnLCAkc3RhcnQtY29sb3IsICRlbmQtY29sb3IpOyAvLyBTYWZhcmkgNS4xLTYsIENocm9tZSAxMCtcbiAgYmFja2dyb3VuZC1pbWFnZTogLW8tbGluZWFyLWdyYWRpZW50KCRkZWcsICRzdGFydC1jb2xvciwgJGVuZC1jb2xvcik7IC8vIE9wZXJhIDEyXG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCgkZGVnLCAkc3RhcnQtY29sb3IsICRlbmQtY29sb3IpOyAvLyBTdGFuZGFyZCwgSUUxMCwgRmlyZWZveCAxNissIE9wZXJhIDEyLjEwKywgU2FmYXJpIDcrLCBDaHJvbWUgMjYrXG59XG5AbWl4aW4gZ3JhZGllbnQtaG9yaXpvbnRhbC10aHJlZS1jb2xvcnMoJHN0YXJ0LWNvbG9yOiAjMDBiM2VlLCAkbWlkLWNvbG9yOiAjN2E0M2I2LCAkY29sb3Itc3RvcDogNTAlLCAkZW5kLWNvbG9yOiAjYzMzMjVmKSB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KGxlZnQsICRzdGFydC1jb2xvciwgJG1pZC1jb2xvciAkY29sb3Itc3RvcCwgJGVuZC1jb2xvcik7XG4gIGJhY2tncm91bmQtaW1hZ2U6IC1vLWxpbmVhci1ncmFkaWVudChsZWZ0LCAkc3RhcnQtY29sb3IsICRtaWQtY29sb3IgJGNvbG9yLXN0b3AsICRlbmQtY29sb3IpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsICRzdGFydC1jb2xvciwgJG1pZC1jb2xvciAkY29sb3Itc3RvcCwgJGVuZC1jb2xvcik7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGZpbHRlcjogcHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LmdyYWRpZW50KHN0YXJ0Q29sb3JzdHI9JyN7aWUtaGV4LXN0cigkc3RhcnQtY29sb3IpfScsIGVuZENvbG9yc3RyPScje2llLWhleC1zdHIoJGVuZC1jb2xvcil9JywgR3JhZGllbnRUeXBlPTEpOyAvLyBJRTkgYW5kIGRvd24sIGdldHMgbm8gY29sb3Itc3RvcCBhdCBhbGwgZm9yIHByb3BlciBmYWxsYmFja1xufVxuQG1peGluIGdyYWRpZW50LXZlcnRpY2FsLXRocmVlLWNvbG9ycygkc3RhcnQtY29sb3I6ICMwMGIzZWUsICRtaWQtY29sb3I6ICM3YTQzYjYsICRjb2xvci1zdG9wOiA1MCUsICRlbmQtY29sb3I6ICNjMzMyNWYpIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQoJHN0YXJ0LWNvbG9yLCAkbWlkLWNvbG9yICRjb2xvci1zdG9wLCAkZW5kLWNvbG9yKTtcbiAgYmFja2dyb3VuZC1pbWFnZTogLW8tbGluZWFyLWdyYWRpZW50KCRzdGFydC1jb2xvciwgJG1pZC1jb2xvciAkY29sb3Itc3RvcCwgJGVuZC1jb2xvcik7XG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCgkc3RhcnQtY29sb3IsICRtaWQtY29sb3IgJGNvbG9yLXN0b3AsICRlbmQtY29sb3IpO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICBmaWx0ZXI6IHByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudChzdGFydENvbG9yc3RyPScje2llLWhleC1zdHIoJHN0YXJ0LWNvbG9yKX0nLCBlbmRDb2xvcnN0cj0nI3tpZS1oZXgtc3RyKCRlbmQtY29sb3IpfScsIEdyYWRpZW50VHlwZT0wKTsgLy8gSUU5IGFuZCBkb3duLCBnZXRzIG5vIGNvbG9yLXN0b3AgYXQgYWxsIGZvciBwcm9wZXIgZmFsbGJhY2tcbn1cbkBtaXhpbiBncmFkaWVudC1yYWRpYWwoJGlubmVyLWNvbG9yOiAjNTU1LCAkb3V0ZXItY29sb3I6ICMzMzMpIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1yYWRpYWwtZ3JhZGllbnQoY2lyY2xlLCAkaW5uZXItY29sb3IsICRvdXRlci1jb2xvcik7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHJhZGlhbC1ncmFkaWVudChjaXJjbGUsICRpbm5lci1jb2xvciwgJG91dGVyLWNvbG9yKTtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbn1cbkBtaXhpbiBncmFkaWVudC1zdHJpcGVkKCRjb2xvcjogcmdiYSgyNTUsMjU1LDI1NSwuMTUpLCAkYW5nbGU6IDQ1ZGVnKSB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KCRhbmdsZSwgJGNvbG9yIDI1JSwgdHJhbnNwYXJlbnQgMjUlLCB0cmFuc3BhcmVudCA1MCUsICRjb2xvciA1MCUsICRjb2xvciA3NSUsIHRyYW5zcGFyZW50IDc1JSwgdHJhbnNwYXJlbnQpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtby1saW5lYXItZ3JhZGllbnQoJGFuZ2xlLCAkY29sb3IgMjUlLCB0cmFuc3BhcmVudCAyNSUsIHRyYW5zcGFyZW50IDUwJSwgJGNvbG9yIDUwJSwgJGNvbG9yIDc1JSwgdHJhbnNwYXJlbnQgNzUlLCB0cmFuc3BhcmVudCk7XG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCgkYW5nbGUsICRjb2xvciAyNSUsIHRyYW5zcGFyZW50IDI1JSwgdHJhbnNwYXJlbnQgNTAlLCAkY29sb3IgNTAlLCAkY29sb3IgNzUlLCB0cmFuc3BhcmVudCA3NSUsIHRyYW5zcGFyZW50KTtcbn1cblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL25vZGVfbW9kdWxlcy9ib290c3RyYXAtc2Fzcy9hc3NldHMvc3R5bGVzaGVldHMvYm9vdHN0cmFwL21peGlucy9fZ3JhZGllbnRzLnNjc3MiLCIvLyBQcm9ncmVzcyBiYXJzXG5cbkBtaXhpbiBwcm9ncmVzcy1iYXItdmFyaWFudCgkY29sb3IpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuXG4gIC8vIERlcHJlY2F0ZWQgcGFyZW50IGNsYXNzIHJlcXVpcmVtZW50IGFzIG9mIHYzLjIuMFxuICAucHJvZ3Jlc3Mtc3RyaXBlZCAmIHtcbiAgICBAaW5jbHVkZSBncmFkaWVudC1zdHJpcGVkO1xuICB9XG59XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9ub2RlX21vZHVsZXMvYm9vdHN0cmFwLXNhc3MvYXNzZXRzL3N0eWxlc2hlZXRzL2Jvb3RzdHJhcC9taXhpbnMvX3Byb2dyZXNzLWJhci5zY3NzIiwiLm1lZGlhIHtcbiAgLy8gUHJvcGVyIHNwYWNpbmcgYmV0d2VlbiBpbnN0YW5jZXMgb2YgLm1lZGlhXG4gIG1hcmdpbi10b3A6IDE1cHg7XG5cbiAgJjpmaXJzdC1jaGlsZCB7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgfVxufVxuXG4ubWVkaWEsXG4ubWVkaWEtYm9keSB7XG4gIHpvb206IDE7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5tZWRpYS1ib2R5IHtcbiAgd2lkdGg6IDEwMDAwcHg7XG59XG5cbi5tZWRpYS1vYmplY3Qge1xuICBkaXNwbGF5OiBibG9jaztcblxuICAvLyBGaXggY29sbGFwc2UgaW4gd2Via2l0IGZyb20gbWF4LXdpZHRoOiAxMDAlIGFuZCBkaXNwbGF5OiB0YWJsZS1jZWxsLlxuICAmLmltZy10aHVtYm5haWwge1xuICAgIG1heC13aWR0aDogbm9uZTtcbiAgfVxufVxuXG4ubWVkaWEtcmlnaHQsXG4ubWVkaWEgPiAucHVsbC1yaWdodCB7XG4gIHBhZGRpbmctbGVmdDogMTBweDtcbn1cblxuLm1lZGlhLWxlZnQsXG4ubWVkaWEgPiAucHVsbC1sZWZ0IHtcbiAgcGFkZGluZy1yaWdodDogMTBweDtcbn1cblxuLm1lZGlhLWxlZnQsXG4ubWVkaWEtcmlnaHQsXG4ubWVkaWEtYm9keSB7XG4gIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7XG59XG5cbi5tZWRpYS1taWRkbGUge1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuXG4ubWVkaWEtYm90dG9tIHtcbiAgdmVydGljYWwtYWxpZ246IGJvdHRvbTtcbn1cblxuLy8gUmVzZXQgbWFyZ2lucyBvbiBoZWFkaW5ncyBmb3IgdGlnaHRlciBkZWZhdWx0IHNwYWNpbmdcbi5tZWRpYS1oZWFkaW5nIHtcbiAgbWFyZ2luLXRvcDogMDtcbiAgbWFyZ2luLWJvdHRvbTogNXB4O1xufVxuXG4vLyBNZWRpYSBsaXN0IHZhcmlhdGlvblxuLy9cbi8vIFVuZG8gZGVmYXVsdCB1bC9vbCBzdHlsZXNcbi5tZWRpYS1saXN0IHtcbiAgcGFkZGluZy1sZWZ0OiAwO1xuICBsaXN0LXN0eWxlOiBub25lO1xufVxuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vbm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC1zYXNzL2Fzc2V0cy9zdHlsZXNoZWV0cy9ib290c3RyYXAvX21lZGlhLnNjc3MiLCIvL1xuLy8gTGlzdCBncm91cHNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cblxuLy8gQmFzZSBjbGFzc1xuLy9cbi8vIEVhc2lseSB1c2FibGUgb24gPHVsPiwgPG9sPiwgb3IgPGRpdj4uXG5cbi5saXN0LWdyb3VwIHtcbiAgLy8gTm8gbmVlZCB0byBzZXQgbGlzdC1zdHlsZTogbm9uZTsgc2luY2UgLmxpc3QtZ3JvdXAtaXRlbSBpcyBibG9jayBsZXZlbFxuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICBwYWRkaW5nLWxlZnQ6IDA7IC8vIHJlc2V0IHBhZGRpbmcgYmVjYXVzZSB1bCBhbmQgb2xcbn1cblxuXG4vLyBJbmRpdmlkdWFsIGxpc3QgaXRlbXNcbi8vXG4vLyBVc2Ugb24gYGxpYHMgb3IgYGRpdmBzIHdpdGhpbiB0aGUgYC5saXN0LWdyb3VwYCBwYXJlbnQuXG5cbi5saXN0LWdyb3VwLWl0ZW0ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwYWRkaW5nOiAxMHB4IDE1cHg7XG4gIC8vIFBsYWNlIHRoZSBib3JkZXIgb24gdGhlIGxpc3QgaXRlbXMgYW5kIG5lZ2F0aXZlIG1hcmdpbiB1cCBmb3IgYmV0dGVyIHN0eWxpbmdcbiAgbWFyZ2luLWJvdHRvbTogLTFweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGxpc3QtZ3JvdXAtYmc7XG4gIGJvcmRlcjogMXB4IHNvbGlkICRsaXN0LWdyb3VwLWJvcmRlcjtcblxuICAvLyBSb3VuZCB0aGUgZmlyc3QgYW5kIGxhc3QgaXRlbXNcbiAgJjpmaXJzdC1jaGlsZCB7XG4gICAgQGluY2x1ZGUgYm9yZGVyLXRvcC1yYWRpdXMoJGxpc3QtZ3JvdXAtYm9yZGVyLXJhZGl1cyk7XG4gIH1cbiAgJjpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIEBpbmNsdWRlIGJvcmRlci1ib3R0b20tcmFkaXVzKCRsaXN0LWdyb3VwLWJvcmRlci1yYWRpdXMpO1xuICB9XG59XG5cblxuLy8gSW50ZXJhY3RpdmUgbGlzdCBpdGVtc1xuLy9cbi8vIFVzZSBhbmNob3Igb3IgYnV0dG9uIGVsZW1lbnRzIGluc3RlYWQgb2YgYGxpYHMgb3IgYGRpdmBzIHRvIGNyZWF0ZSBpbnRlcmFjdGl2ZSBpdGVtcy5cbi8vIEluY2x1ZGVzIGFuIGV4dHJhIGAuYWN0aXZlYCBtb2RpZmllciBjbGFzcyBmb3Igc2hvd2luZyBzZWxlY3RlZCBpdGVtcy5cblxuYS5saXN0LWdyb3VwLWl0ZW0sXG5idXR0b24ubGlzdC1ncm91cC1pdGVtIHtcbiAgY29sb3I6ICRsaXN0LWdyb3VwLWxpbmstY29sb3I7XG5cbiAgLmxpc3QtZ3JvdXAtaXRlbS1oZWFkaW5nIHtcbiAgICBjb2xvcjogJGxpc3QtZ3JvdXAtbGluay1oZWFkaW5nLWNvbG9yO1xuICB9XG5cbiAgLy8gSG92ZXIgc3RhdGVcbiAgJjpob3ZlcixcbiAgJjpmb2N1cyB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGNvbG9yOiAkbGlzdC1ncm91cC1saW5rLWhvdmVyLWNvbG9yO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRsaXN0LWdyb3VwLWhvdmVyLWJnO1xuICB9XG59XG5cbmJ1dHRvbi5saXN0LWdyb3VwLWl0ZW0ge1xuICB3aWR0aDogMTAwJTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbn1cblxuLmxpc3QtZ3JvdXAtaXRlbSB7XG4gIC8vIERpc2FibGVkIHN0YXRlXG4gICYuZGlzYWJsZWQsXG4gICYuZGlzYWJsZWQ6aG92ZXIsXG4gICYuZGlzYWJsZWQ6Zm9jdXMge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRsaXN0LWdyb3VwLWRpc2FibGVkLWJnO1xuICAgIGNvbG9yOiAkbGlzdC1ncm91cC1kaXNhYmxlZC1jb2xvcjtcbiAgICBjdXJzb3I6ICRjdXJzb3ItZGlzYWJsZWQ7XG5cbiAgICAvLyBGb3JjZSBjb2xvciB0byBpbmhlcml0IGZvciBjdXN0b20gY29udGVudFxuICAgIC5saXN0LWdyb3VwLWl0ZW0taGVhZGluZyB7XG4gICAgICBjb2xvcjogaW5oZXJpdDtcbiAgICB9XG4gICAgLmxpc3QtZ3JvdXAtaXRlbS10ZXh0IHtcbiAgICAgIGNvbG9yOiAkbGlzdC1ncm91cC1kaXNhYmxlZC10ZXh0LWNvbG9yO1xuICAgIH1cbiAgfVxuXG4gIC8vIEFjdGl2ZSBjbGFzcyBvbiBpdGVtIGl0c2VsZiwgbm90IHBhcmVudFxuICAmLmFjdGl2ZSxcbiAgJi5hY3RpdmU6aG92ZXIsXG4gICYuYWN0aXZlOmZvY3VzIHtcbiAgICB6LWluZGV4OiAyOyAvLyBQbGFjZSBhY3RpdmUgaXRlbXMgYWJvdmUgdGhlaXIgc2libGluZ3MgZm9yIHByb3BlciBib3JkZXIgc3R5bGluZ1xuICAgIGNvbG9yOiAkbGlzdC1ncm91cC1hY3RpdmUtY29sb3I7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGxpc3QtZ3JvdXAtYWN0aXZlLWJnO1xuICAgIGJvcmRlci1jb2xvcjogJGxpc3QtZ3JvdXAtYWN0aXZlLWJvcmRlcjtcblxuICAgIC8vIEZvcmNlIGNvbG9yIHRvIGluaGVyaXQgZm9yIGN1c3RvbSBjb250ZW50XG4gICAgLmxpc3QtZ3JvdXAtaXRlbS1oZWFkaW5nLFxuICAgIC5saXN0LWdyb3VwLWl0ZW0taGVhZGluZyA+IHNtYWxsLFxuICAgIC5saXN0LWdyb3VwLWl0ZW0taGVhZGluZyA+IC5zbWFsbCB7XG4gICAgICBjb2xvcjogaW5oZXJpdDtcbiAgICB9XG4gICAgLmxpc3QtZ3JvdXAtaXRlbS10ZXh0IHtcbiAgICAgIGNvbG9yOiAkbGlzdC1ncm91cC1hY3RpdmUtdGV4dC1jb2xvcjtcbiAgICB9XG4gIH1cbn1cblxuXG4vLyBDb250ZXh0dWFsIHZhcmlhbnRzXG4vL1xuLy8gQWRkIG1vZGlmaWVyIGNsYXNzZXMgdG8gY2hhbmdlIHRleHQgYW5kIGJhY2tncm91bmQgY29sb3Igb24gaW5kaXZpZHVhbCBpdGVtcy5cbi8vIE9yZ2FuaXphdGlvbmFsbHksIHRoaXMgbXVzdCBjb21lIGFmdGVyIHRoZSBgOmhvdmVyYCBzdGF0ZXMuXG5cbkBpbmNsdWRlIGxpc3QtZ3JvdXAtaXRlbS12YXJpYW50KHN1Y2Nlc3MsICRzdGF0ZS1zdWNjZXNzLWJnLCAkc3RhdGUtc3VjY2Vzcy10ZXh0KTtcbkBpbmNsdWRlIGxpc3QtZ3JvdXAtaXRlbS12YXJpYW50KGluZm8sICRzdGF0ZS1pbmZvLWJnLCAkc3RhdGUtaW5mby10ZXh0KTtcbkBpbmNsdWRlIGxpc3QtZ3JvdXAtaXRlbS12YXJpYW50KHdhcm5pbmcsICRzdGF0ZS13YXJuaW5nLWJnLCAkc3RhdGUtd2FybmluZy10ZXh0KTtcbkBpbmNsdWRlIGxpc3QtZ3JvdXAtaXRlbS12YXJpYW50KGRhbmdlciwgJHN0YXRlLWRhbmdlci1iZywgJHN0YXRlLWRhbmdlci10ZXh0KTtcblxuXG4vLyBDdXN0b20gY29udGVudCBvcHRpb25zXG4vL1xuLy8gRXh0cmEgY2xhc3NlcyBmb3IgY3JlYXRpbmcgd2VsbC1mb3JtYXR0ZWQgY29udGVudCB3aXRoaW4gYC5saXN0LWdyb3VwLWl0ZW1gcy5cblxuLmxpc3QtZ3JvdXAtaXRlbS1oZWFkaW5nIHtcbiAgbWFyZ2luLXRvcDogMDtcbiAgbWFyZ2luLWJvdHRvbTogNXB4O1xufVxuLmxpc3QtZ3JvdXAtaXRlbS10ZXh0IHtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgbGluZS1oZWlnaHQ6IDEuMztcbn1cblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL25vZGVfbW9kdWxlcy9ib290c3RyYXAtc2Fzcy9hc3NldHMvc3R5bGVzaGVldHMvYm9vdHN0cmFwL19saXN0LWdyb3VwLnNjc3MiLCIvLyBMaXN0IEdyb3Vwc1xuXG5AbWl4aW4gbGlzdC1ncm91cC1pdGVtLXZhcmlhbnQoJHN0YXRlLCAkYmFja2dyb3VuZCwgJGNvbG9yKSB7XG4gIC5saXN0LWdyb3VwLWl0ZW0tI3skc3RhdGV9IHtcbiAgICBjb2xvcjogJGNvbG9yO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kO1xuXG4gICAgLy8gW2NvbnZlcnRlcl0gZXh0cmFjdGVkIGEmLCBidXR0b24mIHRvIGEubGlzdC1ncm91cC1pdGVtLSN7JHN0YXRlfSwgYnV0dG9uLmxpc3QtZ3JvdXAtaXRlbS0jeyRzdGF0ZX1cbiAgfVxuXG4gIGEubGlzdC1ncm91cC1pdGVtLSN7JHN0YXRlfSxcbiAgYnV0dG9uLmxpc3QtZ3JvdXAtaXRlbS0jeyRzdGF0ZX0ge1xuICAgIGNvbG9yOiAkY29sb3I7XG5cbiAgICAubGlzdC1ncm91cC1pdGVtLWhlYWRpbmcge1xuICAgICAgY29sb3I6IGluaGVyaXQ7XG4gICAgfVxuXG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzIHtcbiAgICAgIGNvbG9yOiAkY29sb3I7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZW4oJGJhY2tncm91bmQsIDUlKTtcbiAgICB9XG4gICAgJi5hY3RpdmUsXG4gICAgJi5hY3RpdmU6aG92ZXIsXG4gICAgJi5hY3RpdmU6Zm9jdXMge1xuICAgICAgY29sb3I6ICNmZmY7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG4gICAgICBib3JkZXItY29sb3I6ICRjb2xvcjtcbiAgICB9XG4gIH1cbn1cblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL25vZGVfbW9kdWxlcy9ib290c3RyYXAtc2Fzcy9hc3NldHMvc3R5bGVzaGVldHMvYm9vdHN0cmFwL21peGlucy9fbGlzdC1ncm91cC5zY3NzIiwiLy9cbi8vIFBhbmVsc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuXG4vLyBCYXNlIGNsYXNzXG4ucGFuZWwge1xuICBtYXJnaW4tYm90dG9tOiAkbGluZS1oZWlnaHQtY29tcHV0ZWQ7XG4gIGJhY2tncm91bmQtY29sb3I6ICRwYW5lbC1iZztcbiAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1yYWRpdXM6ICRwYW5lbC1ib3JkZXItcmFkaXVzO1xuICBAaW5jbHVkZSBib3gtc2hhZG93KDAgMXB4IDFweCByZ2JhKDAsMCwwLC4wNSkpO1xufVxuXG4vLyBQYW5lbCBjb250ZW50c1xuLnBhbmVsLWJvZHkge1xuICBwYWRkaW5nOiAkcGFuZWwtYm9keS1wYWRkaW5nO1xuICBAaW5jbHVkZSBjbGVhcmZpeDtcbn1cblxuLy8gT3B0aW9uYWwgaGVhZGluZ1xuLnBhbmVsLWhlYWRpbmcge1xuICBwYWRkaW5nOiAkcGFuZWwtaGVhZGluZy1wYWRkaW5nO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIEBpbmNsdWRlIGJvcmRlci10b3AtcmFkaXVzKCgkcGFuZWwtYm9yZGVyLXJhZGl1cyAtIDEpKTtcblxuICA+IC5kcm9wZG93biAuZHJvcGRvd24tdG9nZ2xlIHtcbiAgICBjb2xvcjogaW5oZXJpdDtcbiAgfVxufVxuXG4vLyBXaXRoaW4gaGVhZGluZywgc3RyaXAgYW55IGBoKmAgdGFnIG9mIGl0cyBkZWZhdWx0IG1hcmdpbnMgZm9yIHNwYWNpbmcuXG4ucGFuZWwtdGl0bGUge1xuICBtYXJnaW4tdG9wOiAwO1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICBmb250LXNpemU6IGNlaWwoKCRmb250LXNpemUtYmFzZSAqIDEuMTI1KSk7XG4gIGNvbG9yOiBpbmhlcml0O1xuXG4gID4gYSxcbiAgPiBzbWFsbCxcbiAgPiAuc21hbGwsXG4gID4gc21hbGwgPiBhLFxuICA+IC5zbWFsbCA+IGEge1xuICAgIGNvbG9yOiBpbmhlcml0O1xuICB9XG59XG5cbi8vIE9wdGlvbmFsIGZvb3RlciAoc3RheXMgZ3JheSBpbiBldmVyeSBtb2RpZmllciBjbGFzcylcbi5wYW5lbC1mb290ZXIge1xuICBwYWRkaW5nOiAkcGFuZWwtZm9vdGVyLXBhZGRpbmc7XG4gIGJhY2tncm91bmQtY29sb3I6ICRwYW5lbC1mb290ZXItYmc7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAkcGFuZWwtaW5uZXItYm9yZGVyO1xuICBAaW5jbHVkZSBib3JkZXItYm90dG9tLXJhZGl1cygoJHBhbmVsLWJvcmRlci1yYWRpdXMgLSAxKSk7XG59XG5cblxuLy8gTGlzdCBncm91cHMgaW4gcGFuZWxzXG4vL1xuLy8gQnkgZGVmYXVsdCwgc3BhY2Ugb3V0IGxpc3QgZ3JvdXAgY29udGVudCBmcm9tIHBhbmVsIGhlYWRpbmdzIHRvIGFjY291bnQgZm9yXG4vLyBhbnkga2luZCBvZiBjdXN0b20gY29udGVudCBiZXR3ZWVuIHRoZSB0d28uXG5cbi5wYW5lbCB7XG4gID4gLmxpc3QtZ3JvdXAsXG4gID4gLnBhbmVsLWNvbGxhcHNlID4gLmxpc3QtZ3JvdXAge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG5cbiAgICAubGlzdC1ncm91cC1pdGVtIHtcbiAgICAgIGJvcmRlci13aWR0aDogMXB4IDA7XG4gICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgIH1cblxuICAgIC8vIEFkZCBib3JkZXIgdG9wIHJhZGl1cyBmb3IgZmlyc3Qgb25lXG4gICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAubGlzdC1ncm91cC1pdGVtOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgYm9yZGVyLXRvcDogMDtcbiAgICAgICAgQGluY2x1ZGUgYm9yZGVyLXRvcC1yYWRpdXMoKCRwYW5lbC1ib3JkZXItcmFkaXVzIC0gMSkpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEFkZCBib3JkZXIgYm90dG9tIHJhZGl1cyBmb3IgbGFzdCBvbmVcbiAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgLmxpc3QtZ3JvdXAtaXRlbTpsYXN0LWNoaWxkIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgQGluY2x1ZGUgYm9yZGVyLWJvdHRvbS1yYWRpdXMoKCRwYW5lbC1ib3JkZXItcmFkaXVzIC0gMSkpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICA+IC5wYW5lbC1oZWFkaW5nICsgLnBhbmVsLWNvbGxhcHNlID4gLmxpc3QtZ3JvdXAge1xuICAgIC5saXN0LWdyb3VwLWl0ZW06Zmlyc3QtY2hpbGQge1xuICAgICAgQGluY2x1ZGUgYm9yZGVyLXRvcC1yYWRpdXMoMCk7XG4gICAgfVxuICB9XG59XG4vLyBDb2xsYXBzZSBzcGFjZSBiZXR3ZWVuIHdoZW4gdGhlcmUncyBubyBhZGRpdGlvbmFsIGNvbnRlbnQuXG4ucGFuZWwtaGVhZGluZyArIC5saXN0LWdyb3VwIHtcbiAgLmxpc3QtZ3JvdXAtaXRlbTpmaXJzdC1jaGlsZCB7XG4gICAgYm9yZGVyLXRvcC13aWR0aDogMDtcbiAgfVxufVxuLmxpc3QtZ3JvdXAgKyAucGFuZWwtZm9vdGVyIHtcbiAgYm9yZGVyLXRvcC13aWR0aDogMDtcbn1cblxuLy8gVGFibGVzIGluIHBhbmVsc1xuLy9cbi8vIFBsYWNlIGEgbm9uLWJvcmRlcmVkIGAudGFibGVgIHdpdGhpbiBhIHBhbmVsIChub3Qgd2l0aGluIGEgYC5wYW5lbC1ib2R5YCkgYW5kXG4vLyB3YXRjaCBpdCBnbyBmdWxsIHdpZHRoLlxuXG4ucGFuZWwge1xuICA+IC50YWJsZSxcbiAgPiAudGFibGUtcmVzcG9uc2l2ZSA+IC50YWJsZSxcbiAgPiAucGFuZWwtY29sbGFwc2UgPiAudGFibGUge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG5cbiAgICBjYXB0aW9uIHtcbiAgICAgIHBhZGRpbmctbGVmdDogJHBhbmVsLWJvZHktcGFkZGluZztcbiAgICAgIHBhZGRpbmctcmlnaHQ6ICRwYW5lbC1ib2R5LXBhZGRpbmc7XG4gICAgfVxuICB9XG4gIC8vIEFkZCBib3JkZXIgdG9wIHJhZGl1cyBmb3IgZmlyc3Qgb25lXG4gID4gLnRhYmxlOmZpcnN0LWNoaWxkLFxuICA+IC50YWJsZS1yZXNwb25zaXZlOmZpcnN0LWNoaWxkID4gLnRhYmxlOmZpcnN0LWNoaWxkIHtcbiAgICBAaW5jbHVkZSBib3JkZXItdG9wLXJhZGl1cygoJHBhbmVsLWJvcmRlci1yYWRpdXMgLSAxKSk7XG5cbiAgICA+IHRoZWFkOmZpcnN0LWNoaWxkLFxuICAgID4gdGJvZHk6Zmlyc3QtY2hpbGQge1xuICAgICAgPiB0cjpmaXJzdC1jaGlsZCB7XG4gICAgICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6ICgkcGFuZWwtYm9yZGVyLXJhZGl1cyAtIDEpO1xuICAgICAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogKCRwYW5lbC1ib3JkZXItcmFkaXVzIC0gMSk7XG5cbiAgICAgICAgdGQ6Zmlyc3QtY2hpbGQsXG4gICAgICAgIHRoOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAoJHBhbmVsLWJvcmRlci1yYWRpdXMgLSAxKTtcbiAgICAgICAgfVxuICAgICAgICB0ZDpsYXN0LWNoaWxkLFxuICAgICAgICB0aDpsYXN0LWNoaWxkIHtcbiAgICAgICAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogKCRwYW5lbC1ib3JkZXItcmFkaXVzIC0gMSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgLy8gQWRkIGJvcmRlciBib3R0b20gcmFkaXVzIGZvciBsYXN0IG9uZVxuICA+IC50YWJsZTpsYXN0LWNoaWxkLFxuICA+IC50YWJsZS1yZXNwb25zaXZlOmxhc3QtY2hpbGQgPiAudGFibGU6bGFzdC1jaGlsZCB7XG4gICAgQGluY2x1ZGUgYm9yZGVyLWJvdHRvbS1yYWRpdXMoKCRwYW5lbC1ib3JkZXItcmFkaXVzIC0gMSkpO1xuXG4gICAgPiB0Ym9keTpsYXN0LWNoaWxkLFxuICAgID4gdGZvb3Q6bGFzdC1jaGlsZCB7XG4gICAgICA+IHRyOmxhc3QtY2hpbGQge1xuICAgICAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAoJHBhbmVsLWJvcmRlci1yYWRpdXMgLSAxKTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6ICgkcGFuZWwtYm9yZGVyLXJhZGl1cyAtIDEpO1xuXG4gICAgICAgIHRkOmZpcnN0LWNoaWxkLFxuICAgICAgICB0aDpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogKCRwYW5lbC1ib3JkZXItcmFkaXVzIC0gMSk7XG4gICAgICAgIH1cbiAgICAgICAgdGQ6bGFzdC1jaGlsZCxcbiAgICAgICAgdGg6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6ICgkcGFuZWwtYm9yZGVyLXJhZGl1cyAtIDEpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gID4gLnBhbmVsLWJvZHkgKyAudGFibGUsXG4gID4gLnBhbmVsLWJvZHkgKyAudGFibGUtcmVzcG9uc2l2ZSxcbiAgPiAudGFibGUgKyAucGFuZWwtYm9keSxcbiAgPiAudGFibGUtcmVzcG9uc2l2ZSArIC5wYW5lbC1ib2R5IHtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHRhYmxlLWJvcmRlci1jb2xvcjtcbiAgfVxuICA+IC50YWJsZSA+IHRib2R5OmZpcnN0LWNoaWxkID4gdHI6Zmlyc3QtY2hpbGQgdGgsXG4gID4gLnRhYmxlID4gdGJvZHk6Zmlyc3QtY2hpbGQgPiB0cjpmaXJzdC1jaGlsZCB0ZCB7XG4gICAgYm9yZGVyLXRvcDogMDtcbiAgfVxuICA+IC50YWJsZS1ib3JkZXJlZCxcbiAgPiAudGFibGUtcmVzcG9uc2l2ZSA+IC50YWJsZS1ib3JkZXJlZCB7XG4gICAgYm9yZGVyOiAwO1xuICAgID4gdGhlYWQsXG4gICAgPiB0Ym9keSxcbiAgICA+IHRmb290IHtcbiAgICAgID4gdHIge1xuICAgICAgICA+IHRoOmZpcnN0LWNoaWxkLFxuICAgICAgICA+IHRkOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICBib3JkZXItbGVmdDogMDtcbiAgICAgICAgfVxuICAgICAgICA+IHRoOmxhc3QtY2hpbGQsXG4gICAgICAgID4gdGQ6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgYm9yZGVyLXJpZ2h0OiAwO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgID4gdGhlYWQsXG4gICAgPiB0Ym9keSB7XG4gICAgICA+IHRyOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgPiB0ZCxcbiAgICAgICAgPiB0aCB7XG4gICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICA+IHRib2R5LFxuICAgID4gdGZvb3Qge1xuICAgICAgPiB0cjpsYXN0LWNoaWxkIHtcbiAgICAgICAgPiB0ZCxcbiAgICAgICAgPiB0aCB7XG4gICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICA+IC50YWJsZS1yZXNwb25zaXZlIHtcbiAgICBib3JkZXI6IDA7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxufVxuXG5cbi8vIENvbGxhcHNpYmxlIHBhbmVscyAoYWthLCBhY2NvcmRpb24pXG4vL1xuLy8gV3JhcCBhIHNlcmllcyBvZiBwYW5lbHMgaW4gYC5wYW5lbC1ncm91cGAgdG8gdHVybiB0aGVtIGludG8gYW4gYWNjb3JkaW9uIHdpdGhcbi8vIHRoZSBoZWxwIG9mIG91ciBjb2xsYXBzZSBKYXZhU2NyaXB0IHBsdWdpbi5cblxuLnBhbmVsLWdyb3VwIHtcbiAgbWFyZ2luLWJvdHRvbTogJGxpbmUtaGVpZ2h0LWNvbXB1dGVkO1xuXG4gIC8vIFRpZ2h0ZW4gdXAgbWFyZ2luIHNvIGl0J3Mgb25seSBiZXR3ZWVuIHBhbmVsc1xuICAucGFuZWwge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgYm9yZGVyLXJhZGl1czogJHBhbmVsLWJvcmRlci1yYWRpdXM7XG5cbiAgICArIC5wYW5lbCB7XG4gICAgICBtYXJnaW4tdG9wOiA1cHg7XG4gICAgfVxuICB9XG5cbiAgLnBhbmVsLWhlYWRpbmcge1xuICAgIGJvcmRlci1ib3R0b206IDA7XG5cbiAgICArIC5wYW5lbC1jb2xsYXBzZSA+IC5wYW5lbC1ib2R5LFxuICAgICsgLnBhbmVsLWNvbGxhcHNlID4gLmxpc3QtZ3JvdXAge1xuICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRwYW5lbC1pbm5lci1ib3JkZXI7XG4gICAgfVxuICB9XG5cbiAgLnBhbmVsLWZvb3RlciB7XG4gICAgYm9yZGVyLXRvcDogMDtcbiAgICArIC5wYW5lbC1jb2xsYXBzZSAucGFuZWwtYm9keSB7XG4gICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHBhbmVsLWlubmVyLWJvcmRlcjtcbiAgICB9XG4gIH1cbn1cblxuXG4vLyBDb250ZXh0dWFsIHZhcmlhdGlvbnNcbi5wYW5lbC1kZWZhdWx0IHtcbiAgQGluY2x1ZGUgcGFuZWwtdmFyaWFudCgkcGFuZWwtZGVmYXVsdC1ib3JkZXIsICRwYW5lbC1kZWZhdWx0LXRleHQsICRwYW5lbC1kZWZhdWx0LWhlYWRpbmctYmcsICRwYW5lbC1kZWZhdWx0LWJvcmRlcik7XG59XG4ucGFuZWwtcHJpbWFyeSB7XG4gIEBpbmNsdWRlIHBhbmVsLXZhcmlhbnQoJHBhbmVsLXByaW1hcnktYm9yZGVyLCAkcGFuZWwtcHJpbWFyeS10ZXh0LCAkcGFuZWwtcHJpbWFyeS1oZWFkaW5nLWJnLCAkcGFuZWwtcHJpbWFyeS1ib3JkZXIpO1xufVxuLnBhbmVsLXN1Y2Nlc3Mge1xuICBAaW5jbHVkZSBwYW5lbC12YXJpYW50KCRwYW5lbC1zdWNjZXNzLWJvcmRlciwgJHBhbmVsLXN1Y2Nlc3MtdGV4dCwgJHBhbmVsLXN1Y2Nlc3MtaGVhZGluZy1iZywgJHBhbmVsLXN1Y2Nlc3MtYm9yZGVyKTtcbn1cbi5wYW5lbC1pbmZvIHtcbiAgQGluY2x1ZGUgcGFuZWwtdmFyaWFudCgkcGFuZWwtaW5mby1ib3JkZXIsICRwYW5lbC1pbmZvLXRleHQsICRwYW5lbC1pbmZvLWhlYWRpbmctYmcsICRwYW5lbC1pbmZvLWJvcmRlcik7XG59XG4ucGFuZWwtd2FybmluZyB7XG4gIEBpbmNsdWRlIHBhbmVsLXZhcmlhbnQoJHBhbmVsLXdhcm5pbmctYm9yZGVyLCAkcGFuZWwtd2FybmluZy10ZXh0LCAkcGFuZWwtd2FybmluZy1oZWFkaW5nLWJnLCAkcGFuZWwtd2FybmluZy1ib3JkZXIpO1xufVxuLnBhbmVsLWRhbmdlciB7XG4gIEBpbmNsdWRlIHBhbmVsLXZhcmlhbnQoJHBhbmVsLWRhbmdlci1ib3JkZXIsICRwYW5lbC1kYW5nZXItdGV4dCwgJHBhbmVsLWRhbmdlci1oZWFkaW5nLWJnLCAkcGFuZWwtZGFuZ2VyLWJvcmRlcik7XG59XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9ub2RlX21vZHVsZXMvYm9vdHN0cmFwLXNhc3MvYXNzZXRzL3N0eWxlc2hlZXRzL2Jvb3RzdHJhcC9fcGFuZWxzLnNjc3MiLCIvLyBQYW5lbHNcblxuQG1peGluIHBhbmVsLXZhcmlhbnQoJGJvcmRlciwgJGhlYWRpbmctdGV4dC1jb2xvciwgJGhlYWRpbmctYmctY29sb3IsICRoZWFkaW5nLWJvcmRlcikge1xuICBib3JkZXItY29sb3I6ICRib3JkZXI7XG5cbiAgJiA+IC5wYW5lbC1oZWFkaW5nIHtcbiAgICBjb2xvcjogJGhlYWRpbmctdGV4dC1jb2xvcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaGVhZGluZy1iZy1jb2xvcjtcbiAgICBib3JkZXItY29sb3I6ICRoZWFkaW5nLWJvcmRlcjtcblxuICAgICsgLnBhbmVsLWNvbGxhcHNlID4gLnBhbmVsLWJvZHkge1xuICAgICAgYm9yZGVyLXRvcC1jb2xvcjogJGJvcmRlcjtcbiAgICB9XG4gICAgLmJhZGdlIHtcbiAgICAgIGNvbG9yOiAkaGVhZGluZy1iZy1jb2xvcjtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRoZWFkaW5nLXRleHQtY29sb3I7XG4gICAgfVxuICB9XG4gICYgPiAucGFuZWwtZm9vdGVyIHtcbiAgICArIC5wYW5lbC1jb2xsYXBzZSA+IC5wYW5lbC1ib2R5IHtcbiAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRib3JkZXI7XG4gICAgfVxuICB9XG59XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9ub2RlX21vZHVsZXMvYm9vdHN0cmFwLXNhc3MvYXNzZXRzL3N0eWxlc2hlZXRzL2Jvb3RzdHJhcC9taXhpbnMvX3BhbmVscy5zY3NzIiwiLy8gRW1iZWRzIHJlc3BvbnNpdmVcbi8vXG4vLyBDcmVkaXQ6IE5pY29sYXMgR2FsbGFnaGVyIGFuZCBTVUlUIENTUy5cblxuLmVtYmVkLXJlc3BvbnNpdmUge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBoZWlnaHQ6IDA7XG4gIHBhZGRpbmc6IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgLmVtYmVkLXJlc3BvbnNpdmUtaXRlbSxcbiAgaWZyYW1lLFxuICBlbWJlZCxcbiAgb2JqZWN0LFxuICB2aWRlbyB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIGJvdHRvbTogMDtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYm9yZGVyOiAwO1xuICB9XG59XG5cbi8vIE1vZGlmaWVyIGNsYXNzIGZvciAxNjo5IGFzcGVjdCByYXRpb1xuLmVtYmVkLXJlc3BvbnNpdmUtMTZieTkge1xuICBwYWRkaW5nLWJvdHRvbTogNTYuMjUlO1xufVxuXG4vLyBNb2RpZmllciBjbGFzcyBmb3IgNDozIGFzcGVjdCByYXRpb1xuLmVtYmVkLXJlc3BvbnNpdmUtNGJ5MyB7XG4gIHBhZGRpbmctYm90dG9tOiA3NSU7XG59XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9ub2RlX21vZHVsZXMvYm9vdHN0cmFwLXNhc3MvYXNzZXRzL3N0eWxlc2hlZXRzL2Jvb3RzdHJhcC9fcmVzcG9uc2l2ZS1lbWJlZC5zY3NzIiwiLy9cbi8vIFdlbGxzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5cbi8vIEJhc2UgY2xhc3Ncbi53ZWxsIHtcbiAgbWluLWhlaWdodDogMjBweDtcbiAgcGFkZGluZzogMTlweDtcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHdlbGwtYmc7XG4gIGJvcmRlcjogMXB4IHNvbGlkICR3ZWxsLWJvcmRlcjtcbiAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXMtYmFzZTtcbiAgQGluY2x1ZGUgYm94LXNoYWRvdyhpbnNldCAwIDFweCAxcHggcmdiYSgwLDAsMCwuMDUpKTtcbiAgYmxvY2txdW90ZSB7XG4gICAgYm9yZGVyLWNvbG9yOiAjZGRkO1xuICAgIGJvcmRlci1jb2xvcjogcmdiYSgwLDAsMCwuMTUpO1xuICB9XG59XG5cbi8vIFNpemVzXG4ud2VsbC1sZyB7XG4gIHBhZGRpbmc6IDI0cHg7XG4gIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzLWxhcmdlO1xufVxuLndlbGwtc20ge1xuICBwYWRkaW5nOiA5cHg7XG4gIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzLXNtYWxsO1xufVxuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vbm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC1zYXNzL2Fzc2V0cy9zdHlsZXNoZWV0cy9ib290c3RyYXAvX3dlbGxzLnNjc3MiLCIvL1xuLy8gQ2xvc2UgaWNvbnNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cblxuLmNsb3NlIHtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBmb250LXNpemU6ICgkZm9udC1zaXplLWJhc2UgKiAxLjUpO1xuICBmb250LXdlaWdodDogJGNsb3NlLWZvbnQtd2VpZ2h0O1xuICBsaW5lLWhlaWdodDogMTtcbiAgY29sb3I6ICRjbG9zZS1jb2xvcjtcbiAgdGV4dC1zaGFkb3c6ICRjbG9zZS10ZXh0LXNoYWRvdztcbiAgQGluY2x1ZGUgb3BhY2l0eSguMik7XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyB7XG4gICAgY29sb3I6ICRjbG9zZS1jb2xvcjtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIEBpbmNsdWRlIG9wYWNpdHkoLjUpO1xuICB9XG5cbiAgLy8gW2NvbnZlcnRlcl0gZXh0cmFjdGVkIGJ1dHRvbiYgdG8gYnV0dG9uLmNsb3NlXG59XG5cbi8vIEFkZGl0aW9uYWwgcHJvcGVydGllcyBmb3IgYnV0dG9uIHZlcnNpb25cbi8vIGlPUyByZXF1aXJlcyB0aGUgYnV0dG9uIGVsZW1lbnQgaW5zdGVhZCBvZiBhbiBhbmNob3IgdGFnLlxuLy8gSWYgeW91IHdhbnQgdGhlIGFuY2hvciB2ZXJzaW9uLCBpdCByZXF1aXJlcyBgaHJlZj1cIiNcImAuXG4vLyBTZWUgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvRXZlbnRzL2NsaWNrI1NhZmFyaV9Nb2JpbGVcbmJ1dHRvbi5jbG9zZSB7XG4gIHBhZGRpbmc6IDA7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlcjogMDtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xufVxuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vbm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC1zYXNzL2Fzc2V0cy9zdHlsZXNoZWV0cy9ib290c3RyYXAvX2Nsb3NlLnNjc3MiLCIvL1xuLy8gTW9kYWxzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vLyAubW9kYWwtb3BlbiAgICAgIC0gYm9keSBjbGFzcyBmb3Iga2lsbGluZyB0aGUgc2Nyb2xsXG4vLyAubW9kYWwgICAgICAgICAgIC0gY29udGFpbmVyIHRvIHNjcm9sbCB3aXRoaW5cbi8vIC5tb2RhbC1kaWFsb2cgICAgLSBwb3NpdGlvbmluZyBzaGVsbCBmb3IgdGhlIGFjdHVhbCBtb2RhbFxuLy8gLm1vZGFsLWNvbnRlbnQgICAtIGFjdHVhbCBtb2RhbCB3LyBiZyBhbmQgY29ybmVycyBhbmQgc2hpdFxuXG4vLyBLaWxsIHRoZSBzY3JvbGwgb24gdGhlIGJvZHlcbi5tb2RhbC1vcGVuIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLy8gQ29udGFpbmVyIHRoYXQgdGhlIG1vZGFsIHNjcm9sbHMgd2l0aGluXG4ubW9kYWwge1xuICBkaXNwbGF5OiBub25lO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcbiAgei1pbmRleDogJHppbmRleC1tb2RhbDtcbiAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xuXG4gIC8vIFByZXZlbnQgQ2hyb21lIG9uIFdpbmRvd3MgZnJvbSBhZGRpbmcgYSBmb2N1cyBvdXRsaW5lLiBGb3IgZGV0YWlscywgc2VlXG4gIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS90d2JzL2Jvb3RzdHJhcC9wdWxsLzEwOTUxLlxuICBvdXRsaW5lOiAwO1xuXG4gIC8vIFdoZW4gZmFkaW5nIGluIHRoZSBtb2RhbCwgYW5pbWF0ZSBpdCB0byBzbGlkZSBkb3duXG4gICYuZmFkZSAubW9kYWwtZGlhbG9nIHtcbiAgICBAaW5jbHVkZSB0cmFuc2xhdGUoMCwgLTI1JSk7XG4gICAgQGluY2x1ZGUgdHJhbnNpdGlvbi10cmFuc2Zvcm0oMC4zcyBlYXNlLW91dCk7XG4gIH1cbiAgJi5pbiAubW9kYWwtZGlhbG9nIHsgQGluY2x1ZGUgdHJhbnNsYXRlKDAsIDApIH1cbn1cbi5tb2RhbC1vcGVuIC5tb2RhbCB7XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgb3ZlcmZsb3cteTogYXV0bztcbn1cblxuLy8gU2hlbGwgZGl2IHRvIHBvc2l0aW9uIHRoZSBtb2RhbCB3aXRoIGJvdHRvbSBwYWRkaW5nXG4ubW9kYWwtZGlhbG9nIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogYXV0bztcbiAgbWFyZ2luOiAxMHB4O1xufVxuXG4vLyBBY3R1YWwgbW9kYWxcbi5tb2RhbC1jb250ZW50IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkbW9kYWwtY29udGVudC1iZztcbiAgYm9yZGVyOiAxcHggc29saWQgJG1vZGFsLWNvbnRlbnQtZmFsbGJhY2stYm9yZGVyLWNvbG9yOyAvL29sZCBicm93c2VycyBmYWxsYmFjayAoaWU4IGV0YylcbiAgYm9yZGVyOiAxcHggc29saWQgJG1vZGFsLWNvbnRlbnQtYm9yZGVyLWNvbG9yO1xuICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cy1sYXJnZTtcbiAgQGluY2x1ZGUgYm94LXNoYWRvdygwIDNweCA5cHggcmdiYSgwLDAsMCwuNSkpO1xuICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xuICAvLyBSZW1vdmUgZm9jdXMgb3V0bGluZSBmcm9tIG9wZW5lZCBtb2RhbFxuICBvdXRsaW5lOiAwO1xufVxuXG4vLyBNb2RhbCBiYWNrZ3JvdW5kXG4ubW9kYWwtYmFja2Ryb3Age1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcbiAgei1pbmRleDogJHppbmRleC1tb2RhbC1iYWNrZ3JvdW5kO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkbW9kYWwtYmFja2Ryb3AtYmc7XG4gIC8vIEZhZGUgZm9yIGJhY2tkcm9wXG4gICYuZmFkZSB7IEBpbmNsdWRlIG9wYWNpdHkoMCk7IH1cbiAgJi5pbiB7IEBpbmNsdWRlIG9wYWNpdHkoJG1vZGFsLWJhY2tkcm9wLW9wYWNpdHkpOyB9XG59XG5cbi8vIE1vZGFsIGhlYWRlclxuLy8gVG9wIHNlY3Rpb24gb2YgdGhlIG1vZGFsIHcvIHRpdGxlIGFuZCBkaXNtaXNzXG4ubW9kYWwtaGVhZGVyIHtcbiAgcGFkZGluZzogJG1vZGFsLXRpdGxlLXBhZGRpbmc7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkbW9kYWwtaGVhZGVyLWJvcmRlci1jb2xvcjtcbiAgQGluY2x1ZGUgY2xlYXJmaXg7XG59XG4vLyBDbG9zZSBpY29uXG4ubW9kYWwtaGVhZGVyIC5jbG9zZSB7XG4gIG1hcmdpbi10b3A6IC0ycHg7XG59XG5cbi8vIFRpdGxlIHRleHQgd2l0aGluIGhlYWRlclxuLm1vZGFsLXRpdGxlIHtcbiAgbWFyZ2luOiAwO1xuICBsaW5lLWhlaWdodDogJG1vZGFsLXRpdGxlLWxpbmUtaGVpZ2h0O1xufVxuXG4vLyBNb2RhbCBib2R5XG4vLyBXaGVyZSBhbGwgbW9kYWwgY29udGVudCByZXNpZGVzIChzaWJsaW5nIG9mIC5tb2RhbC1oZWFkZXIgYW5kIC5tb2RhbC1mb290ZXIpXG4ubW9kYWwtYm9keSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgcGFkZGluZzogJG1vZGFsLWlubmVyLXBhZGRpbmc7XG59XG5cbi8vIEZvb3RlciAoZm9yIGFjdGlvbnMpXG4ubW9kYWwtZm9vdGVyIHtcbiAgcGFkZGluZzogJG1vZGFsLWlubmVyLXBhZGRpbmc7XG4gIHRleHQtYWxpZ246IHJpZ2h0OyAvLyByaWdodCBhbGlnbiBidXR0b25zXG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAkbW9kYWwtZm9vdGVyLWJvcmRlci1jb2xvcjtcbiAgQGluY2x1ZGUgY2xlYXJmaXg7IC8vIGNsZWFyIGl0IGluIGNhc2UgZm9sa3MgdXNlIC5wdWxsLSogY2xhc3NlcyBvbiBidXR0b25zXG5cbiAgLy8gUHJvcGVybHkgc3BhY2Ugb3V0IGJ1dHRvbnNcbiAgLmJ0biArIC5idG4ge1xuICAgIG1hcmdpbi1sZWZ0OiA1cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMDsgLy8gYWNjb3VudCBmb3IgaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSB3aGljaCBnZXRzIHRoZSBib3R0b20gbWFyZ2luIGxpa2UgYWxsIG90aGVyIGlucHV0c1xuICB9XG4gIC8vIGJ1dCBvdmVycmlkZSB0aGF0IGZvciBidXR0b24gZ3JvdXBzXG4gIC5idG4tZ3JvdXAgLmJ0biArIC5idG4ge1xuICAgIG1hcmdpbi1sZWZ0OiAtMXB4O1xuICB9XG4gIC8vIGFuZCBvdmVycmlkZSBpdCBmb3IgYmxvY2sgYnV0dG9ucyBhcyB3ZWxsXG4gIC5idG4tYmxvY2sgKyAuYnRuLWJsb2NrIHtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgfVxufVxuXG4vLyBNZWFzdXJlIHNjcm9sbGJhciB3aWR0aCBmb3IgcGFkZGluZyBib2R5IGR1cmluZyBtb2RhbCBzaG93L2hpZGVcbi5tb2RhbC1zY3JvbGxiYXItbWVhc3VyZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAtOTk5OXB4O1xuICB3aWR0aDogNTBweDtcbiAgaGVpZ2h0OiA1MHB4O1xuICBvdmVyZmxvdzogc2Nyb2xsO1xufVxuXG4vLyBTY2FsZSB1cCB0aGUgbW9kYWxcbkBtZWRpYSAobWluLXdpZHRoOiAkc2NyZWVuLXNtLW1pbikge1xuICAvLyBBdXRvbWF0aWNhbGx5IHNldCBtb2RhbCdzIHdpZHRoIGZvciBsYXJnZXIgdmlld3BvcnRzXG4gIC5tb2RhbC1kaWFsb2cge1xuICAgIHdpZHRoOiAkbW9kYWwtbWQ7XG4gICAgbWFyZ2luOiAzMHB4IGF1dG87XG4gIH1cbiAgLm1vZGFsLWNvbnRlbnQge1xuICAgIEBpbmNsdWRlIGJveC1zaGFkb3coMCA1cHggMTVweCByZ2JhKDAsMCwwLC41KSk7XG4gIH1cblxuICAvLyBNb2RhbCBzaXplc1xuICAubW9kYWwtc20geyB3aWR0aDogJG1vZGFsLXNtOyB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiAkc2NyZWVuLW1kLW1pbikge1xuICAubW9kYWwtbGcgeyB3aWR0aDogJG1vZGFsLWxnOyB9XG59XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9ub2RlX21vZHVsZXMvYm9vdHN0cmFwLXNhc3MvYXNzZXRzL3N0eWxlc2hlZXRzL2Jvb3RzdHJhcC9fbW9kYWxzLnNjc3MiLCIvL1xuLy8gVG9vbHRpcHNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cblxuLy8gQmFzZSBjbGFzc1xuLnRvb2x0aXAge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6ICR6aW5kZXgtdG9vbHRpcDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIC8vIE91ciBwYXJlbnQgZWxlbWVudCBjYW4gYmUgYXJiaXRyYXJ5IHNpbmNlIHRvb2x0aXBzIGFyZSBieSBkZWZhdWx0IGluc2VydGVkIGFzIGEgc2libGluZyBvZiB0aGVpciB0YXJnZXQgZWxlbWVudC5cbiAgLy8gU28gcmVzZXQgb3VyIGZvbnQgYW5kIHRleHQgcHJvcGVydGllcyB0byBhdm9pZCBpbmhlcml0aW5nIHdlaXJkIHZhbHVlcy5cbiAgQGluY2x1ZGUgcmVzZXQtdGV4dDtcbiAgZm9udC1zaXplOiAkZm9udC1zaXplLXNtYWxsO1xuXG4gIEBpbmNsdWRlIG9wYWNpdHkoMCk7XG5cbiAgJi5pbiAgICAgeyBAaW5jbHVkZSBvcGFjaXR5KCR0b29sdGlwLW9wYWNpdHkpOyB9XG4gICYudG9wICAgIHsgbWFyZ2luLXRvcDogIC0zcHg7IHBhZGRpbmc6ICR0b29sdGlwLWFycm93LXdpZHRoIDA7IH1cbiAgJi5yaWdodCAgeyBtYXJnaW4tbGVmdDogIDNweDsgcGFkZGluZzogMCAkdG9vbHRpcC1hcnJvdy13aWR0aDsgfVxuICAmLmJvdHRvbSB7IG1hcmdpbi10b3A6ICAgM3B4OyBwYWRkaW5nOiAkdG9vbHRpcC1hcnJvdy13aWR0aCAwOyB9XG4gICYubGVmdCAgIHsgbWFyZ2luLWxlZnQ6IC0zcHg7IHBhZGRpbmc6IDAgJHRvb2x0aXAtYXJyb3ctd2lkdGg7IH1cbn1cblxuLy8gV3JhcHBlciBmb3IgdGhlIHRvb2x0aXAgY29udGVudFxuLnRvb2x0aXAtaW5uZXIge1xuICBtYXgtd2lkdGg6ICR0b29sdGlwLW1heC13aWR0aDtcbiAgcGFkZGluZzogM3B4IDhweDtcbiAgY29sb3I6ICR0b29sdGlwLWNvbG9yO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGJhY2tncm91bmQtY29sb3I6ICR0b29sdGlwLWJnO1xuICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cy1iYXNlO1xufVxuXG4vLyBBcnJvd3Ncbi50b29sdGlwLWFycm93IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogMDtcbiAgaGVpZ2h0OiAwO1xuICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3JkZXItc3R5bGU6IHNvbGlkO1xufVxuLy8gTm90ZTogRGVwcmVjYXRlZCAudG9wLWxlZnQsIC50b3AtcmlnaHQsIC5ib3R0b20tbGVmdCwgYW5kIC5ib3R0b20tcmlnaHQgYXMgb2YgdjMuMy4xXG4udG9vbHRpcCB7XG4gICYudG9wIC50b29sdGlwLWFycm93IHtcbiAgICBib3R0b206IDA7XG4gICAgbGVmdDogNTAlO1xuICAgIG1hcmdpbi1sZWZ0OiAtJHRvb2x0aXAtYXJyb3ctd2lkdGg7XG4gICAgYm9yZGVyLXdpZHRoOiAkdG9vbHRpcC1hcnJvdy13aWR0aCAkdG9vbHRpcC1hcnJvdy13aWR0aCAwO1xuICAgIGJvcmRlci10b3AtY29sb3I6ICR0b29sdGlwLWFycm93LWNvbG9yO1xuICB9XG4gICYudG9wLWxlZnQgLnRvb2x0aXAtYXJyb3cge1xuICAgIGJvdHRvbTogMDtcbiAgICByaWdodDogJHRvb2x0aXAtYXJyb3ctd2lkdGg7XG4gICAgbWFyZ2luLWJvdHRvbTogLSR0b29sdGlwLWFycm93LXdpZHRoO1xuICAgIGJvcmRlci13aWR0aDogJHRvb2x0aXAtYXJyb3ctd2lkdGggJHRvb2x0aXAtYXJyb3ctd2lkdGggMDtcbiAgICBib3JkZXItdG9wLWNvbG9yOiAkdG9vbHRpcC1hcnJvdy1jb2xvcjtcbiAgfVxuICAmLnRvcC1yaWdodCAudG9vbHRpcC1hcnJvdyB7XG4gICAgYm90dG9tOiAwO1xuICAgIGxlZnQ6ICR0b29sdGlwLWFycm93LXdpZHRoO1xuICAgIG1hcmdpbi1ib3R0b206IC0kdG9vbHRpcC1hcnJvdy13aWR0aDtcbiAgICBib3JkZXItd2lkdGg6ICR0b29sdGlwLWFycm93LXdpZHRoICR0b29sdGlwLWFycm93LXdpZHRoIDA7XG4gICAgYm9yZGVyLXRvcC1jb2xvcjogJHRvb2x0aXAtYXJyb3ctY29sb3I7XG4gIH1cbiAgJi5yaWdodCAudG9vbHRpcC1hcnJvdyB7XG4gICAgdG9wOiA1MCU7XG4gICAgbGVmdDogMDtcbiAgICBtYXJnaW4tdG9wOiAtJHRvb2x0aXAtYXJyb3ctd2lkdGg7XG4gICAgYm9yZGVyLXdpZHRoOiAkdG9vbHRpcC1hcnJvdy13aWR0aCAkdG9vbHRpcC1hcnJvdy13aWR0aCAkdG9vbHRpcC1hcnJvdy13aWR0aCAwO1xuICAgIGJvcmRlci1yaWdodC1jb2xvcjogJHRvb2x0aXAtYXJyb3ctY29sb3I7XG4gIH1cbiAgJi5sZWZ0IC50b29sdGlwLWFycm93IHtcbiAgICB0b3A6IDUwJTtcbiAgICByaWdodDogMDtcbiAgICBtYXJnaW4tdG9wOiAtJHRvb2x0aXAtYXJyb3ctd2lkdGg7XG4gICAgYm9yZGVyLXdpZHRoOiAkdG9vbHRpcC1hcnJvdy13aWR0aCAwICR0b29sdGlwLWFycm93LXdpZHRoICR0b29sdGlwLWFycm93LXdpZHRoO1xuICAgIGJvcmRlci1sZWZ0LWNvbG9yOiAkdG9vbHRpcC1hcnJvdy1jb2xvcjtcbiAgfVxuICAmLmJvdHRvbSAudG9vbHRpcC1hcnJvdyB7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDUwJTtcbiAgICBtYXJnaW4tbGVmdDogLSR0b29sdGlwLWFycm93LXdpZHRoO1xuICAgIGJvcmRlci13aWR0aDogMCAkdG9vbHRpcC1hcnJvdy13aWR0aCAkdG9vbHRpcC1hcnJvdy13aWR0aDtcbiAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkdG9vbHRpcC1hcnJvdy1jb2xvcjtcbiAgfVxuICAmLmJvdHRvbS1sZWZ0IC50b29sdGlwLWFycm93IHtcbiAgICB0b3A6IDA7XG4gICAgcmlnaHQ6ICR0b29sdGlwLWFycm93LXdpZHRoO1xuICAgIG1hcmdpbi10b3A6IC0kdG9vbHRpcC1hcnJvdy13aWR0aDtcbiAgICBib3JkZXItd2lkdGg6IDAgJHRvb2x0aXAtYXJyb3ctd2lkdGggJHRvb2x0aXAtYXJyb3ctd2lkdGg7XG4gICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHRvb2x0aXAtYXJyb3ctY29sb3I7XG4gIH1cbiAgJi5ib3R0b20tcmlnaHQgLnRvb2x0aXAtYXJyb3cge1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAkdG9vbHRpcC1hcnJvdy13aWR0aDtcbiAgICBtYXJnaW4tdG9wOiAtJHRvb2x0aXAtYXJyb3ctd2lkdGg7XG4gICAgYm9yZGVyLXdpZHRoOiAwICR0b29sdGlwLWFycm93LXdpZHRoICR0b29sdGlwLWFycm93LXdpZHRoO1xuICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICR0b29sdGlwLWFycm93LWNvbG9yO1xuICB9XG59XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9ub2RlX21vZHVsZXMvYm9vdHN0cmFwLXNhc3MvYXNzZXRzL3N0eWxlc2hlZXRzL2Jvb3RzdHJhcC9fdG9vbHRpcC5zY3NzIiwiQG1peGluIHJlc2V0LXRleHQoKSB7XG4gIGZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHktYmFzZTtcbiAgLy8gV2UgZGVsaWJlcmF0ZWx5IGRvIE5PVCByZXNldCBmb250LXNpemUuXG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcbiAgbGluZS1icmVhazogYXV0bztcbiAgbGluZS1oZWlnaHQ6ICRsaW5lLWhlaWdodC1iYXNlO1xuICB0ZXh0LWFsaWduOiBsZWZ0OyAvLyBGYWxsYmFjayBmb3Igd2hlcmUgYHN0YXJ0YCBpcyBub3Qgc3VwcG9ydGVkXG4gIHRleHQtYWxpZ246IHN0YXJ0O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHRleHQtc2hhZG93OiBub25lO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbiAgd29yZC1icmVhazogbm9ybWFsO1xuICB3b3JkLXNwYWNpbmc6IG5vcm1hbDtcbiAgd29yZC13cmFwOiBub3JtYWw7XG59XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9ub2RlX21vZHVsZXMvYm9vdHN0cmFwLXNhc3MvYXNzZXRzL3N0eWxlc2hlZXRzL2Jvb3RzdHJhcC9taXhpbnMvX3Jlc2V0LXRleHQuc2NzcyIsIi8vXG4vLyBQb3BvdmVyc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuXG4ucG9wb3ZlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICB6LWluZGV4OiAkemluZGV4LXBvcG92ZXI7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIG1heC13aWR0aDogJHBvcG92ZXItbWF4LXdpZHRoO1xuICBwYWRkaW5nOiAxcHg7XG4gIC8vIE91ciBwYXJlbnQgZWxlbWVudCBjYW4gYmUgYXJiaXRyYXJ5IHNpbmNlIHBvcG92ZXJzIGFyZSBieSBkZWZhdWx0IGluc2VydGVkIGFzIGEgc2libGluZyBvZiB0aGVpciB0YXJnZXQgZWxlbWVudC5cbiAgLy8gU28gcmVzZXQgb3VyIGZvbnQgYW5kIHRleHQgcHJvcGVydGllcyB0byBhdm9pZCBpbmhlcml0aW5nIHdlaXJkIHZhbHVlcy5cbiAgQGluY2x1ZGUgcmVzZXQtdGV4dDtcbiAgZm9udC1zaXplOiAkZm9udC1zaXplLWJhc2U7XG5cbiAgYmFja2dyb3VuZC1jb2xvcjogJHBvcG92ZXItYmc7XG4gIGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7XG4gIGJvcmRlcjogMXB4IHNvbGlkICRwb3BvdmVyLWZhbGxiYWNrLWJvcmRlci1jb2xvcjtcbiAgYm9yZGVyOiAxcHggc29saWQgJHBvcG92ZXItYm9yZGVyLWNvbG9yO1xuICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cy1sYXJnZTtcbiAgQGluY2x1ZGUgYm94LXNoYWRvdygwIDVweCAxMHB4IHJnYmEoMCwwLDAsLjIpKTtcblxuICAvLyBPZmZzZXQgdGhlIHBvcG92ZXIgdG8gYWNjb3VudCBmb3IgdGhlIHBvcG92ZXIgYXJyb3dcbiAgJi50b3AgICAgIHsgbWFyZ2luLXRvcDogLSRwb3BvdmVyLWFycm93LXdpZHRoOyB9XG4gICYucmlnaHQgICB7IG1hcmdpbi1sZWZ0OiAkcG9wb3Zlci1hcnJvdy13aWR0aDsgfVxuICAmLmJvdHRvbSAgeyBtYXJnaW4tdG9wOiAkcG9wb3Zlci1hcnJvdy13aWR0aDsgfVxuICAmLmxlZnQgICAgeyBtYXJnaW4tbGVmdDogLSRwb3BvdmVyLWFycm93LXdpZHRoOyB9XG59XG5cbi5wb3BvdmVyLXRpdGxlIHtcbiAgbWFyZ2luOiAwOyAvLyByZXNldCBoZWFkaW5nIG1hcmdpblxuICBwYWRkaW5nOiA4cHggMTRweDtcbiAgZm9udC1zaXplOiAkZm9udC1zaXplLWJhc2U7XG4gIGJhY2tncm91bmQtY29sb3I6ICRwb3BvdmVyLXRpdGxlLWJnO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgZGFya2VuKCRwb3BvdmVyLXRpdGxlLWJnLCA1JSk7XG4gIGJvcmRlci1yYWRpdXM6ICgkYm9yZGVyLXJhZGl1cy1sYXJnZSAtIDEpICgkYm9yZGVyLXJhZGl1cy1sYXJnZSAtIDEpIDAgMDtcbn1cblxuLnBvcG92ZXItY29udGVudCB7XG4gIHBhZGRpbmc6IDlweCAxNHB4O1xufVxuXG4vLyBBcnJvd3Ncbi8vXG4vLyAuYXJyb3cgaXMgb3V0ZXIsIC5hcnJvdzphZnRlciBpcyBpbm5lclxuXG4ucG9wb3ZlciA+IC5hcnJvdyB7XG4gICYsXG4gICY6YWZ0ZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICB9XG59XG4ucG9wb3ZlciA+IC5hcnJvdyB7XG4gIGJvcmRlci13aWR0aDogJHBvcG92ZXItYXJyb3ctb3V0ZXItd2lkdGg7XG59XG4ucG9wb3ZlciA+IC5hcnJvdzphZnRlciB7XG4gIGJvcmRlci13aWR0aDogJHBvcG92ZXItYXJyb3ctd2lkdGg7XG4gIGNvbnRlbnQ6IFwiXCI7XG59XG5cbi5wb3BvdmVyIHtcbiAgJi50b3AgPiAuYXJyb3cge1xuICAgIGxlZnQ6IDUwJTtcbiAgICBtYXJnaW4tbGVmdDogLSRwb3BvdmVyLWFycm93LW91dGVyLXdpZHRoO1xuICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDA7XG4gICAgYm9yZGVyLXRvcC1jb2xvcjogJHBvcG92ZXItYXJyb3ctb3V0ZXItZmFsbGJhY2stY29sb3I7IC8vIElFOCBmYWxsYmFja1xuICAgIGJvcmRlci10b3AtY29sb3I6ICRwb3BvdmVyLWFycm93LW91dGVyLWNvbG9yO1xuICAgIGJvdHRvbTogLSRwb3BvdmVyLWFycm93LW91dGVyLXdpZHRoO1xuICAgICY6YWZ0ZXIge1xuICAgICAgY29udGVudDogXCIgXCI7XG4gICAgICBib3R0b206IDFweDtcbiAgICAgIG1hcmdpbi1sZWZ0OiAtJHBvcG92ZXItYXJyb3ctd2lkdGg7XG4gICAgICBib3JkZXItYm90dG9tLXdpZHRoOiAwO1xuICAgICAgYm9yZGVyLXRvcC1jb2xvcjogJHBvcG92ZXItYXJyb3ctY29sb3I7XG4gICAgfVxuICB9XG4gICYucmlnaHQgPiAuYXJyb3cge1xuICAgIHRvcDogNTAlO1xuICAgIGxlZnQ6IC0kcG9wb3Zlci1hcnJvdy1vdXRlci13aWR0aDtcbiAgICBtYXJnaW4tdG9wOiAtJHBvcG92ZXItYXJyb3ctb3V0ZXItd2lkdGg7XG4gICAgYm9yZGVyLWxlZnQtd2lkdGg6IDA7XG4gICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAkcG9wb3Zlci1hcnJvdy1vdXRlci1mYWxsYmFjay1jb2xvcjsgLy8gSUU4IGZhbGxiYWNrXG4gICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAkcG9wb3Zlci1hcnJvdy1vdXRlci1jb2xvcjtcbiAgICAmOmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6IFwiIFwiO1xuICAgICAgbGVmdDogMXB4O1xuICAgICAgYm90dG9tOiAtJHBvcG92ZXItYXJyb3ctd2lkdGg7XG4gICAgICBib3JkZXItbGVmdC13aWR0aDogMDtcbiAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogJHBvcG92ZXItYXJyb3ctY29sb3I7XG4gICAgfVxuICB9XG4gICYuYm90dG9tID4gLmFycm93IHtcbiAgICBsZWZ0OiA1MCU7XG4gICAgbWFyZ2luLWxlZnQ6IC0kcG9wb3Zlci1hcnJvdy1vdXRlci13aWR0aDtcbiAgICBib3JkZXItdG9wLXdpZHRoOiAwO1xuICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRwb3BvdmVyLWFycm93LW91dGVyLWZhbGxiYWNrLWNvbG9yOyAvLyBJRTggZmFsbGJhY2tcbiAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkcG9wb3Zlci1hcnJvdy1vdXRlci1jb2xvcjtcbiAgICB0b3A6IC0kcG9wb3Zlci1hcnJvdy1vdXRlci13aWR0aDtcbiAgICAmOmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6IFwiIFwiO1xuICAgICAgdG9wOiAxcHg7XG4gICAgICBtYXJnaW4tbGVmdDogLSRwb3BvdmVyLWFycm93LXdpZHRoO1xuICAgICAgYm9yZGVyLXRvcC13aWR0aDogMDtcbiAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRwb3BvdmVyLWFycm93LWNvbG9yO1xuICAgIH1cbiAgfVxuXG4gICYubGVmdCA+IC5hcnJvdyB7XG4gICAgdG9wOiA1MCU7XG4gICAgcmlnaHQ6IC0kcG9wb3Zlci1hcnJvdy1vdXRlci13aWR0aDtcbiAgICBtYXJnaW4tdG9wOiAtJHBvcG92ZXItYXJyb3ctb3V0ZXItd2lkdGg7XG4gICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAwO1xuICAgIGJvcmRlci1sZWZ0LWNvbG9yOiAkcG9wb3Zlci1hcnJvdy1vdXRlci1mYWxsYmFjay1jb2xvcjsgLy8gSUU4IGZhbGxiYWNrXG4gICAgYm9yZGVyLWxlZnQtY29sb3I6ICRwb3BvdmVyLWFycm93LW91dGVyLWNvbG9yO1xuICAgICY6YWZ0ZXIge1xuICAgICAgY29udGVudDogXCIgXCI7XG4gICAgICByaWdodDogMXB4O1xuICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAwO1xuICAgICAgYm9yZGVyLWxlZnQtY29sb3I6ICRwb3BvdmVyLWFycm93LWNvbG9yO1xuICAgICAgYm90dG9tOiAtJHBvcG92ZXItYXJyb3ctd2lkdGg7XG4gICAgfVxuICB9XG59XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9ub2RlX21vZHVsZXMvYm9vdHN0cmFwLXNhc3MvYXNzZXRzL3N0eWxlc2hlZXRzL2Jvb3RzdHJhcC9fcG9wb3ZlcnMuc2NzcyIsIi8vXG4vLyBDYXJvdXNlbFxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuXG4vLyBXcmFwcGVyIGZvciB0aGUgc2xpZGUgY29udGFpbmVyIGFuZCBpbmRpY2F0b3JzXG4uY2Fyb3VzZWwge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5jYXJvdXNlbC1pbm5lciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgd2lkdGg6IDEwMCU7XG5cbiAgPiAuaXRlbSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgQGluY2x1ZGUgdHJhbnNpdGlvbiguNnMgZWFzZS1pbi1vdXQgbGVmdCk7XG5cbiAgICAvLyBBY2NvdW50IGZvciBqYW5raXR1ZGUgb24gaW1hZ2VzXG4gICAgPiBpbWcsXG4gICAgPiBhID4gaW1nIHtcbiAgICAgIEBpbmNsdWRlIGltZy1yZXNwb25zaXZlO1xuICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgfVxuXG4gICAgLy8gV2ViS2l0IENTUzMgdHJhbnNmb3JtcyBmb3Igc3VwcG9ydGVkIGRldmljZXNcbiAgICBAbWVkaWEgYWxsIGFuZCAodHJhbnNmb3JtLTNkKSwgKC13ZWJraXQtdHJhbnNmb3JtLTNkKSB7XG4gICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uLXRyYW5zZm9ybSgwLjZzIGVhc2UtaW4tb3V0KTtcbiAgICAgIEBpbmNsdWRlIGJhY2tmYWNlLXZpc2liaWxpdHkoaGlkZGVuKTtcbiAgICAgIEBpbmNsdWRlIHBlcnNwZWN0aXZlKDEwMDBweCk7XG5cbiAgICAgICYubmV4dCxcbiAgICAgICYuYWN0aXZlLnJpZ2h0IHtcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNsYXRlM2QoMTAwJSwgMCwgMCk7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICB9XG4gICAgICAmLnByZXYsXG4gICAgICAmLmFjdGl2ZS5sZWZ0IHtcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNsYXRlM2QoLTEwMCUsIDAsIDApO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgfVxuICAgICAgJi5uZXh0LmxlZnQsXG4gICAgICAmLnByZXYucmlnaHQsXG4gICAgICAmLmFjdGl2ZSB7XG4gICAgICAgIEBpbmNsdWRlIHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gID4gLmFjdGl2ZSxcbiAgPiAubmV4dCxcbiAgPiAucHJldiB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cblxuICA+IC5hY3RpdmUge1xuICAgIGxlZnQ6IDA7XG4gIH1cblxuICA+IC5uZXh0LFxuICA+IC5wcmV2IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG5cbiAgPiAubmV4dCB7XG4gICAgbGVmdDogMTAwJTtcbiAgfVxuICA+IC5wcmV2IHtcbiAgICBsZWZ0OiAtMTAwJTtcbiAgfVxuICA+IC5uZXh0LmxlZnQsXG4gID4gLnByZXYucmlnaHQge1xuICAgIGxlZnQ6IDA7XG4gIH1cblxuICA+IC5hY3RpdmUubGVmdCB7XG4gICAgbGVmdDogLTEwMCU7XG4gIH1cbiAgPiAuYWN0aXZlLnJpZ2h0IHtcbiAgICBsZWZ0OiAxMDAlO1xuICB9XG5cbn1cblxuLy8gTGVmdC9yaWdodCBjb250cm9scyBmb3IgbmF2XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLmNhcm91c2VsLWNvbnRyb2wge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgYm90dG9tOiAwO1xuICB3aWR0aDogJGNhcm91c2VsLWNvbnRyb2wtd2lkdGg7XG4gIEBpbmNsdWRlIG9wYWNpdHkoJGNhcm91c2VsLWNvbnRyb2wtb3BhY2l0eSk7XG4gIGZvbnQtc2l6ZTogJGNhcm91c2VsLWNvbnRyb2wtZm9udC1zaXplO1xuICBjb2xvcjogJGNhcm91c2VsLWNvbnRyb2wtY29sb3I7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdGV4dC1zaGFkb3c6ICRjYXJvdXNlbC10ZXh0LXNoYWRvdztcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwKTsgLy8gRml4IElFOSBjbGljay10aHJ1IGJ1Z1xuICAvLyBXZSBjYW4ndCBoYXZlIHRoaXMgdHJhbnNpdGlvbiBoZXJlIGJlY2F1c2UgV2ViS2l0IGNhbmNlbHMgdGhlIGNhcm91c2VsXG4gIC8vIGFuaW1hdGlvbiBpZiB5b3UgdHJpcCB0aGlzIHdoaWxlIGluIHRoZSBtaWRkbGUgb2YgYW5vdGhlciBhbmltYXRpb24uXG5cbiAgLy8gU2V0IGdyYWRpZW50cyBmb3IgYmFja2dyb3VuZHNcbiAgJi5sZWZ0IHtcbiAgICBAaW5jbHVkZSBncmFkaWVudC1ob3Jpem9udGFsKCRzdGFydC1jb2xvcjogcmdiYSgwLDAsMCwuNSksICRlbmQtY29sb3I6IHJnYmEoMCwwLDAsLjAwMDEpKTtcbiAgfVxuICAmLnJpZ2h0IHtcbiAgICBsZWZ0OiBhdXRvO1xuICAgIHJpZ2h0OiAwO1xuICAgIEBpbmNsdWRlIGdyYWRpZW50LWhvcml6b250YWwoJHN0YXJ0LWNvbG9yOiByZ2JhKDAsMCwwLC4wMDAxKSwgJGVuZC1jb2xvcjogcmdiYSgwLDAsMCwuNSkpO1xuICB9XG5cbiAgLy8gSG92ZXIvZm9jdXMgc3RhdGVcbiAgJjpob3ZlcixcbiAgJjpmb2N1cyB7XG4gICAgb3V0bGluZTogMDtcbiAgICBjb2xvcjogJGNhcm91c2VsLWNvbnRyb2wtY29sb3I7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIEBpbmNsdWRlIG9wYWNpdHkoLjkpO1xuICB9XG5cbiAgLy8gVG9nZ2xlc1xuICAuaWNvbi1wcmV2LFxuICAuaWNvbi1uZXh0LFxuICAuZ2x5cGhpY29uLWNoZXZyb24tbGVmdCxcbiAgLmdseXBoaWNvbi1jaGV2cm9uLXJpZ2h0IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA1MCU7XG4gICAgbWFyZ2luLXRvcDogLTEwcHg7XG4gICAgei1pbmRleDogNTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIH1cbiAgLmljb24tcHJldixcbiAgLmdseXBoaWNvbi1jaGV2cm9uLWxlZnQge1xuICAgIGxlZnQ6IDUwJTtcbiAgICBtYXJnaW4tbGVmdDogLTEwcHg7XG4gIH1cbiAgLmljb24tbmV4dCxcbiAgLmdseXBoaWNvbi1jaGV2cm9uLXJpZ2h0IHtcbiAgICByaWdodDogNTAlO1xuICAgIG1hcmdpbi1yaWdodDogLTEwcHg7XG4gIH1cbiAgLmljb24tcHJldixcbiAgLmljb24tbmV4dCB7XG4gICAgd2lkdGg6ICAyMHB4O1xuICAgIGhlaWdodDogMjBweDtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBmb250LWZhbWlseTogc2VyaWY7XG4gIH1cblxuXG4gIC5pY29uLXByZXYge1xuICAgICY6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6ICdcXDIwMzknOy8vIFNJTkdMRSBMRUZULVBPSU5USU5HIEFOR0xFIFFVT1RBVElPTiBNQVJLIChVKzIwMzkpXG4gICAgfVxuICB9XG4gIC5pY29uLW5leHQge1xuICAgICY6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6ICdcXDIwM2EnOy8vIFNJTkdMRSBSSUdIVC1QT0lOVElORyBBTkdMRSBRVU9UQVRJT04gTUFSSyAoVSsyMDNBKVxuICAgIH1cbiAgfVxufVxuXG4vLyBPcHRpb25hbCBpbmRpY2F0b3IgcGlwc1xuLy9cbi8vIEFkZCBhbiB1bm9yZGVyZWQgbGlzdCB3aXRoIHRoZSBmb2xsb3dpbmcgY2xhc3MgYW5kIGFkZCBhIGxpc3QgaXRlbSBmb3IgZWFjaFxuLy8gc2xpZGUgeW91ciBjYXJvdXNlbCBob2xkcy5cblxuLmNhcm91c2VsLWluZGljYXRvcnMge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvdHRvbTogMTBweDtcbiAgbGVmdDogNTAlO1xuICB6LWluZGV4OiAxNTtcbiAgd2lkdGg6IDYwJTtcbiAgbWFyZ2luLWxlZnQ6IC0zMCU7XG4gIHBhZGRpbmctbGVmdDogMDtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gIGxpIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgd2lkdGg6ICAxMHB4O1xuICAgIGhlaWdodDogMTBweDtcbiAgICBtYXJnaW46IDFweDtcbiAgICB0ZXh0LWluZGVudDogLTk5OXB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRjYXJvdXNlbC1pbmRpY2F0b3ItYm9yZGVyLWNvbG9yO1xuICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgLy8gSUU4LTkgaGFjayBmb3IgZXZlbnQgaGFuZGxpbmdcbiAgICAvL1xuICAgIC8vIEludGVybmV0IEV4cGxvcmVyIDgtOSBkb2VzIG5vdCBzdXBwb3J0IGNsaWNrcyBvbiBlbGVtZW50cyB3aXRob3V0IGEgc2V0XG4gICAgLy8gYGJhY2tncm91bmQtY29sb3JgLiBXZSBjYW5ub3QgdXNlIGBmaWx0ZXJgIHNpbmNlIHRoYXQncyBub3Qgdmlld2VkIGFzIGFcbiAgICAvLyBiYWNrZ3JvdW5kIGNvbG9yIGJ5IHRoZSBicm93c2VyLiBUaHVzLCBhIGhhY2sgaXMgbmVlZGVkLlxuICAgIC8vIFNlZSBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9FdmVudHMvY2xpY2sjSW50ZXJuZXRfRXhwbG9yZXJcbiAgICAvL1xuICAgIC8vIEZvciBJRTgsIHdlIHNldCBzb2xpZCBibGFjayBhcyBpdCBkb2Vzbid0IHN1cHBvcnQgYHJnYmEoKWAuIEZvciBJRTksIHdlXG4gICAgLy8gc2V0IGFscGhhIHRyYW5zcGFyZW5jeSBmb3IgdGhlIGJlc3QgcmVzdWx0cyBwb3NzaWJsZS5cbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwIFxcOTsgLy8gSUU4XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLDAsMCwwKTsgLy8gSUU5XG4gIH1cbiAgLmFjdGl2ZSB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHdpZHRoOiAgMTJweDtcbiAgICBoZWlnaHQ6IDEycHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGNhcm91c2VsLWluZGljYXRvci1hY3RpdmUtYmc7XG4gIH1cbn1cblxuLy8gT3B0aW9uYWwgY2FwdGlvbnNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBIaWRkZW4gYnkgZGVmYXVsdCBmb3Igc21hbGxlciB2aWV3cG9ydHNcbi5jYXJvdXNlbC1jYXB0aW9uIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAxNSU7XG4gIHJpZ2h0OiAxNSU7XG4gIGJvdHRvbTogMjBweDtcbiAgei1pbmRleDogMTA7XG4gIHBhZGRpbmctdG9wOiAyMHB4O1xuICBwYWRkaW5nLWJvdHRvbTogMjBweDtcbiAgY29sb3I6ICRjYXJvdXNlbC1jYXB0aW9uLWNvbG9yO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHRleHQtc2hhZG93OiAkY2Fyb3VzZWwtdGV4dC1zaGFkb3c7XG4gICYgLmJ0biB7XG4gICAgdGV4dC1zaGFkb3c6IG5vbmU7IC8vIE5vIHNoYWRvdyBmb3IgYnV0dG9uIGVsZW1lbnRzIGluIGNhcm91c2VsLWNhcHRpb25cbiAgfVxufVxuXG5cbi8vIFNjYWxlIHVwIGNvbnRyb2xzIGZvciB0YWJsZXRzIGFuZCB1cFxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogJHNjcmVlbi1zbS1taW4pIHtcblxuICAvLyBTY2FsZSB1cCB0aGUgY29udHJvbHMgYSBzbWlkZ2VcbiAgLmNhcm91c2VsLWNvbnRyb2wge1xuICAgIC5nbHlwaGljb24tY2hldnJvbi1sZWZ0LFxuICAgIC5nbHlwaGljb24tY2hldnJvbi1yaWdodCxcbiAgICAuaWNvbi1wcmV2LFxuICAgIC5pY29uLW5leHQge1xuICAgICAgd2lkdGg6ICgkY2Fyb3VzZWwtY29udHJvbC1mb250LXNpemUgKiAxLjUpO1xuICAgICAgaGVpZ2h0OiAoJGNhcm91c2VsLWNvbnRyb2wtZm9udC1zaXplICogMS41KTtcbiAgICAgIG1hcmdpbi10b3A6ICgkY2Fyb3VzZWwtY29udHJvbC1mb250LXNpemUgLyAtMik7XG4gICAgICBmb250LXNpemU6ICgkY2Fyb3VzZWwtY29udHJvbC1mb250LXNpemUgKiAxLjUpO1xuICAgIH1cbiAgICAuZ2x5cGhpY29uLWNoZXZyb24tbGVmdCxcbiAgICAuaWNvbi1wcmV2IHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAoJGNhcm91c2VsLWNvbnRyb2wtZm9udC1zaXplIC8gLTIpO1xuICAgIH1cbiAgICAuZ2x5cGhpY29uLWNoZXZyb24tcmlnaHQsXG4gICAgLmljb24tbmV4dCB7XG4gICAgICBtYXJnaW4tcmlnaHQ6ICgkY2Fyb3VzZWwtY29udHJvbC1mb250LXNpemUgLyAtMik7XG4gICAgfVxuICB9XG5cbiAgLy8gU2hvdyBhbmQgbGVmdCBhbGlnbiB0aGUgY2FwdGlvbnNcbiAgLmNhcm91c2VsLWNhcHRpb24ge1xuICAgIGxlZnQ6IDIwJTtcbiAgICByaWdodDogMjAlO1xuICAgIHBhZGRpbmctYm90dG9tOiAzMHB4O1xuICB9XG5cbiAgLy8gTW92ZSB1cCB0aGUgaW5kaWNhdG9yc1xuICAuY2Fyb3VzZWwtaW5kaWNhdG9ycyB7XG4gICAgYm90dG9tOiAyMHB4O1xuICB9XG59XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9ub2RlX21vZHVsZXMvYm9vdHN0cmFwLXNhc3MvYXNzZXRzL3N0eWxlc2hlZXRzL2Jvb3RzdHJhcC9fY2Fyb3VzZWwuc2NzcyIsIi8vXG4vLyBVdGlsaXR5IGNsYXNzZXNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cblxuLy8gRmxvYXRzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi5jbGVhcmZpeCB7XG4gIEBpbmNsdWRlIGNsZWFyZml4O1xufVxuLmNlbnRlci1ibG9jayB7XG4gIEBpbmNsdWRlIGNlbnRlci1ibG9jaztcbn1cbi5wdWxsLXJpZ2h0IHtcbiAgZmxvYXQ6IHJpZ2h0ICFpbXBvcnRhbnQ7XG59XG4ucHVsbC1sZWZ0IHtcbiAgZmxvYXQ6IGxlZnQgIWltcG9ydGFudDtcbn1cblxuXG4vLyBUb2dnbGluZyBjb250ZW50XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vIE5vdGU6IERlcHJlY2F0ZWQgLmhpZGUgaW4gZmF2b3Igb2YgLmhpZGRlbiBvciAuc3Itb25seSAoYXMgYXBwcm9wcmlhdGUpIGluIHYzLjAuMVxuLmhpZGUge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG59XG4uc2hvdyB7XG4gIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG59XG4uaW52aXNpYmxlIHtcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xufVxuLnRleHQtaGlkZSB7XG4gIEBpbmNsdWRlIHRleHQtaGlkZTtcbn1cblxuXG4vLyBIaWRlIGZyb20gc2NyZWVucmVhZGVycyBhbmQgYnJvd3NlcnNcbi8vXG4vLyBDcmVkaXQ6IEhUTUw1IEJvaWxlcnBsYXRlXG5cbi5oaWRkZW4ge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG59XG5cblxuLy8gRm9yIEFmZml4IHBsdWdpblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4uYWZmaXgge1xuICBwb3NpdGlvbjogZml4ZWQ7XG59XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9ub2RlX21vZHVsZXMvYm9vdHN0cmFwLXNhc3MvYXNzZXRzL3N0eWxlc2hlZXRzL2Jvb3RzdHJhcC9fdXRpbGl0aWVzLnNjc3MiLCIvLyBDZW50ZXItYWxpZ24gYSBibG9jayBsZXZlbCBlbGVtZW50XG5cbkBtaXhpbiBjZW50ZXItYmxvY2soKSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xufVxuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vbm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC1zYXNzL2Fzc2V0cy9zdHlsZXNoZWV0cy9ib290c3RyYXAvbWl4aW5zL19jZW50ZXItYmxvY2suc2NzcyIsIi8vIENTUyBpbWFnZSByZXBsYWNlbWVudFxuLy9cbi8vIEhlYWRzIHVwISB2MyBsYXVuY2hlZCB3aXRoIG9ubHkgYC5oaWRlLXRleHQoKWAsIGJ1dCBwZXIgb3VyIHBhdHRlcm4gZm9yXG4vLyBtaXhpbnMgYmVpbmcgcmV1c2VkIGFzIGNsYXNzZXMgd2l0aCB0aGUgc2FtZSBuYW1lLCB0aGlzIGRvZXNuJ3QgaG9sZCB1cC4gQXNcbi8vIG9mIHYzLjAuMSB3ZSBoYXZlIGFkZGVkIGAudGV4dC1oaWRlKClgIGFuZCBkZXByZWNhdGVkIGAuaGlkZS10ZXh0KClgLlxuLy9cbi8vIFNvdXJjZTogaHR0cHM6Ly9naXRodWIuY29tL2g1YnAvaHRtbDUtYm9pbGVycGxhdGUvY29tbWl0L2FhMDM5NmVhZTc1N1xuXG4vLyBEZXByZWNhdGVkIGFzIG9mIHYzLjAuMSAoaGFzIGJlZW4gcmVtb3ZlZCBpbiB2NClcbkBtaXhpbiBoaWRlLXRleHQoKSB7XG4gIGZvbnQ6IDAvMCBhO1xuICBjb2xvcjogdHJhbnNwYXJlbnQ7XG4gIHRleHQtc2hhZG93OiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyOiAwO1xufVxuXG4vLyBOZXcgbWl4aW4gdG8gdXNlIGFzIG9mIHYzLjAuMVxuQG1peGluIHRleHQtaGlkZSgpIHtcbiAgQGluY2x1ZGUgaGlkZS10ZXh0O1xufVxuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vbm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC1zYXNzL2Fzc2V0cy9zdHlsZXNoZWV0cy9ib290c3RyYXAvbWl4aW5zL19oaWRlLXRleHQuc2NzcyIsIi8vXG4vLyBSZXNwb25zaXZlOiBVdGlsaXR5IGNsYXNzZXNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cblxuLy8gSUUxMCBpbiBXaW5kb3dzIChQaG9uZSkgOFxuLy9cbi8vIFN1cHBvcnQgZm9yIHJlc3BvbnNpdmUgdmlld3MgdmlhIG1lZGlhIHF1ZXJpZXMgaXMga2luZCBvZiBib3JrZWQgaW4gSUUxMCwgZm9yXG4vLyBTdXJmYWNlL2Rlc2t0b3AgaW4gc3BsaXQgdmlldyBhbmQgZm9yIFdpbmRvd3MgUGhvbmUgOC4gVGhpcyBwYXJ0aWN1bGFyIGZpeFxuLy8gbXVzdCBiZSBhY2NvbXBhbmllZCBieSBhIHNuaXBwZXQgb2YgSmF2YVNjcmlwdCB0byBzbmlmZiB0aGUgdXNlciBhZ2VudCBhbmRcbi8vIGFwcGx5IHNvbWUgY29uZGl0aW9uYWwgQ1NTIHRvICpvbmx5KiB0aGUgU3VyZmFjZS9kZXNrdG9wIFdpbmRvd3MgOC4gTG9vayBhdFxuLy8gb3VyIEdldHRpbmcgU3RhcnRlZCBwYWdlIGZvciBtb3JlIGluZm9ybWF0aW9uIG9uIHRoaXMgYnVnLlxuLy9cbi8vIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgdGhlIGZvbGxvd2luZzpcbi8vXG4vLyBJc3N1ZTogaHR0cHM6Ly9naXRodWIuY29tL3R3YnMvYm9vdHN0cmFwL2lzc3Vlcy8xMDQ5N1xuLy8gRG9jczogaHR0cDovL2dldGJvb3RzdHJhcC5jb20vZ2V0dGluZy1zdGFydGVkLyNzdXBwb3J0LWllMTAtd2lkdGhcbi8vIFNvdXJjZTogaHR0cDovL3RpbWthZGxlYy5jb20vMjAxMy8wMS93aW5kb3dzLXBob25lLTgtYW5kLWRldmljZS13aWR0aC9cbi8vIFNvdXJjZTogaHR0cDovL3RpbWthZGxlYy5jb20vMjAxMi8xMC9pZTEwLXNuYXAtbW9kZS1hbmQtcmVzcG9uc2l2ZS1kZXNpZ24vXG5cbkBhdC1yb290IHtcbiAgQC1tcy12aWV3cG9ydCB7XG4gICAgd2lkdGg6IGRldmljZS13aWR0aDtcbiAgfVxufVxuXG5cbi8vIFZpc2liaWxpdHkgdXRpbGl0aWVzXG4vLyBOb3RlOiBEZXByZWNhdGVkIC52aXNpYmxlLXhzLCAudmlzaWJsZS1zbSwgLnZpc2libGUtbWQsIGFuZCAudmlzaWJsZS1sZyBhcyBvZiB2My4yLjBcblxuQGluY2x1ZGUgcmVzcG9uc2l2ZS1pbnZpc2liaWxpdHkoJy52aXNpYmxlLXhzJyk7XG5AaW5jbHVkZSByZXNwb25zaXZlLWludmlzaWJpbGl0eSgnLnZpc2libGUtc20nKTtcbkBpbmNsdWRlIHJlc3BvbnNpdmUtaW52aXNpYmlsaXR5KCcudmlzaWJsZS1tZCcpO1xuQGluY2x1ZGUgcmVzcG9uc2l2ZS1pbnZpc2liaWxpdHkoJy52aXNpYmxlLWxnJyk7XG5cbi52aXNpYmxlLXhzLWJsb2NrLFxuLnZpc2libGUteHMtaW5saW5lLFxuLnZpc2libGUteHMtaW5saW5lLWJsb2NrLFxuLnZpc2libGUtc20tYmxvY2ssXG4udmlzaWJsZS1zbS1pbmxpbmUsXG4udmlzaWJsZS1zbS1pbmxpbmUtYmxvY2ssXG4udmlzaWJsZS1tZC1ibG9jayxcbi52aXNpYmxlLW1kLWlubGluZSxcbi52aXNpYmxlLW1kLWlubGluZS1ibG9jayxcbi52aXNpYmxlLWxnLWJsb2NrLFxuLnZpc2libGUtbGctaW5saW5lLFxuLnZpc2libGUtbGctaW5saW5lLWJsb2NrIHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogJHNjcmVlbi14cy1tYXgpIHtcbiAgQGluY2x1ZGUgcmVzcG9uc2l2ZS12aXNpYmlsaXR5KCcudmlzaWJsZS14cycpO1xufVxuLnZpc2libGUteHMtYmxvY2sge1xuICBAbWVkaWEgKG1heC13aWR0aDogJHNjcmVlbi14cy1tYXgpIHtcbiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICB9XG59XG4udmlzaWJsZS14cy1pbmxpbmUge1xuICBAbWVkaWEgKG1heC13aWR0aDogJHNjcmVlbi14cy1tYXgpIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUgIWltcG9ydGFudDtcbiAgfVxufVxuLnZpc2libGUteHMtaW5saW5lLWJsb2NrIHtcbiAgQG1lZGlhIChtYXgtd2lkdGg6ICRzY3JlZW4teHMtbWF4KSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6ICRzY3JlZW4tc20tbWluKSBhbmQgKG1heC13aWR0aDogJHNjcmVlbi1zbS1tYXgpIHtcbiAgQGluY2x1ZGUgcmVzcG9uc2l2ZS12aXNpYmlsaXR5KCcudmlzaWJsZS1zbScpO1xufVxuLnZpc2libGUtc20tYmxvY2sge1xuICBAbWVkaWEgKG1pbi13aWR0aDogJHNjcmVlbi1zbS1taW4pIGFuZCAobWF4LXdpZHRoOiAkc2NyZWVuLXNtLW1heCkge1xuICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gIH1cbn1cbi52aXNpYmxlLXNtLWlubGluZSB7XG4gIEBtZWRpYSAobWluLXdpZHRoOiAkc2NyZWVuLXNtLW1pbikgYW5kIChtYXgtd2lkdGg6ICRzY3JlZW4tc20tbWF4KSB7XG4gICAgZGlzcGxheTogaW5saW5lICFpbXBvcnRhbnQ7XG4gIH1cbn1cbi52aXNpYmxlLXNtLWlubGluZS1ibG9jayB7XG4gIEBtZWRpYSAobWluLXdpZHRoOiAkc2NyZWVuLXNtLW1pbikgYW5kIChtYXgtd2lkdGg6ICRzY3JlZW4tc20tbWF4KSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6ICRzY3JlZW4tbWQtbWluKSBhbmQgKG1heC13aWR0aDogJHNjcmVlbi1tZC1tYXgpIHtcbiAgQGluY2x1ZGUgcmVzcG9uc2l2ZS12aXNpYmlsaXR5KCcudmlzaWJsZS1tZCcpO1xufVxuLnZpc2libGUtbWQtYmxvY2sge1xuICBAbWVkaWEgKG1pbi13aWR0aDogJHNjcmVlbi1tZC1taW4pIGFuZCAobWF4LXdpZHRoOiAkc2NyZWVuLW1kLW1heCkge1xuICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gIH1cbn1cbi52aXNpYmxlLW1kLWlubGluZSB7XG4gIEBtZWRpYSAobWluLXdpZHRoOiAkc2NyZWVuLW1kLW1pbikgYW5kIChtYXgtd2lkdGg6ICRzY3JlZW4tbWQtbWF4KSB7XG4gICAgZGlzcGxheTogaW5saW5lICFpbXBvcnRhbnQ7XG4gIH1cbn1cbi52aXNpYmxlLW1kLWlubGluZS1ibG9jayB7XG4gIEBtZWRpYSAobWluLXdpZHRoOiAkc2NyZWVuLW1kLW1pbikgYW5kIChtYXgtd2lkdGg6ICRzY3JlZW4tbWQtbWF4KSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6ICRzY3JlZW4tbGctbWluKSB7XG4gIEBpbmNsdWRlIHJlc3BvbnNpdmUtdmlzaWJpbGl0eSgnLnZpc2libGUtbGcnKTtcbn1cbi52aXNpYmxlLWxnLWJsb2NrIHtcbiAgQG1lZGlhIChtaW4td2lkdGg6ICRzY3JlZW4tbGctbWluKSB7XG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgfVxufVxuLnZpc2libGUtbGctaW5saW5lIHtcbiAgQG1lZGlhIChtaW4td2lkdGg6ICRzY3JlZW4tbGctbWluKSB7XG4gICAgZGlzcGxheTogaW5saW5lICFpbXBvcnRhbnQ7XG4gIH1cbn1cbi52aXNpYmxlLWxnLWlubGluZS1ibG9jayB7XG4gIEBtZWRpYSAobWluLXdpZHRoOiAkc2NyZWVuLWxnLW1pbikge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jayAhaW1wb3J0YW50O1xuICB9XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiAkc2NyZWVuLXhzLW1heCkge1xuICBAaW5jbHVkZSByZXNwb25zaXZlLWludmlzaWJpbGl0eSgnLmhpZGRlbi14cycpO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogJHNjcmVlbi1zbS1taW4pIGFuZCAobWF4LXdpZHRoOiAkc2NyZWVuLXNtLW1heCkge1xuICBAaW5jbHVkZSByZXNwb25zaXZlLWludmlzaWJpbGl0eSgnLmhpZGRlbi1zbScpO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogJHNjcmVlbi1tZC1taW4pIGFuZCAobWF4LXdpZHRoOiAkc2NyZWVuLW1kLW1heCkge1xuICBAaW5jbHVkZSByZXNwb25zaXZlLWludmlzaWJpbGl0eSgnLmhpZGRlbi1tZCcpO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogJHNjcmVlbi1sZy1taW4pIHtcbiAgQGluY2x1ZGUgcmVzcG9uc2l2ZS1pbnZpc2liaWxpdHkoJy5oaWRkZW4tbGcnKTtcbn1cblxuXG4vLyBQcmludCB1dGlsaXRpZXNcbi8vXG4vLyBNZWRpYSBxdWVyaWVzIGFyZSBwbGFjZWQgb24gdGhlIGluc2lkZSB0byBiZSBtaXhpbi1mcmllbmRseS5cblxuLy8gTm90ZTogRGVwcmVjYXRlZCAudmlzaWJsZS1wcmludCBhcyBvZiB2My4yLjBcblxuQGluY2x1ZGUgcmVzcG9uc2l2ZS1pbnZpc2liaWxpdHkoJy52aXNpYmxlLXByaW50Jyk7XG5cbkBtZWRpYSBwcmludCB7XG4gIEBpbmNsdWRlIHJlc3BvbnNpdmUtdmlzaWJpbGl0eSgnLnZpc2libGUtcHJpbnQnKTtcbn1cbi52aXNpYmxlLXByaW50LWJsb2NrIHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuXG4gIEBtZWRpYSBwcmludCB7XG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgfVxufVxuLnZpc2libGUtcHJpbnQtaW5saW5lIHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuXG4gIEBtZWRpYSBwcmludCB7XG4gICAgZGlzcGxheTogaW5saW5lICFpbXBvcnRhbnQ7XG4gIH1cbn1cbi52aXNpYmxlLXByaW50LWlubGluZS1ibG9jayB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcblxuICBAbWVkaWEgcHJpbnQge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jayAhaW1wb3J0YW50O1xuICB9XG59XG5cbkBtZWRpYSBwcmludCB7XG4gIEBpbmNsdWRlIHJlc3BvbnNpdmUtaW52aXNpYmlsaXR5KCcuaGlkZGVuLXByaW50Jyk7XG59XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9ub2RlX21vZHVsZXMvYm9vdHN0cmFwLXNhc3MvYXNzZXRzL3N0eWxlc2hlZXRzL2Jvb3RzdHJhcC9fcmVzcG9uc2l2ZS11dGlsaXRpZXMuc2NzcyIsIi8vIFJlc3BvbnNpdmUgdXRpbGl0aWVzXG5cbi8vXG4vLyBNb3JlIGVhc2lseSBpbmNsdWRlIGFsbCB0aGUgc3RhdGVzIGZvciByZXNwb25zaXZlLXV0aWxpdGllcy5sZXNzLlxuLy8gW2NvbnZlcnRlcl0gJHBhcmVudCBoYWNrXG5AbWl4aW4gcmVzcG9uc2l2ZS12aXNpYmlsaXR5KCRwYXJlbnQpIHtcbiAgI3skcGFyZW50fSB7XG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgfVxuICB0YWJsZSN7JHBhcmVudH0gIHsgZGlzcGxheTogdGFibGUgIWltcG9ydGFudDsgfVxuICB0ciN7JHBhcmVudH0gICAgIHsgZGlzcGxheTogdGFibGUtcm93ICFpbXBvcnRhbnQ7IH1cbiAgdGgjeyRwYXJlbnR9LFxuICB0ZCN7JHBhcmVudH0gICAgIHsgZGlzcGxheTogdGFibGUtY2VsbCAhaW1wb3J0YW50OyB9XG59XG5cbi8vIFtjb252ZXJ0ZXJdICRwYXJlbnQgaGFja1xuQG1peGluIHJlc3BvbnNpdmUtaW52aXNpYmlsaXR5KCRwYXJlbnQpIHtcbiAgI3skcGFyZW50fSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG59XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9ub2RlX21vZHVsZXMvYm9vdHN0cmFwLXNhc3MvYXNzZXRzL3N0eWxlc2hlZXRzL2Jvb3RzdHJhcC9taXhpbnMvX3Jlc3BvbnNpdmUtdmlzaWJpbGl0eS5zY3NzIiwiLyohXG4gKiBGb250IEF3ZXNvbWUgRnJlZSA1LjEuMSBieSBAZm9udGF3ZXNvbWUgLSBodHRwczovL2ZvbnRhd2Vzb21lLmNvbVxuICogTGljZW5zZSAtIGh0dHBzOi8vZm9udGF3ZXNvbWUuY29tL2xpY2Vuc2UgKEljb25zOiBDQyBCWSA0LjAsIEZvbnRzOiBTSUwgT0ZMIDEuMSwgQ29kZTogTUlUIExpY2Vuc2UpXG4gKi9cbkBpbXBvcnQgJ3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICdtaXhpbnMnO1xuQGltcG9ydCAnY29yZSc7XG5AaW1wb3J0ICdsYXJnZXInO1xuQGltcG9ydCAnZml4ZWQtd2lkdGgnO1xuQGltcG9ydCAnbGlzdCc7XG5AaW1wb3J0ICdib3JkZXJlZC1wdWxsZWQnO1xuQGltcG9ydCAnYW5pbWF0ZWQnO1xuQGltcG9ydCAncm90YXRlZC1mbGlwcGVkJztcbkBpbXBvcnQgJ3N0YWNrZWQnO1xuQGltcG9ydCAnaWNvbnMnO1xuQGltcG9ydCAnc2NyZWVuLXJlYWRlcic7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9ub2RlX21vZHVsZXMvQGZvcnRhd2Vzb21lL2ZvbnRhd2Vzb21lLWZyZWUvc2Nzcy9mb250YXdlc29tZS5zY3NzIiwiLy8gQmFzZSBDbGFzcyBEZWZpbml0aW9uXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi4jeyRmYS1jc3MtcHJlZml4fSxcbi5mYXMsXG4uZmFyLFxuLmZhbCxcbi5mYWIge1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtdmFyaWFudDogbm9ybWFsO1xuICB0ZXh0LXJlbmRlcmluZzogYXV0bztcbiAgbGluZS1oZWlnaHQ6IDE7XG59XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9ub2RlX21vZHVsZXMvQGZvcnRhd2Vzb21lL2ZvbnRhd2Vzb21lLWZyZWUvc2Nzcy9fY29yZS5zY3NzIiwiLy8gSWNvbiBTaXplc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vLyBtYWtlcyB0aGUgZm9udCAzMyUgbGFyZ2VyIHJlbGF0aXZlIHRvIHRoZSBpY29uIGNvbnRhaW5lclxuLiN7JGZhLWNzcy1wcmVmaXh9LWxnIHtcbiAgZm9udC1zaXplOiAoNGVtIC8gMyk7XG4gIGxpbmUtaGVpZ2h0OiAoM2VtIC8gNCk7XG4gIHZlcnRpY2FsLWFsaWduOiAtLjA2NjdlbTtcbn1cblxuLiN7JGZhLWNzcy1wcmVmaXh9LXhzIHtcbiAgZm9udC1zaXplOiAuNzVlbTtcbn1cblxuLiN7JGZhLWNzcy1wcmVmaXh9LXNtIHtcbiAgZm9udC1zaXplOiAuODc1ZW07XG59XG5cbkBmb3IgJGkgZnJvbSAxIHRocm91Z2ggMTAge1xuICAuI3skZmEtY3NzLXByZWZpeH0tI3skaX14IHtcbiAgICBmb250LXNpemU6ICRpICogMWVtO1xuICB9XG59XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9ub2RlX21vZHVsZXMvQGZvcnRhd2Vzb21lL2ZvbnRhd2Vzb21lLWZyZWUvc2Nzcy9fbGFyZ2VyLnNjc3MiLCIvLyBGaXhlZCBXaWR0aCBJY29uc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLiN7JGZhLWNzcy1wcmVmaXh9LWZ3IHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB3aWR0aDogKDIwZW0gLyAxNik7XG59XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9ub2RlX21vZHVsZXMvQGZvcnRhd2Vzb21lL2ZvbnRhd2Vzb21lLWZyZWUvc2Nzcy9fZml4ZWQtd2lkdGguc2NzcyIsIi8vIExpc3QgSWNvbnNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLiN7JGZhLWNzcy1wcmVmaXh9LXVsIHtcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICBtYXJnaW4tbGVmdDogJGZhLWxpLXdpZHRoICogNS80O1xuICBwYWRkaW5nLWxlZnQ6IDA7XG5cbiAgPiBsaSB7IHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxufVxuXG4uI3skZmEtY3NzLXByZWZpeH0tbGkge1xuICBsZWZ0OiAtJGZhLWxpLXdpZHRoO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgd2lkdGg6ICRmYS1saS13aWR0aDtcbiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG59XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9ub2RlX21vZHVsZXMvQGZvcnRhd2Vzb21lL2ZvbnRhd2Vzb21lLWZyZWUvc2Nzcy9fbGlzdC5zY3NzIiwiLy8gVmFyaWFibGVzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4kZmEtZm9udC1wYXRoOiAgICAgICAgICAgICAgICBcIi4uL3dlYmZvbnRzXCIgIWRlZmF1bHQ7XG4kZmEtZm9udC1zaXplLWJhc2U6ICAgICAgICAgICAxNnB4ICFkZWZhdWx0O1xuJGZhLWNzcy1wcmVmaXg6ICAgICAgICAgICAgICAgZmEgIWRlZmF1bHQ7XG4kZmEtdmVyc2lvbjogICAgICAgICAgICAgICAgICBcIjUuMS4xXCIgIWRlZmF1bHQ7XG4kZmEtYm9yZGVyLWNvbG9yOiAgICAgICAgICAgICAjZWVlICFkZWZhdWx0O1xuJGZhLWludmVyc2U6ICAgICAgICAgICAgICAgICAgI2ZmZiAhZGVmYXVsdDtcbiRmYS1saS13aWR0aDogICAgICAgICAgICAgICAgIDJlbSAhZGVmYXVsdDtcblxuLy8gQ29udmVuaWVuY2UgZnVuY3Rpb24gdXNlZCB0byBzZXQgY29udGVudCBwcm9wZXJ0eVxuQGZ1bmN0aW9uIGZhLWNvbnRlbnQoJGZhLXZhcikge1xuICBAcmV0dXJuIHVucXVvdGUoXCJcXFwiI3sgJGZhLXZhciB9XFxcIlwiKTtcbn1cblxuJGZhLXZhci01MDBweDogXFxmMjZlO1xuJGZhLXZhci1hY2Nlc3NpYmxlLWljb246IFxcZjM2ODtcbiRmYS12YXItYWNjdXNvZnQ6IFxcZjM2OTtcbiRmYS12YXItYWRkcmVzcy1ib29rOiBcXGYyYjk7XG4kZmEtdmFyLWFkZHJlc3MtY2FyZDogXFxmMmJiO1xuJGZhLXZhci1hZGp1c3Q6IFxcZjA0MjtcbiRmYS12YXItYWRuOiBcXGYxNzA7XG4kZmEtdmFyLWFkdmVyc2FsOiBcXGYzNmE7XG4kZmEtdmFyLWFmZmlsaWF0ZXRoZW1lOiBcXGYzNmI7XG4kZmEtdmFyLWFsZ29saWE6IFxcZjM2YztcbiRmYS12YXItYWxpZ24tY2VudGVyOiBcXGYwMzc7XG4kZmEtdmFyLWFsaWduLWp1c3RpZnk6IFxcZjAzOTtcbiRmYS12YXItYWxpZ24tbGVmdDogXFxmMDM2O1xuJGZhLXZhci1hbGlnbi1yaWdodDogXFxmMDM4O1xuJGZhLXZhci1hbGxlcmdpZXM6IFxcZjQ2MTtcbiRmYS12YXItYW1hem9uOiBcXGYyNzA7XG4kZmEtdmFyLWFtYXpvbi1wYXk6IFxcZjQyYztcbiRmYS12YXItYW1idWxhbmNlOiBcXGYwZjk7XG4kZmEtdmFyLWFtZXJpY2FuLXNpZ24tbGFuZ3VhZ2UtaW50ZXJwcmV0aW5nOiBcXGYyYTM7XG4kZmEtdmFyLWFtaWxpYTogXFxmMzZkO1xuJGZhLXZhci1hbmNob3I6IFxcZjEzZDtcbiRmYS12YXItYW5kcm9pZDogXFxmMTdiO1xuJGZhLXZhci1hbmdlbGxpc3Q6IFxcZjIwOTtcbiRmYS12YXItYW5nbGUtZG91YmxlLWRvd246IFxcZjEwMztcbiRmYS12YXItYW5nbGUtZG91YmxlLWxlZnQ6IFxcZjEwMDtcbiRmYS12YXItYW5nbGUtZG91YmxlLXJpZ2h0OiBcXGYxMDE7XG4kZmEtdmFyLWFuZ2xlLWRvdWJsZS11cDogXFxmMTAyO1xuJGZhLXZhci1hbmdsZS1kb3duOiBcXGYxMDc7XG4kZmEtdmFyLWFuZ2xlLWxlZnQ6IFxcZjEwNDtcbiRmYS12YXItYW5nbGUtcmlnaHQ6IFxcZjEwNTtcbiRmYS12YXItYW5nbGUtdXA6IFxcZjEwNjtcbiRmYS12YXItYW5ncnk6IFxcZjU1NjtcbiRmYS12YXItYW5ncnljcmVhdGl2ZTogXFxmMzZlO1xuJGZhLXZhci1hbmd1bGFyOiBcXGY0MjA7XG4kZmEtdmFyLWFwcC1zdG9yZTogXFxmMzZmO1xuJGZhLXZhci1hcHAtc3RvcmUtaW9zOiBcXGYzNzA7XG4kZmEtdmFyLWFwcGVyOiBcXGYzNzE7XG4kZmEtdmFyLWFwcGxlOiBcXGYxNzk7XG4kZmEtdmFyLWFwcGxlLXBheTogXFxmNDE1O1xuJGZhLXZhci1hcmNoaXZlOiBcXGYxODc7XG4kZmEtdmFyLWFyY2h3YXk6IFxcZjU1NztcbiRmYS12YXItYXJyb3ctYWx0LWNpcmNsZS1kb3duOiBcXGYzNTg7XG4kZmEtdmFyLWFycm93LWFsdC1jaXJjbGUtbGVmdDogXFxmMzU5O1xuJGZhLXZhci1hcnJvdy1hbHQtY2lyY2xlLXJpZ2h0OiBcXGYzNWE7XG4kZmEtdmFyLWFycm93LWFsdC1jaXJjbGUtdXA6IFxcZjM1YjtcbiRmYS12YXItYXJyb3ctY2lyY2xlLWRvd246IFxcZjBhYjtcbiRmYS12YXItYXJyb3ctY2lyY2xlLWxlZnQ6IFxcZjBhODtcbiRmYS12YXItYXJyb3ctY2lyY2xlLXJpZ2h0OiBcXGYwYTk7XG4kZmEtdmFyLWFycm93LWNpcmNsZS11cDogXFxmMGFhO1xuJGZhLXZhci1hcnJvdy1kb3duOiBcXGYwNjM7XG4kZmEtdmFyLWFycm93LWxlZnQ6IFxcZjA2MDtcbiRmYS12YXItYXJyb3ctcmlnaHQ6IFxcZjA2MTtcbiRmYS12YXItYXJyb3ctdXA6IFxcZjA2MjtcbiRmYS12YXItYXJyb3dzLWFsdDogXFxmMGIyO1xuJGZhLXZhci1hcnJvd3MtYWx0LWg6IFxcZjMzNztcbiRmYS12YXItYXJyb3dzLWFsdC12OiBcXGYzMzg7XG4kZmEtdmFyLWFzc2lzdGl2ZS1saXN0ZW5pbmctc3lzdGVtczogXFxmMmEyO1xuJGZhLXZhci1hc3RlcmlzazogXFxmMDY5O1xuJGZhLXZhci1hc3ltbWV0cmlrOiBcXGYzNzI7XG4kZmEtdmFyLWF0OiBcXGYxZmE7XG4kZmEtdmFyLWF0bGFzOiBcXGY1NTg7XG4kZmEtdmFyLWF1ZGlibGU6IFxcZjM3MztcbiRmYS12YXItYXVkaW8tZGVzY3JpcHRpb246IFxcZjI5ZTtcbiRmYS12YXItYXV0b3ByZWZpeGVyOiBcXGY0MWM7XG4kZmEtdmFyLWF2aWFuZXg6IFxcZjM3NDtcbiRmYS12YXItYXZpYXRvOiBcXGY0MjE7XG4kZmEtdmFyLWF3YXJkOiBcXGY1NTk7XG4kZmEtdmFyLWF3czogXFxmMzc1O1xuJGZhLXZhci1iYWNrc3BhY2U6IFxcZjU1YTtcbiRmYS12YXItYmFja3dhcmQ6IFxcZjA0YTtcbiRmYS12YXItYmFsYW5jZS1zY2FsZTogXFxmMjRlO1xuJGZhLXZhci1iYW46IFxcZjA1ZTtcbiRmYS12YXItYmFuZC1haWQ6IFxcZjQ2MjtcbiRmYS12YXItYmFuZGNhbXA6IFxcZjJkNTtcbiRmYS12YXItYmFyY29kZTogXFxmMDJhO1xuJGZhLXZhci1iYXJzOiBcXGYwYzk7XG4kZmEtdmFyLWJhc2ViYWxsLWJhbGw6IFxcZjQzMztcbiRmYS12YXItYmFza2V0YmFsbC1iYWxsOiBcXGY0MzQ7XG4kZmEtdmFyLWJhdGg6IFxcZjJjZDtcbiRmYS12YXItYmF0dGVyeS1lbXB0eTogXFxmMjQ0O1xuJGZhLXZhci1iYXR0ZXJ5LWZ1bGw6IFxcZjI0MDtcbiRmYS12YXItYmF0dGVyeS1oYWxmOiBcXGYyNDI7XG4kZmEtdmFyLWJhdHRlcnktcXVhcnRlcjogXFxmMjQzO1xuJGZhLXZhci1iYXR0ZXJ5LXRocmVlLXF1YXJ0ZXJzOiBcXGYyNDE7XG4kZmEtdmFyLWJlZDogXFxmMjM2O1xuJGZhLXZhci1iZWVyOiBcXGYwZmM7XG4kZmEtdmFyLWJlaGFuY2U6IFxcZjFiNDtcbiRmYS12YXItYmVoYW5jZS1zcXVhcmU6IFxcZjFiNTtcbiRmYS12YXItYmVsbDogXFxmMGYzO1xuJGZhLXZhci1iZWxsLXNsYXNoOiBcXGYxZjY7XG4kZmEtdmFyLWJlemllci1jdXJ2ZTogXFxmNTViO1xuJGZhLXZhci1iaWN5Y2xlOiBcXGYyMDY7XG4kZmEtdmFyLWJpbW9iamVjdDogXFxmMzc4O1xuJGZhLXZhci1iaW5vY3VsYXJzOiBcXGYxZTU7XG4kZmEtdmFyLWJpcnRoZGF5LWNha2U6IFxcZjFmZDtcbiRmYS12YXItYml0YnVja2V0OiBcXGYxNzE7XG4kZmEtdmFyLWJpdGNvaW46IFxcZjM3OTtcbiRmYS12YXItYml0eTogXFxmMzdhO1xuJGZhLXZhci1ibGFjay10aWU6IFxcZjI3ZTtcbiRmYS12YXItYmxhY2tiZXJyeTogXFxmMzdiO1xuJGZhLXZhci1ibGVuZGVyOiBcXGY1MTc7XG4kZmEtdmFyLWJsaW5kOiBcXGYyOWQ7XG4kZmEtdmFyLWJsb2dnZXI6IFxcZjM3YztcbiRmYS12YXItYmxvZ2dlci1iOiBcXGYzN2Q7XG4kZmEtdmFyLWJsdWV0b290aDogXFxmMjkzO1xuJGZhLXZhci1ibHVldG9vdGgtYjogXFxmMjk0O1xuJGZhLXZhci1ib2xkOiBcXGYwMzI7XG4kZmEtdmFyLWJvbHQ6IFxcZjBlNztcbiRmYS12YXItYm9tYjogXFxmMWUyO1xuJGZhLXZhci1ib25nOiBcXGY1NWM7XG4kZmEtdmFyLWJvb2s6IFxcZjAyZDtcbiRmYS12YXItYm9vay1vcGVuOiBcXGY1MTg7XG4kZmEtdmFyLWJvb2ttYXJrOiBcXGYwMmU7XG4kZmEtdmFyLWJvd2xpbmctYmFsbDogXFxmNDM2O1xuJGZhLXZhci1ib3g6IFxcZjQ2NjtcbiRmYS12YXItYm94LW9wZW46IFxcZjQ5ZTtcbiRmYS12YXItYm94ZXM6IFxcZjQ2ODtcbiRmYS12YXItYnJhaWxsZTogXFxmMmExO1xuJGZhLXZhci1icmllZmNhc2U6IFxcZjBiMTtcbiRmYS12YXItYnJpZWZjYXNlLW1lZGljYWw6IFxcZjQ2OTtcbiRmYS12YXItYnJvYWRjYXN0LXRvd2VyOiBcXGY1MTk7XG4kZmEtdmFyLWJyb29tOiBcXGY1MWE7XG4kZmEtdmFyLWJydXNoOiBcXGY1NWQ7XG4kZmEtdmFyLWJ0YzogXFxmMTVhO1xuJGZhLXZhci1idWc6IFxcZjE4ODtcbiRmYS12YXItYnVpbGRpbmc6IFxcZjFhZDtcbiRmYS12YXItYnVsbGhvcm46IFxcZjBhMTtcbiRmYS12YXItYnVsbHNleWU6IFxcZjE0MDtcbiRmYS12YXItYnVybjogXFxmNDZhO1xuJGZhLXZhci1idXJvbW9iZWxleHBlcnRlOiBcXGYzN2Y7XG4kZmEtdmFyLWJ1czogXFxmMjA3O1xuJGZhLXZhci1idXMtYWx0OiBcXGY1NWU7XG4kZmEtdmFyLWJ1eXNlbGxhZHM6IFxcZjIwZDtcbiRmYS12YXItY2FsY3VsYXRvcjogXFxmMWVjO1xuJGZhLXZhci1jYWxlbmRhcjogXFxmMTMzO1xuJGZhLXZhci1jYWxlbmRhci1hbHQ6IFxcZjA3MztcbiRmYS12YXItY2FsZW5kYXItY2hlY2s6IFxcZjI3NDtcbiRmYS12YXItY2FsZW5kYXItbWludXM6IFxcZjI3MjtcbiRmYS12YXItY2FsZW5kYXItcGx1czogXFxmMjcxO1xuJGZhLXZhci1jYWxlbmRhci10aW1lczogXFxmMjczO1xuJGZhLXZhci1jYW1lcmE6IFxcZjAzMDtcbiRmYS12YXItY2FtZXJhLXJldHJvOiBcXGYwODM7XG4kZmEtdmFyLWNhbm5hYmlzOiBcXGY1NWY7XG4kZmEtdmFyLWNhcHN1bGVzOiBcXGY0NmI7XG4kZmEtdmFyLWNhcjogXFxmMWI5O1xuJGZhLXZhci1jYXJldC1kb3duOiBcXGYwZDc7XG4kZmEtdmFyLWNhcmV0LWxlZnQ6IFxcZjBkOTtcbiRmYS12YXItY2FyZXQtcmlnaHQ6IFxcZjBkYTtcbiRmYS12YXItY2FyZXQtc3F1YXJlLWRvd246IFxcZjE1MDtcbiRmYS12YXItY2FyZXQtc3F1YXJlLWxlZnQ6IFxcZjE5MTtcbiRmYS12YXItY2FyZXQtc3F1YXJlLXJpZ2h0OiBcXGYxNTI7XG4kZmEtdmFyLWNhcmV0LXNxdWFyZS11cDogXFxmMTUxO1xuJGZhLXZhci1jYXJldC11cDogXFxmMGQ4O1xuJGZhLXZhci1jYXJ0LWFycm93LWRvd246IFxcZjIxODtcbiRmYS12YXItY2FydC1wbHVzOiBcXGYyMTc7XG4kZmEtdmFyLWNjLWFtYXpvbi1wYXk6IFxcZjQyZDtcbiRmYS12YXItY2MtYW1leDogXFxmMWYzO1xuJGZhLXZhci1jYy1hcHBsZS1wYXk6IFxcZjQxNjtcbiRmYS12YXItY2MtZGluZXJzLWNsdWI6IFxcZjI0YztcbiRmYS12YXItY2MtZGlzY292ZXI6IFxcZjFmMjtcbiRmYS12YXItY2MtamNiOiBcXGYyNGI7XG4kZmEtdmFyLWNjLW1hc3RlcmNhcmQ6IFxcZjFmMTtcbiRmYS12YXItY2MtcGF5cGFsOiBcXGYxZjQ7XG4kZmEtdmFyLWNjLXN0cmlwZTogXFxmMWY1O1xuJGZhLXZhci1jYy12aXNhOiBcXGYxZjA7XG4kZmEtdmFyLWNlbnRlcmNvZGU6IFxcZjM4MDtcbiRmYS12YXItY2VydGlmaWNhdGU6IFxcZjBhMztcbiRmYS12YXItY2hhbGtib2FyZDogXFxmNTFiO1xuJGZhLXZhci1jaGFsa2JvYXJkLXRlYWNoZXI6IFxcZjUxYztcbiRmYS12YXItY2hhcnQtYXJlYTogXFxmMWZlO1xuJGZhLXZhci1jaGFydC1iYXI6IFxcZjA4MDtcbiRmYS12YXItY2hhcnQtbGluZTogXFxmMjAxO1xuJGZhLXZhci1jaGFydC1waWU6IFxcZjIwMDtcbiRmYS12YXItY2hlY2s6IFxcZjAwYztcbiRmYS12YXItY2hlY2stY2lyY2xlOiBcXGYwNTg7XG4kZmEtdmFyLWNoZWNrLWRvdWJsZTogXFxmNTYwO1xuJGZhLXZhci1jaGVjay1zcXVhcmU6IFxcZjE0YTtcbiRmYS12YXItY2hlc3M6IFxcZjQzOTtcbiRmYS12YXItY2hlc3MtYmlzaG9wOiBcXGY0M2E7XG4kZmEtdmFyLWNoZXNzLWJvYXJkOiBcXGY0M2M7XG4kZmEtdmFyLWNoZXNzLWtpbmc6IFxcZjQzZjtcbiRmYS12YXItY2hlc3Mta25pZ2h0OiBcXGY0NDE7XG4kZmEtdmFyLWNoZXNzLXBhd246IFxcZjQ0MztcbiRmYS12YXItY2hlc3MtcXVlZW46IFxcZjQ0NTtcbiRmYS12YXItY2hlc3Mtcm9vazogXFxmNDQ3O1xuJGZhLXZhci1jaGV2cm9uLWNpcmNsZS1kb3duOiBcXGYxM2E7XG4kZmEtdmFyLWNoZXZyb24tY2lyY2xlLWxlZnQ6IFxcZjEzNztcbiRmYS12YXItY2hldnJvbi1jaXJjbGUtcmlnaHQ6IFxcZjEzODtcbiRmYS12YXItY2hldnJvbi1jaXJjbGUtdXA6IFxcZjEzOTtcbiRmYS12YXItY2hldnJvbi1kb3duOiBcXGYwNzg7XG4kZmEtdmFyLWNoZXZyb24tbGVmdDogXFxmMDUzO1xuJGZhLXZhci1jaGV2cm9uLXJpZ2h0OiBcXGYwNTQ7XG4kZmEtdmFyLWNoZXZyb24tdXA6IFxcZjA3NztcbiRmYS12YXItY2hpbGQ6IFxcZjFhZTtcbiRmYS12YXItY2hyb21lOiBcXGYyNjg7XG4kZmEtdmFyLWNodXJjaDogXFxmNTFkO1xuJGZhLXZhci1jaXJjbGU6IFxcZjExMTtcbiRmYS12YXItY2lyY2xlLW5vdGNoOiBcXGYxY2U7XG4kZmEtdmFyLWNsaXBib2FyZDogXFxmMzI4O1xuJGZhLXZhci1jbGlwYm9hcmQtY2hlY2s6IFxcZjQ2YztcbiRmYS12YXItY2xpcGJvYXJkLWxpc3Q6IFxcZjQ2ZDtcbiRmYS12YXItY2xvY2s6IFxcZjAxNztcbiRmYS12YXItY2xvbmU6IFxcZjI0ZDtcbiRmYS12YXItY2xvc2VkLWNhcHRpb25pbmc6IFxcZjIwYTtcbiRmYS12YXItY2xvdWQ6IFxcZjBjMjtcbiRmYS12YXItY2xvdWQtZG93bmxvYWQtYWx0OiBcXGYzODE7XG4kZmEtdmFyLWNsb3VkLXVwbG9hZC1hbHQ6IFxcZjM4MjtcbiRmYS12YXItY2xvdWRzY2FsZTogXFxmMzgzO1xuJGZhLXZhci1jbG91ZHNtaXRoOiBcXGYzODQ7XG4kZmEtdmFyLWNsb3VkdmVyc2lmeTogXFxmMzg1O1xuJGZhLXZhci1jb2NrdGFpbDogXFxmNTYxO1xuJGZhLXZhci1jb2RlOiBcXGYxMjE7XG4kZmEtdmFyLWNvZGUtYnJhbmNoOiBcXGYxMjY7XG4kZmEtdmFyLWNvZGVwZW46IFxcZjFjYjtcbiRmYS12YXItY29kaWVwaWU6IFxcZjI4NDtcbiRmYS12YXItY29mZmVlOiBcXGYwZjQ7XG4kZmEtdmFyLWNvZzogXFxmMDEzO1xuJGZhLXZhci1jb2dzOiBcXGYwODU7XG4kZmEtdmFyLWNvaW5zOiBcXGY1MWU7XG4kZmEtdmFyLWNvbHVtbnM6IFxcZjBkYjtcbiRmYS12YXItY29tbWVudDogXFxmMDc1O1xuJGZhLXZhci1jb21tZW50LWFsdDogXFxmMjdhO1xuJGZhLXZhci1jb21tZW50LWRvdHM6IFxcZjRhZDtcbiRmYS12YXItY29tbWVudC1zbGFzaDogXFxmNGIzO1xuJGZhLXZhci1jb21tZW50czogXFxmMDg2O1xuJGZhLXZhci1jb21wYWN0LWRpc2M6IFxcZjUxZjtcbiRmYS12YXItY29tcGFzczogXFxmMTRlO1xuJGZhLXZhci1jb21wcmVzczogXFxmMDY2O1xuJGZhLXZhci1jb25jaWVyZ2UtYmVsbDogXFxmNTYyO1xuJGZhLXZhci1jb25uZWN0ZGV2ZWxvcDogXFxmMjBlO1xuJGZhLXZhci1jb250YW86IFxcZjI2ZDtcbiRmYS12YXItY29va2llOiBcXGY1NjM7XG4kZmEtdmFyLWNvb2tpZS1iaXRlOiBcXGY1NjQ7XG4kZmEtdmFyLWNvcHk6IFxcZjBjNTtcbiRmYS12YXItY29weXJpZ2h0OiBcXGYxZjk7XG4kZmEtdmFyLWNvdWNoOiBcXGY0Yjg7XG4kZmEtdmFyLWNwYW5lbDogXFxmMzg4O1xuJGZhLXZhci1jcmVhdGl2ZS1jb21tb25zOiBcXGYyNWU7XG4kZmEtdmFyLWNyZWF0aXZlLWNvbW1vbnMtYnk6IFxcZjRlNztcbiRmYS12YXItY3JlYXRpdmUtY29tbW9ucy1uYzogXFxmNGU4O1xuJGZhLXZhci1jcmVhdGl2ZS1jb21tb25zLW5jLWV1OiBcXGY0ZTk7XG4kZmEtdmFyLWNyZWF0aXZlLWNvbW1vbnMtbmMtanA6IFxcZjRlYTtcbiRmYS12YXItY3JlYXRpdmUtY29tbW9ucy1uZDogXFxmNGViO1xuJGZhLXZhci1jcmVhdGl2ZS1jb21tb25zLXBkOiBcXGY0ZWM7XG4kZmEtdmFyLWNyZWF0aXZlLWNvbW1vbnMtcGQtYWx0OiBcXGY0ZWQ7XG4kZmEtdmFyLWNyZWF0aXZlLWNvbW1vbnMtcmVtaXg6IFxcZjRlZTtcbiRmYS12YXItY3JlYXRpdmUtY29tbW9ucy1zYTogXFxmNGVmO1xuJGZhLXZhci1jcmVhdGl2ZS1jb21tb25zLXNhbXBsaW5nOiBcXGY0ZjA7XG4kZmEtdmFyLWNyZWF0aXZlLWNvbW1vbnMtc2FtcGxpbmctcGx1czogXFxmNGYxO1xuJGZhLXZhci1jcmVhdGl2ZS1jb21tb25zLXNoYXJlOiBcXGY0ZjI7XG4kZmEtdmFyLWNyZWRpdC1jYXJkOiBcXGYwOWQ7XG4kZmEtdmFyLWNyb3A6IFxcZjEyNTtcbiRmYS12YXItY3JvcC1hbHQ6IFxcZjU2NTtcbiRmYS12YXItY3Jvc3NoYWlyczogXFxmMDViO1xuJGZhLXZhci1jcm93OiBcXGY1MjA7XG4kZmEtdmFyLWNyb3duOiBcXGY1MjE7XG4kZmEtdmFyLWNzczM6IFxcZjEzYztcbiRmYS12YXItY3NzMy1hbHQ6IFxcZjM4YjtcbiRmYS12YXItY3ViZTogXFxmMWIyO1xuJGZhLXZhci1jdWJlczogXFxmMWIzO1xuJGZhLXZhci1jdXQ6IFxcZjBjNDtcbiRmYS12YXItY3V0dGxlZmlzaDogXFxmMzhjO1xuJGZhLXZhci1kLWFuZC1kOiBcXGYzOGQ7XG4kZmEtdmFyLWRhc2hjdWJlOiBcXGYyMTA7XG4kZmEtdmFyLWRhdGFiYXNlOiBcXGYxYzA7XG4kZmEtdmFyLWRlYWY6IFxcZjJhNDtcbiRmYS12YXItZGVsaWNpb3VzOiBcXGYxYTU7XG4kZmEtdmFyLWRlcGxveWRvZzogXFxmMzhlO1xuJGZhLXZhci1kZXNrcHJvOiBcXGYzOGY7XG4kZmEtdmFyLWRlc2t0b3A6IFxcZjEwODtcbiRmYS12YXItZGV2aWFudGFydDogXFxmMWJkO1xuJGZhLXZhci1kaWFnbm9zZXM6IFxcZjQ3MDtcbiRmYS12YXItZGljZTogXFxmNTIyO1xuJGZhLXZhci1kaWNlLWZpdmU6IFxcZjUyMztcbiRmYS12YXItZGljZS1mb3VyOiBcXGY1MjQ7XG4kZmEtdmFyLWRpY2Utb25lOiBcXGY1MjU7XG4kZmEtdmFyLWRpY2Utc2l4OiBcXGY1MjY7XG4kZmEtdmFyLWRpY2UtdGhyZWU6IFxcZjUyNztcbiRmYS12YXItZGljZS10d286IFxcZjUyODtcbiRmYS12YXItZGlnZzogXFxmMWE2O1xuJGZhLXZhci1kaWdpdGFsLW9jZWFuOiBcXGYzOTE7XG4kZmEtdmFyLWRpZ2l0YWwtdGFjaG9ncmFwaDogXFxmNTY2O1xuJGZhLXZhci1kaXNjb3JkOiBcXGYzOTI7XG4kZmEtdmFyLWRpc2NvdXJzZTogXFxmMzkzO1xuJGZhLXZhci1kaXZpZGU6IFxcZjUyOTtcbiRmYS12YXItZGl6enk6IFxcZjU2NztcbiRmYS12YXItZG5hOiBcXGY0NzE7XG4kZmEtdmFyLWRvY2h1YjogXFxmMzk0O1xuJGZhLXZhci1kb2NrZXI6IFxcZjM5NTtcbiRmYS12YXItZG9sbGFyLXNpZ246IFxcZjE1NTtcbiRmYS12YXItZG9sbHk6IFxcZjQ3MjtcbiRmYS12YXItZG9sbHktZmxhdGJlZDogXFxmNDc0O1xuJGZhLXZhci1kb25hdGU6IFxcZjRiOTtcbiRmYS12YXItZG9vci1jbG9zZWQ6IFxcZjUyYTtcbiRmYS12YXItZG9vci1vcGVuOiBcXGY1MmI7XG4kZmEtdmFyLWRvdC1jaXJjbGU6IFxcZjE5MjtcbiRmYS12YXItZG92ZTogXFxmNGJhO1xuJGZhLXZhci1kb3dubG9hZDogXFxmMDE5O1xuJGZhLXZhci1kcmFmdDJkaWdpdGFsOiBcXGYzOTY7XG4kZmEtdmFyLWRyYWZ0aW5nLWNvbXBhc3M6IFxcZjU2ODtcbiRmYS12YXItZHJpYmJibGU6IFxcZjE3ZDtcbiRmYS12YXItZHJpYmJibGUtc3F1YXJlOiBcXGYzOTc7XG4kZmEtdmFyLWRyb3Bib3g6IFxcZjE2YjtcbiRmYS12YXItZHJ1bTogXFxmNTY5O1xuJGZhLXZhci1kcnVtLXN0ZWVscGFuOiBcXGY1NmE7XG4kZmEtdmFyLWRydXBhbDogXFxmMWE5O1xuJGZhLXZhci1kdW1iYmVsbDogXFxmNDRiO1xuJGZhLXZhci1keWFsb2c6IFxcZjM5OTtcbiRmYS12YXItZWFybHliaXJkczogXFxmMzlhO1xuJGZhLXZhci1lYmF5OiBcXGY0ZjQ7XG4kZmEtdmFyLWVkZ2U6IFxcZjI4MjtcbiRmYS12YXItZWRpdDogXFxmMDQ0O1xuJGZhLXZhci1lamVjdDogXFxmMDUyO1xuJGZhLXZhci1lbGVtZW50b3I6IFxcZjQzMDtcbiRmYS12YXItZWxsaXBzaXMtaDogXFxmMTQxO1xuJGZhLXZhci1lbGxpcHNpcy12OiBcXGYxNDI7XG4kZmEtdmFyLWVtYmVyOiBcXGY0MjM7XG4kZmEtdmFyLWVtcGlyZTogXFxmMWQxO1xuJGZhLXZhci1lbnZlbG9wZTogXFxmMGUwO1xuJGZhLXZhci1lbnZlbG9wZS1vcGVuOiBcXGYyYjY7XG4kZmEtdmFyLWVudmVsb3BlLXNxdWFyZTogXFxmMTk5O1xuJGZhLXZhci1lbnZpcmE6IFxcZjI5OTtcbiRmYS12YXItZXF1YWxzOiBcXGY1MmM7XG4kZmEtdmFyLWVyYXNlcjogXFxmMTJkO1xuJGZhLXZhci1lcmxhbmc6IFxcZjM5ZDtcbiRmYS12YXItZXRoZXJldW06IFxcZjQyZTtcbiRmYS12YXItZXRzeTogXFxmMmQ3O1xuJGZhLXZhci1ldXJvLXNpZ246IFxcZjE1MztcbiRmYS12YXItZXhjaGFuZ2UtYWx0OiBcXGYzNjI7XG4kZmEtdmFyLWV4Y2xhbWF0aW9uOiBcXGYxMmE7XG4kZmEtdmFyLWV4Y2xhbWF0aW9uLWNpcmNsZTogXFxmMDZhO1xuJGZhLXZhci1leGNsYW1hdGlvbi10cmlhbmdsZTogXFxmMDcxO1xuJGZhLXZhci1leHBhbmQ6IFxcZjA2NTtcbiRmYS12YXItZXhwYW5kLWFycm93cy1hbHQ6IFxcZjMxZTtcbiRmYS12YXItZXhwZWRpdGVkc3NsOiBcXGYyM2U7XG4kZmEtdmFyLWV4dGVybmFsLWxpbmstYWx0OiBcXGYzNWQ7XG4kZmEtdmFyLWV4dGVybmFsLWxpbmstc3F1YXJlLWFsdDogXFxmMzYwO1xuJGZhLXZhci1leWU6IFxcZjA2ZTtcbiRmYS12YXItZXllLWRyb3BwZXI6IFxcZjFmYjtcbiRmYS12YXItZXllLXNsYXNoOiBcXGYwNzA7XG4kZmEtdmFyLWZhY2Vib29rOiBcXGYwOWE7XG4kZmEtdmFyLWZhY2Vib29rLWY6IFxcZjM5ZTtcbiRmYS12YXItZmFjZWJvb2stbWVzc2VuZ2VyOiBcXGYzOWY7XG4kZmEtdmFyLWZhY2Vib29rLXNxdWFyZTogXFxmMDgyO1xuJGZhLXZhci1mYXN0LWJhY2t3YXJkOiBcXGYwNDk7XG4kZmEtdmFyLWZhc3QtZm9yd2FyZDogXFxmMDUwO1xuJGZhLXZhci1mYXg6IFxcZjFhYztcbiRmYS12YXItZmVhdGhlcjogXFxmNTJkO1xuJGZhLXZhci1mZWF0aGVyLWFsdDogXFxmNTZiO1xuJGZhLXZhci1mZW1hbGU6IFxcZjE4MjtcbiRmYS12YXItZmlnaHRlci1qZXQ6IFxcZjBmYjtcbiRmYS12YXItZmlsZTogXFxmMTViO1xuJGZhLXZhci1maWxlLWFsdDogXFxmMTVjO1xuJGZhLXZhci1maWxlLWFyY2hpdmU6IFxcZjFjNjtcbiRmYS12YXItZmlsZS1hdWRpbzogXFxmMWM3O1xuJGZhLXZhci1maWxlLWNvZGU6IFxcZjFjOTtcbiRmYS12YXItZmlsZS1jb250cmFjdDogXFxmNTZjO1xuJGZhLXZhci1maWxlLWRvd25sb2FkOiBcXGY1NmQ7XG4kZmEtdmFyLWZpbGUtZXhjZWw6IFxcZjFjMztcbiRmYS12YXItZmlsZS1leHBvcnQ6IFxcZjU2ZTtcbiRmYS12YXItZmlsZS1pbWFnZTogXFxmMWM1O1xuJGZhLXZhci1maWxlLWltcG9ydDogXFxmNTZmO1xuJGZhLXZhci1maWxlLWludm9pY2U6IFxcZjU3MDtcbiRmYS12YXItZmlsZS1pbnZvaWNlLWRvbGxhcjogXFxmNTcxO1xuJGZhLXZhci1maWxlLW1lZGljYWw6IFxcZjQ3NztcbiRmYS12YXItZmlsZS1tZWRpY2FsLWFsdDogXFxmNDc4O1xuJGZhLXZhci1maWxlLXBkZjogXFxmMWMxO1xuJGZhLXZhci1maWxlLXBvd2VycG9pbnQ6IFxcZjFjNDtcbiRmYS12YXItZmlsZS1wcmVzY3JpcHRpb246IFxcZjU3MjtcbiRmYS12YXItZmlsZS1zaWduYXR1cmU6IFxcZjU3MztcbiRmYS12YXItZmlsZS11cGxvYWQ6IFxcZjU3NDtcbiRmYS12YXItZmlsZS12aWRlbzogXFxmMWM4O1xuJGZhLXZhci1maWxlLXdvcmQ6IFxcZjFjMjtcbiRmYS12YXItZmlsbDogXFxmNTc1O1xuJGZhLXZhci1maWxsLWRyaXA6IFxcZjU3NjtcbiRmYS12YXItZmlsbTogXFxmMDA4O1xuJGZhLXZhci1maWx0ZXI6IFxcZjBiMDtcbiRmYS12YXItZmluZ2VycHJpbnQ6IFxcZjU3NztcbiRmYS12YXItZmlyZTogXFxmMDZkO1xuJGZhLXZhci1maXJlLWV4dGluZ3Vpc2hlcjogXFxmMTM0O1xuJGZhLXZhci1maXJlZm94OiBcXGYyNjk7XG4kZmEtdmFyLWZpcnN0LWFpZDogXFxmNDc5O1xuJGZhLXZhci1maXJzdC1vcmRlcjogXFxmMmIwO1xuJGZhLXZhci1maXJzdC1vcmRlci1hbHQ6IFxcZjUwYTtcbiRmYS12YXItZmlyc3RkcmFmdDogXFxmM2ExO1xuJGZhLXZhci1maXNoOiBcXGY1Nzg7XG4kZmEtdmFyLWZsYWc6IFxcZjAyNDtcbiRmYS12YXItZmxhZy1jaGVja2VyZWQ6IFxcZjExZTtcbiRmYS12YXItZmxhc2s6IFxcZjBjMztcbiRmYS12YXItZmxpY2tyOiBcXGYxNmU7XG4kZmEtdmFyLWZsaXBib2FyZDogXFxmNDRkO1xuJGZhLXZhci1mbHVzaGVkOiBcXGY1Nzk7XG4kZmEtdmFyLWZseTogXFxmNDE3O1xuJGZhLXZhci1mb2xkZXI6IFxcZjA3YjtcbiRmYS12YXItZm9sZGVyLW9wZW46IFxcZjA3YztcbiRmYS12YXItZm9udDogXFxmMDMxO1xuJGZhLXZhci1mb250LWF3ZXNvbWU6IFxcZjJiNDtcbiRmYS12YXItZm9udC1hd2Vzb21lLWFsdDogXFxmMzVjO1xuJGZhLXZhci1mb250LWF3ZXNvbWUtZmxhZzogXFxmNDI1O1xuJGZhLXZhci1mb250LWF3ZXNvbWUtbG9nby1mdWxsOiBcXGY0ZTY7XG4kZmEtdmFyLWZvbnRpY29uczogXFxmMjgwO1xuJGZhLXZhci1mb250aWNvbnMtZmk6IFxcZjNhMjtcbiRmYS12YXItZm9vdGJhbGwtYmFsbDogXFxmNDRlO1xuJGZhLXZhci1mb3J0LWF3ZXNvbWU6IFxcZjI4NjtcbiRmYS12YXItZm9ydC1hd2Vzb21lLWFsdDogXFxmM2EzO1xuJGZhLXZhci1mb3J1bWJlZTogXFxmMjExO1xuJGZhLXZhci1mb3J3YXJkOiBcXGYwNGU7XG4kZmEtdmFyLWZvdXJzcXVhcmU6IFxcZjE4MDtcbiRmYS12YXItZnJlZS1jb2RlLWNhbXA6IFxcZjJjNTtcbiRmYS12YXItZnJlZWJzZDogXFxmM2E0O1xuJGZhLXZhci1mcm9nOiBcXGY1MmU7XG4kZmEtdmFyLWZyb3duOiBcXGYxMTk7XG4kZmEtdmFyLWZyb3duLW9wZW46IFxcZjU3YTtcbiRmYS12YXItZnVsY3J1bTogXFxmNTBiO1xuJGZhLXZhci1mdXRib2w6IFxcZjFlMztcbiRmYS12YXItZ2FsYWN0aWMtcmVwdWJsaWM6IFxcZjUwYztcbiRmYS12YXItZ2FsYWN0aWMtc2VuYXRlOiBcXGY1MGQ7XG4kZmEtdmFyLWdhbWVwYWQ6IFxcZjExYjtcbiRmYS12YXItZ2FzLXB1bXA6IFxcZjUyZjtcbiRmYS12YXItZ2F2ZWw6IFxcZjBlMztcbiRmYS12YXItZ2VtOiBcXGYzYTU7XG4kZmEtdmFyLWdlbmRlcmxlc3M6IFxcZjIyZDtcbiRmYS12YXItZ2V0LXBvY2tldDogXFxmMjY1O1xuJGZhLXZhci1nZzogXFxmMjYwO1xuJGZhLXZhci1nZy1jaXJjbGU6IFxcZjI2MTtcbiRmYS12YXItZ2lmdDogXFxmMDZiO1xuJGZhLXZhci1naXQ6IFxcZjFkMztcbiRmYS12YXItZ2l0LXNxdWFyZTogXFxmMWQyO1xuJGZhLXZhci1naXRodWI6IFxcZjA5YjtcbiRmYS12YXItZ2l0aHViLWFsdDogXFxmMTEzO1xuJGZhLXZhci1naXRodWItc3F1YXJlOiBcXGYwOTI7XG4kZmEtdmFyLWdpdGtyYWtlbjogXFxmM2E2O1xuJGZhLXZhci1naXRsYWI6IFxcZjI5NjtcbiRmYS12YXItZ2l0dGVyOiBcXGY0MjY7XG4kZmEtdmFyLWdsYXNzLW1hcnRpbmk6IFxcZjAwMDtcbiRmYS12YXItZ2xhc3MtbWFydGluaS1hbHQ6IFxcZjU3YjtcbiRmYS12YXItZ2xhc3NlczogXFxmNTMwO1xuJGZhLXZhci1nbGlkZTogXFxmMmE1O1xuJGZhLXZhci1nbGlkZS1nOiBcXGYyYTY7XG4kZmEtdmFyLWdsb2JlOiBcXGYwYWM7XG4kZmEtdmFyLWdsb2JlLWFmcmljYTogXFxmNTdjO1xuJGZhLXZhci1nbG9iZS1hbWVyaWNhczogXFxmNTdkO1xuJGZhLXZhci1nbG9iZS1hc2lhOiBcXGY1N2U7XG4kZmEtdmFyLWdvZm9yZTogXFxmM2E3O1xuJGZhLXZhci1nb2xmLWJhbGw6IFxcZjQ1MDtcbiRmYS12YXItZ29vZHJlYWRzOiBcXGYzYTg7XG4kZmEtdmFyLWdvb2RyZWFkcy1nOiBcXGYzYTk7XG4kZmEtdmFyLWdvb2dsZTogXFxmMWEwO1xuJGZhLXZhci1nb29nbGUtZHJpdmU6IFxcZjNhYTtcbiRmYS12YXItZ29vZ2xlLXBsYXk6IFxcZjNhYjtcbiRmYS12YXItZ29vZ2xlLXBsdXM6IFxcZjJiMztcbiRmYS12YXItZ29vZ2xlLXBsdXMtZzogXFxmMGQ1O1xuJGZhLXZhci1nb29nbGUtcGx1cy1zcXVhcmU6IFxcZjBkNDtcbiRmYS12YXItZ29vZ2xlLXdhbGxldDogXFxmMWVlO1xuJGZhLXZhci1ncmFkdWF0aW9uLWNhcDogXFxmMTlkO1xuJGZhLXZhci1ncmF0aXBheTogXFxmMTg0O1xuJGZhLXZhci1ncmF2OiBcXGYyZDY7XG4kZmEtdmFyLWdyZWF0ZXItdGhhbjogXFxmNTMxO1xuJGZhLXZhci1ncmVhdGVyLXRoYW4tZXF1YWw6IFxcZjUzMjtcbiRmYS12YXItZ3JpbWFjZTogXFxmNTdmO1xuJGZhLXZhci1ncmluOiBcXGY1ODA7XG4kZmEtdmFyLWdyaW4tYWx0OiBcXGY1ODE7XG4kZmEtdmFyLWdyaW4tYmVhbTogXFxmNTgyO1xuJGZhLXZhci1ncmluLWJlYW0tc3dlYXQ6IFxcZjU4MztcbiRmYS12YXItZ3Jpbi1oZWFydHM6IFxcZjU4NDtcbiRmYS12YXItZ3Jpbi1zcXVpbnQ6IFxcZjU4NTtcbiRmYS12YXItZ3Jpbi1zcXVpbnQtdGVhcnM6IFxcZjU4NjtcbiRmYS12YXItZ3Jpbi1zdGFyczogXFxmNTg3O1xuJGZhLXZhci1ncmluLXRlYXJzOiBcXGY1ODg7XG4kZmEtdmFyLWdyaW4tdG9uZ3VlOiBcXGY1ODk7XG4kZmEtdmFyLWdyaW4tdG9uZ3VlLXNxdWludDogXFxmNThhO1xuJGZhLXZhci1ncmluLXRvbmd1ZS13aW5rOiBcXGY1OGI7XG4kZmEtdmFyLWdyaW4td2luazogXFxmNThjO1xuJGZhLXZhci1ncmlwLWhvcml6b250YWw6IFxcZjU4ZDtcbiRmYS12YXItZ3JpcC12ZXJ0aWNhbDogXFxmNThlO1xuJGZhLXZhci1ncmlwZmlyZTogXFxmM2FjO1xuJGZhLXZhci1ncnVudDogXFxmM2FkO1xuJGZhLXZhci1ndWxwOiBcXGYzYWU7XG4kZmEtdmFyLWgtc3F1YXJlOiBcXGYwZmQ7XG4kZmEtdmFyLWhhY2tlci1uZXdzOiBcXGYxZDQ7XG4kZmEtdmFyLWhhY2tlci1uZXdzLXNxdWFyZTogXFxmM2FmO1xuJGZhLXZhci1oYW5kLWhvbGRpbmc6IFxcZjRiZDtcbiRmYS12YXItaGFuZC1ob2xkaW5nLWhlYXJ0OiBcXGY0YmU7XG4kZmEtdmFyLWhhbmQtaG9sZGluZy11c2Q6IFxcZjRjMDtcbiRmYS12YXItaGFuZC1saXphcmQ6IFxcZjI1ODtcbiRmYS12YXItaGFuZC1wYXBlcjogXFxmMjU2O1xuJGZhLXZhci1oYW5kLXBlYWNlOiBcXGYyNWI7XG4kZmEtdmFyLWhhbmQtcG9pbnQtZG93bjogXFxmMGE3O1xuJGZhLXZhci1oYW5kLXBvaW50LWxlZnQ6IFxcZjBhNTtcbiRmYS12YXItaGFuZC1wb2ludC1yaWdodDogXFxmMGE0O1xuJGZhLXZhci1oYW5kLXBvaW50LXVwOiBcXGYwYTY7XG4kZmEtdmFyLWhhbmQtcG9pbnRlcjogXFxmMjVhO1xuJGZhLXZhci1oYW5kLXJvY2s6IFxcZjI1NTtcbiRmYS12YXItaGFuZC1zY2lzc29yczogXFxmMjU3O1xuJGZhLXZhci1oYW5kLXNwb2NrOiBcXGYyNTk7XG4kZmEtdmFyLWhhbmRzOiBcXGY0YzI7XG4kZmEtdmFyLWhhbmRzLWhlbHBpbmc6IFxcZjRjNDtcbiRmYS12YXItaGFuZHNoYWtlOiBcXGYyYjU7XG4kZmEtdmFyLWhhc2h0YWc6IFxcZjI5MjtcbiRmYS12YXItaGRkOiBcXGYwYTA7XG4kZmEtdmFyLWhlYWRpbmc6IFxcZjFkYztcbiRmYS12YXItaGVhZHBob25lczogXFxmMDI1O1xuJGZhLXZhci1oZWFkcGhvbmVzLWFsdDogXFxmNThmO1xuJGZhLXZhci1oZWFkc2V0OiBcXGY1OTA7XG4kZmEtdmFyLWhlYXJ0OiBcXGYwMDQ7XG4kZmEtdmFyLWhlYXJ0YmVhdDogXFxmMjFlO1xuJGZhLXZhci1oZWxpY29wdGVyOiBcXGY1MzM7XG4kZmEtdmFyLWhpZ2hsaWdodGVyOiBcXGY1OTE7XG4kZmEtdmFyLWhpcHM6IFxcZjQ1MjtcbiRmYS12YXItaGlyZS1hLWhlbHBlcjogXFxmM2IwO1xuJGZhLXZhci1oaXN0b3J5OiBcXGYxZGE7XG4kZmEtdmFyLWhvY2tleS1wdWNrOiBcXGY0NTM7XG4kZmEtdmFyLWhvbWU6IFxcZjAxNTtcbiRmYS12YXItaG9vbGk6IFxcZjQyNztcbiRmYS12YXItaG9ybmJpbGw6IFxcZjU5MjtcbiRmYS12YXItaG9zcGl0YWw6IFxcZjBmODtcbiRmYS12YXItaG9zcGl0YWwtYWx0OiBcXGY0N2Q7XG4kZmEtdmFyLWhvc3BpdGFsLXN5bWJvbDogXFxmNDdlO1xuJGZhLXZhci1ob3QtdHViOiBcXGY1OTM7XG4kZmEtdmFyLWhvdGVsOiBcXGY1OTQ7XG4kZmEtdmFyLWhvdGphcjogXFxmM2IxO1xuJGZhLXZhci1ob3VyZ2xhc3M6IFxcZjI1NDtcbiRmYS12YXItaG91cmdsYXNzLWVuZDogXFxmMjUzO1xuJGZhLXZhci1ob3VyZ2xhc3MtaGFsZjogXFxmMjUyO1xuJGZhLXZhci1ob3VyZ2xhc3Mtc3RhcnQ6IFxcZjI1MTtcbiRmYS12YXItaG91eno6IFxcZjI3YztcbiRmYS12YXItaHRtbDU6IFxcZjEzYjtcbiRmYS12YXItaHVic3BvdDogXFxmM2IyO1xuJGZhLXZhci1pLWN1cnNvcjogXFxmMjQ2O1xuJGZhLXZhci1pZC1iYWRnZTogXFxmMmMxO1xuJGZhLXZhci1pZC1jYXJkOiBcXGYyYzI7XG4kZmEtdmFyLWlkLWNhcmQtYWx0OiBcXGY0N2Y7XG4kZmEtdmFyLWltYWdlOiBcXGYwM2U7XG4kZmEtdmFyLWltYWdlczogXFxmMzAyO1xuJGZhLXZhci1pbWRiOiBcXGYyZDg7XG4kZmEtdmFyLWluYm94OiBcXGYwMWM7XG4kZmEtdmFyLWluZGVudDogXFxmMDNjO1xuJGZhLXZhci1pbmR1c3RyeTogXFxmMjc1O1xuJGZhLXZhci1pbmZpbml0eTogXFxmNTM0O1xuJGZhLXZhci1pbmZvOiBcXGYxMjk7XG4kZmEtdmFyLWluZm8tY2lyY2xlOiBcXGYwNWE7XG4kZmEtdmFyLWluc3RhZ3JhbTogXFxmMTZkO1xuJGZhLXZhci1pbnRlcm5ldC1leHBsb3JlcjogXFxmMjZiO1xuJGZhLXZhci1pb3hob3N0OiBcXGYyMDg7XG4kZmEtdmFyLWl0YWxpYzogXFxmMDMzO1xuJGZhLXZhci1pdHVuZXM6IFxcZjNiNDtcbiRmYS12YXItaXR1bmVzLW5vdGU6IFxcZjNiNTtcbiRmYS12YXItamF2YTogXFxmNGU0O1xuJGZhLXZhci1qZWRpLW9yZGVyOiBcXGY1MGU7XG4kZmEtdmFyLWplbmtpbnM6IFxcZjNiNjtcbiRmYS12YXItam9nZXQ6IFxcZjNiNztcbiRmYS12YXItam9pbnQ6IFxcZjU5NTtcbiRmYS12YXItam9vbWxhOiBcXGYxYWE7XG4kZmEtdmFyLWpzOiBcXGYzYjg7XG4kZmEtdmFyLWpzLXNxdWFyZTogXFxmM2I5O1xuJGZhLXZhci1qc2ZpZGRsZTogXFxmMWNjO1xuJGZhLXZhci1rZXk6IFxcZjA4NDtcbiRmYS12YXIta2V5YmFzZTogXFxmNGY1O1xuJGZhLXZhci1rZXlib2FyZDogXFxmMTFjO1xuJGZhLXZhci1rZXljZG46IFxcZjNiYTtcbiRmYS12YXIta2lja3N0YXJ0ZXI6IFxcZjNiYjtcbiRmYS12YXIta2lja3N0YXJ0ZXItazogXFxmM2JjO1xuJGZhLXZhci1raXNzOiBcXGY1OTY7XG4kZmEtdmFyLWtpc3MtYmVhbTogXFxmNTk3O1xuJGZhLXZhci1raXNzLXdpbmstaGVhcnQ6IFxcZjU5ODtcbiRmYS12YXIta2l3aS1iaXJkOiBcXGY1MzU7XG4kZmEtdmFyLWtvcnZ1ZTogXFxmNDJmO1xuJGZhLXZhci1sYW5ndWFnZTogXFxmMWFiO1xuJGZhLXZhci1sYXB0b3A6IFxcZjEwOTtcbiRmYS12YXItbGFyYXZlbDogXFxmM2JkO1xuJGZhLXZhci1sYXN0Zm06IFxcZjIwMjtcbiRmYS12YXItbGFzdGZtLXNxdWFyZTogXFxmMjAzO1xuJGZhLXZhci1sYXVnaDogXFxmNTk5O1xuJGZhLXZhci1sYXVnaC1iZWFtOiBcXGY1OWE7XG4kZmEtdmFyLWxhdWdoLXNxdWludDogXFxmNTliO1xuJGZhLXZhci1sYXVnaC13aW5rOiBcXGY1OWM7XG4kZmEtdmFyLWxlYWY6IFxcZjA2YztcbiRmYS12YXItbGVhbnB1YjogXFxmMjEyO1xuJGZhLXZhci1sZW1vbjogXFxmMDk0O1xuJGZhLXZhci1sZXNzOiBcXGY0MWQ7XG4kZmEtdmFyLWxlc3MtdGhhbjogXFxmNTM2O1xuJGZhLXZhci1sZXNzLXRoYW4tZXF1YWw6IFxcZjUzNztcbiRmYS12YXItbGV2ZWwtZG93bi1hbHQ6IFxcZjNiZTtcbiRmYS12YXItbGV2ZWwtdXAtYWx0OiBcXGYzYmY7XG4kZmEtdmFyLWxpZmUtcmluZzogXFxmMWNkO1xuJGZhLXZhci1saWdodGJ1bGI6IFxcZjBlYjtcbiRmYS12YXItbGluZTogXFxmM2MwO1xuJGZhLXZhci1saW5rOiBcXGYwYzE7XG4kZmEtdmFyLWxpbmtlZGluOiBcXGYwOGM7XG4kZmEtdmFyLWxpbmtlZGluLWluOiBcXGYwZTE7XG4kZmEtdmFyLWxpbm9kZTogXFxmMmI4O1xuJGZhLXZhci1saW51eDogXFxmMTdjO1xuJGZhLXZhci1saXJhLXNpZ246IFxcZjE5NTtcbiRmYS12YXItbGlzdDogXFxmMDNhO1xuJGZhLXZhci1saXN0LWFsdDogXFxmMDIyO1xuJGZhLXZhci1saXN0LW9sOiBcXGYwY2I7XG4kZmEtdmFyLWxpc3QtdWw6IFxcZjBjYTtcbiRmYS12YXItbG9jYXRpb24tYXJyb3c6IFxcZjEyNDtcbiRmYS12YXItbG9jazogXFxmMDIzO1xuJGZhLXZhci1sb2NrLW9wZW46IFxcZjNjMTtcbiRmYS12YXItbG9uZy1hcnJvdy1hbHQtZG93bjogXFxmMzA5O1xuJGZhLXZhci1sb25nLWFycm93LWFsdC1sZWZ0OiBcXGYzMGE7XG4kZmEtdmFyLWxvbmctYXJyb3ctYWx0LXJpZ2h0OiBcXGYzMGI7XG4kZmEtdmFyLWxvbmctYXJyb3ctYWx0LXVwOiBcXGYzMGM7XG4kZmEtdmFyLWxvdy12aXNpb246IFxcZjJhODtcbiRmYS12YXItbHVnZ2FnZS1jYXJ0OiBcXGY1OWQ7XG4kZmEtdmFyLWx5ZnQ6IFxcZjNjMztcbiRmYS12YXItbWFnZW50bzogXFxmM2M0O1xuJGZhLXZhci1tYWdpYzogXFxmMGQwO1xuJGZhLXZhci1tYWduZXQ6IFxcZjA3NjtcbiRmYS12YXItbWFpbGNoaW1wOiBcXGY1OWU7XG4kZmEtdmFyLW1hbGU6IFxcZjE4MztcbiRmYS12YXItbWFuZGFsb3JpYW46IFxcZjUwZjtcbiRmYS12YXItbWFwOiBcXGYyNzk7XG4kZmEtdmFyLW1hcC1tYXJrZWQ6IFxcZjU5ZjtcbiRmYS12YXItbWFwLW1hcmtlZC1hbHQ6IFxcZjVhMDtcbiRmYS12YXItbWFwLW1hcmtlcjogXFxmMDQxO1xuJGZhLXZhci1tYXAtbWFya2VyLWFsdDogXFxmM2M1O1xuJGZhLXZhci1tYXAtcGluOiBcXGYyNzY7XG4kZmEtdmFyLW1hcC1zaWduczogXFxmMjc3O1xuJGZhLXZhci1tYXJrZXI6IFxcZjVhMTtcbiRmYS12YXItbWFyczogXFxmMjIyO1xuJGZhLXZhci1tYXJzLWRvdWJsZTogXFxmMjI3O1xuJGZhLXZhci1tYXJzLXN0cm9rZTogXFxmMjI5O1xuJGZhLXZhci1tYXJzLXN0cm9rZS1oOiBcXGYyMmI7XG4kZmEtdmFyLW1hcnMtc3Ryb2tlLXY6IFxcZjIyYTtcbiRmYS12YXItbWFzdG9kb246IFxcZjRmNjtcbiRmYS12YXItbWF4Y2RuOiBcXGYxMzY7XG4kZmEtdmFyLW1lZGFsOiBcXGY1YTI7XG4kZmEtdmFyLW1lZGFwcHM6IFxcZjNjNjtcbiRmYS12YXItbWVkaXVtOiBcXGYyM2E7XG4kZmEtdmFyLW1lZGl1bS1tOiBcXGYzYzc7XG4kZmEtdmFyLW1lZGtpdDogXFxmMGZhO1xuJGZhLXZhci1tZWRydDogXFxmM2M4O1xuJGZhLXZhci1tZWV0dXA6IFxcZjJlMDtcbiRmYS12YXItbWVnYXBvcnQ6IFxcZjVhMztcbiRmYS12YXItbWVoOiBcXGYxMWE7XG4kZmEtdmFyLW1laC1ibGFuazogXFxmNWE0O1xuJGZhLXZhci1tZWgtcm9sbGluZy1leWVzOiBcXGY1YTU7XG4kZmEtdmFyLW1lbW9yeTogXFxmNTM4O1xuJGZhLXZhci1tZXJjdXJ5OiBcXGYyMjM7XG4kZmEtdmFyLW1pY3JvY2hpcDogXFxmMmRiO1xuJGZhLXZhci1taWNyb3Bob25lOiBcXGYxMzA7XG4kZmEtdmFyLW1pY3JvcGhvbmUtYWx0OiBcXGYzYzk7XG4kZmEtdmFyLW1pY3JvcGhvbmUtYWx0LXNsYXNoOiBcXGY1Mzk7XG4kZmEtdmFyLW1pY3JvcGhvbmUtc2xhc2g6IFxcZjEzMTtcbiRmYS12YXItbWljcm9zb2Z0OiBcXGYzY2E7XG4kZmEtdmFyLW1pbnVzOiBcXGYwNjg7XG4kZmEtdmFyLW1pbnVzLWNpcmNsZTogXFxmMDU2O1xuJGZhLXZhci1taW51cy1zcXVhcmU6IFxcZjE0NjtcbiRmYS12YXItbWl4OiBcXGYzY2I7XG4kZmEtdmFyLW1peGNsb3VkOiBcXGYyODk7XG4kZmEtdmFyLW1penVuaTogXFxmM2NjO1xuJGZhLXZhci1tb2JpbGU6IFxcZjEwYjtcbiRmYS12YXItbW9iaWxlLWFsdDogXFxmM2NkO1xuJGZhLXZhci1tb2R4OiBcXGYyODU7XG4kZmEtdmFyLW1vbmVybzogXFxmM2QwO1xuJGZhLXZhci1tb25leS1iaWxsOiBcXGYwZDY7XG4kZmEtdmFyLW1vbmV5LWJpbGwtYWx0OiBcXGYzZDE7XG4kZmEtdmFyLW1vbmV5LWJpbGwtd2F2ZTogXFxmNTNhO1xuJGZhLXZhci1tb25leS1iaWxsLXdhdmUtYWx0OiBcXGY1M2I7XG4kZmEtdmFyLW1vbmV5LWNoZWNrOiBcXGY1M2M7XG4kZmEtdmFyLW1vbmV5LWNoZWNrLWFsdDogXFxmNTNkO1xuJGZhLXZhci1tb251bWVudDogXFxmNWE2O1xuJGZhLXZhci1tb29uOiBcXGYxODY7XG4kZmEtdmFyLW1vcnRhci1wZXN0bGU6IFxcZjVhNztcbiRmYS12YXItbW90b3JjeWNsZTogXFxmMjFjO1xuJGZhLXZhci1tb3VzZS1wb2ludGVyOiBcXGYyNDU7XG4kZmEtdmFyLW11c2ljOiBcXGYwMDE7XG4kZmEtdmFyLW5hcHN0ZXI6IFxcZjNkMjtcbiRmYS12YXItbmV1dGVyOiBcXGYyMmM7XG4kZmEtdmFyLW5ld3NwYXBlcjogXFxmMWVhO1xuJGZhLXZhci1uaW1ibHI6IFxcZjVhODtcbiRmYS12YXItbmludGVuZG8tc3dpdGNoOiBcXGY0MTg7XG4kZmEtdmFyLW5vZGU6IFxcZjQxOTtcbiRmYS12YXItbm9kZS1qczogXFxmM2QzO1xuJGZhLXZhci1ub3QtZXF1YWw6IFxcZjUzZTtcbiRmYS12YXItbm90ZXMtbWVkaWNhbDogXFxmNDgxO1xuJGZhLXZhci1ucG06IFxcZjNkNDtcbiRmYS12YXItbnM4OiBcXGYzZDU7XG4kZmEtdmFyLW51dHJpdGlvbml4OiBcXGYzZDY7XG4kZmEtdmFyLW9iamVjdC1ncm91cDogXFxmMjQ3O1xuJGZhLXZhci1vYmplY3QtdW5ncm91cDogXFxmMjQ4O1xuJGZhLXZhci1vZG5va2xhc3NuaWtpOiBcXGYyNjM7XG4kZmEtdmFyLW9kbm9rbGFzc25pa2ktc3F1YXJlOiBcXGYyNjQ7XG4kZmEtdmFyLW9sZC1yZXB1YmxpYzogXFxmNTEwO1xuJGZhLXZhci1vcGVuY2FydDogXFxmMjNkO1xuJGZhLXZhci1vcGVuaWQ6IFxcZjE5YjtcbiRmYS12YXItb3BlcmE6IFxcZjI2YTtcbiRmYS12YXItb3B0aW4tbW9uc3RlcjogXFxmMjNjO1xuJGZhLXZhci1vc2k6IFxcZjQxYTtcbiRmYS12YXItb3V0ZGVudDogXFxmMDNiO1xuJGZhLXZhci1wYWdlNDogXFxmM2Q3O1xuJGZhLXZhci1wYWdlbGluZXM6IFxcZjE4YztcbiRmYS12YXItcGFpbnQtYnJ1c2g6IFxcZjFmYztcbiRmYS12YXItcGFpbnQtcm9sbGVyOiBcXGY1YWE7XG4kZmEtdmFyLXBhbGV0dGU6IFxcZjUzZjtcbiRmYS12YXItcGFsZmVkOiBcXGYzZDg7XG4kZmEtdmFyLXBhbGxldDogXFxmNDgyO1xuJGZhLXZhci1wYXBlci1wbGFuZTogXFxmMWQ4O1xuJGZhLXZhci1wYXBlcmNsaXA6IFxcZjBjNjtcbiRmYS12YXItcGFyYWNodXRlLWJveDogXFxmNGNkO1xuJGZhLXZhci1wYXJhZ3JhcGg6IFxcZjFkZDtcbiRmYS12YXItcGFya2luZzogXFxmNTQwO1xuJGZhLXZhci1wYXNzcG9ydDogXFxmNWFiO1xuJGZhLXZhci1wYXN0ZTogXFxmMGVhO1xuJGZhLXZhci1wYXRyZW9uOiBcXGYzZDk7XG4kZmEtdmFyLXBhdXNlOiBcXGYwNGM7XG4kZmEtdmFyLXBhdXNlLWNpcmNsZTogXFxmMjhiO1xuJGZhLXZhci1wYXc6IFxcZjFiMDtcbiRmYS12YXItcGF5cGFsOiBcXGYxZWQ7XG4kZmEtdmFyLXBlbjogXFxmMzA0O1xuJGZhLXZhci1wZW4tYWx0OiBcXGYzMDU7XG4kZmEtdmFyLXBlbi1mYW5jeTogXFxmNWFjO1xuJGZhLXZhci1wZW4tbmliOiBcXGY1YWQ7XG4kZmEtdmFyLXBlbi1zcXVhcmU6IFxcZjE0YjtcbiRmYS12YXItcGVuY2lsLWFsdDogXFxmMzAzO1xuJGZhLXZhci1wZW5jaWwtcnVsZXI6IFxcZjVhZTtcbiRmYS12YXItcGVvcGxlLWNhcnJ5OiBcXGY0Y2U7XG4kZmEtdmFyLXBlcmNlbnQ6IFxcZjI5NTtcbiRmYS12YXItcGVyY2VudGFnZTogXFxmNTQxO1xuJGZhLXZhci1wZXJpc2NvcGU6IFxcZjNkYTtcbiRmYS12YXItcGhhYnJpY2F0b3I6IFxcZjNkYjtcbiRmYS12YXItcGhvZW5peC1mcmFtZXdvcms6IFxcZjNkYztcbiRmYS12YXItcGhvZW5peC1zcXVhZHJvbjogXFxmNTExO1xuJGZhLXZhci1waG9uZTogXFxmMDk1O1xuJGZhLXZhci1waG9uZS1zbGFzaDogXFxmM2RkO1xuJGZhLXZhci1waG9uZS1zcXVhcmU6IFxcZjA5ODtcbiRmYS12YXItcGhvbmUtdm9sdW1lOiBcXGYyYTA7XG4kZmEtdmFyLXBocDogXFxmNDU3O1xuJGZhLXZhci1waWVkLXBpcGVyOiBcXGYyYWU7XG4kZmEtdmFyLXBpZWQtcGlwZXItYWx0OiBcXGYxYTg7XG4kZmEtdmFyLXBpZWQtcGlwZXItaGF0OiBcXGY0ZTU7XG4kZmEtdmFyLXBpZWQtcGlwZXItcHA6IFxcZjFhNztcbiRmYS12YXItcGlnZ3ktYmFuazogXFxmNGQzO1xuJGZhLXZhci1waWxsczogXFxmNDg0O1xuJGZhLXZhci1waW50ZXJlc3Q6IFxcZjBkMjtcbiRmYS12YXItcGludGVyZXN0LXA6IFxcZjIzMTtcbiRmYS12YXItcGludGVyZXN0LXNxdWFyZTogXFxmMGQzO1xuJGZhLXZhci1wbGFuZTogXFxmMDcyO1xuJGZhLXZhci1wbGFuZS1hcnJpdmFsOiBcXGY1YWY7XG4kZmEtdmFyLXBsYW5lLWRlcGFydHVyZTogXFxmNWIwO1xuJGZhLXZhci1wbGF5OiBcXGYwNGI7XG4kZmEtdmFyLXBsYXktY2lyY2xlOiBcXGYxNDQ7XG4kZmEtdmFyLXBsYXlzdGF0aW9uOiBcXGYzZGY7XG4kZmEtdmFyLXBsdWc6IFxcZjFlNjtcbiRmYS12YXItcGx1czogXFxmMDY3O1xuJGZhLXZhci1wbHVzLWNpcmNsZTogXFxmMDU1O1xuJGZhLXZhci1wbHVzLXNxdWFyZTogXFxmMGZlO1xuJGZhLXZhci1wb2RjYXN0OiBcXGYyY2U7XG4kZmEtdmFyLXBvbzogXFxmMmZlO1xuJGZhLXZhci1wb3J0cmFpdDogXFxmM2UwO1xuJGZhLXZhci1wb3VuZC1zaWduOiBcXGYxNTQ7XG4kZmEtdmFyLXBvd2VyLW9mZjogXFxmMDExO1xuJGZhLXZhci1wcmVzY3JpcHRpb246IFxcZjViMTtcbiRmYS12YXItcHJlc2NyaXB0aW9uLWJvdHRsZTogXFxmNDg1O1xuJGZhLXZhci1wcmVzY3JpcHRpb24tYm90dGxlLWFsdDogXFxmNDg2O1xuJGZhLXZhci1wcmludDogXFxmMDJmO1xuJGZhLXZhci1wcm9jZWR1cmVzOiBcXGY0ODc7XG4kZmEtdmFyLXByb2R1Y3QtaHVudDogXFxmMjg4O1xuJGZhLXZhci1wcm9qZWN0LWRpYWdyYW06IFxcZjU0MjtcbiRmYS12YXItcHVzaGVkOiBcXGYzZTE7XG4kZmEtdmFyLXB1enpsZS1waWVjZTogXFxmMTJlO1xuJGZhLXZhci1weXRob246IFxcZjNlMjtcbiRmYS12YXItcXE6IFxcZjFkNjtcbiRmYS12YXItcXJjb2RlOiBcXGYwMjk7XG4kZmEtdmFyLXF1ZXN0aW9uOiBcXGYxMjg7XG4kZmEtdmFyLXF1ZXN0aW9uLWNpcmNsZTogXFxmMDU5O1xuJGZhLXZhci1xdWlkZGl0Y2g6IFxcZjQ1ODtcbiRmYS12YXItcXVpbnNjYXBlOiBcXGY0NTk7XG4kZmEtdmFyLXF1b3JhOiBcXGYyYzQ7XG4kZmEtdmFyLXF1b3RlLWxlZnQ6IFxcZjEwZDtcbiRmYS12YXItcXVvdGUtcmlnaHQ6IFxcZjEwZTtcbiRmYS12YXItci1wcm9qZWN0OiBcXGY0Zjc7XG4kZmEtdmFyLXJhbmRvbTogXFxmMDc0O1xuJGZhLXZhci1yYXZlbHJ5OiBcXGYyZDk7XG4kZmEtdmFyLXJlYWN0OiBcXGY0MWI7XG4kZmEtdmFyLXJlYWRtZTogXFxmNGQ1O1xuJGZhLXZhci1yZWJlbDogXFxmMWQwO1xuJGZhLXZhci1yZWNlaXB0OiBcXGY1NDM7XG4kZmEtdmFyLXJlY3ljbGU6IFxcZjFiODtcbiRmYS12YXItcmVkLXJpdmVyOiBcXGYzZTM7XG4kZmEtdmFyLXJlZGRpdDogXFxmMWExO1xuJGZhLXZhci1yZWRkaXQtYWxpZW46IFxcZjI4MTtcbiRmYS12YXItcmVkZGl0LXNxdWFyZTogXFxmMWEyO1xuJGZhLXZhci1yZWRvOiBcXGYwMWU7XG4kZmEtdmFyLXJlZG8tYWx0OiBcXGYyZjk7XG4kZmEtdmFyLXJlZ2lzdGVyZWQ6IFxcZjI1ZDtcbiRmYS12YXItcmVuZGFjdDogXFxmM2U0O1xuJGZhLXZhci1yZW5yZW46IFxcZjE4YjtcbiRmYS12YXItcmVwbHk6IFxcZjNlNTtcbiRmYS12YXItcmVwbHktYWxsOiBcXGYxMjI7XG4kZmEtdmFyLXJlcGx5ZDogXFxmM2U2O1xuJGZhLXZhci1yZXNlYXJjaGdhdGU6IFxcZjRmODtcbiRmYS12YXItcmVzb2x2aW5nOiBcXGYzZTc7XG4kZmEtdmFyLXJldHdlZXQ6IFxcZjA3OTtcbiRmYS12YXItcmV2OiBcXGY1YjI7XG4kZmEtdmFyLXJpYmJvbjogXFxmNGQ2O1xuJGZhLXZhci1yb2FkOiBcXGYwMTg7XG4kZmEtdmFyLXJvYm90OiBcXGY1NDQ7XG4kZmEtdmFyLXJvY2tldDogXFxmMTM1O1xuJGZhLXZhci1yb2NrZXRjaGF0OiBcXGYzZTg7XG4kZmEtdmFyLXJvY2tybXM6IFxcZjNlOTtcbiRmYS12YXItcnNzOiBcXGYwOWU7XG4kZmEtdmFyLXJzcy1zcXVhcmU6IFxcZjE0MztcbiRmYS12YXItcnVibGUtc2lnbjogXFxmMTU4O1xuJGZhLXZhci1ydWxlcjogXFxmNTQ1O1xuJGZhLXZhci1ydWxlci1jb21iaW5lZDogXFxmNTQ2O1xuJGZhLXZhci1ydWxlci1ob3Jpem9udGFsOiBcXGY1NDc7XG4kZmEtdmFyLXJ1bGVyLXZlcnRpY2FsOiBcXGY1NDg7XG4kZmEtdmFyLXJ1cGVlLXNpZ246IFxcZjE1NjtcbiRmYS12YXItc2FkLWNyeTogXFxmNWIzO1xuJGZhLXZhci1zYWQtdGVhcjogXFxmNWI0O1xuJGZhLXZhci1zYWZhcmk6IFxcZjI2NztcbiRmYS12YXItc2FzczogXFxmNDFlO1xuJGZhLXZhci1zYXZlOiBcXGYwYzc7XG4kZmEtdmFyLXNjaGxpeDogXFxmM2VhO1xuJGZhLXZhci1zY2hvb2w6IFxcZjU0OTtcbiRmYS12YXItc2NyZXdkcml2ZXI6IFxcZjU0YTtcbiRmYS12YXItc2NyaWJkOiBcXGYyOGE7XG4kZmEtdmFyLXNlYXJjaDogXFxmMDAyO1xuJGZhLXZhci1zZWFyY2gtbWludXM6IFxcZjAxMDtcbiRmYS12YXItc2VhcmNoLXBsdXM6IFxcZjAwZTtcbiRmYS12YXItc2VhcmNoZW5naW46IFxcZjNlYjtcbiRmYS12YXItc2VlZGxpbmc6IFxcZjRkODtcbiRmYS12YXItc2VsbGNhc3Q6IFxcZjJkYTtcbiRmYS12YXItc2VsbHN5OiBcXGYyMTM7XG4kZmEtdmFyLXNlcnZlcjogXFxmMjMzO1xuJGZhLXZhci1zZXJ2aWNlc3RhY2s6IFxcZjNlYztcbiRmYS12YXItc2hhcmU6IFxcZjA2NDtcbiRmYS12YXItc2hhcmUtYWx0OiBcXGYxZTA7XG4kZmEtdmFyLXNoYXJlLWFsdC1zcXVhcmU6IFxcZjFlMTtcbiRmYS12YXItc2hhcmUtc3F1YXJlOiBcXGYxNGQ7XG4kZmEtdmFyLXNoZWtlbC1zaWduOiBcXGYyMGI7XG4kZmEtdmFyLXNoaWVsZC1hbHQ6IFxcZjNlZDtcbiRmYS12YXItc2hpcDogXFxmMjFhO1xuJGZhLXZhci1zaGlwcGluZy1mYXN0OiBcXGY0OGI7XG4kZmEtdmFyLXNoaXJ0c2luYnVsazogXFxmMjE0O1xuJGZhLXZhci1zaG9lLXByaW50czogXFxmNTRiO1xuJGZhLXZhci1zaG9wcGluZy1iYWc6IFxcZjI5MDtcbiRmYS12YXItc2hvcHBpbmctYmFza2V0OiBcXGYyOTE7XG4kZmEtdmFyLXNob3BwaW5nLWNhcnQ6IFxcZjA3YTtcbiRmYS12YXItc2hvcHdhcmU6IFxcZjViNTtcbiRmYS12YXItc2hvd2VyOiBcXGYyY2M7XG4kZmEtdmFyLXNodXR0bGUtdmFuOiBcXGY1YjY7XG4kZmEtdmFyLXNpZ246IFxcZjRkOTtcbiRmYS12YXItc2lnbi1pbi1hbHQ6IFxcZjJmNjtcbiRmYS12YXItc2lnbi1sYW5ndWFnZTogXFxmMmE3O1xuJGZhLXZhci1zaWduLW91dC1hbHQ6IFxcZjJmNTtcbiRmYS12YXItc2lnbmFsOiBcXGYwMTI7XG4kZmEtdmFyLXNpZ25hdHVyZTogXFxmNWI3O1xuJGZhLXZhci1zaW1wbHlidWlsdDogXFxmMjE1O1xuJGZhLXZhci1zaXN0cml4OiBcXGYzZWU7XG4kZmEtdmFyLXNpdGVtYXA6IFxcZjBlODtcbiRmYS12YXItc2l0aDogXFxmNTEyO1xuJGZhLXZhci1za3VsbDogXFxmNTRjO1xuJGZhLXZhci1za3lhdGxhczogXFxmMjE2O1xuJGZhLXZhci1za3lwZTogXFxmMTdlO1xuJGZhLXZhci1zbGFjazogXFxmMTk4O1xuJGZhLXZhci1zbGFjay1oYXNoOiBcXGYzZWY7XG4kZmEtdmFyLXNsaWRlcnMtaDogXFxmMWRlO1xuJGZhLXZhci1zbGlkZXNoYXJlOiBcXGYxZTc7XG4kZmEtdmFyLXNtaWxlOiBcXGYxMTg7XG4kZmEtdmFyLXNtaWxlLWJlYW06IFxcZjViODtcbiRmYS12YXItc21pbGUtd2luazogXFxmNGRhO1xuJGZhLXZhci1zbW9raW5nOiBcXGY0OGQ7XG4kZmEtdmFyLXNtb2tpbmctYmFuOiBcXGY1NGQ7XG4kZmEtdmFyLXNuYXBjaGF0OiBcXGYyYWI7XG4kZmEtdmFyLXNuYXBjaGF0LWdob3N0OiBcXGYyYWM7XG4kZmEtdmFyLXNuYXBjaGF0LXNxdWFyZTogXFxmMmFkO1xuJGZhLXZhci1zbm93Zmxha2U6IFxcZjJkYztcbiRmYS12YXItc29sYXItcGFuZWw6IFxcZjViYTtcbiRmYS12YXItc29ydDogXFxmMGRjO1xuJGZhLXZhci1zb3J0LWFscGhhLWRvd246IFxcZjE1ZDtcbiRmYS12YXItc29ydC1hbHBoYS11cDogXFxmMTVlO1xuJGZhLXZhci1zb3J0LWFtb3VudC1kb3duOiBcXGYxNjA7XG4kZmEtdmFyLXNvcnQtYW1vdW50LXVwOiBcXGYxNjE7XG4kZmEtdmFyLXNvcnQtZG93bjogXFxmMGRkO1xuJGZhLXZhci1zb3J0LW51bWVyaWMtZG93bjogXFxmMTYyO1xuJGZhLXZhci1zb3J0LW51bWVyaWMtdXA6IFxcZjE2MztcbiRmYS12YXItc29ydC11cDogXFxmMGRlO1xuJGZhLXZhci1zb3VuZGNsb3VkOiBcXGYxYmU7XG4kZmEtdmFyLXNwYTogXFxmNWJiO1xuJGZhLXZhci1zcGFjZS1zaHV0dGxlOiBcXGYxOTc7XG4kZmEtdmFyLXNwZWFrYXA6IFxcZjNmMztcbiRmYS12YXItc3Bpbm5lcjogXFxmMTEwO1xuJGZhLXZhci1zcGxvdGNoOiBcXGY1YmM7XG4kZmEtdmFyLXNwb3RpZnk6IFxcZjFiYztcbiRmYS12YXItc3ByYXktY2FuOiBcXGY1YmQ7XG4kZmEtdmFyLXNxdWFyZTogXFxmMGM4O1xuJGZhLXZhci1zcXVhcmUtZnVsbDogXFxmNDVjO1xuJGZhLXZhci1zcXVhcmVzcGFjZTogXFxmNWJlO1xuJGZhLXZhci1zdGFjay1leGNoYW5nZTogXFxmMThkO1xuJGZhLXZhci1zdGFjay1vdmVyZmxvdzogXFxmMTZjO1xuJGZhLXZhci1zdGFtcDogXFxmNWJmO1xuJGZhLXZhci1zdGFyOiBcXGYwMDU7XG4kZmEtdmFyLXN0YXItaGFsZjogXFxmMDg5O1xuJGZhLXZhci1zdGFyLWhhbGYtYWx0OiBcXGY1YzA7XG4kZmEtdmFyLXN0YXlsaW5rZWQ6IFxcZjNmNTtcbiRmYS12YXItc3RlYW06IFxcZjFiNjtcbiRmYS12YXItc3RlYW0tc3F1YXJlOiBcXGYxYjc7XG4kZmEtdmFyLXN0ZWFtLXN5bWJvbDogXFxmM2Y2O1xuJGZhLXZhci1zdGVwLWJhY2t3YXJkOiBcXGYwNDg7XG4kZmEtdmFyLXN0ZXAtZm9yd2FyZDogXFxmMDUxO1xuJGZhLXZhci1zdGV0aG9zY29wZTogXFxmMGYxO1xuJGZhLXZhci1zdGlja2VyLW11bGU6IFxcZjNmNztcbiRmYS12YXItc3RpY2t5LW5vdGU6IFxcZjI0OTtcbiRmYS12YXItc3RvcDogXFxmMDRkO1xuJGZhLXZhci1zdG9wLWNpcmNsZTogXFxmMjhkO1xuJGZhLXZhci1zdG9wd2F0Y2g6IFxcZjJmMjtcbiRmYS12YXItc3RvcmU6IFxcZjU0ZTtcbiRmYS12YXItc3RvcmUtYWx0OiBcXGY1NGY7XG4kZmEtdmFyLXN0cmF2YTogXFxmNDI4O1xuJGZhLXZhci1zdHJlYW06IFxcZjU1MDtcbiRmYS12YXItc3RyZWV0LXZpZXc6IFxcZjIxZDtcbiRmYS12YXItc3RyaWtldGhyb3VnaDogXFxmMGNjO1xuJGZhLXZhci1zdHJpcGU6IFxcZjQyOTtcbiRmYS12YXItc3RyaXBlLXM6IFxcZjQyYTtcbiRmYS12YXItc3Ryb29wd2FmZWw6IFxcZjU1MTtcbiRmYS12YXItc3R1ZGlvdmluYXJpOiBcXGYzZjg7XG4kZmEtdmFyLXN0dW1ibGV1cG9uOiBcXGYxYTQ7XG4kZmEtdmFyLXN0dW1ibGV1cG9uLWNpcmNsZTogXFxmMWEzO1xuJGZhLXZhci1zdWJzY3JpcHQ6IFxcZjEyYztcbiRmYS12YXItc3Vid2F5OiBcXGYyMzk7XG4kZmEtdmFyLXN1aXRjYXNlOiBcXGYwZjI7XG4kZmEtdmFyLXN1aXRjYXNlLXJvbGxpbmc6IFxcZjVjMTtcbiRmYS12YXItc3VuOiBcXGYxODU7XG4kZmEtdmFyLXN1cGVycG93ZXJzOiBcXGYyZGQ7XG4kZmEtdmFyLXN1cGVyc2NyaXB0OiBcXGYxMmI7XG4kZmEtdmFyLXN1cHBsZTogXFxmM2Y5O1xuJGZhLXZhci1zdXJwcmlzZTogXFxmNWMyO1xuJGZhLXZhci1zd2F0Y2hib29rOiBcXGY1YzM7XG4kZmEtdmFyLXN3aW1tZXI6IFxcZjVjNDtcbiRmYS12YXItc3dpbW1pbmctcG9vbDogXFxmNWM1O1xuJGZhLXZhci1zeW5jOiBcXGYwMjE7XG4kZmEtdmFyLXN5bmMtYWx0OiBcXGYyZjE7XG4kZmEtdmFyLXN5cmluZ2U6IFxcZjQ4ZTtcbiRmYS12YXItdGFibGU6IFxcZjBjZTtcbiRmYS12YXItdGFibGUtdGVubmlzOiBcXGY0NWQ7XG4kZmEtdmFyLXRhYmxldDogXFxmMTBhO1xuJGZhLXZhci10YWJsZXQtYWx0OiBcXGYzZmE7XG4kZmEtdmFyLXRhYmxldHM6IFxcZjQ5MDtcbiRmYS12YXItdGFjaG9tZXRlci1hbHQ6IFxcZjNmZDtcbiRmYS12YXItdGFnOiBcXGYwMmI7XG4kZmEtdmFyLXRhZ3M6IFxcZjAyYztcbiRmYS12YXItdGFwZTogXFxmNGRiO1xuJGZhLXZhci10YXNrczogXFxmMGFlO1xuJGZhLXZhci10YXhpOiBcXGYxYmE7XG4kZmEtdmFyLXRlYW1zcGVhazogXFxmNGY5O1xuJGZhLXZhci10ZWxlZ3JhbTogXFxmMmM2O1xuJGZhLXZhci10ZWxlZ3JhbS1wbGFuZTogXFxmM2ZlO1xuJGZhLXZhci10ZW5jZW50LXdlaWJvOiBcXGYxZDU7XG4kZmEtdmFyLXRlcm1pbmFsOiBcXGYxMjA7XG4kZmEtdmFyLXRleHQtaGVpZ2h0OiBcXGYwMzQ7XG4kZmEtdmFyLXRleHQtd2lkdGg6IFxcZjAzNTtcbiRmYS12YXItdGg6IFxcZjAwYTtcbiRmYS12YXItdGgtbGFyZ2U6IFxcZjAwOTtcbiRmYS12YXItdGgtbGlzdDogXFxmMDBiO1xuJGZhLXZhci10aGVtZWNvOiBcXGY1YzY7XG4kZmEtdmFyLXRoZW1laXNsZTogXFxmMmIyO1xuJGZhLXZhci10aGVybW9tZXRlcjogXFxmNDkxO1xuJGZhLXZhci10aGVybW9tZXRlci1lbXB0eTogXFxmMmNiO1xuJGZhLXZhci10aGVybW9tZXRlci1mdWxsOiBcXGYyYzc7XG4kZmEtdmFyLXRoZXJtb21ldGVyLWhhbGY6IFxcZjJjOTtcbiRmYS12YXItdGhlcm1vbWV0ZXItcXVhcnRlcjogXFxmMmNhO1xuJGZhLXZhci10aGVybW9tZXRlci10aHJlZS1xdWFydGVyczogXFxmMmM4O1xuJGZhLXZhci10aHVtYnMtZG93bjogXFxmMTY1O1xuJGZhLXZhci10aHVtYnMtdXA6IFxcZjE2NDtcbiRmYS12YXItdGh1bWJ0YWNrOiBcXGYwOGQ7XG4kZmEtdmFyLXRpY2tldC1hbHQ6IFxcZjNmZjtcbiRmYS12YXItdGltZXM6IFxcZjAwZDtcbiRmYS12YXItdGltZXMtY2lyY2xlOiBcXGYwNTc7XG4kZmEtdmFyLXRpbnQ6IFxcZjA0MztcbiRmYS12YXItdGludC1zbGFzaDogXFxmNWM3O1xuJGZhLXZhci10aXJlZDogXFxmNWM4O1xuJGZhLXZhci10b2dnbGUtb2ZmOiBcXGYyMDQ7XG4kZmEtdmFyLXRvZ2dsZS1vbjogXFxmMjA1O1xuJGZhLXZhci10b29sYm94OiBcXGY1NTI7XG4kZmEtdmFyLXRvb3RoOiBcXGY1Yzk7XG4kZmEtdmFyLXRyYWRlLWZlZGVyYXRpb246IFxcZjUxMztcbiRmYS12YXItdHJhZGVtYXJrOiBcXGYyNWM7XG4kZmEtdmFyLXRyYWluOiBcXGYyMzg7XG4kZmEtdmFyLXRyYW5zZ2VuZGVyOiBcXGYyMjQ7XG4kZmEtdmFyLXRyYW5zZ2VuZGVyLWFsdDogXFxmMjI1O1xuJGZhLXZhci10cmFzaDogXFxmMWY4O1xuJGZhLXZhci10cmFzaC1hbHQ6IFxcZjJlZDtcbiRmYS12YXItdHJlZTogXFxmMWJiO1xuJGZhLXZhci10cmVsbG86IFxcZjE4MTtcbiRmYS12YXItdHJpcGFkdmlzb3I6IFxcZjI2MjtcbiRmYS12YXItdHJvcGh5OiBcXGYwOTE7XG4kZmEtdmFyLXRydWNrOiBcXGYwZDE7XG4kZmEtdmFyLXRydWNrLWxvYWRpbmc6IFxcZjRkZTtcbiRmYS12YXItdHJ1Y2stbW92aW5nOiBcXGY0ZGY7XG4kZmEtdmFyLXRzaGlydDogXFxmNTUzO1xuJGZhLXZhci10dHk6IFxcZjFlNDtcbiRmYS12YXItdHVtYmxyOiBcXGYxNzM7XG4kZmEtdmFyLXR1bWJsci1zcXVhcmU6IFxcZjE3NDtcbiRmYS12YXItdHY6IFxcZjI2YztcbiRmYS12YXItdHdpdGNoOiBcXGYxZTg7XG4kZmEtdmFyLXR3aXR0ZXI6IFxcZjA5OTtcbiRmYS12YXItdHdpdHRlci1zcXVhcmU6IFxcZjA4MTtcbiRmYS12YXItdHlwbzM6IFxcZjQyYjtcbiRmYS12YXItdWJlcjogXFxmNDAyO1xuJGZhLXZhci11aWtpdDogXFxmNDAzO1xuJGZhLXZhci11bWJyZWxsYTogXFxmMGU5O1xuJGZhLXZhci11bWJyZWxsYS1iZWFjaDogXFxmNWNhO1xuJGZhLXZhci11bmRlcmxpbmU6IFxcZjBjZDtcbiRmYS12YXItdW5kbzogXFxmMGUyO1xuJGZhLXZhci11bmRvLWFsdDogXFxmMmVhO1xuJGZhLXZhci11bmlyZWdpc3RyeTogXFxmNDA0O1xuJGZhLXZhci11bml2ZXJzYWwtYWNjZXNzOiBcXGYyOWE7XG4kZmEtdmFyLXVuaXZlcnNpdHk6IFxcZjE5YztcbiRmYS12YXItdW5saW5rOiBcXGYxMjc7XG4kZmEtdmFyLXVubG9jazogXFxmMDljO1xuJGZhLXZhci11bmxvY2stYWx0OiBcXGYxM2U7XG4kZmEtdmFyLXVudGFwcGQ6IFxcZjQwNTtcbiRmYS12YXItdXBsb2FkOiBcXGYwOTM7XG4kZmEtdmFyLXVzYjogXFxmMjg3O1xuJGZhLXZhci11c2VyOiBcXGYwMDc7XG4kZmEtdmFyLXVzZXItYWx0OiBcXGY0MDY7XG4kZmEtdmFyLXVzZXItYWx0LXNsYXNoOiBcXGY0ZmE7XG4kZmEtdmFyLXVzZXItYXN0cm9uYXV0OiBcXGY0ZmI7XG4kZmEtdmFyLXVzZXItY2hlY2s6IFxcZjRmYztcbiRmYS12YXItdXNlci1jaXJjbGU6IFxcZjJiZDtcbiRmYS12YXItdXNlci1jbG9jazogXFxmNGZkO1xuJGZhLXZhci11c2VyLWNvZzogXFxmNGZlO1xuJGZhLXZhci11c2VyLWVkaXQ6IFxcZjRmZjtcbiRmYS12YXItdXNlci1mcmllbmRzOiBcXGY1MDA7XG4kZmEtdmFyLXVzZXItZ3JhZHVhdGU6IFxcZjUwMTtcbiRmYS12YXItdXNlci1sb2NrOiBcXGY1MDI7XG4kZmEtdmFyLXVzZXItbWQ6IFxcZjBmMDtcbiRmYS12YXItdXNlci1taW51czogXFxmNTAzO1xuJGZhLXZhci11c2VyLW5pbmphOiBcXGY1MDQ7XG4kZmEtdmFyLXVzZXItcGx1czogXFxmMjM0O1xuJGZhLXZhci11c2VyLXNlY3JldDogXFxmMjFiO1xuJGZhLXZhci11c2VyLXNoaWVsZDogXFxmNTA1O1xuJGZhLXZhci11c2VyLXNsYXNoOiBcXGY1MDY7XG4kZmEtdmFyLXVzZXItdGFnOiBcXGY1MDc7XG4kZmEtdmFyLXVzZXItdGllOiBcXGY1MDg7XG4kZmEtdmFyLXVzZXItdGltZXM6IFxcZjIzNTtcbiRmYS12YXItdXNlcnM6IFxcZjBjMDtcbiRmYS12YXItdXNlcnMtY29nOiBcXGY1MDk7XG4kZmEtdmFyLXVzc3VubmFoOiBcXGY0MDc7XG4kZmEtdmFyLXV0ZW5zaWwtc3Bvb246IFxcZjJlNTtcbiRmYS12YXItdXRlbnNpbHM6IFxcZjJlNztcbiRmYS12YXItdmFhZGluOiBcXGY0MDg7XG4kZmEtdmFyLXZlY3Rvci1zcXVhcmU6IFxcZjVjYjtcbiRmYS12YXItdmVudXM6IFxcZjIyMTtcbiRmYS12YXItdmVudXMtZG91YmxlOiBcXGYyMjY7XG4kZmEtdmFyLXZlbnVzLW1hcnM6IFxcZjIyODtcbiRmYS12YXItdmlhY29pbjogXFxmMjM3O1xuJGZhLXZhci12aWFkZW86IFxcZjJhOTtcbiRmYS12YXItdmlhZGVvLXNxdWFyZTogXFxmMmFhO1xuJGZhLXZhci12aWFsOiBcXGY0OTI7XG4kZmEtdmFyLXZpYWxzOiBcXGY0OTM7XG4kZmEtdmFyLXZpYmVyOiBcXGY0MDk7XG4kZmEtdmFyLXZpZGVvOiBcXGYwM2Q7XG4kZmEtdmFyLXZpZGVvLXNsYXNoOiBcXGY0ZTI7XG4kZmEtdmFyLXZpbWVvOiBcXGY0MGE7XG4kZmEtdmFyLXZpbWVvLXNxdWFyZTogXFxmMTk0O1xuJGZhLXZhci12aW1lby12OiBcXGYyN2Q7XG4kZmEtdmFyLXZpbmU6IFxcZjFjYTtcbiRmYS12YXItdms6IFxcZjE4OTtcbiRmYS12YXItdm52OiBcXGY0MGI7XG4kZmEtdmFyLXZvbGxleWJhbGwtYmFsbDogXFxmNDVmO1xuJGZhLXZhci12b2x1bWUtZG93bjogXFxmMDI3O1xuJGZhLXZhci12b2x1bWUtb2ZmOiBcXGYwMjY7XG4kZmEtdmFyLXZvbHVtZS11cDogXFxmMDI4O1xuJGZhLXZhci12dWVqczogXFxmNDFmO1xuJGZhLXZhci13YWxraW5nOiBcXGY1NTQ7XG4kZmEtdmFyLXdhbGxldDogXFxmNTU1O1xuJGZhLXZhci13YXJlaG91c2U6IFxcZjQ5NDtcbiRmYS12YXItd2VlYmx5OiBcXGY1Y2M7XG4kZmEtdmFyLXdlaWJvOiBcXGYxOGE7XG4kZmEtdmFyLXdlaWdodDogXFxmNDk2O1xuJGZhLXZhci13ZWlnaHQtaGFuZ2luZzogXFxmNWNkO1xuJGZhLXZhci13ZWl4aW46IFxcZjFkNztcbiRmYS12YXItd2hhdHNhcHA6IFxcZjIzMjtcbiRmYS12YXItd2hhdHNhcHAtc3F1YXJlOiBcXGY0MGM7XG4kZmEtdmFyLXdoZWVsY2hhaXI6IFxcZjE5MztcbiRmYS12YXItd2htY3M6IFxcZjQwZDtcbiRmYS12YXItd2lmaTogXFxmMWViO1xuJGZhLXZhci13aWtpcGVkaWEtdzogXFxmMjY2O1xuJGZhLXZhci13aW5kb3ctY2xvc2U6IFxcZjQxMDtcbiRmYS12YXItd2luZG93LW1heGltaXplOiBcXGYyZDA7XG4kZmEtdmFyLXdpbmRvdy1taW5pbWl6ZTogXFxmMmQxO1xuJGZhLXZhci13aW5kb3ctcmVzdG9yZTogXFxmMmQyO1xuJGZhLXZhci13aW5kb3dzOiBcXGYxN2E7XG4kZmEtdmFyLXdpbmUtZ2xhc3M6IFxcZjRlMztcbiRmYS12YXItd2luZS1nbGFzcy1hbHQ6IFxcZjVjZTtcbiRmYS12YXItd2l4OiBcXGY1Y2Y7XG4kZmEtdmFyLXdvbGYtcGFjay1iYXR0YWxpb246IFxcZjUxNDtcbiRmYS12YXItd29uLXNpZ246IFxcZjE1OTtcbiRmYS12YXItd29yZHByZXNzOiBcXGYxOWE7XG4kZmEtdmFyLXdvcmRwcmVzcy1zaW1wbGU6IFxcZjQxMTtcbiRmYS12YXItd3BiZWdpbm5lcjogXFxmMjk3O1xuJGZhLXZhci13cGV4cGxvcmVyOiBcXGYyZGU7XG4kZmEtdmFyLXdwZm9ybXM6IFxcZjI5ODtcbiRmYS12YXItd3JlbmNoOiBcXGYwYWQ7XG4kZmEtdmFyLXgtcmF5OiBcXGY0OTc7XG4kZmEtdmFyLXhib3g6IFxcZjQxMjtcbiRmYS12YXIteGluZzogXFxmMTY4O1xuJGZhLXZhci14aW5nLXNxdWFyZTogXFxmMTY5O1xuJGZhLXZhci15LWNvbWJpbmF0b3I6IFxcZjIzYjtcbiRmYS12YXIteWFob286IFxcZjE5ZTtcbiRmYS12YXIteWFuZGV4OiBcXGY0MTM7XG4kZmEtdmFyLXlhbmRleC1pbnRlcm5hdGlvbmFsOiBcXGY0MTQ7XG4kZmEtdmFyLXllbHA6IFxcZjFlOTtcbiRmYS12YXIteWVuLXNpZ246IFxcZjE1NztcbiRmYS12YXIteW9hc3Q6IFxcZjJiMTtcbiRmYS12YXIteW91dHViZTogXFxmMTY3O1xuJGZhLXZhci15b3V0dWJlLXNxdWFyZTogXFxmNDMxO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vbm9kZV9tb2R1bGVzL0Bmb3J0YXdlc29tZS9mb250YXdlc29tZS1mcmVlL3Njc3MvX3ZhcmlhYmxlcy5zY3NzIiwiLy8gQm9yZGVyZWQgJiBQdWxsZWRcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLiN7JGZhLWNzcy1wcmVmaXh9LWJvcmRlciB7XG4gIGJvcmRlcjogc29saWQgLjA4ZW0gJGZhLWJvcmRlci1jb2xvcjtcbiAgYm9yZGVyLXJhZGl1czogLjFlbTtcbiAgcGFkZGluZzogLjJlbSAuMjVlbSAuMTVlbTtcbn1cblxuLiN7JGZhLWNzcy1wcmVmaXh9LXB1bGwtbGVmdCB7IGZsb2F0OiBsZWZ0OyB9XG4uI3skZmEtY3NzLXByZWZpeH0tcHVsbC1yaWdodCB7IGZsb2F0OiByaWdodDsgfVxuXG4uI3skZmEtY3NzLXByZWZpeH0sXG4uZmFzLFxuLmZhcixcbi5mYWwsXG4uZmFiIHtcbiAgJi4jeyRmYS1jc3MtcHJlZml4fS1wdWxsLWxlZnQgeyBtYXJnaW4tcmlnaHQ6IC4zZW07IH1cbiAgJi4jeyRmYS1jc3MtcHJlZml4fS1wdWxsLXJpZ2h0IHsgbWFyZ2luLWxlZnQ6IC4zZW07IH1cbn1cblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL25vZGVfbW9kdWxlcy9AZm9ydGF3ZXNvbWUvZm9udGF3ZXNvbWUtZnJlZS9zY3NzL19ib3JkZXJlZC1wdWxsZWQuc2NzcyIsIi8vIEFuaW1hdGVkIEljb25zXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4uI3skZmEtY3NzLXByZWZpeH0tc3BpbiB7XG4gIGFuaW1hdGlvbjogZmEtc3BpbiAycyBpbmZpbml0ZSBsaW5lYXI7XG59XG5cbi4jeyRmYS1jc3MtcHJlZml4fS1wdWxzZSB7XG4gIGFuaW1hdGlvbjogZmEtc3BpbiAxcyBpbmZpbml0ZSBzdGVwcyg4KTtcbn1cblxuQGtleWZyYW1lcyBmYS1zcGluIHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICB9XG5cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcbiAgfVxufVxuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vbm9kZV9tb2R1bGVzL0Bmb3J0YXdlc29tZS9mb250YXdlc29tZS1mcmVlL3Njc3MvX2FuaW1hdGVkLnNjc3MiLCIvLyBSb3RhdGVkICYgRmxpcHBlZCBJY29uc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4uI3skZmEtY3NzLXByZWZpeH0tcm90YXRlLTkwICB7IEBpbmNsdWRlIGZhLWljb24tcm90YXRlKDkwZGVnLCAxKTsgIH1cbi4jeyRmYS1jc3MtcHJlZml4fS1yb3RhdGUtMTgwIHsgQGluY2x1ZGUgZmEtaWNvbi1yb3RhdGUoMTgwZGVnLCAyKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXJvdGF0ZS0yNzAgeyBAaW5jbHVkZSBmYS1pY29uLXJvdGF0ZSgyNzBkZWcsIDMpOyB9XG5cbi4jeyRmYS1jc3MtcHJlZml4fS1mbGlwLWhvcml6b250YWwgeyBAaW5jbHVkZSBmYS1pY29uLWZsaXAoLTEsIDEsIDApOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZmxpcC12ZXJ0aWNhbCAgIHsgQGluY2x1ZGUgZmEtaWNvbi1mbGlwKDEsIC0xLCAyKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWZsaXAtaG9yaXpvbnRhbC4jeyRmYS1jc3MtcHJlZml4fS1mbGlwLXZlcnRpY2FsIHsgQGluY2x1ZGUgZmEtaWNvbi1mbGlwKC0xLCAtMSwgMik7IH1cblxuLy8gSG9vayBmb3IgSUU4LTlcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuOnJvb3Qge1xuICAuI3skZmEtY3NzLXByZWZpeH0tcm90YXRlLTkwLFxuICAuI3skZmEtY3NzLXByZWZpeH0tcm90YXRlLTE4MCxcbiAgLiN7JGZhLWNzcy1wcmVmaXh9LXJvdGF0ZS0yNzAsXG4gIC4jeyRmYS1jc3MtcHJlZml4fS1mbGlwLWhvcml6b250YWwsXG4gIC4jeyRmYS1jc3MtcHJlZml4fS1mbGlwLXZlcnRpY2FsIHtcbiAgICBmaWx0ZXI6IG5vbmU7XG4gIH1cbn1cblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL25vZGVfbW9kdWxlcy9AZm9ydGF3ZXNvbWUvZm9udGF3ZXNvbWUtZnJlZS9zY3NzL19yb3RhdGVkLWZsaXBwZWQuc2NzcyIsIi8vIE1peGluc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuQG1peGluIGZhLWljb24ge1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtdmFyaWFudDogbm9ybWFsO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBsaW5lLWhlaWdodDogMTtcbiAgdmVydGljYWwtYWxpZ246IC0uMTI1ZW07XG59XG5cbkBtaXhpbiBmYS1pY29uLXJvdGF0ZSgkZGVncmVlcywgJHJvdGF0aW9uKSB7XG4gIC1tcy1maWx0ZXI6IFwicHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LkJhc2ljSW1hZ2Uocm90YXRpb249I3skcm90YXRpb259KVwiO1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgkZGVncmVlcyk7XG59XG5cbkBtaXhpbiBmYS1pY29uLWZsaXAoJGhvcml6LCAkdmVydCwgJHJvdGF0aW9uKSB7XG4gIC1tcy1maWx0ZXI6IFwicHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LkJhc2ljSW1hZ2Uocm90YXRpb249I3skcm90YXRpb259LCBtaXJyb3I9MSlcIjtcbiAgdHJhbnNmb3JtOiBzY2FsZSgkaG9yaXosICR2ZXJ0KTtcbn1cblxuXG4vLyBPbmx5IGRpc3BsYXkgY29udGVudCB0byBzY3JlZW4gcmVhZGVycy4gQSBsYSBCb290c3RyYXAgNC5cbi8vXG4vLyBTZWU6IGh0dHA6Ly9hMTF5cHJvamVjdC5jb20vcG9zdHMvaG93LXRvLWhpZGUtY29udGVudC9cblxuQG1peGluIHNyLW9ubHkge1xuICBib3JkZXI6IDA7XG4gIGNsaXA6IHJlY3QoMCwgMCwgMCwgMCk7XG4gIGhlaWdodDogMXB4O1xuICBtYXJnaW46IC0xcHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBhZGRpbmc6IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDFweDtcbn1cblxuLy8gVXNlIGluIGNvbmp1bmN0aW9uIHdpdGggLnNyLW9ubHkgdG8gb25seSBkaXNwbGF5IGNvbnRlbnQgd2hlbiBpdCdzIGZvY3VzZWQuXG4vL1xuLy8gVXNlZnVsIGZvciBcIlNraXAgdG8gbWFpbiBjb250ZW50XCIgbGlua3M7IHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi8yMDEzL05PVEUtV0NBRzIwLVRFQ0hTLTIwMTMwOTA1L0cxXG4vL1xuLy8gQ3JlZGl0OiBIVE1MNSBCb2lsZXJwbGF0ZVxuXG5AbWl4aW4gc3Itb25seS1mb2N1c2FibGUge1xuICAmOmFjdGl2ZSxcbiAgJjpmb2N1cyB7XG4gICAgY2xpcDogYXV0bztcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgbWFyZ2luOiAwO1xuICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgd2lkdGg6IGF1dG87XG4gIH1cbn1cblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL25vZGVfbW9kdWxlcy9AZm9ydGF3ZXNvbWUvZm9udGF3ZXNvbWUtZnJlZS9zY3NzL19taXhpbnMuc2NzcyIsIi8vIFN0YWNrZWQgSWNvbnNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLiN7JGZhLWNzcy1wcmVmaXh9LXN0YWNrIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBoZWlnaHQ6IDJlbTtcbiAgbGluZS1oZWlnaHQ6IDJlbTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB3aWR0aDogMmVtO1xufVxuXG4uI3skZmEtY3NzLXByZWZpeH0tc3RhY2stMXgsXG4uI3skZmEtY3NzLXByZWZpeH0tc3RhY2stMngge1xuICBsZWZ0OiAwO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi4jeyRmYS1jc3MtcHJlZml4fS1zdGFjay0xeCB7XG4gIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xufVxuXG4uI3skZmEtY3NzLXByZWZpeH0tc3RhY2stMngge1xuICBmb250LXNpemU6IDJlbTtcbn1cblxuLiN7JGZhLWNzcy1wcmVmaXh9LWludmVyc2Uge1xuICBjb2xvcjogJGZhLWludmVyc2U7XG59XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9ub2RlX21vZHVsZXMvQGZvcnRhd2Vzb21lL2ZvbnRhd2Vzb21lLWZyZWUvc2Nzcy9fc3RhY2tlZC5zY3NzIiwiLyogRm9udCBBd2Vzb21lIHVzZXMgdGhlIFVuaWNvZGUgUHJpdmF0ZSBVc2UgQXJlYSAoUFVBKSB0byBlbnN1cmUgc2NyZWVuXG5yZWFkZXJzIGRvIG5vdCByZWFkIG9mZiByYW5kb20gY2hhcmFjdGVycyB0aGF0IHJlcHJlc2VudCBpY29ucyAqL1xuXG4uI3skZmEtY3NzLXByZWZpeH0tNTAwcHg6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLTUwMHB4KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWFjY2Vzc2libGUtaWNvbjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItYWNjZXNzaWJsZS1pY29uKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWFjY3Vzb2Z0OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1hY2N1c29mdCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1hZGRyZXNzLWJvb2s6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWFkZHJlc3MtYm9vayk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1hZGRyZXNzLWNhcmQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWFkZHJlc3MtY2FyZCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1hZGp1c3Q6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWFkanVzdCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1hZG46YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWFkbik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1hZHZlcnNhbDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItYWR2ZXJzYWwpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYWZmaWxpYXRldGhlbWU6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWFmZmlsaWF0ZXRoZW1lKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWFsZ29saWE6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWFsZ29saWEpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYWxpZ24tY2VudGVyOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1hbGlnbi1jZW50ZXIpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYWxpZ24tanVzdGlmeTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItYWxpZ24tanVzdGlmeSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1hbGlnbi1sZWZ0OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1hbGlnbi1sZWZ0KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWFsaWduLXJpZ2h0OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1hbGlnbi1yaWdodCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1hbGxlcmdpZXM6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWFsbGVyZ2llcyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1hbWF6b246YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWFtYXpvbik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1hbWF6b24tcGF5OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1hbWF6b24tcGF5KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWFtYnVsYW5jZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItYW1idWxhbmNlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWFtZXJpY2FuLXNpZ24tbGFuZ3VhZ2UtaW50ZXJwcmV0aW5nOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1hbWVyaWNhbi1zaWduLWxhbmd1YWdlLWludGVycHJldGluZyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1hbWlsaWE6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWFtaWxpYSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1hbmNob3I6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWFuY2hvcik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1hbmRyb2lkOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1hbmRyb2lkKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWFuZ2VsbGlzdDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItYW5nZWxsaXN0KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWFuZ2xlLWRvdWJsZS1kb3duOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1hbmdsZS1kb3VibGUtZG93bik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1hbmdsZS1kb3VibGUtbGVmdDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItYW5nbGUtZG91YmxlLWxlZnQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYW5nbGUtZG91YmxlLXJpZ2h0OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1hbmdsZS1kb3VibGUtcmlnaHQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYW5nbGUtZG91YmxlLXVwOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1hbmdsZS1kb3VibGUtdXApOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYW5nbGUtZG93bjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItYW5nbGUtZG93bik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1hbmdsZS1sZWZ0OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1hbmdsZS1sZWZ0KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWFuZ2xlLXJpZ2h0OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1hbmdsZS1yaWdodCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1hbmdsZS11cDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItYW5nbGUtdXApOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYW5ncnk6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWFuZ3J5KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWFuZ3J5Y3JlYXRpdmU6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWFuZ3J5Y3JlYXRpdmUpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYW5ndWxhcjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItYW5ndWxhcik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1hcHAtc3RvcmU6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWFwcC1zdG9yZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1hcHAtc3RvcmUtaW9zOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1hcHAtc3RvcmUtaW9zKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWFwcGVyOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1hcHBlcik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1hcHBsZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItYXBwbGUpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYXBwbGUtcGF5OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1hcHBsZS1wYXkpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYXJjaGl2ZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItYXJjaGl2ZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1hcmNod2F5OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1hcmNod2F5KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWFycm93LWFsdC1jaXJjbGUtZG93bjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItYXJyb3ctYWx0LWNpcmNsZS1kb3duKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWFycm93LWFsdC1jaXJjbGUtbGVmdDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItYXJyb3ctYWx0LWNpcmNsZS1sZWZ0KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWFycm93LWFsdC1jaXJjbGUtcmlnaHQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWFycm93LWFsdC1jaXJjbGUtcmlnaHQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYXJyb3ctYWx0LWNpcmNsZS11cDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItYXJyb3ctYWx0LWNpcmNsZS11cCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1hcnJvdy1jaXJjbGUtZG93bjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItYXJyb3ctY2lyY2xlLWRvd24pOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYXJyb3ctY2lyY2xlLWxlZnQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWFycm93LWNpcmNsZS1sZWZ0KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWFycm93LWNpcmNsZS1yaWdodDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItYXJyb3ctY2lyY2xlLXJpZ2h0KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWFycm93LWNpcmNsZS11cDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItYXJyb3ctY2lyY2xlLXVwKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWFycm93LWRvd246YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWFycm93LWRvd24pOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYXJyb3ctbGVmdDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItYXJyb3ctbGVmdCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1hcnJvdy1yaWdodDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItYXJyb3ctcmlnaHQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYXJyb3ctdXA6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWFycm93LXVwKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWFycm93cy1hbHQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWFycm93cy1hbHQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYXJyb3dzLWFsdC1oOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1hcnJvd3MtYWx0LWgpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYXJyb3dzLWFsdC12OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1hcnJvd3MtYWx0LXYpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYXNzaXN0aXZlLWxpc3RlbmluZy1zeXN0ZW1zOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1hc3Npc3RpdmUtbGlzdGVuaW5nLXN5c3RlbXMpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYXN0ZXJpc2s6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWFzdGVyaXNrKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWFzeW1tZXRyaWs6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWFzeW1tZXRyaWspOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYXQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWF0KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWF0bGFzOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1hdGxhcyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1hdWRpYmxlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1hdWRpYmxlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWF1ZGlvLWRlc2NyaXB0aW9uOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1hdWRpby1kZXNjcmlwdGlvbik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1hdXRvcHJlZml4ZXI6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWF1dG9wcmVmaXhlcik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1hdmlhbmV4OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1hdmlhbmV4KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWF2aWF0bzpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItYXZpYXRvKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWF3YXJkOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1hd2FyZCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1hd3M6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWF3cyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1iYWNrc3BhY2U6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWJhY2tzcGFjZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1iYWNrd2FyZDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItYmFja3dhcmQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYmFsYW5jZS1zY2FsZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItYmFsYW5jZS1zY2FsZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1iYW46YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWJhbik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1iYW5kLWFpZDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItYmFuZC1haWQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYmFuZGNhbXA6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWJhbmRjYW1wKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWJhcmNvZGU6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWJhcmNvZGUpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYmFyczpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItYmFycyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1iYXNlYmFsbC1iYWxsOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1iYXNlYmFsbC1iYWxsKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWJhc2tldGJhbGwtYmFsbDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItYmFza2V0YmFsbC1iYWxsKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWJhdGg6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWJhdGgpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYmF0dGVyeS1lbXB0eTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItYmF0dGVyeS1lbXB0eSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1iYXR0ZXJ5LWZ1bGw6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWJhdHRlcnktZnVsbCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1iYXR0ZXJ5LWhhbGY6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWJhdHRlcnktaGFsZik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1iYXR0ZXJ5LXF1YXJ0ZXI6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWJhdHRlcnktcXVhcnRlcik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1iYXR0ZXJ5LXRocmVlLXF1YXJ0ZXJzOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1iYXR0ZXJ5LXRocmVlLXF1YXJ0ZXJzKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWJlZDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItYmVkKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWJlZXI6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWJlZXIpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYmVoYW5jZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItYmVoYW5jZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1iZWhhbmNlLXNxdWFyZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItYmVoYW5jZS1zcXVhcmUpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYmVsbDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItYmVsbCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1iZWxsLXNsYXNoOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1iZWxsLXNsYXNoKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWJlemllci1jdXJ2ZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItYmV6aWVyLWN1cnZlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWJpY3ljbGU6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWJpY3ljbGUpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYmltb2JqZWN0OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1iaW1vYmplY3QpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYmlub2N1bGFyczpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItYmlub2N1bGFycyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1iaXJ0aGRheS1jYWtlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1iaXJ0aGRheS1jYWtlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWJpdGJ1Y2tldDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItYml0YnVja2V0KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWJpdGNvaW46YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWJpdGNvaW4pOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYml0eTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItYml0eSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1ibGFjay10aWU6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWJsYWNrLXRpZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1ibGFja2JlcnJ5OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1ibGFja2JlcnJ5KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWJsZW5kZXI6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWJsZW5kZXIpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYmxpbmQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWJsaW5kKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWJsb2dnZXI6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWJsb2dnZXIpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYmxvZ2dlci1iOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1ibG9nZ2VyLWIpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYmx1ZXRvb3RoOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1ibHVldG9vdGgpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYmx1ZXRvb3RoLWI6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWJsdWV0b290aC1iKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWJvbGQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWJvbGQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYm9sdDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItYm9sdCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1ib21iOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1ib21iKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWJvbmc6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWJvbmcpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYm9vazpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItYm9vayk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1ib29rLW9wZW46YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWJvb2stb3Blbik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1ib29rbWFyazpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItYm9va21hcmspOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYm93bGluZy1iYWxsOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1ib3dsaW5nLWJhbGwpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYm94OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1ib3gpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYm94LW9wZW46YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWJveC1vcGVuKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWJveGVzOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1ib3hlcyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1icmFpbGxlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1icmFpbGxlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWJyaWVmY2FzZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItYnJpZWZjYXNlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWJyaWVmY2FzZS1tZWRpY2FsOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1icmllZmNhc2UtbWVkaWNhbCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1icm9hZGNhc3QtdG93ZXI6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWJyb2FkY2FzdC10b3dlcik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1icm9vbTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItYnJvb20pOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYnJ1c2g6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWJydXNoKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWJ0YzpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItYnRjKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWJ1ZzpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItYnVnKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWJ1aWxkaW5nOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1idWlsZGluZyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1idWxsaG9ybjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItYnVsbGhvcm4pOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYnVsbHNleWU6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWJ1bGxzZXllKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWJ1cm46YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWJ1cm4pOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tYnVyb21vYmVsZXhwZXJ0ZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItYnVyb21vYmVsZXhwZXJ0ZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1idXM6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWJ1cyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1idXMtYWx0OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1idXMtYWx0KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWJ1eXNlbGxhZHM6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWJ1eXNlbGxhZHMpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tY2FsY3VsYXRvcjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItY2FsY3VsYXRvcik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jYWxlbmRhcjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItY2FsZW5kYXIpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tY2FsZW5kYXItYWx0OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1jYWxlbmRhci1hbHQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tY2FsZW5kYXItY2hlY2s6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWNhbGVuZGFyLWNoZWNrKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWNhbGVuZGFyLW1pbnVzOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1jYWxlbmRhci1taW51cyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jYWxlbmRhci1wbHVzOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1jYWxlbmRhci1wbHVzKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWNhbGVuZGFyLXRpbWVzOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1jYWxlbmRhci10aW1lcyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jYW1lcmE6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWNhbWVyYSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jYW1lcmEtcmV0cm86YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWNhbWVyYS1yZXRybyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jYW5uYWJpczpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItY2FubmFiaXMpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tY2Fwc3VsZXM6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWNhcHN1bGVzKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWNhcjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItY2FyKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWNhcmV0LWRvd246YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWNhcmV0LWRvd24pOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tY2FyZXQtbGVmdDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItY2FyZXQtbGVmdCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jYXJldC1yaWdodDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItY2FyZXQtcmlnaHQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tY2FyZXQtc3F1YXJlLWRvd246YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWNhcmV0LXNxdWFyZS1kb3duKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWNhcmV0LXNxdWFyZS1sZWZ0OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1jYXJldC1zcXVhcmUtbGVmdCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jYXJldC1zcXVhcmUtcmlnaHQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWNhcmV0LXNxdWFyZS1yaWdodCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jYXJldC1zcXVhcmUtdXA6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWNhcmV0LXNxdWFyZS11cCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jYXJldC11cDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItY2FyZXQtdXApOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tY2FydC1hcnJvdy1kb3duOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1jYXJ0LWFycm93LWRvd24pOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tY2FydC1wbHVzOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1jYXJ0LXBsdXMpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tY2MtYW1hem9uLXBheTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItY2MtYW1hem9uLXBheSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jYy1hbWV4OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1jYy1hbWV4KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWNjLWFwcGxlLXBheTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItY2MtYXBwbGUtcGF5KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWNjLWRpbmVycy1jbHViOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1jYy1kaW5lcnMtY2x1Yik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jYy1kaXNjb3ZlcjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItY2MtZGlzY292ZXIpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tY2MtamNiOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1jYy1qY2IpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tY2MtbWFzdGVyY2FyZDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItY2MtbWFzdGVyY2FyZCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jYy1wYXlwYWw6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWNjLXBheXBhbCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jYy1zdHJpcGU6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWNjLXN0cmlwZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jYy12aXNhOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1jYy12aXNhKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWNlbnRlcmNvZGU6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWNlbnRlcmNvZGUpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tY2VydGlmaWNhdGU6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWNlcnRpZmljYXRlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWNoYWxrYm9hcmQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWNoYWxrYm9hcmQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tY2hhbGtib2FyZC10ZWFjaGVyOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1jaGFsa2JvYXJkLXRlYWNoZXIpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tY2hhcnQtYXJlYTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItY2hhcnQtYXJlYSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jaGFydC1iYXI6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWNoYXJ0LWJhcik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jaGFydC1saW5lOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1jaGFydC1saW5lKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWNoYXJ0LXBpZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItY2hhcnQtcGllKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWNoZWNrOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1jaGVjayk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jaGVjay1jaXJjbGU6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWNoZWNrLWNpcmNsZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jaGVjay1kb3VibGU6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWNoZWNrLWRvdWJsZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jaGVjay1zcXVhcmU6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWNoZWNrLXNxdWFyZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jaGVzczpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItY2hlc3MpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tY2hlc3MtYmlzaG9wOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1jaGVzcy1iaXNob3ApOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tY2hlc3MtYm9hcmQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWNoZXNzLWJvYXJkKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWNoZXNzLWtpbmc6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWNoZXNzLWtpbmcpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tY2hlc3Mta25pZ2h0OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1jaGVzcy1rbmlnaHQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tY2hlc3MtcGF3bjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItY2hlc3MtcGF3bik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jaGVzcy1xdWVlbjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItY2hlc3MtcXVlZW4pOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tY2hlc3Mtcm9vazpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItY2hlc3Mtcm9vayk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jaGV2cm9uLWNpcmNsZS1kb3duOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1jaGV2cm9uLWNpcmNsZS1kb3duKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWNoZXZyb24tY2lyY2xlLWxlZnQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWNoZXZyb24tY2lyY2xlLWxlZnQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tY2hldnJvbi1jaXJjbGUtcmlnaHQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWNoZXZyb24tY2lyY2xlLXJpZ2h0KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWNoZXZyb24tY2lyY2xlLXVwOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1jaGV2cm9uLWNpcmNsZS11cCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jaGV2cm9uLWRvd246YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWNoZXZyb24tZG93bik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jaGV2cm9uLWxlZnQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWNoZXZyb24tbGVmdCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jaGV2cm9uLXJpZ2h0OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1jaGV2cm9uLXJpZ2h0KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWNoZXZyb24tdXA6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWNoZXZyb24tdXApOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tY2hpbGQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWNoaWxkKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWNocm9tZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItY2hyb21lKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWNodXJjaDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItY2h1cmNoKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWNpcmNsZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItY2lyY2xlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWNpcmNsZS1ub3RjaDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItY2lyY2xlLW5vdGNoKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWNsaXBib2FyZDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItY2xpcGJvYXJkKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWNsaXBib2FyZC1jaGVjazpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItY2xpcGJvYXJkLWNoZWNrKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWNsaXBib2FyZC1saXN0OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1jbGlwYm9hcmQtbGlzdCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jbG9jazpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItY2xvY2spOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tY2xvbmU6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWNsb25lKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWNsb3NlZC1jYXB0aW9uaW5nOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1jbG9zZWQtY2FwdGlvbmluZyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jbG91ZDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItY2xvdWQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tY2xvdWQtZG93bmxvYWQtYWx0OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1jbG91ZC1kb3dubG9hZC1hbHQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tY2xvdWQtdXBsb2FkLWFsdDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItY2xvdWQtdXBsb2FkLWFsdCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jbG91ZHNjYWxlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1jbG91ZHNjYWxlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWNsb3Vkc21pdGg6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWNsb3Vkc21pdGgpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tY2xvdWR2ZXJzaWZ5OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1jbG91ZHZlcnNpZnkpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tY29ja3RhaWw6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWNvY2t0YWlsKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWNvZGU6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWNvZGUpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tY29kZS1icmFuY2g6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWNvZGUtYnJhbmNoKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWNvZGVwZW46YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWNvZGVwZW4pOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tY29kaWVwaWU6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWNvZGllcGllKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWNvZmZlZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItY29mZmVlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWNvZzpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItY29nKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWNvZ3M6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWNvZ3MpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tY29pbnM6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWNvaW5zKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWNvbHVtbnM6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWNvbHVtbnMpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tY29tbWVudDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItY29tbWVudCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jb21tZW50LWFsdDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItY29tbWVudC1hbHQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tY29tbWVudC1kb3RzOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1jb21tZW50LWRvdHMpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tY29tbWVudC1zbGFzaDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItY29tbWVudC1zbGFzaCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jb21tZW50czpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItY29tbWVudHMpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tY29tcGFjdC1kaXNjOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1jb21wYWN0LWRpc2MpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tY29tcGFzczpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItY29tcGFzcyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jb21wcmVzczpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItY29tcHJlc3MpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tY29uY2llcmdlLWJlbGw6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWNvbmNpZXJnZS1iZWxsKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWNvbm5lY3RkZXZlbG9wOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1jb25uZWN0ZGV2ZWxvcCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jb250YW86YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWNvbnRhbyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jb29raWU6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWNvb2tpZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jb29raWUtYml0ZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItY29va2llLWJpdGUpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tY29weTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItY29weSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jb3B5cmlnaHQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWNvcHlyaWdodCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jb3VjaDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItY291Y2gpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tY3BhbmVsOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1jcGFuZWwpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tY3JlYXRpdmUtY29tbW9uczpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItY3JlYXRpdmUtY29tbW9ucyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jcmVhdGl2ZS1jb21tb25zLWJ5OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1jcmVhdGl2ZS1jb21tb25zLWJ5KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWNyZWF0aXZlLWNvbW1vbnMtbmM6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWNyZWF0aXZlLWNvbW1vbnMtbmMpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tY3JlYXRpdmUtY29tbW9ucy1uYy1ldTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItY3JlYXRpdmUtY29tbW9ucy1uYy1ldSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jcmVhdGl2ZS1jb21tb25zLW5jLWpwOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1jcmVhdGl2ZS1jb21tb25zLW5jLWpwKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWNyZWF0aXZlLWNvbW1vbnMtbmQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWNyZWF0aXZlLWNvbW1vbnMtbmQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tY3JlYXRpdmUtY29tbW9ucy1wZDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItY3JlYXRpdmUtY29tbW9ucy1wZCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jcmVhdGl2ZS1jb21tb25zLXBkLWFsdDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItY3JlYXRpdmUtY29tbW9ucy1wZC1hbHQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tY3JlYXRpdmUtY29tbW9ucy1yZW1peDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItY3JlYXRpdmUtY29tbW9ucy1yZW1peCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jcmVhdGl2ZS1jb21tb25zLXNhOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1jcmVhdGl2ZS1jb21tb25zLXNhKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWNyZWF0aXZlLWNvbW1vbnMtc2FtcGxpbmc6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWNyZWF0aXZlLWNvbW1vbnMtc2FtcGxpbmcpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tY3JlYXRpdmUtY29tbW9ucy1zYW1wbGluZy1wbHVzOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1jcmVhdGl2ZS1jb21tb25zLXNhbXBsaW5nLXBsdXMpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tY3JlYXRpdmUtY29tbW9ucy1zaGFyZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItY3JlYXRpdmUtY29tbW9ucy1zaGFyZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jcmVkaXQtY2FyZDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItY3JlZGl0LWNhcmQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tY3JvcDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItY3JvcCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jcm9wLWFsdDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItY3JvcC1hbHQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tY3Jvc3NoYWlyczpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItY3Jvc3NoYWlycyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jcm93OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1jcm93KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWNyb3duOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1jcm93bik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jc3MzOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1jc3MzKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWNzczMtYWx0OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1jc3MzLWFsdCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jdWJlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1jdWJlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWN1YmVzOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1jdWJlcyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jdXQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWN1dCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1jdXR0bGVmaXNoOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1jdXR0bGVmaXNoKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWQtYW5kLWQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWQtYW5kLWQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZGFzaGN1YmU6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWRhc2hjdWJlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWRhdGFiYXNlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1kYXRhYmFzZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1kZWFmOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1kZWFmKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWRlbGljaW91czpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZGVsaWNpb3VzKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWRlcGxveWRvZzpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZGVwbG95ZG9nKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWRlc2twcm86YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWRlc2twcm8pOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZGVza3RvcDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZGVza3RvcCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1kZXZpYW50YXJ0OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1kZXZpYW50YXJ0KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWRpYWdub3NlczpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZGlhZ25vc2VzKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWRpY2U6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWRpY2UpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZGljZS1maXZlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1kaWNlLWZpdmUpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZGljZS1mb3VyOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1kaWNlLWZvdXIpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZGljZS1vbmU6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWRpY2Utb25lKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWRpY2Utc2l4OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1kaWNlLXNpeCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1kaWNlLXRocmVlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1kaWNlLXRocmVlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWRpY2UtdHdvOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1kaWNlLXR3byk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1kaWdnOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1kaWdnKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWRpZ2l0YWwtb2NlYW46YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWRpZ2l0YWwtb2NlYW4pOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZGlnaXRhbC10YWNob2dyYXBoOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1kaWdpdGFsLXRhY2hvZ3JhcGgpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZGlzY29yZDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZGlzY29yZCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1kaXNjb3Vyc2U6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWRpc2NvdXJzZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1kaXZpZGU6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWRpdmlkZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1kaXp6eTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZGl6enkpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZG5hOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1kbmEpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZG9jaHViOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1kb2NodWIpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZG9ja2VyOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1kb2NrZXIpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZG9sbGFyLXNpZ246YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWRvbGxhci1zaWduKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWRvbGx5OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1kb2xseSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1kb2xseS1mbGF0YmVkOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1kb2xseS1mbGF0YmVkKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWRvbmF0ZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZG9uYXRlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWRvb3ItY2xvc2VkOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1kb29yLWNsb3NlZCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1kb29yLW9wZW46YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWRvb3Itb3Blbik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1kb3QtY2lyY2xlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1kb3QtY2lyY2xlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWRvdmU6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWRvdmUpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZG93bmxvYWQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWRvd25sb2FkKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWRyYWZ0MmRpZ2l0YWw6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWRyYWZ0MmRpZ2l0YWwpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZHJhZnRpbmctY29tcGFzczpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZHJhZnRpbmctY29tcGFzcyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1kcmliYmJsZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZHJpYmJibGUpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZHJpYmJibGUtc3F1YXJlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1kcmliYmJsZS1zcXVhcmUpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZHJvcGJveDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZHJvcGJveCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1kcnVtOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1kcnVtKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWRydW0tc3RlZWxwYW46YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWRydW0tc3RlZWxwYW4pOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZHJ1cGFsOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1kcnVwYWwpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZHVtYmJlbGw6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWR1bWJiZWxsKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWR5YWxvZzpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZHlhbG9nKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWVhcmx5YmlyZHM6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWVhcmx5YmlyZHMpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZWJheTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZWJheSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1lZGdlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1lZGdlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWVkaXQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWVkaXQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZWplY3Q6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWVqZWN0KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWVsZW1lbnRvcjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZWxlbWVudG9yKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWVsbGlwc2lzLWg6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWVsbGlwc2lzLWgpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZWxsaXBzaXMtdjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZWxsaXBzaXMtdik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1lbWJlcjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZW1iZXIpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZW1waXJlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1lbXBpcmUpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZW52ZWxvcGU6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWVudmVsb3BlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWVudmVsb3BlLW9wZW46YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWVudmVsb3BlLW9wZW4pOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZW52ZWxvcGUtc3F1YXJlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1lbnZlbG9wZS1zcXVhcmUpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZW52aXJhOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1lbnZpcmEpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZXF1YWxzOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1lcXVhbHMpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZXJhc2VyOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1lcmFzZXIpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZXJsYW5nOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1lcmxhbmcpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZXRoZXJldW06YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWV0aGVyZXVtKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWV0c3k6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWV0c3kpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZXVyby1zaWduOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1ldXJvLXNpZ24pOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZXhjaGFuZ2UtYWx0OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1leGNoYW5nZS1hbHQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZXhjbGFtYXRpb246YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWV4Y2xhbWF0aW9uKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWV4Y2xhbWF0aW9uLWNpcmNsZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZXhjbGFtYXRpb24tY2lyY2xlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWV4Y2xhbWF0aW9uLXRyaWFuZ2xlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1leGNsYW1hdGlvbi10cmlhbmdsZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1leHBhbmQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWV4cGFuZCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1leHBhbmQtYXJyb3dzLWFsdDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZXhwYW5kLWFycm93cy1hbHQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZXhwZWRpdGVkc3NsOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1leHBlZGl0ZWRzc2wpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZXh0ZXJuYWwtbGluay1hbHQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWV4dGVybmFsLWxpbmstYWx0KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWV4dGVybmFsLWxpbmstc3F1YXJlLWFsdDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZXh0ZXJuYWwtbGluay1zcXVhcmUtYWx0KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWV5ZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZXllKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWV5ZS1kcm9wcGVyOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1leWUtZHJvcHBlcik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1leWUtc2xhc2g6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWV5ZS1zbGFzaCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1mYWNlYm9vazpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZmFjZWJvb2spOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZmFjZWJvb2stZjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZmFjZWJvb2stZik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1mYWNlYm9vay1tZXNzZW5nZXI6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWZhY2Vib29rLW1lc3Nlbmdlcik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1mYWNlYm9vay1zcXVhcmU6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWZhY2Vib29rLXNxdWFyZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1mYXN0LWJhY2t3YXJkOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1mYXN0LWJhY2t3YXJkKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWZhc3QtZm9yd2FyZDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZmFzdC1mb3J3YXJkKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWZheDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZmF4KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWZlYXRoZXI6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWZlYXRoZXIpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZmVhdGhlci1hbHQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWZlYXRoZXItYWx0KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWZlbWFsZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZmVtYWxlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWZpZ2h0ZXItamV0OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1maWdodGVyLWpldCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1maWxlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1maWxlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWZpbGUtYWx0OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1maWxlLWFsdCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1maWxlLWFyY2hpdmU6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWZpbGUtYXJjaGl2ZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1maWxlLWF1ZGlvOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1maWxlLWF1ZGlvKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWZpbGUtY29kZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZmlsZS1jb2RlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWZpbGUtY29udHJhY3Q6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWZpbGUtY29udHJhY3QpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZmlsZS1kb3dubG9hZDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZmlsZS1kb3dubG9hZCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1maWxlLWV4Y2VsOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1maWxlLWV4Y2VsKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWZpbGUtZXhwb3J0OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1maWxlLWV4cG9ydCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1maWxlLWltYWdlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1maWxlLWltYWdlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWZpbGUtaW1wb3J0OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1maWxlLWltcG9ydCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1maWxlLWludm9pY2U6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWZpbGUtaW52b2ljZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1maWxlLWludm9pY2UtZG9sbGFyOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1maWxlLWludm9pY2UtZG9sbGFyKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWZpbGUtbWVkaWNhbDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZmlsZS1tZWRpY2FsKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWZpbGUtbWVkaWNhbC1hbHQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWZpbGUtbWVkaWNhbC1hbHQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZmlsZS1wZGY6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWZpbGUtcGRmKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWZpbGUtcG93ZXJwb2ludDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZmlsZS1wb3dlcnBvaW50KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWZpbGUtcHJlc2NyaXB0aW9uOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1maWxlLXByZXNjcmlwdGlvbik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1maWxlLXNpZ25hdHVyZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZmlsZS1zaWduYXR1cmUpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZmlsZS11cGxvYWQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWZpbGUtdXBsb2FkKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWZpbGUtdmlkZW86YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWZpbGUtdmlkZW8pOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZmlsZS13b3JkOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1maWxlLXdvcmQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZmlsbDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZmlsbCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1maWxsLWRyaXA6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWZpbGwtZHJpcCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1maWxtOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1maWxtKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWZpbHRlcjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZmlsdGVyKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWZpbmdlcnByaW50OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1maW5nZXJwcmludCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1maXJlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1maXJlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWZpcmUtZXh0aW5ndWlzaGVyOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1maXJlLWV4dGluZ3Vpc2hlcik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1maXJlZm94OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1maXJlZm94KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWZpcnN0LWFpZDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZmlyc3QtYWlkKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWZpcnN0LW9yZGVyOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1maXJzdC1vcmRlcik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1maXJzdC1vcmRlci1hbHQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWZpcnN0LW9yZGVyLWFsdCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1maXJzdGRyYWZ0OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1maXJzdGRyYWZ0KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWZpc2g6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWZpc2gpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZmxhZzpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZmxhZyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1mbGFnLWNoZWNrZXJlZDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZmxhZy1jaGVja2VyZWQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZmxhc2s6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWZsYXNrKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWZsaWNrcjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZmxpY2tyKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWZsaXBib2FyZDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZmxpcGJvYXJkKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWZsdXNoZWQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWZsdXNoZWQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZmx5OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1mbHkpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZm9sZGVyOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1mb2xkZXIpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZm9sZGVyLW9wZW46YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWZvbGRlci1vcGVuKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWZvbnQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWZvbnQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZm9udC1hd2Vzb21lOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1mb250LWF3ZXNvbWUpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZm9udC1hd2Vzb21lLWFsdDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZm9udC1hd2Vzb21lLWFsdCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1mb250LWF3ZXNvbWUtZmxhZzpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZm9udC1hd2Vzb21lLWZsYWcpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZm9udC1hd2Vzb21lLWxvZ28tZnVsbDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZm9udC1hd2Vzb21lLWxvZ28tZnVsbCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1mb250aWNvbnM6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWZvbnRpY29ucyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1mb250aWNvbnMtZmk6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWZvbnRpY29ucy1maSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1mb290YmFsbC1iYWxsOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1mb290YmFsbC1iYWxsKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWZvcnQtYXdlc29tZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZm9ydC1hd2Vzb21lKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWZvcnQtYXdlc29tZS1hbHQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWZvcnQtYXdlc29tZS1hbHQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZm9ydW1iZWU6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWZvcnVtYmVlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWZvcndhcmQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWZvcndhcmQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZm91cnNxdWFyZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZm91cnNxdWFyZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1mcmVlLWNvZGUtY2FtcDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZnJlZS1jb2RlLWNhbXApOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZnJlZWJzZDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZnJlZWJzZCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1mcm9nOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1mcm9nKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWZyb3duOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1mcm93bik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1mcm93bi1vcGVuOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1mcm93bi1vcGVuKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWZ1bGNydW06YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWZ1bGNydW0pOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZnV0Ym9sOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1mdXRib2wpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZ2FsYWN0aWMtcmVwdWJsaWM6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWdhbGFjdGljLXJlcHVibGljKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWdhbGFjdGljLXNlbmF0ZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZ2FsYWN0aWMtc2VuYXRlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWdhbWVwYWQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWdhbWVwYWQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZ2FzLXB1bXA6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWdhcy1wdW1wKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWdhdmVsOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1nYXZlbCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1nZW06YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWdlbSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1nZW5kZXJsZXNzOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1nZW5kZXJsZXNzKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWdldC1wb2NrZXQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWdldC1wb2NrZXQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZ2c6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWdnKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWdnLWNpcmNsZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZ2ctY2lyY2xlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWdpZnQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWdpZnQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZ2l0OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1naXQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZ2l0LXNxdWFyZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZ2l0LXNxdWFyZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1naXRodWI6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWdpdGh1Yik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1naXRodWItYWx0OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1naXRodWItYWx0KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWdpdGh1Yi1zcXVhcmU6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWdpdGh1Yi1zcXVhcmUpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZ2l0a3Jha2VuOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1naXRrcmFrZW4pOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZ2l0bGFiOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1naXRsYWIpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZ2l0dGVyOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1naXR0ZXIpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZ2xhc3MtbWFydGluaTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZ2xhc3MtbWFydGluaSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1nbGFzcy1tYXJ0aW5pLWFsdDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZ2xhc3MtbWFydGluaS1hbHQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZ2xhc3NlczpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZ2xhc3Nlcyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1nbGlkZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZ2xpZGUpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZ2xpZGUtZzpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZ2xpZGUtZyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1nbG9iZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZ2xvYmUpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZ2xvYmUtYWZyaWNhOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1nbG9iZS1hZnJpY2EpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZ2xvYmUtYW1lcmljYXM6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWdsb2JlLWFtZXJpY2FzKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWdsb2JlLWFzaWE6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWdsb2JlLWFzaWEpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZ29mb3JlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1nb2ZvcmUpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZ29sZi1iYWxsOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1nb2xmLWJhbGwpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZ29vZHJlYWRzOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1nb29kcmVhZHMpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZ29vZHJlYWRzLWc6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWdvb2RyZWFkcy1nKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWdvb2dsZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZ29vZ2xlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWdvb2dsZS1kcml2ZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZ29vZ2xlLWRyaXZlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWdvb2dsZS1wbGF5OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1nb29nbGUtcGxheSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1nb29nbGUtcGx1czpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZ29vZ2xlLXBsdXMpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZ29vZ2xlLXBsdXMtZzpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZ29vZ2xlLXBsdXMtZyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1nb29nbGUtcGx1cy1zcXVhcmU6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWdvb2dsZS1wbHVzLXNxdWFyZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1nb29nbGUtd2FsbGV0OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1nb29nbGUtd2FsbGV0KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWdyYWR1YXRpb24tY2FwOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1ncmFkdWF0aW9uLWNhcCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1ncmF0aXBheTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZ3JhdGlwYXkpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZ3JhdjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZ3Jhdik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1ncmVhdGVyLXRoYW46YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWdyZWF0ZXItdGhhbik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1ncmVhdGVyLXRoYW4tZXF1YWw6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWdyZWF0ZXItdGhhbi1lcXVhbCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1ncmltYWNlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1ncmltYWNlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWdyaW46YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWdyaW4pOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZ3Jpbi1hbHQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWdyaW4tYWx0KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWdyaW4tYmVhbTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZ3Jpbi1iZWFtKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWdyaW4tYmVhbS1zd2VhdDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZ3Jpbi1iZWFtLXN3ZWF0KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWdyaW4taGVhcnRzOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1ncmluLWhlYXJ0cyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1ncmluLXNxdWludDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZ3Jpbi1zcXVpbnQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZ3Jpbi1zcXVpbnQtdGVhcnM6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWdyaW4tc3F1aW50LXRlYXJzKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWdyaW4tc3RhcnM6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWdyaW4tc3RhcnMpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZ3Jpbi10ZWFyczpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZ3Jpbi10ZWFycyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1ncmluLXRvbmd1ZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZ3Jpbi10b25ndWUpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZ3Jpbi10b25ndWUtc3F1aW50OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1ncmluLXRvbmd1ZS1zcXVpbnQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZ3Jpbi10b25ndWUtd2luazpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZ3Jpbi10b25ndWUtd2luayk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1ncmluLXdpbms6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWdyaW4td2luayk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1ncmlwLWhvcml6b250YWw6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWdyaXAtaG9yaXpvbnRhbCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1ncmlwLXZlcnRpY2FsOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1ncmlwLXZlcnRpY2FsKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWdyaXBmaXJlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1ncmlwZmlyZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1ncnVudDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZ3J1bnQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tZ3VscDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItZ3VscCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1oLXNxdWFyZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItaC1zcXVhcmUpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0taGFja2VyLW5ld3M6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWhhY2tlci1uZXdzKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWhhY2tlci1uZXdzLXNxdWFyZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItaGFja2VyLW5ld3Mtc3F1YXJlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWhhbmQtaG9sZGluZzpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItaGFuZC1ob2xkaW5nKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWhhbmQtaG9sZGluZy1oZWFydDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItaGFuZC1ob2xkaW5nLWhlYXJ0KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWhhbmQtaG9sZGluZy11c2Q6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWhhbmQtaG9sZGluZy11c2QpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0taGFuZC1saXphcmQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWhhbmQtbGl6YXJkKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWhhbmQtcGFwZXI6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWhhbmQtcGFwZXIpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0taGFuZC1wZWFjZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItaGFuZC1wZWFjZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1oYW5kLXBvaW50LWRvd246YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWhhbmQtcG9pbnQtZG93bik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1oYW5kLXBvaW50LWxlZnQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWhhbmQtcG9pbnQtbGVmdCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1oYW5kLXBvaW50LXJpZ2h0OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1oYW5kLXBvaW50LXJpZ2h0KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWhhbmQtcG9pbnQtdXA6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWhhbmQtcG9pbnQtdXApOyB9XG4uI3skZmEtY3NzLXByZWZpeH0taGFuZC1wb2ludGVyOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1oYW5kLXBvaW50ZXIpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0taGFuZC1yb2NrOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1oYW5kLXJvY2spOyB9XG4uI3skZmEtY3NzLXByZWZpeH0taGFuZC1zY2lzc29yczpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItaGFuZC1zY2lzc29ycyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1oYW5kLXNwb2NrOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1oYW5kLXNwb2NrKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWhhbmRzOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1oYW5kcyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1oYW5kcy1oZWxwaW5nOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1oYW5kcy1oZWxwaW5nKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWhhbmRzaGFrZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItaGFuZHNoYWtlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWhhc2h0YWc6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWhhc2h0YWcpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0taGRkOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1oZGQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0taGVhZGluZzpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItaGVhZGluZyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1oZWFkcGhvbmVzOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1oZWFkcGhvbmVzKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWhlYWRwaG9uZXMtYWx0OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1oZWFkcGhvbmVzLWFsdCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1oZWFkc2V0OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1oZWFkc2V0KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWhlYXJ0OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1oZWFydCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1oZWFydGJlYXQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWhlYXJ0YmVhdCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1oZWxpY29wdGVyOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1oZWxpY29wdGVyKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWhpZ2hsaWdodGVyOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1oaWdobGlnaHRlcik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1oaXBzOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1oaXBzKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWhpcmUtYS1oZWxwZXI6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWhpcmUtYS1oZWxwZXIpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0taGlzdG9yeTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItaGlzdG9yeSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1ob2NrZXktcHVjazpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItaG9ja2V5LXB1Y2spOyB9XG4uI3skZmEtY3NzLXByZWZpeH0taG9tZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItaG9tZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1ob29saTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItaG9vbGkpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0taG9ybmJpbGw6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWhvcm5iaWxsKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWhvc3BpdGFsOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1ob3NwaXRhbCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1ob3NwaXRhbC1hbHQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWhvc3BpdGFsLWFsdCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1ob3NwaXRhbC1zeW1ib2w6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWhvc3BpdGFsLXN5bWJvbCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1ob3QtdHViOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1ob3QtdHViKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWhvdGVsOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1ob3RlbCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1ob3RqYXI6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWhvdGphcik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1ob3VyZ2xhc3M6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWhvdXJnbGFzcyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1ob3VyZ2xhc3MtZW5kOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1ob3VyZ2xhc3MtZW5kKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWhvdXJnbGFzcy1oYWxmOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1ob3VyZ2xhc3MtaGFsZik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1ob3VyZ2xhc3Mtc3RhcnQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWhvdXJnbGFzcy1zdGFydCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1ob3V6ejpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItaG91enopOyB9XG4uI3skZmEtY3NzLXByZWZpeH0taHRtbDU6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWh0bWw1KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWh1YnNwb3Q6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWh1YnNwb3QpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0taS1jdXJzb3I6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWktY3Vyc29yKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWlkLWJhZGdlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1pZC1iYWRnZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1pZC1jYXJkOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1pZC1jYXJkKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWlkLWNhcmQtYWx0OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1pZC1jYXJkLWFsdCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1pbWFnZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItaW1hZ2UpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0taW1hZ2VzOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1pbWFnZXMpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0taW1kYjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItaW1kYik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1pbmJveDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItaW5ib3gpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0taW5kZW50OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1pbmRlbnQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0taW5kdXN0cnk6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWluZHVzdHJ5KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWluZmluaXR5OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1pbmZpbml0eSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1pbmZvOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1pbmZvKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWluZm8tY2lyY2xlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1pbmZvLWNpcmNsZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1pbnN0YWdyYW06YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWluc3RhZ3JhbSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1pbnRlcm5ldC1leHBsb3JlcjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItaW50ZXJuZXQtZXhwbG9yZXIpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0taW94aG9zdDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItaW94aG9zdCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1pdGFsaWM6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWl0YWxpYyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1pdHVuZXM6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWl0dW5lcyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1pdHVuZXMtbm90ZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItaXR1bmVzLW5vdGUpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tamF2YTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItamF2YSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1qZWRpLW9yZGVyOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1qZWRpLW9yZGVyKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWplbmtpbnM6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWplbmtpbnMpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tam9nZXQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWpvZ2V0KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWpvaW50OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1qb2ludCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1qb29tbGE6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWpvb21sYSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1qczpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItanMpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tanMtc3F1YXJlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1qcy1zcXVhcmUpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tanNmaWRkbGU6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWpzZmlkZGxlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWtleTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXIta2V5KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWtleWJhc2U6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWtleWJhc2UpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0ta2V5Ym9hcmQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWtleWJvYXJkKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWtleWNkbjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXIta2V5Y2RuKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWtpY2tzdGFydGVyOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1raWNrc3RhcnRlcik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1raWNrc3RhcnRlci1rOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1raWNrc3RhcnRlci1rKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWtpc3M6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWtpc3MpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0ta2lzcy1iZWFtOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1raXNzLWJlYW0pOyB9XG4uI3skZmEtY3NzLXByZWZpeH0ta2lzcy13aW5rLWhlYXJ0OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1raXNzLXdpbmstaGVhcnQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0ta2l3aS1iaXJkOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1raXdpLWJpcmQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0ta29ydnVlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1rb3J2dWUpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tbGFuZ3VhZ2U6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWxhbmd1YWdlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWxhcHRvcDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItbGFwdG9wKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWxhcmF2ZWw6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWxhcmF2ZWwpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tbGFzdGZtOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1sYXN0Zm0pOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tbGFzdGZtLXNxdWFyZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItbGFzdGZtLXNxdWFyZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1sYXVnaDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItbGF1Z2gpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tbGF1Z2gtYmVhbTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItbGF1Z2gtYmVhbSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1sYXVnaC1zcXVpbnQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWxhdWdoLXNxdWludCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1sYXVnaC13aW5rOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1sYXVnaC13aW5rKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWxlYWY6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWxlYWYpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tbGVhbnB1YjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItbGVhbnB1Yik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1sZW1vbjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItbGVtb24pOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tbGVzczpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItbGVzcyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1sZXNzLXRoYW46YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWxlc3MtdGhhbik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1sZXNzLXRoYW4tZXF1YWw6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWxlc3MtdGhhbi1lcXVhbCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1sZXZlbC1kb3duLWFsdDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItbGV2ZWwtZG93bi1hbHQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tbGV2ZWwtdXAtYWx0OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1sZXZlbC11cC1hbHQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tbGlmZS1yaW5nOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1saWZlLXJpbmcpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tbGlnaHRidWxiOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1saWdodGJ1bGIpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tbGluZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItbGluZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1saW5rOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1saW5rKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWxpbmtlZGluOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1saW5rZWRpbik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1saW5rZWRpbi1pbjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItbGlua2VkaW4taW4pOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tbGlub2RlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1saW5vZGUpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tbGludXg6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWxpbnV4KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWxpcmEtc2lnbjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItbGlyYS1zaWduKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWxpc3Q6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWxpc3QpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tbGlzdC1hbHQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWxpc3QtYWx0KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWxpc3Qtb2w6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWxpc3Qtb2wpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tbGlzdC11bDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItbGlzdC11bCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1sb2NhdGlvbi1hcnJvdzpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItbG9jYXRpb24tYXJyb3cpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tbG9jazpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItbG9jayk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1sb2NrLW9wZW46YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWxvY2stb3Blbik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1sb25nLWFycm93LWFsdC1kb3duOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1sb25nLWFycm93LWFsdC1kb3duKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWxvbmctYXJyb3ctYWx0LWxlZnQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWxvbmctYXJyb3ctYWx0LWxlZnQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tbG9uZy1hcnJvdy1hbHQtcmlnaHQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWxvbmctYXJyb3ctYWx0LXJpZ2h0KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWxvbmctYXJyb3ctYWx0LXVwOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1sb25nLWFycm93LWFsdC11cCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1sb3ctdmlzaW9uOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1sb3ctdmlzaW9uKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWx1Z2dhZ2UtY2FydDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItbHVnZ2FnZS1jYXJ0KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LWx5ZnQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLWx5ZnQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tbWFnZW50bzpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItbWFnZW50byk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1tYWdpYzpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItbWFnaWMpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tbWFnbmV0OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1tYWduZXQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tbWFpbGNoaW1wOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1tYWlsY2hpbXApOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tbWFsZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItbWFsZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1tYW5kYWxvcmlhbjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItbWFuZGFsb3JpYW4pOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tbWFwOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1tYXApOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tbWFwLW1hcmtlZDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItbWFwLW1hcmtlZCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1tYXAtbWFya2VkLWFsdDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItbWFwLW1hcmtlZC1hbHQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tbWFwLW1hcmtlcjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItbWFwLW1hcmtlcik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1tYXAtbWFya2VyLWFsdDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItbWFwLW1hcmtlci1hbHQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tbWFwLXBpbjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItbWFwLXBpbik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1tYXAtc2lnbnM6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLW1hcC1zaWducyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1tYXJrZXI6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLW1hcmtlcik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1tYXJzOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1tYXJzKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LW1hcnMtZG91YmxlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1tYXJzLWRvdWJsZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1tYXJzLXN0cm9rZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItbWFycy1zdHJva2UpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tbWFycy1zdHJva2UtaDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItbWFycy1zdHJva2UtaCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1tYXJzLXN0cm9rZS12OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1tYXJzLXN0cm9rZS12KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LW1hc3RvZG9uOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1tYXN0b2Rvbik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1tYXhjZG46YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLW1heGNkbik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1tZWRhbDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItbWVkYWwpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tbWVkYXBwczpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItbWVkYXBwcyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1tZWRpdW06YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLW1lZGl1bSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1tZWRpdW0tbTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItbWVkaXVtLW0pOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tbWVka2l0OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1tZWRraXQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tbWVkcnQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLW1lZHJ0KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LW1lZXR1cDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItbWVldHVwKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LW1lZ2Fwb3J0OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1tZWdhcG9ydCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1tZWg6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLW1laCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1tZWgtYmxhbms6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLW1laC1ibGFuayk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1tZWgtcm9sbGluZy1leWVzOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1tZWgtcm9sbGluZy1leWVzKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LW1lbW9yeTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItbWVtb3J5KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LW1lcmN1cnk6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLW1lcmN1cnkpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tbWljcm9jaGlwOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1taWNyb2NoaXApOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tbWljcm9waG9uZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItbWljcm9waG9uZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1taWNyb3Bob25lLWFsdDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItbWljcm9waG9uZS1hbHQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tbWljcm9waG9uZS1hbHQtc2xhc2g6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLW1pY3JvcGhvbmUtYWx0LXNsYXNoKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LW1pY3JvcGhvbmUtc2xhc2g6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLW1pY3JvcGhvbmUtc2xhc2gpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tbWljcm9zb2Z0OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1taWNyb3NvZnQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tbWludXM6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLW1pbnVzKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LW1pbnVzLWNpcmNsZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItbWludXMtY2lyY2xlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LW1pbnVzLXNxdWFyZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItbWludXMtc3F1YXJlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LW1peDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItbWl4KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LW1peGNsb3VkOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1taXhjbG91ZCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1taXp1bmk6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLW1penVuaSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1tb2JpbGU6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLW1vYmlsZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1tb2JpbGUtYWx0OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1tb2JpbGUtYWx0KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LW1vZHg6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLW1vZHgpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tbW9uZXJvOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1tb25lcm8pOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tbW9uZXktYmlsbDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItbW9uZXktYmlsbCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1tb25leS1iaWxsLWFsdDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItbW9uZXktYmlsbC1hbHQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tbW9uZXktYmlsbC13YXZlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1tb25leS1iaWxsLXdhdmUpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tbW9uZXktYmlsbC13YXZlLWFsdDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItbW9uZXktYmlsbC13YXZlLWFsdCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1tb25leS1jaGVjazpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItbW9uZXktY2hlY2spOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tbW9uZXktY2hlY2stYWx0OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1tb25leS1jaGVjay1hbHQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tbW9udW1lbnQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLW1vbnVtZW50KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LW1vb246YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLW1vb24pOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tbW9ydGFyLXBlc3RsZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItbW9ydGFyLXBlc3RsZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1tb3RvcmN5Y2xlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1tb3RvcmN5Y2xlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LW1vdXNlLXBvaW50ZXI6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLW1vdXNlLXBvaW50ZXIpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tbXVzaWM6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLW11c2ljKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LW5hcHN0ZXI6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLW5hcHN0ZXIpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tbmV1dGVyOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1uZXV0ZXIpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tbmV3c3BhcGVyOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1uZXdzcGFwZXIpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tbmltYmxyOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1uaW1ibHIpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tbmludGVuZG8tc3dpdGNoOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1uaW50ZW5kby1zd2l0Y2gpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tbm9kZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItbm9kZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1ub2RlLWpzOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1ub2RlLWpzKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LW5vdC1lcXVhbDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItbm90LWVxdWFsKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LW5vdGVzLW1lZGljYWw6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLW5vdGVzLW1lZGljYWwpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tbnBtOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1ucG0pOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tbnM4OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1uczgpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tbnV0cml0aW9uaXg6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLW51dHJpdGlvbml4KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LW9iamVjdC1ncm91cDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItb2JqZWN0LWdyb3VwKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LW9iamVjdC11bmdyb3VwOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1vYmplY3QtdW5ncm91cCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1vZG5va2xhc3NuaWtpOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1vZG5va2xhc3NuaWtpKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LW9kbm9rbGFzc25pa2ktc3F1YXJlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1vZG5va2xhc3NuaWtpLXNxdWFyZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1vbGQtcmVwdWJsaWM6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLW9sZC1yZXB1YmxpYyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1vcGVuY2FydDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItb3BlbmNhcnQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tb3BlbmlkOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1vcGVuaWQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tb3BlcmE6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLW9wZXJhKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LW9wdGluLW1vbnN0ZXI6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLW9wdGluLW1vbnN0ZXIpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tb3NpOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1vc2kpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tb3V0ZGVudDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItb3V0ZGVudCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1wYWdlNDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItcGFnZTQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tcGFnZWxpbmVzOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1wYWdlbGluZXMpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tcGFpbnQtYnJ1c2g6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXBhaW50LWJydXNoKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXBhaW50LXJvbGxlcjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItcGFpbnQtcm9sbGVyKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXBhbGV0dGU6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXBhbGV0dGUpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tcGFsZmVkOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1wYWxmZWQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tcGFsbGV0OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1wYWxsZXQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tcGFwZXItcGxhbmU6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXBhcGVyLXBsYW5lKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXBhcGVyY2xpcDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItcGFwZXJjbGlwKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXBhcmFjaHV0ZS1ib3g6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXBhcmFjaHV0ZS1ib3gpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tcGFyYWdyYXBoOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1wYXJhZ3JhcGgpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tcGFya2luZzpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItcGFya2luZyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1wYXNzcG9ydDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItcGFzc3BvcnQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tcGFzdGU6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXBhc3RlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXBhdHJlb246YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXBhdHJlb24pOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tcGF1c2U6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXBhdXNlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXBhdXNlLWNpcmNsZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItcGF1c2UtY2lyY2xlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXBhdzpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItcGF3KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXBheXBhbDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItcGF5cGFsKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXBlbjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItcGVuKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXBlbi1hbHQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXBlbi1hbHQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tcGVuLWZhbmN5OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1wZW4tZmFuY3kpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tcGVuLW5pYjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItcGVuLW5pYik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1wZW4tc3F1YXJlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1wZW4tc3F1YXJlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXBlbmNpbC1hbHQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXBlbmNpbC1hbHQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tcGVuY2lsLXJ1bGVyOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1wZW5jaWwtcnVsZXIpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tcGVvcGxlLWNhcnJ5OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1wZW9wbGUtY2FycnkpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tcGVyY2VudDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItcGVyY2VudCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1wZXJjZW50YWdlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1wZXJjZW50YWdlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXBlcmlzY29wZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItcGVyaXNjb3BlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXBoYWJyaWNhdG9yOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1waGFicmljYXRvcik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1waG9lbml4LWZyYW1ld29yazpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItcGhvZW5peC1mcmFtZXdvcmspOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tcGhvZW5peC1zcXVhZHJvbjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItcGhvZW5peC1zcXVhZHJvbik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1waG9uZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItcGhvbmUpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tcGhvbmUtc2xhc2g6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXBob25lLXNsYXNoKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXBob25lLXNxdWFyZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItcGhvbmUtc3F1YXJlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXBob25lLXZvbHVtZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItcGhvbmUtdm9sdW1lKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXBocDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItcGhwKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXBpZWQtcGlwZXI6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXBpZWQtcGlwZXIpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tcGllZC1waXBlci1hbHQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXBpZWQtcGlwZXItYWx0KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXBpZWQtcGlwZXItaGF0OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1waWVkLXBpcGVyLWhhdCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1waWVkLXBpcGVyLXBwOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1waWVkLXBpcGVyLXBwKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXBpZ2d5LWJhbms6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXBpZ2d5LWJhbmspOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tcGlsbHM6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXBpbGxzKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXBpbnRlcmVzdDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItcGludGVyZXN0KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXBpbnRlcmVzdC1wOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1waW50ZXJlc3QtcCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1waW50ZXJlc3Qtc3F1YXJlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1waW50ZXJlc3Qtc3F1YXJlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXBsYW5lOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1wbGFuZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1wbGFuZS1hcnJpdmFsOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1wbGFuZS1hcnJpdmFsKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXBsYW5lLWRlcGFydHVyZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItcGxhbmUtZGVwYXJ0dXJlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXBsYXk6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXBsYXkpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tcGxheS1jaXJjbGU6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXBsYXktY2lyY2xlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXBsYXlzdGF0aW9uOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1wbGF5c3RhdGlvbik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1wbHVnOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1wbHVnKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXBsdXM6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXBsdXMpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tcGx1cy1jaXJjbGU6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXBsdXMtY2lyY2xlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXBsdXMtc3F1YXJlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1wbHVzLXNxdWFyZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1wb2RjYXN0OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1wb2RjYXN0KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXBvbzpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItcG9vKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXBvcnRyYWl0OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1wb3J0cmFpdCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1wb3VuZC1zaWduOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1wb3VuZC1zaWduKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXBvd2VyLW9mZjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItcG93ZXItb2ZmKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXByZXNjcmlwdGlvbjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItcHJlc2NyaXB0aW9uKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXByZXNjcmlwdGlvbi1ib3R0bGU6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXByZXNjcmlwdGlvbi1ib3R0bGUpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tcHJlc2NyaXB0aW9uLWJvdHRsZS1hbHQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXByZXNjcmlwdGlvbi1ib3R0bGUtYWx0KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXByaW50OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1wcmludCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1wcm9jZWR1cmVzOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1wcm9jZWR1cmVzKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXByb2R1Y3QtaHVudDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItcHJvZHVjdC1odW50KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXByb2plY3QtZGlhZ3JhbTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItcHJvamVjdC1kaWFncmFtKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXB1c2hlZDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItcHVzaGVkKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXB1enpsZS1waWVjZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItcHV6emxlLXBpZWNlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXB5dGhvbjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItcHl0aG9uKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXFxOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1xcSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1xcmNvZGU6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXFyY29kZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1xdWVzdGlvbjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItcXVlc3Rpb24pOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tcXVlc3Rpb24tY2lyY2xlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1xdWVzdGlvbi1jaXJjbGUpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tcXVpZGRpdGNoOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1xdWlkZGl0Y2gpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tcXVpbnNjYXBlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1xdWluc2NhcGUpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tcXVvcmE6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXF1b3JhKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXF1b3RlLWxlZnQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXF1b3RlLWxlZnQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tcXVvdGUtcmlnaHQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXF1b3RlLXJpZ2h0KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXItcHJvamVjdDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItci1wcm9qZWN0KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXJhbmRvbTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItcmFuZG9tKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXJhdmVscnk6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXJhdmVscnkpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tcmVhY3Q6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXJlYWN0KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXJlYWRtZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItcmVhZG1lKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXJlYmVsOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1yZWJlbCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1yZWNlaXB0OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1yZWNlaXB0KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXJlY3ljbGU6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXJlY3ljbGUpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tcmVkLXJpdmVyOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1yZWQtcml2ZXIpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tcmVkZGl0OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1yZWRkaXQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tcmVkZGl0LWFsaWVuOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1yZWRkaXQtYWxpZW4pOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tcmVkZGl0LXNxdWFyZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItcmVkZGl0LXNxdWFyZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1yZWRvOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1yZWRvKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXJlZG8tYWx0OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1yZWRvLWFsdCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1yZWdpc3RlcmVkOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1yZWdpc3RlcmVkKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXJlbmRhY3Q6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXJlbmRhY3QpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tcmVucmVuOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1yZW5yZW4pOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tcmVwbHk6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXJlcGx5KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXJlcGx5LWFsbDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItcmVwbHktYWxsKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXJlcGx5ZDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItcmVwbHlkKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXJlc2VhcmNoZ2F0ZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItcmVzZWFyY2hnYXRlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXJlc29sdmluZzpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItcmVzb2x2aW5nKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXJldHdlZXQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXJldHdlZXQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tcmV2OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1yZXYpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tcmliYm9uOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1yaWJib24pOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tcm9hZDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItcm9hZCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1yb2JvdDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItcm9ib3QpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tcm9ja2V0OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1yb2NrZXQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tcm9ja2V0Y2hhdDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItcm9ja2V0Y2hhdCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1yb2Nrcm1zOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1yb2Nrcm1zKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXJzczpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItcnNzKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXJzcy1zcXVhcmU6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXJzcy1zcXVhcmUpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tcnVibGUtc2lnbjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItcnVibGUtc2lnbik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1ydWxlcjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItcnVsZXIpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tcnVsZXItY29tYmluZWQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXJ1bGVyLWNvbWJpbmVkKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXJ1bGVyLWhvcml6b250YWw6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXJ1bGVyLWhvcml6b250YWwpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tcnVsZXItdmVydGljYWw6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXJ1bGVyLXZlcnRpY2FsKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXJ1cGVlLXNpZ246YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXJ1cGVlLXNpZ24pOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc2FkLWNyeTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItc2FkLWNyeSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1zYWQtdGVhcjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItc2FkLXRlYXIpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc2FmYXJpOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1zYWZhcmkpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc2FzczpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItc2Fzcyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1zYXZlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1zYXZlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXNjaGxpeDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItc2NobGl4KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXNjaG9vbDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItc2Nob29sKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXNjcmV3ZHJpdmVyOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1zY3Jld2RyaXZlcik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1zY3JpYmQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXNjcmliZCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1zZWFyY2g6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXNlYXJjaCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1zZWFyY2gtbWludXM6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXNlYXJjaC1taW51cyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1zZWFyY2gtcGx1czpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItc2VhcmNoLXBsdXMpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc2VhcmNoZW5naW46YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXNlYXJjaGVuZ2luKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXNlZWRsaW5nOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1zZWVkbGluZyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1zZWxsY2FzdDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItc2VsbGNhc3QpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc2VsbHN5OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1zZWxsc3kpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc2VydmVyOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1zZXJ2ZXIpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc2VydmljZXN0YWNrOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1zZXJ2aWNlc3RhY2spOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc2hhcmU6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXNoYXJlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXNoYXJlLWFsdDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItc2hhcmUtYWx0KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXNoYXJlLWFsdC1zcXVhcmU6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXNoYXJlLWFsdC1zcXVhcmUpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc2hhcmUtc3F1YXJlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1zaGFyZS1zcXVhcmUpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc2hla2VsLXNpZ246YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXNoZWtlbC1zaWduKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXNoaWVsZC1hbHQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXNoaWVsZC1hbHQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc2hpcDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItc2hpcCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1zaGlwcGluZy1mYXN0OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1zaGlwcGluZy1mYXN0KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXNoaXJ0c2luYnVsazpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItc2hpcnRzaW5idWxrKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXNob2UtcHJpbnRzOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1zaG9lLXByaW50cyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1zaG9wcGluZy1iYWc6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXNob3BwaW5nLWJhZyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1zaG9wcGluZy1iYXNrZXQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXNob3BwaW5nLWJhc2tldCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1zaG9wcGluZy1jYXJ0OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1zaG9wcGluZy1jYXJ0KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXNob3B3YXJlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1zaG9wd2FyZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1zaG93ZXI6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXNob3dlcik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1zaHV0dGxlLXZhbjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItc2h1dHRsZS12YW4pOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc2lnbjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItc2lnbik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1zaWduLWluLWFsdDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItc2lnbi1pbi1hbHQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc2lnbi1sYW5ndWFnZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItc2lnbi1sYW5ndWFnZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1zaWduLW91dC1hbHQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXNpZ24tb3V0LWFsdCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1zaWduYWw6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXNpZ25hbCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1zaWduYXR1cmU6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXNpZ25hdHVyZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1zaW1wbHlidWlsdDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItc2ltcGx5YnVpbHQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc2lzdHJpeDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItc2lzdHJpeCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1zaXRlbWFwOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1zaXRlbWFwKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXNpdGg6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXNpdGgpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc2t1bGw6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXNrdWxsKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXNreWF0bGFzOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1za3lhdGxhcyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1za3lwZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItc2t5cGUpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc2xhY2s6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXNsYWNrKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXNsYWNrLWhhc2g6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXNsYWNrLWhhc2gpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc2xpZGVycy1oOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1zbGlkZXJzLWgpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc2xpZGVzaGFyZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItc2xpZGVzaGFyZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1zbWlsZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItc21pbGUpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc21pbGUtYmVhbTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItc21pbGUtYmVhbSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1zbWlsZS13aW5rOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1zbWlsZS13aW5rKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXNtb2tpbmc6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXNtb2tpbmcpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc21va2luZy1iYW46YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXNtb2tpbmctYmFuKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXNuYXBjaGF0OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1zbmFwY2hhdCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1zbmFwY2hhdC1naG9zdDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItc25hcGNoYXQtZ2hvc3QpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc25hcGNoYXQtc3F1YXJlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1zbmFwY2hhdC1zcXVhcmUpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc25vd2ZsYWtlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1zbm93Zmxha2UpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc29sYXItcGFuZWw6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXNvbGFyLXBhbmVsKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXNvcnQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXNvcnQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc29ydC1hbHBoYS1kb3duOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1zb3J0LWFscGhhLWRvd24pOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc29ydC1hbHBoYS11cDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItc29ydC1hbHBoYS11cCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1zb3J0LWFtb3VudC1kb3duOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1zb3J0LWFtb3VudC1kb3duKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXNvcnQtYW1vdW50LXVwOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1zb3J0LWFtb3VudC11cCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1zb3J0LWRvd246YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXNvcnQtZG93bik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1zb3J0LW51bWVyaWMtZG93bjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItc29ydC1udW1lcmljLWRvd24pOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc29ydC1udW1lcmljLXVwOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1zb3J0LW51bWVyaWMtdXApOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc29ydC11cDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItc29ydC11cCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1zb3VuZGNsb3VkOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1zb3VuZGNsb3VkKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXNwYTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItc3BhKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXNwYWNlLXNodXR0bGU6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXNwYWNlLXNodXR0bGUpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc3BlYWthcDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItc3BlYWthcCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1zcGlubmVyOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1zcGlubmVyKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXNwbG90Y2g6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXNwbG90Y2gpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc3BvdGlmeTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItc3BvdGlmeSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1zcHJheS1jYW46YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXNwcmF5LWNhbik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1zcXVhcmU6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXNxdWFyZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1zcXVhcmUtZnVsbDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItc3F1YXJlLWZ1bGwpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc3F1YXJlc3BhY2U6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXNxdWFyZXNwYWNlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXN0YWNrLWV4Y2hhbmdlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1zdGFjay1leGNoYW5nZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1zdGFjay1vdmVyZmxvdzpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItc3RhY2stb3ZlcmZsb3cpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc3RhbXA6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXN0YW1wKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXN0YXI6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXN0YXIpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc3Rhci1oYWxmOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1zdGFyLWhhbGYpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc3Rhci1oYWxmLWFsdDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItc3Rhci1oYWxmLWFsdCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1zdGF5bGlua2VkOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1zdGF5bGlua2VkKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXN0ZWFtOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1zdGVhbSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1zdGVhbS1zcXVhcmU6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXN0ZWFtLXNxdWFyZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1zdGVhbS1zeW1ib2w6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXN0ZWFtLXN5bWJvbCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1zdGVwLWJhY2t3YXJkOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1zdGVwLWJhY2t3YXJkKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXN0ZXAtZm9yd2FyZDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItc3RlcC1mb3J3YXJkKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXN0ZXRob3Njb3BlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1zdGV0aG9zY29wZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1zdGlja2VyLW11bGU6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXN0aWNrZXItbXVsZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1zdGlja3ktbm90ZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItc3RpY2t5LW5vdGUpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc3RvcDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItc3RvcCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1zdG9wLWNpcmNsZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItc3RvcC1jaXJjbGUpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc3RvcHdhdGNoOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1zdG9wd2F0Y2gpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc3RvcmU6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXN0b3JlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXN0b3JlLWFsdDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItc3RvcmUtYWx0KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXN0cmF2YTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItc3RyYXZhKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXN0cmVhbTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItc3RyZWFtKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXN0cmVldC12aWV3OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1zdHJlZXQtdmlldyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1zdHJpa2V0aHJvdWdoOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1zdHJpa2V0aHJvdWdoKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXN0cmlwZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItc3RyaXBlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXN0cmlwZS1zOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1zdHJpcGUtcyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1zdHJvb3B3YWZlbDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItc3Ryb29wd2FmZWwpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc3R1ZGlvdmluYXJpOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1zdHVkaW92aW5hcmkpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc3R1bWJsZXVwb246YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXN0dW1ibGV1cG9uKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXN0dW1ibGV1cG9uLWNpcmNsZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItc3R1bWJsZXVwb24tY2lyY2xlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXN1YnNjcmlwdDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItc3Vic2NyaXB0KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXN1YndheTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItc3Vid2F5KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXN1aXRjYXNlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1zdWl0Y2FzZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1zdWl0Y2FzZS1yb2xsaW5nOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1zdWl0Y2FzZS1yb2xsaW5nKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXN1bjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItc3VuKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXN1cGVycG93ZXJzOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1zdXBlcnBvd2Vycyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1zdXBlcnNjcmlwdDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItc3VwZXJzY3JpcHQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc3VwcGxlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1zdXBwbGUpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc3VycHJpc2U6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXN1cnByaXNlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXN3YXRjaGJvb2s6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXN3YXRjaGJvb2spOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc3dpbW1lcjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItc3dpbW1lcik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS1zd2ltbWluZy1wb29sOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci1zd2ltbWluZy1wb29sKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXN5bmM6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXN5bmMpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tc3luYy1hbHQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXN5bmMtYWx0KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXN5cmluZ2U6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXN5cmluZ2UpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tdGFibGU6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXRhYmxlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXRhYmxlLXRlbm5pczpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItdGFibGUtdGVubmlzKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXRhYmxldDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItdGFibGV0KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXRhYmxldC1hbHQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXRhYmxldC1hbHQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tdGFibGV0czpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItdGFibGV0cyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS10YWNob21ldGVyLWFsdDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItdGFjaG9tZXRlci1hbHQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tdGFnOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci10YWcpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tdGFnczpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItdGFncyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS10YXBlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci10YXBlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXRhc2tzOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci10YXNrcyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS10YXhpOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci10YXhpKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXRlYW1zcGVhazpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItdGVhbXNwZWFrKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXRlbGVncmFtOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci10ZWxlZ3JhbSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS10ZWxlZ3JhbS1wbGFuZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItdGVsZWdyYW0tcGxhbmUpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tdGVuY2VudC13ZWlibzpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItdGVuY2VudC13ZWlibyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS10ZXJtaW5hbDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItdGVybWluYWwpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tdGV4dC1oZWlnaHQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXRleHQtaGVpZ2h0KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXRleHQtd2lkdGg6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXRleHQtd2lkdGgpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tdGg6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXRoKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXRoLWxhcmdlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci10aC1sYXJnZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS10aC1saXN0OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci10aC1saXN0KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXRoZW1lY286YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXRoZW1lY28pOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tdGhlbWVpc2xlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci10aGVtZWlzbGUpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tdGhlcm1vbWV0ZXI6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXRoZXJtb21ldGVyKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXRoZXJtb21ldGVyLWVtcHR5OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci10aGVybW9tZXRlci1lbXB0eSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS10aGVybW9tZXRlci1mdWxsOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci10aGVybW9tZXRlci1mdWxsKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXRoZXJtb21ldGVyLWhhbGY6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXRoZXJtb21ldGVyLWhhbGYpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tdGhlcm1vbWV0ZXItcXVhcnRlcjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItdGhlcm1vbWV0ZXItcXVhcnRlcik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS10aGVybW9tZXRlci10aHJlZS1xdWFydGVyczpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItdGhlcm1vbWV0ZXItdGhyZWUtcXVhcnRlcnMpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tdGh1bWJzLWRvd246YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXRodW1icy1kb3duKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXRodW1icy11cDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItdGh1bWJzLXVwKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXRodW1idGFjazpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItdGh1bWJ0YWNrKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXRpY2tldC1hbHQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXRpY2tldC1hbHQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tdGltZXM6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXRpbWVzKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXRpbWVzLWNpcmNsZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItdGltZXMtY2lyY2xlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXRpbnQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXRpbnQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tdGludC1zbGFzaDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItdGludC1zbGFzaCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS10aXJlZDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItdGlyZWQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tdG9nZ2xlLW9mZjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItdG9nZ2xlLW9mZik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS10b2dnbGUtb246YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXRvZ2dsZS1vbik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS10b29sYm94OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci10b29sYm94KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXRvb3RoOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci10b290aCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS10cmFkZS1mZWRlcmF0aW9uOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci10cmFkZS1mZWRlcmF0aW9uKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXRyYWRlbWFyazpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItdHJhZGVtYXJrKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXRyYWluOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci10cmFpbik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS10cmFuc2dlbmRlcjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItdHJhbnNnZW5kZXIpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tdHJhbnNnZW5kZXItYWx0OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci10cmFuc2dlbmRlci1hbHQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tdHJhc2g6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXRyYXNoKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXRyYXNoLWFsdDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItdHJhc2gtYWx0KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXRyZWU6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXRyZWUpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tdHJlbGxvOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci10cmVsbG8pOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tdHJpcGFkdmlzb3I6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXRyaXBhZHZpc29yKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXRyb3BoeTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItdHJvcGh5KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXRydWNrOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci10cnVjayk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS10cnVjay1sb2FkaW5nOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci10cnVjay1sb2FkaW5nKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXRydWNrLW1vdmluZzpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItdHJ1Y2stbW92aW5nKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXRzaGlydDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItdHNoaXJ0KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXR0eTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItdHR5KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXR1bWJscjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItdHVtYmxyKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXR1bWJsci1zcXVhcmU6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXR1bWJsci1zcXVhcmUpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tdHY6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXR2KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXR3aXRjaDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItdHdpdGNoKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXR3aXR0ZXI6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXR3aXR0ZXIpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tdHdpdHRlci1zcXVhcmU6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXR3aXR0ZXItc3F1YXJlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXR5cG8zOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci10eXBvMyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS11YmVyOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci11YmVyKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXVpa2l0OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci11aWtpdCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS11bWJyZWxsYTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItdW1icmVsbGEpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tdW1icmVsbGEtYmVhY2g6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXVtYnJlbGxhLWJlYWNoKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXVuZGVybGluZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItdW5kZXJsaW5lKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXVuZG86YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXVuZG8pOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tdW5kby1hbHQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXVuZG8tYWx0KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXVuaXJlZ2lzdHJ5OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci11bmlyZWdpc3RyeSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS11bml2ZXJzYWwtYWNjZXNzOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci11bml2ZXJzYWwtYWNjZXNzKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXVuaXZlcnNpdHk6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXVuaXZlcnNpdHkpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tdW5saW5rOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci11bmxpbmspOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tdW5sb2NrOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci11bmxvY2spOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tdW5sb2NrLWFsdDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItdW5sb2NrLWFsdCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS11bnRhcHBkOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci11bnRhcHBkKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXVwbG9hZDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItdXBsb2FkKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXVzYjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItdXNiKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXVzZXI6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXVzZXIpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tdXNlci1hbHQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXVzZXItYWx0KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXVzZXItYWx0LXNsYXNoOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci11c2VyLWFsdC1zbGFzaCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS11c2VyLWFzdHJvbmF1dDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItdXNlci1hc3Ryb25hdXQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tdXNlci1jaGVjazpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItdXNlci1jaGVjayk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS11c2VyLWNpcmNsZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItdXNlci1jaXJjbGUpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tdXNlci1jbG9jazpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItdXNlci1jbG9jayk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS11c2VyLWNvZzpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItdXNlci1jb2cpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tdXNlci1lZGl0OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci11c2VyLWVkaXQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tdXNlci1mcmllbmRzOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci11c2VyLWZyaWVuZHMpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tdXNlci1ncmFkdWF0ZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItdXNlci1ncmFkdWF0ZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS11c2VyLWxvY2s6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXVzZXItbG9jayk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS11c2VyLW1kOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci11c2VyLW1kKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXVzZXItbWludXM6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXVzZXItbWludXMpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tdXNlci1uaW5qYTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItdXNlci1uaW5qYSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS11c2VyLXBsdXM6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXVzZXItcGx1cyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS11c2VyLXNlY3JldDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItdXNlci1zZWNyZXQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tdXNlci1zaGllbGQ6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXVzZXItc2hpZWxkKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXVzZXItc2xhc2g6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXVzZXItc2xhc2gpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tdXNlci10YWc6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXVzZXItdGFnKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXVzZXItdGllOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci11c2VyLXRpZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS11c2VyLXRpbWVzOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci11c2VyLXRpbWVzKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXVzZXJzOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci11c2Vycyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS11c2Vycy1jb2c6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXVzZXJzLWNvZyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS11c3N1bm5haDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItdXNzdW5uYWgpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tdXRlbnNpbC1zcG9vbjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItdXRlbnNpbC1zcG9vbik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS11dGVuc2lsczpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItdXRlbnNpbHMpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tdmFhZGluOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci12YWFkaW4pOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tdmVjdG9yLXNxdWFyZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItdmVjdG9yLXNxdWFyZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS12ZW51czpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItdmVudXMpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tdmVudXMtZG91YmxlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci12ZW51cy1kb3VibGUpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tdmVudXMtbWFyczpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItdmVudXMtbWFycyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS12aWFjb2luOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci12aWFjb2luKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXZpYWRlbzpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItdmlhZGVvKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXZpYWRlby1zcXVhcmU6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXZpYWRlby1zcXVhcmUpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tdmlhbDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItdmlhbCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS12aWFsczpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItdmlhbHMpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tdmliZXI6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXZpYmVyKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXZpZGVvOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci12aWRlbyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS12aWRlby1zbGFzaDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItdmlkZW8tc2xhc2gpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tdmltZW86YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXZpbWVvKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXZpbWVvLXNxdWFyZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItdmltZW8tc3F1YXJlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXZpbWVvLXY6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXZpbWVvLXYpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tdmluZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItdmluZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS12azpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItdmspOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tdm52OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci12bnYpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tdm9sbGV5YmFsbC1iYWxsOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci12b2xsZXliYWxsLWJhbGwpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tdm9sdW1lLWRvd246YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXZvbHVtZS1kb3duKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXZvbHVtZS1vZmY6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXZvbHVtZS1vZmYpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tdm9sdW1lLXVwOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci12b2x1bWUtdXApOyB9XG4uI3skZmEtY3NzLXByZWZpeH0tdnVlanM6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXZ1ZWpzKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXdhbGtpbmc6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXdhbGtpbmcpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0td2FsbGV0OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci13YWxsZXQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0td2FyZWhvdXNlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci13YXJlaG91c2UpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0td2VlYmx5OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci13ZWVibHkpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0td2VpYm86YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXdlaWJvKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXdlaWdodDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItd2VpZ2h0KTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXdlaWdodC1oYW5naW5nOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci13ZWlnaHQtaGFuZ2luZyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS13ZWl4aW46YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXdlaXhpbik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS13aGF0c2FwcDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItd2hhdHNhcHApOyB9XG4uI3skZmEtY3NzLXByZWZpeH0td2hhdHNhcHAtc3F1YXJlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci13aGF0c2FwcC1zcXVhcmUpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0td2hlZWxjaGFpcjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItd2hlZWxjaGFpcik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS13aG1jczpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItd2htY3MpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0td2lmaTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItd2lmaSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS13aWtpcGVkaWEtdzpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItd2lraXBlZGlhLXcpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0td2luZG93LWNsb3NlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci13aW5kb3ctY2xvc2UpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0td2luZG93LW1heGltaXplOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci13aW5kb3ctbWF4aW1pemUpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0td2luZG93LW1pbmltaXplOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci13aW5kb3ctbWluaW1pemUpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0td2luZG93LXJlc3RvcmU6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXdpbmRvdy1yZXN0b3JlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXdpbmRvd3M6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXdpbmRvd3MpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0td2luZS1nbGFzczpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItd2luZS1nbGFzcyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS13aW5lLWdsYXNzLWFsdDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItd2luZS1nbGFzcy1hbHQpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0td2l4OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci13aXgpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0td29sZi1wYWNrLWJhdHRhbGlvbjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItd29sZi1wYWNrLWJhdHRhbGlvbik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS13b24tc2lnbjpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItd29uLXNpZ24pOyB9XG4uI3skZmEtY3NzLXByZWZpeH0td29yZHByZXNzOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci13b3JkcHJlc3MpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0td29yZHByZXNzLXNpbXBsZTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItd29yZHByZXNzLXNpbXBsZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS13cGJlZ2lubmVyOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci13cGJlZ2lubmVyKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXdwZXhwbG9yZXI6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXdwZXhwbG9yZXIpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0td3Bmb3JtczpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXItd3Bmb3Jtcyk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS13cmVuY2g6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXdyZW5jaCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS14LXJheTpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXIteC1yYXkpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0teGJveDpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXIteGJveCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS14aW5nOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci14aW5nKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXhpbmctc3F1YXJlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci14aW5nLXNxdWFyZSk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS15LWNvbWJpbmF0b3I6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXktY29tYmluYXRvcik7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS15YWhvbzpiZWZvcmUgeyBjb250ZW50OiBmYS1jb250ZW50KCRmYS12YXIteWFob28pOyB9XG4uI3skZmEtY3NzLXByZWZpeH0teWFuZGV4OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci15YW5kZXgpOyB9XG4uI3skZmEtY3NzLXByZWZpeH0teWFuZGV4LWludGVybmF0aW9uYWw6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXlhbmRleC1pbnRlcm5hdGlvbmFsKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXllbHA6YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXllbHApOyB9XG4uI3skZmEtY3NzLXByZWZpeH0teWVuLXNpZ246YmVmb3JlIHsgY29udGVudDogZmEtY29udGVudCgkZmEtdmFyLXllbi1zaWduKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXlvYXN0OmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci15b2FzdCk7IH1cbi4jeyRmYS1jc3MtcHJlZml4fS15b3V0dWJlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci15b3V0dWJlKTsgfVxuLiN7JGZhLWNzcy1wcmVmaXh9LXlvdXR1YmUtc3F1YXJlOmJlZm9yZSB7IGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGZhLXZhci15b3V0dWJlLXNxdWFyZSk7IH1cblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL25vZGVfbW9kdWxlcy9AZm9ydGF3ZXNvbWUvZm9udGF3ZXNvbWUtZnJlZS9zY3NzL19pY29ucy5zY3NzIiwiLy8gU2NyZWVuIFJlYWRlcnNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLnNyLW9ubHkgeyBAaW5jbHVkZSBzci1vbmx5OyB9XG4uc3Itb25seS1mb2N1c2FibGUgeyBAaW5jbHVkZSBzci1vbmx5LWZvY3VzYWJsZTsgfVxuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vbm9kZV9tb2R1bGVzL0Bmb3J0YXdlc29tZS9mb250YXdlc29tZS1mcmVlL3Njc3MvX3NjcmVlbi1yZWFkZXIuc2NzcyIsIi8qIVxuICogRm9udCBBd2Vzb21lIEZyZWUgNS4xLjEgYnkgQGZvbnRhd2Vzb21lIC0gaHR0cHM6Ly9mb250YXdlc29tZS5jb21cbiAqIExpY2Vuc2UgLSBodHRwczovL2ZvbnRhd2Vzb21lLmNvbS9saWNlbnNlIChJY29uczogQ0MgQlkgNC4wLCBGb250czogU0lMIE9GTCAxLjEsIENvZGU6IE1JVCBMaWNlbnNlKVxuICovXG5AaW1wb3J0ICd2YXJpYWJsZXMnO1xuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdGb250IEF3ZXNvbWUgNSBGcmVlJztcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogNDAwO1xuICBzcmM6IHVybCgnI3skZmEtZm9udC1wYXRofS9mYS1yZWd1bGFyLTQwMC5lb3QnKTtcbiAgc3JjOiB1cmwoJyN7JGZhLWZvbnQtcGF0aH0vZmEtcmVndWxhci00MDAuZW90PyNpZWZpeCcpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSxcbiAgdXJsKCcjeyRmYS1mb250LXBhdGh9L2ZhLXJlZ3VsYXItNDAwLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLFxuICB1cmwoJyN7JGZhLWZvbnQtcGF0aH0vZmEtcmVndWxhci00MDAud29mZicpIGZvcm1hdCgnd29mZicpLFxuICB1cmwoJyN7JGZhLWZvbnQtcGF0aH0vZmEtcmVndWxhci00MDAudHRmJykgZm9ybWF0KCd0cnVldHlwZScpLFxuICB1cmwoJyN7JGZhLWZvbnQtcGF0aH0vZmEtcmVndWxhci00MDAuc3ZnI2ZvbnRhd2Vzb21lJykgZm9ybWF0KCdzdmcnKTtcbn1cblxuLmZhciB7XG4gIGZvbnQtZmFtaWx5OiAnRm9udCBBd2Vzb21lIDUgRnJlZSc7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG59XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9ub2RlX21vZHVsZXMvQGZvcnRhd2Vzb21lL2ZvbnRhd2Vzb21lLWZyZWUvc2Nzcy9yZWd1bGFyLnNjc3MiLCIvKiFcbiAqIEZvbnQgQXdlc29tZSBGcmVlIDUuMS4xIGJ5IEBmb250YXdlc29tZSAtIGh0dHBzOi8vZm9udGF3ZXNvbWUuY29tXG4gKiBMaWNlbnNlIC0gaHR0cHM6Ly9mb250YXdlc29tZS5jb20vbGljZW5zZSAoSWNvbnM6IENDIEJZIDQuMCwgRm9udHM6IFNJTCBPRkwgMS4xLCBDb2RlOiBNSVQgTGljZW5zZSlcbiAqL1xuQGltcG9ydCAndmFyaWFibGVzJztcblxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnRm9udCBBd2Vzb21lIDUgRnJlZSc7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDkwMDtcbiAgc3JjOiB1cmwoJyN7JGZhLWZvbnQtcGF0aH0vZmEtc29saWQtOTAwLmVvdCcpO1xuICBzcmM6IHVybCgnI3skZmEtZm9udC1wYXRofS9mYS1zb2xpZC05MDAuZW90PyNpZWZpeCcpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSxcbiAgdXJsKCcjeyRmYS1mb250LXBhdGh9L2ZhLXNvbGlkLTkwMC53b2ZmMicpIGZvcm1hdCgnd29mZjInKSxcbiAgdXJsKCcjeyRmYS1mb250LXBhdGh9L2ZhLXNvbGlkLTkwMC53b2ZmJykgZm9ybWF0KCd3b2ZmJyksXG4gIHVybCgnI3skZmEtZm9udC1wYXRofS9mYS1zb2xpZC05MDAudHRmJykgZm9ybWF0KCd0cnVldHlwZScpLFxuICB1cmwoJyN7JGZhLWZvbnQtcGF0aH0vZmEtc29saWQtOTAwLnN2ZyNmb250YXdlc29tZScpIGZvcm1hdCgnc3ZnJyk7XG59XG5cbi5mYSxcbi5mYXMge1xuICBmb250LWZhbWlseTogJ0ZvbnQgQXdlc29tZSA1IEZyZWUnO1xuICBmb250LXdlaWdodDogOTAwO1xufVxuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vbm9kZV9tb2R1bGVzL0Bmb3J0YXdlc29tZS9mb250YXdlc29tZS1mcmVlL3Njc3Mvc29saWQuc2NzcyIsIi8qIVxuICogRm9udCBBd2Vzb21lIEZyZWUgNS4xLjEgYnkgQGZvbnRhd2Vzb21lIC0gaHR0cHM6Ly9mb250YXdlc29tZS5jb21cbiAqIExpY2Vuc2UgLSBodHRwczovL2ZvbnRhd2Vzb21lLmNvbS9saWNlbnNlIChJY29uczogQ0MgQlkgNC4wLCBGb250czogU0lMIE9GTCAxLjEsIENvZGU6IE1JVCBMaWNlbnNlKVxuICovXG5AaW1wb3J0ICd2YXJpYWJsZXMnO1xuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdGb250IEF3ZXNvbWUgNSBCcmFuZHMnO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIHNyYzogdXJsKCcjeyRmYS1mb250LXBhdGh9L2ZhLWJyYW5kcy00MDAuZW90Jyk7XG4gIHNyYzogdXJsKCcjeyRmYS1mb250LXBhdGh9L2ZhLWJyYW5kcy00MDAuZW90PyNpZWZpeCcpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSxcbiAgdXJsKCcjeyRmYS1mb250LXBhdGh9L2ZhLWJyYW5kcy00MDAud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksXG4gIHVybCgnI3skZmEtZm9udC1wYXRofS9mYS1icmFuZHMtNDAwLndvZmYnKSBmb3JtYXQoJ3dvZmYnKSxcbiAgdXJsKCcjeyRmYS1mb250LXBhdGh9L2ZhLWJyYW5kcy00MDAudHRmJykgZm9ybWF0KCd0cnVldHlwZScpLFxuICB1cmwoJyN7JGZhLWZvbnQtcGF0aH0vZmEtYnJhbmRzLTQwMC5zdmcjZm9udGF3ZXNvbWUnKSBmb3JtYXQoJ3N2ZycpO1xufVxuXG4uZmFiIHtcbiAgZm9udC1mYW1pbHk6ICdGb250IEF3ZXNvbWUgNSBCcmFuZHMnO1xufVxuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vbm9kZV9tb2R1bGVzL0Bmb3J0YXdlc29tZS9mb250YXdlc29tZS1mcmVlL3Njc3MvYnJhbmRzLnNjc3MiLCIvKiFcbiAqICAgQWRtaW5MVEUgdjIuNC44XG4gKiAgIEF1dGhvcjogQWxtc2FlZWQgU3R1ZGlvXG4gKlx0IFdlYnNpdGU6IEFsbXNhZWVkIFN0dWRpbyA8aHR0cHM6Ly9hZG1pbmx0ZS5pbz5cbiAqICAgTGljZW5zZTogT3BlbiBzb3VyY2UgLSBNSVRcbiAqICAgICAgICAgICBQbGVhc2UgdmlzaXQgaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVCBmb3IgbW9yZSBpbmZvcm1hdGlvblxuICovaHRtbCxib2R5e2hlaWdodDoxMDAlfS5sYXlvdXQtYm94ZWQgaHRtbCwubGF5b3V0LWJveGVkIGJvZHl7aGVpZ2h0OjEwMCV9Ym9keXtmb250LWZhbWlseTonU291cmNlIFNhbnMgUHJvJywnSGVsdmV0aWNhIE5ldWUnLEhlbHZldGljYSxBcmlhbCxzYW5zLXNlcmlmO2ZvbnQtd2VpZ2h0OjQwMDtvdmVyZmxvdy14OmhpZGRlbjtvdmVyZmxvdy15OmF1dG99LndyYXBwZXJ7aGVpZ2h0OjEwMCU7cG9zaXRpb246cmVsYXRpdmU7b3ZlcmZsb3cteDpoaWRkZW47b3ZlcmZsb3cteTphdXRvfS53cmFwcGVyOmJlZm9yZSwud3JhcHBlcjphZnRlcntjb250ZW50OlwiIFwiO2Rpc3BsYXk6dGFibGV9LndyYXBwZXI6YWZ0ZXJ7Y2xlYXI6Ym90aH0ubGF5b3V0LWJveGVkIC53cmFwcGVye21heC13aWR0aDoxMjUwcHg7bWFyZ2luOjAgYXV0bzttaW4taGVpZ2h0OjEwMCU7Ym94LXNoYWRvdzowIDAgOHB4IHJnYmEoMCwwLDAsMC41KTtwb3NpdGlvbjpyZWxhdGl2ZX0ubGF5b3V0LWJveGVke2JhY2tncm91bmQtY29sb3I6I2Y5ZmFmY30uY29udGVudC13cmFwcGVyLC5tYWluLWZvb3Rlcnstd2Via2l0LXRyYW5zaXRpb246LXdlYmtpdC10cmFuc2Zvcm0gLjNzIGVhc2UtaW4tb3V0LG1hcmdpbiAuM3MgZWFzZS1pbi1vdXQ7LW1vei10cmFuc2l0aW9uOi1tb3otdHJhbnNmb3JtIC4zcyBlYXNlLWluLW91dCxtYXJnaW4gLjNzIGVhc2UtaW4tb3V0Oy1vLXRyYW5zaXRpb246LW8tdHJhbnNmb3JtIC4zcyBlYXNlLWluLW91dCxtYXJnaW4gLjNzIGVhc2UtaW4tb3V0O3RyYW5zaXRpb246dHJhbnNmb3JtIC4zcyBlYXNlLWluLW91dCxtYXJnaW4gLjNzIGVhc2UtaW4tb3V0O21hcmdpbi1sZWZ0OjIzMHB4O3otaW5kZXg6ODIwfS5sYXlvdXQtdG9wLW5hdiAuY29udGVudC13cmFwcGVyLC5sYXlvdXQtdG9wLW5hdiAubWFpbi1mb290ZXJ7bWFyZ2luLWxlZnQ6MH1AbWVkaWEgKG1heC13aWR0aDo3NjdweCl7LmNvbnRlbnQtd3JhcHBlciwubWFpbi1mb290ZXJ7bWFyZ2luLWxlZnQ6MH19QG1lZGlhIChtaW4td2lkdGg6NzY4cHgpey5zaWRlYmFyLWNvbGxhcHNlIC5jb250ZW50LXdyYXBwZXIsLnNpZGViYXItY29sbGFwc2UgLm1haW4tZm9vdGVye21hcmdpbi1sZWZ0OjB9fUBtZWRpYSAobWF4LXdpZHRoOjc2N3B4KXsuc2lkZWJhci1vcGVuIC5jb250ZW50LXdyYXBwZXIsLnNpZGViYXItb3BlbiAubWFpbi1mb290ZXJ7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlKDIzMHB4LCAwKTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZSgyMzBweCwgMCk7LW8tdHJhbnNmb3JtOnRyYW5zbGF0ZSgyMzBweCwgMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZSgyMzBweCwgMCl9fS5jb250ZW50LXdyYXBwZXJ7bWluLWhlaWdodDoxMDAlO2JhY2tncm91bmQtY29sb3I6I2VjZjBmNTt6LWluZGV4OjgwMH0ubWFpbi1mb290ZXJ7YmFja2dyb3VuZDojZmZmO3BhZGRpbmc6MTVweDtjb2xvcjojNDQ0O2JvcmRlci10b3A6MXB4IHNvbGlkICNkMmQ2ZGV9LmZpeGVkIC5tYWluLWhlYWRlciwuZml4ZWQgLm1haW4tc2lkZWJhciwuZml4ZWQgLmxlZnQtc2lkZXtwb3NpdGlvbjpmaXhlZH0uZml4ZWQgLm1haW4taGVhZGVye3RvcDowO3JpZ2h0OjA7bGVmdDowfS5maXhlZCAuY29udGVudC13cmFwcGVyLC5maXhlZCAucmlnaHQtc2lkZXtwYWRkaW5nLXRvcDo1MHB4fUBtZWRpYSAobWF4LXdpZHRoOjc2N3B4KXsuZml4ZWQgLmNvbnRlbnQtd3JhcHBlciwuZml4ZWQgLnJpZ2h0LXNpZGV7cGFkZGluZy10b3A6MTAwcHh9fS5maXhlZC5sYXlvdXQtYm94ZWQgLndyYXBwZXJ7bWF4LXdpZHRoOjEwMCV9LmZpeGVkIC53cmFwcGVye292ZXJmbG93OmhpZGRlbn0uaG9sZC10cmFuc2l0aW9uIC5jb250ZW50LXdyYXBwZXIsLmhvbGQtdHJhbnNpdGlvbiAucmlnaHQtc2lkZSwuaG9sZC10cmFuc2l0aW9uIC5tYWluLWZvb3RlciwuaG9sZC10cmFuc2l0aW9uIC5tYWluLXNpZGViYXIsLmhvbGQtdHJhbnNpdGlvbiAubGVmdC1zaWRlLC5ob2xkLXRyYW5zaXRpb24gLm1haW4taGVhZGVyIC5uYXZiYXIsLmhvbGQtdHJhbnNpdGlvbiAubWFpbi1oZWFkZXIgLmxvZ28sLmhvbGQtdHJhbnNpdGlvbiAubWVudS1vcGVuIC5mYS1hbmdsZS1sZWZ0ey13ZWJraXQtdHJhbnNpdGlvbjpub25lOy1vLXRyYW5zaXRpb246bm9uZTt0cmFuc2l0aW9uOm5vbmV9LmNvbnRlbnR7bWluLWhlaWdodDoyNTBweDtwYWRkaW5nOjE1cHg7bWFyZ2luLXJpZ2h0OmF1dG87bWFyZ2luLWxlZnQ6YXV0bztwYWRkaW5nLWxlZnQ6MTVweDtwYWRkaW5nLXJpZ2h0OjE1cHh9aDEsaDIsaDMsaDQsaDUsaDYsLmgxLC5oMiwuaDMsLmg0LC5oNSwuaDZ7Zm9udC1mYW1pbHk6J1NvdXJjZSBTYW5zIFBybycsc2Fucy1zZXJpZn1he2NvbG9yOiMzYzhkYmN9YTpob3ZlcixhOmFjdGl2ZSxhOmZvY3Vze291dGxpbmU6bm9uZTt0ZXh0LWRlY29yYXRpb246bm9uZTtjb2xvcjojNzJhZmQyfS5wYWdlLWhlYWRlcnttYXJnaW46MTBweCAwIDIwcHggMDtmb250LXNpemU6MjJweH0ucGFnZS1oZWFkZXI+c21hbGx7Y29sb3I6IzY2NjtkaXNwbGF5OmJsb2NrO21hcmdpbi10b3A6NXB4fS5tYWluLWhlYWRlcntwb3NpdGlvbjpyZWxhdGl2ZTttYXgtaGVpZ2h0OjEwMHB4O3otaW5kZXg6MTAzMH0ubWFpbi1oZWFkZXIgLm5hdmJhcnstd2Via2l0LXRyYW5zaXRpb246bWFyZ2luLWxlZnQgLjNzIGVhc2UtaW4tb3V0Oy1vLXRyYW5zaXRpb246bWFyZ2luLWxlZnQgLjNzIGVhc2UtaW4tb3V0O3RyYW5zaXRpb246bWFyZ2luLWxlZnQgLjNzIGVhc2UtaW4tb3V0O21hcmdpbi1ib3R0b206MDttYXJnaW4tbGVmdDoyMzBweDtib3JkZXI6bm9uZTttaW4taGVpZ2h0OjUwcHg7Ym9yZGVyLXJhZGl1czowfS5sYXlvdXQtdG9wLW5hdiAubWFpbi1oZWFkZXIgLm5hdmJhcnttYXJnaW4tbGVmdDowfS5tYWluLWhlYWRlciAjbmF2YmFyLXNlYXJjaC1pbnB1dC5mb3JtLWNvbnRyb2x7YmFja2dyb3VuZDpyZ2JhKDI1NSwyNTUsMjU1LDAuMik7Ym9yZGVyLWNvbG9yOnRyYW5zcGFyZW50fS5tYWluLWhlYWRlciAjbmF2YmFyLXNlYXJjaC1pbnB1dC5mb3JtLWNvbnRyb2w6Zm9jdXMsLm1haW4taGVhZGVyICNuYXZiYXItc2VhcmNoLWlucHV0LmZvcm0tY29udHJvbDphY3RpdmV7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsMC4xKTtiYWNrZ3JvdW5kOnJnYmEoMjU1LDI1NSwyNTUsMC45KX0ubWFpbi1oZWFkZXIgI25hdmJhci1zZWFyY2gtaW5wdXQuZm9ybS1jb250cm9sOjotbW96LXBsYWNlaG9sZGVye2NvbG9yOiNjY2M7b3BhY2l0eToxfS5tYWluLWhlYWRlciAjbmF2YmFyLXNlYXJjaC1pbnB1dC5mb3JtLWNvbnRyb2w6LW1zLWlucHV0LXBsYWNlaG9sZGVye2NvbG9yOiNjY2N9Lm1haW4taGVhZGVyICNuYXZiYXItc2VhcmNoLWlucHV0LmZvcm0tY29udHJvbDo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlcntjb2xvcjojY2NjfS5tYWluLWhlYWRlciAubmF2YmFyLWN1c3RvbS1tZW51LC5tYWluLWhlYWRlciAubmF2YmFyLXJpZ2h0e2Zsb2F0OnJpZ2h0fUBtZWRpYSAobWF4LXdpZHRoOjk5MXB4KXsubWFpbi1oZWFkZXIgLm5hdmJhci1jdXN0b20tbWVudSBhLC5tYWluLWhlYWRlciAubmF2YmFyLXJpZ2h0IGF7Y29sb3I6aW5oZXJpdDtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50fX1AbWVkaWEgKG1heC13aWR0aDo3NjdweCl7Lm1haW4taGVhZGVyIC5uYXZiYXItcmlnaHR7ZmxvYXQ6bm9uZX0ubmF2YmFyLWNvbGxhcHNlIC5tYWluLWhlYWRlciAubmF2YmFyLXJpZ2h0e21hcmdpbjo3LjVweCAtMTVweH0ubWFpbi1oZWFkZXIgLm5hdmJhci1yaWdodD5saXtjb2xvcjppbmhlcml0O2JvcmRlcjowfX0ubWFpbi1oZWFkZXIgLnNpZGViYXItdG9nZ2xle2Zsb2F0OmxlZnQ7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtiYWNrZ3JvdW5kLWltYWdlOm5vbmU7cGFkZGluZzoxNXB4IDE1cHg7Zm9udC1mYW1pbHk6Zm9udEF3ZXNvbWV9Lm1haW4taGVhZGVyIC5zaWRlYmFyLXRvZ2dsZTpiZWZvcmV7Y29udGVudDpcIlxcZjBjOVwifS5tYWluLWhlYWRlciAuc2lkZWJhci10b2dnbGU6aG92ZXJ7Y29sb3I6I2ZmZn0ubWFpbi1oZWFkZXIgLnNpZGViYXItdG9nZ2xlOmZvY3VzLC5tYWluLWhlYWRlciAuc2lkZWJhci10b2dnbGU6YWN0aXZle2JhY2tncm91bmQ6dHJhbnNwYXJlbnR9Lm1haW4taGVhZGVyIC5zaWRlYmFyLXRvZ2dsZSAuaWNvbi1iYXJ7ZGlzcGxheTpub25lfS5tYWluLWhlYWRlciAubmF2YmFyIC5uYXY+bGkudXNlcj5hPi5mYSwubWFpbi1oZWFkZXIgLm5hdmJhciAubmF2PmxpLnVzZXI+YT4uZ2x5cGhpY29uLC5tYWluLWhlYWRlciAubmF2YmFyIC5uYXY+bGkudXNlcj5hPi5pb257bWFyZ2luLXJpZ2h0OjVweH0ubWFpbi1oZWFkZXIgLm5hdmJhciAubmF2PmxpPmE+LmxhYmVse3Bvc2l0aW9uOmFic29sdXRlO3RvcDo5cHg7cmlnaHQ6N3B4O3RleHQtYWxpZ246Y2VudGVyO2ZvbnQtc2l6ZTo5cHg7cGFkZGluZzoycHggM3B4O2xpbmUtaGVpZ2h0Oi45fS5tYWluLWhlYWRlciAubG9nb3std2Via2l0LXRyYW5zaXRpb246d2lkdGggLjNzIGVhc2UtaW4tb3V0Oy1vLXRyYW5zaXRpb246d2lkdGggLjNzIGVhc2UtaW4tb3V0O3RyYW5zaXRpb246d2lkdGggLjNzIGVhc2UtaW4tb3V0O2Rpc3BsYXk6YmxvY2s7ZmxvYXQ6bGVmdDtoZWlnaHQ6NTBweDtmb250LXNpemU6MjBweDtsaW5lLWhlaWdodDo1MHB4O3RleHQtYWxpZ246Y2VudGVyO3dpZHRoOjIzMHB4O2ZvbnQtZmFtaWx5OlwiSGVsdmV0aWNhIE5ldWVcIixIZWx2ZXRpY2EsQXJpYWwsc2Fucy1zZXJpZjtwYWRkaW5nOjAgMTVweDtmb250LXdlaWdodDozMDA7b3ZlcmZsb3c6aGlkZGVufS5tYWluLWhlYWRlciAubG9nbyAubG9nby1sZ3tkaXNwbGF5OmJsb2NrfS5tYWluLWhlYWRlciAubG9nbyAubG9nby1taW5pe2Rpc3BsYXk6bm9uZX0ubWFpbi1oZWFkZXIgLm5hdmJhci1icmFuZHtjb2xvcjojZmZmfS5jb250ZW50LWhlYWRlcntwb3NpdGlvbjpyZWxhdGl2ZTtwYWRkaW5nOjE1cHggMTVweCAwIDE1cHh9LmNvbnRlbnQtaGVhZGVyPmgxe21hcmdpbjowO2ZvbnQtc2l6ZToyNHB4fS5jb250ZW50LWhlYWRlcj5oMT5zbWFsbHtmb250LXNpemU6MTVweDtkaXNwbGF5OmlubGluZS1ibG9jaztwYWRkaW5nLWxlZnQ6NHB4O2ZvbnQtd2VpZ2h0OjMwMH0uY29udGVudC1oZWFkZXI+LmJyZWFkY3J1bWJ7ZmxvYXQ6cmlnaHQ7YmFja2dyb3VuZDp0cmFuc3BhcmVudDttYXJnaW4tdG9wOjA7bWFyZ2luLWJvdHRvbTowO2ZvbnQtc2l6ZToxMnB4O3BhZGRpbmc6N3B4IDVweDtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MTVweDtyaWdodDoxMHB4O2JvcmRlci1yYWRpdXM6MnB4fS5jb250ZW50LWhlYWRlcj4uYnJlYWRjcnVtYj5saT5he2NvbG9yOiM0NDQ7dGV4dC1kZWNvcmF0aW9uOm5vbmU7ZGlzcGxheTppbmxpbmUtYmxvY2t9LmNvbnRlbnQtaGVhZGVyPi5icmVhZGNydW1iPmxpPmE+LmZhLC5jb250ZW50LWhlYWRlcj4uYnJlYWRjcnVtYj5saT5hPi5nbHlwaGljb24sLmNvbnRlbnQtaGVhZGVyPi5icmVhZGNydW1iPmxpPmE+LmlvbnttYXJnaW4tcmlnaHQ6NXB4fS5jb250ZW50LWhlYWRlcj4uYnJlYWRjcnVtYj5saStsaTpiZWZvcmV7Y29udGVudDonPlxcMDBhMCd9QG1lZGlhIChtYXgtd2lkdGg6OTkxcHgpey5jb250ZW50LWhlYWRlcj4uYnJlYWRjcnVtYntwb3NpdGlvbjpyZWxhdGl2ZTttYXJnaW4tdG9wOjVweDt0b3A6MDtyaWdodDowO2Zsb2F0Om5vbmU7YmFja2dyb3VuZDojZDJkNmRlO3BhZGRpbmctbGVmdDoxMHB4fS5jb250ZW50LWhlYWRlcj4uYnJlYWRjcnVtYiBsaTpiZWZvcmV7Y29sb3I6Izk3YTBiM319Lm5hdmJhci10b2dnbGV7Y29sb3I6I2ZmZjtib3JkZXI6MDttYXJnaW46MDtwYWRkaW5nOjE1cHggMTVweH1AbWVkaWEgKG1heC13aWR0aDo5OTFweCl7Lm5hdmJhci1jdXN0b20tbWVudSAubmF2YmFyLW5hdj5saXtmbG9hdDpsZWZ0fS5uYXZiYXItY3VzdG9tLW1lbnUgLm5hdmJhci1uYXZ7bWFyZ2luOjA7ZmxvYXQ6bGVmdH0ubmF2YmFyLWN1c3RvbS1tZW51IC5uYXZiYXItbmF2PmxpPmF7cGFkZGluZy10b3A6MTVweDtwYWRkaW5nLWJvdHRvbToxNXB4O2xpbmUtaGVpZ2h0OjIwcHh9fUBtZWRpYSAobWF4LXdpZHRoOjc2N3B4KXsubWFpbi1oZWFkZXJ7cG9zaXRpb246cmVsYXRpdmV9Lm1haW4taGVhZGVyIC5sb2dvLC5tYWluLWhlYWRlciAubmF2YmFye3dpZHRoOjEwMCU7ZmxvYXQ6bm9uZX0ubWFpbi1oZWFkZXIgLm5hdmJhcnttYXJnaW46MH0ubWFpbi1oZWFkZXIgLm5hdmJhci1jdXN0b20tbWVudXtmbG9hdDpyaWdodH19QG1lZGlhIChtYXgtd2lkdGg6OTkxcHgpey5uYXZiYXItY29sbGFwc2UucHVsbC1sZWZ0e2Zsb2F0Om5vbmUgIWltcG9ydGFudH0ubmF2YmFyLWNvbGxhcHNlLnB1bGwtbGVmdCsubmF2YmFyLWN1c3RvbS1tZW51e2Rpc3BsYXk6YmxvY2s7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7cmlnaHQ6NDBweH19Lm1haW4tc2lkZWJhcntwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtsZWZ0OjA7cGFkZGluZy10b3A6NTBweDttaW4taGVpZ2h0OjEwMCU7d2lkdGg6MjMwcHg7ei1pbmRleDo4MTA7LXdlYmtpdC10cmFuc2l0aW9uOi13ZWJraXQtdHJhbnNmb3JtIC4zcyBlYXNlLWluLW91dCx3aWR0aCAuM3MgZWFzZS1pbi1vdXQ7LW1vei10cmFuc2l0aW9uOi1tb3otdHJhbnNmb3JtIC4zcyBlYXNlLWluLW91dCx3aWR0aCAuM3MgZWFzZS1pbi1vdXQ7LW8tdHJhbnNpdGlvbjotby10cmFuc2Zvcm0gLjNzIGVhc2UtaW4tb3V0LHdpZHRoIC4zcyBlYXNlLWluLW91dDt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuM3MgZWFzZS1pbi1vdXQsd2lkdGggLjNzIGVhc2UtaW4tb3V0fUBtZWRpYSAobWF4LXdpZHRoOjc2N3B4KXsubWFpbi1zaWRlYmFye3BhZGRpbmctdG9wOjEwMHB4fX1AbWVkaWEgKG1heC13aWR0aDo3NjdweCl7Lm1haW4tc2lkZWJhcnstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUoLTIzMHB4LCAwKTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZSgtMjMwcHgsIDApOy1vLXRyYW5zZm9ybTp0cmFuc2xhdGUoLTIzMHB4LCAwKTt0cmFuc2Zvcm06dHJhbnNsYXRlKC0yMzBweCwgMCl9fUBtZWRpYSAobWluLXdpZHRoOjc2OHB4KXsuc2lkZWJhci1jb2xsYXBzZSAubWFpbi1zaWRlYmFyey13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZSgtMjMwcHgsIDApOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlKC0yMzBweCwgMCk7LW8tdHJhbnNmb3JtOnRyYW5zbGF0ZSgtMjMwcHgsIDApO3RyYW5zZm9ybTp0cmFuc2xhdGUoLTIzMHB4LCAwKX19QG1lZGlhIChtYXgtd2lkdGg6NzY3cHgpey5zaWRlYmFyLW9wZW4gLm1haW4tc2lkZWJhcnstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUoMCwgMCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGUoMCwgMCk7LW8tdHJhbnNmb3JtOnRyYW5zbGF0ZSgwLCAwKTt0cmFuc2Zvcm06dHJhbnNsYXRlKDAsIDApfX0uc2lkZWJhcntwYWRkaW5nLWJvdHRvbToxMHB4fS5zaWRlYmFyLWZvcm0gaW5wdXQ6Zm9jdXN7Ym9yZGVyLWNvbG9yOnRyYW5zcGFyZW50fS51c2VyLXBhbmVse3Bvc2l0aW9uOnJlbGF0aXZlO3dpZHRoOjEwMCU7cGFkZGluZzoxMHB4O292ZXJmbG93OmhpZGRlbn0udXNlci1wYW5lbDpiZWZvcmUsLnVzZXItcGFuZWw6YWZ0ZXJ7Y29udGVudDpcIiBcIjtkaXNwbGF5OnRhYmxlfS51c2VyLXBhbmVsOmFmdGVye2NsZWFyOmJvdGh9LnVzZXItcGFuZWw+LmltYWdlPmltZ3t3aWR0aDoxMDAlO21heC13aWR0aDo0NXB4O2hlaWdodDphdXRvfS51c2VyLXBhbmVsPi5pbmZve3BhZGRpbmc6NXB4IDVweCA1cHggMTVweDtsaW5lLWhlaWdodDoxO3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6NTVweH0udXNlci1wYW5lbD4uaW5mbz5we2ZvbnQtd2VpZ2h0OjYwMDttYXJnaW4tYm90dG9tOjlweH0udXNlci1wYW5lbD4uaW5mbz5he3RleHQtZGVjb3JhdGlvbjpub25lO3BhZGRpbmctcmlnaHQ6NXB4O21hcmdpbi10b3A6M3B4O2ZvbnQtc2l6ZToxMXB4fS51c2VyLXBhbmVsPi5pbmZvPmE+LmZhLC51c2VyLXBhbmVsPi5pbmZvPmE+LmlvbiwudXNlci1wYW5lbD4uaW5mbz5hPi5nbHlwaGljb257bWFyZ2luLXJpZ2h0OjNweH0uc2lkZWJhci1tZW51e2xpc3Qtc3R5bGU6bm9uZTttYXJnaW46MDtwYWRkaW5nOjB9LnNpZGViYXItbWVudT5saXtwb3NpdGlvbjpyZWxhdGl2ZTttYXJnaW46MDtwYWRkaW5nOjB9LnNpZGViYXItbWVudT5saT5he3BhZGRpbmc6MTJweCA1cHggMTJweCAxNXB4O2Rpc3BsYXk6YmxvY2t9LnNpZGViYXItbWVudT5saT5hPi5mYSwuc2lkZWJhci1tZW51PmxpPmE+LmdseXBoaWNvbiwuc2lkZWJhci1tZW51PmxpPmE+Lmlvbnt3aWR0aDoyMHB4fS5zaWRlYmFyLW1lbnU+bGkgLmxhYmVsLC5zaWRlYmFyLW1lbnU+bGkgLmJhZGdle21hcmdpbi1yaWdodDo1cHh9LnNpZGViYXItbWVudT5saSAuYmFkZ2V7bWFyZ2luLXRvcDozcHh9LnNpZGViYXItbWVudSBsaS5oZWFkZXJ7cGFkZGluZzoxMHB4IDI1cHggMTBweCAxNXB4O2ZvbnQtc2l6ZToxMnB4fS5zaWRlYmFyLW1lbnUgbGk+YT4uZmEtYW5nbGUtbGVmdCwuc2lkZWJhci1tZW51IGxpPmE+LnB1bGwtcmlnaHQtY29udGFpbmVyPi5mYS1hbmdsZS1sZWZ0e3dpZHRoOmF1dG87aGVpZ2h0OmF1dG87cGFkZGluZzowO21hcmdpbi1yaWdodDoxMHB4Oy13ZWJraXQtdHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjVzIGVhc2U7LW8tdHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjVzIGVhc2U7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjVzIGVhc2V9LnNpZGViYXItbWVudSBsaT5hPi5mYS1hbmdsZS1sZWZ0e3Bvc2l0aW9uOmFic29sdXRlO3RvcDo1MCU7cmlnaHQ6MTBweDttYXJnaW4tdG9wOi04cHh9LnNpZGViYXItbWVudSAubWVudS1vcGVuPmE+LmZhLWFuZ2xlLWxlZnQsLnNpZGViYXItbWVudSAubWVudS1vcGVuPmE+LnB1bGwtcmlnaHQtY29udGFpbmVyPi5mYS1hbmdsZS1sZWZ0ey13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgtOTBkZWcpOy1tcy10cmFuc2Zvcm06cm90YXRlKC05MGRlZyk7LW8tdHJhbnNmb3JtOnJvdGF0ZSgtOTBkZWcpO3RyYW5zZm9ybTpyb3RhdGUoLTkwZGVnKX0uc2lkZWJhci1tZW51IC5hY3RpdmU+LnRyZWV2aWV3LW1lbnV7ZGlzcGxheTpibG9ja31AbWVkaWEgKG1pbi13aWR0aDo3NjhweCl7LnNpZGViYXItbWluaS5zaWRlYmFyLWNvbGxhcHNlIC5jb250ZW50LXdyYXBwZXIsLnNpZGViYXItbWluaS5zaWRlYmFyLWNvbGxhcHNlIC5yaWdodC1zaWRlLC5zaWRlYmFyLW1pbmkuc2lkZWJhci1jb2xsYXBzZSAubWFpbi1mb290ZXJ7bWFyZ2luLWxlZnQ6NTBweCAhaW1wb3J0YW50O3otaW5kZXg6ODQwfS5zaWRlYmFyLW1pbmkuc2lkZWJhci1jb2xsYXBzZSAubWFpbi1zaWRlYmFyey13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZSgwLCAwKTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZSgwLCAwKTstby10cmFuc2Zvcm06dHJhbnNsYXRlKDAsIDApO3RyYW5zZm9ybTp0cmFuc2xhdGUoMCwgMCk7d2lkdGg6NTBweCAhaW1wb3J0YW50O3otaW5kZXg6ODUwfS5zaWRlYmFyLW1pbmkuc2lkZWJhci1jb2xsYXBzZSAuc2lkZWJhci1tZW51Pmxpe3Bvc2l0aW9uOnJlbGF0aXZlfS5zaWRlYmFyLW1pbmkuc2lkZWJhci1jb2xsYXBzZSAuc2lkZWJhci1tZW51PmxpPmF7bWFyZ2luLXJpZ2h0OjB9LnNpZGViYXItbWluaS5zaWRlYmFyLWNvbGxhcHNlIC5zaWRlYmFyLW1lbnU+bGk+YT5zcGFue2JvcmRlci10b3AtcmlnaHQtcmFkaXVzOjRweH0uc2lkZWJhci1taW5pLnNpZGViYXItY29sbGFwc2UgLnNpZGViYXItbWVudT5saTpub3QoLnRyZWV2aWV3KT5hPnNwYW57Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6NHB4fS5zaWRlYmFyLW1pbmkuc2lkZWJhci1jb2xsYXBzZSAuc2lkZWJhci1tZW51PmxpPi50cmVldmlldy1tZW51e3BhZGRpbmctdG9wOjVweDtwYWRkaW5nLWJvdHRvbTo1cHg7Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6NHB4fS5zaWRlYmFyLW1pbmkuc2lkZWJhci1jb2xsYXBzZSAubWFpbi1zaWRlYmFyIC51c2VyLXBhbmVsPi5pbmZvLC5zaWRlYmFyLW1pbmkuc2lkZWJhci1jb2xsYXBzZSAuc2lkZWJhci1mb3JtLC5zaWRlYmFyLW1pbmkuc2lkZWJhci1jb2xsYXBzZSAuc2lkZWJhci1tZW51PmxpPmE+c3Bhbiwuc2lkZWJhci1taW5pLnNpZGViYXItY29sbGFwc2UgLnNpZGViYXItbWVudT5saT4udHJlZXZpZXctbWVudSwuc2lkZWJhci1taW5pLnNpZGViYXItY29sbGFwc2UgLnNpZGViYXItbWVudT5saT5hPi5wdWxsLXJpZ2h0LC5zaWRlYmFyLW1pbmkuc2lkZWJhci1jb2xsYXBzZSAuc2lkZWJhci1tZW51IGxpLmhlYWRlcntkaXNwbGF5Om5vbmUgIWltcG9ydGFudDstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVaKDApfS5zaWRlYmFyLW1pbmkuc2lkZWJhci1jb2xsYXBzZSAubWFpbi1oZWFkZXIgLmxvZ297d2lkdGg6NTBweH0uc2lkZWJhci1taW5pLnNpZGViYXItY29sbGFwc2UgLm1haW4taGVhZGVyIC5sb2dvPi5sb2dvLW1pbml7ZGlzcGxheTpibG9jazttYXJnaW4tbGVmdDotMTVweDttYXJnaW4tcmlnaHQ6LTE1cHg7Zm9udC1zaXplOjE4cHh9LnNpZGViYXItbWluaS5zaWRlYmFyLWNvbGxhcHNlIC5tYWluLWhlYWRlciAubG9nbz4ubG9nby1sZ3tkaXNwbGF5Om5vbmV9LnNpZGViYXItbWluaS5zaWRlYmFyLWNvbGxhcHNlIC5tYWluLWhlYWRlciAubmF2YmFye21hcmdpbi1sZWZ0OjUwcHh9fUBtZWRpYSAobWluLXdpZHRoOjc2OHB4KXsuc2lkZWJhci1taW5pOm5vdCguc2lkZWJhci1taW5pLWV4cGFuZC1mZWF0dXJlKS5zaWRlYmFyLWNvbGxhcHNlIC5zaWRlYmFyLW1lbnU+bGk6aG92ZXI+YT5zcGFuOm5vdCgucHVsbC1yaWdodCksLnNpZGViYXItbWluaTpub3QoLnNpZGViYXItbWluaS1leHBhbmQtZmVhdHVyZSkuc2lkZWJhci1jb2xsYXBzZSAuc2lkZWJhci1tZW51PmxpOmhvdmVyPi50cmVldmlldy1tZW51e2Rpc3BsYXk6YmxvY2sgIWltcG9ydGFudDtwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDoxODBweDtsZWZ0OjUwcHh9LnNpZGViYXItbWluaTpub3QoLnNpZGViYXItbWluaS1leHBhbmQtZmVhdHVyZSkuc2lkZWJhci1jb2xsYXBzZSAuc2lkZWJhci1tZW51PmxpOmhvdmVyPmE+c3Bhbnt0b3A6MDttYXJnaW4tbGVmdDotM3B4O3BhZGRpbmc6MTJweCA1cHggMTJweCAyMHB4O2JhY2tncm91bmQtY29sb3I6aW5oZXJpdH0uc2lkZWJhci1taW5pOm5vdCguc2lkZWJhci1taW5pLWV4cGFuZC1mZWF0dXJlKS5zaWRlYmFyLWNvbGxhcHNlIC5zaWRlYmFyLW1lbnU+bGk6aG92ZXI+YT4ucHVsbC1yaWdodC1jb250YWluZXJ7cG9zaXRpb246cmVsYXRpdmUgIWltcG9ydGFudDtmbG9hdDpyaWdodDt3aWR0aDphdXRvICFpbXBvcnRhbnQ7bGVmdDoxODBweCAhaW1wb3J0YW50O3RvcDotMjJweCAhaW1wb3J0YW50O3otaW5kZXg6OTAwfS5zaWRlYmFyLW1pbmk6bm90KC5zaWRlYmFyLW1pbmktZXhwYW5kLWZlYXR1cmUpLnNpZGViYXItY29sbGFwc2UgLnNpZGViYXItbWVudT5saTpob3Zlcj5hPi5wdWxsLXJpZ2h0LWNvbnRhaW5lcj4ubGFiZWw6bm90KDpmaXJzdC1vZi10eXBlKXtkaXNwbGF5Om5vbmV9LnNpZGViYXItbWluaTpub3QoLnNpZGViYXItbWluaS1leHBhbmQtZmVhdHVyZSkuc2lkZWJhci1jb2xsYXBzZSAuc2lkZWJhci1tZW51PmxpOmhvdmVyPi50cmVldmlldy1tZW51e3RvcDo0NHB4O21hcmdpbi1sZWZ0OjB9fS5zaWRlYmFyLWV4cGFuZGVkLW9uLWhvdmVyIC5tYWluLWZvb3Rlciwuc2lkZWJhci1leHBhbmRlZC1vbi1ob3ZlciAuY29udGVudC13cmFwcGVye21hcmdpbi1sZWZ0OjUwcHh9LnNpZGViYXItZXhwYW5kZWQtb24taG92ZXIgLm1haW4tc2lkZWJhcntib3gtc2hhZG93OjNweCAwIDhweCByZ2JhKDAsMCwwLDAuMTI1KX0uc2lkZWJhci1tZW51LC5tYWluLXNpZGViYXIgLnVzZXItcGFuZWwsLnNpZGViYXItbWVudT5saS5oZWFkZXJ7d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbn0uc2lkZWJhci1tZW51OmhvdmVye292ZXJmbG93OnZpc2libGV9LnNpZGViYXItZm9ybSwuc2lkZWJhci1tZW51PmxpLmhlYWRlcntvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzpjbGlwfS5zaWRlYmFyLW1lbnUgbGk+YXtwb3NpdGlvbjpyZWxhdGl2ZX0uc2lkZWJhci1tZW51IGxpPmE+LnB1bGwtcmlnaHQtY29udGFpbmVye3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OjEwcHg7dG9wOjUwJTttYXJnaW4tdG9wOi03cHh9LmNvbnRyb2wtc2lkZWJhci1iZ3twb3NpdGlvbjpmaXhlZDt6LWluZGV4OjEwMDA7Ym90dG9tOjB9LmNvbnRyb2wtc2lkZWJhci1iZywuY29udHJvbC1zaWRlYmFye3RvcDowO3JpZ2h0Oi0yMzBweDt3aWR0aDoyMzBweDstd2Via2l0LXRyYW5zaXRpb246cmlnaHQgLjNzIGVhc2UtaW4tb3V0Oy1vLXRyYW5zaXRpb246cmlnaHQgLjNzIGVhc2UtaW4tb3V0O3RyYW5zaXRpb246cmlnaHQgLjNzIGVhc2UtaW4tb3V0fS5jb250cm9sLXNpZGViYXJ7cG9zaXRpb246YWJzb2x1dGU7cGFkZGluZy10b3A6NTBweDt6LWluZGV4OjEwMTB9QG1lZGlhIChtYXgtd2lkdGg6NzY3cHgpey5jb250cm9sLXNpZGViYXJ7cGFkZGluZy10b3A6MTAwcHh9fS5jb250cm9sLXNpZGViYXI+LnRhYi1jb250ZW50e3BhZGRpbmc6MTBweCAxNXB4fS5jb250cm9sLXNpZGViYXIuY29udHJvbC1zaWRlYmFyLW9wZW4sLmNvbnRyb2wtc2lkZWJhci5jb250cm9sLXNpZGViYXItb3BlbisuY29udHJvbC1zaWRlYmFyLWJne3JpZ2h0OjB9LmNvbnRyb2wtc2lkZWJhci1vcGVuIC5jb250cm9sLXNpZGViYXItYmcsLmNvbnRyb2wtc2lkZWJhci1vcGVuIC5jb250cm9sLXNpZGViYXJ7cmlnaHQ6MH1AbWVkaWEgKG1pbi13aWR0aDo3NjhweCl7LmNvbnRyb2wtc2lkZWJhci1vcGVuIC5jb250ZW50LXdyYXBwZXIsLmNvbnRyb2wtc2lkZWJhci1vcGVuIC5yaWdodC1zaWRlLC5jb250cm9sLXNpZGViYXItb3BlbiAubWFpbi1mb290ZXJ7bWFyZ2luLXJpZ2h0OjIzMHB4fX0uZml4ZWQgLmNvbnRyb2wtc2lkZWJhcntwb3NpdGlvbjpmaXhlZDtoZWlnaHQ6MTAwJTtvdmVyZmxvdy15OmF1dG87cGFkZGluZy1ib3R0b206NTBweH0ubmF2LXRhYnMuY29udHJvbC1zaWRlYmFyLXRhYnM+bGk6Zmlyc3Qtb2YtdHlwZT5hLC5uYXYtdGFicy5jb250cm9sLXNpZGViYXItdGFicz5saTpmaXJzdC1vZi10eXBlPmE6aG92ZXIsLm5hdi10YWJzLmNvbnRyb2wtc2lkZWJhci10YWJzPmxpOmZpcnN0LW9mLXR5cGU+YTpmb2N1c3tib3JkZXItbGVmdC13aWR0aDowfS5uYXYtdGFicy5jb250cm9sLXNpZGViYXItdGFicz5saT5he2JvcmRlci1yYWRpdXM6MH0ubmF2LXRhYnMuY29udHJvbC1zaWRlYmFyLXRhYnM+bGk+YSwubmF2LXRhYnMuY29udHJvbC1zaWRlYmFyLXRhYnM+bGk+YTpob3Zlcntib3JkZXItdG9wOm5vbmU7Ym9yZGVyLXJpZ2h0Om5vbmU7Ym9yZGVyLWxlZnQ6MXB4IHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1ib3R0b206MXB4IHNvbGlkIHRyYW5zcGFyZW50fS5uYXYtdGFicy5jb250cm9sLXNpZGViYXItdGFicz5saT5hIC5pY29ue2ZvbnQtc2l6ZToxNnB4fS5uYXYtdGFicy5jb250cm9sLXNpZGViYXItdGFicz5saS5hY3RpdmU+YSwubmF2LXRhYnMuY29udHJvbC1zaWRlYmFyLXRhYnM+bGkuYWN0aXZlPmE6aG92ZXIsLm5hdi10YWJzLmNvbnRyb2wtc2lkZWJhci10YWJzPmxpLmFjdGl2ZT5hOmZvY3VzLC5uYXYtdGFicy5jb250cm9sLXNpZGViYXItdGFicz5saS5hY3RpdmU+YTphY3RpdmV7Ym9yZGVyLXRvcDpub25lO2JvcmRlci1yaWdodDpub25lO2JvcmRlci1ib3R0b206bm9uZX1AbWVkaWEgKG1heC13aWR0aDo3NjhweCl7Lm5hdi10YWJzLmNvbnRyb2wtc2lkZWJhci10YWJze2Rpc3BsYXk6dGFibGV9Lm5hdi10YWJzLmNvbnRyb2wtc2lkZWJhci10YWJzPmxpe2Rpc3BsYXk6dGFibGUtY2VsbH19LmNvbnRyb2wtc2lkZWJhci1oZWFkaW5ne2ZvbnQtd2VpZ2h0OjQwMDtmb250LXNpemU6MTZweDtwYWRkaW5nOjEwcHggMDttYXJnaW4tYm90dG9tOjEwcHh9LmNvbnRyb2wtc2lkZWJhci1zdWJoZWFkaW5ne2Rpc3BsYXk6YmxvY2s7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc2l6ZToxNHB4fS5jb250cm9sLXNpZGViYXItbWVudXtsaXN0LXN0eWxlOm5vbmU7cGFkZGluZzowO21hcmdpbjowIC0xNXB4fS5jb250cm9sLXNpZGViYXItbWVudT5saT5he2Rpc3BsYXk6YmxvY2s7cGFkZGluZzoxMHB4IDE1cHh9LmNvbnRyb2wtc2lkZWJhci1tZW51PmxpPmE6YmVmb3JlLC5jb250cm9sLXNpZGViYXItbWVudT5saT5hOmFmdGVye2NvbnRlbnQ6XCIgXCI7ZGlzcGxheTp0YWJsZX0uY29udHJvbC1zaWRlYmFyLW1lbnU+bGk+YTphZnRlcntjbGVhcjpib3RofS5jb250cm9sLXNpZGViYXItbWVudT5saT5hPi5jb250cm9sLXNpZGViYXItc3ViaGVhZGluZ3ttYXJnaW4tdG9wOjB9LmNvbnRyb2wtc2lkZWJhci1tZW51IC5tZW51LWljb257ZmxvYXQ6bGVmdDt3aWR0aDozNXB4O2hlaWdodDozNXB4O2JvcmRlci1yYWRpdXM6NTAlO3RleHQtYWxpZ246Y2VudGVyO2xpbmUtaGVpZ2h0OjM1cHh9LmNvbnRyb2wtc2lkZWJhci1tZW51IC5tZW51LWluZm97bWFyZ2luLWxlZnQ6NDVweDttYXJnaW4tdG9wOjNweH0uY29udHJvbC1zaWRlYmFyLW1lbnUgLm1lbnUtaW5mbz4uY29udHJvbC1zaWRlYmFyLXN1YmhlYWRpbmd7bWFyZ2luOjB9LmNvbnRyb2wtc2lkZWJhci1tZW51IC5tZW51LWluZm8+cHttYXJnaW46MDtmb250LXNpemU6MTFweH0uY29udHJvbC1zaWRlYmFyLW1lbnUgLnByb2dyZXNze21hcmdpbjowfS5jb250cm9sLXNpZGViYXItZGFya3tjb2xvcjojYjhjN2NlfS5jb250cm9sLXNpZGViYXItZGFyaywuY29udHJvbC1zaWRlYmFyLWRhcmsrLmNvbnRyb2wtc2lkZWJhci1iZ3tiYWNrZ3JvdW5kOiMyMjJkMzJ9LmNvbnRyb2wtc2lkZWJhci1kYXJrIC5uYXYtdGFicy5jb250cm9sLXNpZGViYXItdGFic3tib3JkZXItYm90dG9tOiMxYzI1Mjl9LmNvbnRyb2wtc2lkZWJhci1kYXJrIC5uYXYtdGFicy5jb250cm9sLXNpZGViYXItdGFicz5saT5he2JhY2tncm91bmQ6IzE4MWYyMztjb2xvcjojYjhjN2NlfS5jb250cm9sLXNpZGViYXItZGFyayAubmF2LXRhYnMuY29udHJvbC1zaWRlYmFyLXRhYnM+bGk+YSwuY29udHJvbC1zaWRlYmFyLWRhcmsgLm5hdi10YWJzLmNvbnRyb2wtc2lkZWJhci10YWJzPmxpPmE6aG92ZXIsLmNvbnRyb2wtc2lkZWJhci1kYXJrIC5uYXYtdGFicy5jb250cm9sLXNpZGViYXItdGFicz5saT5hOmZvY3Vze2JvcmRlci1sZWZ0LWNvbG9yOiMxNDFhMWQ7Ym9yZGVyLWJvdHRvbS1jb2xvcjojMTQxYTFkfS5jb250cm9sLXNpZGViYXItZGFyayAubmF2LXRhYnMuY29udHJvbC1zaWRlYmFyLXRhYnM+bGk+YTpob3ZlciwuY29udHJvbC1zaWRlYmFyLWRhcmsgLm5hdi10YWJzLmNvbnRyb2wtc2lkZWJhci10YWJzPmxpPmE6Zm9jdXMsLmNvbnRyb2wtc2lkZWJhci1kYXJrIC5uYXYtdGFicy5jb250cm9sLXNpZGViYXItdGFicz5saT5hOmFjdGl2ZXtiYWNrZ3JvdW5kOiMxYzI1Mjl9LmNvbnRyb2wtc2lkZWJhci1kYXJrIC5uYXYtdGFicy5jb250cm9sLXNpZGViYXItdGFicz5saT5hOmhvdmVye2NvbG9yOiNmZmZ9LmNvbnRyb2wtc2lkZWJhci1kYXJrIC5uYXYtdGFicy5jb250cm9sLXNpZGViYXItdGFicz5saS5hY3RpdmU+YSwuY29udHJvbC1zaWRlYmFyLWRhcmsgLm5hdi10YWJzLmNvbnRyb2wtc2lkZWJhci10YWJzPmxpLmFjdGl2ZT5hOmhvdmVyLC5jb250cm9sLXNpZGViYXItZGFyayAubmF2LXRhYnMuY29udHJvbC1zaWRlYmFyLXRhYnM+bGkuYWN0aXZlPmE6Zm9jdXMsLmNvbnRyb2wtc2lkZWJhci1kYXJrIC5uYXYtdGFicy5jb250cm9sLXNpZGViYXItdGFicz5saS5hY3RpdmU+YTphY3RpdmV7YmFja2dyb3VuZDojMjIyZDMyO2NvbG9yOiNmZmZ9LmNvbnRyb2wtc2lkZWJhci1kYXJrIC5jb250cm9sLXNpZGViYXItaGVhZGluZywuY29udHJvbC1zaWRlYmFyLWRhcmsgLmNvbnRyb2wtc2lkZWJhci1zdWJoZWFkaW5ne2NvbG9yOiNmZmZ9LmNvbnRyb2wtc2lkZWJhci1kYXJrIC5jb250cm9sLXNpZGViYXItbWVudT5saT5hOmhvdmVye2JhY2tncm91bmQ6IzFlMjgyY30uY29udHJvbC1zaWRlYmFyLWRhcmsgLmNvbnRyb2wtc2lkZWJhci1tZW51PmxpPmEgLm1lbnUtaW5mbz5we2NvbG9yOiNiOGM3Y2V9LmNvbnRyb2wtc2lkZWJhci1saWdodHtjb2xvcjojNWU1ZTVlfS5jb250cm9sLXNpZGViYXItbGlnaHQsLmNvbnRyb2wtc2lkZWJhci1saWdodCsuY29udHJvbC1zaWRlYmFyLWJne2JhY2tncm91bmQ6I2Y5ZmFmYztib3JkZXItbGVmdDoxcHggc29saWQgI2QyZDZkZX0uY29udHJvbC1zaWRlYmFyLWxpZ2h0IC5uYXYtdGFicy5jb250cm9sLXNpZGViYXItdGFic3tib3JkZXItYm90dG9tOiNkMmQ2ZGV9LmNvbnRyb2wtc2lkZWJhci1saWdodCAubmF2LXRhYnMuY29udHJvbC1zaWRlYmFyLXRhYnM+bGk+YXtiYWNrZ3JvdW5kOiNlOGVjZjQ7Y29sb3I6IzQ0NH0uY29udHJvbC1zaWRlYmFyLWxpZ2h0IC5uYXYtdGFicy5jb250cm9sLXNpZGViYXItdGFicz5saT5hLC5jb250cm9sLXNpZGViYXItbGlnaHQgLm5hdi10YWJzLmNvbnRyb2wtc2lkZWJhci10YWJzPmxpPmE6aG92ZXIsLmNvbnRyb2wtc2lkZWJhci1saWdodCAubmF2LXRhYnMuY29udHJvbC1zaWRlYmFyLXRhYnM+bGk+YTpmb2N1c3tib3JkZXItbGVmdC1jb2xvcjojZDJkNmRlO2JvcmRlci1ib3R0b20tY29sb3I6I2QyZDZkZX0uY29udHJvbC1zaWRlYmFyLWxpZ2h0IC5uYXYtdGFicy5jb250cm9sLXNpZGViYXItdGFicz5saT5hOmhvdmVyLC5jb250cm9sLXNpZGViYXItbGlnaHQgLm5hdi10YWJzLmNvbnRyb2wtc2lkZWJhci10YWJzPmxpPmE6Zm9jdXMsLmNvbnRyb2wtc2lkZWJhci1saWdodCAubmF2LXRhYnMuY29udHJvbC1zaWRlYmFyLXRhYnM+bGk+YTphY3RpdmV7YmFja2dyb3VuZDojZWZmMWY3fS5jb250cm9sLXNpZGViYXItbGlnaHQgLm5hdi10YWJzLmNvbnRyb2wtc2lkZWJhci10YWJzPmxpLmFjdGl2ZT5hLC5jb250cm9sLXNpZGViYXItbGlnaHQgLm5hdi10YWJzLmNvbnRyb2wtc2lkZWJhci10YWJzPmxpLmFjdGl2ZT5hOmhvdmVyLC5jb250cm9sLXNpZGViYXItbGlnaHQgLm5hdi10YWJzLmNvbnRyb2wtc2lkZWJhci10YWJzPmxpLmFjdGl2ZT5hOmZvY3VzLC5jb250cm9sLXNpZGViYXItbGlnaHQgLm5hdi10YWJzLmNvbnRyb2wtc2lkZWJhci10YWJzPmxpLmFjdGl2ZT5hOmFjdGl2ZXtiYWNrZ3JvdW5kOiNmOWZhZmM7Y29sb3I6IzExMX0uY29udHJvbC1zaWRlYmFyLWxpZ2h0IC5jb250cm9sLXNpZGViYXItaGVhZGluZywuY29udHJvbC1zaWRlYmFyLWxpZ2h0IC5jb250cm9sLXNpZGViYXItc3ViaGVhZGluZ3tjb2xvcjojMTExfS5jb250cm9sLXNpZGViYXItbGlnaHQgLmNvbnRyb2wtc2lkZWJhci1tZW51e21hcmdpbi1sZWZ0Oi0xNHB4fS5jb250cm9sLXNpZGViYXItbGlnaHQgLmNvbnRyb2wtc2lkZWJhci1tZW51PmxpPmE6aG92ZXJ7YmFja2dyb3VuZDojZjRmNGY1fS5jb250cm9sLXNpZGViYXItbGlnaHQgLmNvbnRyb2wtc2lkZWJhci1tZW51PmxpPmEgLm1lbnUtaW5mbz5we2NvbG9yOiM1ZTVlNWV9LmRyb3Bkb3duLW1lbnV7Ym94LXNoYWRvdzpub25lO2JvcmRlci1jb2xvcjojZWVlfS5kcm9wZG93bi1tZW51PmxpPmF7Y29sb3I6Izc3N30uZHJvcGRvd24tbWVudT5saT5hPi5nbHlwaGljb24sLmRyb3Bkb3duLW1lbnU+bGk+YT4uZmEsLmRyb3Bkb3duLW1lbnU+bGk+YT4uaW9ue21hcmdpbi1yaWdodDoxMHB4fS5kcm9wZG93bi1tZW51PmxpPmE6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjojZTFlM2U5O2NvbG9yOiMzMzN9LmRyb3Bkb3duLW1lbnU+LmRpdmlkZXJ7YmFja2dyb3VuZC1jb2xvcjojZWVlfS5uYXZiYXItbmF2Pi5ub3RpZmljYXRpb25zLW1lbnU+LmRyb3Bkb3duLW1lbnUsLm5hdmJhci1uYXY+Lm1lc3NhZ2VzLW1lbnU+LmRyb3Bkb3duLW1lbnUsLm5hdmJhci1uYXY+LnRhc2tzLW1lbnU+LmRyb3Bkb3duLW1lbnV7d2lkdGg6MjgwcHg7cGFkZGluZzowIDAgMCAwO21hcmdpbjowO3RvcDoxMDAlfS5uYXZiYXItbmF2Pi5ub3RpZmljYXRpb25zLW1lbnU+LmRyb3Bkb3duLW1lbnU+bGksLm5hdmJhci1uYXY+Lm1lc3NhZ2VzLW1lbnU+LmRyb3Bkb3duLW1lbnU+bGksLm5hdmJhci1uYXY+LnRhc2tzLW1lbnU+LmRyb3Bkb3duLW1lbnU+bGl7cG9zaXRpb246cmVsYXRpdmV9Lm5hdmJhci1uYXY+Lm5vdGlmaWNhdGlvbnMtbWVudT4uZHJvcGRvd24tbWVudT5saS5oZWFkZXIsLm5hdmJhci1uYXY+Lm1lc3NhZ2VzLW1lbnU+LmRyb3Bkb3duLW1lbnU+bGkuaGVhZGVyLC5uYXZiYXItbmF2Pi50YXNrcy1tZW51Pi5kcm9wZG93bi1tZW51PmxpLmhlYWRlcntib3JkZXItdG9wLWxlZnQtcmFkaXVzOjRweDtib3JkZXItdG9wLXJpZ2h0LXJhZGl1czo0cHg7Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6MDtib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOjA7YmFja2dyb3VuZC1jb2xvcjojZmZmZmZmO3BhZGRpbmc6N3B4IDEwcHg7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgI2Y0ZjRmNDtjb2xvcjojNDQ0NDQ0O2ZvbnQtc2l6ZToxNHB4fS5uYXZiYXItbmF2Pi5ub3RpZmljYXRpb25zLW1lbnU+LmRyb3Bkb3duLW1lbnU+bGkuZm9vdGVyPmEsLm5hdmJhci1uYXY+Lm1lc3NhZ2VzLW1lbnU+LmRyb3Bkb3duLW1lbnU+bGkuZm9vdGVyPmEsLm5hdmJhci1uYXY+LnRhc2tzLW1lbnU+LmRyb3Bkb3duLW1lbnU+bGkuZm9vdGVyPmF7Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czowO2JvcmRlci10b3AtcmlnaHQtcmFkaXVzOjA7Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6NHB4O2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6NHB4O2ZvbnQtc2l6ZToxMnB4O2JhY2tncm91bmQtY29sb3I6I2ZmZjtwYWRkaW5nOjdweCAxMHB4O2JvcmRlci1ib3R0b206MXB4IHNvbGlkICNlZWVlZWU7Y29sb3I6IzQ0NCAhaW1wb3J0YW50O3RleHQtYWxpZ246Y2VudGVyfUBtZWRpYSAobWF4LXdpZHRoOjk5MXB4KXsubmF2YmFyLW5hdj4ubm90aWZpY2F0aW9ucy1tZW51Pi5kcm9wZG93bi1tZW51PmxpLmZvb3Rlcj5hLC5uYXZiYXItbmF2Pi5tZXNzYWdlcy1tZW51Pi5kcm9wZG93bi1tZW51PmxpLmZvb3Rlcj5hLC5uYXZiYXItbmF2Pi50YXNrcy1tZW51Pi5kcm9wZG93bi1tZW51PmxpLmZvb3Rlcj5he2JhY2tncm91bmQ6I2ZmZiAhaW1wb3J0YW50O2NvbG9yOiM0NDQgIWltcG9ydGFudH19Lm5hdmJhci1uYXY+Lm5vdGlmaWNhdGlvbnMtbWVudT4uZHJvcGRvd24tbWVudT5saS5mb290ZXI+YTpob3ZlciwubmF2YmFyLW5hdj4ubWVzc2FnZXMtbWVudT4uZHJvcGRvd24tbWVudT5saS5mb290ZXI+YTpob3ZlciwubmF2YmFyLW5hdj4udGFza3MtbWVudT4uZHJvcGRvd24tbWVudT5saS5mb290ZXI+YTpob3Zlcnt0ZXh0LWRlY29yYXRpb246bm9uZTtmb250LXdlaWdodDpub3JtYWx9Lm5hdmJhci1uYXY+Lm5vdGlmaWNhdGlvbnMtbWVudT4uZHJvcGRvd24tbWVudT5saSAubWVudSwubmF2YmFyLW5hdj4ubWVzc2FnZXMtbWVudT4uZHJvcGRvd24tbWVudT5saSAubWVudSwubmF2YmFyLW5hdj4udGFza3MtbWVudT4uZHJvcGRvd24tbWVudT5saSAubWVudXttYXgtaGVpZ2h0OjIwMHB4O21hcmdpbjowO3BhZGRpbmc6MDtsaXN0LXN0eWxlOm5vbmU7b3ZlcmZsb3cteDpoaWRkZW59Lm5hdmJhci1uYXY+Lm5vdGlmaWNhdGlvbnMtbWVudT4uZHJvcGRvd24tbWVudT5saSAubWVudT5saT5hLC5uYXZiYXItbmF2Pi5tZXNzYWdlcy1tZW51Pi5kcm9wZG93bi1tZW51PmxpIC5tZW51PmxpPmEsLm5hdmJhci1uYXY+LnRhc2tzLW1lbnU+LmRyb3Bkb3duLW1lbnU+bGkgLm1lbnU+bGk+YXtkaXNwbGF5OmJsb2NrO3doaXRlLXNwYWNlOm5vd3JhcDtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZjRmNGY0fS5uYXZiYXItbmF2Pi5ub3RpZmljYXRpb25zLW1lbnU+LmRyb3Bkb3duLW1lbnU+bGkgLm1lbnU+bGk+YTpob3ZlciwubmF2YmFyLW5hdj4ubWVzc2FnZXMtbWVudT4uZHJvcGRvd24tbWVudT5saSAubWVudT5saT5hOmhvdmVyLC5uYXZiYXItbmF2Pi50YXNrcy1tZW51Pi5kcm9wZG93bi1tZW51PmxpIC5tZW51PmxpPmE6aG92ZXJ7YmFja2dyb3VuZDojZjRmNGY0O3RleHQtZGVjb3JhdGlvbjpub25lfS5uYXZiYXItbmF2Pi5ub3RpZmljYXRpb25zLW1lbnU+LmRyb3Bkb3duLW1lbnU+bGkgLm1lbnU+bGk+YXtjb2xvcjojNDQ0NDQ0O292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO3BhZGRpbmc6MTBweH0ubmF2YmFyLW5hdj4ubm90aWZpY2F0aW9ucy1tZW51Pi5kcm9wZG93bi1tZW51PmxpIC5tZW51PmxpPmE+LmdseXBoaWNvbiwubmF2YmFyLW5hdj4ubm90aWZpY2F0aW9ucy1tZW51Pi5kcm9wZG93bi1tZW51PmxpIC5tZW51PmxpPmE+LmZhLC5uYXZiYXItbmF2Pi5ub3RpZmljYXRpb25zLW1lbnU+LmRyb3Bkb3duLW1lbnU+bGkgLm1lbnU+bGk+YT4uaW9ue3dpZHRoOjIwcHh9Lm5hdmJhci1uYXY+Lm1lc3NhZ2VzLW1lbnU+LmRyb3Bkb3duLW1lbnU+bGkgLm1lbnU+bGk+YXttYXJnaW46MDtwYWRkaW5nOjEwcHggMTBweH0ubmF2YmFyLW5hdj4ubWVzc2FnZXMtbWVudT4uZHJvcGRvd24tbWVudT5saSAubWVudT5saT5hPmRpdj5pbWd7bWFyZ2luOmF1dG8gMTBweCBhdXRvIGF1dG87d2lkdGg6NDBweDtoZWlnaHQ6NDBweH0ubmF2YmFyLW5hdj4ubWVzc2FnZXMtbWVudT4uZHJvcGRvd24tbWVudT5saSAubWVudT5saT5hPmg0e3BhZGRpbmc6MDttYXJnaW46MCAwIDAgNDVweDtjb2xvcjojNDQ0NDQ0O2ZvbnQtc2l6ZToxNXB4O3Bvc2l0aW9uOnJlbGF0aXZlfS5uYXZiYXItbmF2Pi5tZXNzYWdlcy1tZW51Pi5kcm9wZG93bi1tZW51PmxpIC5tZW51PmxpPmE+aDQ+c21hbGx7Y29sb3I6Izk5OTk5OTtmb250LXNpemU6MTBweDtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtyaWdodDowfS5uYXZiYXItbmF2Pi5tZXNzYWdlcy1tZW51Pi5kcm9wZG93bi1tZW51PmxpIC5tZW51PmxpPmE+cHttYXJnaW46MCAwIDAgNDVweDtmb250LXNpemU6MTJweDtjb2xvcjojODg4ODg4fS5uYXZiYXItbmF2Pi5tZXNzYWdlcy1tZW51Pi5kcm9wZG93bi1tZW51PmxpIC5tZW51PmxpPmE6YmVmb3JlLC5uYXZiYXItbmF2Pi5tZXNzYWdlcy1tZW51Pi5kcm9wZG93bi1tZW51PmxpIC5tZW51PmxpPmE6YWZ0ZXJ7Y29udGVudDpcIiBcIjtkaXNwbGF5OnRhYmxlfS5uYXZiYXItbmF2Pi5tZXNzYWdlcy1tZW51Pi5kcm9wZG93bi1tZW51PmxpIC5tZW51PmxpPmE6YWZ0ZXJ7Y2xlYXI6Ym90aH0ubmF2YmFyLW5hdj4udGFza3MtbWVudT4uZHJvcGRvd24tbWVudT5saSAubWVudT5saT5he3BhZGRpbmc6MTBweH0ubmF2YmFyLW5hdj4udGFza3MtbWVudT4uZHJvcGRvd24tbWVudT5saSAubWVudT5saT5hPmgze2ZvbnQtc2l6ZToxNHB4O3BhZGRpbmc6MDttYXJnaW46MCAwIDEwcHggMDtjb2xvcjojNjY2NjY2fS5uYXZiYXItbmF2Pi50YXNrcy1tZW51Pi5kcm9wZG93bi1tZW51PmxpIC5tZW51PmxpPmE+LnByb2dyZXNze3BhZGRpbmc6MDttYXJnaW46MH0ubmF2YmFyLW5hdj4udXNlci1tZW51Pi5kcm9wZG93bi1tZW51e2JvcmRlci10b3AtcmlnaHQtcmFkaXVzOjA7Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czowO3BhZGRpbmc6MXB4IDAgMCAwO2JvcmRlci10b3Atd2lkdGg6MDt3aWR0aDoyODBweH0ubmF2YmFyLW5hdj4udXNlci1tZW51Pi5kcm9wZG93bi1tZW51LC5uYXZiYXItbmF2Pi51c2VyLW1lbnU+LmRyb3Bkb3duLW1lbnU+LnVzZXItYm9keXtib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czo0cHg7Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czo0cHh9Lm5hdmJhci1uYXY+LnVzZXItbWVudT4uZHJvcGRvd24tbWVudT5saS51c2VyLWhlYWRlcntoZWlnaHQ6MTc1cHg7cGFkZGluZzoxMHB4O3RleHQtYWxpZ246Y2VudGVyfS5uYXZiYXItbmF2Pi51c2VyLW1lbnU+LmRyb3Bkb3duLW1lbnU+bGkudXNlci1oZWFkZXI+aW1ne3otaW5kZXg6NTtoZWlnaHQ6OTBweDt3aWR0aDo5MHB4O2JvcmRlcjozcHggc29saWQ7Ym9yZGVyLWNvbG9yOnRyYW5zcGFyZW50O2JvcmRlci1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LDAuMil9Lm5hdmJhci1uYXY+LnVzZXItbWVudT4uZHJvcGRvd24tbWVudT5saS51c2VyLWhlYWRlcj5we3otaW5kZXg6NTtjb2xvcjojZmZmO2NvbG9yOnJnYmEoMjU1LDI1NSwyNTUsMC44KTtmb250LXNpemU6MTdweDttYXJnaW4tdG9wOjEwcHh9Lm5hdmJhci1uYXY+LnVzZXItbWVudT4uZHJvcGRvd24tbWVudT5saS51c2VyLWhlYWRlcj5wPnNtYWxse2Rpc3BsYXk6YmxvY2s7Zm9udC1zaXplOjEycHh9Lm5hdmJhci1uYXY+LnVzZXItbWVudT4uZHJvcGRvd24tbWVudT4udXNlci1ib2R5e3BhZGRpbmc6MTVweDtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZjRmNGY0O2JvcmRlci10b3A6MXB4IHNvbGlkICNkZGRkZGR9Lm5hdmJhci1uYXY+LnVzZXItbWVudT4uZHJvcGRvd24tbWVudT4udXNlci1ib2R5OmJlZm9yZSwubmF2YmFyLW5hdj4udXNlci1tZW51Pi5kcm9wZG93bi1tZW51Pi51c2VyLWJvZHk6YWZ0ZXJ7Y29udGVudDpcIiBcIjtkaXNwbGF5OnRhYmxlfS5uYXZiYXItbmF2Pi51c2VyLW1lbnU+LmRyb3Bkb3duLW1lbnU+LnVzZXItYm9keTphZnRlcntjbGVhcjpib3RofS5uYXZiYXItbmF2Pi51c2VyLW1lbnU+LmRyb3Bkb3duLW1lbnU+LnVzZXItYm9keSBhe2NvbG9yOiM0NDQgIWltcG9ydGFudH1AbWVkaWEgKG1heC13aWR0aDo5OTFweCl7Lm5hdmJhci1uYXY+LnVzZXItbWVudT4uZHJvcGRvd24tbWVudT4udXNlci1ib2R5IGF7YmFja2dyb3VuZDojZmZmICFpbXBvcnRhbnQ7Y29sb3I6IzQ0NCAhaW1wb3J0YW50fX0ubmF2YmFyLW5hdj4udXNlci1tZW51Pi5kcm9wZG93bi1tZW51Pi51c2VyLWZvb3RlcntiYWNrZ3JvdW5kLWNvbG9yOiNmOWY5Zjk7cGFkZGluZzoxMHB4fS5uYXZiYXItbmF2Pi51c2VyLW1lbnU+LmRyb3Bkb3duLW1lbnU+LnVzZXItZm9vdGVyOmJlZm9yZSwubmF2YmFyLW5hdj4udXNlci1tZW51Pi5kcm9wZG93bi1tZW51Pi51c2VyLWZvb3RlcjphZnRlcntjb250ZW50OlwiIFwiO2Rpc3BsYXk6dGFibGV9Lm5hdmJhci1uYXY+LnVzZXItbWVudT4uZHJvcGRvd24tbWVudT4udXNlci1mb290ZXI6YWZ0ZXJ7Y2xlYXI6Ym90aH0ubmF2YmFyLW5hdj4udXNlci1tZW51Pi5kcm9wZG93bi1tZW51Pi51c2VyLWZvb3RlciAuYnRuLWRlZmF1bHR7Y29sb3I6IzY2NjY2Nn1AbWVkaWEgKG1heC13aWR0aDo5OTFweCl7Lm5hdmJhci1uYXY+LnVzZXItbWVudT4uZHJvcGRvd24tbWVudT4udXNlci1mb290ZXIgLmJ0bi1kZWZhdWx0OmhvdmVye2JhY2tncm91bmQtY29sb3I6I2Y5ZjlmOX19Lm5hdmJhci1uYXY+LnVzZXItbWVudSAudXNlci1pbWFnZXtmbG9hdDpsZWZ0O3dpZHRoOjI1cHg7aGVpZ2h0OjI1cHg7Ym9yZGVyLXJhZGl1czo1MCU7bWFyZ2luLXJpZ2h0OjEwcHg7bWFyZ2luLXRvcDotMnB4fUBtZWRpYSAobWF4LXdpZHRoOjc2N3B4KXsubmF2YmFyLW5hdj4udXNlci1tZW51IC51c2VyLWltYWdle2Zsb2F0Om5vbmU7bWFyZ2luLXJpZ2h0OjA7bWFyZ2luLXRvcDotOHB4O2xpbmUtaGVpZ2h0OjEwcHh9fS5vcGVuOm5vdCguZHJvcHVwKT4uYW5pbWF0ZWQtZHJvcGRvd24tbWVudXtiYWNrZmFjZS12aXNpYmlsaXR5OnZpc2libGUgIWltcG9ydGFudDstd2Via2l0LWFuaW1hdGlvbjpmbGlwSW5YIC43cyBib3RoOy1vLWFuaW1hdGlvbjpmbGlwSW5YIC43cyBib3RoO2FuaW1hdGlvbjpmbGlwSW5YIC43cyBib3RofUBrZXlmcmFtZXMgZmxpcEluWHswJXt0cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDEsIDAsIDAsIDkwZGVnKTt0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjplYXNlLWluO29wYWNpdHk6MH00MCV7dHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgxLCAwLCAwLCAtMjBkZWcpO3RyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOmVhc2UtaW59NjAle3RyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMSwgMCwgMCwgMTBkZWcpO29wYWNpdHk6MX04MCV7dHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgxLCAwLCAwLCAtNWRlZyl9MTAwJXt0cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpfX1ALXdlYmtpdC1rZXlmcmFtZXMgZmxpcEluWHswJXstd2Via2l0LXRyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMSwgMCwgMCwgOTBkZWcpOy13ZWJraXQtdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246ZWFzZS1pbjtvcGFjaXR5OjB9NDAley13ZWJraXQtdHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgxLCAwLCAwLCAtMjBkZWcpOy13ZWJraXQtdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246ZWFzZS1pbn02MCV7LXdlYmtpdC10cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDEsIDAsIDAsIDEwZGVnKTtvcGFjaXR5OjF9ODAley13ZWJraXQtdHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgxLCAwLCAwLCAtNWRlZyl9MTAwJXstd2Via2l0LXRyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCl9fS5uYXZiYXItY3VzdG9tLW1lbnU+Lm5hdmJhci1uYXY+bGl7cG9zaXRpb246cmVsYXRpdmV9Lm5hdmJhci1jdXN0b20tbWVudT4ubmF2YmFyLW5hdj5saT4uZHJvcGRvd24tbWVudXtwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDowO2xlZnQ6YXV0b31AbWVkaWEgKG1heC13aWR0aDo5OTFweCl7Lm5hdmJhci1jdXN0b20tbWVudT4ubmF2YmFyLW5hdntmbG9hdDpyaWdodH0ubmF2YmFyLWN1c3RvbS1tZW51Pi5uYXZiYXItbmF2Pmxpe3Bvc2l0aW9uOnN0YXRpY30ubmF2YmFyLWN1c3RvbS1tZW51Pi5uYXZiYXItbmF2PmxpPi5kcm9wZG93bi1tZW51e3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OjUlO2xlZnQ6YXV0bztib3JkZXI6MXB4IHNvbGlkICNkZGQ7YmFja2dyb3VuZDojZmZmfX0uZm9ybS1jb250cm9se2JvcmRlci1yYWRpdXM6MDtib3gtc2hhZG93Om5vbmU7Ym9yZGVyLWNvbG9yOiNkMmQ2ZGV9LmZvcm0tY29udHJvbDpmb2N1c3tib3JkZXItY29sb3I6IzNjOGRiYztib3gtc2hhZG93Om5vbmV9LmZvcm0tY29udHJvbDo6LW1vei1wbGFjZWhvbGRlciwuZm9ybS1jb250cm9sOi1tcy1pbnB1dC1wbGFjZWhvbGRlciwuZm9ybS1jb250cm9sOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVye2NvbG9yOiNiYmI7b3BhY2l0eToxfS5mb3JtLWNvbnRyb2w6bm90KHNlbGVjdCl7LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7LW1vei1hcHBlYXJhbmNlOm5vbmU7YXBwZWFyYW5jZTpub25lfS5mb3JtLWdyb3VwLmhhcy1zdWNjZXNzIGxhYmVse2NvbG9yOiMwMGE2NWF9LmZvcm0tZ3JvdXAuaGFzLXN1Y2Nlc3MgLmZvcm0tY29udHJvbCwuZm9ybS1ncm91cC5oYXMtc3VjY2VzcyAuaW5wdXQtZ3JvdXAtYWRkb257Ym9yZGVyLWNvbG9yOiMwMGE2NWE7Ym94LXNoYWRvdzpub25lfS5mb3JtLWdyb3VwLmhhcy1zdWNjZXNzIC5oZWxwLWJsb2Nre2NvbG9yOiMwMGE2NWF9LmZvcm0tZ3JvdXAuaGFzLXdhcm5pbmcgbGFiZWx7Y29sb3I6I2YzOWMxMn0uZm9ybS1ncm91cC5oYXMtd2FybmluZyAuZm9ybS1jb250cm9sLC5mb3JtLWdyb3VwLmhhcy13YXJuaW5nIC5pbnB1dC1ncm91cC1hZGRvbntib3JkZXItY29sb3I6I2YzOWMxMjtib3gtc2hhZG93Om5vbmV9LmZvcm0tZ3JvdXAuaGFzLXdhcm5pbmcgLmhlbHAtYmxvY2t7Y29sb3I6I2YzOWMxMn0uZm9ybS1ncm91cC5oYXMtZXJyb3IgbGFiZWx7Y29sb3I6I2RkNGIzOX0uZm9ybS1ncm91cC5oYXMtZXJyb3IgLmZvcm0tY29udHJvbCwuZm9ybS1ncm91cC5oYXMtZXJyb3IgLmlucHV0LWdyb3VwLWFkZG9ue2JvcmRlci1jb2xvcjojZGQ0YjM5O2JveC1zaGFkb3c6bm9uZX0uZm9ybS1ncm91cC5oYXMtZXJyb3IgLmhlbHAtYmxvY2t7Y29sb3I6I2RkNGIzOX0uaW5wdXQtZ3JvdXAgLmlucHV0LWdyb3VwLWFkZG9ue2JvcmRlci1yYWRpdXM6MDtib3JkZXItY29sb3I6I2QyZDZkZTtiYWNrZ3JvdW5kLWNvbG9yOiNmZmZ9LmJ0bi1ncm91cC12ZXJ0aWNhbCAuYnRuLmJ0bi1mbGF0OmZpcnN0LW9mLXR5cGUsLmJ0bi1ncm91cC12ZXJ0aWNhbCAuYnRuLmJ0bi1mbGF0Omxhc3Qtb2YtdHlwZXtib3JkZXItcmFkaXVzOjB9LmljaGVjaz5sYWJlbHtwYWRkaW5nLWxlZnQ6MH0uZm9ybS1jb250cm9sLWZlZWRiYWNrLmZhe2xpbmUtaGVpZ2h0OjM0cHh9LmlucHV0LWxnKy5mb3JtLWNvbnRyb2wtZmVlZGJhY2suZmEsLmlucHV0LWdyb3VwLWxnKy5mb3JtLWNvbnRyb2wtZmVlZGJhY2suZmEsLmZvcm0tZ3JvdXAtbGcgLmZvcm0tY29udHJvbCsuZm9ybS1jb250cm9sLWZlZWRiYWNrLmZhe2xpbmUtaGVpZ2h0OjQ2cHh9LmlucHV0LXNtKy5mb3JtLWNvbnRyb2wtZmVlZGJhY2suZmEsLmlucHV0LWdyb3VwLXNtKy5mb3JtLWNvbnRyb2wtZmVlZGJhY2suZmEsLmZvcm0tZ3JvdXAtc20gLmZvcm0tY29udHJvbCsuZm9ybS1jb250cm9sLWZlZWRiYWNrLmZhe2xpbmUtaGVpZ2h0OjMwcHh9LnByb2dyZXNzLC5wcm9ncmVzcz4ucHJvZ3Jlc3MtYmFyey13ZWJraXQtYm94LXNoYWRvdzpub25lO2JveC1zaGFkb3c6bm9uZX0ucHJvZ3Jlc3MsLnByb2dyZXNzPi5wcm9ncmVzcy1iYXIsLnByb2dyZXNzIC5wcm9ncmVzcy1iYXIsLnByb2dyZXNzPi5wcm9ncmVzcy1iYXIgLnByb2dyZXNzLWJhcntib3JkZXItcmFkaXVzOjFweH0ucHJvZ3Jlc3Muc20sLnByb2dyZXNzLXNte2hlaWdodDoxMHB4fS5wcm9ncmVzcy5zbSwucHJvZ3Jlc3Mtc20sLnByb2dyZXNzLnNtIC5wcm9ncmVzcy1iYXIsLnByb2dyZXNzLXNtIC5wcm9ncmVzcy1iYXJ7Ym9yZGVyLXJhZGl1czoxcHh9LnByb2dyZXNzLnhzLC5wcm9ncmVzcy14c3toZWlnaHQ6N3B4fS5wcm9ncmVzcy54cywucHJvZ3Jlc3MteHMsLnByb2dyZXNzLnhzIC5wcm9ncmVzcy1iYXIsLnByb2dyZXNzLXhzIC5wcm9ncmVzcy1iYXJ7Ym9yZGVyLXJhZGl1czoxcHh9LnByb2dyZXNzLnh4cywucHJvZ3Jlc3MteHhze2hlaWdodDozcHh9LnByb2dyZXNzLnh4cywucHJvZ3Jlc3MteHhzLC5wcm9ncmVzcy54eHMgLnByb2dyZXNzLWJhciwucHJvZ3Jlc3MteHhzIC5wcm9ncmVzcy1iYXJ7Ym9yZGVyLXJhZGl1czoxcHh9LnByb2dyZXNzLnZlcnRpY2Fse3Bvc2l0aW9uOnJlbGF0aXZlO3dpZHRoOjMwcHg7aGVpZ2h0OjIwMHB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrO21hcmdpbi1yaWdodDoxMHB4fS5wcm9ncmVzcy52ZXJ0aWNhbD4ucHJvZ3Jlc3MtYmFye3dpZHRoOjEwMCU7cG9zaXRpb246YWJzb2x1dGU7Ym90dG9tOjB9LnByb2dyZXNzLnZlcnRpY2FsLnNtLC5wcm9ncmVzcy52ZXJ0aWNhbC5wcm9ncmVzcy1zbXt3aWR0aDoyMHB4fS5wcm9ncmVzcy52ZXJ0aWNhbC54cywucHJvZ3Jlc3MudmVydGljYWwucHJvZ3Jlc3MteHN7d2lkdGg6MTBweH0ucHJvZ3Jlc3MudmVydGljYWwueHhzLC5wcm9ncmVzcy52ZXJ0aWNhbC5wcm9ncmVzcy14eHN7d2lkdGg6M3B4fS5wcm9ncmVzcy1ncm91cCAucHJvZ3Jlc3MtdGV4dHtmb250LXdlaWdodDo2MDB9LnByb2dyZXNzLWdyb3VwIC5wcm9ncmVzcy1udW1iZXJ7ZmxvYXQ6cmlnaHR9LnRhYmxlIHRyPnRkIC5wcm9ncmVzc3ttYXJnaW46MH0ucHJvZ3Jlc3MtYmFyLWxpZ2h0LWJsdWUsLnByb2dyZXNzLWJhci1wcmltYXJ5e2JhY2tncm91bmQtY29sb3I6IzNjOGRiY30ucHJvZ3Jlc3Mtc3RyaXBlZCAucHJvZ3Jlc3MtYmFyLWxpZ2h0LWJsdWUsLnByb2dyZXNzLXN0cmlwZWQgLnByb2dyZXNzLWJhci1wcmltYXJ5e2JhY2tncm91bmQtaW1hZ2U6LXdlYmtpdC1saW5lYXItZ3JhZGllbnQoNDVkZWcsIHJnYmEoMjU1LDI1NSwyNTUsMC4xNSkgMjUlLCB0cmFuc3BhcmVudCAyNSUsIHRyYW5zcGFyZW50IDUwJSwgcmdiYSgyNTUsMjU1LDI1NSwwLjE1KSA1MCUsIHJnYmEoMjU1LDI1NSwyNTUsMC4xNSkgNzUlLCB0cmFuc3BhcmVudCA3NSUsIHRyYW5zcGFyZW50KTtiYWNrZ3JvdW5kLWltYWdlOi1vLWxpbmVhci1ncmFkaWVudCg0NWRlZywgcmdiYSgyNTUsMjU1LDI1NSwwLjE1KSAyNSUsIHRyYW5zcGFyZW50IDI1JSwgdHJhbnNwYXJlbnQgNTAlLCByZ2JhKDI1NSwyNTUsMjU1LDAuMTUpIDUwJSwgcmdiYSgyNTUsMjU1LDI1NSwwLjE1KSA3NSUsIHRyYW5zcGFyZW50IDc1JSwgdHJhbnNwYXJlbnQpO2JhY2tncm91bmQtaW1hZ2U6bGluZWFyLWdyYWRpZW50KDQ1ZGVnLCByZ2JhKDI1NSwyNTUsMjU1LDAuMTUpIDI1JSwgdHJhbnNwYXJlbnQgMjUlLCB0cmFuc3BhcmVudCA1MCUsIHJnYmEoMjU1LDI1NSwyNTUsMC4xNSkgNTAlLCByZ2JhKDI1NSwyNTUsMjU1LDAuMTUpIDc1JSwgdHJhbnNwYXJlbnQgNzUlLCB0cmFuc3BhcmVudCl9LnByb2dyZXNzLWJhci1ncmVlbiwucHJvZ3Jlc3MtYmFyLXN1Y2Nlc3N7YmFja2dyb3VuZC1jb2xvcjojMDBhNjVhfS5wcm9ncmVzcy1zdHJpcGVkIC5wcm9ncmVzcy1iYXItZ3JlZW4sLnByb2dyZXNzLXN0cmlwZWQgLnByb2dyZXNzLWJhci1zdWNjZXNze2JhY2tncm91bmQtaW1hZ2U6LXdlYmtpdC1saW5lYXItZ3JhZGllbnQoNDVkZWcsIHJnYmEoMjU1LDI1NSwyNTUsMC4xNSkgMjUlLCB0cmFuc3BhcmVudCAyNSUsIHRyYW5zcGFyZW50IDUwJSwgcmdiYSgyNTUsMjU1LDI1NSwwLjE1KSA1MCUsIHJnYmEoMjU1LDI1NSwyNTUsMC4xNSkgNzUlLCB0cmFuc3BhcmVudCA3NSUsIHRyYW5zcGFyZW50KTtiYWNrZ3JvdW5kLWltYWdlOi1vLWxpbmVhci1ncmFkaWVudCg0NWRlZywgcmdiYSgyNTUsMjU1LDI1NSwwLjE1KSAyNSUsIHRyYW5zcGFyZW50IDI1JSwgdHJhbnNwYXJlbnQgNTAlLCByZ2JhKDI1NSwyNTUsMjU1LDAuMTUpIDUwJSwgcmdiYSgyNTUsMjU1LDI1NSwwLjE1KSA3NSUsIHRyYW5zcGFyZW50IDc1JSwgdHJhbnNwYXJlbnQpO2JhY2tncm91bmQtaW1hZ2U6bGluZWFyLWdyYWRpZW50KDQ1ZGVnLCByZ2JhKDI1NSwyNTUsMjU1LDAuMTUpIDI1JSwgdHJhbnNwYXJlbnQgMjUlLCB0cmFuc3BhcmVudCA1MCUsIHJnYmEoMjU1LDI1NSwyNTUsMC4xNSkgNTAlLCByZ2JhKDI1NSwyNTUsMjU1LDAuMTUpIDc1JSwgdHJhbnNwYXJlbnQgNzUlLCB0cmFuc3BhcmVudCl9LnByb2dyZXNzLWJhci1hcXVhLC5wcm9ncmVzcy1iYXItaW5mb3tiYWNrZ3JvdW5kLWNvbG9yOiMwMGMwZWZ9LnByb2dyZXNzLXN0cmlwZWQgLnByb2dyZXNzLWJhci1hcXVhLC5wcm9ncmVzcy1zdHJpcGVkIC5wcm9ncmVzcy1iYXItaW5mb3tiYWNrZ3JvdW5kLWltYWdlOi13ZWJraXQtbGluZWFyLWdyYWRpZW50KDQ1ZGVnLCByZ2JhKDI1NSwyNTUsMjU1LDAuMTUpIDI1JSwgdHJhbnNwYXJlbnQgMjUlLCB0cmFuc3BhcmVudCA1MCUsIHJnYmEoMjU1LDI1NSwyNTUsMC4xNSkgNTAlLCByZ2JhKDI1NSwyNTUsMjU1LDAuMTUpIDc1JSwgdHJhbnNwYXJlbnQgNzUlLCB0cmFuc3BhcmVudCk7YmFja2dyb3VuZC1pbWFnZTotby1saW5lYXItZ3JhZGllbnQoNDVkZWcsIHJnYmEoMjU1LDI1NSwyNTUsMC4xNSkgMjUlLCB0cmFuc3BhcmVudCAyNSUsIHRyYW5zcGFyZW50IDUwJSwgcmdiYSgyNTUsMjU1LDI1NSwwLjE1KSA1MCUsIHJnYmEoMjU1LDI1NSwyNTUsMC4xNSkgNzUlLCB0cmFuc3BhcmVudCA3NSUsIHRyYW5zcGFyZW50KTtiYWNrZ3JvdW5kLWltYWdlOmxpbmVhci1ncmFkaWVudCg0NWRlZywgcmdiYSgyNTUsMjU1LDI1NSwwLjE1KSAyNSUsIHRyYW5zcGFyZW50IDI1JSwgdHJhbnNwYXJlbnQgNTAlLCByZ2JhKDI1NSwyNTUsMjU1LDAuMTUpIDUwJSwgcmdiYSgyNTUsMjU1LDI1NSwwLjE1KSA3NSUsIHRyYW5zcGFyZW50IDc1JSwgdHJhbnNwYXJlbnQpfS5wcm9ncmVzcy1iYXIteWVsbG93LC5wcm9ncmVzcy1iYXItd2FybmluZ3tiYWNrZ3JvdW5kLWNvbG9yOiNmMzljMTJ9LnByb2dyZXNzLXN0cmlwZWQgLnByb2dyZXNzLWJhci15ZWxsb3csLnByb2dyZXNzLXN0cmlwZWQgLnByb2dyZXNzLWJhci13YXJuaW5ne2JhY2tncm91bmQtaW1hZ2U6LXdlYmtpdC1saW5lYXItZ3JhZGllbnQoNDVkZWcsIHJnYmEoMjU1LDI1NSwyNTUsMC4xNSkgMjUlLCB0cmFuc3BhcmVudCAyNSUsIHRyYW5zcGFyZW50IDUwJSwgcmdiYSgyNTUsMjU1LDI1NSwwLjE1KSA1MCUsIHJnYmEoMjU1LDI1NSwyNTUsMC4xNSkgNzUlLCB0cmFuc3BhcmVudCA3NSUsIHRyYW5zcGFyZW50KTtiYWNrZ3JvdW5kLWltYWdlOi1vLWxpbmVhci1ncmFkaWVudCg0NWRlZywgcmdiYSgyNTUsMjU1LDI1NSwwLjE1KSAyNSUsIHRyYW5zcGFyZW50IDI1JSwgdHJhbnNwYXJlbnQgNTAlLCByZ2JhKDI1NSwyNTUsMjU1LDAuMTUpIDUwJSwgcmdiYSgyNTUsMjU1LDI1NSwwLjE1KSA3NSUsIHRyYW5zcGFyZW50IDc1JSwgdHJhbnNwYXJlbnQpO2JhY2tncm91bmQtaW1hZ2U6bGluZWFyLWdyYWRpZW50KDQ1ZGVnLCByZ2JhKDI1NSwyNTUsMjU1LDAuMTUpIDI1JSwgdHJhbnNwYXJlbnQgMjUlLCB0cmFuc3BhcmVudCA1MCUsIHJnYmEoMjU1LDI1NSwyNTUsMC4xNSkgNTAlLCByZ2JhKDI1NSwyNTUsMjU1LDAuMTUpIDc1JSwgdHJhbnNwYXJlbnQgNzUlLCB0cmFuc3BhcmVudCl9LnByb2dyZXNzLWJhci1yZWQsLnByb2dyZXNzLWJhci1kYW5nZXJ7YmFja2dyb3VuZC1jb2xvcjojZGQ0YjM5fS5wcm9ncmVzcy1zdHJpcGVkIC5wcm9ncmVzcy1iYXItcmVkLC5wcm9ncmVzcy1zdHJpcGVkIC5wcm9ncmVzcy1iYXItZGFuZ2Vye2JhY2tncm91bmQtaW1hZ2U6LXdlYmtpdC1saW5lYXItZ3JhZGllbnQoNDVkZWcsIHJnYmEoMjU1LDI1NSwyNTUsMC4xNSkgMjUlLCB0cmFuc3BhcmVudCAyNSUsIHRyYW5zcGFyZW50IDUwJSwgcmdiYSgyNTUsMjU1LDI1NSwwLjE1KSA1MCUsIHJnYmEoMjU1LDI1NSwyNTUsMC4xNSkgNzUlLCB0cmFuc3BhcmVudCA3NSUsIHRyYW5zcGFyZW50KTtiYWNrZ3JvdW5kLWltYWdlOi1vLWxpbmVhci1ncmFkaWVudCg0NWRlZywgcmdiYSgyNTUsMjU1LDI1NSwwLjE1KSAyNSUsIHRyYW5zcGFyZW50IDI1JSwgdHJhbnNwYXJlbnQgNTAlLCByZ2JhKDI1NSwyNTUsMjU1LDAuMTUpIDUwJSwgcmdiYSgyNTUsMjU1LDI1NSwwLjE1KSA3NSUsIHRyYW5zcGFyZW50IDc1JSwgdHJhbnNwYXJlbnQpO2JhY2tncm91bmQtaW1hZ2U6bGluZWFyLWdyYWRpZW50KDQ1ZGVnLCByZ2JhKDI1NSwyNTUsMjU1LDAuMTUpIDI1JSwgdHJhbnNwYXJlbnQgMjUlLCB0cmFuc3BhcmVudCA1MCUsIHJnYmEoMjU1LDI1NSwyNTUsMC4xNSkgNTAlLCByZ2JhKDI1NSwyNTUsMjU1LDAuMTUpIDc1JSwgdHJhbnNwYXJlbnQgNzUlLCB0cmFuc3BhcmVudCl9LnNtYWxsLWJveHtib3JkZXItcmFkaXVzOjJweDtwb3NpdGlvbjpyZWxhdGl2ZTtkaXNwbGF5OmJsb2NrO21hcmdpbi1ib3R0b206MjBweDtib3gtc2hhZG93OjAgMXB4IDFweCByZ2JhKDAsMCwwLDAuMSl9LnNtYWxsLWJveD4uaW5uZXJ7cGFkZGluZzoxMHB4fS5zbWFsbC1ib3g+LnNtYWxsLWJveC1mb290ZXJ7cG9zaXRpb246cmVsYXRpdmU7dGV4dC1hbGlnbjpjZW50ZXI7cGFkZGluZzozcHggMDtjb2xvcjojZmZmO2NvbG9yOnJnYmEoMjU1LDI1NSwyNTUsMC44KTtkaXNwbGF5OmJsb2NrO3otaW5kZXg6MTA7YmFja2dyb3VuZDpyZ2JhKDAsMCwwLDAuMSk7dGV4dC1kZWNvcmF0aW9uOm5vbmV9LnNtYWxsLWJveD4uc21hbGwtYm94LWZvb3Rlcjpob3Zlcntjb2xvcjojZmZmO2JhY2tncm91bmQ6cmdiYSgwLDAsMCwwLjE1KX0uc21hbGwtYm94IGgze2ZvbnQtc2l6ZTozOHB4O2ZvbnQtd2VpZ2h0OmJvbGQ7bWFyZ2luOjAgMCAxMHB4IDA7d2hpdGUtc3BhY2U6bm93cmFwO3BhZGRpbmc6MH0uc21hbGwtYm94IHB7Zm9udC1zaXplOjE1cHh9LnNtYWxsLWJveCBwPnNtYWxse2Rpc3BsYXk6YmxvY2s7Y29sb3I6I2Y5ZjlmOTtmb250LXNpemU6MTNweDttYXJnaW4tdG9wOjVweH0uc21hbGwtYm94IGgzLC5zbWFsbC1ib3ggcHt6LWluZGV4OjV9LnNtYWxsLWJveCAuaWNvbnstd2Via2l0LXRyYW5zaXRpb246YWxsIC4zcyBsaW5lYXI7LW8tdHJhbnNpdGlvbjphbGwgLjNzIGxpbmVhcjt0cmFuc2l0aW9uOmFsbCAuM3MgbGluZWFyO3Bvc2l0aW9uOmFic29sdXRlO3RvcDotMTBweDtyaWdodDoxMHB4O3otaW5kZXg6MDtmb250LXNpemU6OTBweDtjb2xvcjpyZ2JhKDAsMCwwLDAuMTUpfS5zbWFsbC1ib3g6aG92ZXJ7dGV4dC1kZWNvcmF0aW9uOm5vbmU7Y29sb3I6I2Y5ZjlmOX0uc21hbGwtYm94OmhvdmVyIC5pY29ue2ZvbnQtc2l6ZTo5NXB4fUBtZWRpYSAobWF4LXdpZHRoOjc2N3B4KXsuc21hbGwtYm94e3RleHQtYWxpZ246Y2VudGVyfS5zbWFsbC1ib3ggLmljb257ZGlzcGxheTpub25lfS5zbWFsbC1ib3ggcHtmb250LXNpemU6MTJweH19LmJveHtwb3NpdGlvbjpyZWxhdGl2ZTtib3JkZXItcmFkaXVzOjNweDtiYWNrZ3JvdW5kOiNmZmZmZmY7Ym9yZGVyLXRvcDozcHggc29saWQgI2QyZDZkZTttYXJnaW4tYm90dG9tOjIwcHg7d2lkdGg6MTAwJTtib3gtc2hhZG93OjAgMXB4IDFweCByZ2JhKDAsMCwwLDAuMSl9LmJveC5ib3gtcHJpbWFyeXtib3JkZXItdG9wLWNvbG9yOiMzYzhkYmN9LmJveC5ib3gtaW5mb3tib3JkZXItdG9wLWNvbG9yOiMwMGMwZWZ9LmJveC5ib3gtZGFuZ2Vye2JvcmRlci10b3AtY29sb3I6I2RkNGIzOX0uYm94LmJveC13YXJuaW5ne2JvcmRlci10b3AtY29sb3I6I2YzOWMxMn0uYm94LmJveC1zdWNjZXNze2JvcmRlci10b3AtY29sb3I6IzAwYTY1YX0uYm94LmJveC1kZWZhdWx0e2JvcmRlci10b3AtY29sb3I6I2QyZDZkZX0uYm94LmNvbGxhcHNlZC1ib3ggLmJveC1ib2R5LC5ib3guY29sbGFwc2VkLWJveCAuYm94LWZvb3RlcntkaXNwbGF5Om5vbmV9LmJveCAubmF2LXN0YWNrZWQ+bGl7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgI2Y0ZjRmNDttYXJnaW46MH0uYm94IC5uYXYtc3RhY2tlZD5saTpsYXN0LW9mLXR5cGV7Ym9yZGVyLWJvdHRvbTpub25lfS5ib3guaGVpZ2h0LWNvbnRyb2wgLmJveC1ib2R5e21heC1oZWlnaHQ6MzAwcHg7b3ZlcmZsb3c6YXV0b30uYm94IC5ib3JkZXItcmlnaHR7Ym9yZGVyLXJpZ2h0OjFweCBzb2xpZCAjZjRmNGY0fS5ib3ggLmJvcmRlci1sZWZ0e2JvcmRlci1sZWZ0OjFweCBzb2xpZCAjZjRmNGY0fS5ib3guYm94LXNvbGlke2JvcmRlci10b3A6MH0uYm94LmJveC1zb2xpZD4uYm94LWhlYWRlciAuYnRuLmJ0bi1kZWZhdWx0e2JhY2tncm91bmQ6dHJhbnNwYXJlbnR9LmJveC5ib3gtc29saWQ+LmJveC1oZWFkZXIgLmJ0bjpob3ZlciwuYm94LmJveC1zb2xpZD4uYm94LWhlYWRlciBhOmhvdmVye2JhY2tncm91bmQ6cmdiYSgwLDAsMCwwLjEpfS5ib3guYm94LXNvbGlkLmJveC1kZWZhdWx0e2JvcmRlcjoxcHggc29saWQgI2QyZDZkZX0uYm94LmJveC1zb2xpZC5ib3gtZGVmYXVsdD4uYm94LWhlYWRlcntjb2xvcjojNDQ0O2JhY2tncm91bmQ6I2QyZDZkZTtiYWNrZ3JvdW5kLWNvbG9yOiNkMmQ2ZGV9LmJveC5ib3gtc29saWQuYm94LWRlZmF1bHQ+LmJveC1oZWFkZXIgYSwuYm94LmJveC1zb2xpZC5ib3gtZGVmYXVsdD4uYm94LWhlYWRlciAuYnRue2NvbG9yOiM0NDR9LmJveC5ib3gtc29saWQuYm94LXByaW1hcnl7Ym9yZGVyOjFweCBzb2xpZCAjM2M4ZGJjfS5ib3guYm94LXNvbGlkLmJveC1wcmltYXJ5Pi5ib3gtaGVhZGVye2NvbG9yOiNmZmY7YmFja2dyb3VuZDojM2M4ZGJjO2JhY2tncm91bmQtY29sb3I6IzNjOGRiY30uYm94LmJveC1zb2xpZC5ib3gtcHJpbWFyeT4uYm94LWhlYWRlciBhLC5ib3guYm94LXNvbGlkLmJveC1wcmltYXJ5Pi5ib3gtaGVhZGVyIC5idG57Y29sb3I6I2ZmZn0uYm94LmJveC1zb2xpZC5ib3gtaW5mb3tib3JkZXI6MXB4IHNvbGlkICMwMGMwZWZ9LmJveC5ib3gtc29saWQuYm94LWluZm8+LmJveC1oZWFkZXJ7Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kOiMwMGMwZWY7YmFja2dyb3VuZC1jb2xvcjojMDBjMGVmfS5ib3guYm94LXNvbGlkLmJveC1pbmZvPi5ib3gtaGVhZGVyIGEsLmJveC5ib3gtc29saWQuYm94LWluZm8+LmJveC1oZWFkZXIgLmJ0bntjb2xvcjojZmZmfS5ib3guYm94LXNvbGlkLmJveC1kYW5nZXJ7Ym9yZGVyOjFweCBzb2xpZCAjZGQ0YjM5fS5ib3guYm94LXNvbGlkLmJveC1kYW5nZXI+LmJveC1oZWFkZXJ7Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kOiNkZDRiMzk7YmFja2dyb3VuZC1jb2xvcjojZGQ0YjM5fS5ib3guYm94LXNvbGlkLmJveC1kYW5nZXI+LmJveC1oZWFkZXIgYSwuYm94LmJveC1zb2xpZC5ib3gtZGFuZ2VyPi5ib3gtaGVhZGVyIC5idG57Y29sb3I6I2ZmZn0uYm94LmJveC1zb2xpZC5ib3gtd2FybmluZ3tib3JkZXI6MXB4IHNvbGlkICNmMzljMTJ9LmJveC5ib3gtc29saWQuYm94LXdhcm5pbmc+LmJveC1oZWFkZXJ7Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kOiNmMzljMTI7YmFja2dyb3VuZC1jb2xvcjojZjM5YzEyfS5ib3guYm94LXNvbGlkLmJveC13YXJuaW5nPi5ib3gtaGVhZGVyIGEsLmJveC5ib3gtc29saWQuYm94LXdhcm5pbmc+LmJveC1oZWFkZXIgLmJ0bntjb2xvcjojZmZmfS5ib3guYm94LXNvbGlkLmJveC1zdWNjZXNze2JvcmRlcjoxcHggc29saWQgIzAwYTY1YX0uYm94LmJveC1zb2xpZC5ib3gtc3VjY2Vzcz4uYm94LWhlYWRlcntjb2xvcjojZmZmO2JhY2tncm91bmQ6IzAwYTY1YTtiYWNrZ3JvdW5kLWNvbG9yOiMwMGE2NWF9LmJveC5ib3gtc29saWQuYm94LXN1Y2Nlc3M+LmJveC1oZWFkZXIgYSwuYm94LmJveC1zb2xpZC5ib3gtc3VjY2Vzcz4uYm94LWhlYWRlciAuYnRue2NvbG9yOiNmZmZ9LmJveC5ib3gtc29saWQ+LmJveC1oZWFkZXI+LmJveC10b29scyAuYnRue2JvcmRlcjowO2JveC1zaGFkb3c6bm9uZX0uYm94LmJveC1zb2xpZFtjbGFzcyo9J2JnJ10+LmJveC1oZWFkZXJ7Y29sb3I6I2ZmZn0uYm94IC5ib3gtZ3JvdXA+LmJveHttYXJnaW4tYm90dG9tOjVweH0uYm94IC5rbm9iLWxhYmVse3RleHQtYWxpZ246Y2VudGVyO2NvbG9yOiMzMzM7Zm9udC13ZWlnaHQ6MTAwO2ZvbnQtc2l6ZToxMnB4O21hcmdpbi1ib3R0b206MC4zZW19LmJveD4ub3ZlcmxheSwub3ZlcmxheS13cmFwcGVyPi5vdmVybGF5LC5ib3g+LmxvYWRpbmctaW1nLC5vdmVybGF5LXdyYXBwZXI+LmxvYWRpbmctaW1ne3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2xlZnQ6MDt3aWR0aDoxMDAlO2hlaWdodDoxMDAlfS5ib3ggLm92ZXJsYXksLm92ZXJsYXktd3JhcHBlciAub3ZlcmxheXt6LWluZGV4OjUwO2JhY2tncm91bmQ6cmdiYSgyNTUsMjU1LDI1NSwwLjcpO2JvcmRlci1yYWRpdXM6M3B4fS5ib3ggLm92ZXJsYXk+LmZhLC5vdmVybGF5LXdyYXBwZXIgLm92ZXJsYXk+LmZhe3Bvc2l0aW9uOmFic29sdXRlO3RvcDo1MCU7bGVmdDo1MCU7bWFyZ2luLWxlZnQ6LTE1cHg7bWFyZ2luLXRvcDotMTVweDtjb2xvcjojMDAwO2ZvbnQtc2l6ZTozMHB4fS5ib3ggLm92ZXJsYXkuZGFyaywub3ZlcmxheS13cmFwcGVyIC5vdmVybGF5LmRhcmt7YmFja2dyb3VuZDpyZ2JhKDAsMCwwLDAuNSl9LmJveC1oZWFkZXI6YmVmb3JlLC5ib3gtYm9keTpiZWZvcmUsLmJveC1mb290ZXI6YmVmb3JlLC5ib3gtaGVhZGVyOmFmdGVyLC5ib3gtYm9keTphZnRlciwuYm94LWZvb3RlcjphZnRlcntjb250ZW50OlwiIFwiO2Rpc3BsYXk6dGFibGV9LmJveC1oZWFkZXI6YWZ0ZXIsLmJveC1ib2R5OmFmdGVyLC5ib3gtZm9vdGVyOmFmdGVye2NsZWFyOmJvdGh9LmJveC1oZWFkZXJ7Y29sb3I6IzQ0NDtkaXNwbGF5OmJsb2NrO3BhZGRpbmc6MTBweDtwb3NpdGlvbjpyZWxhdGl2ZX0uYm94LWhlYWRlci53aXRoLWJvcmRlcntib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZjRmNGY0fS5jb2xsYXBzZWQtYm94IC5ib3gtaGVhZGVyLndpdGgtYm9yZGVye2JvcmRlci1ib3R0b206bm9uZX0uYm94LWhlYWRlcj4uZmEsLmJveC1oZWFkZXI+LmdseXBoaWNvbiwuYm94LWhlYWRlcj4uaW9uLC5ib3gtaGVhZGVyIC5ib3gtdGl0bGV7ZGlzcGxheTppbmxpbmUtYmxvY2s7Zm9udC1zaXplOjE4cHg7bWFyZ2luOjA7bGluZS1oZWlnaHQ6MX0uYm94LWhlYWRlcj4uZmEsLmJveC1oZWFkZXI+LmdseXBoaWNvbiwuYm94LWhlYWRlcj4uaW9ue21hcmdpbi1yaWdodDo1cHh9LmJveC1oZWFkZXI+LmJveC10b29sc3twb3NpdGlvbjphYnNvbHV0ZTtyaWdodDoxMHB4O3RvcDo1cHh9LmJveC1oZWFkZXI+LmJveC10b29scyBbZGF0YS10b2dnbGU9XCJ0b29sdGlwXCJde3Bvc2l0aW9uOnJlbGF0aXZlfS5ib3gtaGVhZGVyPi5ib3gtdG9vbHMucHVsbC1yaWdodCAuZHJvcGRvd24tbWVudXtyaWdodDowO2xlZnQ6YXV0b30uYm94LWhlYWRlcj4uYm94LXRvb2xzIC5kcm9wZG93bi1tZW51PmxpPmF7Y29sb3I6IzQ0NCFpbXBvcnRhbnR9LmJ0bi1ib3gtdG9vbHtwYWRkaW5nOjVweDtmb250LXNpemU6MTJweDtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O2NvbG9yOiM5N2EwYjN9Lm9wZW4gLmJ0bi1ib3gtdG9vbCwuYnRuLWJveC10b29sOmhvdmVye2NvbG9yOiM2MDZjODR9LmJ0bi1ib3gtdG9vbC5idG46YWN0aXZle2JveC1zaGFkb3c6bm9uZX0uYm94LWJvZHl7Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czowO2JvcmRlci10b3AtcmlnaHQtcmFkaXVzOjA7Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6M3B4O2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6M3B4O3BhZGRpbmc6MTBweH0ubm8taGVhZGVyIC5ib3gtYm9keXtib3JkZXItdG9wLXJpZ2h0LXJhZGl1czozcHg7Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czozcHh9LmJveC1ib2R5Pi50YWJsZXttYXJnaW4tYm90dG9tOjB9LmJveC1ib2R5IC5mY3ttYXJnaW4tdG9wOjVweH0uYm94LWJvZHkgLmZ1bGwtd2lkdGgtY2hhcnR7bWFyZ2luOi0xOXB4fS5ib3gtYm9keS5uby1wYWRkaW5nIC5mdWxsLXdpZHRoLWNoYXJ0e21hcmdpbjotOXB4fS5ib3gtYm9keSAuYm94LXBhbmV7Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czowO2JvcmRlci10b3AtcmlnaHQtcmFkaXVzOjA7Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6MDtib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOjNweH0uYm94LWJvZHkgLmJveC1wYW5lLXJpZ2h0e2JvcmRlci10b3AtbGVmdC1yYWRpdXM6MDtib3JkZXItdG9wLXJpZ2h0LXJhZGl1czowO2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOjNweDtib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOjB9LmJveC1mb290ZXJ7Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czowO2JvcmRlci10b3AtcmlnaHQtcmFkaXVzOjA7Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6M3B4O2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6M3B4O2JvcmRlci10b3A6MXB4IHNvbGlkICNmNGY0ZjQ7cGFkZGluZzoxMHB4O2JhY2tncm91bmQtY29sb3I6I2ZmZn0uY2hhcnQtbGVnZW5ke21hcmdpbjoxMHB4IDB9QG1lZGlhIChtYXgtd2lkdGg6OTkxcHgpey5jaGFydC1sZWdlbmQ+bGl7ZmxvYXQ6bGVmdDttYXJnaW4tcmlnaHQ6MTBweH19LmJveC1jb21tZW50c3tiYWNrZ3JvdW5kOiNmN2Y3Zjd9LmJveC1jb21tZW50cyAuYm94LWNvbW1lbnR7cGFkZGluZzo4cHggMDtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZWVlfS5ib3gtY29tbWVudHMgLmJveC1jb21tZW50OmJlZm9yZSwuYm94LWNvbW1lbnRzIC5ib3gtY29tbWVudDphZnRlcntjb250ZW50OlwiIFwiO2Rpc3BsYXk6dGFibGV9LmJveC1jb21tZW50cyAuYm94LWNvbW1lbnQ6YWZ0ZXJ7Y2xlYXI6Ym90aH0uYm94LWNvbW1lbnRzIC5ib3gtY29tbWVudDpsYXN0LW9mLXR5cGV7Ym9yZGVyLWJvdHRvbTowfS5ib3gtY29tbWVudHMgLmJveC1jb21tZW50OmZpcnN0LW9mLXR5cGV7cGFkZGluZy10b3A6MH0uYm94LWNvbW1lbnRzIC5ib3gtY29tbWVudCBpbWd7ZmxvYXQ6bGVmdH0uYm94LWNvbW1lbnRzIC5jb21tZW50LXRleHR7bWFyZ2luLWxlZnQ6NDBweDtjb2xvcjojNTU1fS5ib3gtY29tbWVudHMgLnVzZXJuYW1le2NvbG9yOiM0NDQ7ZGlzcGxheTpibG9jaztmb250LXdlaWdodDo2MDB9LmJveC1jb21tZW50cyAudGV4dC1tdXRlZHtmb250LXdlaWdodDo0MDA7Zm9udC1zaXplOjEycHh9LnRvZG8tbGlzdHttYXJnaW46MDtwYWRkaW5nOjA7bGlzdC1zdHlsZTpub25lO292ZXJmbG93OmF1dG99LnRvZG8tbGlzdD5saXtib3JkZXItcmFkaXVzOjJweDtwYWRkaW5nOjEwcHg7YmFja2dyb3VuZDojZjRmNGY0O21hcmdpbi1ib3R0b206MnB4O2JvcmRlci1sZWZ0OjJweCBzb2xpZCAjZTZlN2U4O2NvbG9yOiM0NDR9LnRvZG8tbGlzdD5saTpsYXN0LW9mLXR5cGV7bWFyZ2luLWJvdHRvbTowfS50b2RvLWxpc3Q+bGk+aW5wdXRbdHlwZT0nY2hlY2tib3gnXXttYXJnaW46MCAxMHB4IDAgNXB4fS50b2RvLWxpc3Q+bGkgLnRleHR7ZGlzcGxheTppbmxpbmUtYmxvY2s7bWFyZ2luLWxlZnQ6NXB4O2ZvbnQtd2VpZ2h0OjYwMH0udG9kby1saXN0PmxpIC5sYWJlbHttYXJnaW4tbGVmdDoxMHB4O2ZvbnQtc2l6ZTo5cHh9LnRvZG8tbGlzdD5saSAudG9vbHN7ZGlzcGxheTpub25lO2Zsb2F0OnJpZ2h0O2NvbG9yOiNkZDRiMzl9LnRvZG8tbGlzdD5saSAudG9vbHM+LmZhLC50b2RvLWxpc3Q+bGkgLnRvb2xzPi5nbHlwaGljb24sLnRvZG8tbGlzdD5saSAudG9vbHM+LmlvbnttYXJnaW4tcmlnaHQ6NXB4O2N1cnNvcjpwb2ludGVyfS50b2RvLWxpc3Q+bGk6aG92ZXIgLnRvb2xze2Rpc3BsYXk6aW5saW5lLWJsb2NrfS50b2RvLWxpc3Q+bGkuZG9uZXtjb2xvcjojOTk5fS50b2RvLWxpc3Q+bGkuZG9uZSAudGV4dHt0ZXh0LWRlY29yYXRpb246bGluZS10aHJvdWdoO2ZvbnQtd2VpZ2h0OjUwMH0udG9kby1saXN0PmxpLmRvbmUgLmxhYmVse2JhY2tncm91bmQ6I2QyZDZkZSAhaW1wb3J0YW50fS50b2RvLWxpc3QgLmRhbmdlcntib3JkZXItbGVmdC1jb2xvcjojZGQ0YjM5fS50b2RvLWxpc3QgLndhcm5pbmd7Ym9yZGVyLWxlZnQtY29sb3I6I2YzOWMxMn0udG9kby1saXN0IC5pbmZve2JvcmRlci1sZWZ0LWNvbG9yOiMwMGMwZWZ9LnRvZG8tbGlzdCAuc3VjY2Vzc3tib3JkZXItbGVmdC1jb2xvcjojMDBhNjVhfS50b2RvLWxpc3QgLnByaW1hcnl7Ym9yZGVyLWxlZnQtY29sb3I6IzNjOGRiY30udG9kby1saXN0IC5oYW5kbGV7ZGlzcGxheTppbmxpbmUtYmxvY2s7Y3Vyc29yOm1vdmU7bWFyZ2luOjAgNXB4fS5jaGF0e3BhZGRpbmc6NXB4IDIwcHggNXB4IDEwcHh9LmNoYXQgLml0ZW17bWFyZ2luLWJvdHRvbToxMHB4fS5jaGF0IC5pdGVtOmJlZm9yZSwuY2hhdCAuaXRlbTphZnRlcntjb250ZW50OlwiIFwiO2Rpc3BsYXk6dGFibGV9LmNoYXQgLml0ZW06YWZ0ZXJ7Y2xlYXI6Ym90aH0uY2hhdCAuaXRlbT5pbWd7d2lkdGg6NDBweDtoZWlnaHQ6NDBweDtib3JkZXI6MnB4IHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1yYWRpdXM6NTAlfS5jaGF0IC5pdGVtPi5vbmxpbmV7Ym9yZGVyOjJweCBzb2xpZCAjMDBhNjVhfS5jaGF0IC5pdGVtPi5vZmZsaW5le2JvcmRlcjoycHggc29saWQgI2RkNGIzOX0uY2hhdCAuaXRlbT4ubWVzc2FnZXttYXJnaW4tbGVmdDo1NXB4O21hcmdpbi10b3A6LTQwcHh9LmNoYXQgLml0ZW0+Lm1lc3NhZ2U+Lm5hbWV7ZGlzcGxheTpibG9jaztmb250LXdlaWdodDo2MDB9LmNoYXQgLml0ZW0+LmF0dGFjaG1lbnR7Ym9yZGVyLXJhZGl1czozcHg7YmFja2dyb3VuZDojZjRmNGY0O21hcmdpbi1sZWZ0OjY1cHg7bWFyZ2luLXJpZ2h0OjE1cHg7cGFkZGluZzoxMHB4fS5jaGF0IC5pdGVtPi5hdHRhY2htZW50Pmg0e21hcmdpbjowIDAgNXB4IDA7Zm9udC13ZWlnaHQ6NjAwO2ZvbnQtc2l6ZToxNHB4fS5jaGF0IC5pdGVtPi5hdHRhY2htZW50PnAsLmNoYXQgLml0ZW0+LmF0dGFjaG1lbnQ+LmZpbGVuYW1le2ZvbnQtd2VpZ2h0OjYwMDtmb250LXNpemU6MTNweDtmb250LXN0eWxlOml0YWxpYzttYXJnaW46MH0uY2hhdCAuaXRlbT4uYXR0YWNobWVudDpiZWZvcmUsLmNoYXQgLml0ZW0+LmF0dGFjaG1lbnQ6YWZ0ZXJ7Y29udGVudDpcIiBcIjtkaXNwbGF5OnRhYmxlfS5jaGF0IC5pdGVtPi5hdHRhY2htZW50OmFmdGVye2NsZWFyOmJvdGh9LmJveC1pbnB1dHttYXgtd2lkdGg6MjAwcHh9Lm1vZGFsIC5wYW5lbC1ib2R5e2NvbG9yOiM0NDR9LmluZm8tYm94e2Rpc3BsYXk6YmxvY2s7bWluLWhlaWdodDo5MHB4O2JhY2tncm91bmQ6I2ZmZjt3aWR0aDoxMDAlO2JveC1zaGFkb3c6MCAxcHggMXB4IHJnYmEoMCwwLDAsMC4xKTtib3JkZXItcmFkaXVzOjJweDttYXJnaW4tYm90dG9tOjE1cHh9LmluZm8tYm94IHNtYWxse2ZvbnQtc2l6ZToxNHB4fS5pbmZvLWJveCAucHJvZ3Jlc3N7YmFja2dyb3VuZDpyZ2JhKDAsMCwwLDAuMik7bWFyZ2luOjVweCAtMTBweCA1cHggLTEwcHg7aGVpZ2h0OjJweH0uaW5mby1ib3ggLnByb2dyZXNzLC5pbmZvLWJveCAucHJvZ3Jlc3MgLnByb2dyZXNzLWJhcntib3JkZXItcmFkaXVzOjB9LmluZm8tYm94IC5wcm9ncmVzcyAucHJvZ3Jlc3MtYmFye2JhY2tncm91bmQ6I2ZmZn0uaW5mby1ib3gtaWNvbntib3JkZXItdG9wLWxlZnQtcmFkaXVzOjJweDtib3JkZXItdG9wLXJpZ2h0LXJhZGl1czowO2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOjA7Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czoycHg7ZGlzcGxheTpibG9jaztmbG9hdDpsZWZ0O2hlaWdodDo5MHB4O3dpZHRoOjkwcHg7dGV4dC1hbGlnbjpjZW50ZXI7Zm9udC1zaXplOjQ1cHg7bGluZS1oZWlnaHQ6OTBweDtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsMC4yKX0uaW5mby1ib3gtaWNvbj5pbWd7bWF4LXdpZHRoOjEwMCV9LmluZm8tYm94LWNvbnRlbnR7cGFkZGluZzo1cHggMTBweDttYXJnaW4tbGVmdDo5MHB4fS5pbmZvLWJveC1udW1iZXJ7ZGlzcGxheTpibG9jaztmb250LXdlaWdodDpib2xkO2ZvbnQtc2l6ZToxOHB4fS5wcm9ncmVzcy1kZXNjcmlwdGlvbiwuaW5mby1ib3gtdGV4dHtkaXNwbGF5OmJsb2NrO2ZvbnQtc2l6ZToxNHB4O3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpc30uaW5mby1ib3gtdGV4dHt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2V9LmluZm8tYm94LW1vcmV7ZGlzcGxheTpibG9ja30ucHJvZ3Jlc3MtZGVzY3JpcHRpb257bWFyZ2luOjB9LnRpbWVsaW5le3Bvc2l0aW9uOnJlbGF0aXZlO21hcmdpbjowIDAgMzBweCAwO3BhZGRpbmc6MDtsaXN0LXN0eWxlOm5vbmV9LnRpbWVsaW5lOmJlZm9yZXtjb250ZW50OicnO3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2JvdHRvbTowO3dpZHRoOjRweDtiYWNrZ3JvdW5kOiNkZGQ7bGVmdDozMXB4O21hcmdpbjowO2JvcmRlci1yYWRpdXM6MnB4fS50aW1lbGluZT5saXtwb3NpdGlvbjpyZWxhdGl2ZTttYXJnaW4tcmlnaHQ6MTBweDttYXJnaW4tYm90dG9tOjE1cHh9LnRpbWVsaW5lPmxpOmJlZm9yZSwudGltZWxpbmU+bGk6YWZ0ZXJ7Y29udGVudDpcIiBcIjtkaXNwbGF5OnRhYmxlfS50aW1lbGluZT5saTphZnRlcntjbGVhcjpib3RofS50aW1lbGluZT5saT4udGltZWxpbmUtaXRlbXstd2Via2l0LWJveC1zaGFkb3c6MCAxcHggMXB4IHJnYmEoMCwwLDAsMC4xKTtib3gtc2hhZG93OjAgMXB4IDFweCByZ2JhKDAsMCwwLDAuMSk7Ym9yZGVyLXJhZGl1czozcHg7bWFyZ2luLXRvcDowO2JhY2tncm91bmQ6I2ZmZjtjb2xvcjojNDQ0O21hcmdpbi1sZWZ0OjYwcHg7bWFyZ2luLXJpZ2h0OjE1cHg7cGFkZGluZzowO3Bvc2l0aW9uOnJlbGF0aXZlfS50aW1lbGluZT5saT4udGltZWxpbmUtaXRlbT4udGltZXtjb2xvcjojOTk5O2Zsb2F0OnJpZ2h0O3BhZGRpbmc6MTBweDtmb250LXNpemU6MTJweH0udGltZWxpbmU+bGk+LnRpbWVsaW5lLWl0ZW0+LnRpbWVsaW5lLWhlYWRlcnttYXJnaW46MDtjb2xvcjojNTU1O2JvcmRlci1ib3R0b206MXB4IHNvbGlkICNmNGY0ZjQ7cGFkZGluZzoxMHB4O2ZvbnQtc2l6ZToxNnB4O2xpbmUtaGVpZ2h0OjEuMX0udGltZWxpbmU+bGk+LnRpbWVsaW5lLWl0ZW0+LnRpbWVsaW5lLWhlYWRlcj5he2ZvbnQtd2VpZ2h0OjYwMH0udGltZWxpbmU+bGk+LnRpbWVsaW5lLWl0ZW0+LnRpbWVsaW5lLWJvZHksLnRpbWVsaW5lPmxpPi50aW1lbGluZS1pdGVtPi50aW1lbGluZS1mb290ZXJ7cGFkZGluZzoxMHB4fS50aW1lbGluZT5saT4uZmEsLnRpbWVsaW5lPmxpPi5nbHlwaGljb24sLnRpbWVsaW5lPmxpPi5pb257d2lkdGg6MzBweDtoZWlnaHQ6MzBweDtmb250LXNpemU6MTVweDtsaW5lLWhlaWdodDozMHB4O3Bvc2l0aW9uOmFic29sdXRlO2NvbG9yOiM2NjY7YmFja2dyb3VuZDojZDJkNmRlO2JvcmRlci1yYWRpdXM6NTAlO3RleHQtYWxpZ246Y2VudGVyO2xlZnQ6MThweDt0b3A6MH0udGltZWxpbmU+LnRpbWUtbGFiZWw+c3Bhbntmb250LXdlaWdodDo2MDA7cGFkZGluZzo1cHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7YmFja2dyb3VuZC1jb2xvcjojZmZmO2JvcmRlci1yYWRpdXM6NHB4fS50aW1lbGluZS1pbnZlcnNlPmxpPi50aW1lbGluZS1pdGVte2JhY2tncm91bmQ6I2YwZjBmMDtib3JkZXI6MXB4IHNvbGlkICNkZGQ7LXdlYmtpdC1ib3gtc2hhZG93Om5vbmU7Ym94LXNoYWRvdzpub25lfS50aW1lbGluZS1pbnZlcnNlPmxpPi50aW1lbGluZS1pdGVtPi50aW1lbGluZS1oZWFkZXJ7Ym9yZGVyLWJvdHRvbS1jb2xvcjojZGRkfS5idG57Ym9yZGVyLXJhZGl1czozcHg7LXdlYmtpdC1ib3gtc2hhZG93Om5vbmU7Ym94LXNoYWRvdzpub25lO2JvcmRlcjoxcHggc29saWQgdHJhbnNwYXJlbnR9LmJ0bi51cHBlcmNhc2V7dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlfS5idG4uYnRuLWZsYXR7Ym9yZGVyLXJhZGl1czowOy13ZWJraXQtYm94LXNoYWRvdzpub25lOy1tb3otYm94LXNoYWRvdzpub25lO2JveC1zaGFkb3c6bm9uZTtib3JkZXItd2lkdGg6MXB4fS5idG46YWN0aXZley13ZWJraXQtYm94LXNoYWRvdzppbnNldCAwIDNweCA1cHggcmdiYSgwLDAsMCwwLjEyNSk7LW1vei1ib3gtc2hhZG93Omluc2V0IDAgM3B4IDVweCByZ2JhKDAsMCwwLDAuMTI1KTtib3gtc2hhZG93Omluc2V0IDAgM3B4IDVweCByZ2JhKDAsMCwwLDAuMTI1KX0uYnRuOmZvY3Vze291dGxpbmU6bm9uZX0uYnRuLmJ0bi1maWxle3Bvc2l0aW9uOnJlbGF0aXZlO292ZXJmbG93OmhpZGRlbn0uYnRuLmJ0bi1maWxlPmlucHV0W3R5cGU9J2ZpbGUnXXtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtyaWdodDowO21pbi13aWR0aDoxMDAlO21pbi1oZWlnaHQ6MTAwJTtmb250LXNpemU6MTAwcHg7dGV4dC1hbGlnbjpyaWdodDtvcGFjaXR5OjA7ZmlsdGVyOmFscGhhKG9wYWNpdHk9MCk7b3V0bGluZTpub25lO2JhY2tncm91bmQ6d2hpdGU7Y3Vyc29yOmluaGVyaXQ7ZGlzcGxheTpibG9ja30uYnRuLWRlZmF1bHR7YmFja2dyb3VuZC1jb2xvcjojZjRmNGY0O2NvbG9yOiM0NDQ7Ym9yZGVyLWNvbG9yOiNkZGR9LmJ0bi1kZWZhdWx0OmhvdmVyLC5idG4tZGVmYXVsdDphY3RpdmUsLmJ0bi1kZWZhdWx0LmhvdmVye2JhY2tncm91bmQtY29sb3I6I2U3ZTdlN30uYnRuLXByaW1hcnl7YmFja2dyb3VuZC1jb2xvcjojM2M4ZGJjO2JvcmRlci1jb2xvcjojMzY3ZmE5fS5idG4tcHJpbWFyeTpob3ZlciwuYnRuLXByaW1hcnk6YWN0aXZlLC5idG4tcHJpbWFyeS5ob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOiMzNjdmYTl9LmJ0bi1zdWNjZXNze2JhY2tncm91bmQtY29sb3I6IzAwYTY1YTtib3JkZXItY29sb3I6IzAwOGQ0Y30uYnRuLXN1Y2Nlc3M6aG92ZXIsLmJ0bi1zdWNjZXNzOmFjdGl2ZSwuYnRuLXN1Y2Nlc3MuaG92ZXJ7YmFja2dyb3VuZC1jb2xvcjojMDA4ZDRjfS5idG4taW5mb3tiYWNrZ3JvdW5kLWNvbG9yOiMwMGMwZWY7Ym9yZGVyLWNvbG9yOiMwMGFjZDZ9LmJ0bi1pbmZvOmhvdmVyLC5idG4taW5mbzphY3RpdmUsLmJ0bi1pbmZvLmhvdmVye2JhY2tncm91bmQtY29sb3I6IzAwYWNkNn0uYnRuLWRhbmdlcntiYWNrZ3JvdW5kLWNvbG9yOiNkZDRiMzk7Ym9yZGVyLWNvbG9yOiNkNzM5MjV9LmJ0bi1kYW5nZXI6aG92ZXIsLmJ0bi1kYW5nZXI6YWN0aXZlLC5idG4tZGFuZ2VyLmhvdmVye2JhY2tncm91bmQtY29sb3I6I2Q3MzkyNX0uYnRuLXdhcm5pbmd7YmFja2dyb3VuZC1jb2xvcjojZjM5YzEyO2JvcmRlci1jb2xvcjojZTA4ZTBifS5idG4td2FybmluZzpob3ZlciwuYnRuLXdhcm5pbmc6YWN0aXZlLC5idG4td2FybmluZy5ob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOiNlMDhlMGJ9LmJ0bi1vdXRsaW5le2JvcmRlcjoxcHggc29saWQgI2ZmZjtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O2NvbG9yOiNmZmZ9LmJ0bi1vdXRsaW5lOmhvdmVyLC5idG4tb3V0bGluZTpmb2N1cywuYnRuLW91dGxpbmU6YWN0aXZle2NvbG9yOnJnYmEoMjU1LDI1NSwyNTUsMC43KTtib3JkZXItY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwwLjcpfS5idG4tbGlua3std2Via2l0LWJveC1zaGFkb3c6bm9uZTtib3gtc2hhZG93Om5vbmV9LmJ0bltjbGFzcyo9J2JnLSddOmhvdmVyey13ZWJraXQtYm94LXNoYWRvdzppbnNldCAwIDAgMTAwcHggcmdiYSgwLDAsMCwwLjIpO2JveC1zaGFkb3c6aW5zZXQgMCAwIDEwMHB4IHJnYmEoMCwwLDAsMC4yKX0uYnRuLWFwcHtib3JkZXItcmFkaXVzOjNweDtwb3NpdGlvbjpyZWxhdGl2ZTtwYWRkaW5nOjE1cHggNXB4O21hcmdpbjowIDAgMTBweCAxMHB4O21pbi13aWR0aDo4MHB4O2hlaWdodDo2MHB4O3RleHQtYWxpZ246Y2VudGVyO2NvbG9yOiM2NjY7Ym9yZGVyOjFweCBzb2xpZCAjZGRkO2JhY2tncm91bmQtY29sb3I6I2Y0ZjRmNDtmb250LXNpemU6MTJweH0uYnRuLWFwcD4uZmEsLmJ0bi1hcHA+LmdseXBoaWNvbiwuYnRuLWFwcD4uaW9ue2ZvbnQtc2l6ZToyMHB4O2Rpc3BsYXk6YmxvY2t9LmJ0bi1hcHA6aG92ZXJ7YmFja2dyb3VuZDojZjRmNGY0O2NvbG9yOiM0NDQ7Ym9yZGVyLWNvbG9yOiNhYWF9LmJ0bi1hcHA6YWN0aXZlLC5idG4tYXBwOmZvY3Vzey13ZWJraXQtYm94LXNoYWRvdzppbnNldCAwIDNweCA1cHggcmdiYSgwLDAsMCwwLjEyNSk7LW1vei1ib3gtc2hhZG93Omluc2V0IDAgM3B4IDVweCByZ2JhKDAsMCwwLDAuMTI1KTtib3gtc2hhZG93Omluc2V0IDAgM3B4IDVweCByZ2JhKDAsMCwwLDAuMTI1KX0uYnRuLWFwcD4uYmFkZ2V7cG9zaXRpb246YWJzb2x1dGU7dG9wOi0zcHg7cmlnaHQ6LTEwcHg7Zm9udC1zaXplOjEwcHg7Zm9udC13ZWlnaHQ6NDAwfS5jYWxsb3V0e2JvcmRlci1yYWRpdXM6M3B4O21hcmdpbjowIDAgMjBweCAwO3BhZGRpbmc6MTVweCAzMHB4IDE1cHggMTVweDtib3JkZXItbGVmdDo1cHggc29saWQgI2VlZX0uY2FsbG91dCBhe2NvbG9yOiNmZmY7dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZX0uY2FsbG91dCBhOmhvdmVye2NvbG9yOiNlZWV9LmNhbGxvdXQgaDR7bWFyZ2luLXRvcDowO2ZvbnQtd2VpZ2h0OjYwMH0uY2FsbG91dCBwOmxhc3QtY2hpbGR7bWFyZ2luLWJvdHRvbTowfS5jYWxsb3V0IGNvZGUsLmNhbGxvdXQgLmhpZ2hsaWdodHtiYWNrZ3JvdW5kLWNvbG9yOiNmZmZ9LmNhbGxvdXQuY2FsbG91dC1kYW5nZXJ7Ym9yZGVyLWNvbG9yOiNjMjMzMjF9LmNhbGxvdXQuY2FsbG91dC13YXJuaW5ne2JvcmRlci1jb2xvcjojYzg3ZjBhfS5jYWxsb3V0LmNhbGxvdXQtaW5mb3tib3JkZXItY29sb3I6IzAwOTdiY30uY2FsbG91dC5jYWxsb3V0LXN1Y2Nlc3N7Ym9yZGVyLWNvbG9yOiMwMDczM2V9LmFsZXJ0e2JvcmRlci1yYWRpdXM6M3B4fS5hbGVydCBoNHtmb250LXdlaWdodDo2MDB9LmFsZXJ0IC5pY29ue21hcmdpbi1yaWdodDoxMHB4fS5hbGVydCAuY2xvc2V7Y29sb3I6IzAwMDtvcGFjaXR5Oi4yO2ZpbHRlcjphbHBoYShvcGFjaXR5PTIwKX0uYWxlcnQgLmNsb3NlOmhvdmVye29wYWNpdHk6LjU7ZmlsdGVyOmFscGhhKG9wYWNpdHk9NTApfS5hbGVydCBhe2NvbG9yOiNmZmY7dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZX0uYWxlcnQtc3VjY2Vzc3tib3JkZXItY29sb3I6IzAwOGQ0Y30uYWxlcnQtZGFuZ2VyLC5hbGVydC1lcnJvcntib3JkZXItY29sb3I6I2Q3MzkyNX0uYWxlcnQtd2FybmluZ3tib3JkZXItY29sb3I6I2UwOGUwYn0uYWxlcnQtaW5mb3tib3JkZXItY29sb3I6IzAwYWNkNn0ubmF2PmxpPmE6aG92ZXIsLm5hdj5saT5hOmFjdGl2ZSwubmF2PmxpPmE6Zm9jdXN7Y29sb3I6IzQ0NDtiYWNrZ3JvdW5kOiNmN2Y3Zjd9Lm5hdi1waWxscz5saT5he2JvcmRlci1yYWRpdXM6MDtib3JkZXItdG9wOjNweCBzb2xpZCB0cmFuc3BhcmVudDtjb2xvcjojNDQ0fS5uYXYtcGlsbHM+bGk+YT4uZmEsLm5hdi1waWxscz5saT5hPi5nbHlwaGljb24sLm5hdi1waWxscz5saT5hPi5pb257bWFyZ2luLXJpZ2h0OjVweH0ubmF2LXBpbGxzPmxpLmFjdGl2ZT5hLC5uYXYtcGlsbHM+bGkuYWN0aXZlPmE6aG92ZXIsLm5hdi1waWxscz5saS5hY3RpdmU+YTpmb2N1c3tib3JkZXItdG9wLWNvbG9yOiMzYzhkYmN9Lm5hdi1waWxscz5saS5hY3RpdmU+YXtmb250LXdlaWdodDo2MDB9Lm5hdi1zdGFja2VkPmxpPmF7Ym9yZGVyLXJhZGl1czowO2JvcmRlci10b3A6MDtib3JkZXItbGVmdDozcHggc29saWQgdHJhbnNwYXJlbnQ7Y29sb3I6IzQ0NH0ubmF2LXN0YWNrZWQ+bGkuYWN0aXZlPmEsLm5hdi1zdGFja2VkPmxpLmFjdGl2ZT5hOmhvdmVye2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Y29sb3I6IzQ0NDtib3JkZXItdG9wOjA7Ym9yZGVyLWxlZnQtY29sb3I6IzNjOGRiY30ubmF2LXN0YWNrZWQ+bGkuaGVhZGVye2JvcmRlci1ib3R0b206MXB4IHNvbGlkICNkZGQ7Y29sb3I6Izc3NzttYXJnaW4tYm90dG9tOjEwcHg7cGFkZGluZzo1cHggMTBweDt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2V9Lm5hdi10YWJzLWN1c3RvbXttYXJnaW4tYm90dG9tOjIwcHg7YmFja2dyb3VuZDojZmZmO2JveC1zaGFkb3c6MCAxcHggMXB4IHJnYmEoMCwwLDAsMC4xKTtib3JkZXItcmFkaXVzOjNweH0ubmF2LXRhYnMtY3VzdG9tPi5uYXYtdGFic3ttYXJnaW46MDtib3JkZXItYm90dG9tLWNvbG9yOiNmNGY0ZjQ7Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6M3B4O2JvcmRlci10b3AtbGVmdC1yYWRpdXM6M3B4fS5uYXYtdGFicy1jdXN0b20+Lm5hdi10YWJzPmxpe2JvcmRlci10b3A6M3B4IHNvbGlkIHRyYW5zcGFyZW50O21hcmdpbi1ib3R0b206LTJweDttYXJnaW4tcmlnaHQ6NXB4fS5uYXYtdGFicy1jdXN0b20+Lm5hdi10YWJzPmxpLmRpc2FibGVkPmF7Y29sb3I6Izc3N30ubmF2LXRhYnMtY3VzdG9tPi5uYXYtdGFicz5saT5he2NvbG9yOiM0NDQ7Ym9yZGVyLXJhZGl1czowfS5uYXYtdGFicy1jdXN0b20+Lm5hdi10YWJzPmxpPmEudGV4dC1tdXRlZHtjb2xvcjojOTk5fS5uYXYtdGFicy1jdXN0b20+Lm5hdi10YWJzPmxpPmEsLm5hdi10YWJzLWN1c3RvbT4ubmF2LXRhYnM+bGk+YTpob3ZlcntiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O21hcmdpbjowfS5uYXYtdGFicy1jdXN0b20+Lm5hdi10YWJzPmxpPmE6aG92ZXJ7Y29sb3I6Izk5OX0ubmF2LXRhYnMtY3VzdG9tPi5uYXYtdGFicz5saTpub3QoLmFjdGl2ZSk+YTpob3ZlciwubmF2LXRhYnMtY3VzdG9tPi5uYXYtdGFicz5saTpub3QoLmFjdGl2ZSk+YTpmb2N1cywubmF2LXRhYnMtY3VzdG9tPi5uYXYtdGFicz5saTpub3QoLmFjdGl2ZSk+YTphY3RpdmV7Ym9yZGVyLWNvbG9yOnRyYW5zcGFyZW50fS5uYXYtdGFicy1jdXN0b20+Lm5hdi10YWJzPmxpLmFjdGl2ZXtib3JkZXItdG9wLWNvbG9yOiMzYzhkYmN9Lm5hdi10YWJzLWN1c3RvbT4ubmF2LXRhYnM+bGkuYWN0aXZlPmEsLm5hdi10YWJzLWN1c3RvbT4ubmF2LXRhYnM+bGkuYWN0aXZlOmhvdmVyPmF7YmFja2dyb3VuZC1jb2xvcjojZmZmO2NvbG9yOiM0NDR9Lm5hdi10YWJzLWN1c3RvbT4ubmF2LXRhYnM+bGkuYWN0aXZlPmF7Ym9yZGVyLXRvcC1jb2xvcjp0cmFuc3BhcmVudDtib3JkZXItbGVmdC1jb2xvcjojZjRmNGY0O2JvcmRlci1yaWdodC1jb2xvcjojZjRmNGY0fS5uYXYtdGFicy1jdXN0b20+Lm5hdi10YWJzPmxpOmZpcnN0LW9mLXR5cGV7bWFyZ2luLWxlZnQ6MH0ubmF2LXRhYnMtY3VzdG9tPi5uYXYtdGFicz5saTpmaXJzdC1vZi10eXBlLmFjdGl2ZT5he2JvcmRlci1sZWZ0LWNvbG9yOnRyYW5zcGFyZW50fS5uYXYtdGFicy1jdXN0b20+Lm5hdi10YWJzLnB1bGwtcmlnaHR7ZmxvYXQ6bm9uZSAhaW1wb3J0YW50fS5uYXYtdGFicy1jdXN0b20+Lm5hdi10YWJzLnB1bGwtcmlnaHQ+bGl7ZmxvYXQ6cmlnaHR9Lm5hdi10YWJzLWN1c3RvbT4ubmF2LXRhYnMucHVsbC1yaWdodD5saTpmaXJzdC1vZi10eXBle21hcmdpbi1yaWdodDowfS5uYXYtdGFicy1jdXN0b20+Lm5hdi10YWJzLnB1bGwtcmlnaHQ+bGk6Zmlyc3Qtb2YtdHlwZT5he2JvcmRlci1sZWZ0LXdpZHRoOjFweH0ubmF2LXRhYnMtY3VzdG9tPi5uYXYtdGFicy5wdWxsLXJpZ2h0PmxpOmZpcnN0LW9mLXR5cGUuYWN0aXZlPmF7Ym9yZGVyLWxlZnQtY29sb3I6I2Y0ZjRmNDtib3JkZXItcmlnaHQtY29sb3I6dHJhbnNwYXJlbnR9Lm5hdi10YWJzLWN1c3RvbT4ubmF2LXRhYnM+bGkuaGVhZGVye2xpbmUtaGVpZ2h0OjM1cHg7cGFkZGluZzowIDEwcHg7Zm9udC1zaXplOjIwcHg7Y29sb3I6IzQ0NH0ubmF2LXRhYnMtY3VzdG9tPi5uYXYtdGFicz5saS5oZWFkZXI+LmZhLC5uYXYtdGFicy1jdXN0b20+Lm5hdi10YWJzPmxpLmhlYWRlcj4uZ2x5cGhpY29uLC5uYXYtdGFicy1jdXN0b20+Lm5hdi10YWJzPmxpLmhlYWRlcj4uaW9ue21hcmdpbi1yaWdodDo1cHh9Lm5hdi10YWJzLWN1c3RvbT4udGFiLWNvbnRlbnR7YmFja2dyb3VuZDojZmZmO3BhZGRpbmc6MTBweDtib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czozcHg7Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czozcHh9Lm5hdi10YWJzLWN1c3RvbSAuZHJvcGRvd24ub3Blbj5hOmFjdGl2ZSwubmF2LXRhYnMtY3VzdG9tIC5kcm9wZG93bi5vcGVuPmE6Zm9jdXN7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtjb2xvcjojOTk5fS5uYXYtdGFicy1jdXN0b20udGFiLXByaW1hcnk+Lm5hdi10YWJzPmxpLmFjdGl2ZXtib3JkZXItdG9wLWNvbG9yOiMzYzhkYmN9Lm5hdi10YWJzLWN1c3RvbS50YWItaW5mbz4ubmF2LXRhYnM+bGkuYWN0aXZle2JvcmRlci10b3AtY29sb3I6IzAwYzBlZn0ubmF2LXRhYnMtY3VzdG9tLnRhYi1kYW5nZXI+Lm5hdi10YWJzPmxpLmFjdGl2ZXtib3JkZXItdG9wLWNvbG9yOiNkZDRiMzl9Lm5hdi10YWJzLWN1c3RvbS50YWItd2FybmluZz4ubmF2LXRhYnM+bGkuYWN0aXZle2JvcmRlci10b3AtY29sb3I6I2YzOWMxMn0ubmF2LXRhYnMtY3VzdG9tLnRhYi1zdWNjZXNzPi5uYXYtdGFicz5saS5hY3RpdmV7Ym9yZGVyLXRvcC1jb2xvcjojMDBhNjVhfS5uYXYtdGFicy1jdXN0b20udGFiLWRlZmF1bHQ+Lm5hdi10YWJzPmxpLmFjdGl2ZXtib3JkZXItdG9wLWNvbG9yOiNkMmQ2ZGV9LnBhZ2luYXRpb24+bGk+YXtiYWNrZ3JvdW5kOiNmYWZhZmE7Y29sb3I6IzY2Nn0ucGFnaW5hdGlvbi5wYWdpbmF0aW9uLWZsYXQ+bGk+YXtib3JkZXItcmFkaXVzOjAgIWltcG9ydGFudH0ucHJvZHVjdHMtbGlzdHtsaXN0LXN0eWxlOm5vbmU7bWFyZ2luOjA7cGFkZGluZzowfS5wcm9kdWN0cy1saXN0Pi5pdGVte2JvcmRlci1yYWRpdXM6M3B4Oy13ZWJraXQtYm94LXNoYWRvdzowIDFweCAxcHggcmdiYSgwLDAsMCwwLjEpO2JveC1zaGFkb3c6MCAxcHggMXB4IHJnYmEoMCwwLDAsMC4xKTtwYWRkaW5nOjEwcHggMDtiYWNrZ3JvdW5kOiNmZmZ9LnByb2R1Y3RzLWxpc3Q+Lml0ZW06YmVmb3JlLC5wcm9kdWN0cy1saXN0Pi5pdGVtOmFmdGVye2NvbnRlbnQ6XCIgXCI7ZGlzcGxheTp0YWJsZX0ucHJvZHVjdHMtbGlzdD4uaXRlbTphZnRlcntjbGVhcjpib3RofS5wcm9kdWN0cy1saXN0IC5wcm9kdWN0LWltZ3tmbG9hdDpsZWZ0fS5wcm9kdWN0cy1saXN0IC5wcm9kdWN0LWltZyBpbWd7d2lkdGg6NTBweDtoZWlnaHQ6NTBweH0ucHJvZHVjdHMtbGlzdCAucHJvZHVjdC1pbmZve21hcmdpbi1sZWZ0OjYwcHh9LnByb2R1Y3RzLWxpc3QgLnByb2R1Y3QtdGl0bGV7Zm9udC13ZWlnaHQ6NjAwfS5wcm9kdWN0cy1saXN0IC5wcm9kdWN0LWRlc2NyaXB0aW9ue2Rpc3BsYXk6YmxvY2s7Y29sb3I6Izk5OTtvdmVyZmxvdzpoaWRkZW47d2hpdGUtc3BhY2U6bm93cmFwO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXN9LnByb2R1Y3QtbGlzdC1pbi1ib3g+Lml0ZW17LXdlYmtpdC1ib3gtc2hhZG93Om5vbmU7Ym94LXNoYWRvdzpub25lO2JvcmRlci1yYWRpdXM6MDtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZjRmNGY0fS5wcm9kdWN0LWxpc3QtaW4tYm94Pi5pdGVtOmxhc3Qtb2YtdHlwZXtib3JkZXItYm90dG9tLXdpZHRoOjB9LnRhYmxlPnRoZWFkPnRyPnRoLC50YWJsZT50Ym9keT50cj50aCwudGFibGU+dGZvb3Q+dHI+dGgsLnRhYmxlPnRoZWFkPnRyPnRkLC50YWJsZT50Ym9keT50cj50ZCwudGFibGU+dGZvb3Q+dHI+dGR7Ym9yZGVyLXRvcDoxcHggc29saWQgI2Y0ZjRmNH0udGFibGU+dGhlYWQ+dHI+dGh7Ym9yZGVyLWJvdHRvbToycHggc29saWQgI2Y0ZjRmNH0udGFibGUgdHIgdGQgLnByb2dyZXNze21hcmdpbi10b3A6NXB4fS50YWJsZS1ib3JkZXJlZHtib3JkZXI6MXB4IHNvbGlkICNmNGY0ZjR9LnRhYmxlLWJvcmRlcmVkPnRoZWFkPnRyPnRoLC50YWJsZS1ib3JkZXJlZD50Ym9keT50cj50aCwudGFibGUtYm9yZGVyZWQ+dGZvb3Q+dHI+dGgsLnRhYmxlLWJvcmRlcmVkPnRoZWFkPnRyPnRkLC50YWJsZS1ib3JkZXJlZD50Ym9keT50cj50ZCwudGFibGUtYm9yZGVyZWQ+dGZvb3Q+dHI+dGR7Ym9yZGVyOjFweCBzb2xpZCAjZjRmNGY0fS50YWJsZS1ib3JkZXJlZD50aGVhZD50cj50aCwudGFibGUtYm9yZGVyZWQ+dGhlYWQ+dHI+dGR7Ym9yZGVyLWJvdHRvbS13aWR0aDoycHh9LnRhYmxlLm5vLWJvcmRlciwudGFibGUubm8tYm9yZGVyIHRkLC50YWJsZS5uby1ib3JkZXIgdGh7Ym9yZGVyOjB9dGFibGUudGV4dC1jZW50ZXIsdGFibGUudGV4dC1jZW50ZXIgdGQsdGFibGUudGV4dC1jZW50ZXIgdGh7dGV4dC1hbGlnbjpjZW50ZXJ9LnRhYmxlLmFsaWduIHRoe3RleHQtYWxpZ246bGVmdH0udGFibGUuYWxpZ24gdGR7dGV4dC1hbGlnbjpyaWdodH0ubGFiZWwtZGVmYXVsdHtiYWNrZ3JvdW5kLWNvbG9yOiNkMmQ2ZGU7Y29sb3I6IzQ0NH0uZGlyZWN0LWNoYXQgLmJveC1ib2R5e2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOjA7Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czowO3Bvc2l0aW9uOnJlbGF0aXZlO292ZXJmbG93LXg6aGlkZGVuO3BhZGRpbmc6MH0uZGlyZWN0LWNoYXQuY2hhdC1wYW5lLW9wZW4gLmRpcmVjdC1jaGF0LWNvbnRhY3Rzey13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZSgwLCAwKTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZSgwLCAwKTstby10cmFuc2Zvcm06dHJhbnNsYXRlKDAsIDApO3RyYW5zZm9ybTp0cmFuc2xhdGUoMCwgMCl9LmRpcmVjdC1jaGF0LW1lc3NhZ2Vzey13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZSgwLCAwKTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZSgwLCAwKTstby10cmFuc2Zvcm06dHJhbnNsYXRlKDAsIDApO3RyYW5zZm9ybTp0cmFuc2xhdGUoMCwgMCk7cGFkZGluZzoxMHB4O2hlaWdodDoyNTBweDtvdmVyZmxvdzphdXRvfS5kaXJlY3QtY2hhdC1tc2csLmRpcmVjdC1jaGF0LXRleHR7ZGlzcGxheTpibG9ja30uZGlyZWN0LWNoYXQtbXNne21hcmdpbi1ib3R0b206MTBweH0uZGlyZWN0LWNoYXQtbXNnOmJlZm9yZSwuZGlyZWN0LWNoYXQtbXNnOmFmdGVye2NvbnRlbnQ6XCIgXCI7ZGlzcGxheTp0YWJsZX0uZGlyZWN0LWNoYXQtbXNnOmFmdGVye2NsZWFyOmJvdGh9LmRpcmVjdC1jaGF0LW1lc3NhZ2VzLC5kaXJlY3QtY2hhdC1jb250YWN0c3std2Via2l0LXRyYW5zaXRpb246LXdlYmtpdC10cmFuc2Zvcm0gLjVzIGVhc2UtaW4tb3V0Oy1tb3otdHJhbnNpdGlvbjotbW96LXRyYW5zZm9ybSAuNXMgZWFzZS1pbi1vdXQ7LW8tdHJhbnNpdGlvbjotby10cmFuc2Zvcm0gLjVzIGVhc2UtaW4tb3V0O3RyYW5zaXRpb246dHJhbnNmb3JtIC41cyBlYXNlLWluLW91dH0uZGlyZWN0LWNoYXQtdGV4dHtib3JkZXItcmFkaXVzOjVweDtwb3NpdGlvbjpyZWxhdGl2ZTtwYWRkaW5nOjVweCAxMHB4O2JhY2tncm91bmQ6I2QyZDZkZTtib3JkZXI6MXB4IHNvbGlkICNkMmQ2ZGU7bWFyZ2luOjVweCAwIDAgNTBweDtjb2xvcjojNDQ0fS5kaXJlY3QtY2hhdC10ZXh0OmFmdGVyLC5kaXJlY3QtY2hhdC10ZXh0OmJlZm9yZXtwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDoxMDAlO3RvcDoxNXB4O2JvcmRlcjpzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItcmlnaHQtY29sb3I6I2QyZDZkZTtjb250ZW50OicgJztoZWlnaHQ6MDt3aWR0aDowO3BvaW50ZXItZXZlbnRzOm5vbmV9LmRpcmVjdC1jaGF0LXRleHQ6YWZ0ZXJ7Ym9yZGVyLXdpZHRoOjVweDttYXJnaW4tdG9wOi01cHh9LmRpcmVjdC1jaGF0LXRleHQ6YmVmb3Jle2JvcmRlci13aWR0aDo2cHg7bWFyZ2luLXRvcDotNnB4fS5yaWdodCAuZGlyZWN0LWNoYXQtdGV4dHttYXJnaW4tcmlnaHQ6NTBweDttYXJnaW4tbGVmdDowfS5yaWdodCAuZGlyZWN0LWNoYXQtdGV4dDphZnRlciwucmlnaHQgLmRpcmVjdC1jaGF0LXRleHQ6YmVmb3Jle3JpZ2h0OmF1dG87bGVmdDoxMDAlO2JvcmRlci1yaWdodC1jb2xvcjp0cmFuc3BhcmVudDtib3JkZXItbGVmdC1jb2xvcjojZDJkNmRlfS5kaXJlY3QtY2hhdC1pbWd7Ym9yZGVyLXJhZGl1czo1MCU7ZmxvYXQ6bGVmdDt3aWR0aDo0MHB4O2hlaWdodDo0MHB4fS5yaWdodCAuZGlyZWN0LWNoYXQtaW1ne2Zsb2F0OnJpZ2h0fS5kaXJlY3QtY2hhdC1pbmZve2Rpc3BsYXk6YmxvY2s7bWFyZ2luLWJvdHRvbToycHg7Zm9udC1zaXplOjEycHh9LmRpcmVjdC1jaGF0LW5hbWV7Zm9udC13ZWlnaHQ6NjAwfS5kaXJlY3QtY2hhdC10aW1lc3RhbXB7Y29sb3I6Izk5OX0uZGlyZWN0LWNoYXQtY29udGFjdHMtb3BlbiAuZGlyZWN0LWNoYXQtY29udGFjdHN7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlKDAsIDApOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlKDAsIDApOy1vLXRyYW5zZm9ybTp0cmFuc2xhdGUoMCwgMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZSgwLCAwKX0uZGlyZWN0LWNoYXQtY29udGFjdHN7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlKDEwMSUsIDApOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlKDEwMSUsIDApOy1vLXRyYW5zZm9ybTp0cmFuc2xhdGUoMTAxJSwgMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZSgxMDElLCAwKTtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtoZWlnaHQ6MjUwcHg7d2lkdGg6MTAwJTtiYWNrZ3JvdW5kOiMyMjJkMzI7Y29sb3I6I2ZmZjtvdmVyZmxvdzphdXRvfS5jb250YWN0cy1saXN0Pmxpe2JvcmRlci1ib3R0b206MXB4IHNvbGlkIHJnYmEoMCwwLDAsMC4yKTtwYWRkaW5nOjEwcHg7bWFyZ2luOjB9LmNvbnRhY3RzLWxpc3Q+bGk6YmVmb3JlLC5jb250YWN0cy1saXN0PmxpOmFmdGVye2NvbnRlbnQ6XCIgXCI7ZGlzcGxheTp0YWJsZX0uY29udGFjdHMtbGlzdD5saTphZnRlcntjbGVhcjpib3RofS5jb250YWN0cy1saXN0PmxpOmxhc3Qtb2YtdHlwZXtib3JkZXItYm90dG9tOm5vbmV9LmNvbnRhY3RzLWxpc3QtaW1ne2JvcmRlci1yYWRpdXM6NTAlO3dpZHRoOjQwcHg7ZmxvYXQ6bGVmdH0uY29udGFjdHMtbGlzdC1pbmZve21hcmdpbi1sZWZ0OjQ1cHg7Y29sb3I6I2ZmZn0uY29udGFjdHMtbGlzdC1uYW1lLC5jb250YWN0cy1saXN0LXN0YXR1c3tkaXNwbGF5OmJsb2NrfS5jb250YWN0cy1saXN0LW5hbWV7Zm9udC13ZWlnaHQ6NjAwfS5jb250YWN0cy1saXN0LXN0YXR1c3tmb250LXNpemU6MTJweH0uY29udGFjdHMtbGlzdC1kYXRle2NvbG9yOiNhYWE7Zm9udC13ZWlnaHQ6bm9ybWFsfS5jb250YWN0cy1saXN0LW1zZ3tjb2xvcjojOTk5fS5kaXJlY3QtY2hhdC1kYW5nZXIgLnJpZ2h0Pi5kaXJlY3QtY2hhdC10ZXh0e2JhY2tncm91bmQ6I2RkNGIzOTtib3JkZXItY29sb3I6I2RkNGIzOTtjb2xvcjojZmZmfS5kaXJlY3QtY2hhdC1kYW5nZXIgLnJpZ2h0Pi5kaXJlY3QtY2hhdC10ZXh0OmFmdGVyLC5kaXJlY3QtY2hhdC1kYW5nZXIgLnJpZ2h0Pi5kaXJlY3QtY2hhdC10ZXh0OmJlZm9yZXtib3JkZXItbGVmdC1jb2xvcjojZGQ0YjM5fS5kaXJlY3QtY2hhdC1wcmltYXJ5IC5yaWdodD4uZGlyZWN0LWNoYXQtdGV4dHtiYWNrZ3JvdW5kOiMzYzhkYmM7Ym9yZGVyLWNvbG9yOiMzYzhkYmM7Y29sb3I6I2ZmZn0uZGlyZWN0LWNoYXQtcHJpbWFyeSAucmlnaHQ+LmRpcmVjdC1jaGF0LXRleHQ6YWZ0ZXIsLmRpcmVjdC1jaGF0LXByaW1hcnkgLnJpZ2h0Pi5kaXJlY3QtY2hhdC10ZXh0OmJlZm9yZXtib3JkZXItbGVmdC1jb2xvcjojM2M4ZGJjfS5kaXJlY3QtY2hhdC13YXJuaW5nIC5yaWdodD4uZGlyZWN0LWNoYXQtdGV4dHtiYWNrZ3JvdW5kOiNmMzljMTI7Ym9yZGVyLWNvbG9yOiNmMzljMTI7Y29sb3I6I2ZmZn0uZGlyZWN0LWNoYXQtd2FybmluZyAucmlnaHQ+LmRpcmVjdC1jaGF0LXRleHQ6YWZ0ZXIsLmRpcmVjdC1jaGF0LXdhcm5pbmcgLnJpZ2h0Pi5kaXJlY3QtY2hhdC10ZXh0OmJlZm9yZXtib3JkZXItbGVmdC1jb2xvcjojZjM5YzEyfS5kaXJlY3QtY2hhdC1pbmZvIC5yaWdodD4uZGlyZWN0LWNoYXQtdGV4dHtiYWNrZ3JvdW5kOiMwMGMwZWY7Ym9yZGVyLWNvbG9yOiMwMGMwZWY7Y29sb3I6I2ZmZn0uZGlyZWN0LWNoYXQtaW5mbyAucmlnaHQ+LmRpcmVjdC1jaGF0LXRleHQ6YWZ0ZXIsLmRpcmVjdC1jaGF0LWluZm8gLnJpZ2h0Pi5kaXJlY3QtY2hhdC10ZXh0OmJlZm9yZXtib3JkZXItbGVmdC1jb2xvcjojMDBjMGVmfS5kaXJlY3QtY2hhdC1zdWNjZXNzIC5yaWdodD4uZGlyZWN0LWNoYXQtdGV4dHtiYWNrZ3JvdW5kOiMwMGE2NWE7Ym9yZGVyLWNvbG9yOiMwMGE2NWE7Y29sb3I6I2ZmZn0uZGlyZWN0LWNoYXQtc3VjY2VzcyAucmlnaHQ+LmRpcmVjdC1jaGF0LXRleHQ6YWZ0ZXIsLmRpcmVjdC1jaGF0LXN1Y2Nlc3MgLnJpZ2h0Pi5kaXJlY3QtY2hhdC10ZXh0OmJlZm9yZXtib3JkZXItbGVmdC1jb2xvcjojMDBhNjVhfS51c2Vycy1saXN0Pmxpe3dpZHRoOjI1JTtmbG9hdDpsZWZ0O3BhZGRpbmc6MTBweDt0ZXh0LWFsaWduOmNlbnRlcn0udXNlcnMtbGlzdD5saSBpbWd7Ym9yZGVyLXJhZGl1czo1MCU7bWF4LXdpZHRoOjEwMCU7aGVpZ2h0OmF1dG99LnVzZXJzLWxpc3Q+bGk+YTpob3ZlciwudXNlcnMtbGlzdD5saT5hOmhvdmVyIC51c2Vycy1saXN0LW5hbWV7Y29sb3I6Izk5OX0udXNlcnMtbGlzdC1uYW1lLC51c2Vycy1saXN0LWRhdGV7ZGlzcGxheTpibG9ja30udXNlcnMtbGlzdC1uYW1le2ZvbnQtd2VpZ2h0OjYwMDtjb2xvcjojNDQ0O292ZXJmbG93OmhpZGRlbjt3aGl0ZS1zcGFjZTpub3dyYXA7dGV4dC1vdmVyZmxvdzplbGxpcHNpc30udXNlcnMtbGlzdC1kYXRle2NvbG9yOiM5OTk7Zm9udC1zaXplOjEycHh9LmNhcm91c2VsLWNvbnRyb2wubGVmdCwuY2Fyb3VzZWwtY29udHJvbC5yaWdodHtiYWNrZ3JvdW5kLWltYWdlOm5vbmV9LmNhcm91c2VsLWNvbnRyb2w+LmZhe2ZvbnQtc2l6ZTo0MHB4O3Bvc2l0aW9uOmFic29sdXRlO3RvcDo1MCU7ei1pbmRleDo1O2Rpc3BsYXk6aW5saW5lLWJsb2NrO21hcmdpbi10b3A6LTIwcHh9Lm1vZGFse2JhY2tncm91bmQ6cmdiYSgwLDAsMCwwLjMpfS5tb2RhbC1jb250ZW50e2JvcmRlci1yYWRpdXM6MDstd2Via2l0LWJveC1zaGFkb3c6MCAycHggM3B4IHJnYmEoMCwwLDAsMC4xMjUpO2JveC1zaGFkb3c6MCAycHggM3B4IHJnYmEoMCwwLDAsMC4xMjUpO2JvcmRlcjowfUBtZWRpYSAobWluLXdpZHRoOjc2OHB4KXsubW9kYWwtY29udGVudHstd2Via2l0LWJveC1zaGFkb3c6MCAycHggM3B4IHJnYmEoMCwwLDAsMC4xMjUpO2JveC1zaGFkb3c6MCAycHggM3B4IHJnYmEoMCwwLDAsMC4xMjUpfX0ubW9kYWwtaGVhZGVye2JvcmRlci1ib3R0b20tY29sb3I6I2Y0ZjRmNH0ubW9kYWwtZm9vdGVye2JvcmRlci10b3AtY29sb3I6I2Y0ZjRmNH0ubW9kYWwtcHJpbWFyeSAubW9kYWwtaGVhZGVyLC5tb2RhbC1wcmltYXJ5IC5tb2RhbC1mb290ZXJ7Ym9yZGVyLWNvbG9yOiMzMDcwOTV9Lm1vZGFsLXdhcm5pbmcgLm1vZGFsLWhlYWRlciwubW9kYWwtd2FybmluZyAubW9kYWwtZm9vdGVye2JvcmRlci1jb2xvcjojYzg3ZjBhfS5tb2RhbC1pbmZvIC5tb2RhbC1oZWFkZXIsLm1vZGFsLWluZm8gLm1vZGFsLWZvb3Rlcntib3JkZXItY29sb3I6IzAwOTdiY30ubW9kYWwtc3VjY2VzcyAubW9kYWwtaGVhZGVyLC5tb2RhbC1zdWNjZXNzIC5tb2RhbC1mb290ZXJ7Ym9yZGVyLWNvbG9yOiMwMDczM2V9Lm1vZGFsLWRhbmdlciAubW9kYWwtaGVhZGVyLC5tb2RhbC1kYW5nZXIgLm1vZGFsLWZvb3Rlcntib3JkZXItY29sb3I6I2MyMzMyMX0uYm94LXdpZGdldHtib3JkZXI6bm9uZTtwb3NpdGlvbjpyZWxhdGl2ZX0ud2lkZ2V0LXVzZXIgLndpZGdldC11c2VyLWhlYWRlcntwYWRkaW5nOjIwcHg7aGVpZ2h0OjEyMHB4O2JvcmRlci10b3AtcmlnaHQtcmFkaXVzOjNweDtib3JkZXItdG9wLWxlZnQtcmFkaXVzOjNweH0ud2lkZ2V0LXVzZXIgLndpZGdldC11c2VyLXVzZXJuYW1le21hcmdpbi10b3A6MDttYXJnaW4tYm90dG9tOjVweDtmb250LXNpemU6MjVweDtmb250LXdlaWdodDozMDA7dGV4dC1zaGFkb3c6MCAxcHggMXB4IHJnYmEoMCwwLDAsMC4yKX0ud2lkZ2V0LXVzZXIgLndpZGdldC11c2VyLWRlc2N7bWFyZ2luLXRvcDowfS53aWRnZXQtdXNlciAud2lkZ2V0LXVzZXItaW1hZ2V7cG9zaXRpb246YWJzb2x1dGU7dG9wOjY1cHg7bGVmdDo1MCU7bWFyZ2luLWxlZnQ6LTQ1cHh9LndpZGdldC11c2VyIC53aWRnZXQtdXNlci1pbWFnZT5pbWd7d2lkdGg6OTBweDtoZWlnaHQ6YXV0bztib3JkZXI6M3B4IHNvbGlkICNmZmZ9LndpZGdldC11c2VyIC5ib3gtZm9vdGVye3BhZGRpbmctdG9wOjMwcHh9LndpZGdldC11c2VyLTIgLndpZGdldC11c2VyLWhlYWRlcntwYWRkaW5nOjIwcHg7Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6M3B4O2JvcmRlci10b3AtbGVmdC1yYWRpdXM6M3B4fS53aWRnZXQtdXNlci0yIC53aWRnZXQtdXNlci11c2VybmFtZXttYXJnaW4tdG9wOjVweDttYXJnaW4tYm90dG9tOjVweDtmb250LXNpemU6MjVweDtmb250LXdlaWdodDozMDB9LndpZGdldC11c2VyLTIgLndpZGdldC11c2VyLWRlc2N7bWFyZ2luLXRvcDowfS53aWRnZXQtdXNlci0yIC53aWRnZXQtdXNlci11c2VybmFtZSwud2lkZ2V0LXVzZXItMiAud2lkZ2V0LXVzZXItZGVzY3ttYXJnaW4tbGVmdDo3NXB4fS53aWRnZXQtdXNlci0yIC53aWRnZXQtdXNlci1pbWFnZT5pbWd7d2lkdGg6NjVweDtoZWlnaHQ6YXV0bztmbG9hdDpsZWZ0fS50cmVldmlldy1tZW51e2Rpc3BsYXk6bm9uZTtsaXN0LXN0eWxlOm5vbmU7cGFkZGluZzowO21hcmdpbjowO3BhZGRpbmctbGVmdDo1cHh9LnRyZWV2aWV3LW1lbnUgLnRyZWV2aWV3LW1lbnV7cGFkZGluZy1sZWZ0OjIwcHh9LnRyZWV2aWV3LW1lbnU+bGl7bWFyZ2luOjB9LnRyZWV2aWV3LW1lbnU+bGk+YXtwYWRkaW5nOjVweCA1cHggNXB4IDE1cHg7ZGlzcGxheTpibG9jaztmb250LXNpemU6MTRweH0udHJlZXZpZXctbWVudT5saT5hPi5mYSwudHJlZXZpZXctbWVudT5saT5hPi5nbHlwaGljb24sLnRyZWV2aWV3LW1lbnU+bGk+YT4uaW9ue3dpZHRoOjIwcHh9LnRyZWV2aWV3LW1lbnU+bGk+YT4ucHVsbC1yaWdodC1jb250YWluZXI+LmZhLWFuZ2xlLWxlZnQsLnRyZWV2aWV3LW1lbnU+bGk+YT4ucHVsbC1yaWdodC1jb250YWluZXI+LmZhLWFuZ2xlLWRvd24sLnRyZWV2aWV3LW1lbnU+bGk+YT4uZmEtYW5nbGUtbGVmdCwudHJlZXZpZXctbWVudT5saT5hPi5mYS1hbmdsZS1kb3due3dpZHRoOmF1dG99Lm1haWxib3gtbWVzc2FnZXM+LnRhYmxle21hcmdpbjowfS5tYWlsYm94LWNvbnRyb2xze3BhZGRpbmc6NXB4fS5tYWlsYm94LWNvbnRyb2xzLndpdGgtYm9yZGVye2JvcmRlci1ib3R0b206MXB4IHNvbGlkICNmNGY0ZjR9Lm1haWxib3gtcmVhZC1pbmZve2JvcmRlci1ib3R0b206MXB4IHNvbGlkICNmNGY0ZjQ7cGFkZGluZzoxMHB4fS5tYWlsYm94LXJlYWQtaW5mbyBoM3tmb250LXNpemU6MjBweDttYXJnaW46MH0ubWFpbGJveC1yZWFkLWluZm8gaDV7bWFyZ2luOjA7cGFkZGluZzo1cHggMCAwIDB9Lm1haWxib3gtcmVhZC10aW1le2NvbG9yOiM5OTk7Zm9udC1zaXplOjEzcHh9Lm1haWxib3gtcmVhZC1tZXNzYWdle3BhZGRpbmc6MTBweH0ubWFpbGJveC1hdHRhY2htZW50cyBsaXtmbG9hdDpsZWZ0O3dpZHRoOjIwMHB4O2JvcmRlcjoxcHggc29saWQgI2VlZTttYXJnaW4tYm90dG9tOjEwcHg7bWFyZ2luLXJpZ2h0OjEwcHh9Lm1haWxib3gtYXR0YWNobWVudC1uYW1le2ZvbnQtd2VpZ2h0OmJvbGQ7Y29sb3I6IzY2Nn0ubWFpbGJveC1hdHRhY2htZW50LWljb24sLm1haWxib3gtYXR0YWNobWVudC1pbmZvLC5tYWlsYm94LWF0dGFjaG1lbnQtc2l6ZXtkaXNwbGF5OmJsb2NrfS5tYWlsYm94LWF0dGFjaG1lbnQtaW5mb3twYWRkaW5nOjEwcHg7YmFja2dyb3VuZDojZjRmNGY0fS5tYWlsYm94LWF0dGFjaG1lbnQtc2l6ZXtjb2xvcjojOTk5O2ZvbnQtc2l6ZToxMnB4fS5tYWlsYm94LWF0dGFjaG1lbnQtaWNvbnt0ZXh0LWFsaWduOmNlbnRlcjtmb250LXNpemU6NjVweDtjb2xvcjojNjY2O3BhZGRpbmc6MjBweCAxMHB4fS5tYWlsYm94LWF0dGFjaG1lbnQtaWNvbi5oYXMtaW1ne3BhZGRpbmc6MH0ubWFpbGJveC1hdHRhY2htZW50LWljb24uaGFzLWltZz5pbWd7bWF4LXdpZHRoOjEwMCU7aGVpZ2h0OmF1dG99LmxvY2tzY3JlZW57YmFja2dyb3VuZDojZDJkNmRlfS5sb2Nrc2NyZWVuLWxvZ297Zm9udC1zaXplOjM1cHg7dGV4dC1hbGlnbjpjZW50ZXI7bWFyZ2luLWJvdHRvbToyNXB4O2ZvbnQtd2VpZ2h0OjMwMH0ubG9ja3NjcmVlbi1sb2dvIGF7Y29sb3I6IzQ0NH0ubG9ja3NjcmVlbi13cmFwcGVye21heC13aWR0aDo0MDBweDttYXJnaW46MCBhdXRvO21hcmdpbi10b3A6MTAlfS5sb2Nrc2NyZWVuIC5sb2Nrc2NyZWVuLW5hbWV7dGV4dC1hbGlnbjpjZW50ZXI7Zm9udC13ZWlnaHQ6NjAwfS5sb2Nrc2NyZWVuLWl0ZW17Ym9yZGVyLXJhZGl1czo0cHg7cGFkZGluZzowO2JhY2tncm91bmQ6I2ZmZjtwb3NpdGlvbjpyZWxhdGl2ZTttYXJnaW46MTBweCBhdXRvIDMwcHggYXV0bzt3aWR0aDoyOTBweH0ubG9ja3NjcmVlbi1pbWFnZXtib3JkZXItcmFkaXVzOjUwJTtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0Oi0xMHB4O3RvcDotMjVweDtiYWNrZ3JvdW5kOiNmZmY7cGFkZGluZzo1cHg7ei1pbmRleDoxMH0ubG9ja3NjcmVlbi1pbWFnZT5pbWd7Ym9yZGVyLXJhZGl1czo1MCU7d2lkdGg6NzBweDtoZWlnaHQ6NzBweH0ubG9ja3NjcmVlbi1jcmVkZW50aWFsc3ttYXJnaW4tbGVmdDo3MHB4fS5sb2Nrc2NyZWVuLWNyZWRlbnRpYWxzIC5mb3JtLWNvbnRyb2x7Ym9yZGVyOjB9LmxvY2tzY3JlZW4tY3JlZGVudGlhbHMgLmJ0bntiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7Ym9yZGVyOjA7cGFkZGluZzowIDEwcHh9LmxvY2tzY3JlZW4tZm9vdGVye21hcmdpbi10b3A6MTBweH0ubG9naW4tbG9nbywucmVnaXN0ZXItbG9nb3tmb250LXNpemU6MzVweDt0ZXh0LWFsaWduOmNlbnRlcjttYXJnaW4tYm90dG9tOjI1cHg7Zm9udC13ZWlnaHQ6MzAwfS5sb2dpbi1sb2dvIGEsLnJlZ2lzdGVyLWxvZ28gYXtjb2xvcjojNDQ0fS5sb2dpbi1wYWdlLC5yZWdpc3Rlci1wYWdle2JhY2tncm91bmQ6I2QyZDZkZX0ubG9naW4tYm94LC5yZWdpc3Rlci1ib3h7d2lkdGg6MzYwcHg7bWFyZ2luOjclIGF1dG99QG1lZGlhIChtYXgtd2lkdGg6NzY4cHgpey5sb2dpbi1ib3gsLnJlZ2lzdGVyLWJveHt3aWR0aDo5MCU7bWFyZ2luLXRvcDoyMHB4fX0ubG9naW4tYm94LWJvZHksLnJlZ2lzdGVyLWJveC1ib2R5e2JhY2tncm91bmQ6I2ZmZjtwYWRkaW5nOjIwcHg7Ym9yZGVyLXRvcDowO2NvbG9yOiM2NjZ9LmxvZ2luLWJveC1ib2R5IC5mb3JtLWNvbnRyb2wtZmVlZGJhY2ssLnJlZ2lzdGVyLWJveC1ib2R5IC5mb3JtLWNvbnRyb2wtZmVlZGJhY2t7Y29sb3I6Izc3N30ubG9naW4tYm94LW1zZywucmVnaXN0ZXItYm94LW1zZ3ttYXJnaW46MDt0ZXh0LWFsaWduOmNlbnRlcjtwYWRkaW5nOjAgMjBweCAyMHB4IDIwcHh9LnNvY2lhbC1hdXRoLWxpbmtze21hcmdpbjoxMHB4IDB9LmVycm9yLXBhZ2V7d2lkdGg6NjAwcHg7bWFyZ2luOjIwcHggYXV0byAwIGF1dG99QG1lZGlhIChtYXgtd2lkdGg6OTkxcHgpey5lcnJvci1wYWdle3dpZHRoOjEwMCV9fS5lcnJvci1wYWdlPi5oZWFkbGluZXtmbG9hdDpsZWZ0O2ZvbnQtc2l6ZToxMDBweDtmb250LXdlaWdodDozMDB9QG1lZGlhIChtYXgtd2lkdGg6OTkxcHgpey5lcnJvci1wYWdlPi5oZWFkbGluZXtmbG9hdDpub25lO3RleHQtYWxpZ246Y2VudGVyfX0uZXJyb3ItcGFnZT4uZXJyb3ItY29udGVudHttYXJnaW4tbGVmdDoxOTBweDtkaXNwbGF5OmJsb2NrfUBtZWRpYSAobWF4LXdpZHRoOjk5MXB4KXsuZXJyb3ItcGFnZT4uZXJyb3ItY29udGVudHttYXJnaW4tbGVmdDowfX0uZXJyb3ItcGFnZT4uZXJyb3ItY29udGVudD5oM3tmb250LXdlaWdodDozMDA7Zm9udC1zaXplOjI1cHh9QG1lZGlhIChtYXgtd2lkdGg6OTkxcHgpey5lcnJvci1wYWdlPi5lcnJvci1jb250ZW50Pmgze3RleHQtYWxpZ246Y2VudGVyfX0uaW52b2ljZXtwb3NpdGlvbjpyZWxhdGl2ZTtiYWNrZ3JvdW5kOiNmZmY7Ym9yZGVyOjFweCBzb2xpZCAjZjRmNGY0O3BhZGRpbmc6MjBweDttYXJnaW46MTBweCAyNXB4fS5pbnZvaWNlLXRpdGxle21hcmdpbi10b3A6MH0ucHJvZmlsZS11c2VyLWltZ3ttYXJnaW46MCBhdXRvO3dpZHRoOjEwMHB4O3BhZGRpbmc6M3B4O2JvcmRlcjozcHggc29saWQgI2QyZDZkZX0ucHJvZmlsZS11c2VybmFtZXtmb250LXNpemU6MjFweDttYXJnaW4tdG9wOjVweH0ucG9zdHtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZDJkNmRlO21hcmdpbi1ib3R0b206MTVweDtwYWRkaW5nLWJvdHRvbToxNXB4O2NvbG9yOiM2NjZ9LnBvc3Q6bGFzdC1vZi10eXBle2JvcmRlci1ib3R0b206MDttYXJnaW4tYm90dG9tOjA7cGFkZGluZy1ib3R0b206MH0ucG9zdCAudXNlci1ibG9ja3ttYXJnaW4tYm90dG9tOjE1cHh9LmJ0bi1zb2NpYWx7cG9zaXRpb246cmVsYXRpdmU7cGFkZGluZy1sZWZ0OjQ0cHg7dGV4dC1hbGlnbjpsZWZ0O3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpc30uYnRuLXNvY2lhbD46Zmlyc3QtY2hpbGR7cG9zaXRpb246YWJzb2x1dGU7bGVmdDowO3RvcDowO2JvdHRvbTowO3dpZHRoOjMycHg7bGluZS1oZWlnaHQ6MzRweDtmb250LXNpemU6MS42ZW07dGV4dC1hbGlnbjpjZW50ZXI7Ym9yZGVyLXJpZ2h0OjFweCBzb2xpZCByZ2JhKDAsMCwwLDAuMil9LmJ0bi1zb2NpYWwuYnRuLWxne3BhZGRpbmctbGVmdDo2MXB4fS5idG4tc29jaWFsLmJ0bi1sZz46Zmlyc3QtY2hpbGR7bGluZS1oZWlnaHQ6NDVweDt3aWR0aDo0NXB4O2ZvbnQtc2l6ZToxLjhlbX0uYnRuLXNvY2lhbC5idG4tc217cGFkZGluZy1sZWZ0OjM4cHh9LmJ0bi1zb2NpYWwuYnRuLXNtPjpmaXJzdC1jaGlsZHtsaW5lLWhlaWdodDoyOHB4O3dpZHRoOjI4cHg7Zm9udC1zaXplOjEuNGVtfS5idG4tc29jaWFsLmJ0bi14c3twYWRkaW5nLWxlZnQ6MzBweH0uYnRuLXNvY2lhbC5idG4teHM+OmZpcnN0LWNoaWxke2xpbmUtaGVpZ2h0OjIwcHg7d2lkdGg6MjBweDtmb250LXNpemU6MS4yZW19LmJ0bi1zb2NpYWwtaWNvbntwb3NpdGlvbjpyZWxhdGl2ZTtwYWRkaW5nLWxlZnQ6NDRweDt0ZXh0LWFsaWduOmxlZnQ7d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2hlaWdodDozNHB4O3dpZHRoOjM0cHg7cGFkZGluZzowfS5idG4tc29jaWFsLWljb24+OmZpcnN0LWNoaWxke3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MDt0b3A6MDtib3R0b206MDt3aWR0aDozMnB4O2xpbmUtaGVpZ2h0OjM0cHg7Zm9udC1zaXplOjEuNmVtO3RleHQtYWxpZ246Y2VudGVyO2JvcmRlci1yaWdodDoxcHggc29saWQgcmdiYSgwLDAsMCwwLjIpfS5idG4tc29jaWFsLWljb24uYnRuLWxne3BhZGRpbmctbGVmdDo2MXB4fS5idG4tc29jaWFsLWljb24uYnRuLWxnPjpmaXJzdC1jaGlsZHtsaW5lLWhlaWdodDo0NXB4O3dpZHRoOjQ1cHg7Zm9udC1zaXplOjEuOGVtfS5idG4tc29jaWFsLWljb24uYnRuLXNte3BhZGRpbmctbGVmdDozOHB4fS5idG4tc29jaWFsLWljb24uYnRuLXNtPjpmaXJzdC1jaGlsZHtsaW5lLWhlaWdodDoyOHB4O3dpZHRoOjI4cHg7Zm9udC1zaXplOjEuNGVtfS5idG4tc29jaWFsLWljb24uYnRuLXhze3BhZGRpbmctbGVmdDozMHB4fS5idG4tc29jaWFsLWljb24uYnRuLXhzPjpmaXJzdC1jaGlsZHtsaW5lLWhlaWdodDoyMHB4O3dpZHRoOjIwcHg7Zm9udC1zaXplOjEuMmVtfS5idG4tc29jaWFsLWljb24+OmZpcnN0LWNoaWxke2JvcmRlcjpub25lO3RleHQtYWxpZ246Y2VudGVyO3dpZHRoOjEwMCV9LmJ0bi1zb2NpYWwtaWNvbi5idG4tbGd7aGVpZ2h0OjQ1cHg7d2lkdGg6NDVweDtwYWRkaW5nLWxlZnQ6MDtwYWRkaW5nLXJpZ2h0OjB9LmJ0bi1zb2NpYWwtaWNvbi5idG4tc217aGVpZ2h0OjMwcHg7d2lkdGg6MzBweDtwYWRkaW5nLWxlZnQ6MDtwYWRkaW5nLXJpZ2h0OjB9LmJ0bi1zb2NpYWwtaWNvbi5idG4teHN7aGVpZ2h0OjIycHg7d2lkdGg6MjJweDtwYWRkaW5nLWxlZnQ6MDtwYWRkaW5nLXJpZ2h0OjB9LmJ0bi1hZG57Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOiNkODdhNjg7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsMC4yKX0uYnRuLWFkbjpmb2N1cywuYnRuLWFkbi5mb2N1c3tjb2xvcjojZmZmO2JhY2tncm91bmQtY29sb3I6I2NlNTYzZjtib3JkZXItY29sb3I6cmdiYSgwLDAsMCwwLjIpfS5idG4tYWRuOmhvdmVye2NvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjojY2U1NjNmO2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLDAuMil9LmJ0bi1hZG46YWN0aXZlLC5idG4tYWRuLmFjdGl2ZSwub3Blbj4uZHJvcGRvd24tdG9nZ2xlLmJ0bi1hZG57Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOiNjZTU2M2Y7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsMC4yKX0uYnRuLWFkbjphY3RpdmUsLmJ0bi1hZG4uYWN0aXZlLC5vcGVuPi5kcm9wZG93bi10b2dnbGUuYnRuLWFkbntiYWNrZ3JvdW5kLWltYWdlOm5vbmV9LmJ0bi1hZG4gLmJhZGdle2NvbG9yOiNkODdhNjg7YmFja2dyb3VuZC1jb2xvcjojZmZmfS5idG4tYml0YnVja2V0e2NvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjojMjA1MDgxO2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLDAuMil9LmJ0bi1iaXRidWNrZXQ6Zm9jdXMsLmJ0bi1iaXRidWNrZXQuZm9jdXN7Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOiMxNjM3NTg7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsMC4yKX0uYnRuLWJpdGJ1Y2tldDpob3Zlcntjb2xvcjojZmZmO2JhY2tncm91bmQtY29sb3I6IzE2Mzc1ODtib3JkZXItY29sb3I6cmdiYSgwLDAsMCwwLjIpfS5idG4tYml0YnVja2V0OmFjdGl2ZSwuYnRuLWJpdGJ1Y2tldC5hY3RpdmUsLm9wZW4+LmRyb3Bkb3duLXRvZ2dsZS5idG4tYml0YnVja2V0e2NvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjojMTYzNzU4O2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLDAuMil9LmJ0bi1iaXRidWNrZXQ6YWN0aXZlLC5idG4tYml0YnVja2V0LmFjdGl2ZSwub3Blbj4uZHJvcGRvd24tdG9nZ2xlLmJ0bi1iaXRidWNrZXR7YmFja2dyb3VuZC1pbWFnZTpub25lfS5idG4tYml0YnVja2V0IC5iYWRnZXtjb2xvcjojMjA1MDgxO2JhY2tncm91bmQtY29sb3I6I2ZmZn0uYnRuLWRyb3Bib3h7Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOiMxMDg3ZGQ7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsMC4yKX0uYnRuLWRyb3Bib3g6Zm9jdXMsLmJ0bi1kcm9wYm94LmZvY3Vze2NvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjojMGQ2YWFkO2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLDAuMil9LmJ0bi1kcm9wYm94OmhvdmVye2NvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjojMGQ2YWFkO2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLDAuMil9LmJ0bi1kcm9wYm94OmFjdGl2ZSwuYnRuLWRyb3Bib3guYWN0aXZlLC5vcGVuPi5kcm9wZG93bi10b2dnbGUuYnRuLWRyb3Bib3h7Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOiMwZDZhYWQ7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsMC4yKX0uYnRuLWRyb3Bib3g6YWN0aXZlLC5idG4tZHJvcGJveC5hY3RpdmUsLm9wZW4+LmRyb3Bkb3duLXRvZ2dsZS5idG4tZHJvcGJveHtiYWNrZ3JvdW5kLWltYWdlOm5vbmV9LmJ0bi1kcm9wYm94IC5iYWRnZXtjb2xvcjojMTA4N2RkO2JhY2tncm91bmQtY29sb3I6I2ZmZn0uYnRuLWZhY2Vib29re2NvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjojM2I1OTk4O2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLDAuMil9LmJ0bi1mYWNlYm9vazpmb2N1cywuYnRuLWZhY2Vib29rLmZvY3Vze2NvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjojMmQ0MzczO2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLDAuMil9LmJ0bi1mYWNlYm9vazpob3Zlcntjb2xvcjojZmZmO2JhY2tncm91bmQtY29sb3I6IzJkNDM3Mztib3JkZXItY29sb3I6cmdiYSgwLDAsMCwwLjIpfS5idG4tZmFjZWJvb2s6YWN0aXZlLC5idG4tZmFjZWJvb2suYWN0aXZlLC5vcGVuPi5kcm9wZG93bi10b2dnbGUuYnRuLWZhY2Vib29re2NvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjojMmQ0MzczO2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLDAuMil9LmJ0bi1mYWNlYm9vazphY3RpdmUsLmJ0bi1mYWNlYm9vay5hY3RpdmUsLm9wZW4+LmRyb3Bkb3duLXRvZ2dsZS5idG4tZmFjZWJvb2t7YmFja2dyb3VuZC1pbWFnZTpub25lfS5idG4tZmFjZWJvb2sgLmJhZGdle2NvbG9yOiMzYjU5OTg7YmFja2dyb3VuZC1jb2xvcjojZmZmfS5idG4tZmxpY2tye2NvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjojZmYwMDg0O2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLDAuMil9LmJ0bi1mbGlja3I6Zm9jdXMsLmJ0bi1mbGlja3IuZm9jdXN7Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOiNjYzAwNmE7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsMC4yKX0uYnRuLWZsaWNrcjpob3Zlcntjb2xvcjojZmZmO2JhY2tncm91bmQtY29sb3I6I2NjMDA2YTtib3JkZXItY29sb3I6cmdiYSgwLDAsMCwwLjIpfS5idG4tZmxpY2tyOmFjdGl2ZSwuYnRuLWZsaWNrci5hY3RpdmUsLm9wZW4+LmRyb3Bkb3duLXRvZ2dsZS5idG4tZmxpY2tye2NvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjojY2MwMDZhO2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLDAuMil9LmJ0bi1mbGlja3I6YWN0aXZlLC5idG4tZmxpY2tyLmFjdGl2ZSwub3Blbj4uZHJvcGRvd24tdG9nZ2xlLmJ0bi1mbGlja3J7YmFja2dyb3VuZC1pbWFnZTpub25lfS5idG4tZmxpY2tyIC5iYWRnZXtjb2xvcjojZmYwMDg0O2JhY2tncm91bmQtY29sb3I6I2ZmZn0uYnRuLWZvdXJzcXVhcmV7Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOiNmOTQ4Nzc7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsMC4yKX0uYnRuLWZvdXJzcXVhcmU6Zm9jdXMsLmJ0bi1mb3Vyc3F1YXJlLmZvY3Vze2NvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjojZjcxNzUyO2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLDAuMil9LmJ0bi1mb3Vyc3F1YXJlOmhvdmVye2NvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjojZjcxNzUyO2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLDAuMil9LmJ0bi1mb3Vyc3F1YXJlOmFjdGl2ZSwuYnRuLWZvdXJzcXVhcmUuYWN0aXZlLC5vcGVuPi5kcm9wZG93bi10b2dnbGUuYnRuLWZvdXJzcXVhcmV7Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOiNmNzE3NTI7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsMC4yKX0uYnRuLWZvdXJzcXVhcmU6YWN0aXZlLC5idG4tZm91cnNxdWFyZS5hY3RpdmUsLm9wZW4+LmRyb3Bkb3duLXRvZ2dsZS5idG4tZm91cnNxdWFyZXtiYWNrZ3JvdW5kLWltYWdlOm5vbmV9LmJ0bi1mb3Vyc3F1YXJlIC5iYWRnZXtjb2xvcjojZjk0ODc3O2JhY2tncm91bmQtY29sb3I6I2ZmZn0uYnRuLWdpdGh1Yntjb2xvcjojZmZmO2JhY2tncm91bmQtY29sb3I6IzQ0NDtib3JkZXItY29sb3I6cmdiYSgwLDAsMCwwLjIpfS5idG4tZ2l0aHViOmZvY3VzLC5idG4tZ2l0aHViLmZvY3Vze2NvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjojMmIyYjJiO2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLDAuMil9LmJ0bi1naXRodWI6aG92ZXJ7Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOiMyYjJiMmI7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsMC4yKX0uYnRuLWdpdGh1YjphY3RpdmUsLmJ0bi1naXRodWIuYWN0aXZlLC5vcGVuPi5kcm9wZG93bi10b2dnbGUuYnRuLWdpdGh1Yntjb2xvcjojZmZmO2JhY2tncm91bmQtY29sb3I6IzJiMmIyYjtib3JkZXItY29sb3I6cmdiYSgwLDAsMCwwLjIpfS5idG4tZ2l0aHViOmFjdGl2ZSwuYnRuLWdpdGh1Yi5hY3RpdmUsLm9wZW4+LmRyb3Bkb3duLXRvZ2dsZS5idG4tZ2l0aHVie2JhY2tncm91bmQtaW1hZ2U6bm9uZX0uYnRuLWdpdGh1YiAuYmFkZ2V7Y29sb3I6IzQ0NDtiYWNrZ3JvdW5kLWNvbG9yOiNmZmZ9LmJ0bi1nb29nbGV7Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOiNkZDRiMzk7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsMC4yKX0uYnRuLWdvb2dsZTpmb2N1cywuYnRuLWdvb2dsZS5mb2N1c3tjb2xvcjojZmZmO2JhY2tncm91bmQtY29sb3I6I2MyMzMyMTtib3JkZXItY29sb3I6cmdiYSgwLDAsMCwwLjIpfS5idG4tZ29vZ2xlOmhvdmVye2NvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjojYzIzMzIxO2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLDAuMil9LmJ0bi1nb29nbGU6YWN0aXZlLC5idG4tZ29vZ2xlLmFjdGl2ZSwub3Blbj4uZHJvcGRvd24tdG9nZ2xlLmJ0bi1nb29nbGV7Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOiNjMjMzMjE7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsMC4yKX0uYnRuLWdvb2dsZTphY3RpdmUsLmJ0bi1nb29nbGUuYWN0aXZlLC5vcGVuPi5kcm9wZG93bi10b2dnbGUuYnRuLWdvb2dsZXtiYWNrZ3JvdW5kLWltYWdlOm5vbmV9LmJ0bi1nb29nbGUgLmJhZGdle2NvbG9yOiNkZDRiMzk7YmFja2dyb3VuZC1jb2xvcjojZmZmfS5idG4taW5zdGFncmFte2NvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjojM2Y3MjliO2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLDAuMil9LmJ0bi1pbnN0YWdyYW06Zm9jdXMsLmJ0bi1pbnN0YWdyYW0uZm9jdXN7Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOiMzMDU3Nzc7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsMC4yKX0uYnRuLWluc3RhZ3JhbTpob3Zlcntjb2xvcjojZmZmO2JhY2tncm91bmQtY29sb3I6IzMwNTc3Nztib3JkZXItY29sb3I6cmdiYSgwLDAsMCwwLjIpfS5idG4taW5zdGFncmFtOmFjdGl2ZSwuYnRuLWluc3RhZ3JhbS5hY3RpdmUsLm9wZW4+LmRyb3Bkb3duLXRvZ2dsZS5idG4taW5zdGFncmFte2NvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjojMzA1Nzc3O2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLDAuMil9LmJ0bi1pbnN0YWdyYW06YWN0aXZlLC5idG4taW5zdGFncmFtLmFjdGl2ZSwub3Blbj4uZHJvcGRvd24tdG9nZ2xlLmJ0bi1pbnN0YWdyYW17YmFja2dyb3VuZC1pbWFnZTpub25lfS5idG4taW5zdGFncmFtIC5iYWRnZXtjb2xvcjojM2Y3MjliO2JhY2tncm91bmQtY29sb3I6I2ZmZn0uYnRuLWxpbmtlZGlue2NvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjojMDA3YmI2O2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLDAuMil9LmJ0bi1saW5rZWRpbjpmb2N1cywuYnRuLWxpbmtlZGluLmZvY3Vze2NvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjojMDA1OTgzO2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLDAuMil9LmJ0bi1saW5rZWRpbjpob3Zlcntjb2xvcjojZmZmO2JhY2tncm91bmQtY29sb3I6IzAwNTk4Mztib3JkZXItY29sb3I6cmdiYSgwLDAsMCwwLjIpfS5idG4tbGlua2VkaW46YWN0aXZlLC5idG4tbGlua2VkaW4uYWN0aXZlLC5vcGVuPi5kcm9wZG93bi10b2dnbGUuYnRuLWxpbmtlZGlue2NvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjojMDA1OTgzO2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLDAuMil9LmJ0bi1saW5rZWRpbjphY3RpdmUsLmJ0bi1saW5rZWRpbi5hY3RpdmUsLm9wZW4+LmRyb3Bkb3duLXRvZ2dsZS5idG4tbGlua2VkaW57YmFja2dyb3VuZC1pbWFnZTpub25lfS5idG4tbGlua2VkaW4gLmJhZGdle2NvbG9yOiMwMDdiYjY7YmFja2dyb3VuZC1jb2xvcjojZmZmfS5idG4tbWljcm9zb2Z0e2NvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjojMjY3MmVjO2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLDAuMil9LmJ0bi1taWNyb3NvZnQ6Zm9jdXMsLmJ0bi1taWNyb3NvZnQuZm9jdXN7Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOiMxMjVhY2Q7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsMC4yKX0uYnRuLW1pY3Jvc29mdDpob3Zlcntjb2xvcjojZmZmO2JhY2tncm91bmQtY29sb3I6IzEyNWFjZDtib3JkZXItY29sb3I6cmdiYSgwLDAsMCwwLjIpfS5idG4tbWljcm9zb2Z0OmFjdGl2ZSwuYnRuLW1pY3Jvc29mdC5hY3RpdmUsLm9wZW4+LmRyb3Bkb3duLXRvZ2dsZS5idG4tbWljcm9zb2Z0e2NvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjojMTI1YWNkO2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLDAuMil9LmJ0bi1taWNyb3NvZnQ6YWN0aXZlLC5idG4tbWljcm9zb2Z0LmFjdGl2ZSwub3Blbj4uZHJvcGRvd24tdG9nZ2xlLmJ0bi1taWNyb3NvZnR7YmFja2dyb3VuZC1pbWFnZTpub25lfS5idG4tbWljcm9zb2Z0IC5iYWRnZXtjb2xvcjojMjY3MmVjO2JhY2tncm91bmQtY29sb3I6I2ZmZn0uYnRuLW9wZW5pZHtjb2xvcjojZmZmO2JhY2tncm91bmQtY29sb3I6I2Y3OTMxZTtib3JkZXItY29sb3I6cmdiYSgwLDAsMCwwLjIpfS5idG4tb3BlbmlkOmZvY3VzLC5idG4tb3BlbmlkLmZvY3Vze2NvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjojZGE3OTA4O2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLDAuMil9LmJ0bi1vcGVuaWQ6aG92ZXJ7Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOiNkYTc5MDg7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsMC4yKX0uYnRuLW9wZW5pZDphY3RpdmUsLmJ0bi1vcGVuaWQuYWN0aXZlLC5vcGVuPi5kcm9wZG93bi10b2dnbGUuYnRuLW9wZW5pZHtjb2xvcjojZmZmO2JhY2tncm91bmQtY29sb3I6I2RhNzkwODtib3JkZXItY29sb3I6cmdiYSgwLDAsMCwwLjIpfS5idG4tb3BlbmlkOmFjdGl2ZSwuYnRuLW9wZW5pZC5hY3RpdmUsLm9wZW4+LmRyb3Bkb3duLXRvZ2dsZS5idG4tb3Blbmlke2JhY2tncm91bmQtaW1hZ2U6bm9uZX0uYnRuLW9wZW5pZCAuYmFkZ2V7Y29sb3I6I2Y3OTMxZTtiYWNrZ3JvdW5kLWNvbG9yOiNmZmZ9LmJ0bi1waW50ZXJlc3R7Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOiNjYjIwMjc7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsMC4yKX0uYnRuLXBpbnRlcmVzdDpmb2N1cywuYnRuLXBpbnRlcmVzdC5mb2N1c3tjb2xvcjojZmZmO2JhY2tncm91bmQtY29sb3I6IzlmMTkxZjtib3JkZXItY29sb3I6cmdiYSgwLDAsMCwwLjIpfS5idG4tcGludGVyZXN0OmhvdmVye2NvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjojOWYxOTFmO2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLDAuMil9LmJ0bi1waW50ZXJlc3Q6YWN0aXZlLC5idG4tcGludGVyZXN0LmFjdGl2ZSwub3Blbj4uZHJvcGRvd24tdG9nZ2xlLmJ0bi1waW50ZXJlc3R7Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOiM5ZjE5MWY7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsMC4yKX0uYnRuLXBpbnRlcmVzdDphY3RpdmUsLmJ0bi1waW50ZXJlc3QuYWN0aXZlLC5vcGVuPi5kcm9wZG93bi10b2dnbGUuYnRuLXBpbnRlcmVzdHtiYWNrZ3JvdW5kLWltYWdlOm5vbmV9LmJ0bi1waW50ZXJlc3QgLmJhZGdle2NvbG9yOiNjYjIwMjc7YmFja2dyb3VuZC1jb2xvcjojZmZmfS5idG4tcmVkZGl0e2NvbG9yOiMwMDA7YmFja2dyb3VuZC1jb2xvcjojZWZmN2ZmO2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLDAuMil9LmJ0bi1yZWRkaXQ6Zm9jdXMsLmJ0bi1yZWRkaXQuZm9jdXN7Y29sb3I6IzAwMDtiYWNrZ3JvdW5kLWNvbG9yOiNiY2RkZmY7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsMC4yKX0uYnRuLXJlZGRpdDpob3Zlcntjb2xvcjojMDAwO2JhY2tncm91bmQtY29sb3I6I2JjZGRmZjtib3JkZXItY29sb3I6cmdiYSgwLDAsMCwwLjIpfS5idG4tcmVkZGl0OmFjdGl2ZSwuYnRuLXJlZGRpdC5hY3RpdmUsLm9wZW4+LmRyb3Bkb3duLXRvZ2dsZS5idG4tcmVkZGl0e2NvbG9yOiMwMDA7YmFja2dyb3VuZC1jb2xvcjojYmNkZGZmO2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLDAuMil9LmJ0bi1yZWRkaXQ6YWN0aXZlLC5idG4tcmVkZGl0LmFjdGl2ZSwub3Blbj4uZHJvcGRvd24tdG9nZ2xlLmJ0bi1yZWRkaXR7YmFja2dyb3VuZC1pbWFnZTpub25lfS5idG4tcmVkZGl0IC5iYWRnZXtjb2xvcjojZWZmN2ZmO2JhY2tncm91bmQtY29sb3I6IzAwMH0uYnRuLXNvdW5kY2xvdWR7Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOiNmNTA7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsMC4yKX0uYnRuLXNvdW5kY2xvdWQ6Zm9jdXMsLmJ0bi1zb3VuZGNsb3VkLmZvY3Vze2NvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjojYzQwO2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLDAuMil9LmJ0bi1zb3VuZGNsb3VkOmhvdmVye2NvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjojYzQwO2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLDAuMil9LmJ0bi1zb3VuZGNsb3VkOmFjdGl2ZSwuYnRuLXNvdW5kY2xvdWQuYWN0aXZlLC5vcGVuPi5kcm9wZG93bi10b2dnbGUuYnRuLXNvdW5kY2xvdWR7Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOiNjNDA7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsMC4yKX0uYnRuLXNvdW5kY2xvdWQ6YWN0aXZlLC5idG4tc291bmRjbG91ZC5hY3RpdmUsLm9wZW4+LmRyb3Bkb3duLXRvZ2dsZS5idG4tc291bmRjbG91ZHtiYWNrZ3JvdW5kLWltYWdlOm5vbmV9LmJ0bi1zb3VuZGNsb3VkIC5iYWRnZXtjb2xvcjojZjUwO2JhY2tncm91bmQtY29sb3I6I2ZmZn0uYnRuLXR1bWJscntjb2xvcjojZmZmO2JhY2tncm91bmQtY29sb3I6IzJjNDc2Mjtib3JkZXItY29sb3I6cmdiYSgwLDAsMCwwLjIpfS5idG4tdHVtYmxyOmZvY3VzLC5idG4tdHVtYmxyLmZvY3Vze2NvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjojMWMyZDNmO2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLDAuMil9LmJ0bi10dW1ibHI6aG92ZXJ7Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOiMxYzJkM2Y7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsMC4yKX0uYnRuLXR1bWJscjphY3RpdmUsLmJ0bi10dW1ibHIuYWN0aXZlLC5vcGVuPi5kcm9wZG93bi10b2dnbGUuYnRuLXR1bWJscntjb2xvcjojZmZmO2JhY2tncm91bmQtY29sb3I6IzFjMmQzZjtib3JkZXItY29sb3I6cmdiYSgwLDAsMCwwLjIpfS5idG4tdHVtYmxyOmFjdGl2ZSwuYnRuLXR1bWJsci5hY3RpdmUsLm9wZW4+LmRyb3Bkb3duLXRvZ2dsZS5idG4tdHVtYmxye2JhY2tncm91bmQtaW1hZ2U6bm9uZX0uYnRuLXR1bWJsciAuYmFkZ2V7Y29sb3I6IzJjNDc2MjtiYWNrZ3JvdW5kLWNvbG9yOiNmZmZ9LmJ0bi10d2l0dGVye2NvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjojNTVhY2VlO2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLDAuMil9LmJ0bi10d2l0dGVyOmZvY3VzLC5idG4tdHdpdHRlci5mb2N1c3tjb2xvcjojZmZmO2JhY2tncm91bmQtY29sb3I6IzI3OTVlOTtib3JkZXItY29sb3I6cmdiYSgwLDAsMCwwLjIpfS5idG4tdHdpdHRlcjpob3Zlcntjb2xvcjojZmZmO2JhY2tncm91bmQtY29sb3I6IzI3OTVlOTtib3JkZXItY29sb3I6cmdiYSgwLDAsMCwwLjIpfS5idG4tdHdpdHRlcjphY3RpdmUsLmJ0bi10d2l0dGVyLmFjdGl2ZSwub3Blbj4uZHJvcGRvd24tdG9nZ2xlLmJ0bi10d2l0dGVye2NvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjojMjc5NWU5O2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLDAuMil9LmJ0bi10d2l0dGVyOmFjdGl2ZSwuYnRuLXR3aXR0ZXIuYWN0aXZlLC5vcGVuPi5kcm9wZG93bi10b2dnbGUuYnRuLXR3aXR0ZXJ7YmFja2dyb3VuZC1pbWFnZTpub25lfS5idG4tdHdpdHRlciAuYmFkZ2V7Y29sb3I6IzU1YWNlZTtiYWNrZ3JvdW5kLWNvbG9yOiNmZmZ9LmJ0bi12aW1lb3tjb2xvcjojZmZmO2JhY2tncm91bmQtY29sb3I6IzFhYjdlYTtib3JkZXItY29sb3I6cmdiYSgwLDAsMCwwLjIpfS5idG4tdmltZW86Zm9jdXMsLmJ0bi12aW1lby5mb2N1c3tjb2xvcjojZmZmO2JhY2tncm91bmQtY29sb3I6IzEyOTViZjtib3JkZXItY29sb3I6cmdiYSgwLDAsMCwwLjIpfS5idG4tdmltZW86aG92ZXJ7Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOiMxMjk1YmY7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsMC4yKX0uYnRuLXZpbWVvOmFjdGl2ZSwuYnRuLXZpbWVvLmFjdGl2ZSwub3Blbj4uZHJvcGRvd24tdG9nZ2xlLmJ0bi12aW1lb3tjb2xvcjojZmZmO2JhY2tncm91bmQtY29sb3I6IzEyOTViZjtib3JkZXItY29sb3I6cmdiYSgwLDAsMCwwLjIpfS5idG4tdmltZW86YWN0aXZlLC5idG4tdmltZW8uYWN0aXZlLC5vcGVuPi5kcm9wZG93bi10b2dnbGUuYnRuLXZpbWVve2JhY2tncm91bmQtaW1hZ2U6bm9uZX0uYnRuLXZpbWVvIC5iYWRnZXtjb2xvcjojMWFiN2VhO2JhY2tncm91bmQtY29sb3I6I2ZmZn0uYnRuLXZre2NvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjojNTg3ZWEzO2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLDAuMil9LmJ0bi12azpmb2N1cywuYnRuLXZrLmZvY3Vze2NvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjojNDY2NDgyO2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLDAuMil9LmJ0bi12azpob3Zlcntjb2xvcjojZmZmO2JhY2tncm91bmQtY29sb3I6IzQ2NjQ4Mjtib3JkZXItY29sb3I6cmdiYSgwLDAsMCwwLjIpfS5idG4tdms6YWN0aXZlLC5idG4tdmsuYWN0aXZlLC5vcGVuPi5kcm9wZG93bi10b2dnbGUuYnRuLXZre2NvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjojNDY2NDgyO2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLDAuMil9LmJ0bi12azphY3RpdmUsLmJ0bi12ay5hY3RpdmUsLm9wZW4+LmRyb3Bkb3duLXRvZ2dsZS5idG4tdmt7YmFja2dyb3VuZC1pbWFnZTpub25lfS5idG4tdmsgLmJhZGdle2NvbG9yOiM1ODdlYTM7YmFja2dyb3VuZC1jb2xvcjojZmZmfS5idG4teWFob297Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOiM3MjBlOWU7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsMC4yKX0uYnRuLXlhaG9vOmZvY3VzLC5idG4teWFob28uZm9jdXN7Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOiM1MDBhNmY7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsMC4yKX0uYnRuLXlhaG9vOmhvdmVye2NvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjojNTAwYTZmO2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLDAuMil9LmJ0bi15YWhvbzphY3RpdmUsLmJ0bi15YWhvby5hY3RpdmUsLm9wZW4+LmRyb3Bkb3duLXRvZ2dsZS5idG4teWFob297Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOiM1MDBhNmY7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsMC4yKX0uYnRuLXlhaG9vOmFjdGl2ZSwuYnRuLXlhaG9vLmFjdGl2ZSwub3Blbj4uZHJvcGRvd24tdG9nZ2xlLmJ0bi15YWhvb3tiYWNrZ3JvdW5kLWltYWdlOm5vbmV9LmJ0bi15YWhvbyAuYmFkZ2V7Y29sb3I6IzcyMGU5ZTtiYWNrZ3JvdW5kLWNvbG9yOiNmZmZ9LmZjLWJ1dHRvbntiYWNrZ3JvdW5kOiNmNGY0ZjQ7YmFja2dyb3VuZC1pbWFnZTpub25lO2NvbG9yOiM0NDQ7Ym9yZGVyLWNvbG9yOiNkZGQ7Ym9yZGVyLWJvdHRvbS1jb2xvcjojZGRkfS5mYy1idXR0b246aG92ZXIsLmZjLWJ1dHRvbjphY3RpdmUsLmZjLWJ1dHRvbi5ob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOiNlOWU5ZTl9LmZjLWhlYWRlci10aXRsZSBoMntmb250LXNpemU6MTVweDtsaW5lLWhlaWdodDoxLjZlbTtjb2xvcjojNjY2O21hcmdpbi1sZWZ0OjEwcHh9LmZjLWhlYWRlci1yaWdodHtwYWRkaW5nLXJpZ2h0OjEwcHh9LmZjLWhlYWRlci1sZWZ0e3BhZGRpbmctbGVmdDoxMHB4fS5mYy13aWRnZXQtaGVhZGVye2JhY2tncm91bmQ6I2ZhZmFmYX0uZmMtZ3JpZHt3aWR0aDoxMDAlO2JvcmRlcjowfS5mYy13aWRnZXQtaGVhZGVyOmZpcnN0LW9mLXR5cGUsLmZjLXdpZGdldC1jb250ZW50OmZpcnN0LW9mLXR5cGV7Ym9yZGVyLWxlZnQ6MDtib3JkZXItcmlnaHQ6MH0uZmMtd2lkZ2V0LWhlYWRlcjpsYXN0LW9mLXR5cGUsLmZjLXdpZGdldC1jb250ZW50Omxhc3Qtb2YtdHlwZXtib3JkZXItcmlnaHQ6MH0uZmMtdG9vbGJhcntwYWRkaW5nOjEwcHg7bWFyZ2luOjB9LmZjLWRheS1udW1iZXJ7Zm9udC1zaXplOjIwcHg7Zm9udC13ZWlnaHQ6MzAwO3BhZGRpbmctcmlnaHQ6MTBweH0uZmMtY29sb3ItcGlja2Vye2xpc3Qtc3R5bGU6bm9uZTttYXJnaW46MDtwYWRkaW5nOjB9LmZjLWNvbG9yLXBpY2tlcj5saXtmbG9hdDpsZWZ0O2ZvbnQtc2l6ZTozMHB4O21hcmdpbi1yaWdodDo1cHg7bGluZS1oZWlnaHQ6MzBweH0uZmMtY29sb3ItcGlja2VyPmxpIC5mYXstd2Via2l0LXRyYW5zaXRpb246LXdlYmtpdC10cmFuc2Zvcm0gbGluZWFyIC4zczstbW96LXRyYW5zaXRpb246LW1vei10cmFuc2Zvcm0gbGluZWFyIC4zczstby10cmFuc2l0aW9uOi1vLXRyYW5zZm9ybSBsaW5lYXIgLjNzO3RyYW5zaXRpb246dHJhbnNmb3JtIGxpbmVhciAuM3N9LmZjLWNvbG9yLXBpY2tlcj5saSAuZmE6aG92ZXJ7LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDMwZGVnKTstbXMtdHJhbnNmb3JtOnJvdGF0ZSgzMGRlZyk7LW8tdHJhbnNmb3JtOnJvdGF0ZSgzMGRlZyk7dHJhbnNmb3JtOnJvdGF0ZSgzMGRlZyl9I2FkZC1uZXctZXZlbnR7LXdlYmtpdC10cmFuc2l0aW9uOmFsbCBsaW5lYXIgLjNzOy1vLXRyYW5zaXRpb246YWxsIGxpbmVhciAuM3M7dHJhbnNpdGlvbjphbGwgbGluZWFyIC4zc30uZXh0ZXJuYWwtZXZlbnR7cGFkZGluZzo1cHggMTBweDtmb250LXdlaWdodDpib2xkO21hcmdpbi1ib3R0b206NHB4O2JveC1zaGFkb3c6MCAxcHggMXB4IHJnYmEoMCwwLDAsMC4xKTt0ZXh0LXNoYWRvdzowIDFweCAxcHggcmdiYSgwLDAsMCwwLjEpO2JvcmRlci1yYWRpdXM6M3B4O2N1cnNvcjptb3ZlfS5leHRlcm5hbC1ldmVudDpob3Zlcntib3gtc2hhZG93Omluc2V0IDAgMCA5MHB4IHJnYmEoMCwwLDAsMC4yKX0uc2VsZWN0Mi1jb250YWluZXItLWRlZmF1bHQuc2VsZWN0Mi1jb250YWluZXItLWZvY3VzLC5zZWxlY3QyLXNlbGVjdGlvbi5zZWxlY3QyLWNvbnRhaW5lci0tZm9jdXMsLnNlbGVjdDItY29udGFpbmVyLS1kZWZhdWx0OmZvY3VzLC5zZWxlY3QyLXNlbGVjdGlvbjpmb2N1cywuc2VsZWN0Mi1jb250YWluZXItLWRlZmF1bHQ6YWN0aXZlLC5zZWxlY3QyLXNlbGVjdGlvbjphY3RpdmV7b3V0bGluZTpub25lfS5zZWxlY3QyLWNvbnRhaW5lci0tZGVmYXVsdCAuc2VsZWN0Mi1zZWxlY3Rpb24tLXNpbmdsZSwuc2VsZWN0Mi1zZWxlY3Rpb24gLnNlbGVjdDItc2VsZWN0aW9uLS1zaW5nbGV7Ym9yZGVyOjFweCBzb2xpZCAjZDJkNmRlO2JvcmRlci1yYWRpdXM6MDtwYWRkaW5nOjZweCAxMnB4O2hlaWdodDozNHB4fS5zZWxlY3QyLWNvbnRhaW5lci0tZGVmYXVsdC5zZWxlY3QyLWNvbnRhaW5lci0tb3Blbntib3JkZXItY29sb3I6IzNjOGRiY30uc2VsZWN0Mi1kcm9wZG93bntib3JkZXI6MXB4IHNvbGlkICNkMmQ2ZGU7Ym9yZGVyLXJhZGl1czowfS5zZWxlY3QyLWNvbnRhaW5lci0tZGVmYXVsdCAuc2VsZWN0Mi1yZXN1bHRzX19vcHRpb24tLWhpZ2hsaWdodGVkW2FyaWEtc2VsZWN0ZWRde2JhY2tncm91bmQtY29sb3I6IzNjOGRiYztjb2xvcjp3aGl0ZX0uc2VsZWN0Mi1yZXN1bHRzX19vcHRpb257cGFkZGluZzo2cHggMTJweDt1c2VyLXNlbGVjdDpub25lOy13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZX0uc2VsZWN0Mi1jb250YWluZXIgLnNlbGVjdDItc2VsZWN0aW9uLS1zaW5nbGUgLnNlbGVjdDItc2VsZWN0aW9uX19yZW5kZXJlZHtwYWRkaW5nLWxlZnQ6MDtwYWRkaW5nLXJpZ2h0OjA7aGVpZ2h0OmF1dG87bWFyZ2luLXRvcDotNHB4fS5zZWxlY3QyLWNvbnRhaW5lcltkaXI9XCJydGxcIl0gLnNlbGVjdDItc2VsZWN0aW9uLS1zaW5nbGUgLnNlbGVjdDItc2VsZWN0aW9uX19yZW5kZXJlZHtwYWRkaW5nLXJpZ2h0OjZweDtwYWRkaW5nLWxlZnQ6MjBweH0uc2VsZWN0Mi1jb250YWluZXItLWRlZmF1bHQgLnNlbGVjdDItc2VsZWN0aW9uLS1zaW5nbGUgLnNlbGVjdDItc2VsZWN0aW9uX19hcnJvd3toZWlnaHQ6MjhweDtyaWdodDozcHh9LnNlbGVjdDItY29udGFpbmVyLS1kZWZhdWx0IC5zZWxlY3QyLXNlbGVjdGlvbi0tc2luZ2xlIC5zZWxlY3QyLXNlbGVjdGlvbl9fYXJyb3cgYnttYXJnaW4tdG9wOjB9LnNlbGVjdDItZHJvcGRvd24gLnNlbGVjdDItc2VhcmNoX19maWVsZCwuc2VsZWN0Mi1zZWFyY2gtLWlubGluZSAuc2VsZWN0Mi1zZWFyY2hfX2ZpZWxke2JvcmRlcjoxcHggc29saWQgI2QyZDZkZX0uc2VsZWN0Mi1kcm9wZG93biAuc2VsZWN0Mi1zZWFyY2hfX2ZpZWxkOmZvY3VzLC5zZWxlY3QyLXNlYXJjaC0taW5saW5lIC5zZWxlY3QyLXNlYXJjaF9fZmllbGQ6Zm9jdXN7b3V0bGluZTpub25lfS5zZWxlY3QyLWNvbnRhaW5lci0tZGVmYXVsdC5zZWxlY3QyLWNvbnRhaW5lci0tZm9jdXMgLnNlbGVjdDItc2VsZWN0aW9uLS1tdWx0aXBsZSwuc2VsZWN0Mi1jb250YWluZXItLWRlZmF1bHQgLnNlbGVjdDItc2VhcmNoLS1kcm9wZG93biAuc2VsZWN0Mi1zZWFyY2hfX2ZpZWxke2JvcmRlci1jb2xvcjojM2M4ZGJjICFpbXBvcnRhbnR9LnNlbGVjdDItY29udGFpbmVyLS1kZWZhdWx0IC5zZWxlY3QyLXJlc3VsdHNfX29wdGlvblthcmlhLWRpc2FibGVkPXRydWVde2NvbG9yOiM5OTl9LnNlbGVjdDItY29udGFpbmVyLS1kZWZhdWx0IC5zZWxlY3QyLXJlc3VsdHNfX29wdGlvblthcmlhLXNlbGVjdGVkPXRydWVde2JhY2tncm91bmQtY29sb3I6I2RkZH0uc2VsZWN0Mi1jb250YWluZXItLWRlZmF1bHQgLnNlbGVjdDItcmVzdWx0c19fb3B0aW9uW2FyaWEtc2VsZWN0ZWQ9dHJ1ZV0sLnNlbGVjdDItY29udGFpbmVyLS1kZWZhdWx0IC5zZWxlY3QyLXJlc3VsdHNfX29wdGlvblthcmlhLXNlbGVjdGVkPXRydWVdOmhvdmVye2NvbG9yOiM0NDR9LnNlbGVjdDItY29udGFpbmVyLS1kZWZhdWx0IC5zZWxlY3QyLXNlbGVjdGlvbi0tbXVsdGlwbGV7Ym9yZGVyOjFweCBzb2xpZCAjZDJkNmRlO2JvcmRlci1yYWRpdXM6MH0uc2VsZWN0Mi1jb250YWluZXItLWRlZmF1bHQgLnNlbGVjdDItc2VsZWN0aW9uLS1tdWx0aXBsZTpmb2N1c3tib3JkZXItY29sb3I6IzNjOGRiY30uc2VsZWN0Mi1jb250YWluZXItLWRlZmF1bHQuc2VsZWN0Mi1jb250YWluZXItLWZvY3VzIC5zZWxlY3QyLXNlbGVjdGlvbi0tbXVsdGlwbGV7Ym9yZGVyLWNvbG9yOiNkMmQ2ZGV9LnNlbGVjdDItY29udGFpbmVyLS1kZWZhdWx0IC5zZWxlY3QyLXNlbGVjdGlvbi0tbXVsdGlwbGUgLnNlbGVjdDItc2VsZWN0aW9uX19jaG9pY2V7YmFja2dyb3VuZC1jb2xvcjojM2M4ZGJjO2JvcmRlci1jb2xvcjojMzY3ZmE5O3BhZGRpbmc6MXB4IDEwcHg7Y29sb3I6I2ZmZn0uc2VsZWN0Mi1jb250YWluZXItLWRlZmF1bHQgLnNlbGVjdDItc2VsZWN0aW9uLS1tdWx0aXBsZSAuc2VsZWN0Mi1zZWxlY3Rpb25fX2Nob2ljZV9fcmVtb3Zle21hcmdpbi1yaWdodDo1cHg7Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSwwLjcpfS5zZWxlY3QyLWNvbnRhaW5lci0tZGVmYXVsdCAuc2VsZWN0Mi1zZWxlY3Rpb24tLW11bHRpcGxlIC5zZWxlY3QyLXNlbGVjdGlvbl9fY2hvaWNlX19yZW1vdmU6aG92ZXJ7Y29sb3I6I2ZmZn0uc2VsZWN0Mi1jb250YWluZXIgLnNlbGVjdDItc2VsZWN0aW9uLS1zaW5nbGUgLnNlbGVjdDItc2VsZWN0aW9uX19yZW5kZXJlZHtwYWRkaW5nLXJpZ2h0OjEwcHh9LmJveCAuZGF0ZXBpY2tlci1pbmxpbmUsLmJveCAuZGF0ZXBpY2tlci1pbmxpbmUgLmRhdGVwaWNrZXItZGF5cywuYm94IC5kYXRlcGlja2VyLWlubGluZT50YWJsZSwuYm94IC5kYXRlcGlja2VyLWlubGluZSAuZGF0ZXBpY2tlci1kYXlzPnRhYmxle3dpZHRoOjEwMCV9LmJveCAuZGF0ZXBpY2tlci1pbmxpbmUgdGQ6aG92ZXIsLmJveCAuZGF0ZXBpY2tlci1pbmxpbmUgLmRhdGVwaWNrZXItZGF5cyB0ZDpob3ZlciwuYm94IC5kYXRlcGlja2VyLWlubGluZT50YWJsZSB0ZDpob3ZlciwuYm94IC5kYXRlcGlja2VyLWlubGluZSAuZGF0ZXBpY2tlci1kYXlzPnRhYmxlIHRkOmhvdmVye2JhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwwLjMpfS5ib3ggLmRhdGVwaWNrZXItaW5saW5lIHRkLmRheS5vbGQsLmJveCAuZGF0ZXBpY2tlci1pbmxpbmUgLmRhdGVwaWNrZXItZGF5cyB0ZC5kYXkub2xkLC5ib3ggLmRhdGVwaWNrZXItaW5saW5lPnRhYmxlIHRkLmRheS5vbGQsLmJveCAuZGF0ZXBpY2tlci1pbmxpbmUgLmRhdGVwaWNrZXItZGF5cz50YWJsZSB0ZC5kYXkub2xkLC5ib3ggLmRhdGVwaWNrZXItaW5saW5lIHRkLmRheS5uZXcsLmJveCAuZGF0ZXBpY2tlci1pbmxpbmUgLmRhdGVwaWNrZXItZGF5cyB0ZC5kYXkubmV3LC5ib3ggLmRhdGVwaWNrZXItaW5saW5lPnRhYmxlIHRkLmRheS5uZXcsLmJveCAuZGF0ZXBpY2tlci1pbmxpbmUgLmRhdGVwaWNrZXItZGF5cz50YWJsZSB0ZC5kYXkubmV3e2NvbG9yOiM3Nzd9LnBhZHtwYWRkaW5nOjEwcHh9Lm1hcmdpbnttYXJnaW46MTBweH0ubWFyZ2luLWJvdHRvbXttYXJnaW4tYm90dG9tOjIwcHh9Lm1hcmdpbi1ib3R0b20tbm9uZXttYXJnaW4tYm90dG9tOjB9Lm1hcmdpbi1yLTV7bWFyZ2luLXJpZ2h0OjVweH0uaW5saW5le2Rpc3BsYXk6aW5saW5lfS5kZXNjcmlwdGlvbi1ibG9ja3tkaXNwbGF5OmJsb2NrO21hcmdpbjoxMHB4IDA7dGV4dC1hbGlnbjpjZW50ZXJ9LmRlc2NyaXB0aW9uLWJsb2NrLm1hcmdpbi1ib3R0b217bWFyZ2luLWJvdHRvbToyNXB4fS5kZXNjcmlwdGlvbi1ibG9jaz4uZGVzY3JpcHRpb24taGVhZGVye21hcmdpbjowO3BhZGRpbmc6MDtmb250LXdlaWdodDo2MDA7Zm9udC1zaXplOjE2cHh9LmRlc2NyaXB0aW9uLWJsb2NrPi5kZXNjcmlwdGlvbi10ZXh0e3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZX0uYmctcmVkLC5iZy15ZWxsb3csLmJnLWFxdWEsLmJnLWJsdWUsLmJnLWxpZ2h0LWJsdWUsLmJnLWdyZWVuLC5iZy1uYXZ5LC5iZy10ZWFsLC5iZy1vbGl2ZSwuYmctbGltZSwuYmctb3JhbmdlLC5iZy1mdWNoc2lhLC5iZy1wdXJwbGUsLmJnLW1hcm9vbiwuYmctYmxhY2ssLmJnLXJlZC1hY3RpdmUsLmJnLXllbGxvdy1hY3RpdmUsLmJnLWFxdWEtYWN0aXZlLC5iZy1ibHVlLWFjdGl2ZSwuYmctbGlnaHQtYmx1ZS1hY3RpdmUsLmJnLWdyZWVuLWFjdGl2ZSwuYmctbmF2eS1hY3RpdmUsLmJnLXRlYWwtYWN0aXZlLC5iZy1vbGl2ZS1hY3RpdmUsLmJnLWxpbWUtYWN0aXZlLC5iZy1vcmFuZ2UtYWN0aXZlLC5iZy1mdWNoc2lhLWFjdGl2ZSwuYmctcHVycGxlLWFjdGl2ZSwuYmctbWFyb29uLWFjdGl2ZSwuYmctYmxhY2stYWN0aXZlLC5jYWxsb3V0LmNhbGxvdXQtZGFuZ2VyLC5jYWxsb3V0LmNhbGxvdXQtd2FybmluZywuY2FsbG91dC5jYWxsb3V0LWluZm8sLmNhbGxvdXQuY2FsbG91dC1zdWNjZXNzLC5hbGVydC1zdWNjZXNzLC5hbGVydC1kYW5nZXIsLmFsZXJ0LWVycm9yLC5hbGVydC13YXJuaW5nLC5hbGVydC1pbmZvLC5sYWJlbC1kYW5nZXIsLmxhYmVsLWluZm8sLmxhYmVsLXdhcm5pbmcsLmxhYmVsLXByaW1hcnksLmxhYmVsLXN1Y2Nlc3MsLm1vZGFsLXByaW1hcnkgLm1vZGFsLWJvZHksLm1vZGFsLXByaW1hcnkgLm1vZGFsLWhlYWRlciwubW9kYWwtcHJpbWFyeSAubW9kYWwtZm9vdGVyLC5tb2RhbC13YXJuaW5nIC5tb2RhbC1ib2R5LC5tb2RhbC13YXJuaW5nIC5tb2RhbC1oZWFkZXIsLm1vZGFsLXdhcm5pbmcgLm1vZGFsLWZvb3RlciwubW9kYWwtaW5mbyAubW9kYWwtYm9keSwubW9kYWwtaW5mbyAubW9kYWwtaGVhZGVyLC5tb2RhbC1pbmZvIC5tb2RhbC1mb290ZXIsLm1vZGFsLXN1Y2Nlc3MgLm1vZGFsLWJvZHksLm1vZGFsLXN1Y2Nlc3MgLm1vZGFsLWhlYWRlciwubW9kYWwtc3VjY2VzcyAubW9kYWwtZm9vdGVyLC5tb2RhbC1kYW5nZXIgLm1vZGFsLWJvZHksLm1vZGFsLWRhbmdlciAubW9kYWwtaGVhZGVyLC5tb2RhbC1kYW5nZXIgLm1vZGFsLWZvb3Rlcntjb2xvcjojZmZmICFpbXBvcnRhbnR9LmJnLWdyYXl7Y29sb3I6IzAwMDtiYWNrZ3JvdW5kLWNvbG9yOiNkMmQ2ZGUgIWltcG9ydGFudH0uYmctZ3JheS1saWdodHtiYWNrZ3JvdW5kLWNvbG9yOiNmN2Y3Zjd9LmJnLWJsYWNre2JhY2tncm91bmQtY29sb3I6IzExMSAhaW1wb3J0YW50fS5iZy1yZWQsLmNhbGxvdXQuY2FsbG91dC1kYW5nZXIsLmFsZXJ0LWRhbmdlciwuYWxlcnQtZXJyb3IsLmxhYmVsLWRhbmdlciwubW9kYWwtZGFuZ2VyIC5tb2RhbC1ib2R5e2JhY2tncm91bmQtY29sb3I6I2RkNGIzOSAhaW1wb3J0YW50fS5iZy15ZWxsb3csLmNhbGxvdXQuY2FsbG91dC13YXJuaW5nLC5hbGVydC13YXJuaW5nLC5sYWJlbC13YXJuaW5nLC5tb2RhbC13YXJuaW5nIC5tb2RhbC1ib2R5e2JhY2tncm91bmQtY29sb3I6I2YzOWMxMiAhaW1wb3J0YW50fS5iZy1hcXVhLC5jYWxsb3V0LmNhbGxvdXQtaW5mbywuYWxlcnQtaW5mbywubGFiZWwtaW5mbywubW9kYWwtaW5mbyAubW9kYWwtYm9keXtiYWNrZ3JvdW5kLWNvbG9yOiMwMGMwZWYgIWltcG9ydGFudH0uYmctYmx1ZXtiYWNrZ3JvdW5kLWNvbG9yOiMwMDczYjcgIWltcG9ydGFudH0uYmctbGlnaHQtYmx1ZSwubGFiZWwtcHJpbWFyeSwubW9kYWwtcHJpbWFyeSAubW9kYWwtYm9keXtiYWNrZ3JvdW5kLWNvbG9yOiMzYzhkYmMgIWltcG9ydGFudH0uYmctZ3JlZW4sLmNhbGxvdXQuY2FsbG91dC1zdWNjZXNzLC5hbGVydC1zdWNjZXNzLC5sYWJlbC1zdWNjZXNzLC5tb2RhbC1zdWNjZXNzIC5tb2RhbC1ib2R5e2JhY2tncm91bmQtY29sb3I6IzAwYTY1YSAhaW1wb3J0YW50fS5iZy1uYXZ5e2JhY2tncm91bmQtY29sb3I6IzAwMWYzZiAhaW1wb3J0YW50fS5iZy10ZWFse2JhY2tncm91bmQtY29sb3I6IzM5Y2NjYyAhaW1wb3J0YW50fS5iZy1vbGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOiMzZDk5NzAgIWltcG9ydGFudH0uYmctbGltZXtiYWNrZ3JvdW5kLWNvbG9yOiMwMWZmNzAgIWltcG9ydGFudH0uYmctb3Jhbmdle2JhY2tncm91bmQtY29sb3I6I2ZmODUxYiAhaW1wb3J0YW50fS5iZy1mdWNoc2lhe2JhY2tncm91bmQtY29sb3I6I2YwMTJiZSAhaW1wb3J0YW50fS5iZy1wdXJwbGV7YmFja2dyb3VuZC1jb2xvcjojNjA1Y2E4ICFpbXBvcnRhbnR9LmJnLW1hcm9vbntiYWNrZ3JvdW5kLWNvbG9yOiNkODFiNjAgIWltcG9ydGFudH0uYmctZ3JheS1hY3RpdmV7Y29sb3I6IzAwMDtiYWNrZ3JvdW5kLWNvbG9yOiNiNWJiYzggIWltcG9ydGFudH0uYmctYmxhY2stYWN0aXZle2JhY2tncm91bmQtY29sb3I6IzAwMCAhaW1wb3J0YW50fS5iZy1yZWQtYWN0aXZlLC5tb2RhbC1kYW5nZXIgLm1vZGFsLWhlYWRlciwubW9kYWwtZGFuZ2VyIC5tb2RhbC1mb290ZXJ7YmFja2dyb3VuZC1jb2xvcjojZDMzNzI0ICFpbXBvcnRhbnR9LmJnLXllbGxvdy1hY3RpdmUsLm1vZGFsLXdhcm5pbmcgLm1vZGFsLWhlYWRlciwubW9kYWwtd2FybmluZyAubW9kYWwtZm9vdGVye2JhY2tncm91bmQtY29sb3I6I2RiOGIwYiAhaW1wb3J0YW50fS5iZy1hcXVhLWFjdGl2ZSwubW9kYWwtaW5mbyAubW9kYWwtaGVhZGVyLC5tb2RhbC1pbmZvIC5tb2RhbC1mb290ZXJ7YmFja2dyb3VuZC1jb2xvcjojMDBhN2QwICFpbXBvcnRhbnR9LmJnLWJsdWUtYWN0aXZle2JhY2tncm91bmQtY29sb3I6IzAwNTM4NCAhaW1wb3J0YW50fS5iZy1saWdodC1ibHVlLWFjdGl2ZSwubW9kYWwtcHJpbWFyeSAubW9kYWwtaGVhZGVyLC5tb2RhbC1wcmltYXJ5IC5tb2RhbC1mb290ZXJ7YmFja2dyb3VuZC1jb2xvcjojMzU3Y2E1ICFpbXBvcnRhbnR9LmJnLWdyZWVuLWFjdGl2ZSwubW9kYWwtc3VjY2VzcyAubW9kYWwtaGVhZGVyLC5tb2RhbC1zdWNjZXNzIC5tb2RhbC1mb290ZXJ7YmFja2dyb3VuZC1jb2xvcjojMDA4ZDRjICFpbXBvcnRhbnR9LmJnLW5hdnktYWN0aXZle2JhY2tncm91bmQtY29sb3I6IzAwMWEzNSAhaW1wb3J0YW50fS5iZy10ZWFsLWFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOiMzMGJiYmIgIWltcG9ydGFudH0uYmctb2xpdmUtYWN0aXZle2JhY2tncm91bmQtY29sb3I6IzM2ODc2MyAhaW1wb3J0YW50fS5iZy1saW1lLWFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOiMwMGU3NjUgIWltcG9ydGFudH0uYmctb3JhbmdlLWFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOiNmZjc3MDEgIWltcG9ydGFudH0uYmctZnVjaHNpYS1hY3RpdmV7YmFja2dyb3VuZC1jb2xvcjojZGIwZWFkICFpbXBvcnRhbnR9LmJnLXB1cnBsZS1hY3RpdmV7YmFja2dyb3VuZC1jb2xvcjojNTU1Mjk5ICFpbXBvcnRhbnR9LmJnLW1hcm9vbi1hY3RpdmV7YmFja2dyb3VuZC1jb2xvcjojY2ExOTVhICFpbXBvcnRhbnR9W2NsYXNzXj1cImJnLVwiXS5kaXNhYmxlZHtvcGFjaXR5Oi42NTtmaWx0ZXI6YWxwaGEob3BhY2l0eT02NSl9LnRleHQtcmVke2NvbG9yOiNkZDRiMzkgIWltcG9ydGFudH0udGV4dC15ZWxsb3d7Y29sb3I6I2YzOWMxMiAhaW1wb3J0YW50fS50ZXh0LWFxdWF7Y29sb3I6IzAwYzBlZiAhaW1wb3J0YW50fS50ZXh0LWJsdWV7Y29sb3I6IzAwNzNiNyAhaW1wb3J0YW50fS50ZXh0LWJsYWNre2NvbG9yOiMxMTEgIWltcG9ydGFudH0udGV4dC1saWdodC1ibHVle2NvbG9yOiMzYzhkYmMgIWltcG9ydGFudH0udGV4dC1ncmVlbntjb2xvcjojMDBhNjVhICFpbXBvcnRhbnR9LnRleHQtZ3JheXtjb2xvcjojZDJkNmRlICFpbXBvcnRhbnR9LnRleHQtbmF2eXtjb2xvcjojMDAxZjNmICFpbXBvcnRhbnR9LnRleHQtdGVhbHtjb2xvcjojMzljY2NjICFpbXBvcnRhbnR9LnRleHQtb2xpdmV7Y29sb3I6IzNkOTk3MCAhaW1wb3J0YW50fS50ZXh0LWxpbWV7Y29sb3I6IzAxZmY3MCAhaW1wb3J0YW50fS50ZXh0LW9yYW5nZXtjb2xvcjojZmY4NTFiICFpbXBvcnRhbnR9LnRleHQtZnVjaHNpYXtjb2xvcjojZjAxMmJlICFpbXBvcnRhbnR9LnRleHQtcHVycGxle2NvbG9yOiM2MDVjYTggIWltcG9ydGFudH0udGV4dC1tYXJvb257Y29sb3I6I2Q4MWI2MCAhaW1wb3J0YW50fS5saW5rLW11dGVke2NvbG9yOiM3YTg2OWR9LmxpbmstbXV0ZWQ6aG92ZXIsLmxpbmstbXV0ZWQ6Zm9jdXN7Y29sb3I6IzYwNmM4NH0ubGluay1ibGFja3tjb2xvcjojNjY2fS5saW5rLWJsYWNrOmhvdmVyLC5saW5rLWJsYWNrOmZvY3Vze2NvbG9yOiM5OTl9LmhpZGV7ZGlzcGxheTpub25lICFpbXBvcnRhbnR9Lm5vLWJvcmRlcntib3JkZXI6MCAhaW1wb3J0YW50fS5uby1wYWRkaW5ne3BhZGRpbmc6MCAhaW1wb3J0YW50fS5uby1tYXJnaW57bWFyZ2luOjAgIWltcG9ydGFudH0ubm8tc2hhZG93e2JveC1zaGFkb3c6bm9uZSAhaW1wb3J0YW50fS5saXN0LXVuc3R5bGVkLC5jaGFydC1sZWdlbmQsLmNvbnRhY3RzLWxpc3QsLnVzZXJzLWxpc3QsLm1haWxib3gtYXR0YWNobWVudHN7bGlzdC1zdHlsZTpub25lO21hcmdpbjowO3BhZGRpbmc6MH0ubGlzdC1ncm91cC11bmJvcmRlcmVkPi5saXN0LWdyb3VwLWl0ZW17Ym9yZGVyLWxlZnQ6MDtib3JkZXItcmlnaHQ6MDtib3JkZXItcmFkaXVzOjA7cGFkZGluZy1sZWZ0OjA7cGFkZGluZy1yaWdodDowfS5mbGF0e2JvcmRlci1yYWRpdXM6MCAhaW1wb3J0YW50fS50ZXh0LWJvbGQsLnRleHQtYm9sZC50YWJsZSB0ZCwudGV4dC1ib2xkLnRhYmxlIHRoe2ZvbnQtd2VpZ2h0OjcwMH0udGV4dC1zbXtmb250LXNpemU6MTJweH0uanFzdG9vbHRpcHtwYWRkaW5nOjVweCAhaW1wb3J0YW50O3dpZHRoOmF1dG8gIWltcG9ydGFudDtoZWlnaHQ6YXV0byAhaW1wb3J0YW50fS5iZy10ZWFsLWdyYWRpZW50e2JhY2tncm91bmQ6IzM5Y2NjYyAhaW1wb3J0YW50O2JhY2tncm91bmQ6LXdlYmtpdC1ncmFkaWVudChsaW5lYXIsIGxlZnQgYm90dG9tLCBsZWZ0IHRvcCwgY29sb3Itc3RvcCgwLCAjMzljY2NjKSwgY29sb3Itc3RvcCgxLCAjN2FkZGRkKSkgIWltcG9ydGFudDtiYWNrZ3JvdW5kOi1tcy1saW5lYXItZ3JhZGllbnQoYm90dG9tLCAjMzljY2NjLCAjN2FkZGRkKSAhaW1wb3J0YW50O2JhY2tncm91bmQ6LW1vei1saW5lYXItZ3JhZGllbnQoY2VudGVyIGJvdHRvbSwgIzM5Y2NjYyAwLCAjN2FkZGRkIDEwMCUpICFpbXBvcnRhbnQ7YmFja2dyb3VuZDotby1saW5lYXItZ3JhZGllbnQoIzdhZGRkZCwgIzM5Y2NjYykgIWltcG9ydGFudDtmaWx0ZXI6cHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LmdyYWRpZW50KHN0YXJ0Q29sb3JzdHI9JyM3YWRkZGQnLCBlbmRDb2xvcnN0cj0nIzM5Y2NjYycsIEdyYWRpZW50VHlwZT0wKSAhaW1wb3J0YW50O2NvbG9yOiNmZmZ9LmJnLWxpZ2h0LWJsdWUtZ3JhZGllbnR7YmFja2dyb3VuZDojM2M4ZGJjICFpbXBvcnRhbnQ7YmFja2dyb3VuZDotd2Via2l0LWdyYWRpZW50KGxpbmVhciwgbGVmdCBib3R0b20sIGxlZnQgdG9wLCBjb2xvci1zdG9wKDAsICMzYzhkYmMpLCBjb2xvci1zdG9wKDEsICM2N2E4Y2UpKSAhaW1wb3J0YW50O2JhY2tncm91bmQ6LW1zLWxpbmVhci1ncmFkaWVudChib3R0b20sICMzYzhkYmMsICM2N2E4Y2UpICFpbXBvcnRhbnQ7YmFja2dyb3VuZDotbW96LWxpbmVhci1ncmFkaWVudChjZW50ZXIgYm90dG9tLCAjM2M4ZGJjIDAsICM2N2E4Y2UgMTAwJSkgIWltcG9ydGFudDtiYWNrZ3JvdW5kOi1vLWxpbmVhci1ncmFkaWVudCgjNjdhOGNlLCAjM2M4ZGJjKSAhaW1wb3J0YW50O2ZpbHRlcjpwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoc3RhcnRDb2xvcnN0cj0nIzY3YThjZScsIGVuZENvbG9yc3RyPScjM2M4ZGJjJywgR3JhZGllbnRUeXBlPTApICFpbXBvcnRhbnQ7Y29sb3I6I2ZmZn0uYmctYmx1ZS1ncmFkaWVudHtiYWNrZ3JvdW5kOiMwMDczYjcgIWltcG9ydGFudDtiYWNrZ3JvdW5kOi13ZWJraXQtZ3JhZGllbnQobGluZWFyLCBsZWZ0IGJvdHRvbSwgbGVmdCB0b3AsIGNvbG9yLXN0b3AoMCwgIzAwNzNiNyksIGNvbG9yLXN0b3AoMSwgIzAwODlkYikpICFpbXBvcnRhbnQ7YmFja2dyb3VuZDotbXMtbGluZWFyLWdyYWRpZW50KGJvdHRvbSwgIzAwNzNiNywgIzAwODlkYikgIWltcG9ydGFudDtiYWNrZ3JvdW5kOi1tb3otbGluZWFyLWdyYWRpZW50KGNlbnRlciBib3R0b20sICMwMDczYjcgMCwgIzAwODlkYiAxMDAlKSAhaW1wb3J0YW50O2JhY2tncm91bmQ6LW8tbGluZWFyLWdyYWRpZW50KCMwMDg5ZGIsICMwMDczYjcpICFpbXBvcnRhbnQ7ZmlsdGVyOnByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudChzdGFydENvbG9yc3RyPScjMDA4OWRiJywgZW5kQ29sb3JzdHI9JyMwMDczYjcnLCBHcmFkaWVudFR5cGU9MCkgIWltcG9ydGFudDtjb2xvcjojZmZmfS5iZy1hcXVhLWdyYWRpZW50e2JhY2tncm91bmQ6IzAwYzBlZiAhaW1wb3J0YW50O2JhY2tncm91bmQ6LXdlYmtpdC1ncmFkaWVudChsaW5lYXIsIGxlZnQgYm90dG9tLCBsZWZ0IHRvcCwgY29sb3Itc3RvcCgwLCAjMDBjMGVmKSwgY29sb3Itc3RvcCgxLCAjMTRkMWZmKSkgIWltcG9ydGFudDtiYWNrZ3JvdW5kOi1tcy1saW5lYXItZ3JhZGllbnQoYm90dG9tLCAjMDBjMGVmLCAjMTRkMWZmKSAhaW1wb3J0YW50O2JhY2tncm91bmQ6LW1vei1saW5lYXItZ3JhZGllbnQoY2VudGVyIGJvdHRvbSwgIzAwYzBlZiAwLCAjMTRkMWZmIDEwMCUpICFpbXBvcnRhbnQ7YmFja2dyb3VuZDotby1saW5lYXItZ3JhZGllbnQoIzE0ZDFmZiwgIzAwYzBlZikgIWltcG9ydGFudDtmaWx0ZXI6cHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LmdyYWRpZW50KHN0YXJ0Q29sb3JzdHI9JyMxNGQxZmYnLCBlbmRDb2xvcnN0cj0nIzAwYzBlZicsIEdyYWRpZW50VHlwZT0wKSAhaW1wb3J0YW50O2NvbG9yOiNmZmZ9LmJnLXllbGxvdy1ncmFkaWVudHtiYWNrZ3JvdW5kOiNmMzljMTIgIWltcG9ydGFudDtiYWNrZ3JvdW5kOi13ZWJraXQtZ3JhZGllbnQobGluZWFyLCBsZWZ0IGJvdHRvbSwgbGVmdCB0b3AsIGNvbG9yLXN0b3AoMCwgI2YzOWMxMiksIGNvbG9yLXN0b3AoMSwgI2Y3YmM2MCkpICFpbXBvcnRhbnQ7YmFja2dyb3VuZDotbXMtbGluZWFyLWdyYWRpZW50KGJvdHRvbSwgI2YzOWMxMiwgI2Y3YmM2MCkgIWltcG9ydGFudDtiYWNrZ3JvdW5kOi1tb3otbGluZWFyLWdyYWRpZW50KGNlbnRlciBib3R0b20sICNmMzljMTIgMCwgI2Y3YmM2MCAxMDAlKSAhaW1wb3J0YW50O2JhY2tncm91bmQ6LW8tbGluZWFyLWdyYWRpZW50KCNmN2JjNjAsICNmMzljMTIpICFpbXBvcnRhbnQ7ZmlsdGVyOnByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudChzdGFydENvbG9yc3RyPScjZjdiYzYwJywgZW5kQ29sb3JzdHI9JyNmMzljMTInLCBHcmFkaWVudFR5cGU9MCkgIWltcG9ydGFudDtjb2xvcjojZmZmfS5iZy1wdXJwbGUtZ3JhZGllbnR7YmFja2dyb3VuZDojNjA1Y2E4ICFpbXBvcnRhbnQ7YmFja2dyb3VuZDotd2Via2l0LWdyYWRpZW50KGxpbmVhciwgbGVmdCBib3R0b20sIGxlZnQgdG9wLCBjb2xvci1zdG9wKDAsICM2MDVjYTgpLCBjb2xvci1zdG9wKDEsICM5NDkxYzQpKSAhaW1wb3J0YW50O2JhY2tncm91bmQ6LW1zLWxpbmVhci1ncmFkaWVudChib3R0b20sICM2MDVjYTgsICM5NDkxYzQpICFpbXBvcnRhbnQ7YmFja2dyb3VuZDotbW96LWxpbmVhci1ncmFkaWVudChjZW50ZXIgYm90dG9tLCAjNjA1Y2E4IDAsICM5NDkxYzQgMTAwJSkgIWltcG9ydGFudDtiYWNrZ3JvdW5kOi1vLWxpbmVhci1ncmFkaWVudCgjOTQ5MWM0LCAjNjA1Y2E4KSAhaW1wb3J0YW50O2ZpbHRlcjpwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoc3RhcnRDb2xvcnN0cj0nIzk0OTFjNCcsIGVuZENvbG9yc3RyPScjNjA1Y2E4JywgR3JhZGllbnRUeXBlPTApICFpbXBvcnRhbnQ7Y29sb3I6I2ZmZn0uYmctZ3JlZW4tZ3JhZGllbnR7YmFja2dyb3VuZDojMDBhNjVhICFpbXBvcnRhbnQ7YmFja2dyb3VuZDotd2Via2l0LWdyYWRpZW50KGxpbmVhciwgbGVmdCBib3R0b20sIGxlZnQgdG9wLCBjb2xvci1zdG9wKDAsICMwMGE2NWEpLCBjb2xvci1zdG9wKDEsICMwMGNhNmQpKSAhaW1wb3J0YW50O2JhY2tncm91bmQ6LW1zLWxpbmVhci1ncmFkaWVudChib3R0b20sICMwMGE2NWEsICMwMGNhNmQpICFpbXBvcnRhbnQ7YmFja2dyb3VuZDotbW96LWxpbmVhci1ncmFkaWVudChjZW50ZXIgYm90dG9tLCAjMDBhNjVhIDAsICMwMGNhNmQgMTAwJSkgIWltcG9ydGFudDtiYWNrZ3JvdW5kOi1vLWxpbmVhci1ncmFkaWVudCgjMDBjYTZkLCAjMDBhNjVhKSAhaW1wb3J0YW50O2ZpbHRlcjpwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoc3RhcnRDb2xvcnN0cj0nIzAwY2E2ZCcsIGVuZENvbG9yc3RyPScjMDBhNjVhJywgR3JhZGllbnRUeXBlPTApICFpbXBvcnRhbnQ7Y29sb3I6I2ZmZn0uYmctcmVkLWdyYWRpZW50e2JhY2tncm91bmQ6I2RkNGIzOSAhaW1wb3J0YW50O2JhY2tncm91bmQ6LXdlYmtpdC1ncmFkaWVudChsaW5lYXIsIGxlZnQgYm90dG9tLCBsZWZ0IHRvcCwgY29sb3Itc3RvcCgwLCAjZGQ0YjM5KSwgY29sb3Itc3RvcCgxLCAjZTQ3MzY1KSkgIWltcG9ydGFudDtiYWNrZ3JvdW5kOi1tcy1saW5lYXItZ3JhZGllbnQoYm90dG9tLCAjZGQ0YjM5LCAjZTQ3MzY1KSAhaW1wb3J0YW50O2JhY2tncm91bmQ6LW1vei1saW5lYXItZ3JhZGllbnQoY2VudGVyIGJvdHRvbSwgI2RkNGIzOSAwLCAjZTQ3MzY1IDEwMCUpICFpbXBvcnRhbnQ7YmFja2dyb3VuZDotby1saW5lYXItZ3JhZGllbnQoI2U0NzM2NSwgI2RkNGIzOSkgIWltcG9ydGFudDtmaWx0ZXI6cHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LmdyYWRpZW50KHN0YXJ0Q29sb3JzdHI9JyNlNDczNjUnLCBlbmRDb2xvcnN0cj0nI2RkNGIzOScsIEdyYWRpZW50VHlwZT0wKSAhaW1wb3J0YW50O2NvbG9yOiNmZmZ9LmJnLWJsYWNrLWdyYWRpZW50e2JhY2tncm91bmQ6IzExMSAhaW1wb3J0YW50O2JhY2tncm91bmQ6LXdlYmtpdC1ncmFkaWVudChsaW5lYXIsIGxlZnQgYm90dG9tLCBsZWZ0IHRvcCwgY29sb3Itc3RvcCgwLCAjMTExKSwgY29sb3Itc3RvcCgxLCAjMmIyYjJiKSkgIWltcG9ydGFudDtiYWNrZ3JvdW5kOi1tcy1saW5lYXItZ3JhZGllbnQoYm90dG9tLCAjMTExLCAjMmIyYjJiKSAhaW1wb3J0YW50O2JhY2tncm91bmQ6LW1vei1saW5lYXItZ3JhZGllbnQoY2VudGVyIGJvdHRvbSwgIzExMSAwLCAjMmIyYjJiIDEwMCUpICFpbXBvcnRhbnQ7YmFja2dyb3VuZDotby1saW5lYXItZ3JhZGllbnQoIzJiMmIyYiwgIzExMSkgIWltcG9ydGFudDtmaWx0ZXI6cHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LmdyYWRpZW50KHN0YXJ0Q29sb3JzdHI9JyMyYjJiMmInLCBlbmRDb2xvcnN0cj0nIzExMTExMScsIEdyYWRpZW50VHlwZT0wKSAhaW1wb3J0YW50O2NvbG9yOiNmZmZ9LmJnLW1hcm9vbi1ncmFkaWVudHtiYWNrZ3JvdW5kOiNkODFiNjAgIWltcG9ydGFudDtiYWNrZ3JvdW5kOi13ZWJraXQtZ3JhZGllbnQobGluZWFyLCBsZWZ0IGJvdHRvbSwgbGVmdCB0b3AsIGNvbG9yLXN0b3AoMCwgI2Q4MWI2MCksIGNvbG9yLXN0b3AoMSwgI2U3M2Y3YykpICFpbXBvcnRhbnQ7YmFja2dyb3VuZDotbXMtbGluZWFyLWdyYWRpZW50KGJvdHRvbSwgI2Q4MWI2MCwgI2U3M2Y3YykgIWltcG9ydGFudDtiYWNrZ3JvdW5kOi1tb3otbGluZWFyLWdyYWRpZW50KGNlbnRlciBib3R0b20sICNkODFiNjAgMCwgI2U3M2Y3YyAxMDAlKSAhaW1wb3J0YW50O2JhY2tncm91bmQ6LW8tbGluZWFyLWdyYWRpZW50KCNlNzNmN2MsICNkODFiNjApICFpbXBvcnRhbnQ7ZmlsdGVyOnByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudChzdGFydENvbG9yc3RyPScjZTczZjdjJywgZW5kQ29sb3JzdHI9JyNkODFiNjAnLCBHcmFkaWVudFR5cGU9MCkgIWltcG9ydGFudDtjb2xvcjojZmZmfS5kZXNjcmlwdGlvbi1ibG9jayAuZGVzY3JpcHRpb24taWNvbntmb250LXNpemU6MTZweH0ubm8tcGFkLXRvcHtwYWRkaW5nLXRvcDowfS5wb3NpdGlvbi1zdGF0aWN7cG9zaXRpb246c3RhdGljICFpbXBvcnRhbnR9Lmxpc3QtaGVhZGVye2ZvbnQtc2l6ZToxNXB4O3BhZGRpbmc6MTBweCA0cHg7Zm9udC13ZWlnaHQ6Ym9sZDtjb2xvcjojNjY2fS5saXN0LXNlcGVyYXRvcntoZWlnaHQ6MXB4O2JhY2tncm91bmQ6I2Y0ZjRmNDttYXJnaW46MTVweCAwIDlweCAwfS5saXN0LWxpbms+YXtwYWRkaW5nOjRweDtjb2xvcjojNzc3fS5saXN0LWxpbms+YTpob3Zlcntjb2xvcjojMjIyfS5mb250LWxpZ2h0e2ZvbnQtd2VpZ2h0OjMwMH0udXNlci1ibG9jazpiZWZvcmUsLnVzZXItYmxvY2s6YWZ0ZXJ7Y29udGVudDpcIiBcIjtkaXNwbGF5OnRhYmxlfS51c2VyLWJsb2NrOmFmdGVye2NsZWFyOmJvdGh9LnVzZXItYmxvY2sgaW1ne3dpZHRoOjQwcHg7aGVpZ2h0OjQwcHg7ZmxvYXQ6bGVmdH0udXNlci1ibG9jayAudXNlcm5hbWUsLnVzZXItYmxvY2sgLmRlc2NyaXB0aW9uLC51c2VyLWJsb2NrIC5jb21tZW50e2Rpc3BsYXk6YmxvY2s7bWFyZ2luLWxlZnQ6NTBweH0udXNlci1ibG9jayAudXNlcm5hbWV7Zm9udC1zaXplOjE2cHg7Zm9udC13ZWlnaHQ6NjAwfS51c2VyLWJsb2NrIC5kZXNjcmlwdGlvbntjb2xvcjojOTk5O2ZvbnQtc2l6ZToxM3B4fS51c2VyLWJsb2NrLnVzZXItYmxvY2stc20gLnVzZXJuYW1lLC51c2VyLWJsb2NrLnVzZXItYmxvY2stc20gLmRlc2NyaXB0aW9uLC51c2VyLWJsb2NrLnVzZXItYmxvY2stc20gLmNvbW1lbnR7bWFyZ2luLWxlZnQ6NDBweH0udXNlci1ibG9jay51c2VyLWJsb2NrLXNtIC51c2VybmFtZXtmb250LXNpemU6MTRweH0uaW1nLXNtLC5pbWctbWQsLmltZy1sZywuYm94LWNvbW1lbnRzIC5ib3gtY29tbWVudCBpbWcsLnVzZXItYmxvY2sudXNlci1ibG9jay1zbSBpbWd7ZmxvYXQ6bGVmdH0uaW1nLXNtLC5ib3gtY29tbWVudHMgLmJveC1jb21tZW50IGltZywudXNlci1ibG9jay51c2VyLWJsb2NrLXNtIGltZ3t3aWR0aDozMHB4ICFpbXBvcnRhbnQ7aGVpZ2h0OjMwcHggIWltcG9ydGFudH0uaW1nLXNtKy5pbWctcHVzaHttYXJnaW4tbGVmdDo0MHB4fS5pbWctbWR7d2lkdGg6NjBweDtoZWlnaHQ6NjBweH0uaW1nLW1kKy5pbWctcHVzaHttYXJnaW4tbGVmdDo3MHB4fS5pbWctbGd7d2lkdGg6MTAwcHg7aGVpZ2h0OjEwMHB4fS5pbWctbGcrLmltZy1wdXNoe21hcmdpbi1sZWZ0OjExMHB4fS5pbWctYm9yZGVyZWR7Ym9yZGVyOjNweCBzb2xpZCAjZDJkNmRlO3BhZGRpbmc6M3B4fS5pbWctYm9yZGVyZWQtc217Ym9yZGVyOjJweCBzb2xpZCAjZDJkNmRlO3BhZGRpbmc6MnB4fS5hdHRhY2htZW50LWJsb2Nre2JvcmRlcjoxcHggc29saWQgI2Y0ZjRmNDtwYWRkaW5nOjVweDttYXJnaW4tYm90dG9tOjEwcHg7YmFja2dyb3VuZDojZjdmN2Y3fS5hdHRhY2htZW50LWJsb2NrIC5hdHRhY2htZW50LWltZ3ttYXgtd2lkdGg6MTAwcHg7bWF4LWhlaWdodDoxMDBweDtoZWlnaHQ6YXV0bztmbG9hdDpsZWZ0fS5hdHRhY2htZW50LWJsb2NrIC5hdHRhY2htZW50LXB1c2hlZHttYXJnaW4tbGVmdDoxMTBweH0uYXR0YWNobWVudC1ibG9jayAuYXR0YWNobWVudC1oZWFkaW5ne21hcmdpbjowfS5hdHRhY2htZW50LWJsb2NrIC5hdHRhY2htZW50LXRleHR7Y29sb3I6IzU1NX0uY29ubmVjdGVkU29ydGFibGV7bWluLWhlaWdodDoxMDBweH0udWktaGVscGVyLWhpZGRlbi1hY2Nlc3NpYmxle2JvcmRlcjowO2NsaXA6cmVjdCgwIDAgMCAwKTtoZWlnaHQ6MXB4O21hcmdpbjotMXB4O292ZXJmbG93OmhpZGRlbjtwYWRkaW5nOjA7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MXB4fS5zb3J0LWhpZ2hsaWdodHtiYWNrZ3JvdW5kOiNmNGY0ZjQ7Ym9yZGVyOjFweCBkYXNoZWQgI2RkZDttYXJnaW4tYm90dG9tOjEwcHh9LmZ1bGwtb3BhY2l0eS1ob3ZlcntvcGFjaXR5Oi42NTtmaWx0ZXI6YWxwaGEob3BhY2l0eT02NSl9LmZ1bGwtb3BhY2l0eS1ob3Zlcjpob3ZlcntvcGFjaXR5OjE7ZmlsdGVyOmFscGhhKG9wYWNpdHk9MTAwKX0uY2hhcnR7cG9zaXRpb246cmVsYXRpdmU7b3ZlcmZsb3c6aGlkZGVuO3dpZHRoOjEwMCV9LmNoYXJ0IHN2ZywuY2hhcnQgY2FudmFze3dpZHRoOjEwMCUgIWltcG9ydGFudH1AbWVkaWEgcHJpbnR7Lm5vLXByaW50LC5tYWluLXNpZGViYXIsLmxlZnQtc2lkZSwubWFpbi1oZWFkZXIsLmNvbnRlbnQtaGVhZGVye2Rpc3BsYXk6bm9uZSAhaW1wb3J0YW50fS5jb250ZW50LXdyYXBwZXIsLnJpZ2h0LXNpZGUsLm1haW4tZm9vdGVye21hcmdpbi1sZWZ0OjAgIWltcG9ydGFudDttaW4taGVpZ2h0OjAgIWltcG9ydGFudDstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUoMCwgMCkgIWltcG9ydGFudDstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZSgwLCAwKSAhaW1wb3J0YW50Oy1vLXRyYW5zZm9ybTp0cmFuc2xhdGUoMCwgMCkgIWltcG9ydGFudDt0cmFuc2Zvcm06dHJhbnNsYXRlKDAsIDApICFpbXBvcnRhbnR9LmZpeGVkIC5jb250ZW50LXdyYXBwZXIsLmZpeGVkIC5yaWdodC1zaWRle3BhZGRpbmctdG9wOjAgIWltcG9ydGFudH0uaW52b2ljZXt3aWR0aDoxMDAlO2JvcmRlcjowO21hcmdpbjowO3BhZGRpbmc6MH0uaW52b2ljZS1jb2x7ZmxvYXQ6bGVmdDt3aWR0aDozMy4zMzMzMzMzJX0udGFibGUtcmVzcG9uc2l2ZXtvdmVyZmxvdzphdXRvfS50YWJsZS1yZXNwb25zaXZlPi50YWJsZSB0ciB0aCwudGFibGUtcmVzcG9uc2l2ZT4udGFibGUgdHIgdGR7d2hpdGUtc3BhY2U6bm9ybWFsICFpbXBvcnRhbnR9fVxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL25vZGVfbW9kdWxlcy9hZG1pbi1sdGUvZGlzdC9jc3MvQWRtaW5MVEUubWluLmNzcyIsIi8qXG4gKiBTa2luOiBCbHVlXG4gKiAtLS0tLS0tLS0tXG4gKi9cbi5za2luLWJsdWUgLm1haW4taGVhZGVyIC5uYXZiYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjM2M4ZGJjO1xufVxuLnNraW4tYmx1ZSAubWFpbi1oZWFkZXIgLm5hdmJhciAubmF2ID4gbGkgPiBhIHtcbiAgY29sb3I6ICNmZmZmZmY7XG59XG4uc2tpbi1ibHVlIC5tYWluLWhlYWRlciAubmF2YmFyIC5uYXYgPiBsaSA+IGE6aG92ZXIsXG4uc2tpbi1ibHVlIC5tYWluLWhlYWRlciAubmF2YmFyIC5uYXYgPiBsaSA+IGE6YWN0aXZlLFxuLnNraW4tYmx1ZSAubWFpbi1oZWFkZXIgLm5hdmJhciAubmF2ID4gbGkgPiBhOmZvY3VzLFxuLnNraW4tYmx1ZSAubWFpbi1oZWFkZXIgLm5hdmJhciAubmF2IC5vcGVuID4gYSxcbi5za2luLWJsdWUgLm1haW4taGVhZGVyIC5uYXZiYXIgLm5hdiAub3BlbiA+IGE6aG92ZXIsXG4uc2tpbi1ibHVlIC5tYWluLWhlYWRlciAubmF2YmFyIC5uYXYgLm9wZW4gPiBhOmZvY3VzLFxuLnNraW4tYmx1ZSAubWFpbi1oZWFkZXIgLm5hdmJhciAubmF2ID4gLmFjdGl2ZSA+IGEge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMSk7XG4gIGNvbG9yOiAjZjZmNmY2O1xufVxuLnNraW4tYmx1ZSAubWFpbi1oZWFkZXIgLm5hdmJhciAuc2lkZWJhci10b2dnbGUge1xuICBjb2xvcjogI2ZmZmZmZjtcbn1cbi5za2luLWJsdWUgLm1haW4taGVhZGVyIC5uYXZiYXIgLnNpZGViYXItdG9nZ2xlOmhvdmVyIHtcbiAgY29sb3I6ICNmNmY2ZjY7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4xKTtcbn1cbi5za2luLWJsdWUgLm1haW4taGVhZGVyIC5uYXZiYXIgLnNpZGViYXItdG9nZ2xlIHtcbiAgY29sb3I6ICNmZmY7XG59XG4uc2tpbi1ibHVlIC5tYWluLWhlYWRlciAubmF2YmFyIC5zaWRlYmFyLXRvZ2dsZTpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzNjdmYTk7XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLnNraW4tYmx1ZSAubWFpbi1oZWFkZXIgLm5hdmJhciAuZHJvcGRvd24tbWVudSBsaS5kaXZpZGVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSk7XG4gIH1cbiAgLnNraW4tYmx1ZSAubWFpbi1oZWFkZXIgLm5hdmJhciAuZHJvcGRvd24tbWVudSBsaSBhIHtcbiAgICBjb2xvcjogI2ZmZjtcbiAgfVxuICAuc2tpbi1ibHVlIC5tYWluLWhlYWRlciAubmF2YmFyIC5kcm9wZG93bi1tZW51IGxpIGE6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICMzNjdmYTk7XG4gIH1cbn1cbi5za2luLWJsdWUgLm1haW4taGVhZGVyIC5sb2dvIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzM2N2ZhOTtcbiAgY29sb3I6ICNmZmZmZmY7XG4gIGJvcmRlci1ib3R0b206IDAgc29saWQgdHJhbnNwYXJlbnQ7XG59XG4uc2tpbi1ibHVlIC5tYWluLWhlYWRlciAubG9nbzpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzNTdjYTU7XG59XG4uc2tpbi1ibHVlIC5tYWluLWhlYWRlciBsaS51c2VyLWhlYWRlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzYzhkYmM7XG59XG4uc2tpbi1ibHVlIC5jb250ZW50LWhlYWRlciB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xufVxuLnNraW4tYmx1ZSAud3JhcHBlcixcbi5za2luLWJsdWUgLm1haW4tc2lkZWJhcixcbi5za2luLWJsdWUgLmxlZnQtc2lkZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyMjJkMzI7XG59XG4uc2tpbi1ibHVlIC51c2VyLXBhbmVsID4gLmluZm8sXG4uc2tpbi1ibHVlIC51c2VyLXBhbmVsID4gLmluZm8gPiBhIHtcbiAgY29sb3I6ICNmZmY7XG59XG4uc2tpbi1ibHVlIC5zaWRlYmFyLW1lbnUgPiBsaS5oZWFkZXIge1xuICBjb2xvcjogIzRiNjQ2ZjtcbiAgYmFja2dyb3VuZDogIzFhMjIyNjtcbn1cbi5za2luLWJsdWUgLnNpZGViYXItbWVudSA+IGxpID4gYSB7XG4gIGJvcmRlci1sZWZ0OiAzcHggc29saWQgdHJhbnNwYXJlbnQ7XG59XG4uc2tpbi1ibHVlIC5zaWRlYmFyLW1lbnUgPiBsaTpob3ZlciA+IGEsXG4uc2tpbi1ibHVlIC5zaWRlYmFyLW1lbnUgPiBsaS5hY3RpdmUgPiBhLFxuLnNraW4tYmx1ZSAuc2lkZWJhci1tZW51ID4gbGkubWVudS1vcGVuID4gYSB7XG4gIGNvbG9yOiAjZmZmZmZmO1xuICBiYWNrZ3JvdW5kOiAjMWUyODJjO1xufVxuLnNraW4tYmx1ZSAuc2lkZWJhci1tZW51ID4gbGkuYWN0aXZlID4gYSB7XG4gIGJvcmRlci1sZWZ0LWNvbG9yOiAjM2M4ZGJjO1xufVxuLnNraW4tYmx1ZSAuc2lkZWJhci1tZW51ID4gbGkgPiAudHJlZXZpZXctbWVudSB7XG4gIG1hcmdpbjogMCAxcHg7XG4gIGJhY2tncm91bmQ6ICMyYzNiNDE7XG59XG4uc2tpbi1ibHVlIC5zaWRlYmFyIGEge1xuICBjb2xvcjogI2I4YzdjZTtcbn1cbi5za2luLWJsdWUgLnNpZGViYXIgYTpob3ZlciB7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cbi5za2luLWJsdWUgLnNpZGViYXItbWVudSAudHJlZXZpZXctbWVudSA+IGxpID4gYSB7XG4gIGNvbG9yOiAjOGFhNGFmO1xufVxuLnNraW4tYmx1ZSAuc2lkZWJhci1tZW51IC50cmVldmlldy1tZW51ID4gbGkuYWN0aXZlID4gYSxcbi5za2luLWJsdWUgLnNpZGViYXItbWVudSAudHJlZXZpZXctbWVudSA+IGxpID4gYTpob3ZlciB7XG4gIGNvbG9yOiAjZmZmZmZmO1xufVxuLnNraW4tYmx1ZSAuc2lkZWJhci1mb3JtIHtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xuICBib3JkZXI6IDFweCBzb2xpZCAjMzc0ODUwO1xuICBtYXJnaW46IDEwcHggMTBweDtcbn1cbi5za2luLWJsdWUgLnNpZGViYXItZm9ybSBpbnB1dFt0eXBlPVwidGV4dFwiXSxcbi5za2luLWJsdWUgLnNpZGViYXItZm9ybSAuYnRuIHtcbiAgYm94LXNoYWRvdzogbm9uZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzM3NDg1MDtcbiAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGhlaWdodDogMzVweDtcbn1cbi5za2luLWJsdWUgLnNpZGViYXItZm9ybSBpbnB1dFt0eXBlPVwidGV4dFwiXSB7XG4gIGNvbG9yOiAjNjY2O1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAycHg7XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwO1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMDtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMnB4O1xufVxuLnNraW4tYmx1ZSAuc2lkZWJhci1mb3JtIGlucHV0W3R5cGU9XCJ0ZXh0XCJdOmZvY3VzLFxuLnNraW4tYmx1ZSAuc2lkZWJhci1mb3JtIGlucHV0W3R5cGU9XCJ0ZXh0XCJdOmZvY3VzICsgLmlucHV0LWdyb3VwLWJ0biAuYnRuIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgY29sb3I6ICM2NjY7XG59XG4uc2tpbi1ibHVlIC5zaWRlYmFyLWZvcm0gaW5wdXRbdHlwZT1cInRleHRcIl06Zm9jdXMgKyAuaW5wdXQtZ3JvdXAtYnRuIC5idG4ge1xuICBib3JkZXItbGVmdC1jb2xvcjogI2ZmZjtcbn1cbi5za2luLWJsdWUgLnNpZGViYXItZm9ybSAuYnRuIHtcbiAgY29sb3I6ICM5OTk7XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDA7XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAycHg7XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAycHg7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7XG59XG4uc2tpbi1ibHVlLmxheW91dC10b3AtbmF2IC5tYWluLWhlYWRlciA+IC5sb2dvIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzNjOGRiYztcbiAgY29sb3I6ICNmZmZmZmY7XG4gIGJvcmRlci1ib3R0b206IDAgc29saWQgdHJhbnNwYXJlbnQ7XG59XG4uc2tpbi1ibHVlLmxheW91dC10b3AtbmF2IC5tYWluLWhlYWRlciA+IC5sb2dvOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzNiOGFiODtcbn1cbi8qXG4gKiBTa2luOiBCbHVlXG4gKiAtLS0tLS0tLS0tXG4gKi9cbi5za2luLWJsdWUtbGlnaHQgLm1haW4taGVhZGVyIC5uYXZiYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjM2M4ZGJjO1xufVxuLnNraW4tYmx1ZS1saWdodCAubWFpbi1oZWFkZXIgLm5hdmJhciAubmF2ID4gbGkgPiBhIHtcbiAgY29sb3I6ICNmZmZmZmY7XG59XG4uc2tpbi1ibHVlLWxpZ2h0IC5tYWluLWhlYWRlciAubmF2YmFyIC5uYXYgPiBsaSA+IGE6aG92ZXIsXG4uc2tpbi1ibHVlLWxpZ2h0IC5tYWluLWhlYWRlciAubmF2YmFyIC5uYXYgPiBsaSA+IGE6YWN0aXZlLFxuLnNraW4tYmx1ZS1saWdodCAubWFpbi1oZWFkZXIgLm5hdmJhciAubmF2ID4gbGkgPiBhOmZvY3VzLFxuLnNraW4tYmx1ZS1saWdodCAubWFpbi1oZWFkZXIgLm5hdmJhciAubmF2IC5vcGVuID4gYSxcbi5za2luLWJsdWUtbGlnaHQgLm1haW4taGVhZGVyIC5uYXZiYXIgLm5hdiAub3BlbiA+IGE6aG92ZXIsXG4uc2tpbi1ibHVlLWxpZ2h0IC5tYWluLWhlYWRlciAubmF2YmFyIC5uYXYgLm9wZW4gPiBhOmZvY3VzLFxuLnNraW4tYmx1ZS1saWdodCAubWFpbi1oZWFkZXIgLm5hdmJhciAubmF2ID4gLmFjdGl2ZSA+IGEge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMSk7XG4gIGNvbG9yOiAjZjZmNmY2O1xufVxuLnNraW4tYmx1ZS1saWdodCAubWFpbi1oZWFkZXIgLm5hdmJhciAuc2lkZWJhci10b2dnbGUge1xuICBjb2xvcjogI2ZmZmZmZjtcbn1cbi5za2luLWJsdWUtbGlnaHQgLm1haW4taGVhZGVyIC5uYXZiYXIgLnNpZGViYXItdG9nZ2xlOmhvdmVyIHtcbiAgY29sb3I6ICNmNmY2ZjY7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4xKTtcbn1cbi5za2luLWJsdWUtbGlnaHQgLm1haW4taGVhZGVyIC5uYXZiYXIgLnNpZGViYXItdG9nZ2xlIHtcbiAgY29sb3I6ICNmZmY7XG59XG4uc2tpbi1ibHVlLWxpZ2h0IC5tYWluLWhlYWRlciAubmF2YmFyIC5zaWRlYmFyLXRvZ2dsZTpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzNjdmYTk7XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLnNraW4tYmx1ZS1saWdodCAubWFpbi1oZWFkZXIgLm5hdmJhciAuZHJvcGRvd24tbWVudSBsaS5kaXZpZGVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSk7XG4gIH1cbiAgLnNraW4tYmx1ZS1saWdodCAubWFpbi1oZWFkZXIgLm5hdmJhciAuZHJvcGRvd24tbWVudSBsaSBhIHtcbiAgICBjb2xvcjogI2ZmZjtcbiAgfVxuICAuc2tpbi1ibHVlLWxpZ2h0IC5tYWluLWhlYWRlciAubmF2YmFyIC5kcm9wZG93bi1tZW51IGxpIGE6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICMzNjdmYTk7XG4gIH1cbn1cbi5za2luLWJsdWUtbGlnaHQgLm1haW4taGVhZGVyIC5sb2dvIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzNjOGRiYztcbiAgY29sb3I6ICNmZmZmZmY7XG4gIGJvcmRlci1ib3R0b206IDAgc29saWQgdHJhbnNwYXJlbnQ7XG59XG4uc2tpbi1ibHVlLWxpZ2h0IC5tYWluLWhlYWRlciAubG9nbzpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzYjhhYjg7XG59XG4uc2tpbi1ibHVlLWxpZ2h0IC5tYWluLWhlYWRlciBsaS51c2VyLWhlYWRlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzYzhkYmM7XG59XG4uc2tpbi1ibHVlLWxpZ2h0IC5jb250ZW50LWhlYWRlciB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xufVxuLnNraW4tYmx1ZS1saWdodCAud3JhcHBlcixcbi5za2luLWJsdWUtbGlnaHQgLm1haW4tc2lkZWJhcixcbi5za2luLWJsdWUtbGlnaHQgLmxlZnQtc2lkZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmOWZhZmM7XG59XG4uc2tpbi1ibHVlLWxpZ2h0IC5tYWluLXNpZGViYXIge1xuICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjZDJkNmRlO1xufVxuLnNraW4tYmx1ZS1saWdodCAudXNlci1wYW5lbCA+IC5pbmZvLFxuLnNraW4tYmx1ZS1saWdodCAudXNlci1wYW5lbCA+IC5pbmZvID4gYSB7XG4gIGNvbG9yOiAjNDQ0NDQ0O1xufVxuLnNraW4tYmx1ZS1saWdodCAuc2lkZWJhci1tZW51ID4gbGkge1xuICAtd2Via2l0LXRyYW5zaXRpb246IGJvcmRlci1sZWZ0LWNvbG9yIDAuM3MgZWFzZTtcbiAgLW8tdHJhbnNpdGlvbjogYm9yZGVyLWxlZnQtY29sb3IgMC4zcyBlYXNlO1xuICB0cmFuc2l0aW9uOiBib3JkZXItbGVmdC1jb2xvciAwLjNzIGVhc2U7XG59XG4uc2tpbi1ibHVlLWxpZ2h0IC5zaWRlYmFyLW1lbnUgPiBsaS5oZWFkZXIge1xuICBjb2xvcjogIzg0ODQ4NDtcbiAgYmFja2dyb3VuZDogI2Y5ZmFmYztcbn1cbi5za2luLWJsdWUtbGlnaHQgLnNpZGViYXItbWVudSA+IGxpID4gYSB7XG4gIGJvcmRlci1sZWZ0OiAzcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG4uc2tpbi1ibHVlLWxpZ2h0IC5zaWRlYmFyLW1lbnUgPiBsaTpob3ZlciA+IGEsXG4uc2tpbi1ibHVlLWxpZ2h0IC5zaWRlYmFyLW1lbnUgPiBsaS5hY3RpdmUgPiBhIHtcbiAgY29sb3I6ICMwMDAwMDA7XG4gIGJhY2tncm91bmQ6ICNmNGY0ZjU7XG59XG4uc2tpbi1ibHVlLWxpZ2h0IC5zaWRlYmFyLW1lbnUgPiBsaS5hY3RpdmUge1xuICBib3JkZXItbGVmdC1jb2xvcjogIzNjOGRiYztcbn1cbi5za2luLWJsdWUtbGlnaHQgLnNpZGViYXItbWVudSA+IGxpLmFjdGl2ZSA+IGEge1xuICBmb250LXdlaWdodDogNjAwO1xufVxuLnNraW4tYmx1ZS1saWdodCAuc2lkZWJhci1tZW51ID4gbGkgPiAudHJlZXZpZXctbWVudSB7XG4gIGJhY2tncm91bmQ6ICNmNGY0ZjU7XG59XG4uc2tpbi1ibHVlLWxpZ2h0IC5zaWRlYmFyIGEge1xuICBjb2xvcjogIzQ0NDQ0NDtcbn1cbi5za2luLWJsdWUtbGlnaHQgLnNpZGViYXIgYTpob3ZlciB7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cbi5za2luLWJsdWUtbGlnaHQgLnNpZGViYXItbWVudSAudHJlZXZpZXctbWVudSA+IGxpID4gYSB7XG4gIGNvbG9yOiAjNzc3Nzc3O1xufVxuLnNraW4tYmx1ZS1saWdodCAuc2lkZWJhci1tZW51IC50cmVldmlldy1tZW51ID4gbGkuYWN0aXZlID4gYSxcbi5za2luLWJsdWUtbGlnaHQgLnNpZGViYXItbWVudSAudHJlZXZpZXctbWVudSA+IGxpID4gYTpob3ZlciB7XG4gIGNvbG9yOiAjMDAwMDAwO1xufVxuLnNraW4tYmx1ZS1saWdodCAuc2lkZWJhci1tZW51IC50cmVldmlldy1tZW51ID4gbGkuYWN0aXZlID4gYSB7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG4uc2tpbi1ibHVlLWxpZ2h0IC5zaWRlYmFyLWZvcm0ge1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNkMmQ2ZGU7XG4gIG1hcmdpbjogMTBweCAxMHB4O1xufVxuLnNraW4tYmx1ZS1saWdodCAuc2lkZWJhci1mb3JtIGlucHV0W3R5cGU9XCJ0ZXh0XCJdLFxuLnNraW4tYmx1ZS1saWdodCAuc2lkZWJhci1mb3JtIC5idG4ge1xuICBib3gtc2hhZG93OiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgaGVpZ2h0OiAzNXB4O1xufVxuLnNraW4tYmx1ZS1saWdodCAuc2lkZWJhci1mb3JtIGlucHV0W3R5cGU9XCJ0ZXh0XCJdIHtcbiAgY29sb3I6ICM2NjY7XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDJweDtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDA7XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwO1xuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAycHg7XG59XG4uc2tpbi1ibHVlLWxpZ2h0IC5zaWRlYmFyLWZvcm0gaW5wdXRbdHlwZT1cInRleHRcIl06Zm9jdXMsXG4uc2tpbi1ibHVlLWxpZ2h0IC5zaWRlYmFyLWZvcm0gaW5wdXRbdHlwZT1cInRleHRcIl06Zm9jdXMgKyAuaW5wdXQtZ3JvdXAtYnRuIC5idG4ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBjb2xvcjogIzY2Njtcbn1cbi5za2luLWJsdWUtbGlnaHQgLnNpZGViYXItZm9ybSBpbnB1dFt0eXBlPVwidGV4dFwiXTpmb2N1cyArIC5pbnB1dC1ncm91cC1idG4gLmJ0biB7XG4gIGJvcmRlci1sZWZ0LWNvbG9yOiAjZmZmO1xufVxuLnNraW4tYmx1ZS1saWdodCAuc2lkZWJhci1mb3JtIC5idG4ge1xuICBjb2xvcjogIzk5OTtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMDtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDJweDtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDJweDtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAuc2tpbi1ibHVlLWxpZ2h0LnNpZGViYXItbWluaS5zaWRlYmFyLWNvbGxhcHNlIC5zaWRlYmFyLW1lbnUgPiBsaSA+IC50cmVldmlldy1tZW51IHtcbiAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkICNkMmQ2ZGU7XG4gIH1cbn1cbi5za2luLWJsdWUtbGlnaHQgLm1haW4tZm9vdGVyIHtcbiAgYm9yZGVyLXRvcC1jb2xvcjogI2QyZDZkZTtcbn1cbi5za2luLWJsdWUubGF5b3V0LXRvcC1uYXYgLm1haW4taGVhZGVyID4gLmxvZ28ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjM2M4ZGJjO1xuICBjb2xvcjogI2ZmZmZmZjtcbiAgYm9yZGVyLWJvdHRvbTogMCBzb2xpZCB0cmFuc3BhcmVudDtcbn1cbi5za2luLWJsdWUubGF5b3V0LXRvcC1uYXYgLm1haW4taGVhZGVyID4gLmxvZ286aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjM2I4YWI4O1xufVxuLypcbiAqIFNraW46IEJsYWNrXG4gKiAtLS0tLS0tLS0tLVxuICovXG4vKiBza2luLWJsYWNrIG5hdmJhciAqL1xuLnNraW4tYmxhY2sgLm1haW4taGVhZGVyIHtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwcHggMXB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMDUpO1xuICBib3gtc2hhZG93OiAwcHggMXB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMDUpO1xufVxuLnNraW4tYmxhY2sgLm1haW4taGVhZGVyIC5uYXZiYXItdG9nZ2xlIHtcbiAgY29sb3I6ICMzMzM7XG59XG4uc2tpbi1ibGFjayAubWFpbi1oZWFkZXIgLm5hdmJhci1icmFuZCB7XG4gIGNvbG9yOiAjMzMzO1xuICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjZWVlO1xufVxuLnNraW4tYmxhY2sgLm1haW4taGVhZGVyIC5uYXZiYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xufVxuLnNraW4tYmxhY2sgLm1haW4taGVhZGVyIC5uYXZiYXIgLm5hdiA+IGxpID4gYSB7XG4gIGNvbG9yOiAjMzMzMzMzO1xufVxuLnNraW4tYmxhY2sgLm1haW4taGVhZGVyIC5uYXZiYXIgLm5hdiA+IGxpID4gYTpob3Zlcixcbi5za2luLWJsYWNrIC5tYWluLWhlYWRlciAubmF2YmFyIC5uYXYgPiBsaSA+IGE6YWN0aXZlLFxuLnNraW4tYmxhY2sgLm1haW4taGVhZGVyIC5uYXZiYXIgLm5hdiA+IGxpID4gYTpmb2N1cyxcbi5za2luLWJsYWNrIC5tYWluLWhlYWRlciAubmF2YmFyIC5uYXYgLm9wZW4gPiBhLFxuLnNraW4tYmxhY2sgLm1haW4taGVhZGVyIC5uYXZiYXIgLm5hdiAub3BlbiA+IGE6aG92ZXIsXG4uc2tpbi1ibGFjayAubWFpbi1oZWFkZXIgLm5hdmJhciAubmF2IC5vcGVuID4gYTpmb2N1cyxcbi5za2luLWJsYWNrIC5tYWluLWhlYWRlciAubmF2YmFyIC5uYXYgPiAuYWN0aXZlID4gYSB7XG4gIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gIGNvbG9yOiAjOTk5OTk5O1xufVxuLnNraW4tYmxhY2sgLm1haW4taGVhZGVyIC5uYXZiYXIgLnNpZGViYXItdG9nZ2xlIHtcbiAgY29sb3I6ICMzMzMzMzM7XG59XG4uc2tpbi1ibGFjayAubWFpbi1oZWFkZXIgLm5hdmJhciAuc2lkZWJhci10b2dnbGU6aG92ZXIge1xuICBjb2xvcjogIzk5OTk5OTtcbiAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbn1cbi5za2luLWJsYWNrIC5tYWluLWhlYWRlciAubmF2YmFyID4gLnNpZGViYXItdG9nZ2xlIHtcbiAgY29sb3I6ICMzMzM7XG4gIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICNlZWU7XG59XG4uc2tpbi1ibGFjayAubWFpbi1oZWFkZXIgLm5hdmJhciAubmF2YmFyLW5hdiA+IGxpID4gYSB7XG4gIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICNlZWU7XG59XG4uc2tpbi1ibGFjayAubWFpbi1oZWFkZXIgLm5hdmJhciAubmF2YmFyLWN1c3RvbS1tZW51IC5uYXZiYXItbmF2ID4gbGkgPiBhLFxuLnNraW4tYmxhY2sgLm1haW4taGVhZGVyIC5uYXZiYXIgLm5hdmJhci1yaWdodCA+IGxpID4gYSB7XG4gIGJvcmRlci1sZWZ0OiAxcHggc29saWQgI2VlZTtcbiAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAwO1xufVxuLnNraW4tYmxhY2sgLm1haW4taGVhZGVyIC5sb2dvIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgY29sb3I6ICMzMzMzMzM7XG4gIGJvcmRlci1ib3R0b206IDAgc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICNlZWU7XG59XG4uc2tpbi1ibGFjayAubWFpbi1oZWFkZXIgLmxvZ286aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmNmY2ZjO1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC5za2luLWJsYWNrIC5tYWluLWhlYWRlciAubG9nbyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzIyMjIyMjtcbiAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICBib3JkZXItYm90dG9tOiAwIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci1yaWdodDogbm9uZTtcbiAgfVxuICAuc2tpbi1ibGFjayAubWFpbi1oZWFkZXIgLmxvZ286aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMxZjFmMWY7XG4gIH1cbn1cbi5za2luLWJsYWNrIC5tYWluLWhlYWRlciBsaS51c2VyLWhlYWRlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyMjI7XG59XG4uc2tpbi1ibGFjayAuY29udGVudC1oZWFkZXIge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cbi5za2luLWJsYWNrIC53cmFwcGVyLFxuLnNraW4tYmxhY2sgLm1haW4tc2lkZWJhcixcbi5za2luLWJsYWNrIC5sZWZ0LXNpZGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjIyZDMyO1xufVxuLnNraW4tYmxhY2sgLnVzZXItcGFuZWwgPiAuaW5mbyxcbi5za2luLWJsYWNrIC51c2VyLXBhbmVsID4gLmluZm8gPiBhIHtcbiAgY29sb3I6ICNmZmY7XG59XG4uc2tpbi1ibGFjayAuc2lkZWJhci1tZW51ID4gbGkuaGVhZGVyIHtcbiAgY29sb3I6ICM0YjY0NmY7XG4gIGJhY2tncm91bmQ6ICMxYTIyMjY7XG59XG4uc2tpbi1ibGFjayAuc2lkZWJhci1tZW51ID4gbGkgPiBhIHtcbiAgYm9yZGVyLWxlZnQ6IDNweCBzb2xpZCB0cmFuc3BhcmVudDtcbn1cbi5za2luLWJsYWNrIC5zaWRlYmFyLW1lbnUgPiBsaTpob3ZlciA+IGEsXG4uc2tpbi1ibGFjayAuc2lkZWJhci1tZW51ID4gbGkuYWN0aXZlID4gYSxcbi5za2luLWJsYWNrIC5zaWRlYmFyLW1lbnUgPiBsaS5tZW51LW9wZW4gPiBhIHtcbiAgY29sb3I6ICNmZmZmZmY7XG4gIGJhY2tncm91bmQ6ICMxZTI4MmM7XG59XG4uc2tpbi1ibGFjayAuc2lkZWJhci1tZW51ID4gbGkuYWN0aXZlID4gYSB7XG4gIGJvcmRlci1sZWZ0LWNvbG9yOiAjZmZmZmZmO1xufVxuLnNraW4tYmxhY2sgLnNpZGViYXItbWVudSA+IGxpID4gLnRyZWV2aWV3LW1lbnUge1xuICBtYXJnaW46IDAgMXB4O1xuICBiYWNrZ3JvdW5kOiAjMmMzYjQxO1xufVxuLnNraW4tYmxhY2sgLnNpZGViYXIgYSB7XG4gIGNvbG9yOiAjYjhjN2NlO1xufVxuLnNraW4tYmxhY2sgLnNpZGViYXIgYTpob3ZlciB7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cbi5za2luLWJsYWNrIC5zaWRlYmFyLW1lbnUgLnRyZWV2aWV3LW1lbnUgPiBsaSA+IGEge1xuICBjb2xvcjogIzhhYTRhZjtcbn1cbi5za2luLWJsYWNrIC5zaWRlYmFyLW1lbnUgLnRyZWV2aWV3LW1lbnUgPiBsaS5hY3RpdmUgPiBhLFxuLnNraW4tYmxhY2sgLnNpZGViYXItbWVudSAudHJlZXZpZXctbWVudSA+IGxpID4gYTpob3ZlciB7XG4gIGNvbG9yOiAjZmZmZmZmO1xufVxuLnNraW4tYmxhY2sgLnNpZGViYXItZm9ybSB7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgYm9yZGVyOiAxcHggc29saWQgIzM3NDg1MDtcbiAgbWFyZ2luOiAxMHB4IDEwcHg7XG59XG4uc2tpbi1ibGFjayAuc2lkZWJhci1mb3JtIGlucHV0W3R5cGU9XCJ0ZXh0XCJdLFxuLnNraW4tYmxhY2sgLnNpZGViYXItZm9ybSAuYnRuIHtcbiAgYm94LXNoYWRvdzogbm9uZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzM3NDg1MDtcbiAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGhlaWdodDogMzVweDtcbn1cbi5za2luLWJsYWNrIC5zaWRlYmFyLWZvcm0gaW5wdXRbdHlwZT1cInRleHRcIl0ge1xuICBjb2xvcjogIzY2NjtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMnB4O1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMDtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDJweDtcbn1cbi5za2luLWJsYWNrIC5zaWRlYmFyLWZvcm0gaW5wdXRbdHlwZT1cInRleHRcIl06Zm9jdXMsXG4uc2tpbi1ibGFjayAuc2lkZWJhci1mb3JtIGlucHV0W3R5cGU9XCJ0ZXh0XCJdOmZvY3VzICsgLmlucHV0LWdyb3VwLWJ0biAuYnRuIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgY29sb3I6ICM2NjY7XG59XG4uc2tpbi1ibGFjayAuc2lkZWJhci1mb3JtIGlucHV0W3R5cGU9XCJ0ZXh0XCJdOmZvY3VzICsgLmlucHV0LWdyb3VwLWJ0biAuYnRuIHtcbiAgYm9yZGVyLWxlZnQtY29sb3I6ICNmZmY7XG59XG4uc2tpbi1ibGFjayAuc2lkZWJhci1mb3JtIC5idG4ge1xuICBjb2xvcjogIzk5OTtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMDtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDJweDtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDJweDtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDtcbn1cbi5za2luLWJsYWNrIC5wYWNlIC5wYWNlLXByb2dyZXNzIHtcbiAgYmFja2dyb3VuZDogIzIyMjtcbn1cbi5za2luLWJsYWNrIC5wYWNlIC5wYWNlLWFjdGl2aXR5IHtcbiAgYm9yZGVyLXRvcC1jb2xvcjogIzIyMjtcbiAgYm9yZGVyLWxlZnQtY29sb3I6ICMyMjI7XG59XG4vKlxuICogU2tpbjogQmxhY2tcbiAqIC0tLS0tLS0tLS0tXG4gKi9cbi8qIHNraW4tYmxhY2sgbmF2YmFyICovXG4uc2tpbi1ibGFjay1saWdodCAubWFpbi1oZWFkZXIge1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2QyZDZkZTtcbn1cbi5za2luLWJsYWNrLWxpZ2h0IC5tYWluLWhlYWRlciAubmF2YmFyLXRvZ2dsZSB7XG4gIGNvbG9yOiAjMzMzO1xufVxuLnNraW4tYmxhY2stbGlnaHQgLm1haW4taGVhZGVyIC5uYXZiYXItYnJhbmQge1xuICBjb2xvcjogIzMzMztcbiAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI2QyZDZkZTtcbn1cbi5za2luLWJsYWNrLWxpZ2h0IC5tYWluLWhlYWRlciAubmF2YmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbn1cbi5za2luLWJsYWNrLWxpZ2h0IC5tYWluLWhlYWRlciAubmF2YmFyIC5uYXYgPiBsaSA+IGEge1xuICBjb2xvcjogIzMzMzMzMztcbn1cbi5za2luLWJsYWNrLWxpZ2h0IC5tYWluLWhlYWRlciAubmF2YmFyIC5uYXYgPiBsaSA+IGE6aG92ZXIsXG4uc2tpbi1ibGFjay1saWdodCAubWFpbi1oZWFkZXIgLm5hdmJhciAubmF2ID4gbGkgPiBhOmFjdGl2ZSxcbi5za2luLWJsYWNrLWxpZ2h0IC5tYWluLWhlYWRlciAubmF2YmFyIC5uYXYgPiBsaSA+IGE6Zm9jdXMsXG4uc2tpbi1ibGFjay1saWdodCAubWFpbi1oZWFkZXIgLm5hdmJhciAubmF2IC5vcGVuID4gYSxcbi5za2luLWJsYWNrLWxpZ2h0IC5tYWluLWhlYWRlciAubmF2YmFyIC5uYXYgLm9wZW4gPiBhOmhvdmVyLFxuLnNraW4tYmxhY2stbGlnaHQgLm1haW4taGVhZGVyIC5uYXZiYXIgLm5hdiAub3BlbiA+IGE6Zm9jdXMsXG4uc2tpbi1ibGFjay1saWdodCAubWFpbi1oZWFkZXIgLm5hdmJhciAubmF2ID4gLmFjdGl2ZSA+IGEge1xuICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICBjb2xvcjogIzk5OTk5OTtcbn1cbi5za2luLWJsYWNrLWxpZ2h0IC5tYWluLWhlYWRlciAubmF2YmFyIC5zaWRlYmFyLXRvZ2dsZSB7XG4gIGNvbG9yOiAjMzMzMzMzO1xufVxuLnNraW4tYmxhY2stbGlnaHQgLm1haW4taGVhZGVyIC5uYXZiYXIgLnNpZGViYXItdG9nZ2xlOmhvdmVyIHtcbiAgY29sb3I6ICM5OTk5OTk7XG4gIGJhY2tncm91bmQ6ICNmZmZmZmY7XG59XG4uc2tpbi1ibGFjay1saWdodCAubWFpbi1oZWFkZXIgLm5hdmJhciA+IC5zaWRlYmFyLXRvZ2dsZSB7XG4gIGNvbG9yOiAjMzMzO1xuICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjZDJkNmRlO1xufVxuLnNraW4tYmxhY2stbGlnaHQgLm1haW4taGVhZGVyIC5uYXZiYXIgLm5hdmJhci1uYXYgPiBsaSA+IGEge1xuICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjZDJkNmRlO1xufVxuLnNraW4tYmxhY2stbGlnaHQgLm1haW4taGVhZGVyIC5uYXZiYXIgLm5hdmJhci1jdXN0b20tbWVudSAubmF2YmFyLW5hdiA+IGxpID4gYSxcbi5za2luLWJsYWNrLWxpZ2h0IC5tYWluLWhlYWRlciAubmF2YmFyIC5uYXZiYXItcmlnaHQgPiBsaSA+IGEge1xuICBib3JkZXItbGVmdDogMXB4IHNvbGlkICNkMmQ2ZGU7XG4gIGJvcmRlci1yaWdodC13aWR0aDogMDtcbn1cbi5za2luLWJsYWNrLWxpZ2h0IC5tYWluLWhlYWRlciAubG9nbyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gIGNvbG9yOiAjMzMzMzMzO1xuICBib3JkZXItYm90dG9tOiAwIHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjZDJkNmRlO1xufVxuLnNraW4tYmxhY2stbGlnaHQgLm1haW4taGVhZGVyIC5sb2dvOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZjZmNmYztcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICAuc2tpbi1ibGFjay1saWdodCAubWFpbi1oZWFkZXIgLmxvZ28ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMyMjIyMjI7XG4gICAgY29sb3I6ICNmZmZmZmY7XG4gICAgYm9yZGVyLWJvdHRvbTogMCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItcmlnaHQ6IG5vbmU7XG4gIH1cbiAgLnNraW4tYmxhY2stbGlnaHQgLm1haW4taGVhZGVyIC5sb2dvOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMWYxZjFmO1xuICB9XG59XG4uc2tpbi1ibGFjay1saWdodCAubWFpbi1oZWFkZXIgbGkudXNlci1oZWFkZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjIyO1xufVxuLnNraW4tYmxhY2stbGlnaHQgLmNvbnRlbnQtaGVhZGVyIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG59XG4uc2tpbi1ibGFjay1saWdodCAud3JhcHBlcixcbi5za2luLWJsYWNrLWxpZ2h0IC5tYWluLXNpZGViYXIsXG4uc2tpbi1ibGFjay1saWdodCAubGVmdC1zaWRlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y5ZmFmYztcbn1cbi5za2luLWJsYWNrLWxpZ2h0IC5tYWluLXNpZGViYXIge1xuICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjZDJkNmRlO1xufVxuLnNraW4tYmxhY2stbGlnaHQgLnVzZXItcGFuZWwgPiAuaW5mbyxcbi5za2luLWJsYWNrLWxpZ2h0IC51c2VyLXBhbmVsID4gLmluZm8gPiBhIHtcbiAgY29sb3I6ICM0NDQ0NDQ7XG59XG4uc2tpbi1ibGFjay1saWdodCAuc2lkZWJhci1tZW51ID4gbGkge1xuICAtd2Via2l0LXRyYW5zaXRpb246IGJvcmRlci1sZWZ0LWNvbG9yIDAuM3MgZWFzZTtcbiAgLW8tdHJhbnNpdGlvbjogYm9yZGVyLWxlZnQtY29sb3IgMC4zcyBlYXNlO1xuICB0cmFuc2l0aW9uOiBib3JkZXItbGVmdC1jb2xvciAwLjNzIGVhc2U7XG59XG4uc2tpbi1ibGFjay1saWdodCAuc2lkZWJhci1tZW51ID4gbGkuaGVhZGVyIHtcbiAgY29sb3I6ICM4NDg0ODQ7XG4gIGJhY2tncm91bmQ6ICNmOWZhZmM7XG59XG4uc2tpbi1ibGFjay1saWdodCAuc2lkZWJhci1tZW51ID4gbGkgPiBhIHtcbiAgYm9yZGVyLWxlZnQ6IDNweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbn1cbi5za2luLWJsYWNrLWxpZ2h0IC5zaWRlYmFyLW1lbnUgPiBsaTpob3ZlciA+IGEsXG4uc2tpbi1ibGFjay1saWdodCAuc2lkZWJhci1tZW51ID4gbGkuYWN0aXZlID4gYSB7XG4gIGNvbG9yOiAjMDAwMDAwO1xuICBiYWNrZ3JvdW5kOiAjZjRmNGY1O1xufVxuLnNraW4tYmxhY2stbGlnaHQgLnNpZGViYXItbWVudSA+IGxpLmFjdGl2ZSB7XG4gIGJvcmRlci1sZWZ0LWNvbG9yOiAjZmZmZmZmO1xufVxuLnNraW4tYmxhY2stbGlnaHQgLnNpZGViYXItbWVudSA+IGxpLmFjdGl2ZSA+IGEge1xuICBmb250LXdlaWdodDogNjAwO1xufVxuLnNraW4tYmxhY2stbGlnaHQgLnNpZGViYXItbWVudSA+IGxpID4gLnRyZWV2aWV3LW1lbnUge1xuICBiYWNrZ3JvdW5kOiAjZjRmNGY1O1xufVxuLnNraW4tYmxhY2stbGlnaHQgLnNpZGViYXIgYSB7XG4gIGNvbG9yOiAjNDQ0NDQ0O1xufVxuLnNraW4tYmxhY2stbGlnaHQgLnNpZGViYXIgYTpob3ZlciB7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cbi5za2luLWJsYWNrLWxpZ2h0IC5zaWRlYmFyLW1lbnUgLnRyZWV2aWV3LW1lbnUgPiBsaSA+IGEge1xuICBjb2xvcjogIzc3Nzc3Nztcbn1cbi5za2luLWJsYWNrLWxpZ2h0IC5zaWRlYmFyLW1lbnUgLnRyZWV2aWV3LW1lbnUgPiBsaS5hY3RpdmUgPiBhLFxuLnNraW4tYmxhY2stbGlnaHQgLnNpZGViYXItbWVudSAudHJlZXZpZXctbWVudSA+IGxpID4gYTpob3ZlciB7XG4gIGNvbG9yOiAjMDAwMDAwO1xufVxuLnNraW4tYmxhY2stbGlnaHQgLnNpZGViYXItbWVudSAudHJlZXZpZXctbWVudSA+IGxpLmFjdGl2ZSA+IGEge1xuICBmb250LXdlaWdodDogNjAwO1xufVxuLnNraW4tYmxhY2stbGlnaHQgLnNpZGViYXItZm9ybSB7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgYm9yZGVyOiAxcHggc29saWQgI2QyZDZkZTtcbiAgbWFyZ2luOiAxMHB4IDEwcHg7XG59XG4uc2tpbi1ibGFjay1saWdodCAuc2lkZWJhci1mb3JtIGlucHV0W3R5cGU9XCJ0ZXh0XCJdLFxuLnNraW4tYmxhY2stbGlnaHQgLnNpZGViYXItZm9ybSAuYnRuIHtcbiAgYm94LXNoYWRvdzogbm9uZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGhlaWdodDogMzVweDtcbn1cbi5za2luLWJsYWNrLWxpZ2h0IC5zaWRlYmFyLWZvcm0gaW5wdXRbdHlwZT1cInRleHRcIl0ge1xuICBjb2xvcjogIzY2NjtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMnB4O1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMDtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDJweDtcbn1cbi5za2luLWJsYWNrLWxpZ2h0IC5zaWRlYmFyLWZvcm0gaW5wdXRbdHlwZT1cInRleHRcIl06Zm9jdXMsXG4uc2tpbi1ibGFjay1saWdodCAuc2lkZWJhci1mb3JtIGlucHV0W3R5cGU9XCJ0ZXh0XCJdOmZvY3VzICsgLmlucHV0LWdyb3VwLWJ0biAuYnRuIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgY29sb3I6ICM2NjY7XG59XG4uc2tpbi1ibGFjay1saWdodCAuc2lkZWJhci1mb3JtIGlucHV0W3R5cGU9XCJ0ZXh0XCJdOmZvY3VzICsgLmlucHV0LWdyb3VwLWJ0biAuYnRuIHtcbiAgYm9yZGVyLWxlZnQtY29sb3I6ICNmZmY7XG59XG4uc2tpbi1ibGFjay1saWdodCAuc2lkZWJhci1mb3JtIC5idG4ge1xuICBjb2xvcjogIzk5OTtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMDtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDJweDtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDJweDtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAuc2tpbi1ibGFjay1saWdodC5zaWRlYmFyLW1pbmkuc2lkZWJhci1jb2xsYXBzZSAuc2lkZWJhci1tZW51ID4gbGkgPiAudHJlZXZpZXctbWVudSB7XG4gICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjZDJkNmRlO1xuICB9XG59XG4vKlxuICogU2tpbjogR3JlZW5cbiAqIC0tLS0tLS0tLS0tXG4gKi9cbi5za2luLWdyZWVuIC5tYWluLWhlYWRlciAubmF2YmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwYTY1YTtcbn1cbi5za2luLWdyZWVuIC5tYWluLWhlYWRlciAubmF2YmFyIC5uYXYgPiBsaSA+IGEge1xuICBjb2xvcjogI2ZmZmZmZjtcbn1cbi5za2luLWdyZWVuIC5tYWluLWhlYWRlciAubmF2YmFyIC5uYXYgPiBsaSA+IGE6aG92ZXIsXG4uc2tpbi1ncmVlbiAubWFpbi1oZWFkZXIgLm5hdmJhciAubmF2ID4gbGkgPiBhOmFjdGl2ZSxcbi5za2luLWdyZWVuIC5tYWluLWhlYWRlciAubmF2YmFyIC5uYXYgPiBsaSA+IGE6Zm9jdXMsXG4uc2tpbi1ncmVlbiAubWFpbi1oZWFkZXIgLm5hdmJhciAubmF2IC5vcGVuID4gYSxcbi5za2luLWdyZWVuIC5tYWluLWhlYWRlciAubmF2YmFyIC5uYXYgLm9wZW4gPiBhOmhvdmVyLFxuLnNraW4tZ3JlZW4gLm1haW4taGVhZGVyIC5uYXZiYXIgLm5hdiAub3BlbiA+IGE6Zm9jdXMsXG4uc2tpbi1ncmVlbiAubWFpbi1oZWFkZXIgLm5hdmJhciAubmF2ID4gLmFjdGl2ZSA+IGEge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMSk7XG4gIGNvbG9yOiAjZjZmNmY2O1xufVxuLnNraW4tZ3JlZW4gLm1haW4taGVhZGVyIC5uYXZiYXIgLnNpZGViYXItdG9nZ2xlIHtcbiAgY29sb3I6ICNmZmZmZmY7XG59XG4uc2tpbi1ncmVlbiAubWFpbi1oZWFkZXIgLm5hdmJhciAuc2lkZWJhci10b2dnbGU6aG92ZXIge1xuICBjb2xvcjogI2Y2ZjZmNjtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjEpO1xufVxuLnNraW4tZ3JlZW4gLm1haW4taGVhZGVyIC5uYXZiYXIgLnNpZGViYXItdG9nZ2xlIHtcbiAgY29sb3I6ICNmZmY7XG59XG4uc2tpbi1ncmVlbiAubWFpbi1oZWFkZXIgLm5hdmJhciAuc2lkZWJhci10b2dnbGU6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA4ZDRjO1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC5za2luLWdyZWVuIC5tYWluLWhlYWRlciAubmF2YmFyIC5kcm9wZG93bi1tZW51IGxpLmRpdmlkZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTtcbiAgfVxuICAuc2tpbi1ncmVlbiAubWFpbi1oZWFkZXIgLm5hdmJhciAuZHJvcGRvd24tbWVudSBsaSBhIHtcbiAgICBjb2xvcjogI2ZmZjtcbiAgfVxuICAuc2tpbi1ncmVlbiAubWFpbi1oZWFkZXIgLm5hdmJhciAuZHJvcGRvd24tbWVudSBsaSBhOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiAjMDA4ZDRjO1xuICB9XG59XG4uc2tpbi1ncmVlbiAubWFpbi1oZWFkZXIgLmxvZ28ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA4ZDRjO1xuICBjb2xvcjogI2ZmZmZmZjtcbiAgYm9yZGVyLWJvdHRvbTogMCBzb2xpZCB0cmFuc3BhcmVudDtcbn1cbi5za2luLWdyZWVuIC5tYWluLWhlYWRlciAubG9nbzpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDg3NDk7XG59XG4uc2tpbi1ncmVlbiAubWFpbi1oZWFkZXIgbGkudXNlci1oZWFkZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBhNjVhO1xufVxuLnNraW4tZ3JlZW4gLmNvbnRlbnQtaGVhZGVyIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG59XG4uc2tpbi1ncmVlbiAud3JhcHBlcixcbi5za2luLWdyZWVuIC5tYWluLXNpZGViYXIsXG4uc2tpbi1ncmVlbiAubGVmdC1zaWRlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzIyMmQzMjtcbn1cbi5za2luLWdyZWVuIC51c2VyLXBhbmVsID4gLmluZm8sXG4uc2tpbi1ncmVlbiAudXNlci1wYW5lbCA+IC5pbmZvID4gYSB7XG4gIGNvbG9yOiAjZmZmO1xufVxuLnNraW4tZ3JlZW4gLnNpZGViYXItbWVudSA+IGxpLmhlYWRlciB7XG4gIGNvbG9yOiAjNGI2NDZmO1xuICBiYWNrZ3JvdW5kOiAjMWEyMjI2O1xufVxuLnNraW4tZ3JlZW4gLnNpZGViYXItbWVudSA+IGxpID4gYSB7XG4gIGJvcmRlci1sZWZ0OiAzcHggc29saWQgdHJhbnNwYXJlbnQ7XG59XG4uc2tpbi1ncmVlbiAuc2lkZWJhci1tZW51ID4gbGk6aG92ZXIgPiBhLFxuLnNraW4tZ3JlZW4gLnNpZGViYXItbWVudSA+IGxpLmFjdGl2ZSA+IGEsXG4uc2tpbi1ncmVlbiAuc2lkZWJhci1tZW51ID4gbGkubWVudS1vcGVuID4gYSB7XG4gIGNvbG9yOiAjZmZmZmZmO1xuICBiYWNrZ3JvdW5kOiAjMWUyODJjO1xufVxuLnNraW4tZ3JlZW4gLnNpZGViYXItbWVudSA+IGxpLmFjdGl2ZSA+IGEge1xuICBib3JkZXItbGVmdC1jb2xvcjogIzAwYTY1YTtcbn1cbi5za2luLWdyZWVuIC5zaWRlYmFyLW1lbnUgPiBsaSA+IC50cmVldmlldy1tZW51IHtcbiAgbWFyZ2luOiAwIDFweDtcbiAgYmFja2dyb3VuZDogIzJjM2I0MTtcbn1cbi5za2luLWdyZWVuIC5zaWRlYmFyIGEge1xuICBjb2xvcjogI2I4YzdjZTtcbn1cbi5za2luLWdyZWVuIC5zaWRlYmFyIGE6aG92ZXIge1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG4uc2tpbi1ncmVlbiAuc2lkZWJhci1tZW51IC50cmVldmlldy1tZW51ID4gbGkgPiBhIHtcbiAgY29sb3I6ICM4YWE0YWY7XG59XG4uc2tpbi1ncmVlbiAuc2lkZWJhci1tZW51IC50cmVldmlldy1tZW51ID4gbGkuYWN0aXZlID4gYSxcbi5za2luLWdyZWVuIC5zaWRlYmFyLW1lbnUgLnRyZWV2aWV3LW1lbnUgPiBsaSA+IGE6aG92ZXIge1xuICBjb2xvcjogI2ZmZmZmZjtcbn1cbi5za2luLWdyZWVuIC5zaWRlYmFyLWZvcm0ge1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkICMzNzQ4NTA7XG4gIG1hcmdpbjogMTBweCAxMHB4O1xufVxuLnNraW4tZ3JlZW4gLnNpZGViYXItZm9ybSBpbnB1dFt0eXBlPVwidGV4dFwiXSxcbi5za2luLWdyZWVuIC5zaWRlYmFyLWZvcm0gLmJ0biB7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzNzQ4NTA7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBoZWlnaHQ6IDM1cHg7XG59XG4uc2tpbi1ncmVlbiAuc2lkZWJhci1mb3JtIGlucHV0W3R5cGU9XCJ0ZXh0XCJdIHtcbiAgY29sb3I6ICM2NjY7XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDJweDtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDA7XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwO1xuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAycHg7XG59XG4uc2tpbi1ncmVlbiAuc2lkZWJhci1mb3JtIGlucHV0W3R5cGU9XCJ0ZXh0XCJdOmZvY3VzLFxuLnNraW4tZ3JlZW4gLnNpZGViYXItZm9ybSBpbnB1dFt0eXBlPVwidGV4dFwiXTpmb2N1cyArIC5pbnB1dC1ncm91cC1idG4gLmJ0biB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGNvbG9yOiAjNjY2O1xufVxuLnNraW4tZ3JlZW4gLnNpZGViYXItZm9ybSBpbnB1dFt0eXBlPVwidGV4dFwiXTpmb2N1cyArIC5pbnB1dC1ncm91cC1idG4gLmJ0biB7XG4gIGJvcmRlci1sZWZ0LWNvbG9yOiAjZmZmO1xufVxuLnNraW4tZ3JlZW4gLnNpZGViYXItZm9ybSAuYnRuIHtcbiAgY29sb3I6ICM5OTk7XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDA7XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAycHg7XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAycHg7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7XG59XG4vKlxuICogU2tpbjogR3JlZW5cbiAqIC0tLS0tLS0tLS0tXG4gKi9cbi5za2luLWdyZWVuLWxpZ2h0IC5tYWluLWhlYWRlciAubmF2YmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwYTY1YTtcbn1cbi5za2luLWdyZWVuLWxpZ2h0IC5tYWluLWhlYWRlciAubmF2YmFyIC5uYXYgPiBsaSA+IGEge1xuICBjb2xvcjogI2ZmZmZmZjtcbn1cbi5za2luLWdyZWVuLWxpZ2h0IC5tYWluLWhlYWRlciAubmF2YmFyIC5uYXYgPiBsaSA+IGE6aG92ZXIsXG4uc2tpbi1ncmVlbi1saWdodCAubWFpbi1oZWFkZXIgLm5hdmJhciAubmF2ID4gbGkgPiBhOmFjdGl2ZSxcbi5za2luLWdyZWVuLWxpZ2h0IC5tYWluLWhlYWRlciAubmF2YmFyIC5uYXYgPiBsaSA+IGE6Zm9jdXMsXG4uc2tpbi1ncmVlbi1saWdodCAubWFpbi1oZWFkZXIgLm5hdmJhciAubmF2IC5vcGVuID4gYSxcbi5za2luLWdyZWVuLWxpZ2h0IC5tYWluLWhlYWRlciAubmF2YmFyIC5uYXYgLm9wZW4gPiBhOmhvdmVyLFxuLnNraW4tZ3JlZW4tbGlnaHQgLm1haW4taGVhZGVyIC5uYXZiYXIgLm5hdiAub3BlbiA+IGE6Zm9jdXMsXG4uc2tpbi1ncmVlbi1saWdodCAubWFpbi1oZWFkZXIgLm5hdmJhciAubmF2ID4gLmFjdGl2ZSA+IGEge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMSk7XG4gIGNvbG9yOiAjZjZmNmY2O1xufVxuLnNraW4tZ3JlZW4tbGlnaHQgLm1haW4taGVhZGVyIC5uYXZiYXIgLnNpZGViYXItdG9nZ2xlIHtcbiAgY29sb3I6ICNmZmZmZmY7XG59XG4uc2tpbi1ncmVlbi1saWdodCAubWFpbi1oZWFkZXIgLm5hdmJhciAuc2lkZWJhci10b2dnbGU6aG92ZXIge1xuICBjb2xvcjogI2Y2ZjZmNjtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjEpO1xufVxuLnNraW4tZ3JlZW4tbGlnaHQgLm1haW4taGVhZGVyIC5uYXZiYXIgLnNpZGViYXItdG9nZ2xlIHtcbiAgY29sb3I6ICNmZmY7XG59XG4uc2tpbi1ncmVlbi1saWdodCAubWFpbi1oZWFkZXIgLm5hdmJhciAuc2lkZWJhci10b2dnbGU6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA4ZDRjO1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC5za2luLWdyZWVuLWxpZ2h0IC5tYWluLWhlYWRlciAubmF2YmFyIC5kcm9wZG93bi1tZW51IGxpLmRpdmlkZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTtcbiAgfVxuICAuc2tpbi1ncmVlbi1saWdodCAubWFpbi1oZWFkZXIgLm5hdmJhciAuZHJvcGRvd24tbWVudSBsaSBhIHtcbiAgICBjb2xvcjogI2ZmZjtcbiAgfVxuICAuc2tpbi1ncmVlbi1saWdodCAubWFpbi1oZWFkZXIgLm5hdmJhciAuZHJvcGRvd24tbWVudSBsaSBhOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiAjMDA4ZDRjO1xuICB9XG59XG4uc2tpbi1ncmVlbi1saWdodCAubWFpbi1oZWFkZXIgLmxvZ28ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBhNjVhO1xuICBjb2xvcjogI2ZmZmZmZjtcbiAgYm9yZGVyLWJvdHRvbTogMCBzb2xpZCB0cmFuc3BhcmVudDtcbn1cbi5za2luLWdyZWVuLWxpZ2h0IC5tYWluLWhlYWRlciAubG9nbzpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMGExNTc7XG59XG4uc2tpbi1ncmVlbi1saWdodCAubWFpbi1oZWFkZXIgbGkudXNlci1oZWFkZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBhNjVhO1xufVxuLnNraW4tZ3JlZW4tbGlnaHQgLmNvbnRlbnQtaGVhZGVyIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG59XG4uc2tpbi1ncmVlbi1saWdodCAud3JhcHBlcixcbi5za2luLWdyZWVuLWxpZ2h0IC5tYWluLXNpZGViYXIsXG4uc2tpbi1ncmVlbi1saWdodCAubGVmdC1zaWRlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y5ZmFmYztcbn1cbi5za2luLWdyZWVuLWxpZ2h0IC5tYWluLXNpZGViYXIge1xuICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjZDJkNmRlO1xufVxuLnNraW4tZ3JlZW4tbGlnaHQgLnVzZXItcGFuZWwgPiAuaW5mbyxcbi5za2luLWdyZWVuLWxpZ2h0IC51c2VyLXBhbmVsID4gLmluZm8gPiBhIHtcbiAgY29sb3I6ICM0NDQ0NDQ7XG59XG4uc2tpbi1ncmVlbi1saWdodCAuc2lkZWJhci1tZW51ID4gbGkge1xuICAtd2Via2l0LXRyYW5zaXRpb246IGJvcmRlci1sZWZ0LWNvbG9yIDAuM3MgZWFzZTtcbiAgLW8tdHJhbnNpdGlvbjogYm9yZGVyLWxlZnQtY29sb3IgMC4zcyBlYXNlO1xuICB0cmFuc2l0aW9uOiBib3JkZXItbGVmdC1jb2xvciAwLjNzIGVhc2U7XG59XG4uc2tpbi1ncmVlbi1saWdodCAuc2lkZWJhci1tZW51ID4gbGkuaGVhZGVyIHtcbiAgY29sb3I6ICM4NDg0ODQ7XG4gIGJhY2tncm91bmQ6ICNmOWZhZmM7XG59XG4uc2tpbi1ncmVlbi1saWdodCAuc2lkZWJhci1tZW51ID4gbGkgPiBhIHtcbiAgYm9yZGVyLWxlZnQ6IDNweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbn1cbi5za2luLWdyZWVuLWxpZ2h0IC5zaWRlYmFyLW1lbnUgPiBsaTpob3ZlciA+IGEsXG4uc2tpbi1ncmVlbi1saWdodCAuc2lkZWJhci1tZW51ID4gbGkuYWN0aXZlID4gYSB7XG4gIGNvbG9yOiAjMDAwMDAwO1xuICBiYWNrZ3JvdW5kOiAjZjRmNGY1O1xufVxuLnNraW4tZ3JlZW4tbGlnaHQgLnNpZGViYXItbWVudSA+IGxpLmFjdGl2ZSB7XG4gIGJvcmRlci1sZWZ0LWNvbG9yOiAjMDBhNjVhO1xufVxuLnNraW4tZ3JlZW4tbGlnaHQgLnNpZGViYXItbWVudSA+IGxpLmFjdGl2ZSA+IGEge1xuICBmb250LXdlaWdodDogNjAwO1xufVxuLnNraW4tZ3JlZW4tbGlnaHQgLnNpZGViYXItbWVudSA+IGxpID4gLnRyZWV2aWV3LW1lbnUge1xuICBiYWNrZ3JvdW5kOiAjZjRmNGY1O1xufVxuLnNraW4tZ3JlZW4tbGlnaHQgLnNpZGViYXIgYSB7XG4gIGNvbG9yOiAjNDQ0NDQ0O1xufVxuLnNraW4tZ3JlZW4tbGlnaHQgLnNpZGViYXIgYTpob3ZlciB7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cbi5za2luLWdyZWVuLWxpZ2h0IC5zaWRlYmFyLW1lbnUgLnRyZWV2aWV3LW1lbnUgPiBsaSA+IGEge1xuICBjb2xvcjogIzc3Nzc3Nztcbn1cbi5za2luLWdyZWVuLWxpZ2h0IC5zaWRlYmFyLW1lbnUgLnRyZWV2aWV3LW1lbnUgPiBsaS5hY3RpdmUgPiBhLFxuLnNraW4tZ3JlZW4tbGlnaHQgLnNpZGViYXItbWVudSAudHJlZXZpZXctbWVudSA+IGxpID4gYTpob3ZlciB7XG4gIGNvbG9yOiAjMDAwMDAwO1xufVxuLnNraW4tZ3JlZW4tbGlnaHQgLnNpZGViYXItbWVudSAudHJlZXZpZXctbWVudSA+IGxpLmFjdGl2ZSA+IGEge1xuICBmb250LXdlaWdodDogNjAwO1xufVxuLnNraW4tZ3JlZW4tbGlnaHQgLnNpZGViYXItZm9ybSB7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgYm9yZGVyOiAxcHggc29saWQgI2QyZDZkZTtcbiAgbWFyZ2luOiAxMHB4IDEwcHg7XG59XG4uc2tpbi1ncmVlbi1saWdodCAuc2lkZWJhci1mb3JtIGlucHV0W3R5cGU9XCJ0ZXh0XCJdLFxuLnNraW4tZ3JlZW4tbGlnaHQgLnNpZGViYXItZm9ybSAuYnRuIHtcbiAgYm94LXNoYWRvdzogbm9uZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGhlaWdodDogMzVweDtcbn1cbi5za2luLWdyZWVuLWxpZ2h0IC5zaWRlYmFyLWZvcm0gaW5wdXRbdHlwZT1cInRleHRcIl0ge1xuICBjb2xvcjogIzY2NjtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMnB4O1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMDtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDJweDtcbn1cbi5za2luLWdyZWVuLWxpZ2h0IC5zaWRlYmFyLWZvcm0gaW5wdXRbdHlwZT1cInRleHRcIl06Zm9jdXMsXG4uc2tpbi1ncmVlbi1saWdodCAuc2lkZWJhci1mb3JtIGlucHV0W3R5cGU9XCJ0ZXh0XCJdOmZvY3VzICsgLmlucHV0LWdyb3VwLWJ0biAuYnRuIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgY29sb3I6ICM2NjY7XG59XG4uc2tpbi1ncmVlbi1saWdodCAuc2lkZWJhci1mb3JtIGlucHV0W3R5cGU9XCJ0ZXh0XCJdOmZvY3VzICsgLmlucHV0LWdyb3VwLWJ0biAuYnRuIHtcbiAgYm9yZGVyLWxlZnQtY29sb3I6ICNmZmY7XG59XG4uc2tpbi1ncmVlbi1saWdodCAuc2lkZWJhci1mb3JtIC5idG4ge1xuICBjb2xvcjogIzk5OTtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMDtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDJweDtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDJweDtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAuc2tpbi1ncmVlbi1saWdodC5zaWRlYmFyLW1pbmkuc2lkZWJhci1jb2xsYXBzZSAuc2lkZWJhci1tZW51ID4gbGkgPiAudHJlZXZpZXctbWVudSB7XG4gICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjZDJkNmRlO1xuICB9XG59XG4vKlxuICogU2tpbjogUmVkXG4gKiAtLS0tLS0tLS1cbiAqL1xuLnNraW4tcmVkIC5tYWluLWhlYWRlciAubmF2YmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2RkNGIzOTtcbn1cbi5za2luLXJlZCAubWFpbi1oZWFkZXIgLm5hdmJhciAubmF2ID4gbGkgPiBhIHtcbiAgY29sb3I6ICNmZmZmZmY7XG59XG4uc2tpbi1yZWQgLm1haW4taGVhZGVyIC5uYXZiYXIgLm5hdiA+IGxpID4gYTpob3Zlcixcbi5za2luLXJlZCAubWFpbi1oZWFkZXIgLm5hdmJhciAubmF2ID4gbGkgPiBhOmFjdGl2ZSxcbi5za2luLXJlZCAubWFpbi1oZWFkZXIgLm5hdmJhciAubmF2ID4gbGkgPiBhOmZvY3VzLFxuLnNraW4tcmVkIC5tYWluLWhlYWRlciAubmF2YmFyIC5uYXYgLm9wZW4gPiBhLFxuLnNraW4tcmVkIC5tYWluLWhlYWRlciAubmF2YmFyIC5uYXYgLm9wZW4gPiBhOmhvdmVyLFxuLnNraW4tcmVkIC5tYWluLWhlYWRlciAubmF2YmFyIC5uYXYgLm9wZW4gPiBhOmZvY3VzLFxuLnNraW4tcmVkIC5tYWluLWhlYWRlciAubmF2YmFyIC5uYXYgPiAuYWN0aXZlID4gYSB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgY29sb3I6ICNmNmY2ZjY7XG59XG4uc2tpbi1yZWQgLm1haW4taGVhZGVyIC5uYXZiYXIgLnNpZGViYXItdG9nZ2xlIHtcbiAgY29sb3I6ICNmZmZmZmY7XG59XG4uc2tpbi1yZWQgLm1haW4taGVhZGVyIC5uYXZiYXIgLnNpZGViYXItdG9nZ2xlOmhvdmVyIHtcbiAgY29sb3I6ICNmNmY2ZjY7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4xKTtcbn1cbi5za2luLXJlZCAubWFpbi1oZWFkZXIgLm5hdmJhciAuc2lkZWJhci10b2dnbGUge1xuICBjb2xvcjogI2ZmZjtcbn1cbi5za2luLXJlZCAubWFpbi1oZWFkZXIgLm5hdmJhciAuc2lkZWJhci10b2dnbGU6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDczOTI1O1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC5za2luLXJlZCAubWFpbi1oZWFkZXIgLm5hdmJhciAuZHJvcGRvd24tbWVudSBsaS5kaXZpZGVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSk7XG4gIH1cbiAgLnNraW4tcmVkIC5tYWluLWhlYWRlciAubmF2YmFyIC5kcm9wZG93bi1tZW51IGxpIGEge1xuICAgIGNvbG9yOiAjZmZmO1xuICB9XG4gIC5za2luLXJlZCAubWFpbi1oZWFkZXIgLm5hdmJhciAuZHJvcGRvd24tbWVudSBsaSBhOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiAjZDczOTI1O1xuICB9XG59XG4uc2tpbi1yZWQgLm1haW4taGVhZGVyIC5sb2dvIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Q3MzkyNTtcbiAgY29sb3I6ICNmZmZmZmY7XG4gIGJvcmRlci1ib3R0b206IDAgc29saWQgdHJhbnNwYXJlbnQ7XG59XG4uc2tpbi1yZWQgLm1haW4taGVhZGVyIC5sb2dvOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2QzMzcyNDtcbn1cbi5za2luLXJlZCAubWFpbi1oZWFkZXIgbGkudXNlci1oZWFkZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGQ0YjM5O1xufVxuLnNraW4tcmVkIC5jb250ZW50LWhlYWRlciB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xufVxuLnNraW4tcmVkIC53cmFwcGVyLFxuLnNraW4tcmVkIC5tYWluLXNpZGViYXIsXG4uc2tpbi1yZWQgLmxlZnQtc2lkZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyMjJkMzI7XG59XG4uc2tpbi1yZWQgLnVzZXItcGFuZWwgPiAuaW5mbyxcbi5za2luLXJlZCAudXNlci1wYW5lbCA+IC5pbmZvID4gYSB7XG4gIGNvbG9yOiAjZmZmO1xufVxuLnNraW4tcmVkIC5zaWRlYmFyLW1lbnUgPiBsaS5oZWFkZXIge1xuICBjb2xvcjogIzRiNjQ2ZjtcbiAgYmFja2dyb3VuZDogIzFhMjIyNjtcbn1cbi5za2luLXJlZCAuc2lkZWJhci1tZW51ID4gbGkgPiBhIHtcbiAgYm9yZGVyLWxlZnQ6IDNweCBzb2xpZCB0cmFuc3BhcmVudDtcbn1cbi5za2luLXJlZCAuc2lkZWJhci1tZW51ID4gbGk6aG92ZXIgPiBhLFxuLnNraW4tcmVkIC5zaWRlYmFyLW1lbnUgPiBsaS5hY3RpdmUgPiBhLFxuLnNraW4tcmVkIC5zaWRlYmFyLW1lbnUgPiBsaS5tZW51LW9wZW4gPiBhIHtcbiAgY29sb3I6ICNmZmZmZmY7XG4gIGJhY2tncm91bmQ6ICMxZTI4MmM7XG59XG4uc2tpbi1yZWQgLnNpZGViYXItbWVudSA+IGxpLmFjdGl2ZSA+IGEge1xuICBib3JkZXItbGVmdC1jb2xvcjogI2RkNGIzOTtcbn1cbi5za2luLXJlZCAuc2lkZWJhci1tZW51ID4gbGkgPiAudHJlZXZpZXctbWVudSB7XG4gIG1hcmdpbjogMCAxcHg7XG4gIGJhY2tncm91bmQ6ICMyYzNiNDE7XG59XG4uc2tpbi1yZWQgLnNpZGViYXIgYSB7XG4gIGNvbG9yOiAjYjhjN2NlO1xufVxuLnNraW4tcmVkIC5zaWRlYmFyIGE6aG92ZXIge1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG4uc2tpbi1yZWQgLnNpZGViYXItbWVudSAudHJlZXZpZXctbWVudSA+IGxpID4gYSB7XG4gIGNvbG9yOiAjOGFhNGFmO1xufVxuLnNraW4tcmVkIC5zaWRlYmFyLW1lbnUgLnRyZWV2aWV3LW1lbnUgPiBsaS5hY3RpdmUgPiBhLFxuLnNraW4tcmVkIC5zaWRlYmFyLW1lbnUgLnRyZWV2aWV3LW1lbnUgPiBsaSA+IGE6aG92ZXIge1xuICBjb2xvcjogI2ZmZmZmZjtcbn1cbi5za2luLXJlZCAuc2lkZWJhci1mb3JtIHtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xuICBib3JkZXI6IDFweCBzb2xpZCAjMzc0ODUwO1xuICBtYXJnaW46IDEwcHggMTBweDtcbn1cbi5za2luLXJlZCAuc2lkZWJhci1mb3JtIGlucHV0W3R5cGU9XCJ0ZXh0XCJdLFxuLnNraW4tcmVkIC5zaWRlYmFyLWZvcm0gLmJ0biB7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzNzQ4NTA7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBoZWlnaHQ6IDM1cHg7XG59XG4uc2tpbi1yZWQgLnNpZGViYXItZm9ybSBpbnB1dFt0eXBlPVwidGV4dFwiXSB7XG4gIGNvbG9yOiAjNjY2O1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAycHg7XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwO1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMDtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMnB4O1xufVxuLnNraW4tcmVkIC5zaWRlYmFyLWZvcm0gaW5wdXRbdHlwZT1cInRleHRcIl06Zm9jdXMsXG4uc2tpbi1yZWQgLnNpZGViYXItZm9ybSBpbnB1dFt0eXBlPVwidGV4dFwiXTpmb2N1cyArIC5pbnB1dC1ncm91cC1idG4gLmJ0biB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGNvbG9yOiAjNjY2O1xufVxuLnNraW4tcmVkIC5zaWRlYmFyLWZvcm0gaW5wdXRbdHlwZT1cInRleHRcIl06Zm9jdXMgKyAuaW5wdXQtZ3JvdXAtYnRuIC5idG4ge1xuICBib3JkZXItbGVmdC1jb2xvcjogI2ZmZjtcbn1cbi5za2luLXJlZCAuc2lkZWJhci1mb3JtIC5idG4ge1xuICBjb2xvcjogIzk5OTtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMDtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDJweDtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDJweDtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDtcbn1cbi8qXG4gKiBTa2luOiBSZWRcbiAqIC0tLS0tLS0tLVxuICovXG4uc2tpbi1yZWQtbGlnaHQgLm1haW4taGVhZGVyIC5uYXZiYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGQ0YjM5O1xufVxuLnNraW4tcmVkLWxpZ2h0IC5tYWluLWhlYWRlciAubmF2YmFyIC5uYXYgPiBsaSA+IGEge1xuICBjb2xvcjogI2ZmZmZmZjtcbn1cbi5za2luLXJlZC1saWdodCAubWFpbi1oZWFkZXIgLm5hdmJhciAubmF2ID4gbGkgPiBhOmhvdmVyLFxuLnNraW4tcmVkLWxpZ2h0IC5tYWluLWhlYWRlciAubmF2YmFyIC5uYXYgPiBsaSA+IGE6YWN0aXZlLFxuLnNraW4tcmVkLWxpZ2h0IC5tYWluLWhlYWRlciAubmF2YmFyIC5uYXYgPiBsaSA+IGE6Zm9jdXMsXG4uc2tpbi1yZWQtbGlnaHQgLm1haW4taGVhZGVyIC5uYXZiYXIgLm5hdiAub3BlbiA+IGEsXG4uc2tpbi1yZWQtbGlnaHQgLm1haW4taGVhZGVyIC5uYXZiYXIgLm5hdiAub3BlbiA+IGE6aG92ZXIsXG4uc2tpbi1yZWQtbGlnaHQgLm1haW4taGVhZGVyIC5uYXZiYXIgLm5hdiAub3BlbiA+IGE6Zm9jdXMsXG4uc2tpbi1yZWQtbGlnaHQgLm1haW4taGVhZGVyIC5uYXZiYXIgLm5hdiA+IC5hY3RpdmUgPiBhIHtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjEpO1xuICBjb2xvcjogI2Y2ZjZmNjtcbn1cbi5za2luLXJlZC1saWdodCAubWFpbi1oZWFkZXIgLm5hdmJhciAuc2lkZWJhci10b2dnbGUge1xuICBjb2xvcjogI2ZmZmZmZjtcbn1cbi5za2luLXJlZC1saWdodCAubWFpbi1oZWFkZXIgLm5hdmJhciAuc2lkZWJhci10b2dnbGU6aG92ZXIge1xuICBjb2xvcjogI2Y2ZjZmNjtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjEpO1xufVxuLnNraW4tcmVkLWxpZ2h0IC5tYWluLWhlYWRlciAubmF2YmFyIC5zaWRlYmFyLXRvZ2dsZSB7XG4gIGNvbG9yOiAjZmZmO1xufVxuLnNraW4tcmVkLWxpZ2h0IC5tYWluLWhlYWRlciAubmF2YmFyIC5zaWRlYmFyLXRvZ2dsZTpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkNzM5MjU7XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLnNraW4tcmVkLWxpZ2h0IC5tYWluLWhlYWRlciAubmF2YmFyIC5kcm9wZG93bi1tZW51IGxpLmRpdmlkZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTtcbiAgfVxuICAuc2tpbi1yZWQtbGlnaHQgLm1haW4taGVhZGVyIC5uYXZiYXIgLmRyb3Bkb3duLW1lbnUgbGkgYSB7XG4gICAgY29sb3I6ICNmZmY7XG4gIH1cbiAgLnNraW4tcmVkLWxpZ2h0IC5tYWluLWhlYWRlciAubmF2YmFyIC5kcm9wZG93bi1tZW51IGxpIGE6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICNkNzM5MjU7XG4gIH1cbn1cbi5za2luLXJlZC1saWdodCAubWFpbi1oZWFkZXIgLmxvZ28ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGQ0YjM5O1xuICBjb2xvcjogI2ZmZmZmZjtcbiAgYm9yZGVyLWJvdHRvbTogMCBzb2xpZCB0cmFuc3BhcmVudDtcbn1cbi5za2luLXJlZC1saWdodCAubWFpbi1oZWFkZXIgLmxvZ286aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGM0NzM1O1xufVxuLnNraW4tcmVkLWxpZ2h0IC5tYWluLWhlYWRlciBsaS51c2VyLWhlYWRlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkZDRiMzk7XG59XG4uc2tpbi1yZWQtbGlnaHQgLmNvbnRlbnQtaGVhZGVyIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG59XG4uc2tpbi1yZWQtbGlnaHQgLndyYXBwZXIsXG4uc2tpbi1yZWQtbGlnaHQgLm1haW4tc2lkZWJhcixcbi5za2luLXJlZC1saWdodCAubGVmdC1zaWRlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y5ZmFmYztcbn1cbi5za2luLXJlZC1saWdodCAubWFpbi1zaWRlYmFyIHtcbiAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI2QyZDZkZTtcbn1cbi5za2luLXJlZC1saWdodCAudXNlci1wYW5lbCA+IC5pbmZvLFxuLnNraW4tcmVkLWxpZ2h0IC51c2VyLXBhbmVsID4gLmluZm8gPiBhIHtcbiAgY29sb3I6ICM0NDQ0NDQ7XG59XG4uc2tpbi1yZWQtbGlnaHQgLnNpZGViYXItbWVudSA+IGxpIHtcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBib3JkZXItbGVmdC1jb2xvciAwLjNzIGVhc2U7XG4gIC1vLXRyYW5zaXRpb246IGJvcmRlci1sZWZ0LWNvbG9yIDAuM3MgZWFzZTtcbiAgdHJhbnNpdGlvbjogYm9yZGVyLWxlZnQtY29sb3IgMC4zcyBlYXNlO1xufVxuLnNraW4tcmVkLWxpZ2h0IC5zaWRlYmFyLW1lbnUgPiBsaS5oZWFkZXIge1xuICBjb2xvcjogIzg0ODQ4NDtcbiAgYmFja2dyb3VuZDogI2Y5ZmFmYztcbn1cbi5za2luLXJlZC1saWdodCAuc2lkZWJhci1tZW51ID4gbGkgPiBhIHtcbiAgYm9yZGVyLWxlZnQ6IDNweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbn1cbi5za2luLXJlZC1saWdodCAuc2lkZWJhci1tZW51ID4gbGk6aG92ZXIgPiBhLFxuLnNraW4tcmVkLWxpZ2h0IC5zaWRlYmFyLW1lbnUgPiBsaS5hY3RpdmUgPiBhIHtcbiAgY29sb3I6ICMwMDAwMDA7XG4gIGJhY2tncm91bmQ6ICNmNGY0ZjU7XG59XG4uc2tpbi1yZWQtbGlnaHQgLnNpZGViYXItbWVudSA+IGxpLmFjdGl2ZSB7XG4gIGJvcmRlci1sZWZ0LWNvbG9yOiAjZGQ0YjM5O1xufVxuLnNraW4tcmVkLWxpZ2h0IC5zaWRlYmFyLW1lbnUgPiBsaS5hY3RpdmUgPiBhIHtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbn1cbi5za2luLXJlZC1saWdodCAuc2lkZWJhci1tZW51ID4gbGkgPiAudHJlZXZpZXctbWVudSB7XG4gIGJhY2tncm91bmQ6ICNmNGY0ZjU7XG59XG4uc2tpbi1yZWQtbGlnaHQgLnNpZGViYXIgYSB7XG4gIGNvbG9yOiAjNDQ0NDQ0O1xufVxuLnNraW4tcmVkLWxpZ2h0IC5zaWRlYmFyIGE6aG92ZXIge1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG4uc2tpbi1yZWQtbGlnaHQgLnNpZGViYXItbWVudSAudHJlZXZpZXctbWVudSA+IGxpID4gYSB7XG4gIGNvbG9yOiAjNzc3Nzc3O1xufVxuLnNraW4tcmVkLWxpZ2h0IC5zaWRlYmFyLW1lbnUgLnRyZWV2aWV3LW1lbnUgPiBsaS5hY3RpdmUgPiBhLFxuLnNraW4tcmVkLWxpZ2h0IC5zaWRlYmFyLW1lbnUgLnRyZWV2aWV3LW1lbnUgPiBsaSA+IGE6aG92ZXIge1xuICBjb2xvcjogIzAwMDAwMDtcbn1cbi5za2luLXJlZC1saWdodCAuc2lkZWJhci1tZW51IC50cmVldmlldy1tZW51ID4gbGkuYWN0aXZlID4gYSB7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG4uc2tpbi1yZWQtbGlnaHQgLnNpZGViYXItZm9ybSB7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgYm9yZGVyOiAxcHggc29saWQgI2QyZDZkZTtcbiAgbWFyZ2luOiAxMHB4IDEwcHg7XG59XG4uc2tpbi1yZWQtbGlnaHQgLnNpZGViYXItZm9ybSBpbnB1dFt0eXBlPVwidGV4dFwiXSxcbi5za2luLXJlZC1saWdodCAuc2lkZWJhci1mb3JtIC5idG4ge1xuICBib3gtc2hhZG93OiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgaGVpZ2h0OiAzNXB4O1xufVxuLnNraW4tcmVkLWxpZ2h0IC5zaWRlYmFyLWZvcm0gaW5wdXRbdHlwZT1cInRleHRcIl0ge1xuICBjb2xvcjogIzY2NjtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMnB4O1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMDtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDJweDtcbn1cbi5za2luLXJlZC1saWdodCAuc2lkZWJhci1mb3JtIGlucHV0W3R5cGU9XCJ0ZXh0XCJdOmZvY3VzLFxuLnNraW4tcmVkLWxpZ2h0IC5zaWRlYmFyLWZvcm0gaW5wdXRbdHlwZT1cInRleHRcIl06Zm9jdXMgKyAuaW5wdXQtZ3JvdXAtYnRuIC5idG4ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBjb2xvcjogIzY2Njtcbn1cbi5za2luLXJlZC1saWdodCAuc2lkZWJhci1mb3JtIGlucHV0W3R5cGU9XCJ0ZXh0XCJdOmZvY3VzICsgLmlucHV0LWdyb3VwLWJ0biAuYnRuIHtcbiAgYm9yZGVyLWxlZnQtY29sb3I6ICNmZmY7XG59XG4uc2tpbi1yZWQtbGlnaHQgLnNpZGViYXItZm9ybSAuYnRuIHtcbiAgY29sb3I6ICM5OTk7XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDA7XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAycHg7XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAycHg7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLnNraW4tcmVkLWxpZ2h0LnNpZGViYXItbWluaS5zaWRlYmFyLWNvbGxhcHNlIC5zaWRlYmFyLW1lbnUgPiBsaSA+IC50cmVldmlldy1tZW51IHtcbiAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkICNkMmQ2ZGU7XG4gIH1cbn1cbi8qXG4gKiBTa2luOiBZZWxsb3dcbiAqIC0tLS0tLS0tLS0tLVxuICovXG4uc2tpbi15ZWxsb3cgLm1haW4taGVhZGVyIC5uYXZiYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjM5YzEyO1xufVxuLnNraW4teWVsbG93IC5tYWluLWhlYWRlciAubmF2YmFyIC5uYXYgPiBsaSA+IGEge1xuICBjb2xvcjogI2ZmZmZmZjtcbn1cbi5za2luLXllbGxvdyAubWFpbi1oZWFkZXIgLm5hdmJhciAubmF2ID4gbGkgPiBhOmhvdmVyLFxuLnNraW4teWVsbG93IC5tYWluLWhlYWRlciAubmF2YmFyIC5uYXYgPiBsaSA+IGE6YWN0aXZlLFxuLnNraW4teWVsbG93IC5tYWluLWhlYWRlciAubmF2YmFyIC5uYXYgPiBsaSA+IGE6Zm9jdXMsXG4uc2tpbi15ZWxsb3cgLm1haW4taGVhZGVyIC5uYXZiYXIgLm5hdiAub3BlbiA+IGEsXG4uc2tpbi15ZWxsb3cgLm1haW4taGVhZGVyIC5uYXZiYXIgLm5hdiAub3BlbiA+IGE6aG92ZXIsXG4uc2tpbi15ZWxsb3cgLm1haW4taGVhZGVyIC5uYXZiYXIgLm5hdiAub3BlbiA+IGE6Zm9jdXMsXG4uc2tpbi15ZWxsb3cgLm1haW4taGVhZGVyIC5uYXZiYXIgLm5hdiA+IC5hY3RpdmUgPiBhIHtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjEpO1xuICBjb2xvcjogI2Y2ZjZmNjtcbn1cbi5za2luLXllbGxvdyAubWFpbi1oZWFkZXIgLm5hdmJhciAuc2lkZWJhci10b2dnbGUge1xuICBjb2xvcjogI2ZmZmZmZjtcbn1cbi5za2luLXllbGxvdyAubWFpbi1oZWFkZXIgLm5hdmJhciAuc2lkZWJhci10b2dnbGU6aG92ZXIge1xuICBjb2xvcjogI2Y2ZjZmNjtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjEpO1xufVxuLnNraW4teWVsbG93IC5tYWluLWhlYWRlciAubmF2YmFyIC5zaWRlYmFyLXRvZ2dsZSB7XG4gIGNvbG9yOiAjZmZmO1xufVxuLnNraW4teWVsbG93IC5tYWluLWhlYWRlciAubmF2YmFyIC5zaWRlYmFyLXRvZ2dsZTpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlMDhlMGI7XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLnNraW4teWVsbG93IC5tYWluLWhlYWRlciAubmF2YmFyIC5kcm9wZG93bi1tZW51IGxpLmRpdmlkZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTtcbiAgfVxuICAuc2tpbi15ZWxsb3cgLm1haW4taGVhZGVyIC5uYXZiYXIgLmRyb3Bkb3duLW1lbnUgbGkgYSB7XG4gICAgY29sb3I6ICNmZmY7XG4gIH1cbiAgLnNraW4teWVsbG93IC5tYWluLWhlYWRlciAubmF2YmFyIC5kcm9wZG93bi1tZW51IGxpIGE6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICNlMDhlMGI7XG4gIH1cbn1cbi5za2luLXllbGxvdyAubWFpbi1oZWFkZXIgLmxvZ28ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTA4ZTBiO1xuICBjb2xvcjogI2ZmZmZmZjtcbiAgYm9yZGVyLWJvdHRvbTogMCBzb2xpZCB0cmFuc3BhcmVudDtcbn1cbi5za2luLXllbGxvdyAubWFpbi1oZWFkZXIgLmxvZ286aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGI4YjBiO1xufVxuLnNraW4teWVsbG93IC5tYWluLWhlYWRlciBsaS51c2VyLWhlYWRlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmMzljMTI7XG59XG4uc2tpbi15ZWxsb3cgLmNvbnRlbnQtaGVhZGVyIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG59XG4uc2tpbi15ZWxsb3cgLndyYXBwZXIsXG4uc2tpbi15ZWxsb3cgLm1haW4tc2lkZWJhcixcbi5za2luLXllbGxvdyAubGVmdC1zaWRlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzIyMmQzMjtcbn1cbi5za2luLXllbGxvdyAudXNlci1wYW5lbCA+IC5pbmZvLFxuLnNraW4teWVsbG93IC51c2VyLXBhbmVsID4gLmluZm8gPiBhIHtcbiAgY29sb3I6ICNmZmY7XG59XG4uc2tpbi15ZWxsb3cgLnNpZGViYXItbWVudSA+IGxpLmhlYWRlciB7XG4gIGNvbG9yOiAjNGI2NDZmO1xuICBiYWNrZ3JvdW5kOiAjMWEyMjI2O1xufVxuLnNraW4teWVsbG93IC5zaWRlYmFyLW1lbnUgPiBsaSA+IGEge1xuICBib3JkZXItbGVmdDogM3B4IHNvbGlkIHRyYW5zcGFyZW50O1xufVxuLnNraW4teWVsbG93IC5zaWRlYmFyLW1lbnUgPiBsaTpob3ZlciA+IGEsXG4uc2tpbi15ZWxsb3cgLnNpZGViYXItbWVudSA+IGxpLmFjdGl2ZSA+IGEsXG4uc2tpbi15ZWxsb3cgLnNpZGViYXItbWVudSA+IGxpLm1lbnUtb3BlbiA+IGEge1xuICBjb2xvcjogI2ZmZmZmZjtcbiAgYmFja2dyb3VuZDogIzFlMjgyYztcbn1cbi5za2luLXllbGxvdyAuc2lkZWJhci1tZW51ID4gbGkuYWN0aXZlID4gYSB7XG4gIGJvcmRlci1sZWZ0LWNvbG9yOiAjZjM5YzEyO1xufVxuLnNraW4teWVsbG93IC5zaWRlYmFyLW1lbnUgPiBsaSA+IC50cmVldmlldy1tZW51IHtcbiAgbWFyZ2luOiAwIDFweDtcbiAgYmFja2dyb3VuZDogIzJjM2I0MTtcbn1cbi5za2luLXllbGxvdyAuc2lkZWJhciBhIHtcbiAgY29sb3I6ICNiOGM3Y2U7XG59XG4uc2tpbi15ZWxsb3cgLnNpZGViYXIgYTpob3ZlciB7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cbi5za2luLXllbGxvdyAuc2lkZWJhci1tZW51IC50cmVldmlldy1tZW51ID4gbGkgPiBhIHtcbiAgY29sb3I6ICM4YWE0YWY7XG59XG4uc2tpbi15ZWxsb3cgLnNpZGViYXItbWVudSAudHJlZXZpZXctbWVudSA+IGxpLmFjdGl2ZSA+IGEsXG4uc2tpbi15ZWxsb3cgLnNpZGViYXItbWVudSAudHJlZXZpZXctbWVudSA+IGxpID4gYTpob3ZlciB7XG4gIGNvbG9yOiAjZmZmZmZmO1xufVxuLnNraW4teWVsbG93IC5zaWRlYmFyLWZvcm0ge1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkICMzNzQ4NTA7XG4gIG1hcmdpbjogMTBweCAxMHB4O1xufVxuLnNraW4teWVsbG93IC5zaWRlYmFyLWZvcm0gaW5wdXRbdHlwZT1cInRleHRcIl0sXG4uc2tpbi15ZWxsb3cgLnNpZGViYXItZm9ybSAuYnRuIHtcbiAgYm94LXNoYWRvdzogbm9uZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzM3NDg1MDtcbiAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGhlaWdodDogMzVweDtcbn1cbi5za2luLXllbGxvdyAuc2lkZWJhci1mb3JtIGlucHV0W3R5cGU9XCJ0ZXh0XCJdIHtcbiAgY29sb3I6ICM2NjY7XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDJweDtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDA7XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwO1xuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAycHg7XG59XG4uc2tpbi15ZWxsb3cgLnNpZGViYXItZm9ybSBpbnB1dFt0eXBlPVwidGV4dFwiXTpmb2N1cyxcbi5za2luLXllbGxvdyAuc2lkZWJhci1mb3JtIGlucHV0W3R5cGU9XCJ0ZXh0XCJdOmZvY3VzICsgLmlucHV0LWdyb3VwLWJ0biAuYnRuIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgY29sb3I6ICM2NjY7XG59XG4uc2tpbi15ZWxsb3cgLnNpZGViYXItZm9ybSBpbnB1dFt0eXBlPVwidGV4dFwiXTpmb2N1cyArIC5pbnB1dC1ncm91cC1idG4gLmJ0biB7XG4gIGJvcmRlci1sZWZ0LWNvbG9yOiAjZmZmO1xufVxuLnNraW4teWVsbG93IC5zaWRlYmFyLWZvcm0gLmJ0biB7XG4gIGNvbG9yOiAjOTk5O1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwO1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMnB4O1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMnB4O1xuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwO1xufVxuLypcbiAqIFNraW46IFllbGxvd1xuICogLS0tLS0tLS0tLS0tXG4gKi9cbi5za2luLXllbGxvdy1saWdodCAubWFpbi1oZWFkZXIgLm5hdmJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmMzljMTI7XG59XG4uc2tpbi15ZWxsb3ctbGlnaHQgLm1haW4taGVhZGVyIC5uYXZiYXIgLm5hdiA+IGxpID4gYSB7XG4gIGNvbG9yOiAjZmZmZmZmO1xufVxuLnNraW4teWVsbG93LWxpZ2h0IC5tYWluLWhlYWRlciAubmF2YmFyIC5uYXYgPiBsaSA+IGE6aG92ZXIsXG4uc2tpbi15ZWxsb3ctbGlnaHQgLm1haW4taGVhZGVyIC5uYXZiYXIgLm5hdiA+IGxpID4gYTphY3RpdmUsXG4uc2tpbi15ZWxsb3ctbGlnaHQgLm1haW4taGVhZGVyIC5uYXZiYXIgLm5hdiA+IGxpID4gYTpmb2N1cyxcbi5za2luLXllbGxvdy1saWdodCAubWFpbi1oZWFkZXIgLm5hdmJhciAubmF2IC5vcGVuID4gYSxcbi5za2luLXllbGxvdy1saWdodCAubWFpbi1oZWFkZXIgLm5hdmJhciAubmF2IC5vcGVuID4gYTpob3Zlcixcbi5za2luLXllbGxvdy1saWdodCAubWFpbi1oZWFkZXIgLm5hdmJhciAubmF2IC5vcGVuID4gYTpmb2N1cyxcbi5za2luLXllbGxvdy1saWdodCAubWFpbi1oZWFkZXIgLm5hdmJhciAubmF2ID4gLmFjdGl2ZSA+IGEge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMSk7XG4gIGNvbG9yOiAjZjZmNmY2O1xufVxuLnNraW4teWVsbG93LWxpZ2h0IC5tYWluLWhlYWRlciAubmF2YmFyIC5zaWRlYmFyLXRvZ2dsZSB7XG4gIGNvbG9yOiAjZmZmZmZmO1xufVxuLnNraW4teWVsbG93LWxpZ2h0IC5tYWluLWhlYWRlciAubmF2YmFyIC5zaWRlYmFyLXRvZ2dsZTpob3ZlciB7XG4gIGNvbG9yOiAjZjZmNmY2O1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMSk7XG59XG4uc2tpbi15ZWxsb3ctbGlnaHQgLm1haW4taGVhZGVyIC5uYXZiYXIgLnNpZGViYXItdG9nZ2xlIHtcbiAgY29sb3I6ICNmZmY7XG59XG4uc2tpbi15ZWxsb3ctbGlnaHQgLm1haW4taGVhZGVyIC5uYXZiYXIgLnNpZGViYXItdG9nZ2xlOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2UwOGUwYjtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICAuc2tpbi15ZWxsb3ctbGlnaHQgLm1haW4taGVhZGVyIC5uYXZiYXIgLmRyb3Bkb3duLW1lbnUgbGkuZGl2aWRlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpO1xuICB9XG4gIC5za2luLXllbGxvdy1saWdodCAubWFpbi1oZWFkZXIgLm5hdmJhciAuZHJvcGRvd24tbWVudSBsaSBhIHtcbiAgICBjb2xvcjogI2ZmZjtcbiAgfVxuICAuc2tpbi15ZWxsb3ctbGlnaHQgLm1haW4taGVhZGVyIC5uYXZiYXIgLmRyb3Bkb3duLW1lbnUgbGkgYTpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogI2UwOGUwYjtcbiAgfVxufVxuLnNraW4teWVsbG93LWxpZ2h0IC5tYWluLWhlYWRlciAubG9nbyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmMzljMTI7XG4gIGNvbG9yOiAjZmZmZmZmO1xuICBib3JkZXItYm90dG9tOiAwIHNvbGlkIHRyYW5zcGFyZW50O1xufVxuLnNraW4teWVsbG93LWxpZ2h0IC5tYWluLWhlYWRlciAubG9nbzpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmMzlhMGQ7XG59XG4uc2tpbi15ZWxsb3ctbGlnaHQgLm1haW4taGVhZGVyIGxpLnVzZXItaGVhZGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2YzOWMxMjtcbn1cbi5za2luLXllbGxvdy1saWdodCAuY29udGVudC1oZWFkZXIge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbn1cbi5za2luLXllbGxvdy1saWdodCAud3JhcHBlcixcbi5za2luLXllbGxvdy1saWdodCAubWFpbi1zaWRlYmFyLFxuLnNraW4teWVsbG93LWxpZ2h0IC5sZWZ0LXNpZGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjlmYWZjO1xufVxuLnNraW4teWVsbG93LWxpZ2h0IC5tYWluLXNpZGViYXIge1xuICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjZDJkNmRlO1xufVxuLnNraW4teWVsbG93LWxpZ2h0IC51c2VyLXBhbmVsID4gLmluZm8sXG4uc2tpbi15ZWxsb3ctbGlnaHQgLnVzZXItcGFuZWwgPiAuaW5mbyA+IGEge1xuICBjb2xvcjogIzQ0NDQ0NDtcbn1cbi5za2luLXllbGxvdy1saWdodCAuc2lkZWJhci1tZW51ID4gbGkge1xuICAtd2Via2l0LXRyYW5zaXRpb246IGJvcmRlci1sZWZ0LWNvbG9yIDAuM3MgZWFzZTtcbiAgLW8tdHJhbnNpdGlvbjogYm9yZGVyLWxlZnQtY29sb3IgMC4zcyBlYXNlO1xuICB0cmFuc2l0aW9uOiBib3JkZXItbGVmdC1jb2xvciAwLjNzIGVhc2U7XG59XG4uc2tpbi15ZWxsb3ctbGlnaHQgLnNpZGViYXItbWVudSA+IGxpLmhlYWRlciB7XG4gIGNvbG9yOiAjODQ4NDg0O1xuICBiYWNrZ3JvdW5kOiAjZjlmYWZjO1xufVxuLnNraW4teWVsbG93LWxpZ2h0IC5zaWRlYmFyLW1lbnUgPiBsaSA+IGEge1xuICBib3JkZXItbGVmdDogM3B4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBmb250LXdlaWdodDogNjAwO1xufVxuLnNraW4teWVsbG93LWxpZ2h0IC5zaWRlYmFyLW1lbnUgPiBsaTpob3ZlciA+IGEsXG4uc2tpbi15ZWxsb3ctbGlnaHQgLnNpZGViYXItbWVudSA+IGxpLmFjdGl2ZSA+IGEge1xuICBjb2xvcjogIzAwMDAwMDtcbiAgYmFja2dyb3VuZDogI2Y0ZjRmNTtcbn1cbi5za2luLXllbGxvdy1saWdodCAuc2lkZWJhci1tZW51ID4gbGkuYWN0aXZlIHtcbiAgYm9yZGVyLWxlZnQtY29sb3I6ICNmMzljMTI7XG59XG4uc2tpbi15ZWxsb3ctbGlnaHQgLnNpZGViYXItbWVudSA+IGxpLmFjdGl2ZSA+IGEge1xuICBmb250LXdlaWdodDogNjAwO1xufVxuLnNraW4teWVsbG93LWxpZ2h0IC5zaWRlYmFyLW1lbnUgPiBsaSA+IC50cmVldmlldy1tZW51IHtcbiAgYmFja2dyb3VuZDogI2Y0ZjRmNTtcbn1cbi5za2luLXllbGxvdy1saWdodCAuc2lkZWJhciBhIHtcbiAgY29sb3I6ICM0NDQ0NDQ7XG59XG4uc2tpbi15ZWxsb3ctbGlnaHQgLnNpZGViYXIgYTpob3ZlciB7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cbi5za2luLXllbGxvdy1saWdodCAuc2lkZWJhci1tZW51IC50cmVldmlldy1tZW51ID4gbGkgPiBhIHtcbiAgY29sb3I6ICM3Nzc3Nzc7XG59XG4uc2tpbi15ZWxsb3ctbGlnaHQgLnNpZGViYXItbWVudSAudHJlZXZpZXctbWVudSA+IGxpLmFjdGl2ZSA+IGEsXG4uc2tpbi15ZWxsb3ctbGlnaHQgLnNpZGViYXItbWVudSAudHJlZXZpZXctbWVudSA+IGxpID4gYTpob3ZlciB7XG4gIGNvbG9yOiAjMDAwMDAwO1xufVxuLnNraW4teWVsbG93LWxpZ2h0IC5zaWRlYmFyLW1lbnUgLnRyZWV2aWV3LW1lbnUgPiBsaS5hY3RpdmUgPiBhIHtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbn1cbi5za2luLXllbGxvdy1saWdodCAuc2lkZWJhci1mb3JtIHtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xuICBib3JkZXI6IDFweCBzb2xpZCAjZDJkNmRlO1xuICBtYXJnaW46IDEwcHggMTBweDtcbn1cbi5za2luLXllbGxvdy1saWdodCAuc2lkZWJhci1mb3JtIGlucHV0W3R5cGU9XCJ0ZXh0XCJdLFxuLnNraW4teWVsbG93LWxpZ2h0IC5zaWRlYmFyLWZvcm0gLmJ0biB7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBoZWlnaHQ6IDM1cHg7XG59XG4uc2tpbi15ZWxsb3ctbGlnaHQgLnNpZGViYXItZm9ybSBpbnB1dFt0eXBlPVwidGV4dFwiXSB7XG4gIGNvbG9yOiAjNjY2O1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAycHg7XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwO1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMDtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMnB4O1xufVxuLnNraW4teWVsbG93LWxpZ2h0IC5zaWRlYmFyLWZvcm0gaW5wdXRbdHlwZT1cInRleHRcIl06Zm9jdXMsXG4uc2tpbi15ZWxsb3ctbGlnaHQgLnNpZGViYXItZm9ybSBpbnB1dFt0eXBlPVwidGV4dFwiXTpmb2N1cyArIC5pbnB1dC1ncm91cC1idG4gLmJ0biB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGNvbG9yOiAjNjY2O1xufVxuLnNraW4teWVsbG93LWxpZ2h0IC5zaWRlYmFyLWZvcm0gaW5wdXRbdHlwZT1cInRleHRcIl06Zm9jdXMgKyAuaW5wdXQtZ3JvdXAtYnRuIC5idG4ge1xuICBib3JkZXItbGVmdC1jb2xvcjogI2ZmZjtcbn1cbi5za2luLXllbGxvdy1saWdodCAuc2lkZWJhci1mb3JtIC5idG4ge1xuICBjb2xvcjogIzk5OTtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMDtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDJweDtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDJweDtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAuc2tpbi15ZWxsb3ctbGlnaHQuc2lkZWJhci1taW5pLnNpZGViYXItY29sbGFwc2UgLnNpZGViYXItbWVudSA+IGxpID4gLnRyZWV2aWV3LW1lbnUge1xuICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgI2QyZDZkZTtcbiAgfVxufVxuLypcbiAqIFNraW46IFB1cnBsZVxuICogLS0tLS0tLS0tLS0tXG4gKi9cbi5za2luLXB1cnBsZSAubWFpbi1oZWFkZXIgLm5hdmJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM2MDVjYTg7XG59XG4uc2tpbi1wdXJwbGUgLm1haW4taGVhZGVyIC5uYXZiYXIgLm5hdiA+IGxpID4gYSB7XG4gIGNvbG9yOiAjZmZmZmZmO1xufVxuLnNraW4tcHVycGxlIC5tYWluLWhlYWRlciAubmF2YmFyIC5uYXYgPiBsaSA+IGE6aG92ZXIsXG4uc2tpbi1wdXJwbGUgLm1haW4taGVhZGVyIC5uYXZiYXIgLm5hdiA+IGxpID4gYTphY3RpdmUsXG4uc2tpbi1wdXJwbGUgLm1haW4taGVhZGVyIC5uYXZiYXIgLm5hdiA+IGxpID4gYTpmb2N1cyxcbi5za2luLXB1cnBsZSAubWFpbi1oZWFkZXIgLm5hdmJhciAubmF2IC5vcGVuID4gYSxcbi5za2luLXB1cnBsZSAubWFpbi1oZWFkZXIgLm5hdmJhciAubmF2IC5vcGVuID4gYTpob3Zlcixcbi5za2luLXB1cnBsZSAubWFpbi1oZWFkZXIgLm5hdmJhciAubmF2IC5vcGVuID4gYTpmb2N1cyxcbi5za2luLXB1cnBsZSAubWFpbi1oZWFkZXIgLm5hdmJhciAubmF2ID4gLmFjdGl2ZSA+IGEge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMSk7XG4gIGNvbG9yOiAjZjZmNmY2O1xufVxuLnNraW4tcHVycGxlIC5tYWluLWhlYWRlciAubmF2YmFyIC5zaWRlYmFyLXRvZ2dsZSB7XG4gIGNvbG9yOiAjZmZmZmZmO1xufVxuLnNraW4tcHVycGxlIC5tYWluLWhlYWRlciAubmF2YmFyIC5zaWRlYmFyLXRvZ2dsZTpob3ZlciB7XG4gIGNvbG9yOiAjZjZmNmY2O1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMSk7XG59XG4uc2tpbi1wdXJwbGUgLm1haW4taGVhZGVyIC5uYXZiYXIgLnNpZGViYXItdG9nZ2xlIHtcbiAgY29sb3I6ICNmZmY7XG59XG4uc2tpbi1wdXJwbGUgLm1haW4taGVhZGVyIC5uYXZiYXIgLnNpZGViYXItdG9nZ2xlOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzU1NTI5OTtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICAuc2tpbi1wdXJwbGUgLm1haW4taGVhZGVyIC5uYXZiYXIgLmRyb3Bkb3duLW1lbnUgbGkuZGl2aWRlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpO1xuICB9XG4gIC5za2luLXB1cnBsZSAubWFpbi1oZWFkZXIgLm5hdmJhciAuZHJvcGRvd24tbWVudSBsaSBhIHtcbiAgICBjb2xvcjogI2ZmZjtcbiAgfVxuICAuc2tpbi1wdXJwbGUgLm1haW4taGVhZGVyIC5uYXZiYXIgLmRyb3Bkb3duLW1lbnUgbGkgYTpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogIzU1NTI5OTtcbiAgfVxufVxuLnNraW4tcHVycGxlIC5tYWluLWhlYWRlciAubG9nbyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM1NTUyOTk7XG4gIGNvbG9yOiAjZmZmZmZmO1xuICBib3JkZXItYm90dG9tOiAwIHNvbGlkIHRyYW5zcGFyZW50O1xufVxuLnNraW4tcHVycGxlIC5tYWluLWhlYWRlciAubG9nbzpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM1NDUwOTY7XG59XG4uc2tpbi1wdXJwbGUgLm1haW4taGVhZGVyIGxpLnVzZXItaGVhZGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzYwNWNhODtcbn1cbi5za2luLXB1cnBsZSAuY29udGVudC1oZWFkZXIge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbn1cbi5za2luLXB1cnBsZSAud3JhcHBlcixcbi5za2luLXB1cnBsZSAubWFpbi1zaWRlYmFyLFxuLnNraW4tcHVycGxlIC5sZWZ0LXNpZGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjIyZDMyO1xufVxuLnNraW4tcHVycGxlIC51c2VyLXBhbmVsID4gLmluZm8sXG4uc2tpbi1wdXJwbGUgLnVzZXItcGFuZWwgPiAuaW5mbyA+IGEge1xuICBjb2xvcjogI2ZmZjtcbn1cbi5za2luLXB1cnBsZSAuc2lkZWJhci1tZW51ID4gbGkuaGVhZGVyIHtcbiAgY29sb3I6ICM0YjY0NmY7XG4gIGJhY2tncm91bmQ6ICMxYTIyMjY7XG59XG4uc2tpbi1wdXJwbGUgLnNpZGViYXItbWVudSA+IGxpID4gYSB7XG4gIGJvcmRlci1sZWZ0OiAzcHggc29saWQgdHJhbnNwYXJlbnQ7XG59XG4uc2tpbi1wdXJwbGUgLnNpZGViYXItbWVudSA+IGxpOmhvdmVyID4gYSxcbi5za2luLXB1cnBsZSAuc2lkZWJhci1tZW51ID4gbGkuYWN0aXZlID4gYSxcbi5za2luLXB1cnBsZSAuc2lkZWJhci1tZW51ID4gbGkubWVudS1vcGVuID4gYSB7XG4gIGNvbG9yOiAjZmZmZmZmO1xuICBiYWNrZ3JvdW5kOiAjMWUyODJjO1xufVxuLnNraW4tcHVycGxlIC5zaWRlYmFyLW1lbnUgPiBsaS5hY3RpdmUgPiBhIHtcbiAgYm9yZGVyLWxlZnQtY29sb3I6ICM2MDVjYTg7XG59XG4uc2tpbi1wdXJwbGUgLnNpZGViYXItbWVudSA+IGxpID4gLnRyZWV2aWV3LW1lbnUge1xuICBtYXJnaW46IDAgMXB4O1xuICBiYWNrZ3JvdW5kOiAjMmMzYjQxO1xufVxuLnNraW4tcHVycGxlIC5zaWRlYmFyIGEge1xuICBjb2xvcjogI2I4YzdjZTtcbn1cbi5za2luLXB1cnBsZSAuc2lkZWJhciBhOmhvdmVyIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuLnNraW4tcHVycGxlIC5zaWRlYmFyLW1lbnUgLnRyZWV2aWV3LW1lbnUgPiBsaSA+IGEge1xuICBjb2xvcjogIzhhYTRhZjtcbn1cbi5za2luLXB1cnBsZSAuc2lkZWJhci1tZW51IC50cmVldmlldy1tZW51ID4gbGkuYWN0aXZlID4gYSxcbi5za2luLXB1cnBsZSAuc2lkZWJhci1tZW51IC50cmVldmlldy1tZW51ID4gbGkgPiBhOmhvdmVyIHtcbiAgY29sb3I6ICNmZmZmZmY7XG59XG4uc2tpbi1wdXJwbGUgLnNpZGViYXItZm9ybSB7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgYm9yZGVyOiAxcHggc29saWQgIzM3NDg1MDtcbiAgbWFyZ2luOiAxMHB4IDEwcHg7XG59XG4uc2tpbi1wdXJwbGUgLnNpZGViYXItZm9ybSBpbnB1dFt0eXBlPVwidGV4dFwiXSxcbi5za2luLXB1cnBsZSAuc2lkZWJhci1mb3JtIC5idG4ge1xuICBib3gtc2hhZG93OiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzc0ODUwO1xuICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgaGVpZ2h0OiAzNXB4O1xufVxuLnNraW4tcHVycGxlIC5zaWRlYmFyLWZvcm0gaW5wdXRbdHlwZT1cInRleHRcIl0ge1xuICBjb2xvcjogIzY2NjtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMnB4O1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMDtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDJweDtcbn1cbi5za2luLXB1cnBsZSAuc2lkZWJhci1mb3JtIGlucHV0W3R5cGU9XCJ0ZXh0XCJdOmZvY3VzLFxuLnNraW4tcHVycGxlIC5zaWRlYmFyLWZvcm0gaW5wdXRbdHlwZT1cInRleHRcIl06Zm9jdXMgKyAuaW5wdXQtZ3JvdXAtYnRuIC5idG4ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBjb2xvcjogIzY2Njtcbn1cbi5za2luLXB1cnBsZSAuc2lkZWJhci1mb3JtIGlucHV0W3R5cGU9XCJ0ZXh0XCJdOmZvY3VzICsgLmlucHV0LWdyb3VwLWJ0biAuYnRuIHtcbiAgYm9yZGVyLWxlZnQtY29sb3I6ICNmZmY7XG59XG4uc2tpbi1wdXJwbGUgLnNpZGViYXItZm9ybSAuYnRuIHtcbiAgY29sb3I6ICM5OTk7XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDA7XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAycHg7XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAycHg7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7XG59XG4vKlxuICogU2tpbjogUHVycGxlXG4gKiAtLS0tLS0tLS0tLS1cbiAqL1xuLnNraW4tcHVycGxlLWxpZ2h0IC5tYWluLWhlYWRlciAubmF2YmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzYwNWNhODtcbn1cbi5za2luLXB1cnBsZS1saWdodCAubWFpbi1oZWFkZXIgLm5hdmJhciAubmF2ID4gbGkgPiBhIHtcbiAgY29sb3I6ICNmZmZmZmY7XG59XG4uc2tpbi1wdXJwbGUtbGlnaHQgLm1haW4taGVhZGVyIC5uYXZiYXIgLm5hdiA+IGxpID4gYTpob3Zlcixcbi5za2luLXB1cnBsZS1saWdodCAubWFpbi1oZWFkZXIgLm5hdmJhciAubmF2ID4gbGkgPiBhOmFjdGl2ZSxcbi5za2luLXB1cnBsZS1saWdodCAubWFpbi1oZWFkZXIgLm5hdmJhciAubmF2ID4gbGkgPiBhOmZvY3VzLFxuLnNraW4tcHVycGxlLWxpZ2h0IC5tYWluLWhlYWRlciAubmF2YmFyIC5uYXYgLm9wZW4gPiBhLFxuLnNraW4tcHVycGxlLWxpZ2h0IC5tYWluLWhlYWRlciAubmF2YmFyIC5uYXYgLm9wZW4gPiBhOmhvdmVyLFxuLnNraW4tcHVycGxlLWxpZ2h0IC5tYWluLWhlYWRlciAubmF2YmFyIC5uYXYgLm9wZW4gPiBhOmZvY3VzLFxuLnNraW4tcHVycGxlLWxpZ2h0IC5tYWluLWhlYWRlciAubmF2YmFyIC5uYXYgPiAuYWN0aXZlID4gYSB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgY29sb3I6ICNmNmY2ZjY7XG59XG4uc2tpbi1wdXJwbGUtbGlnaHQgLm1haW4taGVhZGVyIC5uYXZiYXIgLnNpZGViYXItdG9nZ2xlIHtcbiAgY29sb3I6ICNmZmZmZmY7XG59XG4uc2tpbi1wdXJwbGUtbGlnaHQgLm1haW4taGVhZGVyIC5uYXZiYXIgLnNpZGViYXItdG9nZ2xlOmhvdmVyIHtcbiAgY29sb3I6ICNmNmY2ZjY7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4xKTtcbn1cbi5za2luLXB1cnBsZS1saWdodCAubWFpbi1oZWFkZXIgLm5hdmJhciAuc2lkZWJhci10b2dnbGUge1xuICBjb2xvcjogI2ZmZjtcbn1cbi5za2luLXB1cnBsZS1saWdodCAubWFpbi1oZWFkZXIgLm5hdmJhciAuc2lkZWJhci10b2dnbGU6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTU1Mjk5O1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC5za2luLXB1cnBsZS1saWdodCAubWFpbi1oZWFkZXIgLm5hdmJhciAuZHJvcGRvd24tbWVudSBsaS5kaXZpZGVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSk7XG4gIH1cbiAgLnNraW4tcHVycGxlLWxpZ2h0IC5tYWluLWhlYWRlciAubmF2YmFyIC5kcm9wZG93bi1tZW51IGxpIGEge1xuICAgIGNvbG9yOiAjZmZmO1xuICB9XG4gIC5za2luLXB1cnBsZS1saWdodCAubWFpbi1oZWFkZXIgLm5hdmJhciAuZHJvcGRvd24tbWVudSBsaSBhOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiAjNTU1Mjk5O1xuICB9XG59XG4uc2tpbi1wdXJwbGUtbGlnaHQgLm1haW4taGVhZGVyIC5sb2dvIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzYwNWNhODtcbiAgY29sb3I6ICNmZmZmZmY7XG4gIGJvcmRlci1ib3R0b206IDAgc29saWQgdHJhbnNwYXJlbnQ7XG59XG4uc2tpbi1wdXJwbGUtbGlnaHQgLm1haW4taGVhZGVyIC5sb2dvOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzVkNTlhNjtcbn1cbi5za2luLXB1cnBsZS1saWdodCAubWFpbi1oZWFkZXIgbGkudXNlci1oZWFkZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjA1Y2E4O1xufVxuLnNraW4tcHVycGxlLWxpZ2h0IC5jb250ZW50LWhlYWRlciB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xufVxuLnNraW4tcHVycGxlLWxpZ2h0IC53cmFwcGVyLFxuLnNraW4tcHVycGxlLWxpZ2h0IC5tYWluLXNpZGViYXIsXG4uc2tpbi1wdXJwbGUtbGlnaHQgLmxlZnQtc2lkZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmOWZhZmM7XG59XG4uc2tpbi1wdXJwbGUtbGlnaHQgLm1haW4tc2lkZWJhciB7XG4gIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICNkMmQ2ZGU7XG59XG4uc2tpbi1wdXJwbGUtbGlnaHQgLnVzZXItcGFuZWwgPiAuaW5mbyxcbi5za2luLXB1cnBsZS1saWdodCAudXNlci1wYW5lbCA+IC5pbmZvID4gYSB7XG4gIGNvbG9yOiAjNDQ0NDQ0O1xufVxuLnNraW4tcHVycGxlLWxpZ2h0IC5zaWRlYmFyLW1lbnUgPiBsaSB7XG4gIC13ZWJraXQtdHJhbnNpdGlvbjogYm9yZGVyLWxlZnQtY29sb3IgMC4zcyBlYXNlO1xuICAtby10cmFuc2l0aW9uOiBib3JkZXItbGVmdC1jb2xvciAwLjNzIGVhc2U7XG4gIHRyYW5zaXRpb246IGJvcmRlci1sZWZ0LWNvbG9yIDAuM3MgZWFzZTtcbn1cbi5za2luLXB1cnBsZS1saWdodCAuc2lkZWJhci1tZW51ID4gbGkuaGVhZGVyIHtcbiAgY29sb3I6ICM4NDg0ODQ7XG4gIGJhY2tncm91bmQ6ICNmOWZhZmM7XG59XG4uc2tpbi1wdXJwbGUtbGlnaHQgLnNpZGViYXItbWVudSA+IGxpID4gYSB7XG4gIGJvcmRlci1sZWZ0OiAzcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG4uc2tpbi1wdXJwbGUtbGlnaHQgLnNpZGViYXItbWVudSA+IGxpOmhvdmVyID4gYSxcbi5za2luLXB1cnBsZS1saWdodCAuc2lkZWJhci1tZW51ID4gbGkuYWN0aXZlID4gYSB7XG4gIGNvbG9yOiAjMDAwMDAwO1xuICBiYWNrZ3JvdW5kOiAjZjRmNGY1O1xufVxuLnNraW4tcHVycGxlLWxpZ2h0IC5zaWRlYmFyLW1lbnUgPiBsaS5hY3RpdmUge1xuICBib3JkZXItbGVmdC1jb2xvcjogIzYwNWNhODtcbn1cbi5za2luLXB1cnBsZS1saWdodCAuc2lkZWJhci1tZW51ID4gbGkuYWN0aXZlID4gYSB7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG4uc2tpbi1wdXJwbGUtbGlnaHQgLnNpZGViYXItbWVudSA+IGxpID4gLnRyZWV2aWV3LW1lbnUge1xuICBiYWNrZ3JvdW5kOiAjZjRmNGY1O1xufVxuLnNraW4tcHVycGxlLWxpZ2h0IC5zaWRlYmFyIGEge1xuICBjb2xvcjogIzQ0NDQ0NDtcbn1cbi5za2luLXB1cnBsZS1saWdodCAuc2lkZWJhciBhOmhvdmVyIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuLnNraW4tcHVycGxlLWxpZ2h0IC5zaWRlYmFyLW1lbnUgLnRyZWV2aWV3LW1lbnUgPiBsaSA+IGEge1xuICBjb2xvcjogIzc3Nzc3Nztcbn1cbi5za2luLXB1cnBsZS1saWdodCAuc2lkZWJhci1tZW51IC50cmVldmlldy1tZW51ID4gbGkuYWN0aXZlID4gYSxcbi5za2luLXB1cnBsZS1saWdodCAuc2lkZWJhci1tZW51IC50cmVldmlldy1tZW51ID4gbGkgPiBhOmhvdmVyIHtcbiAgY29sb3I6ICMwMDAwMDA7XG59XG4uc2tpbi1wdXJwbGUtbGlnaHQgLnNpZGViYXItbWVudSAudHJlZXZpZXctbWVudSA+IGxpLmFjdGl2ZSA+IGEge1xuICBmb250LXdlaWdodDogNjAwO1xufVxuLnNraW4tcHVycGxlLWxpZ2h0IC5zaWRlYmFyLWZvcm0ge1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNkMmQ2ZGU7XG4gIG1hcmdpbjogMTBweCAxMHB4O1xufVxuLnNraW4tcHVycGxlLWxpZ2h0IC5zaWRlYmFyLWZvcm0gaW5wdXRbdHlwZT1cInRleHRcIl0sXG4uc2tpbi1wdXJwbGUtbGlnaHQgLnNpZGViYXItZm9ybSAuYnRuIHtcbiAgYm94LXNoYWRvdzogbm9uZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGhlaWdodDogMzVweDtcbn1cbi5za2luLXB1cnBsZS1saWdodCAuc2lkZWJhci1mb3JtIGlucHV0W3R5cGU9XCJ0ZXh0XCJdIHtcbiAgY29sb3I6ICM2NjY7XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDJweDtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDA7XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwO1xuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAycHg7XG59XG4uc2tpbi1wdXJwbGUtbGlnaHQgLnNpZGViYXItZm9ybSBpbnB1dFt0eXBlPVwidGV4dFwiXTpmb2N1cyxcbi5za2luLXB1cnBsZS1saWdodCAuc2lkZWJhci1mb3JtIGlucHV0W3R5cGU9XCJ0ZXh0XCJdOmZvY3VzICsgLmlucHV0LWdyb3VwLWJ0biAuYnRuIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgY29sb3I6ICM2NjY7XG59XG4uc2tpbi1wdXJwbGUtbGlnaHQgLnNpZGViYXItZm9ybSBpbnB1dFt0eXBlPVwidGV4dFwiXTpmb2N1cyArIC5pbnB1dC1ncm91cC1idG4gLmJ0biB7XG4gIGJvcmRlci1sZWZ0LWNvbG9yOiAjZmZmO1xufVxuLnNraW4tcHVycGxlLWxpZ2h0IC5zaWRlYmFyLWZvcm0gLmJ0biB7XG4gIGNvbG9yOiAjOTk5O1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwO1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMnB4O1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMnB4O1xuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5za2luLXB1cnBsZS1saWdodC5zaWRlYmFyLW1pbmkuc2lkZWJhci1jb2xsYXBzZSAuc2lkZWJhci1tZW51ID4gbGkgPiAudHJlZXZpZXctbWVudSB7XG4gICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjZDJkNmRlO1xuICB9XG59XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9ub2RlX21vZHVsZXMvYWRtaW4tbHRlL2Rpc3QvY3NzL3NraW5zL19hbGwtc2tpbnMuY3NzIiwiXG4vKlxuICogVGhpcyB0aGVtZSB3YXMgdXBncmFkZWQgdG8gRk9OVCBBV0VTT01FIDVcbiAqIHdoaWNoIGlzIG5vdCBzdXBwb3J0ZWQgYnkgdGhlIG9yaWdpbmFsIFwiQWRtaW5MVEVcIiB0aGVtZSB5ZXQuXG4gKlxuICogU28gd2UgaGF2ZSB0byBkbyBhZGQgYWRkIHNvbWUgYWRkaXRpb25hbCBzdHlsZXM6XG4gKi9cbi5zaWRlYmFyLW1lbnU+bGk+YT4uZmFyLFxuLnNpZGViYXItbWVudT5saT5hPi5mYXMsXG4uc2lkZWJhci1tZW51PmxpPmE+LmZhbCxcbi5zaWRlYmFyLW1lbnU+bGk+YT4uZmFiIHtcbiAgICB3aWR0aDogMjBweDtcbn1cblxuLnNpZGViYXItbWVudSAudHJlZXZpZXctbWVudT5saT5hPi5mYXIsXG4uc2lkZWJhci1tZW51IC50cmVldmlldy1tZW51PmxpPmE+LmZhcyxcbi5zaWRlYmFyLW1lbnUgLnRyZWV2aWV3LW1lbnU+bGk+YT4uZmFsLFxuLnNpZGViYXItbWVudSAudHJlZXZpZXctbWVudT5saT5hPi5mYWIge1xuICAgIHdpZHRoOiAyMHB4O1xufVxuXG4ubWFpbi1oZWFkZXIgLnNpZGViYXItdG9nZ2xlIHtcbiAgICBmb250LWZhbWlseTogXCJGb250IEF3ZXNvbWUgNSBGcmVlXCI7XG4gICAgZm9udC13ZWlnaHQ6IDkwMDtcbn1cblxuLmxvZ2luLXBhZ2UgZm9ybSBsYWJlbCB7XG4gICAgcGFkZGluZy1sZWZ0OiA1cHg7XG59XG5cbi5jb250cm9sLWxhYmVsLnJlcXVpcmVkOmFmdGVyIHtcbiAgICBjb250ZW50OlwiICpcIjtcbiAgICBmb250LXNpemU6IDExMCU7XG59XG5cbi50aW1lbGluZSA+IGxpID4gLmZhcixcbi50aW1lbGluZSA+IGxpID4gLmZhcyxcbi50aW1lbGluZSA+IGxpID4gLmZhbCxcbi50aW1lbGluZSA+IGxpID4gLmZhYiB7XG4gICAgd2lkdGg6IDMwcHg7XG4gICAgaGVpZ2h0OiAzMHB4O1xuICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgICBsaW5lLWhlaWdodDogMzBweDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgY29sb3I6ICM2NjY7XG4gICAgYmFja2dyb3VuZDogI2QyZDZkZTtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGxlZnQ6IDE4cHg7XG4gICAgdG9wOiAwO1xufVxuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vdmVuZG9yL2tldmlucGFwc3QvYWRtaW5sdGUtYnVuZGxlL1Jlc291cmNlcy9hc3NldHMvYWRtaW4tbHRlLWV4dGVuc2lvbnMuc2NzcyIsIi8qIGlDaGVjayBwbHVnaW4gU3F1YXJlIHNraW4sIGJsdWVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4uaWNoZWNrYm94X3NxdWFyZS1ibHVlLFxuLmlyYWRpb19zcXVhcmUtYmx1ZSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICpkaXNwbGF5OiBpbmxpbmU7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICB3aWR0aDogMjJweDtcbiAgICBoZWlnaHQ6IDIycHg7XG4gICAgYmFja2dyb3VuZDogdXJsKGJsdWUucG5nKSBuby1yZXBlYXQ7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLmljaGVja2JveF9zcXVhcmUtYmx1ZSB7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMCAwO1xufVxuICAgIC5pY2hlY2tib3hfc3F1YXJlLWJsdWUuaG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMjRweCAwO1xuICAgIH1cbiAgICAuaWNoZWNrYm94X3NxdWFyZS1ibHVlLmNoZWNrZWQge1xuICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNDhweCAwO1xuICAgIH1cbiAgICAuaWNoZWNrYm94X3NxdWFyZS1ibHVlLmRpc2FibGVkIHtcbiAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTcycHggMDtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgIH1cbiAgICAuaWNoZWNrYm94X3NxdWFyZS1ibHVlLmNoZWNrZWQuZGlzYWJsZWQge1xuICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtOTZweCAwO1xuICAgIH1cblxuLmlyYWRpb19zcXVhcmUtYmx1ZSB7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTEyMHB4IDA7XG59XG4gICAgLmlyYWRpb19zcXVhcmUtYmx1ZS5ob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IC0xNDRweCAwO1xuICAgIH1cbiAgICAuaXJhZGlvX3NxdWFyZS1ibHVlLmNoZWNrZWQge1xuICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTY4cHggMDtcbiAgICB9XG4gICAgLmlyYWRpb19zcXVhcmUtYmx1ZS5kaXNhYmxlZCB7XG4gICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IC0xOTJweCAwO1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgfVxuICAgIC5pcmFkaW9fc3F1YXJlLWJsdWUuY2hlY2tlZC5kaXNhYmxlZCB7XG4gICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IC0yMTZweCAwO1xuICAgIH1cblxuLyogSGlEUEkgc3VwcG9ydCAqL1xuQG1lZGlhICgtby1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiA1LzQpLCAoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAxLjI1KSwgKG1pbi1yZXNvbHV0aW9uOiAxMjBkcGkpIHtcbiAgICAuaWNoZWNrYm94X3NxdWFyZS1ibHVlLFxuICAgIC5pcmFkaW9fc3F1YXJlLWJsdWUge1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoYmx1ZUAyeC5wbmcpO1xuICAgICAgICAtd2Via2l0LWJhY2tncm91bmQtc2l6ZTogMjQwcHggMjRweDtcbiAgICAgICAgYmFja2dyb3VuZC1zaXplOiAyNDBweCAyNHB4O1xuICAgIH1cbn1cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9ub2RlX21vZHVsZXMvaWNoZWNrL3NraW5zL3NxdWFyZS9ibHVlLmNzcyIsIi8qXG4gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgS2ltYWkgdGltZS10cmFja2luZyBhcHAuXG4gKlxuICogRm9yIHRoZSBmdWxsIGNvcHlyaWdodCBhbmQgbGljZW5zZSBpbmZvcm1hdGlvbiwgcGxlYXNlIHZpZXcgdGhlIExJQ0VOU0VcbiAqIGZpbGUgdGhhdCB3YXMgZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHNvdXJjZSBjb2RlLlxuICovXG5cbkBpbXBvcnQgXCJ+Ym9vdHN0cmFwLXNhc3MvYXNzZXRzL3N0eWxlc2hlZXRzL2Jvb3RzdHJhcC92YXJpYWJsZXNcIjtcblxuLmVycm9yLXBhZ2Uge1xuICAgIG1hcmdpbi1ib3R0b206IDUwcHg7XG59XG5cbkBtZWRpYSBwcmludHtcbiAgICAuc2YtdG9vbGJhciwgLmNvbnRyb2wtc2lkZWJhciB7ZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O31cbn1cblxuQGltcG9ydCAnY29udGVudCc7XG5AaW1wb3J0ICd0b29sYmFyJztcblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gU0lERUJBUiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKiBVc2VkIGZvciB0aGUgU2lkZWJhciBVc2VyUGFuZWwgKHdoaWNoIGlzIGRlYWN0aXZhdGVkIHJpZ2h0IG5vdykgKi9cbi51c2VyLXBhbmVsPi5pbmZvIHtcbiAgICBsZWZ0OiA4MHB4O1xufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSBGT09URVIgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuZm9vdGVyLm1haW4tZm9vdGVyIHtcbiAgICBwYWRkaW5nOiA1cHg7XG4gICAgZm9udC1zaXplOiA4MCU7XG59XG5cbkBpbXBvcnQgJ2ludm9pY2UnO1xuQGltcG9ydCAnZGF0YXRhYmxlJztcbkBpbXBvcnQgJ2NhbGVuZGFyJztcbkBpbXBvcnQgJ2Rhc2hib2FyZCc7XG5AaW1wb3J0ICduYXZiYXInO1xuQGltcG9ydCAnZGF0ZXJhbmdlcGlja2VyJztcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL2Fzc2V0cy9zYXNzL2FwcC5zY3NzIiwiLypcbiAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBLaW1haSB0aW1lLXRyYWNraW5nIGFwcC5cbiAqXG4gKiBGb3IgdGhlIGZ1bGwgY29weXJpZ2h0IGFuZCBsaWNlbnNlIGluZm9ybWF0aW9uLCBwbGVhc2UgdmlldyB0aGUgTElDRU5TRVxuICogZmlsZSB0aGF0IHdhcyBkaXN0cmlidXRlZCB3aXRoIHRoaXMgc291cmNlIGNvZGUuXG4gKi9cblxuLmNvbnRlbnQge1xuICAgIHBhZGRpbmc6IDE1cHggMDtcbn1cbi5jb250ZW50LWhlYWRlciB7XG4gICAgaDEge1xuICAgICAgICBzbWFsbCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogJHNjcmVlbi1zbS1taW4pIHtcbiAgICAuY29udGVudC1oZWFkZXIge1xuICAgICAgICBoMSB7XG4gICAgICAgICAgICBzbWFsbCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC5jb250ZW50IHtcbiAgICAgICAgcGFkZGluZzogMTVweDtcbiAgICB9XG59XG5cbnRkIHtcbiAgICAmLnRpbWVzaGVldC1kZXNjcmlwdGlvbiB7XG4gICAgICAgIHVsIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMTVweDtcbiAgICAgICAgfVxuICAgICAgICBwIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9hc3NldHMvc2Fzcy9jb250ZW50LnNjc3MiLCIvKlxuICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEtpbWFpIHRpbWUtdHJhY2tpbmcgYXBwLlxuICpcbiAqIEZvciB0aGUgZnVsbCBjb3B5cmlnaHQgYW5kIGxpY2Vuc2UgaW5mb3JtYXRpb24sIHBsZWFzZSB2aWV3IHRoZSBMSUNFTlNFXG4gKiBmaWxlIHRoYXQgd2FzIGRpc3RyaWJ1dGVkIHdpdGggdGhpcyBzb3VyY2UgY29kZS5cbiAqL1xuXG4vKiBQYWdlIGJhc2VkIGFjdGlvbiBidXR0b25zIGluIHRoZSB1cHBlciByaWdodCBjb3JuZXIgb2YgdGhlIGNvbnRlbnQgYXJlYSAqL1xuLmNvbnRlbnQtaGVhZGVyID4gLmJyZWFkY3J1bWIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG59XG5cbi8qIFJpZ2h0IHNpZGViYXIgd2l0aCBhZGRpdGlvbmFsIHRhYnMgZm9yIHBlcnNvbmFsIHNldHRpbmdzIGFuZCBcIkFib3V0IEtpbWFpXCIgc2VjdGlvbiAqL1xuLmNvbnRyb2wtc2lkZWJhciB7XG4gICAgc2VsZWN0IHtcbiAgICAgICAgY29sb3I6ICRpbnB1dC1jb2xvcjtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGlucHV0LWJnO1xuICAgIH1cbiAgICBkaXYuaW1hZ2Uge1xuICAgICAgICBpbWcuaW1nLWNpcmNsZSB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDM0cHg7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi50b29sYmFyLXBhZCB7XG4gICAgcGFkZGluZzogMTBweDtcbn1cblxuLyogVGhlIGZpbHRlciBmb3JtIGlzIGF2YWlsYWJsZSBvbiBtb3N0IHBhZ2VzIGFib3ZlIHRoZSBkYXRhdGFibGUgKi9cbkBtZWRpYSAobWluLXdpZHRoOiAkc2NyZWVuLXNtLW1pbikge1xuICAgIC50b29sYmFyIHtcbiAgICAgICAgZm9ybS5uYXZiYXItZm9ybSB7XG4gICAgICAgICAgICBmb250LXNpemU6ICRmb250LXNpemUtYmFzZTtcbiAgICAgICAgICAgIC5mb3JtLWNvbnRyb2wge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLmNvbnRyb2wtbGFiZWwge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLmlucHV0LWdyb3VwIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAudG9vbGJhci1wYWQge1xuICAgICAgICBwYWRkaW5nOiAxMHB4IDA7XG4gICAgfVxufVxuXG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9hc3NldHMvc2Fzcy90b29sYmFyLnNjc3MiLCIvKlxuICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEtpbWFpIHRpbWUtdHJhY2tpbmcgYXBwLlxuICpcbiAqIEZvciB0aGUgZnVsbCBjb3B5cmlnaHQgYW5kIGxpY2Vuc2UgaW5mb3JtYXRpb24sIHBsZWFzZSB2aWV3IHRoZSBMSUNFTlNFXG4gKiBmaWxlIHRoYXQgd2FzIGRpc3RyaWJ1dGVkIHdpdGggdGhpcyBzb3VyY2UgY29kZS5cbiAqL1xuXG4uaW52b2ljZSB7XG4gICAgbWFyZ2luOiAwO1xuICAgIGJvcmRlcjogbm9uZTtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6ICRzY3JlZW4tc20tbWluKSB7XG4gICAgLmludm9pY2Uge1xuICAgICAgICBtYXJnaW46IDI1cHg7XG4gICAgfVxufVxuXG4ucGFnZS1oZWFkZXItc21hbGx7XG4gICAgZm9udC1zaXplOiAxNHB4O1xufVxuXG5kaXYuaW52b2ljZS1hZGRyZXNzIHtcbiAgICBtYXJnaW4tdG9wOiAzMHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDMwcHg7XG59XG5cbnRhYmxlLmludm9pY2UtcmVjb3JkcyB7fVxudGFibGUuaW52b2ljZS1tZXRhIHRoIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiA0MHB4O1xufVxudGFibGUuaW52b2ljZS1zdW0gdGgge1xuICAgIHdpZHRoOiA3MCU7XG59XG50YWJsZS5pbnZvaWNlLXN1bSB0aCwgdGFibGUuaW52b2ljZS1zdW0gdGQgIHtcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gRlJFRUxBTkNFUiBJTlZPSUNFID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbiNmcmVlbGFuY2VyLWludm9pY2Uge1xuICAgIGZvbnQ6IDE1cHgvMSAkZm9udC1mYW1pbHktc2Fucy1zZXJpZjtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXG4gICAgaDEge1xuICAgICAgICBmb250OiBib2xkIDEwMCUgc2Fucy1zZXJpZjtcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuNWVtO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgfVxuXG4gICAgaDIge1xuICAgICAgICBmb250OiBib2xkIDEuNWVtIHNhbnMtc2VyaWY7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFlbTtcbiAgICB9XG5cbiAgICAvKiB0YWJsZSAqL1xuXG4gICAgdGFibGUge1xuICAgICAgICB0YWJsZS1sYXlvdXQ6IGZpeGVkO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG5cbiAgICB0YWJsZSB7XG4gICAgICAgIGJvcmRlci1jb2xsYXBzZTogc2VwYXJhdGU7XG4gICAgICAgIGJvcmRlci1zcGFjaW5nOiAwO1xuICAgIH1cblxuICAgIC8qIGhlYWRlciAqL1xuXG4gICAgaGVhZGVyIHtcbiAgICB9XG5cbiAgICBoZWFkZXI6YWZ0ZXIge1xuICAgICAgICBjbGVhcjogYm90aDtcbiAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgZGlzcGxheTogdGFibGU7XG4gICAgICAgIGZvbnQtc2l6ZTogMWVtO1xuICAgIH1cblxuICAgIGhlYWRlciBhZGRyZXNzIHtcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMjU7XG4gICAgICAgIG1hcmdpbjogMCAxZW0gMWVtIDA7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICBmb250LXNpemU6IDAuN2VtO1xuICAgIH1cblxuICAgIGFydGljbGUgYWRkcmVzcyB7XG4gICAgICAgIGZvbnQtc2l6ZTogMWVtO1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgbWFyZ2luOiAxZW0gMDtcbiAgICB9XG5cbiAgICBhcnRpY2xlLmFkZHJlc3Mge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxLjVlbTtcbiAgICB9XG5cbiAgICBhcnRpY2xlLmZvb3RlciB7XG4gICAgICAgIG1hcmdpbi10b3A6IDYwcHg7XG4gICAgfVxuXG4gICAgLyogYXJ0aWNsZSAqL1xuXG4gICAgYXJ0aWNsZSwgdGFibGUubWV0YSwgdGFibGUuaW52ZW50b3J5IHtcbiAgICAgICAgbWFyZ2luOiAxZW0gMDtcbiAgICB9XG5cbiAgICBhcnRpY2xlOmFmdGVyIHtcbiAgICAgICAgY2xlYXI6IGJvdGg7XG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIH1cblxuICAgIGFydGljbGUgaDEge1xuICAgICAgICBjbGlwOiByZWN0KDAgMCAwIDApO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgfVxuXG4gICAgYXJ0aWNsZSBwIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgICB9XG5cbiAgICAvKiB0YWJsZSBtZXRhICYgYmFsYW5jZSAqL1xuXG4gICAgdGFibGUubWV0YTphZnRlciwgdGFibGUuYmFsYW5jZTphZnRlciB7XG4gICAgICAgIGNsZWFyOiBib3RoO1xuICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICB9XG5cbiAgICAvKiB0YWJsZSBtZXRhICovXG5cbiAgICB0YWJsZS5tZXRhIHtcbiAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICB3aWR0aDogNTAlO1xuICAgICAgICBmb250LXNpemU6IDg1JTtcblxuICAgICAgICB0aCB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgICAgIH1cblxuICAgICAgICB0ZCB7XG4gICAgICAgICAgICB3aWR0aDogMTIwcHg7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qIHRhYmxlIGJhbGFuY2UgKi9cblxuICAgIHRhYmxlLmJhbGFuY2Uge1xuICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgIHRoIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRkIHtcbiAgICAgICAgICAgIHdpZHRoOiAxNDBweDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgLnRvdGFsIHtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyogdGFibGUgaXRlbXMgKi9cblxuICAgIHRhYmxlLmludmVudG9yeSB7XG4gICAgICAgIGNsZWFyOiBib3RoO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbWFyZ2luLXRvcDogMmVtO1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzAwMDtcbiAgICB9XG5cbiAgICB0YWJsZS5pbnZlbnRvcnkgdGgge1xuICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgYm9yZGVyLXdpZHRoOiAwIDAgMXB4IDA7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjMDAwO1xuICAgIH1cbiAgICB0YWJsZS5pbnZlbnRvcnkgdGgsXG4gICAgdGFibGUuaW52ZW50b3J5IHRkIHtcbiAgICAgICAgcGFkZGluZzogNXB4O1xuICAgIH1cblxuICAgIHRhYmxlLmludmVudG9yeSB0ZDpudGgtY2hpbGQoMSksXG4gICAgdGFibGUuaW52ZW50b3J5IHRoOm50aC1jaGlsZCgxKSB7XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgfVxuXG4gICAgdGFibGUuaW52ZW50b3J5IHRkOm50aC1jaGlsZCgyKSxcbiAgICB0YWJsZS5pbnZlbnRvcnkgdGg6bnRoLWNoaWxkKDIpIHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB3aWR0aDogMjAlO1xuICAgIH1cblxuICAgIHRhYmxlLmludmVudG9yeSB0ZDpudGgtY2hpbGQoMyksXG4gICAgdGFibGUuaW52ZW50b3J5IHRoOm50aC1jaGlsZCgzKSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6IDIwJTtcbiAgICB9XG5cbiAgICB0YWJsZS5pbnZlbnRvcnkgdGQ6bnRoLWNoaWxkKDQpLFxuICAgIHRhYmxlLmludmVudG9yeSB0aDpudGgtY2hpbGQoNCkge1xuICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgd2lkdGg6IDIwJTtcbiAgICB9XG5cbiAgICAvKiBmb290ZXIgKi9cblxuICAgIGZvb3RlciB7XG4gICAgICAgIG1hcmdpbi10b3A6IDUwcHg7XG4gICAgfVxuXG4gICAgZm9vdGVyIHRhYmxlIHtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICMwMDA7XG4gICAgICAgIGZvbnQtc2l6ZTogMC44ZW07XG4gICAgICAgIHBhZGRpbmctdG9wOiA1cHg7XG4gICAgfVxuXG4gICAgZm9vdGVyIHRoIHtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gICAgfVxuXG4gICAgZm9vdGVyIHRhYmxlIHRoOm50aC1jaGlsZCgxKSB7XG4gICAgICAgIHdpZHRoOiAzMiU7XG4gICAgfVxuXG4gICAgZm9vdGVyIHRhYmxlIHRoOm50aC1jaGlsZCgzKSB7XG4gICAgICAgIHdpZHRoOiAyOCU7XG4gICAgfVxuXG4gICAgZm9vdGVyIHRkIHtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IGJvdHRvbTtcbiAgICB9XG5cbiAgICAvKiBhc2lkZSAqL1xuXG4gICAgYXNpZGUge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMTBpbjtcbiAgICAgICAgd2lkdGg6IDcuNWluO1xuICAgIH1cblxuICAgIGFzaWRlIGgxIHtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBib3JkZXItd2lkdGg6IDAgMCAxcHg7XG4gICAgICAgIG1hcmdpbjogMCAwIDFlbTtcbiAgICB9XG5cbiAgICBhc2lkZSBoMSB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogIzk5OTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1zdHlsZTogc29saWQ7XG4gICAgfVxuXG4gICAgYXNpZGUgcCB7XG4gICAgICAgIGZvbnQtc2l6ZTogODUlO1xuICAgIH1cblxuICAgIGFzaWRlIGRpdiB7XG4gICAgICAgIG1hcmdpbi10b3A6IDE1cHg7XG4gICAgfVxuXG4gICAgYXNpZGUgZGl2IHAge1xuICAgICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgIH1cblxuICAgIGFzaWRlIHAgc3BhbiB7XG4gICAgICAgIHdpZHRoOiAxMzBweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB9XG59XG5cbkBtZWRpYSBwcmludCB7XG4gICAgKiB7XG4gICAgICAgIC13ZWJraXQtcHJpbnQtY29sb3ItYWRqdXN0OiBleGFjdDtcbiAgICB9XG4gICAgYm9keSwgLndyYXBwZXIsICNmcmVlbGFuY2VyLWludm9pY2Uge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgfVxuXG4gICAgI2ZyZWVsYW5jZXItaW52b2ljZSB7XG4gICAgICAgIG1hcmdpbjogMWVtIDJlbTtcblxuICAgICAgICBzcGFuOmVtcHR5IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAuYWRkLCAuY3V0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuaW52b2ljZSB7XG4gICAgICAgIHdpZHRoOiB1bnNldDtcbiAgICB9XG59XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9hc3NldHMvc2Fzcy9pbnZvaWNlLnNjc3MiLCIvKlxuICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEtpbWFpIHRpbWUtdHJhY2tpbmcgYXBwLlxuICpcbiAqIEZvciB0aGUgZnVsbCBjb3B5cmlnaHQgYW5kIGxpY2Vuc2UgaW5mb3JtYXRpb24sIHBsZWFzZSB2aWV3IHRoZSBMSUNFTlNFXG4gKiBmaWxlIHRoYXQgd2FzIGRpc3RyaWJ1dGVkIHdpdGggdGhpcyBzb3VyY2UgY29kZS5cbiAqL1xuXG4vKiBMb2FkaW5nIGluZGljYXRvcjogb3ZlcndyaXR0ZW4gZnJvbSBBZG1pbkxURSBmb3IgcG9zaXRpb25pbmcgYW5kIHN1cHBvcnRpbmcgZmFzIGNsYXNzZXMgKi9cbi5ib3ggLm92ZXJsYXkgPiAuZmFzLFxuc2VjdGlvbi5jb250ZW50IC5vdmVybGF5ID4gLmZhcyxcbi5vdmVybGF5LXdyYXBwZXIgLm92ZXJsYXkgPiAuZmFzIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA1MHZoO1xuICAgIGxlZnQ6IDUwdnc7XG4gICAgbWFyZ2luLWxlZnQ6IC0xNXB4O1xuICAgIG1hcmdpbi10b3A6IC0xNXB4O1xuICAgIGNvbG9yOiAjMDAwO1xuICAgIGZvbnQtc2l6ZTogMzBweDtcbn1cblxuLmJveCA+IC5vdmVybGF5LFxuLm92ZXJsYXktd3JhcHBlciA+IC5vdmVybGF5LFxuc2VjdGlvbi5jb250ZW50ID4gLm92ZXJsYXksXG4uYm94ID4gLmxvYWRpbmctaW1nLFxuLm92ZXJsYXktd3JhcHBlciA+IC5sb2FkaW5nLWltZyB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbn1cbi5ib3ggLm92ZXJsYXksXG5zZWN0aW9uLmNvbnRlbnQgLm92ZXJsYXksXG4ub3ZlcmxheS13cmFwcGVyIC5vdmVybGF5IHtcbiAgICB6LWluZGV4OiA1MDtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNyk7XG4gICAgYm9yZGVyLXJhZGl1czogM3B4O1xufVxuLmJveCAub3ZlcmxheS5kYXJrLFxuc2VjdGlvbi5jb250ZW50IC5vdmVybGF5LmRhcmssXG4ub3ZlcmxheS13cmFwcGVyIC5vdmVybGF5LmRhcmsge1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC41KTtcbn1cblxuLypcbmRhdGFUYWJsZXMuYm9vdHN0cmFwLmNzc1xuKi9cbmRpdi5kYXRhVGFibGVzX2xlbmd0aCBsYWJlbCB7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbmRpdi5kYXRhVGFibGVzX2xlbmd0aCBzZWxlY3Qge1xuICAgIHdpZHRoOiA3NXB4O1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cblxuZGl2LmRhdGFUYWJsZXNfZmlsdGVyIHtcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcbn1cblxuZGl2LmRhdGFUYWJsZXNfZmlsdGVyIGxhYmVsIHtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbn1cblxuZGl2LmRhdGFUYWJsZXNfZmlsdGVyIGlucHV0IHtcbiAgICBtYXJnaW4tbGVmdDogMC41ZW07XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHdpZHRoOiBhdXRvO1xufVxuXG5kaXYuZGF0YVRhYmxlc19pbmZvIHtcbiAgICBwYWRkaW5nLXRvcDogOHB4O1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbmRpdi5kYXRhVGFibGVzX3BhZ2luYXRlIHtcbiAgICBtYXJnaW46IDA7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcbn1cblxuZGl2LmRhdGFUYWJsZXNfcGFnaW5hdGUgdWwucGFnaW5hdGlvbiB7XG4gICAgbWFyZ2luOiAycHggMDtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAgIGRpdi5kYXRhVGFibGVzX2xlbmd0aCxcbiAgICBkaXYuZGF0YVRhYmxlc19maWx0ZXIsXG4gICAgZGl2LmRhdGFUYWJsZXNfaW5mbyxcbiAgICBkaXYuZGF0YVRhYmxlc19wYWdpbmF0ZSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB9XG5cbiAgICBkaXYuRFRUVCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNWVtO1xuICAgIH1cbn1cblxudGFibGUuZGF0YVRhYmxlIHRkLFxudGFibGUuZGF0YVRhYmxlIHRoIHtcbiAgICAtd2Via2l0LWJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICAgIC1tb3otYm94LXNpemluZzogY29udGVudC1ib3g7XG4gICAgYm94LXNpemluZzogY29udGVudC1ib3g7XG59XG5cbnRhYmxlLmRhdGFUYWJsZSB7XG4gICAgY2xlYXI6IGJvdGg7XG4gICAgLyptYXJnaW4tdG9wOiA2cHggIWltcG9ydGFudDtcbiAgICBtYXJnaW4tYm90dG9tOiA2cHggIWltcG9ydGFudDsqL1xuICAgIG1hcmdpbi1ib3R0b206IDBweCAhaW1wb3J0YW50O1xuICAgIG1heC13aWR0aDogbm9uZSAhaW1wb3J0YW50O1xufVxuXG50YWJsZS5kYXRhVGFibGUgdGhlYWQgLnNvcnRpbmcsXG50YWJsZS5kYXRhVGFibGUgdGhlYWQgLnNvcnRpbmdfYXNjLFxudGFibGUuZGF0YVRhYmxlIHRoZWFkIC5zb3J0aW5nX2Rlc2MsXG50YWJsZS5kYXRhVGFibGUgdGhlYWQgLnNvcnRpbmdfYXNjX2Rpc2FibGVkLFxudGFibGUuZGF0YVRhYmxlIHRoZWFkIC5zb3J0aW5nX2Rlc2NfZGlzYWJsZWQge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbnRhYmxlLmRhdGFUYWJsZSB0aGVhZCAuc29ydGluZzphZnRlcixcbnRhYmxlLmRhdGFUYWJsZSB0aGVhZCAuc29ydGluZ19hc2M6YWZ0ZXIsXG50YWJsZS5kYXRhVGFibGUgdGhlYWQgLnNvcnRpbmdfZGVzYzphZnRlciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogOHB4O1xuICAgIHJpZ2h0OiA4cHg7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZm9udC1mYW1pbHk6ICdHbHlwaGljb25zIEhhbGZsaW5ncyc7XG4gICAgb3BhY2l0eTogMC41O1xufVxudGFibGUuZGF0YVRhYmxlIHRoZWFkIC5zb3J0aW5nOmFmdGVyIHtcbiAgICBvcGFjaXR5OiAwLjI7XG4gICAgY29udGVudDogXCJcXGUxNTBcIjsgLyogc29ydCAqL1xufVxudGFibGUuZGF0YVRhYmxlIHRoZWFkIC5zb3J0aW5nX2FzYzphZnRlciB7XG4gICAgY29udGVudDogXCJcXGUxNTVcIjsgLyogc29ydC1ieS1hdHRyaWJ1dGVzICovXG59XG50YWJsZS5kYXRhVGFibGUgdGhlYWQgLnNvcnRpbmdfZGVzYzphZnRlciB7XG4gICAgY29udGVudDogXCJcXGUxNTZcIjsgLyogc29ydC1ieS1hdHRyaWJ1dGVzLWFsdCAqL1xufVxuZGl2LmRhdGFUYWJsZXNfc2Nyb2xsQm9keSB0YWJsZS5kYXRhVGFibGUgdGhlYWQgLnNvcnRpbmc6YWZ0ZXIsXG5kaXYuZGF0YVRhYmxlc19zY3JvbGxCb2R5IHRhYmxlLmRhdGFUYWJsZSB0aGVhZCAuc29ydGluZ19hc2M6YWZ0ZXIsXG5kaXYuZGF0YVRhYmxlc19zY3JvbGxCb2R5IHRhYmxlLmRhdGFUYWJsZSB0aGVhZCAuc29ydGluZ19kZXNjOmFmdGVyIHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuXG50YWJsZS5kYXRhVGFibGUgdGhlYWQgLnNvcnRpbmdfYXNjX2Rpc2FibGVkOmFmdGVyLFxudGFibGUuZGF0YVRhYmxlIHRoZWFkIC5zb3J0aW5nX2Rlc2NfZGlzYWJsZWQ6YWZ0ZXIge1xuICAgIGNvbG9yOiAjZWVlO1xufVxuXG50YWJsZS5kYXRhVGFibGUgdGhlYWQgPiB0ciA+IHRoIHtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuXG4vKlxudGFibGUuZGF0YVRhYmxlIHRoZWFkID4gdHIgPiB0aCB7XG4gICAgcGFkZGluZy1yaWdodDogMzBweDtcbn1cbiovXG50YWJsZS5kYXRhVGFibGUgdGg6YWN0aXZlIHtcbiAgICBvdXRsaW5lOiBub25lO1xufVxuXG5cbi8qIENvbmRlbnNlZCAqL1xudGFibGUuZGF0YVRhYmxlLnRhYmxlLWNvbmRlbnNlZCB0aGVhZCA+IHRyID4gdGgge1xuICAgIHBhZGRpbmctcmlnaHQ6IDIwcHg7XG59XG5cbnRhYmxlLmRhdGFUYWJsZS50YWJsZS1jb25kZW5zZWQgdGhlYWQgLnNvcnRpbmc6YWZ0ZXIsXG50YWJsZS5kYXRhVGFibGUudGFibGUtY29uZGVuc2VkIHRoZWFkIC5zb3J0aW5nX2FzYzphZnRlcixcbnRhYmxlLmRhdGFUYWJsZS50YWJsZS1jb25kZW5zZWQgdGhlYWQgLnNvcnRpbmdfZGVzYzphZnRlciB7XG4gICAgdG9wOiA2cHg7XG4gICAgcmlnaHQ6IDZweDtcbn1cblxuLyogU2Nyb2xsaW5nICovXG5kaXYuZGF0YVRhYmxlc19zY3JvbGxIZWFkIHRhYmxlIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDtcbiAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMDtcbn1cblxuZGl2LmRhdGFUYWJsZXNfc2Nyb2xsSGVhZCB0YWJsZSB0aGVhZCB0cjpsYXN0LWNoaWxkIHRoOmZpcnN0LWNoaWxkLFxuZGl2LmRhdGFUYWJsZXNfc2Nyb2xsSGVhZCB0YWJsZSB0aGVhZCB0cjpsYXN0LWNoaWxkIHRkOmZpcnN0LWNoaWxkIHtcbiAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDAgIWltcG9ydGFudDtcbn1cblxuZGl2LmRhdGFUYWJsZXNfc2Nyb2xsQm9keSB0YWJsZSB7XG4gICAgYm9yZGVyLXRvcDogbm9uZTtcbiAgICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50O1xufVxuXG5kaXYuZGF0YVRhYmxlc19zY3JvbGxCb2R5IHRib2R5IHRyOmZpcnN0LWNoaWxkIHRoLFxuZGl2LmRhdGFUYWJsZXNfc2Nyb2xsQm9keSB0Ym9keSB0cjpmaXJzdC1jaGlsZCB0ZCB7XG4gICAgYm9yZGVyLXRvcDogbm9uZTtcbn1cblxuZGl2LmRhdGFUYWJsZXNfc2Nyb2xsRm9vdCB0YWJsZSB7XG4gICAgbWFyZ2luLXRvcDogMCAhaW1wb3J0YW50O1xuICAgIGJvcmRlci10b3A6IG5vbmU7XG59XG5cbi8qIEZydXN0cmF0aW5nbHkgdGhlIGJvcmRlci1jb2xsYXBzZTpjb2xsYXBzZSB1c2VkIGJ5IEJvb3RzdHJhcCBtYWtlcyB0aGUgY29sdW1uXG4gICB3aWR0aCBjYWxjdWxhdGlvbnMgd2hlbiB1c2luZyBzY3JvbGxpbmcgaW1wb3NzaWJsZSB0byBhbGlnbiBjb2x1bW5zLiBXZSBoYXZlXG4gICB0byB1c2Ugc2VwYXJhdGVcbiAqL1xudGFibGUudGFibGUtYm9yZGVyZWQuZGF0YVRhYmxlIHtcbiAgICBib3JkZXItY29sbGFwc2U6IHNlcGFyYXRlICFpbXBvcnRhbnQ7XG59XG50YWJsZS50YWJsZS1ib3JkZXJlZCB0aGVhZCB0aCxcbnRhYmxlLnRhYmxlLWJvcmRlcmVkIHRoZWFkIHRkIHtcbiAgICBib3JkZXItbGVmdC13aWR0aDogMDtcbiAgICBib3JkZXItdG9wLXdpZHRoOiAwO1xufVxudGFibGUudGFibGUtYm9yZGVyZWQgdGJvZHkgdGgsXG50YWJsZS50YWJsZS1ib3JkZXJlZCB0Ym9keSB0ZCB7XG4gICAgYm9yZGVyLWxlZnQtd2lkdGg6IDA7XG4gICAgYm9yZGVyLWJvdHRvbS13aWR0aDogMDtcbn1cbnRhYmxlLnRhYmxlLWJvcmRlcmVkIHRmb290IHRoLFxudGFibGUudGFibGUtYm9yZGVyZWQgdGZvb3QgdGQge1xuICAgIGJvcmRlci1sZWZ0LXdpZHRoOiAwO1xuICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDA7XG59XG50YWJsZS50YWJsZS1ib3JkZXJlZCB0aDpsYXN0LWNoaWxkLFxudGFibGUudGFibGUtYm9yZGVyZWQgdGQ6bGFzdC1jaGlsZCB7XG4gICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAwO1xufVxuZGl2LmRhdGFUYWJsZXNfc2Nyb2xsSGVhZCB0YWJsZS50YWJsZS1ib3JkZXJlZCB7XG4gICAgYm9yZGVyLWJvdHRvbS13aWR0aDogMDtcbn1cblxuLypcbiAqIFRhYmxlVG9vbHMgc3R5bGVzXG4gKi9cbi50YWJsZS5kYXRhVGFibGUgdGJvZHkgdHIuYWN0aXZlIHRkLFxuLnRhYmxlLmRhdGFUYWJsZSB0Ym9keSB0ci5hY3RpdmUgdGgge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMwOEM7XG4gICAgY29sb3I6IHdoaXRlO1xufVxuXG4udGFibGUuZGF0YVRhYmxlIHRib2R5IHRyLmFjdGl2ZTpob3ZlciB0ZCxcbi50YWJsZS5kYXRhVGFibGUgdGJvZHkgdHIuYWN0aXZlOmhvdmVyIHRoIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA3NWIwICFpbXBvcnRhbnQ7XG59XG5cbi50YWJsZS5kYXRhVGFibGUgdGJvZHkgdHIuYWN0aXZlIHRoID4gYSxcbi50YWJsZS5kYXRhVGFibGUgdGJvZHkgdHIuYWN0aXZlIHRkID4gYSB7XG4gICAgY29sb3I6IHdoaXRlO1xufVxuXG4udGFibGUtc3RyaXBlZC5kYXRhVGFibGUgdGJvZHkgdHIuYWN0aXZlOm50aC1jaGlsZChvZGQpIHRkLFxuLnRhYmxlLXN0cmlwZWQuZGF0YVRhYmxlIHRib2R5IHRyLmFjdGl2ZTpudGgtY2hpbGQob2RkKSB0aCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzAxN2ViYztcbn1cblxudGFibGUuZGF0YVRhYmxlIHtcbiAgICAvKiBzdW1tYXJ5IHJvdywgbGlrZSB0aGUgdGltZXNoZWV0IHRhYmxlIHByb3ZpZGVzICovXG4gICAgdHIuc3VtbWFyeSB0ZCB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2NjYztcbiAgICB9XG4gICAgdGQge1xuICAgICAgICAvKlxuICAgICAgICAgICAgTWFrZSBzdXJlIHRoYXQgdGhlIGFjdGlvbiBidXR0b25zIGRvIG5vdCBsaW5lLWJyZWFrIGlmIGFub3RoZXIgY29sdW1uIHRha2VzIGFsbCBhdmFpbGFibGUgc3BhY2VcbiAgICAgICAgICAgIFNlZSBodHRwczovL2dpdGh1Yi5jb20vdHdicy9ib290c3RyYXAvaXNzdWVzLzk5MzkjaXNzdWVjb21tZW50LTM3NjgyOTUyXG4gICAgICAgICAqL1xuICAgICAgICAuYnRuLWdyb3VwIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIH1cbiAgICAgICAgLmxhYmVsIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogODUlO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IC4zZW0gLjZlbSAuM2VtO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vYXNzZXRzL3Nhc3MvZGF0YXRhYmxlLnNjc3MiLCIucG9wb3Zlci1jb250ZW50IHtcbiAgICAuY2FsZW5kYXItZW50cnkge1xuICAgICAgICB1bCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIDAgMCAxMHB4O1xuICAgICAgICB9XG4gICAgfVxufVxuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vYXNzZXRzL3Nhc3MvY2FsZW5kYXIuc2NzcyIsIi8qXG4gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgS2ltYWkgdGltZS10cmFja2luZyBhcHAuXG4gKlxuICogRm9yIHRoZSBmdWxsIGNvcHlyaWdodCBhbmQgbGljZW5zZSBpbmZvcm1hdGlvbiwgcGxlYXNlIHZpZXcgdGhlIExJQ0VOU0VcbiAqIGZpbGUgdGhhdCB3YXMgZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHNvdXJjZSBjb2RlLlxuICovXG5cbnNlY3Rpb24ge1xuICAgICYuZGFzaGJvYXJkIHtcbiAgICAgICAgLmluZm8tYm94IHtcbiAgICAgICAgICAgIC5pbmZvLWJveC10ZXh0IHtcbiAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vYXNzZXRzL3Nhc3MvZGFzaGJvYXJkLnNjc3MiLCIvKlxuICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEtpbWFpIHRpbWUtdHJhY2tpbmcgYXBwLlxuICpcbiAqIEZvciB0aGUgZnVsbCBjb3B5cmlnaHQgYW5kIGxpY2Vuc2UgaW5mb3JtYXRpb24sIHBsZWFzZSB2aWV3IHRoZSBMSUNFTlNFXG4gKiBmaWxlIHRoYXQgd2FzIGRpc3RyaWJ1dGVkIHdpdGggdGhpcyBzb3VyY2UgY29kZS5cbiAqL1xuXG4ubmF2YmFyLW5hdiB7XG4gICAgbGk+YS5kZHQtbGFyZ2Uge1xuICAgICAgICBwYWRkaW5nOiAxNnB4IDEycHggMTFweCAxMnB4O1xuICAgICAgICBmb250LXNpemU6IDEwcHg7XG4gICAgfVxuICAgIGxpLm1lc3NhZ2VzLW1lbnUgdWwubWVudSBsaSAucHVsbC1sZWZ0IGkge1xuICAgICAgICBjb2xvcjogI2RkNGIzOTtcbiAgICB9XG4gICAgLm1lc3NhZ2VzLW1lbnU+LmRyb3Bkb3duLW1lbnU+bGkgLm1lbnU+bGk+YT5wIHtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgfVxuICAgIC5zdGFydF9yZWNvcmQge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgfVxuICAgIC5kcm9wZG93bi1tZW51IHtcbiAgICAgICAgbWF4LXdpZHRoOiA5MHZ3O1xuICAgICAgICB3aWR0aDogdW5zZXQgIWltcG9ydGFudDtcbiAgICB9XG59XG5cbi8qXG4udGlja3RhYzpob3ZlciBpLnJ1bm5pbmd7XG4gICAgY29sb3I6ICM0ZmYxMzE7XG59XG5cbmxpLm9wZW4gLnRpY2t0YWMgaS5ydW5uaW5ne1xuICAgIGNvbG9yOiAjNGZmMTMxO1xufVxuXG4udGlja3RhYyBpLnN0b3BwZWR7XG4gICAgY29sb3I6ICNmZmY7XG59XG5cbi50aWNrdGFjOmhvdmVyIGkuc3RvcHBlZHtcbiAgICBjb2xvcjogIzRmZjEzMTtcbn1cbi51c2VyLXBhbmVsPi5pbmZvIHtcbiAgICBsZWZ0OiA0MHB4O1xuICAgIHBhZGRpbmctdG9wOiAwcHg7XG59XG4qL1xuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL2Fzc2V0cy9zYXNzL25hdmJhci5zY3NzIiwiXG4uZHJwLWNhbGVuZGFyIHtcbiAgICAuY2FsZW5kYXItdGFibGUge1xuICAgICAgICB0ZC50b2RheTpub3QoLmFjdGl2ZSkge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbGlnaHRlbigjMzU3ZWJkLCA0MCk7XG4gICAgICAgICAgICBjb2xvcjogIzM1N2ViZDtcbiAgICAgICAgfVxuICAgICAgICBzZWxlY3QueWVhcnNlbGVjdHtcbiAgICAgICAgICAgIHdpZHRoOiB1bnNldDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL2Fzc2V0cy9zYXNzL2RhdGVyYW5nZXBpY2tlci5zY3NzIiwiLyohXG4gKiBGdWxsQ2FsZW5kYXIgdjMuOS4wXG4gKiBEb2NzICYgTGljZW5zZTogaHR0cHM6Ly9mdWxsY2FsZW5kYXIuaW8vXG4gKiAoYykgMjAxOCBBZGFtIFNoYXdcbiAqLy5mYyBidXR0b24sLmZjIHRhYmxlLGJvZHkgLmZje2ZvbnQtc2l6ZToxZW19LmZjLWJnLC5mYy1yb3cgLmZjLWJnZXZlbnQtc2tlbGV0b24sLmZjLXJvdyAuZmMtaGlnaGxpZ2h0LXNrZWxldG9ue2JvdHRvbTowfS5mYy1pY29uLC5mYy11bnNlbGVjdGFibGV7LXdlYmtpdC10b3VjaC1jYWxsb3V0Om5vbmU7LWtodG1sLXVzZXItc2VsZWN0Om5vbmV9LmZje2RpcmVjdGlvbjpsdHI7dGV4dC1hbGlnbjpsZWZ0fS5mYy1ydGx7dGV4dC1hbGlnbjpyaWdodH0uZmMgdGgsLmZjLWJhc2ljLXZpZXcgdGQuZmMtd2Vlay1udW1iZXIsLmZjLWljb24sLmZjLXRvb2xiYXJ7dGV4dC1hbGlnbjpjZW50ZXJ9LmZjLWhpZ2hsaWdodHtiYWNrZ3JvdW5kOiNiY2U4ZjE7b3BhY2l0eTouM30uZmMtYmdldmVudHtiYWNrZ3JvdW5kOiM4ZmRmODI7b3BhY2l0eTouM30uZmMtbm9uYnVzaW5lc3N7YmFja2dyb3VuZDojZDdkN2Q3fS5mYyBidXR0b257LW1vei1ib3gtc2l6aW5nOmJvcmRlci1ib3g7LXdlYmtpdC1ib3gtc2l6aW5nOmJvcmRlci1ib3g7Ym94LXNpemluZzpib3JkZXItYm94O21hcmdpbjowO2hlaWdodDoyLjFlbTtwYWRkaW5nOjAgLjZlbTt3aGl0ZS1zcGFjZTpub3dyYXA7Y3Vyc29yOnBvaW50ZXJ9LmZjIGJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lcnttYXJnaW46MDtwYWRkaW5nOjB9LmZjLXN0YXRlLWRlZmF1bHR7Ym9yZGVyOjFweCBzb2xpZDtiYWNrZ3JvdW5kLWNvbG9yOiNmNWY1ZjU7YmFja2dyb3VuZC1pbWFnZTotbW96LWxpbmVhci1ncmFkaWVudCh0b3AsI2ZmZiwjZTZlNmU2KTtiYWNrZ3JvdW5kLWltYWdlOi13ZWJraXQtZ3JhZGllbnQobGluZWFyLDAgMCwwIDEwMCUsZnJvbSgjZmZmKSx0bygjZTZlNmU2KSk7YmFja2dyb3VuZC1pbWFnZTotd2Via2l0LWxpbmVhci1ncmFkaWVudCh0b3AsI2ZmZiwjZTZlNmU2KTtiYWNrZ3JvdW5kLWltYWdlOi1vLWxpbmVhci1ncmFkaWVudCh0b3AsI2ZmZiwjZTZlNmU2KTtiYWNrZ3JvdW5kLWltYWdlOmxpbmVhci1ncmFkaWVudCh0byBib3R0b20sI2ZmZiwjZTZlNmU2KTtiYWNrZ3JvdW5kLXJlcGVhdDpyZXBlYXQteDtib3JkZXItY29sb3I6I2U2ZTZlNiAjZTZlNmU2ICNiZmJmYmY7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsLjEpIHJnYmEoMCwwLDAsLjEpIHJnYmEoMCwwLDAsLjI1KTtjb2xvcjojMzMzO3RleHQtc2hhZG93OjAgMXB4IDFweCByZ2JhKDI1NSwyNTUsMjU1LC43NSk7Ym94LXNoYWRvdzppbnNldCAwIDFweCAwIHJnYmEoMjU1LDI1NSwyNTUsLjIpLDAgMXB4IDJweCByZ2JhKDAsMCwwLC4wNSl9LmZjLXN0YXRlLWRlZmF1bHQuZmMtY29ybmVyLWxlZnR7Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czo0cHg7Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czo0cHh9LmZjLXN0YXRlLWRlZmF1bHQuZmMtY29ybmVyLXJpZ2h0e2JvcmRlci10b3AtcmlnaHQtcmFkaXVzOjRweDtib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czo0cHh9LmZjIGJ1dHRvbiAuZmMtaWNvbntwb3NpdGlvbjpyZWxhdGl2ZTt0b3A6LS4wNWVtO21hcmdpbjowIC4yZW07dmVydGljYWwtYWxpZ246bWlkZGxlfS5mYy1zdGF0ZS1hY3RpdmUsLmZjLXN0YXRlLWRpc2FibGVkLC5mYy1zdGF0ZS1kb3duLC5mYy1zdGF0ZS1ob3Zlcntjb2xvcjojMzMzO2JhY2tncm91bmQtY29sb3I6I2U2ZTZlNn0uZmMtc3RhdGUtaG92ZXJ7Y29sb3I6IzMzMzt0ZXh0LWRlY29yYXRpb246bm9uZTtiYWNrZ3JvdW5kLXBvc2l0aW9uOjAgLTE1cHg7LXdlYmtpdC10cmFuc2l0aW9uOmJhY2tncm91bmQtcG9zaXRpb24gLjFzIGxpbmVhcjstbW96LXRyYW5zaXRpb246YmFja2dyb3VuZC1wb3NpdGlvbiAuMXMgbGluZWFyOy1vLXRyYW5zaXRpb246YmFja2dyb3VuZC1wb3NpdGlvbiAuMXMgbGluZWFyO3RyYW5zaXRpb246YmFja2dyb3VuZC1wb3NpdGlvbiAuMXMgbGluZWFyfS5mYy1zdGF0ZS1hY3RpdmUsLmZjLXN0YXRlLWRvd257YmFja2dyb3VuZC1jb2xvcjojY2NjO2JhY2tncm91bmQtaW1hZ2U6bm9uZTtib3gtc2hhZG93Omluc2V0IDAgMnB4IDRweCByZ2JhKDAsMCwwLC4xNSksMCAxcHggMnB4IHJnYmEoMCwwLDAsLjA1KX0uZmMtc3RhdGUtZGlzYWJsZWR7Y3Vyc29yOmRlZmF1bHQ7YmFja2dyb3VuZC1pbWFnZTpub25lO29wYWNpdHk6LjY1O2JveC1zaGFkb3c6bm9uZX0uZmMtZXZlbnQuZmMtZHJhZ2dhYmxlLC5mYy1ldmVudFtocmVmXSwuZmMtcG9wb3ZlciAuZmMtaGVhZGVyIC5mYy1jbG9zZSxhW2RhdGEtZ290b117Y3Vyc29yOnBvaW50ZXJ9LmZjLWJ1dHRvbi1ncm91cHtkaXNwbGF5OmlubGluZS1ibG9ja30uZmMgLmZjLWJ1dHRvbi1ncm91cD4qe2Zsb2F0OmxlZnQ7bWFyZ2luOjAgMCAwIC0xcHh9LmZjIC5mYy1idXR0b24tZ3JvdXA+OmZpcnN0LWNoaWxke21hcmdpbi1sZWZ0OjB9LmZjLXBvcG92ZXJ7cG9zaXRpb246YWJzb2x1dGU7Ym94LXNoYWRvdzowIDJweCA2cHggcmdiYSgwLDAsMCwuMTUpfS5mYy1wb3BvdmVyIC5mYy1oZWFkZXJ7cGFkZGluZzoycHggNHB4fS5mYy1wb3BvdmVyIC5mYy1oZWFkZXIgLmZjLXRpdGxle21hcmdpbjowIDJweH0uZmMtbHRyIC5mYy1wb3BvdmVyIC5mYy1oZWFkZXIgLmZjLXRpdGxlLC5mYy1ydGwgLmZjLXBvcG92ZXIgLmZjLWhlYWRlciAuZmMtY2xvc2V7ZmxvYXQ6bGVmdH0uZmMtbHRyIC5mYy1wb3BvdmVyIC5mYy1oZWFkZXIgLmZjLWNsb3NlLC5mYy1ydGwgLmZjLXBvcG92ZXIgLmZjLWhlYWRlciAuZmMtdGl0bGV7ZmxvYXQ6cmlnaHR9LmZjLWRpdmlkZXJ7Ym9yZGVyLXN0eWxlOnNvbGlkO2JvcmRlci13aWR0aDoxcHh9aHIuZmMtZGl2aWRlcntoZWlnaHQ6MDttYXJnaW46MDtwYWRkaW5nOjAgMCAycHg7Ym9yZGVyLXdpZHRoOjFweCAwfS5mYy1iZyB0YWJsZSwuZmMtcm93IC5mYy1iZ2V2ZW50LXNrZWxldG9uIHRhYmxlLC5mYy1yb3cgLmZjLWhpZ2hsaWdodC1za2VsZXRvbiB0YWJsZXtoZWlnaHQ6MTAwJX0uZmMtY2xlYXJ7Y2xlYXI6Ym90aH0uZmMtYmcsLmZjLWJnZXZlbnQtc2tlbGV0b24sLmZjLWhlbHBlci1za2VsZXRvbiwuZmMtaGlnaGxpZ2h0LXNrZWxldG9ue3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2xlZnQ6MDtyaWdodDowfS5mYyB0YWJsZXt3aWR0aDoxMDAlO2JveC1zaXppbmc6Ym9yZGVyLWJveDt0YWJsZS1sYXlvdXQ6Zml4ZWQ7Ym9yZGVyLWNvbGxhcHNlOmNvbGxhcHNlO2JvcmRlci1zcGFjaW5nOjB9LmZjIHRkLC5mYyB0aHtib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLXdpZHRoOjFweDtwYWRkaW5nOjA7dmVydGljYWwtYWxpZ246dG9wfS5mYyB0ZC5mYy10b2RheXtib3JkZXItc3R5bGU6ZG91YmxlfWFbZGF0YS1nb3RvXTpob3Zlcnt0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lfS5mYyAuZmMtcm93e2JvcmRlci1zdHlsZTpzb2xpZDtib3JkZXItd2lkdGg6MH0uZmMtcm93IHRhYmxle2JvcmRlci1sZWZ0OjAgaGlkZGVuIHRyYW5zcGFyZW50O2JvcmRlci1yaWdodDowIGhpZGRlbiB0cmFuc3BhcmVudDtib3JkZXItYm90dG9tOjAgaGlkZGVuIHRyYW5zcGFyZW50fS5mYy1yb3c6Zmlyc3QtY2hpbGQgdGFibGV7Ym9yZGVyLXRvcDowIGhpZGRlbiB0cmFuc3BhcmVudH0uZmMtcm93e3Bvc2l0aW9uOnJlbGF0aXZlfS5mYy1yb3cgLmZjLWJne3otaW5kZXg6MX0uZmMtcm93IC5mYy1iZ2V2ZW50LXNrZWxldG9uIHRkLC5mYy1yb3cgLmZjLWhpZ2hsaWdodC1za2VsZXRvbiB0ZHtib3JkZXItY29sb3I6dHJhbnNwYXJlbnR9LmZjLXJvdyAuZmMtYmdldmVudC1za2VsZXRvbnt6LWluZGV4OjJ9LmZjLXJvdyAuZmMtaGlnaGxpZ2h0LXNrZWxldG9ue3otaW5kZXg6M30uZmMtcm93IC5mYy1jb250ZW50LXNrZWxldG9ue3Bvc2l0aW9uOnJlbGF0aXZlO3otaW5kZXg6NDtwYWRkaW5nLWJvdHRvbToycHh9LmZjLXJvdyAuZmMtaGVscGVyLXNrZWxldG9ue3otaW5kZXg6NX0uZmMgLmZjLXJvdyAuZmMtY29udGVudC1za2VsZXRvbiB0YWJsZSwuZmMgLmZjLXJvdyAuZmMtY29udGVudC1za2VsZXRvbiB0ZCwuZmMgLmZjLXJvdyAuZmMtaGVscGVyLXNrZWxldG9uIHRke2JhY2tncm91bmQ6MCAwO2JvcmRlci1jb2xvcjp0cmFuc3BhcmVudH0uZmMtcm93IC5mYy1jb250ZW50LXNrZWxldG9uIHRkLC5mYy1yb3cgLmZjLWhlbHBlci1za2VsZXRvbiB0ZHtib3JkZXItYm90dG9tOjB9LmZjLXJvdyAuZmMtY29udGVudC1za2VsZXRvbiB0Ym9keSB0ZCwuZmMtcm93IC5mYy1oZWxwZXItc2tlbGV0b24gdGJvZHkgdGR7Ym9yZGVyLXRvcDowfS5mYy1zY3JvbGxlcnstd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzp0b3VjaH0uZmMtaWNvbiwuZmMtcm93LmZjLXJpZ2lkLC5mYy10aW1lLWdyaWQtZXZlbnR7b3ZlcmZsb3c6aGlkZGVufS5mYy1zY3JvbGxlcj4uZmMtZGF5LWdyaWQsLmZjLXNjcm9sbGVyPi5mYy10aW1lLWdyaWR7cG9zaXRpb246cmVsYXRpdmU7d2lkdGg6MTAwJX0uZmMtZXZlbnR7cG9zaXRpb246cmVsYXRpdmU7ZGlzcGxheTpibG9jaztmb250LXNpemU6Ljg1ZW07bGluZS1oZWlnaHQ6MS4zO2JvcmRlci1yYWRpdXM6M3B4O2JvcmRlcjoxcHggc29saWQgIzNhODdhZH0uZmMtZXZlbnQsLmZjLWV2ZW50LWRvdHtiYWNrZ3JvdW5kLWNvbG9yOiMzYTg3YWR9LmZjLWV2ZW50LC5mYy1ldmVudDpob3Zlcntjb2xvcjojZmZmO3RleHQtZGVjb3JhdGlvbjpub25lfS5mYy1ub3QtYWxsb3dlZCwuZmMtbm90LWFsbG93ZWQgLmZjLWV2ZW50e2N1cnNvcjpub3QtYWxsb3dlZH0uZmMtZXZlbnQgLmZjLWJne3otaW5kZXg6MTtiYWNrZ3JvdW5kOiNmZmY7b3BhY2l0eTouMjV9LmZjLWV2ZW50IC5mYy1jb250ZW50e3Bvc2l0aW9uOnJlbGF0aXZlO3otaW5kZXg6Mn0uZmMtZXZlbnQgLmZjLXJlc2l6ZXJ7cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDo0O2Rpc3BsYXk6bm9uZX0uZmMtZXZlbnQuZmMtYWxsb3ctbW91c2UtcmVzaXplIC5mYy1yZXNpemVyLC5mYy1ldmVudC5mYy1zZWxlY3RlZCAuZmMtcmVzaXplcntkaXNwbGF5OmJsb2NrfS5mYy1ldmVudC5mYy1zZWxlY3RlZCAuZmMtcmVzaXplcjpiZWZvcmV7Y29udGVudDpcIlwiO3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6OTk5OTt0b3A6NTAlO2xlZnQ6NTAlO3dpZHRoOjQwcHg7aGVpZ2h0OjQwcHg7bWFyZ2luLWxlZnQ6LTIwcHg7bWFyZ2luLXRvcDotMjBweH0uZmMtZXZlbnQuZmMtc2VsZWN0ZWR7ei1pbmRleDo5OTk5IWltcG9ydGFudDtib3gtc2hhZG93OjAgMnB4IDVweCByZ2JhKDAsMCwwLC4yKX0uZmMtZXZlbnQuZmMtc2VsZWN0ZWQuZmMtZHJhZ2dpbmd7Ym94LXNoYWRvdzowIDJweCA3cHggcmdiYSgwLDAsMCwuMyl9LmZjLWgtZXZlbnQuZmMtc2VsZWN0ZWQ6YmVmb3Jle2NvbnRlbnQ6XCJcIjtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjM7dG9wOi0xMHB4O2JvdHRvbTotMTBweDtsZWZ0OjA7cmlnaHQ6MH0uZmMtbHRyIC5mYy1oLWV2ZW50LmZjLW5vdC1zdGFydCwuZmMtcnRsIC5mYy1oLWV2ZW50LmZjLW5vdC1lbmR7bWFyZ2luLWxlZnQ6MDtib3JkZXItbGVmdC13aWR0aDowO3BhZGRpbmctbGVmdDoxcHg7Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czowO2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6MH0uZmMtbHRyIC5mYy1oLWV2ZW50LmZjLW5vdC1lbmQsLmZjLXJ0bCAuZmMtaC1ldmVudC5mYy1ub3Qtc3RhcnR7bWFyZ2luLXJpZ2h0OjA7Ym9yZGVyLXJpZ2h0LXdpZHRoOjA7cGFkZGluZy1yaWdodDoxcHg7Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6MDtib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czowfS5mYy1sdHIgLmZjLWgtZXZlbnQgLmZjLXN0YXJ0LXJlc2l6ZXIsLmZjLXJ0bCAuZmMtaC1ldmVudCAuZmMtZW5kLXJlc2l6ZXJ7Y3Vyc29yOnctcmVzaXplO2xlZnQ6LTFweH0uZmMtbHRyIC5mYy1oLWV2ZW50IC5mYy1lbmQtcmVzaXplciwuZmMtcnRsIC5mYy1oLWV2ZW50IC5mYy1zdGFydC1yZXNpemVye2N1cnNvcjplLXJlc2l6ZTtyaWdodDotMXB4fS5mYy1oLWV2ZW50LmZjLWFsbG93LW1vdXNlLXJlc2l6ZSAuZmMtcmVzaXplcnt3aWR0aDo3cHg7dG9wOi0xcHg7Ym90dG9tOi0xcHh9LmZjLWgtZXZlbnQuZmMtc2VsZWN0ZWQgLmZjLXJlc2l6ZXJ7Ym9yZGVyLXJhZGl1czo0cHg7Ym9yZGVyLXdpZHRoOjFweDt3aWR0aDo2cHg7aGVpZ2h0OjZweDtib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLWNvbG9yOmluaGVyaXQ7YmFja2dyb3VuZDojZmZmO3RvcDo1MCU7bWFyZ2luLXRvcDotNHB4fS5mYy1sdHIgLmZjLWgtZXZlbnQuZmMtc2VsZWN0ZWQgLmZjLXN0YXJ0LXJlc2l6ZXIsLmZjLXJ0bCAuZmMtaC1ldmVudC5mYy1zZWxlY3RlZCAuZmMtZW5kLXJlc2l6ZXJ7bWFyZ2luLWxlZnQ6LTRweH0uZmMtbHRyIC5mYy1oLWV2ZW50LmZjLXNlbGVjdGVkIC5mYy1lbmQtcmVzaXplciwuZmMtcnRsIC5mYy1oLWV2ZW50LmZjLXNlbGVjdGVkIC5mYy1zdGFydC1yZXNpemVye21hcmdpbi1yaWdodDotNHB4fS5mYy1kYXktZ3JpZC1ldmVudHttYXJnaW46MXB4IDJweCAwO3BhZGRpbmc6MCAxcHh9dHI6Zmlyc3QtY2hpbGQ+dGQ+LmZjLWRheS1ncmlkLWV2ZW50e21hcmdpbi10b3A6MnB4fS5mYy1kYXktZ3JpZC1ldmVudC5mYy1zZWxlY3RlZDphZnRlcntjb250ZW50OlwiXCI7cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoxO3RvcDotMXB4O3JpZ2h0Oi0xcHg7Ym90dG9tOi0xcHg7bGVmdDotMXB4O2JhY2tncm91bmQ6IzAwMDtvcGFjaXR5Oi4yNX0uZmMtZGF5LWdyaWQtZXZlbnQgLmZjLWNvbnRlbnR7d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbn0uZmMtZGF5LWdyaWQtZXZlbnQgLmZjLXRpbWV7Zm9udC13ZWlnaHQ6NzAwfS5mYy1sdHIgLmZjLWRheS1ncmlkLWV2ZW50LmZjLWFsbG93LW1vdXNlLXJlc2l6ZSAuZmMtc3RhcnQtcmVzaXplciwuZmMtcnRsIC5mYy1kYXktZ3JpZC1ldmVudC5mYy1hbGxvdy1tb3VzZS1yZXNpemUgLmZjLWVuZC1yZXNpemVye21hcmdpbi1sZWZ0Oi0ycHh9LmZjLWx0ciAuZmMtZGF5LWdyaWQtZXZlbnQuZmMtYWxsb3ctbW91c2UtcmVzaXplIC5mYy1lbmQtcmVzaXplciwuZmMtcnRsIC5mYy1kYXktZ3JpZC1ldmVudC5mYy1hbGxvdy1tb3VzZS1yZXNpemUgLmZjLXN0YXJ0LXJlc2l6ZXJ7bWFyZ2luLXJpZ2h0Oi0ycHh9YS5mYy1tb3Jle21hcmdpbjoxcHggM3B4O2ZvbnQtc2l6ZTouODVlbTtjdXJzb3I6cG9pbnRlcjt0ZXh0LWRlY29yYXRpb246bm9uZX1hLmZjLW1vcmU6aG92ZXJ7dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZX0uZmMuZmMtYm9vdHN0cmFwMyBhLC51aS13aWRnZXQgLmZjLWV2ZW50e3RleHQtZGVjb3JhdGlvbjpub25lfS5mYy1saW1pdGVke2Rpc3BsYXk6bm9uZX0uZmMtaWNvbiwuZmMtdG9vbGJhciAuZmMtY2VudGVye2Rpc3BsYXk6aW5saW5lLWJsb2NrfS5mYy1kYXktZ3JpZCAuZmMtcm93e3otaW5kZXg6MX0uZmMtbW9yZS1wb3BvdmVye3otaW5kZXg6Mjt3aWR0aDoyMjBweH0uZmMtbW9yZS1wb3BvdmVyIC5mYy1ldmVudC1jb250YWluZXJ7cGFkZGluZzoxMHB4fS5mYy1ib290c3RyYXAzIC5mYy1wb3BvdmVyIC5wYW5lbC1ib2R5LC5mYy1ib290c3RyYXA0IC5mYy1wb3BvdmVyIC5jYXJkLWJvZHl7cGFkZGluZzowfS5mYy1ub3ctaW5kaWNhdG9ye3Bvc2l0aW9uOmFic29sdXRlO2JvcmRlcjowIHNvbGlkIHJlZH0uZmMtYm9vdHN0cmFwMyAuZmMtdG9kYXkuYWxlcnQsLmZjLWJvb3RzdHJhcDQgLmZjLXRvZGF5LmFsZXJ0e2JvcmRlci1yYWRpdXM6MH0uZmMtdW5zZWxlY3RhYmxley13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTstbW96LXVzZXItc2VsZWN0Om5vbmU7LW1zLXVzZXItc2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZTstd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6dHJhbnNwYXJlbnR9LmZjLXVudGhlbWVkIC5mYy1jb250ZW50LC5mYy11bnRoZW1lZCAuZmMtZGl2aWRlciwuZmMtdW50aGVtZWQgLmZjLWxpc3QtaGVhZGluZyB0ZCwuZmMtdW50aGVtZWQgLmZjLWxpc3QtdmlldywuZmMtdW50aGVtZWQgLmZjLXBvcG92ZXIsLmZjLXVudGhlbWVkIC5mYy1yb3csLmZjLXVudGhlbWVkIHRib2R5LC5mYy11bnRoZW1lZCB0ZCwuZmMtdW50aGVtZWQgdGgsLmZjLXVudGhlbWVkIHRoZWFke2JvcmRlci1jb2xvcjojZGRkfS5mYy11bnRoZW1lZCAuZmMtcG9wb3ZlcntiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7Ym9yZGVyLXdpZHRoOjFweDtib3JkZXItc3R5bGU6c29saWR9LmZjLXVudGhlbWVkIC5mYy1kaXZpZGVyLC5mYy11bnRoZW1lZCAuZmMtbGlzdC1oZWFkaW5nIHRkLC5mYy11bnRoZW1lZCAuZmMtcG9wb3ZlciAuZmMtaGVhZGVye2JhY2tncm91bmQ6I2VlZX0uZmMtdW50aGVtZWQgdGQuZmMtdG9kYXl7YmFja2dyb3VuZDojZmNmOGUzfS5mYy11bnRoZW1lZCAuZmMtZGlzYWJsZWQtZGF5e2JhY2tncm91bmQ6I2Q3ZDdkNztvcGFjaXR5Oi4zfS5mYy1pY29ue2hlaWdodDoxZW07bGluZS1oZWlnaHQ6MWVtO2ZvbnQtc2l6ZToxZW07Zm9udC1mYW1pbHk6XCJDb3VyaWVyIE5ld1wiLENvdXJpZXIsbW9ub3NwYWNlOy13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTstbW96LXVzZXItc2VsZWN0Om5vbmU7LW1zLXVzZXItc2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZX0uZmMtaWNvbjphZnRlcntwb3NpdGlvbjpyZWxhdGl2ZX0uZmMtaWNvbi1sZWZ0LXNpbmdsZS1hcnJvdzphZnRlcntjb250ZW50OlwiXFwyMDM5XCI7Zm9udC13ZWlnaHQ6NzAwO2ZvbnQtc2l6ZToyMDAlO3RvcDotNyV9LmZjLWljb24tcmlnaHQtc2luZ2xlLWFycm93OmFmdGVye2NvbnRlbnQ6XCJcXDIwM0FcIjtmb250LXdlaWdodDo3MDA7Zm9udC1zaXplOjIwMCU7dG9wOi03JX0uZmMtaWNvbi1sZWZ0LWRvdWJsZS1hcnJvdzphZnRlcntjb250ZW50OlwiXFxBQlwiO2ZvbnQtc2l6ZToxNjAlO3RvcDotNyV9LmZjLWljb24tcmlnaHQtZG91YmxlLWFycm93OmFmdGVye2NvbnRlbnQ6XCJcXEJCXCI7Zm9udC1zaXplOjE2MCU7dG9wOi03JX0uZmMtaWNvbi1sZWZ0LXRyaWFuZ2xlOmFmdGVye2NvbnRlbnQ6XCJcXDI1QzRcIjtmb250LXNpemU6MTI1JTt0b3A6MyV9LmZjLWljb24tcmlnaHQtdHJpYW5nbGU6YWZ0ZXJ7Y29udGVudDpcIlxcMjVCQVwiO2ZvbnQtc2l6ZToxMjUlO3RvcDozJX0uZmMtaWNvbi1kb3duLXRyaWFuZ2xlOmFmdGVye2NvbnRlbnQ6XCJcXDI1QkNcIjtmb250LXNpemU6MTI1JTt0b3A6MiV9LmZjLWljb24teDphZnRlcntjb250ZW50OlwiXFxEN1wiO2ZvbnQtc2l6ZToyMDAlO3RvcDo2JX0uZmMtdW50aGVtZWQgLmZjLXBvcG92ZXIgLmZjLWhlYWRlciAuZmMtY2xvc2V7Y29sb3I6IzY2Njtmb250LXNpemU6LjllbTttYXJnaW4tdG9wOjJweH0uZmMtdW50aGVtZWQgLmZjLWxpc3QtaXRlbTpob3ZlciB0ZHtiYWNrZ3JvdW5kLWNvbG9yOiNmNWY1ZjV9LnVpLXdpZGdldCAuZmMtZGlzYWJsZWQtZGF5e2JhY2tncm91bmQtaW1hZ2U6bm9uZX0uZmMtYm9vdHN0cmFwMyAuZmMtdGltZS1ncmlkIC5mYy1zbGF0cyB0YWJsZSwuZmMtYm9vdHN0cmFwNCAuZmMtdGltZS1ncmlkIC5mYy1zbGF0cyB0YWJsZSwuZmMtdGltZS1ncmlkIC5mYy1zbGF0cyAudWktd2lkZ2V0LWNvbnRlbnR7YmFja2dyb3VuZDowIDB9LmZjLXBvcG92ZXI+LnVpLXdpZGdldC1oZWFkZXIrLnVpLXdpZGdldC1jb250ZW50e2JvcmRlci10b3A6MH0uZmMtYm9vdHN0cmFwMyBoci5mYy1kaXZpZGVyLC5mYy1ib290c3RyYXA0IGhyLmZjLWRpdmlkZXJ7Ym9yZGVyLWNvbG9yOmluaGVyaXR9LnVpLXdpZGdldCAuZmMtZXZlbnR7Y29sb3I6I2ZmZjtmb250LXdlaWdodDo0MDB9LnVpLXdpZGdldCB0ZC5mYy1heGlze2ZvbnQtd2VpZ2h0OjQwMH0uZmMuZmMtYm9vdHN0cmFwMyBhW2RhdGEtZ290b106aG92ZXJ7dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZX0uZmMuZmMtYm9vdHN0cmFwNCBhe3RleHQtZGVjb3JhdGlvbjpub25lfS5mYy5mYy1ib290c3RyYXA0IGFbZGF0YS1nb3RvXTpob3Zlcnt0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lfS5mYy1ib290c3RyYXA0IGEuZmMtZXZlbnQ6bm90KFtocmVmXSk6bm90KFt0YWJpbmRleF0pe2NvbG9yOiNmZmZ9LmZjLWJvb3RzdHJhcDQgLmZjLXBvcG92ZXIuY2FyZHtwb3NpdGlvbjphYnNvbHV0ZX0uZmMtdG9vbGJhci5mYy1oZWFkZXItdG9vbGJhcnttYXJnaW4tYm90dG9tOjFlbX0uZmMtdG9vbGJhci5mYy1mb290ZXItdG9vbGJhcnttYXJnaW4tdG9wOjFlbX0uZmMtdG9vbGJhciAuZmMtbGVmdHtmbG9hdDpsZWZ0fS5mYy10b29sYmFyIC5mYy1yaWdodHtmbG9hdDpyaWdodH0uZmMgLmZjLXRvb2xiYXI+Kj4qe2Zsb2F0OmxlZnQ7bWFyZ2luLWxlZnQ6Ljc1ZW19LmZjIC5mYy10b29sYmFyPio+OmZpcnN0LWNoaWxke21hcmdpbi1sZWZ0OjB9LmZjLXRvb2xiYXIgaDJ7bWFyZ2luOjB9LmZjLXRvb2xiYXIgYnV0dG9ue3Bvc2l0aW9uOnJlbGF0aXZlfS5mYy10b29sYmFyIC5mYy1zdGF0ZS1ob3ZlciwuZmMtdG9vbGJhciAudWktc3RhdGUtaG92ZXJ7ei1pbmRleDoyfS5mYy10b29sYmFyIC5mYy1zdGF0ZS1kb3due3otaW5kZXg6M30uZmMtdG9vbGJhciAuZmMtc3RhdGUtYWN0aXZlLC5mYy10b29sYmFyIC51aS1zdGF0ZS1hY3RpdmV7ei1pbmRleDo0fS5mYy10b29sYmFyIGJ1dHRvbjpmb2N1c3t6LWluZGV4OjV9LmZjLXZpZXctY29udGFpbmVyICosLmZjLXZpZXctY29udGFpbmVyIDphZnRlciwuZmMtdmlldy1jb250YWluZXIgOmJlZm9yZXstd2Via2l0LWJveC1zaXppbmc6Y29udGVudC1ib3g7LW1vei1ib3gtc2l6aW5nOmNvbnRlbnQtYm94O2JveC1zaXppbmc6Y29udGVudC1ib3h9LmZjLXZpZXcsLmZjLXZpZXc+dGFibGV7cG9zaXRpb246cmVsYXRpdmU7ei1pbmRleDoxfS5mYy1iYXNpY0RheS12aWV3IC5mYy1jb250ZW50LXNrZWxldG9uLC5mYy1iYXNpY1dlZWstdmlldyAuZmMtY29udGVudC1za2VsZXRvbntwYWRkaW5nLWJvdHRvbToxZW19LmZjLWJhc2ljLXZpZXcgLmZjLWJvZHkgLmZjLXJvd3ttaW4taGVpZ2h0OjRlbX0uZmMtcm93LmZjLXJpZ2lkIC5mYy1jb250ZW50LXNrZWxldG9ue3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2xlZnQ6MDtyaWdodDowfS5mYy1kYXktdG9wLmZjLW90aGVyLW1vbnRoe29wYWNpdHk6LjN9LmZjLWJhc2ljLXZpZXcgLmZjLWRheS1udW1iZXIsLmZjLWJhc2ljLXZpZXcgLmZjLXdlZWstbnVtYmVye3BhZGRpbmc6MnB4fS5mYy1iYXNpYy12aWV3IHRoLmZjLWRheS1udW1iZXIsLmZjLWJhc2ljLXZpZXcgdGguZmMtd2Vlay1udW1iZXJ7cGFkZGluZzowIDJweH0uZmMtbHRyIC5mYy1iYXNpYy12aWV3IC5mYy1kYXktdG9wIC5mYy1kYXktbnVtYmVye2Zsb2F0OnJpZ2h0fS5mYy1ydGwgLmZjLWJhc2ljLXZpZXcgLmZjLWRheS10b3AgLmZjLWRheS1udW1iZXJ7ZmxvYXQ6bGVmdH0uZmMtbHRyIC5mYy1iYXNpYy12aWV3IC5mYy1kYXktdG9wIC5mYy13ZWVrLW51bWJlcntmbG9hdDpsZWZ0O2JvcmRlci1yYWRpdXM6MCAwIDNweH0uZmMtcnRsIC5mYy1iYXNpYy12aWV3IC5mYy1kYXktdG9wIC5mYy13ZWVrLW51bWJlcntmbG9hdDpyaWdodDtib3JkZXItcmFkaXVzOjAgMCAwIDNweH0uZmMtYmFzaWMtdmlldyAuZmMtZGF5LXRvcCAuZmMtd2Vlay1udW1iZXJ7bWluLXdpZHRoOjEuNWVtO3RleHQtYWxpZ246Y2VudGVyO2JhY2tncm91bmQtY29sb3I6I2YyZjJmMjtjb2xvcjpncmV5fS5mYy1iYXNpYy12aWV3IHRkLmZjLXdlZWstbnVtYmVyPip7ZGlzcGxheTppbmxpbmUtYmxvY2s7bWluLXdpZHRoOjEuMjVlbX0uZmMtYWdlbmRhLXZpZXcgLmZjLWRheS1ncmlke3Bvc2l0aW9uOnJlbGF0aXZlO3otaW5kZXg6Mn0uZmMtYWdlbmRhLXZpZXcgLmZjLWRheS1ncmlkIC5mYy1yb3d7bWluLWhlaWdodDozZW19LmZjLWFnZW5kYS12aWV3IC5mYy1kYXktZ3JpZCAuZmMtcm93IC5mYy1jb250ZW50LXNrZWxldG9ue3BhZGRpbmctYm90dG9tOjFlbX0uZmMgLmZjLWF4aXN7dmVydGljYWwtYWxpZ246bWlkZGxlO3BhZGRpbmc6MCA0cHg7d2hpdGUtc3BhY2U6bm93cmFwfS5mYy1sdHIgLmZjLWF4aXN7dGV4dC1hbGlnbjpyaWdodH0uZmMtcnRsIC5mYy1heGlze3RleHQtYWxpZ246bGVmdH0uZmMtdGltZS1ncmlkLC5mYy10aW1lLWdyaWQtY29udGFpbmVye3Bvc2l0aW9uOnJlbGF0aXZlO3otaW5kZXg6MX0uZmMtdGltZS1ncmlke21pbi1oZWlnaHQ6MTAwJX0uZmMtdGltZS1ncmlkIHRhYmxle2JvcmRlcjowIGhpZGRlbiB0cmFuc3BhcmVudH0uZmMtdGltZS1ncmlkPi5mYy1iZ3t6LWluZGV4OjF9LmZjLXRpbWUtZ3JpZCAuZmMtc2xhdHMsLmZjLXRpbWUtZ3JpZD5ocntwb3NpdGlvbjpyZWxhdGl2ZTt6LWluZGV4OjJ9LmZjLXRpbWUtZ3JpZCAuZmMtY29udGVudC1jb2x7cG9zaXRpb246cmVsYXRpdmV9LmZjLXRpbWUtZ3JpZCAuZmMtY29udGVudC1za2VsZXRvbntwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjM7dG9wOjA7bGVmdDowO3JpZ2h0OjB9LmZjLXRpbWUtZ3JpZCAuZmMtYnVzaW5lc3MtY29udGFpbmVye3Bvc2l0aW9uOnJlbGF0aXZlO3otaW5kZXg6MX0uZmMtdGltZS1ncmlkIC5mYy1iZ2V2ZW50LWNvbnRhaW5lcntwb3NpdGlvbjpyZWxhdGl2ZTt6LWluZGV4OjJ9LmZjLXRpbWUtZ3JpZCAuZmMtaGlnaGxpZ2h0LWNvbnRhaW5lcnt6LWluZGV4OjM7cG9zaXRpb246cmVsYXRpdmV9LmZjLXRpbWUtZ3JpZCAuZmMtZXZlbnQtY29udGFpbmVye3Bvc2l0aW9uOnJlbGF0aXZlO3otaW5kZXg6NH0uZmMtdGltZS1ncmlkIC5mYy1ub3ctaW5kaWNhdG9yLWxpbmV7ei1pbmRleDo1fS5mYy10aW1lLWdyaWQgLmZjLWhlbHBlci1jb250YWluZXJ7cG9zaXRpb246cmVsYXRpdmU7ei1pbmRleDo2fS5mYy10aW1lLWdyaWQgLmZjLXNsYXRzIHRke2hlaWdodDoxLjVlbTtib3JkZXItYm90dG9tOjB9LmZjLXRpbWUtZ3JpZCAuZmMtc2xhdHMgLmZjLW1pbm9yIHRke2JvcmRlci10b3Atc3R5bGU6ZG90dGVkfS5mYy10aW1lLWdyaWQgLmZjLWhpZ2hsaWdodHtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjA7cmlnaHQ6MH0uZmMtbHRyIC5mYy10aW1lLWdyaWQgLmZjLWV2ZW50LWNvbnRhaW5lcnttYXJnaW46MCAyLjUlIDAgMnB4fS5mYy1ydGwgLmZjLXRpbWUtZ3JpZCAuZmMtZXZlbnQtY29udGFpbmVye21hcmdpbjowIDJweCAwIDIuNSV9LmZjLXRpbWUtZ3JpZCAuZmMtYmdldmVudCwuZmMtdGltZS1ncmlkIC5mYy1ldmVudHtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjF9LmZjLXRpbWUtZ3JpZCAuZmMtYmdldmVudHtsZWZ0OjA7cmlnaHQ6MH0uZmMtdi1ldmVudC5mYy1ub3Qtc3RhcnR7Ym9yZGVyLXRvcC13aWR0aDowO3BhZGRpbmctdG9wOjFweDtib3JkZXItdG9wLWxlZnQtcmFkaXVzOjA7Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6MH0uZmMtdi1ldmVudC5mYy1ub3QtZW5ke2JvcmRlci1ib3R0b20td2lkdGg6MDtwYWRkaW5nLWJvdHRvbToxcHg7Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czowO2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOjB9LmZjLXRpbWUtZ3JpZC1ldmVudC5mYy1zZWxlY3RlZHtvdmVyZmxvdzp2aXNpYmxlfS5mYy10aW1lLWdyaWQtZXZlbnQuZmMtc2VsZWN0ZWQgLmZjLWJne2Rpc3BsYXk6bm9uZX0uZmMtdGltZS1ncmlkLWV2ZW50IC5mYy1jb250ZW50e292ZXJmbG93OmhpZGRlbn0uZmMtdGltZS1ncmlkLWV2ZW50IC5mYy10aW1lLC5mYy10aW1lLWdyaWQtZXZlbnQgLmZjLXRpdGxle3BhZGRpbmc6MCAxcHh9LmZjLXRpbWUtZ3JpZC1ldmVudCAuZmMtdGltZXtmb250LXNpemU6Ljg1ZW07d2hpdGUtc3BhY2U6bm93cmFwfS5mYy10aW1lLWdyaWQtZXZlbnQuZmMtc2hvcnQgLmZjLWNvbnRlbnR7d2hpdGUtc3BhY2U6bm93cmFwfS5mYy10aW1lLWdyaWQtZXZlbnQuZmMtc2hvcnQgLmZjLXRpbWUsLmZjLXRpbWUtZ3JpZC1ldmVudC5mYy1zaG9ydCAuZmMtdGl0bGV7ZGlzcGxheTppbmxpbmUtYmxvY2s7dmVydGljYWwtYWxpZ246dG9wfS5mYy10aW1lLWdyaWQtZXZlbnQuZmMtc2hvcnQgLmZjLXRpbWUgc3BhbntkaXNwbGF5Om5vbmV9LmZjLXRpbWUtZ3JpZC1ldmVudC5mYy1zaG9ydCAuZmMtdGltZTpiZWZvcmV7Y29udGVudDphdHRyKGRhdGEtc3RhcnQpfS5mYy10aW1lLWdyaWQtZXZlbnQuZmMtc2hvcnQgLmZjLXRpbWU6YWZ0ZXJ7Y29udGVudDpcIlxcQTAtXFxBMFwifS5mYy10aW1lLWdyaWQtZXZlbnQuZmMtc2hvcnQgLmZjLXRpdGxle2ZvbnQtc2l6ZTouODVlbTtwYWRkaW5nOjB9LmZjLXRpbWUtZ3JpZC1ldmVudC5mYy1hbGxvdy1tb3VzZS1yZXNpemUgLmZjLXJlc2l6ZXJ7bGVmdDowO3JpZ2h0OjA7Ym90dG9tOjA7aGVpZ2h0OjhweDtvdmVyZmxvdzpoaWRkZW47bGluZS1oZWlnaHQ6OHB4O2ZvbnQtc2l6ZToxMXB4O2ZvbnQtZmFtaWx5Om1vbm9zcGFjZTt0ZXh0LWFsaWduOmNlbnRlcjtjdXJzb3I6cy1yZXNpemV9LmZjLXRpbWUtZ3JpZC1ldmVudC5mYy1hbGxvdy1tb3VzZS1yZXNpemUgLmZjLXJlc2l6ZXI6YWZ0ZXJ7Y29udGVudDpcIj1cIn0uZmMtdGltZS1ncmlkLWV2ZW50LmZjLXNlbGVjdGVkIC5mYy1yZXNpemVye2JvcmRlci1yYWRpdXM6NXB4O2JvcmRlci13aWR0aDoxcHg7d2lkdGg6OHB4O2hlaWdodDo4cHg7Ym9yZGVyLXN0eWxlOnNvbGlkO2JvcmRlci1jb2xvcjppbmhlcml0O2JhY2tncm91bmQ6I2ZmZjtsZWZ0OjUwJTttYXJnaW4tbGVmdDotNXB4O2JvdHRvbTotNXB4fS5mYy10aW1lLWdyaWQgLmZjLW5vdy1pbmRpY2F0b3ItbGluZXtib3JkZXItdG9wLXdpZHRoOjFweDtsZWZ0OjA7cmlnaHQ6MH0uZmMtdGltZS1ncmlkIC5mYy1ub3ctaW5kaWNhdG9yLWFycm93e21hcmdpbi10b3A6LTVweH0uZmMtbHRyIC5mYy10aW1lLWdyaWQgLmZjLW5vdy1pbmRpY2F0b3ItYXJyb3d7bGVmdDowO2JvcmRlci13aWR0aDo1cHggMCA1cHggNnB4O2JvcmRlci10b3AtY29sb3I6dHJhbnNwYXJlbnQ7Ym9yZGVyLWJvdHRvbS1jb2xvcjp0cmFuc3BhcmVudH0uZmMtcnRsIC5mYy10aW1lLWdyaWQgLmZjLW5vdy1pbmRpY2F0b3ItYXJyb3d7cmlnaHQ6MDtib3JkZXItd2lkdGg6NXB4IDZweCA1cHggMDtib3JkZXItdG9wLWNvbG9yOnRyYW5zcGFyZW50O2JvcmRlci1ib3R0b20tY29sb3I6dHJhbnNwYXJlbnR9LmZjLWV2ZW50LWRvdHtkaXNwbGF5OmlubGluZS1ibG9jazt3aWR0aDoxMHB4O2hlaWdodDoxMHB4O2JvcmRlci1yYWRpdXM6NXB4fS5mYy1ydGwgLmZjLWxpc3Qtdmlld3tkaXJlY3Rpb246cnRsfS5mYy1saXN0LXZpZXd7Ym9yZGVyLXdpZHRoOjFweDtib3JkZXItc3R5bGU6c29saWR9LmZjIC5mYy1saXN0LXRhYmxle3RhYmxlLWxheW91dDphdXRvfS5mYy1saXN0LXRhYmxlIHRke2JvcmRlci13aWR0aDoxcHggMCAwO3BhZGRpbmc6OHB4IDE0cHh9LmZjLWxpc3QtdGFibGUgdHI6Zmlyc3QtY2hpbGQgdGR7Ym9yZGVyLXRvcC13aWR0aDowfS5mYy1saXN0LWhlYWRpbmd7Ym9yZGVyLWJvdHRvbS13aWR0aDoxcHh9LmZjLWxpc3QtaGVhZGluZyB0ZHtmb250LXdlaWdodDo3MDB9LmZjLWx0ciAuZmMtbGlzdC1oZWFkaW5nLW1haW57ZmxvYXQ6bGVmdH0uZmMtbHRyIC5mYy1saXN0LWhlYWRpbmctYWx0LC5mYy1ydGwgLmZjLWxpc3QtaGVhZGluZy1tYWlue2Zsb2F0OnJpZ2h0fS5mYy1ydGwgLmZjLWxpc3QtaGVhZGluZy1hbHR7ZmxvYXQ6bGVmdH0uZmMtbGlzdC1pdGVtLmZjLWhhcy11cmx7Y3Vyc29yOnBvaW50ZXJ9LmZjLWxpc3QtaXRlbS1tYXJrZXIsLmZjLWxpc3QtaXRlbS10aW1le3doaXRlLXNwYWNlOm5vd3JhcDt3aWR0aDoxcHh9LmZjLWx0ciAuZmMtbGlzdC1pdGVtLW1hcmtlcntwYWRkaW5nLXJpZ2h0OjB9LmZjLXJ0bCAuZmMtbGlzdC1pdGVtLW1hcmtlcntwYWRkaW5nLWxlZnQ6MH0uZmMtbGlzdC1pdGVtLXRpdGxlIGF7dGV4dC1kZWNvcmF0aW9uOm5vbmU7Y29sb3I6aW5oZXJpdH0uZmMtbGlzdC1pdGVtLXRpdGxlIGFbaHJlZl06aG92ZXJ7dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZX0uZmMtbGlzdC1lbXB0eS13cmFwMntwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtsZWZ0OjA7cmlnaHQ6MDtib3R0b206MH0uZmMtbGlzdC1lbXB0eS13cmFwMXt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO2Rpc3BsYXk6dGFibGV9LmZjLWxpc3QtZW1wdHl7ZGlzcGxheTp0YWJsZS1jZWxsO3ZlcnRpY2FsLWFsaWduOm1pZGRsZTt0ZXh0LWFsaWduOmNlbnRlcn0uZmMtdW50aGVtZWQgLmZjLWxpc3QtZW1wdHl7YmFja2dyb3VuZC1jb2xvcjojZWVlfVxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL25vZGVfbW9kdWxlcy9mdWxsY2FsZW5kYXIvZGlzdC9mdWxsY2FsZW5kYXIubWluLmNzcyJdLCJzb3VyY2VSb290IjoiIn0=*/ \ No newline at end of file + */.fc button,.fc table,body .fc{font-size:1em}.fc-bg,.fc-row .fc-bgevent-skeleton,.fc-row .fc-highlight-skeleton{bottom:0}.fc-icon,.fc-unselectable{-webkit-touch-callout:none;-khtml-user-select:none}.fc{direction:ltr;text-align:left}.fc-rtl{text-align:right}.fc-basic-view td.fc-week-number,.fc-icon,.fc-toolbar,.fc th{text-align:center}.fc-highlight{background:#bce8f1;opacity:.3}.fc-bgevent{background:#8fdf82;opacity:.3}.fc-nonbusiness{background:#d7d7d7}.fc button{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;margin:0;height:2.1em;padding:0 .6em;white-space:nowrap;cursor:pointer}.fc button::-moz-focus-inner{margin:0;padding:0}.fc-state-default{border:1px solid;background-color:#f5f5f5;background-image:-moz-linear-gradient(top,#fff,#e6e6e6);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fff),to(#e6e6e6));background-image:-webkit-linear-gradient(top,#fff,#e6e6e6);background-image:-o-linear-gradient(top,#fff,#e6e6e6);background-image:linear-gradient(180deg,#fff,#e6e6e6);background-repeat:repeat-x;border-color:#e6e6e6 #e6e6e6 #bfbfbf;border-color:rgba(0,0,0,.1) rgba(0,0,0,.1) rgba(0,0,0,.25);color:#333;text-shadow:0 1px 1px hsla(0,0%,100%,.75);box-shadow:inset 0 1px 0 hsla(0,0%,100%,.2),0 1px 2px rgba(0,0,0,.05)}.fc-state-default.fc-corner-left{border-top-left-radius:4px;border-bottom-left-radius:4px}.fc-state-default.fc-corner-right{border-top-right-radius:4px;border-bottom-right-radius:4px}.fc button .fc-icon{position:relative;top:-.05em;margin:0 .2em;vertical-align:middle}.fc-state-active,.fc-state-disabled,.fc-state-down,.fc-state-hover{color:#333;background-color:#e6e6e6}.fc-state-hover{color:#333;text-decoration:none;background-position:0 -15px;-webkit-transition:background-position .1s linear;-moz-transition:background-position .1s linear;-o-transition:background-position .1s linear;transition:background-position .1s linear}.fc-state-active,.fc-state-down{background-color:#ccc;background-image:none;box-shadow:inset 0 2px 4px rgba(0,0,0,.15),0 1px 2px rgba(0,0,0,.05)}.fc-state-disabled{cursor:default;background-image:none;opacity:.65;box-shadow:none}.fc-event.fc-draggable,.fc-event[href],.fc-popover .fc-header .fc-close,a[data-goto]{cursor:pointer}.fc-button-group{display:inline-block}.fc .fc-button-group>*{float:left;margin:0 0 0 -1px}.fc .fc-button-group>:first-child{margin-left:0}.fc-popover{position:absolute;box-shadow:0 2px 6px rgba(0,0,0,.15)}.fc-popover .fc-header{padding:2px 4px}.fc-popover .fc-header .fc-title{margin:0 2px}.fc-ltr .fc-popover .fc-header .fc-title,.fc-rtl .fc-popover .fc-header .fc-close{float:left}.fc-ltr .fc-popover .fc-header .fc-close,.fc-rtl .fc-popover .fc-header .fc-title{float:right}.fc-divider{border-style:solid;border-width:1px}hr.fc-divider{height:0;margin:0;padding:0 0 2px;border-width:1px 0}.fc-bg table,.fc-row .fc-bgevent-skeleton table,.fc-row .fc-highlight-skeleton table{height:100%}.fc-clear{clear:both}.fc-bg,.fc-bgevent-skeleton,.fc-helper-skeleton,.fc-highlight-skeleton{position:absolute;top:0;left:0;right:0}.fc table{width:100%;box-sizing:border-box;table-layout:fixed;border-collapse:collapse;border-spacing:0}.fc td,.fc th{border-style:solid;border-width:1px;padding:0;vertical-align:top}.fc td.fc-today{border-style:double}a[data-goto]:hover{text-decoration:underline}.fc .fc-row{border-style:solid;border-width:0}.fc-row table{border-left:0 hidden transparent;border-right:0 hidden transparent;border-bottom:0 hidden transparent}.fc-row:first-child table{border-top:0 hidden transparent}.fc-row{position:relative}.fc-row .fc-bg{z-index:1}.fc-row .fc-bgevent-skeleton td,.fc-row .fc-highlight-skeleton td{border-color:transparent}.fc-row .fc-bgevent-skeleton{z-index:2}.fc-row .fc-highlight-skeleton{z-index:3}.fc-row .fc-content-skeleton{position:relative;z-index:4;padding-bottom:2px}.fc-row .fc-helper-skeleton{z-index:5}.fc .fc-row .fc-content-skeleton table,.fc .fc-row .fc-content-skeleton td,.fc .fc-row .fc-helper-skeleton td{background:0 0;border-color:transparent}.fc-row .fc-content-skeleton td,.fc-row .fc-helper-skeleton td{border-bottom:0}.fc-row .fc-content-skeleton tbody td,.fc-row .fc-helper-skeleton tbody td{border-top:0}.fc-scroller{-webkit-overflow-scrolling:touch}.fc-icon,.fc-row.fc-rigid,.fc-time-grid-event{overflow:hidden}.fc-scroller>.fc-day-grid,.fc-scroller>.fc-time-grid{position:relative;width:100%}.fc-event{position:relative;display:block;font-size:.85em;line-height:1.3;border-radius:3px;border:1px solid #3a87ad}.fc-event,.fc-event-dot{background-color:#3a87ad}.fc-event,.fc-event:hover{color:#fff;text-decoration:none}.fc-not-allowed,.fc-not-allowed .fc-event{cursor:not-allowed}.fc-event .fc-bg{z-index:1;background:#fff;opacity:.25}.fc-event .fc-content{position:relative;z-index:2}.fc-event .fc-resizer{position:absolute;z-index:4;display:none}.fc-event.fc-allow-mouse-resize .fc-resizer,.fc-event.fc-selected .fc-resizer{display:block}.fc-event.fc-selected .fc-resizer:before{content:"";position:absolute;z-index:9999;top:50%;left:50%;width:40px;height:40px;margin-left:-20px;margin-top:-20px}.fc-event.fc-selected{z-index:9999!important;box-shadow:0 2px 5px rgba(0,0,0,.2)}.fc-event.fc-selected.fc-dragging{box-shadow:0 2px 7px rgba(0,0,0,.3)}.fc-h-event.fc-selected:before{content:"";position:absolute;z-index:3;top:-10px;bottom:-10px;left:0;right:0}.fc-ltr .fc-h-event.fc-not-start,.fc-rtl .fc-h-event.fc-not-end{margin-left:0;border-left-width:0;padding-left:1px;border-top-left-radius:0;border-bottom-left-radius:0}.fc-ltr .fc-h-event.fc-not-end,.fc-rtl .fc-h-event.fc-not-start{margin-right:0;border-right-width:0;padding-right:1px;border-top-right-radius:0;border-bottom-right-radius:0}.fc-ltr .fc-h-event .fc-start-resizer,.fc-rtl .fc-h-event .fc-end-resizer{cursor:w-resize;left:-1px}.fc-ltr .fc-h-event .fc-end-resizer,.fc-rtl .fc-h-event .fc-start-resizer{cursor:e-resize;right:-1px}.fc-h-event.fc-allow-mouse-resize .fc-resizer{width:7px;top:-1px;bottom:-1px}.fc-h-event.fc-selected .fc-resizer{border-radius:4px;border-width:1px;width:6px;height:6px;border-style:solid;border-color:inherit;background:#fff;top:50%;margin-top:-4px}.fc-ltr .fc-h-event.fc-selected .fc-start-resizer,.fc-rtl .fc-h-event.fc-selected .fc-end-resizer{margin-left:-4px}.fc-ltr .fc-h-event.fc-selected .fc-end-resizer,.fc-rtl .fc-h-event.fc-selected .fc-start-resizer{margin-right:-4px}.fc-day-grid-event{margin:1px 2px 0;padding:0 1px}tr:first-child>td>.fc-day-grid-event{margin-top:2px}.fc-day-grid-event.fc-selected:after{content:"";position:absolute;z-index:1;top:-1px;right:-1px;bottom:-1px;left:-1px;background:#000;opacity:.25}.fc-day-grid-event .fc-content{white-space:nowrap;overflow:hidden}.fc-day-grid-event .fc-time{font-weight:700}.fc-ltr .fc-day-grid-event.fc-allow-mouse-resize .fc-start-resizer,.fc-rtl .fc-day-grid-event.fc-allow-mouse-resize .fc-end-resizer{margin-left:-2px}.fc-ltr .fc-day-grid-event.fc-allow-mouse-resize .fc-end-resizer,.fc-rtl .fc-day-grid-event.fc-allow-mouse-resize .fc-start-resizer{margin-right:-2px}a.fc-more{margin:1px 3px;font-size:.85em;cursor:pointer;text-decoration:none}a.fc-more:hover{text-decoration:underline}.fc.fc-bootstrap3 a,.ui-widget .fc-event{text-decoration:none}.fc-limited{display:none}.fc-icon,.fc-toolbar .fc-center{display:inline-block}.fc-day-grid .fc-row{z-index:1}.fc-more-popover{z-index:2;width:220px}.fc-more-popover .fc-event-container{padding:10px}.fc-bootstrap3 .fc-popover .panel-body,.fc-bootstrap4 .fc-popover .card-body{padding:0}.fc-now-indicator{position:absolute;border:0 solid red}.fc-bootstrap3 .fc-today.alert,.fc-bootstrap4 .fc-today.alert{border-radius:0}.fc-unselectable{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.fc-unthemed .fc-content,.fc-unthemed .fc-divider,.fc-unthemed .fc-list-heading td,.fc-unthemed .fc-list-view,.fc-unthemed .fc-popover,.fc-unthemed .fc-row,.fc-unthemed tbody,.fc-unthemed td,.fc-unthemed th,.fc-unthemed thead{border-color:#ddd}.fc-unthemed .fc-popover{background-color:#fff;border-width:1px;border-style:solid}.fc-unthemed .fc-divider,.fc-unthemed .fc-list-heading td,.fc-unthemed .fc-popover .fc-header{background:#eee}.fc-unthemed td.fc-today{background:#fcf8e3}.fc-unthemed .fc-disabled-day{background:#d7d7d7;opacity:.3}.fc-icon{height:1em;line-height:1em;font-size:1em;font-family:Courier New,Courier,monospace;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.fc-icon:after{position:relative}.fc-icon-left-single-arrow:after{content:"\2039";font-weight:700;font-size:200%;top:-7%}.fc-icon-right-single-arrow:after{content:"\203A";font-weight:700;font-size:200%;top:-7%}.fc-icon-left-double-arrow:after{content:"\AB";font-size:160%;top:-7%}.fc-icon-right-double-arrow:after{content:"\BB";font-size:160%;top:-7%}.fc-icon-left-triangle:after{content:"\25C4";font-size:125%;top:3%}.fc-icon-right-triangle:after{content:"\25BA";font-size:125%;top:3%}.fc-icon-down-triangle:after{content:"\25BC";font-size:125%;top:2%}.fc-icon-x:after{content:"\D7";font-size:200%;top:6%}.fc-unthemed .fc-popover .fc-header .fc-close{color:#666;font-size:.9em;margin-top:2px}.fc-unthemed .fc-list-item:hover td{background-color:#f5f5f5}.ui-widget .fc-disabled-day{background-image:none}.fc-bootstrap3 .fc-time-grid .fc-slats table,.fc-bootstrap4 .fc-time-grid .fc-slats table,.fc-time-grid .fc-slats .ui-widget-content{background:0 0}.fc-popover>.ui-widget-header+.ui-widget-content{border-top:0}.fc-bootstrap3 hr.fc-divider,.fc-bootstrap4 hr.fc-divider{border-color:inherit}.ui-widget .fc-event{color:#fff;font-weight:400}.ui-widget td.fc-axis{font-weight:400}.fc.fc-bootstrap3 a[data-goto]:hover{text-decoration:underline}.fc.fc-bootstrap4 a{text-decoration:none}.fc.fc-bootstrap4 a[data-goto]:hover{text-decoration:underline}.fc-bootstrap4 a.fc-event:not([href]):not([tabindex]){color:#fff}.fc-bootstrap4 .fc-popover.card{position:absolute}.fc-toolbar.fc-header-toolbar{margin-bottom:1em}.fc-toolbar.fc-footer-toolbar{margin-top:1em}.fc-toolbar .fc-left{float:left}.fc-toolbar .fc-right{float:right}.fc .fc-toolbar>*>*{float:left;margin-left:.75em}.fc .fc-toolbar>*>:first-child{margin-left:0}.fc-toolbar h2{margin:0}.fc-toolbar button{position:relative}.fc-toolbar .fc-state-hover,.fc-toolbar .ui-state-hover{z-index:2}.fc-toolbar .fc-state-down{z-index:3}.fc-toolbar .fc-state-active,.fc-toolbar .ui-state-active{z-index:4}.fc-toolbar button:focus{z-index:5}.fc-view-container *,.fc-view-container :after,.fc-view-container :before{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}.fc-view,.fc-view>table{position:relative;z-index:1}.fc-basicDay-view .fc-content-skeleton,.fc-basicWeek-view .fc-content-skeleton{padding-bottom:1em}.fc-basic-view .fc-body .fc-row{min-height:4em}.fc-row.fc-rigid .fc-content-skeleton{position:absolute;top:0;left:0;right:0}.fc-day-top.fc-other-month{opacity:.3}.fc-basic-view .fc-day-number,.fc-basic-view .fc-week-number{padding:2px}.fc-basic-view th.fc-day-number,.fc-basic-view th.fc-week-number{padding:0 2px}.fc-ltr .fc-basic-view .fc-day-top .fc-day-number{float:right}.fc-rtl .fc-basic-view .fc-day-top .fc-day-number{float:left}.fc-ltr .fc-basic-view .fc-day-top .fc-week-number{float:left;border-radius:0 0 3px}.fc-rtl .fc-basic-view .fc-day-top .fc-week-number{float:right;border-radius:0 0 0 3px}.fc-basic-view .fc-day-top .fc-week-number{min-width:1.5em;text-align:center;background-color:#f2f2f2;color:grey}.fc-basic-view td.fc-week-number>*{display:inline-block;min-width:1.25em}.fc-agenda-view .fc-day-grid{position:relative;z-index:2}.fc-agenda-view .fc-day-grid .fc-row{min-height:3em}.fc-agenda-view .fc-day-grid .fc-row .fc-content-skeleton{padding-bottom:1em}.fc .fc-axis{vertical-align:middle;padding:0 4px;white-space:nowrap}.fc-ltr .fc-axis{text-align:right}.fc-rtl .fc-axis{text-align:left}.fc-time-grid,.fc-time-grid-container{position:relative;z-index:1}.fc-time-grid{min-height:100%}.fc-time-grid table{border:0 hidden transparent}.fc-time-grid>.fc-bg{z-index:1}.fc-time-grid .fc-slats,.fc-time-grid>hr{position:relative;z-index:2}.fc-time-grid .fc-content-col{position:relative}.fc-time-grid .fc-content-skeleton{position:absolute;z-index:3;top:0;left:0;right:0}.fc-time-grid .fc-business-container{position:relative;z-index:1}.fc-time-grid .fc-bgevent-container{position:relative;z-index:2}.fc-time-grid .fc-highlight-container{z-index:3;position:relative}.fc-time-grid .fc-event-container{position:relative;z-index:4}.fc-time-grid .fc-now-indicator-line{z-index:5}.fc-time-grid .fc-helper-container{position:relative;z-index:6}.fc-time-grid .fc-slats td{height:1.5em;border-bottom:0}.fc-time-grid .fc-slats .fc-minor td{border-top-style:dotted}.fc-time-grid .fc-highlight{position:absolute;left:0;right:0}.fc-ltr .fc-time-grid .fc-event-container{margin:0 2.5% 0 2px}.fc-rtl .fc-time-grid .fc-event-container{margin:0 2px 0 2.5%}.fc-time-grid .fc-bgevent,.fc-time-grid .fc-event{position:absolute;z-index:1}.fc-time-grid .fc-bgevent{left:0;right:0}.fc-v-event.fc-not-start{border-top-width:0;padding-top:1px;border-top-left-radius:0;border-top-right-radius:0}.fc-v-event.fc-not-end{border-bottom-width:0;padding-bottom:1px;border-bottom-left-radius:0;border-bottom-right-radius:0}.fc-time-grid-event.fc-selected{overflow:visible}.fc-time-grid-event.fc-selected .fc-bg{display:none}.fc-time-grid-event .fc-content{overflow:hidden}.fc-time-grid-event .fc-time,.fc-time-grid-event .fc-title{padding:0 1px}.fc-time-grid-event .fc-time{font-size:.85em;white-space:nowrap}.fc-time-grid-event.fc-short .fc-content{white-space:nowrap}.fc-time-grid-event.fc-short .fc-time,.fc-time-grid-event.fc-short .fc-title{display:inline-block;vertical-align:top}.fc-time-grid-event.fc-short .fc-time span{display:none}.fc-time-grid-event.fc-short .fc-time:before{content:attr(data-start)}.fc-time-grid-event.fc-short .fc-time:after{content:"\A0-\A0"}.fc-time-grid-event.fc-short .fc-title{font-size:.85em;padding:0}.fc-time-grid-event.fc-allow-mouse-resize .fc-resizer{left:0;right:0;bottom:0;height:8px;overflow:hidden;line-height:8px;font-size:11px;font-family:monospace;text-align:center;cursor:s-resize}.fc-time-grid-event.fc-allow-mouse-resize .fc-resizer:after{content:"="}.fc-time-grid-event.fc-selected .fc-resizer{border-radius:5px;border-width:1px;width:8px;height:8px;border-style:solid;border-color:inherit;background:#fff;left:50%;margin-left:-5px;bottom:-5px}.fc-time-grid .fc-now-indicator-line{border-top-width:1px;left:0;right:0}.fc-time-grid .fc-now-indicator-arrow{margin-top:-5px}.fc-ltr .fc-time-grid .fc-now-indicator-arrow{left:0;border-width:5px 0 5px 6px;border-top-color:transparent;border-bottom-color:transparent}.fc-rtl .fc-time-grid .fc-now-indicator-arrow{right:0;border-width:5px 6px 5px 0;border-top-color:transparent;border-bottom-color:transparent}.fc-event-dot{display:inline-block;width:10px;height:10px;border-radius:5px}.fc-rtl .fc-list-view{direction:rtl}.fc-list-view{border-width:1px;border-style:solid}.fc .fc-list-table{table-layout:auto}.fc-list-table td{border-width:1px 0 0;padding:8px 14px}.fc-list-table tr:first-child td{border-top-width:0}.fc-list-heading{border-bottom-width:1px}.fc-list-heading td{font-weight:700}.fc-ltr .fc-list-heading-main{float:left}.fc-ltr .fc-list-heading-alt,.fc-rtl .fc-list-heading-main{float:right}.fc-rtl .fc-list-heading-alt{float:left}.fc-list-item.fc-has-url{cursor:pointer}.fc-list-item-marker,.fc-list-item-time{white-space:nowrap;width:1px}.fc-ltr .fc-list-item-marker{padding-right:0}.fc-rtl .fc-list-item-marker{padding-left:0}.fc-list-item-title a{text-decoration:none;color:inherit}.fc-list-item-title a[href]:hover{text-decoration:underline}.fc-list-empty-wrap2{position:absolute;top:0;left:0;right:0;bottom:0}.fc-list-empty-wrap1{width:100%;height:100%;display:table}.fc-list-empty{display:table-cell;vertical-align:middle;text-align:center}.fc-unthemed .fc-list-empty{background-color:#eee} \ No newline at end of file diff --git a/public/build/app.js b/public/build/app.js index db2a0b8d..349790f3 100644 --- a/public/build/app.js +++ b/public/build/app.js @@ -1,5741 +1,4 @@ -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) { -/******/ return installedModules[moduleId].exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ i: moduleId, -/******/ l: false, -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); -/******/ -/******/ // Flag the module as loaded -/******/ module.l = true; -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/******/ -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; -/******/ -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; -/******/ -/******/ // define getter function for harmony exports -/******/ __webpack_require__.d = function(exports, name, getter) { -/******/ if(!__webpack_require__.o(exports, name)) { -/******/ Object.defineProperty(exports, name, { -/******/ configurable: false, -/******/ enumerable: true, -/******/ get: getter -/******/ }); -/******/ } -/******/ }; -/******/ -/******/ // getDefaultExport function for compatibility with non-harmony modules -/******/ __webpack_require__.n = function(module) { -/******/ var getter = module && module.__esModule ? -/******/ function getDefault() { return module['default']; } : -/******/ function getModuleExports() { return module; }; -/******/ __webpack_require__.d(getter, 'a', getter); -/******/ return getter; -/******/ }; -/******/ -/******/ // Object.prototype.hasOwnProperty.call -/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; -/******/ -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = "./"; -/******/ -/******/ // Load entry module and return exports -/******/ return __webpack_require__(__webpack_require__.s = "./assets/app.js"); -/******/ }) -/************************************************************************/ -/******/ ({ - -/***/ "./assets/app.js": -/*!***********************!*\ - !*** ./assets/app.js ***! - \***********************/ -/*! dynamic exports provided */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -__webpack_require__(/*! ../vendor/kevinpapst/adminlte-bundle/Resources/assets/admin-lte */ "./vendor/kevinpapst/adminlte-bundle/Resources/assets/admin-lte.js"); - -__webpack_require__(/*! ./sass/app.scss */ "./assets/sass/app.scss"); - -__webpack_require__(/*! fullcalendar */ "./node_modules/fullcalendar/dist/fullcalendar.js"); -__webpack_require__(/*! fullcalendar/dist/gcal.min */ "./node_modules/fullcalendar/dist/gcal.min.js"); -__webpack_require__(/*! fullcalendar/dist/locale-all */ "./node_modules/fullcalendar/dist/locale-all.js"); -__webpack_require__(/*! fullcalendar/dist/fullcalendar.min.css */ "./node_modules/fullcalendar/dist/fullcalendar.min.css"); - -// ------ for charts ------ -__webpack_require__(/*! chart.js/dist/Chart.min */ "./node_modules/chart.js/dist/Chart.min.js"); - -// ------ Kimai itself ------ -__webpack_require__(/*! ./js/kimai.js */ "./assets/js/kimai.js"); -__webpack_require__(/*! ./js/datatable.js */ "./assets/js/datatable.js"); -__webpack_require__(/*! ./js/toolbar.js */ "./assets/js/toolbar.js"); -__webpack_require__(/*! ./images/default_avatar.png */ "./assets/images/default_avatar.png"); -__webpack_require__(/*! ./images/signature.png */ "./assets/images/signature.png"); - -/***/ }), - -/***/ "./assets/images/default_avatar.png": -/*!******************************************!*\ - !*** ./assets/images/default_avatar.png ***! - \******************************************/ -/*! dynamic exports provided */ -/*! all exports used */ -/***/ (function(module, exports) { - -module.exports = "./images/default_avatar.png?fc197350"; - -/***/ }), - -/***/ "./assets/images/signature.png": -/*!*************************************!*\ - !*** ./assets/images/signature.png ***! - \*************************************/ -/*! dynamic exports provided */ -/*! all exports used */ -/***/ (function(module, exports) { - -module.exports = "./images/signature.png?5f58501e"; - -/***/ }), - -/***/ "./assets/js/datatable.js": -/*!********************************!*\ - !*** ./assets/js/datatable.js ***! - \********************************/ -/*! dynamic exports provided */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -/* WEBPACK VAR INJECTION */(function(global, jQuery, $) {/* - * This file is part of the Kimai time-tracking app. - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -/** global: Cookies */ -global.Cookies = __webpack_require__(/*! js-cookie */ "./node_modules/js-cookie/src/js.cookie.js"); - -if (typeof jQuery === 'undefined') { - throw new Error('Kimai requires jQuery'); -} - -/* datatable - * - * @type Object - * @description $.datatable is the main object for views with data-tables. - * It's used for implementing functions and options related - * to the datatables. - */ -$.datatable = {}; - -$(function () { - "use strict"; - - $.datatable = { - saveVisibility: function saveVisibility(modalSelector) { - $(modalSelector).find('form').each(function () { - var settings = {}; - var cookieName = $(this).attr('name'); - $(this).find('input:checkbox').each(function () { - settings[$(this).attr('name')] = $(this).is(':checked'); - }); - if (jQuery.isEmptyObject(settings)) { - Cookies.remove(cookieName); - } else { - Cookies.set(cookieName, JSON.stringify(settings), { expires: 365 }); - } - }); - $(modalSelector).modal('toggle'); - location.reload(); - }, - changeVisibility: function changeVisibility(column) { - var tbl = $('table.dataTable'); - var amount = tbl.find('th').length - 1; - if (column < 0 || column >= amount) { - return; - } - var header = $(tbl.find('th').get(column)); - if (header.css("display") === "none") { - header.show('ease'); - tbl.find('tr').each(function () { - $($(this).find('td').get(column)).show('ease'); - }); - } else { - header.hide('ease'); - tbl.find('tr').each(function () { - $($(this).find('td').get(column)).hide('ease'); - }); - } - } - - }; -}); -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(/*! ./../../node_modules/webpack/buildin/global.js */ "./node_modules/webpack/buildin/global.js"), __webpack_require__(/*! jquery */ "./node_modules/jquery/dist/jquery.js"), __webpack_require__(/*! jquery */ "./node_modules/jquery/dist/jquery.js"))) - -/***/ }), - -/***/ "./assets/js/kimai.js": -/*!****************************!*\ - !*** ./assets/js/kimai.js ***! - \****************************/ -/*! dynamic exports provided */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -/* WEBPACK VAR INJECTION */(function(jQuery, $) {/* - * This file is part of the Kimai time-tracking app. - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -/** global: jQuery */ -/** global: moment */ - -if (typeof jQuery === 'undefined') { - throw new Error('Kimai requires jQuery'); -} - -if (typeof moment === 'undefined') { - throw new Error('Kimai requires moment.js'); -} - -/* kimai - * - * @type Object - * @description $.kimai is the main object for the template's app. - * It's used for implementing functions and options related - * to the template. Keeping everything wrapped in an object - * prevents conflict with other plugins and is a better - * way to organize our code. - */ -$.kimai = {}; - -$(function () { - "use strict"; - - $.kimai = { - init: function init(options) { - if (typeof options !== 'undefined') { - $.kimai.settings = $.extend({}, $.kimai.defaults, options); - } - - // set the current locale for all javascript components - moment.locale($.kimai.settings['locale']); - - // activate the dropdown functionality - $('.dropdown-toggle').dropdown(); - - // auto hide success message after x seconds, as they are just meant as quick feedback and - // not as a permanent source of information - setTimeout(function () { - $('div.alert-success').alert('close'); - }, 5000); - - // compound field in toolbar - this.activateDateRangePicker('.content-wrapper'); - - // single select boxes in toolbars - this.activateDatePicker('.content-wrapper'); - - // edit timesheet - date with time - this.activateDateTimePicker('.content-wrapper'); - - // some actions can be performed in a modal for a better UX - this.activateAjaxFormInModal('a.modal-ajax-form'); - - $('body').on('change', 'select[data-related-select]', function (event) { - var apiUrl = $(this).attr('data-api-url').replace('-s-', $(this).val()); - var targetSelect = $(this).attr('data-related-select'); - - $.ajax({ - url: apiUrl, - headers: { - 'X-AUTH-SESSION': true, - 'Content-Type': 'application/json' - }, - method: 'GET', - dataType: 'json', - success: function success(data) { - var selectName = '#' + targetSelect; - var $select = $(selectName); - var $emptyOption = $(selectName + ' option[value=""]'); - - $select.find('option').remove().end().find('optgroup').remove().end(); - - if ($emptyOption.length != 0) { - $select.append(''); - } - - $.each(data, function (i, obj) { - $select.append(''); - }); - - // if we don't trigger the change, the other selects won't be resetted - $select.trigger('change'); - - // if the beta test kimai.theme.select_type is active, this will tell the selects to refresh - $('.selectpicker').selectpicker('refresh'); - } - }); - }); - }, - reloadDatatableWithToolbarFilter: function reloadDatatableWithToolbarFilter() { - // TODO check if toolbar form is present, if not, reload current URL - var $form = $('.toolbar form'); - var loading = '
'; - $('section.content').append(loading); - $.ajax({ - url: $form.attr('action'), - type: $form.attr('method'), - data: $form.serialize(), - success: function success(html) { - $('section.content').replaceWith($(html).find('section.content')); - }, - error: function error(xhr, err) { - $form.submit(); - } - }); - }, - pauseRecord: function pauseRecord(selector) { - $(selector + ' .pull-left i').hover(function () { - var link = $(this).parents('a'); - link.attr('href', link.attr('href').replace('/stop', '/pause')); - $(this).removeClass('fa-stop-circle').addClass('fa-pause-circle').addClass('text-orange'); - }, function () { - var link = $(this).parents('a'); - link.attr('href', link.attr('href').replace('/pause', '/stop')); - $(this).removeClass('fa-pause-circle').removeClass('text-orange').addClass('fa-stop-circle'); - }); - }, - activateDatePicker: function activateDatePicker(selector) { - $(selector + ' input[data-datepickerenable="on"]').each(function (index) { - var localeFormat = $(this).data('format'); - $(this).daterangepicker({ - singleDatePicker: true, - showDropdowns: true, - autoUpdateInput: false, - locale: { - format: localeFormat, - firstDay: 1, - applyLabel: $.kimai.settings['apply'], - cancelLabel: $.kimai.settings['cancel'], - customRangeLabel: $.kimai.settings['customRange'] - } - }); - - $(this).on('apply.daterangepicker', function (ev, picker) { - $(this).val(picker.startDate.format(localeFormat)); - $(this).trigger("change"); - }); - }); - }, - activateDateTimePicker: function activateDateTimePicker(selector) { - $(selector + ' input[data-datetimepicker="on"]').each(function (index) { - var localeFormat = $(this).data('format'); - $(this).daterangepicker({ - singleDatePicker: true, - timePicker: true, - timePicker24Hour: $.kimai.settings['twentyFourHours'], - showDropdowns: true, - autoUpdateInput: false, - locale: { - format: localeFormat, - firstDay: 1, - applyLabel: $.kimai.settings['apply'], - cancelLabel: $.kimai.settings['cancel'], - customRangeLabel: $.kimai.settings['customRange'] - } - }); - - $(this).on('apply.daterangepicker', function (ev, picker) { - $(this).val(picker.startDate.format(localeFormat)); - $(this).trigger("change"); - }); - }); - }, - activateDateRangePicker: function activateDateRangePicker(selector) { - $(selector + ' input[data-daterangepickerenable="on"]').each(function (index) { - var localeFormat = $(this).data('format'); - var separator = $(this).data('separator'); - var rangesList = {}; - rangesList[$.kimai.settings['today']] = [moment(), moment()]; - rangesList[$.kimai.settings['yesterday']] = [moment().subtract(1, 'days'), moment().subtract(1, 'days')]; - rangesList[$.kimai.settings['thisWeek']] = [moment().startOf('week'), moment().endOf('week')]; - rangesList[$.kimai.settings['lastWeek']] = [moment().subtract(1, 'week').startOf('week'), moment().subtract(1, 'week').endOf('week')]; - rangesList[$.kimai.settings['thisMonth']] = [moment().startOf('month'), moment().endOf('month')]; - rangesList[$.kimai.settings['lastMonth']] = [moment().subtract(1, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')]; - rangesList[$.kimai.settings['thisYear']] = [moment().startOf('year'), moment().endOf('year')]; - rangesList[$.kimai.settings['lastYear']] = [moment().subtract(1, 'year').startOf('year'), moment().subtract(1, 'year').endOf('year')]; - - $(this).daterangepicker({ - showDropdowns: true, - autoUpdateInput: false, - autoApply: false, - linkedCalendars: false, - locale: { - separator: separator, - format: localeFormat, - firstDay: 1, - applyLabel: $.kimai.settings['apply'], - cancelLabel: $.kimai.settings['cancel'], - customRangeLabel: $.kimai.settings['customRange'] - }, - ranges: rangesList, - alwaysShowCalendars: true - }); - - $(this).on('apply.daterangepicker', function (ev, picker) { - $(this).val(picker.startDate.format(localeFormat) + ' - ' + picker.endDate.format(localeFormat)); - $(this).trigger("change"); - }); - }); - }, - ajaxFormInModal: function ajaxFormInModal(html) { - // the modal that we use to render the form in - var formIdentifier = '#remote_form_modal .modal-content form'; - var flashErrorIdentifier = 'div.alert-error'; - var $form = $(formIdentifier); - var $modal = $('#remote_form_modal'); - - // will be (re-)activated later - $form.off('submit'); - - // load new form from given content - if ($(html).find('#form_modal .modal-content').length > 0) { - // switch classes, in case the modal type changed - $modal.on('hidden.bs.modal', function () { - if ($modal.hasClass('modal-danger')) { - $modal.removeClass('modal-danger'); - } - }); - - if ($(html).find('#form_modal').hasClass('modal-danger')) { - $modal.addClass('modal-danger'); - } - - // TODO cleanup widgets before replacing the content? - $('#remote_form_modal .modal-content').replaceWith($(html).find('#form_modal .modal-content')); - // activate new loaded widgets - $.kimai.activateDateTimePicker(formIdentifier); - } - - // show error flash messages - if ($(html).find(flashErrorIdentifier).length > 0) { - $('#remote_form_modal .modal-body').prepend($(html).find(flashErrorIdentifier)); - } - - // ----------------------------------------------------------------------- - // a fix for firefox focus problems with datepicker in modal - // see https://github.com/kevinpapst/kimai2/issues/618 - var enforceModalFocusFn = $.fn.modal.Constructor.prototype.enforceFocus; - $.fn.modal.Constructor.prototype.enforceFocus = function () {}; - $modal.on('hidden.bs.modal', function () { - $.fn.modal.Constructor.prototype.enforceFocus = enforceModalFocusFn; - }); - // ----------------------------------------------------------------------- - - // workaround for autofocus attribute, as the modal "steals" it - $modal.on('shown.bs.modal', function () { - $(this).find('input[type=text],textarea,select').filter(':not("[data-datetimepicker=on]")').filter(':visible:first').focus().delay(1000).focus(); - }); - - $modal.modal('show'); - - // the new form that was loaded via ajax - $form = $(formIdentifier); - - // click handler for modal save button, to send forms via ajax - $form.on('submit', function (event) { - var btn = $(formIdentifier + ' button[type=submit]').button('loading'); - event.preventDefault(); - event.stopPropagation(); - $.ajax({ - url: $form.attr('action'), - type: $form.attr('method'), - data: $form.serialize(), - success: function success(html) { - btn.button('reset'); - var hasFieldError = $(html).find('#form_modal .modal-content .has-error').length > 0; - var hasFormError = $(html).find('#form_modal .modal-content ul.list-unstyled li.text-danger').length > 0; - var hasFlashError = $(html).find(flashErrorIdentifier).length > 0; - - if (hasFieldError || hasFormError || hasFlashError) { - $.kimai.ajaxFormInModal(html); - } else { - $.kimai.reloadDatatableWithToolbarFilter(); - $modal.modal('hide'); - } - return false; - }, - error: function error(xhr, err) { - // FIXME problem in google and 500 error, keeps on submitting... - // what else could we do? submitting again at least gives us the opportunity to see errors, - // which maybe would be hidden otherwise... this one is totally up for discussion! - $form.submit(); - } - }); - }); - }, - activateAjaxFormInModal: function activateAjaxFormInModal(selector) { - $('body').on('click', selector, function (event) { - event.preventDefault(); - event.stopPropagation(); - $.ajax({ - url: $(this).attr('href'), - success: function success(html) { - $.kimai.ajaxFormInModal(html); - }, - error: function error(xhr, err) { - window.location = $(this).attr('href'); - } - }); - }); - } - }; - - // default values - $.kimai.defaults = { - locale: 'en', - today: 'Today', - yesterday: 'Yesterday', - apply: 'Apply', - cancel: 'Cancel', - thisWeek: 'This week', - lastWeek: 'Last week', - thisMonth: 'This month', - lastMonth: 'Last month', - thisYear: 'This year', - lastYear: 'Last year', - customRange: 'Custom range', - twentyFourHours: true - }; - - // once initialized, here are all values - $.kimai.settings = {}; -}); -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(/*! jquery */ "./node_modules/jquery/dist/jquery.js"), __webpack_require__(/*! jquery */ "./node_modules/jquery/dist/jquery.js"))) - -/***/ }), - -/***/ "./assets/js/toolbar.js": -/*!******************************!*\ - !*** ./assets/js/toolbar.js ***! - \******************************/ -/*! dynamic exports provided */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -/* WEBPACK VAR INJECTION */(function($) {/* - * This file is part of the Kimai time-tracking app. - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -$(document).ready(function () { - - /* Submit the pagination including the toolbar filters */ - $('body').on('click', 'div.navigation ul.pagination li a', function (event) { - var $pager = $(".toolbar form input[name='page']"); - if ($pager.length === 0) { - return; - } - event.preventDefault(); - event.stopPropagation(); - var $urlParts = $(this).attr('href').split('/'); - var page = $urlParts[$urlParts.length - 1]; - $pager.val(page); - $pager.trigger('change'); - return false; - }); - - $('.toolbar form input').change(function (event) { - switch (event.target.id) { - case 'page': - break; - default: - $('.toolbar form input#page').val(1); - } - $.kimai.reloadDatatableWithToolbarFilter(); - }); - - $('.toolbar form select').change(function (event) { - var reload = true; - switch (event.target.id) { - case 'customer': - if ($('.toolbar form select#project').length > 0) { - reload = false; - } - break; - - case 'project': - if ($('.toolbar form select#activity').length > 0) { - reload = false; - } - break; - } - $('.toolbar form input#page').val(1); - if (reload) { - $.kimai.reloadDatatableWithToolbarFilter(); - } - }); -}); -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(/*! jquery */ "./node_modules/jquery/dist/jquery.js"))) - -/***/ }), - -/***/ "./assets/sass/app.scss": -/*!******************************!*\ - !*** ./assets/sass/app.scss ***! - \******************************/ -/*! dynamic exports provided */ -/*! all exports used */ -/***/ (function(module, exports) { - -// removed by extract-text-webpack-plugin - -/***/ }), - -/***/ "./node_modules/admin-lte/dist/css/AdminLTE.min.css": -/*!**********************************************************!*\ - !*** ./node_modules/admin-lte/dist/css/AdminLTE.min.css ***! - \**********************************************************/ -/*! dynamic exports provided */ -/*! all exports used */ -/***/ (function(module, exports) { - -// removed by extract-text-webpack-plugin - -/***/ }), - -/***/ "./node_modules/admin-lte/dist/css/skins/_all-skins.css": -/*!**************************************************************!*\ - !*** ./node_modules/admin-lte/dist/css/skins/_all-skins.css ***! - \**************************************************************/ -/*! dynamic exports provided */ -/*! all exports used */ -/***/ (function(module, exports) { - -// removed by extract-text-webpack-plugin - -/***/ }), - -/***/ "./node_modules/admin-lte/dist/js/adminlte.min.js": -/*!********************************************************!*\ - !*** ./node_modules/admin-lte/dist/js/adminlte.min.js ***! - \********************************************************/ -/*! dynamic exports provided */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -/* WEBPACK VAR INJECTION */(function(jQuery) {/*! AdminLTE app.js -* ================ -* Main JS application file for AdminLTE v2. This file -* should be included in all pages. It controls some layout -* options and implements exclusive AdminLTE plugins. -* -* @Author Almsaeed Studio -* @Support -* @Email -* @version 2.4.8 -* @repository git://github.com/almasaeed2010/AdminLTE.git -* @license MIT -*/ -if("undefined"==typeof jQuery)throw new Error("AdminLTE requires jQuery");+function(a){"use strict";function b(b){return this.each(function(){var e=a(this),g=e.data(c);if(!g){var h=a.extend({},d,e.data(),"object"==typeof b&&b);e.data(c,g=new f(e,h))}if("string"==typeof g){if(void 0===g[b])throw new Error("No method named "+b);g[b]()}})}var c="lte.boxrefresh",d={source:"",params:{},trigger:".refresh-btn",content:".box-body",loadInContent:!0,responseType:"",overlayTemplate:'
',onLoadStart:function(){},onLoadDone:function(a){return a}},e={data:'[data-widget="box-refresh"]'},f=function(b,c){if(this.element=b,this.options=c,this.$overlay=a(c.overlay),""===c.source)throw new Error("Source url was not defined. Please specify a url in your BoxRefresh source option.");this._setUpListeners(),this.load()};f.prototype.load=function(){this._addOverlay(),this.options.onLoadStart.call(a(this)),a.get(this.options.source,this.options.params,function(b){this.options.loadInContent&&a(this.options.content).html(b),this.options.onLoadDone.call(a(this),b),this._removeOverlay()}.bind(this),""!==this.options.responseType&&this.options.responseType)},f.prototype._setUpListeners=function(){a(this.element).on("click",e.trigger,function(a){a&&a.preventDefault(),this.load()}.bind(this))},f.prototype._addOverlay=function(){a(this.element).append(this.$overlay)},f.prototype._removeOverlay=function(){a(this.element).remove(this.$overlay)};var g=a.fn.boxRefresh;a.fn.boxRefresh=b,a.fn.boxRefresh.Constructor=f,a.fn.boxRefresh.noConflict=function(){return a.fn.boxRefresh=g,this},a(window).on("load",function(){a(e.data).each(function(){b.call(a(this))})})}(jQuery),function(a){"use strict";function b(b){return this.each(function(){var e=a(this),f=e.data(c);if(!f){var g=a.extend({},d,e.data(),"object"==typeof b&&b);e.data(c,f=new h(e,g))}if("string"==typeof b){if(void 0===f[b])throw new Error("No method named "+b);f[b]()}})}var c="lte.boxwidget",d={animationSpeed:500,collapseTrigger:'[data-widget="collapse"]',removeTrigger:'[data-widget="remove"]',collapseIcon:"fa-minus",expandIcon:"fa-plus",removeIcon:"fa-times"},e={data:".box",collapsed:".collapsed-box",header:".box-header",body:".box-body",footer:".box-footer",tools:".box-tools"},f={collapsed:"collapsed-box"},g={collapsed:"collapsed.boxwidget",expanded:"expanded.boxwidget",removed:"removed.boxwidget"},h=function(a,b){this.element=a,this.options=b,this._setUpListeners()};h.prototype.toggle=function(){a(this.element).is(e.collapsed)?this.expand():this.collapse()},h.prototype.expand=function(){var b=a.Event(g.expanded),c=this.options.collapseIcon,d=this.options.expandIcon;a(this.element).removeClass(f.collapsed),a(this.element).children(e.header+", "+e.body+", "+e.footer).children(e.tools).find("."+d).removeClass(d).addClass(c),a(this.element).children(e.body+", "+e.footer).slideDown(this.options.animationSpeed,function(){a(this.element).trigger(b)}.bind(this))},h.prototype.collapse=function(){var b=a.Event(g.collapsed),c=this.options.collapseIcon,d=this.options.expandIcon;a(this.element).children(e.header+", "+e.body+", "+e.footer).children(e.tools).find("."+c).removeClass(c).addClass(d),a(this.element).children(e.body+", "+e.footer).slideUp(this.options.animationSpeed,function(){a(this.element).addClass(f.collapsed),a(this.element).trigger(b)}.bind(this))},h.prototype.remove=function(){var b=a.Event(g.removed);a(this.element).slideUp(this.options.animationSpeed,function(){a(this.element).trigger(b),a(this.element).remove()}.bind(this))},h.prototype._setUpListeners=function(){var b=this;a(this.element).on("click",this.options.collapseTrigger,function(c){return c&&c.preventDefault(),b.toggle(a(this)),!1}),a(this.element).on("click",this.options.removeTrigger,function(c){return c&&c.preventDefault(),b.remove(a(this)),!1})};var i=a.fn.boxWidget;a.fn.boxWidget=b,a.fn.boxWidget.Constructor=h,a.fn.boxWidget.noConflict=function(){return a.fn.boxWidget=i,this},a(window).on("load",function(){a(e.data).each(function(){b.call(a(this))})})}(jQuery),function(a){"use strict";function b(b){return this.each(function(){var e=a(this),f=e.data(c);if(!f){var g=a.extend({},d,e.data(),"object"==typeof b&&b);e.data(c,f=new h(e,g))}"string"==typeof b&&f.toggle()})}var c="lte.controlsidebar",d={slide:!0},e={sidebar:".control-sidebar",data:'[data-toggle="control-sidebar"]',open:".control-sidebar-open",bg:".control-sidebar-bg",wrapper:".wrapper",content:".content-wrapper",boxed:".layout-boxed"},f={open:"control-sidebar-open",fixed:"fixed"},g={collapsed:"collapsed.controlsidebar",expanded:"expanded.controlsidebar"},h=function(a,b){this.element=a,this.options=b,this.hasBindedResize=!1,this.init()};h.prototype.init=function(){a(this.element).is(e.data)||a(this).on("click",this.toggle),this.fix(),a(window).resize(function(){this.fix()}.bind(this))},h.prototype.toggle=function(b){b&&b.preventDefault(),this.fix(),a(e.sidebar).is(e.open)||a("body").is(e.open)?this.collapse():this.expand()},h.prototype.expand=function(){this.options.slide?a(e.sidebar).addClass(f.open):a("body").addClass(f.open),a(this.element).trigger(a.Event(g.expanded))},h.prototype.collapse=function(){a("body, "+e.sidebar).removeClass(f.open),a(this.element).trigger(a.Event(g.collapsed))},h.prototype.fix=function(){a("body").is(e.boxed)&&this._fixForBoxed(a(e.bg))},h.prototype._fixForBoxed=function(b){b.css({position:"absolute",height:a(e.wrapper).height()})};var i=a.fn.controlSidebar;a.fn.controlSidebar=b,a.fn.controlSidebar.Constructor=h,a.fn.controlSidebar.noConflict=function(){return a.fn.controlSidebar=i,this},a(document).on("click",e.data,function(c){c&&c.preventDefault(),b.call(a(this),"toggle")})}(jQuery),function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data(c);e||d.data(c,e=new f(d)),"string"==typeof b&&e.toggle(d)})}var c="lte.directchat",d={data:'[data-widget="chat-pane-toggle"]',box:".direct-chat"},e={open:"direct-chat-contacts-open"},f=function(a){this.element=a};f.prototype.toggle=function(a){a.parents(d.box).first().toggleClass(e.open)};var g=a.fn.directChat;a.fn.directChat=b,a.fn.directChat.Constructor=f,a.fn.directChat.noConflict=function(){return a.fn.directChat=g,this},a(document).on("click",d.data,function(c){c&&c.preventDefault(),b.call(a(this),"toggle")})}(jQuery),function(a){"use strict";function b(b){return this.each(function(){var e=a(this),f=e.data(c);if(!f){var h=a.extend({},d,e.data(),"object"==typeof b&&b);e.data(c,f=new g(h))}if("string"==typeof b){if(void 0===f[b])throw new Error("No method named "+b);f[b]()}})}var c="lte.layout",d={slimscroll:!0,resetHeight:!0},e={wrapper:".wrapper",contentWrapper:".content-wrapper",layoutBoxed:".layout-boxed",mainFooter:".main-footer",mainHeader:".main-header",sidebar:".sidebar",controlSidebar:".control-sidebar",fixed:".fixed",sidebarMenu:".sidebar-menu",logo:".main-header .logo"},f={fixed:"fixed",holdTransition:"hold-transition"},g=function(a){this.options=a,this.bindedResize=!1,this.activate()};g.prototype.activate=function(){this.fix(),this.fixSidebar(),a("body").removeClass(f.holdTransition),this.options.resetHeight&&a("body, html, "+e.wrapper).css({height:"auto","min-height":"100%"}),this.bindedResize||(a(window).resize(function(){this.fix(),this.fixSidebar(),a(e.logo+", "+e.sidebar).one("webkitTransitionEnd otransitionend oTransitionEnd msTransitionEnd transitionend",function(){this.fix(),this.fixSidebar()}.bind(this))}.bind(this)),this.bindedResize=!0),a(e.sidebarMenu).on("expanded.tree",function(){this.fix(),this.fixSidebar()}.bind(this)),a(e.sidebarMenu).on("collapsed.tree",function(){this.fix(),this.fixSidebar()}.bind(this))},g.prototype.fix=function(){a(e.layoutBoxed+" > "+e.wrapper).css("overflow","hidden");var b=a(e.mainFooter).outerHeight()||0,c=a(e.mainHeader).outerHeight()||0,d=c+b,g=a(window).height(),h=a(e.sidebar).height()||0;if(a("body").hasClass(f.fixed))a(e.contentWrapper).css("min-height",g-b);else{var i;g>=h?(a(e.contentWrapper).css("min-height",g-d),i=g-d):(a(e.contentWrapper).css("min-height",h),i=h);var j=a(e.controlSidebar);void 0!==j&&j.height()>i&&a(e.contentWrapper).css("min-height",j.height())}},g.prototype.fixSidebar=function(){if(!a("body").hasClass(f.fixed))return void(void 0!==a.fn.slimScroll&&a(e.sidebar).slimScroll({destroy:!0}).height("auto"));this.options.slimscroll&&void 0!==a.fn.slimScroll&&a(e.sidebar).slimScroll({height:a(window).height()-a(e.mainHeader).height()+"px"})};var h=a.fn.layout;a.fn.layout=b,a.fn.layout.Constuctor=g,a.fn.layout.noConflict=function(){return a.fn.layout=h,this},a(window).on("load",function(){b.call(a("body"))})}(jQuery),function(a){"use strict";function b(b){return this.each(function(){var e=a(this),f=e.data(c);if(!f){var g=a.extend({},d,e.data(),"object"==typeof b&&b);e.data(c,f=new h(g))}"toggle"===b&&f.toggle()})}var c="lte.pushmenu",d={collapseScreenSize:767,expandOnHover:!1,expandTransitionDelay:200},e={collapsed:".sidebar-collapse",open:".sidebar-open",mainSidebar:".main-sidebar",contentWrapper:".content-wrapper",searchInput:".sidebar-form .form-control",button:'[data-toggle="push-menu"]',mini:".sidebar-mini",expanded:".sidebar-expanded-on-hover",layoutFixed:".fixed"},f={collapsed:"sidebar-collapse",open:"sidebar-open",mini:"sidebar-mini",expanded:"sidebar-expanded-on-hover",expandFeature:"sidebar-mini-expand-feature",layoutFixed:"fixed"},g={expanded:"expanded.pushMenu",collapsed:"collapsed.pushMenu"},h=function(a){this.options=a,this.init()};h.prototype.init=function(){(this.options.expandOnHover||a("body").is(e.mini+e.layoutFixed))&&(this.expandOnHover(),a("body").addClass(f.expandFeature)),a(e.contentWrapper).click(function(){a(window).width()<=this.options.collapseScreenSize&&a("body").hasClass(f.open)&&this.close()}.bind(this)),a(e.searchInput).click(function(a){a.stopPropagation()})},h.prototype.toggle=function(){var b=a(window).width(),c=!a("body").hasClass(f.collapsed);b<=this.options.collapseScreenSize&&(c=a("body").hasClass(f.open)),c?this.close():this.open()},h.prototype.open=function(){a(window).width()>this.options.collapseScreenSize?a("body").removeClass(f.collapsed).trigger(a.Event(g.expanded)):a("body").addClass(f.open).trigger(a.Event(g.expanded))},h.prototype.close=function(){a(window).width()>this.options.collapseScreenSize?a("body").addClass(f.collapsed).trigger(a.Event(g.collapsed)):a("body").removeClass(f.open+" "+f.collapsed).trigger(a.Event(g.collapsed))},h.prototype.expandOnHover=function(){a(e.mainSidebar).hover(function(){a("body").is(e.mini+e.collapsed)&&a(window).width()>this.options.collapseScreenSize&&this.expand()}.bind(this),function(){a("body").is(e.expanded)&&this.collapse()}.bind(this))},h.prototype.expand=function(){setTimeout(function(){a("body").removeClass(f.collapsed).addClass(f.expanded)},this.options.expandTransitionDelay)},h.prototype.collapse=function(){setTimeout(function(){a("body").removeClass(f.expanded).addClass(f.collapsed)},this.options.expandTransitionDelay)};var i=a.fn.pushMenu;a.fn.pushMenu=b,a.fn.pushMenu.Constructor=h,a.fn.pushMenu.noConflict=function(){return a.fn.pushMenu=i,this},a(document).on("click",e.button,function(c){c.preventDefault(),b.call(a(this),"toggle")}),a(window).on("load",function(){b.call(a(e.button))})}(jQuery),function(a){"use strict";function b(b){return this.each(function(){var e=a(this),f=e.data(c);if(!f){var h=a.extend({},d,e.data(),"object"==typeof b&&b);e.data(c,f=new g(e,h))}if("string"==typeof f){if(void 0===f[b])throw new Error("No method named "+b);f[b]()}})}var c="lte.todolist",d={onCheck:function(a){return a},onUnCheck:function(a){return a}},e={data:'[data-widget="todo-list"]'},f={done:"done"},g=function(a,b){this.element=a,this.options=b,this._setUpListeners()};g.prototype.toggle=function(a){if(a.parents(e.li).first().toggleClass(f.done),!a.prop("checked"))return void this.unCheck(a);this.check(a)},g.prototype.check=function(a){this.options.onCheck.call(a)},g.prototype.unCheck=function(a){this.options.onUnCheck.call(a)},g.prototype._setUpListeners=function(){var b=this;a(this.element).on("change ifChanged","input:checkbox",function(){b.toggle(a(this))})};var h=a.fn.todoList;a.fn.todoList=b,a.fn.todoList.Constructor=g,a.fn.todoList.noConflict=function(){return a.fn.todoList=h,this},a(window).on("load",function(){a(e.data).each(function(){b.call(a(this))})})}(jQuery),function(a){"use strict";function b(b){return this.each(function(){var e=a(this);if(!e.data(c)){var f=a.extend({},d,e.data(),"object"==typeof b&&b);e.data(c,new h(e,f))}})}var c="lte.tree",d={animationSpeed:500,accordion:!0,followLink:!1,trigger:".treeview a"},e={tree:".tree",treeview:".treeview",treeviewMenu:".treeview-menu",open:".menu-open, .active",li:"li",data:'[data-widget="tree"]',active:".active"},f={open:"menu-open",tree:"tree"},g={collapsed:"collapsed.tree",expanded:"expanded.tree"},h=function(b,c){this.element=b,this.options=c,a(this.element).addClass(f.tree),a(e.treeview+e.active,this.element).addClass(f.open),this._setUpListeners()};h.prototype.toggle=function(a,b){var c=a.next(e.treeviewMenu),d=a.parent(),g=d.hasClass(f.open);d.is(e.treeview)&&(this.options.followLink&&"#"!==a.attr("href")||b.preventDefault(),g?this.collapse(c,d):this.expand(c,d))},h.prototype.expand=function(b,c){var d=a.Event(g.expanded);if(this.options.accordion){var h=c.siblings(e.open),i=h.children(e.treeviewMenu);this.collapse(i,h)}c.addClass(f.open),b.slideDown(this.options.animationSpeed,function(){a(this.element).trigger(d)}.bind(this))},h.prototype.collapse=function(b,c){var d=a.Event(g.collapsed);c.removeClass(f.open),b.slideUp(this.options.animationSpeed,function(){a(this.element).trigger(d)}.bind(this))},h.prototype._setUpListeners=function(){var b=this;a(this.element).on("click",this.options.trigger,function(c){b.toggle(a(this),c)})};var i=a.fn.tree;a.fn.tree=b,a.fn.tree.Constructor=h,a.fn.tree.noConflict=function(){return a.fn.tree=i,this},a(window).on("load",function(){a(e.data).each(function(){b.call(a(this))})})}(jQuery); -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(/*! jquery */ "./node_modules/jquery/dist/jquery.js"))) - -/***/ }), - -/***/ "./node_modules/bootstrap-sass/assets/javascripts/bootstrap.js": -/*!*********************************************************************!*\ - !*** ./node_modules/bootstrap-sass/assets/javascripts/bootstrap.js ***! - \*********************************************************************/ -/*! dynamic exports provided */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -/* WEBPACK VAR INJECTION */(function(jQuery) {/*! - * Bootstrap v3.3.7 (http://getbootstrap.com) - * Copyright 2011-2016 Twitter, Inc. - * Licensed under the MIT license - */ - -if (typeof jQuery === 'undefined') { - throw new Error('Bootstrap\'s JavaScript requires jQuery') -} - -+function ($) { - 'use strict'; - var version = $.fn.jquery.split(' ')[0].split('.') - if ((version[0] < 2 && version[1] < 9) || (version[0] == 1 && version[1] == 9 && version[2] < 1) || (version[0] > 3)) { - throw new Error('Bootstrap\'s JavaScript requires jQuery version 1.9.1 or higher, but lower than version 4') - } -}(jQuery); - -/* ======================================================================== - * Bootstrap: transition.js v3.3.7 - * http://getbootstrap.com/javascript/#transitions - * ======================================================================== - * Copyright 2011-2016 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - * ======================================================================== */ - - -+function ($) { - 'use strict'; - - // CSS TRANSITION SUPPORT (Shoutout: http://www.modernizr.com/) - // ============================================================ - - function transitionEnd() { - var el = document.createElement('bootstrap') - - var transEndEventNames = { - WebkitTransition : 'webkitTransitionEnd', - MozTransition : 'transitionend', - OTransition : 'oTransitionEnd otransitionend', - transition : 'transitionend' - } - - for (var name in transEndEventNames) { - if (el.style[name] !== undefined) { - return { end: transEndEventNames[name] } - } - } - - return false // explicit for ie8 ( ._.) - } - - // http://blog.alexmaccaw.com/css-transitions - $.fn.emulateTransitionEnd = function (duration) { - var called = false - var $el = this - $(this).one('bsTransitionEnd', function () { called = true }) - var callback = function () { if (!called) $($el).trigger($.support.transition.end) } - setTimeout(callback, duration) - return this - } - - $(function () { - $.support.transition = transitionEnd() - - if (!$.support.transition) return - - $.event.special.bsTransitionEnd = { - bindType: $.support.transition.end, - delegateType: $.support.transition.end, - handle: function (e) { - if ($(e.target).is(this)) return e.handleObj.handler.apply(this, arguments) - } - } - }) - -}(jQuery); - -/* ======================================================================== - * Bootstrap: alert.js v3.3.7 - * http://getbootstrap.com/javascript/#alerts - * ======================================================================== - * Copyright 2011-2016 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - * ======================================================================== */ - - -+function ($) { - 'use strict'; - - // ALERT CLASS DEFINITION - // ====================== - - var dismiss = '[data-dismiss="alert"]' - var Alert = function (el) { - $(el).on('click', dismiss, this.close) - } - - Alert.VERSION = '3.3.7' - - Alert.TRANSITION_DURATION = 150 - - Alert.prototype.close = function (e) { - var $this = $(this) - var selector = $this.attr('data-target') - - if (!selector) { - selector = $this.attr('href') - selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7 - } - - var $parent = $(selector === '#' ? [] : selector) - - if (e) e.preventDefault() - - if (!$parent.length) { - $parent = $this.closest('.alert') - } - - $parent.trigger(e = $.Event('close.bs.alert')) - - if (e.isDefaultPrevented()) return - - $parent.removeClass('in') - - function removeElement() { - // detach from parent, fire event then clean up data - $parent.detach().trigger('closed.bs.alert').remove() - } - - $.support.transition && $parent.hasClass('fade') ? - $parent - .one('bsTransitionEnd', removeElement) - .emulateTransitionEnd(Alert.TRANSITION_DURATION) : - removeElement() - } - - - // ALERT PLUGIN DEFINITION - // ======================= - - function Plugin(option) { - return this.each(function () { - var $this = $(this) - var data = $this.data('bs.alert') - - if (!data) $this.data('bs.alert', (data = new Alert(this))) - if (typeof option == 'string') data[option].call($this) - }) - } - - var old = $.fn.alert - - $.fn.alert = Plugin - $.fn.alert.Constructor = Alert - - - // ALERT NO CONFLICT - // ================= - - $.fn.alert.noConflict = function () { - $.fn.alert = old - return this - } - - - // ALERT DATA-API - // ============== - - $(document).on('click.bs.alert.data-api', dismiss, Alert.prototype.close) - -}(jQuery); - -/* ======================================================================== - * Bootstrap: button.js v3.3.7 - * http://getbootstrap.com/javascript/#buttons - * ======================================================================== - * Copyright 2011-2016 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - * ======================================================================== */ - - -+function ($) { - 'use strict'; - - // BUTTON PUBLIC CLASS DEFINITION - // ============================== - - var Button = function (element, options) { - this.$element = $(element) - this.options = $.extend({}, Button.DEFAULTS, options) - this.isLoading = false - } - - Button.VERSION = '3.3.7' - - Button.DEFAULTS = { - loadingText: 'loading...' - } - - Button.prototype.setState = function (state) { - var d = 'disabled' - var $el = this.$element - var val = $el.is('input') ? 'val' : 'html' - var data = $el.data() - - state += 'Text' - - if (data.resetText == null) $el.data('resetText', $el[val]()) - - // push to event loop to allow forms to submit - setTimeout($.proxy(function () { - $el[val](data[state] == null ? this.options[state] : data[state]) - - if (state == 'loadingText') { - this.isLoading = true - $el.addClass(d).attr(d, d).prop(d, true) - } else if (this.isLoading) { - this.isLoading = false - $el.removeClass(d).removeAttr(d).prop(d, false) - } - }, this), 0) - } - - Button.prototype.toggle = function () { - var changed = true - var $parent = this.$element.closest('[data-toggle="buttons"]') - - if ($parent.length) { - var $input = this.$element.find('input') - if ($input.prop('type') == 'radio') { - if ($input.prop('checked')) changed = false - $parent.find('.active').removeClass('active') - this.$element.addClass('active') - } else if ($input.prop('type') == 'checkbox') { - if (($input.prop('checked')) !== this.$element.hasClass('active')) changed = false - this.$element.toggleClass('active') - } - $input.prop('checked', this.$element.hasClass('active')) - if (changed) $input.trigger('change') - } else { - this.$element.attr('aria-pressed', !this.$element.hasClass('active')) - this.$element.toggleClass('active') - } - } - - - // BUTTON PLUGIN DEFINITION - // ======================== - - function Plugin(option) { - return this.each(function () { - var $this = $(this) - var data = $this.data('bs.button') - var options = typeof option == 'object' && option - - if (!data) $this.data('bs.button', (data = new Button(this, options))) - - if (option == 'toggle') data.toggle() - else if (option) data.setState(option) - }) - } - - var old = $.fn.button - - $.fn.button = Plugin - $.fn.button.Constructor = Button - - - // BUTTON NO CONFLICT - // ================== - - $.fn.button.noConflict = function () { - $.fn.button = old - return this - } - - - // BUTTON DATA-API - // =============== - - $(document) - .on('click.bs.button.data-api', '[data-toggle^="button"]', function (e) { - var $btn = $(e.target).closest('.btn') - Plugin.call($btn, 'toggle') - if (!($(e.target).is('input[type="radio"], input[type="checkbox"]'))) { - // Prevent double click on radios, and the double selections (so cancellation) on checkboxes - e.preventDefault() - // The target component still receive the focus - if ($btn.is('input,button')) $btn.trigger('focus') - else $btn.find('input:visible,button:visible').first().trigger('focus') - } - }) - .on('focus.bs.button.data-api blur.bs.button.data-api', '[data-toggle^="button"]', function (e) { - $(e.target).closest('.btn').toggleClass('focus', /^focus(in)?$/.test(e.type)) - }) - -}(jQuery); - -/* ======================================================================== - * Bootstrap: carousel.js v3.3.7 - * http://getbootstrap.com/javascript/#carousel - * ======================================================================== - * Copyright 2011-2016 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - * ======================================================================== */ - - -+function ($) { - 'use strict'; - - // CAROUSEL CLASS DEFINITION - // ========================= - - var Carousel = function (element, options) { - this.$element = $(element) - this.$indicators = this.$element.find('.carousel-indicators') - this.options = options - this.paused = null - this.sliding = null - this.interval = null - this.$active = null - this.$items = null - - this.options.keyboard && this.$element.on('keydown.bs.carousel', $.proxy(this.keydown, this)) - - this.options.pause == 'hover' && !('ontouchstart' in document.documentElement) && this.$element - .on('mouseenter.bs.carousel', $.proxy(this.pause, this)) - .on('mouseleave.bs.carousel', $.proxy(this.cycle, this)) - } - - Carousel.VERSION = '3.3.7' - - Carousel.TRANSITION_DURATION = 600 - - Carousel.DEFAULTS = { - interval: 5000, - pause: 'hover', - wrap: true, - keyboard: true - } - - Carousel.prototype.keydown = function (e) { - if (/input|textarea/i.test(e.target.tagName)) return - switch (e.which) { - case 37: this.prev(); break - case 39: this.next(); break - default: return - } - - e.preventDefault() - } - - Carousel.prototype.cycle = function (e) { - e || (this.paused = false) - - this.interval && clearInterval(this.interval) - - this.options.interval - && !this.paused - && (this.interval = setInterval($.proxy(this.next, this), this.options.interval)) - - return this - } - - Carousel.prototype.getItemIndex = function (item) { - this.$items = item.parent().children('.item') - return this.$items.index(item || this.$active) - } - - Carousel.prototype.getItemForDirection = function (direction, active) { - var activeIndex = this.getItemIndex(active) - var willWrap = (direction == 'prev' && activeIndex === 0) - || (direction == 'next' && activeIndex == (this.$items.length - 1)) - if (willWrap && !this.options.wrap) return active - var delta = direction == 'prev' ? -1 : 1 - var itemIndex = (activeIndex + delta) % this.$items.length - return this.$items.eq(itemIndex) - } - - Carousel.prototype.to = function (pos) { - var that = this - var activeIndex = this.getItemIndex(this.$active = this.$element.find('.item.active')) - - if (pos > (this.$items.length - 1) || pos < 0) return - - if (this.sliding) return this.$element.one('slid.bs.carousel', function () { that.to(pos) }) // yes, "slid" - if (activeIndex == pos) return this.pause().cycle() - - return this.slide(pos > activeIndex ? 'next' : 'prev', this.$items.eq(pos)) - } - - Carousel.prototype.pause = function (e) { - e || (this.paused = true) - - if (this.$element.find('.next, .prev').length && $.support.transition) { - this.$element.trigger($.support.transition.end) - this.cycle(true) - } - - this.interval = clearInterval(this.interval) - - return this - } - - Carousel.prototype.next = function () { - if (this.sliding) return - return this.slide('next') - } - - Carousel.prototype.prev = function () { - if (this.sliding) return - return this.slide('prev') - } - - Carousel.prototype.slide = function (type, next) { - var $active = this.$element.find('.item.active') - var $next = next || this.getItemForDirection(type, $active) - var isCycling = this.interval - var direction = type == 'next' ? 'left' : 'right' - var that = this - - if ($next.hasClass('active')) return (this.sliding = false) - - var relatedTarget = $next[0] - var slideEvent = $.Event('slide.bs.carousel', { - relatedTarget: relatedTarget, - direction: direction - }) - this.$element.trigger(slideEvent) - if (slideEvent.isDefaultPrevented()) return - - this.sliding = true - - isCycling && this.pause() - - if (this.$indicators.length) { - this.$indicators.find('.active').removeClass('active') - var $nextIndicator = $(this.$indicators.children()[this.getItemIndex($next)]) - $nextIndicator && $nextIndicator.addClass('active') - } - - var slidEvent = $.Event('slid.bs.carousel', { relatedTarget: relatedTarget, direction: direction }) // yes, "slid" - if ($.support.transition && this.$element.hasClass('slide')) { - $next.addClass(type) - $next[0].offsetWidth // force reflow - $active.addClass(direction) - $next.addClass(direction) - $active - .one('bsTransitionEnd', function () { - $next.removeClass([type, direction].join(' ')).addClass('active') - $active.removeClass(['active', direction].join(' ')) - that.sliding = false - setTimeout(function () { - that.$element.trigger(slidEvent) - }, 0) - }) - .emulateTransitionEnd(Carousel.TRANSITION_DURATION) - } else { - $active.removeClass('active') - $next.addClass('active') - this.sliding = false - this.$element.trigger(slidEvent) - } - - isCycling && this.cycle() - - return this - } - - - // CAROUSEL PLUGIN DEFINITION - // ========================== - - function Plugin(option) { - return this.each(function () { - var $this = $(this) - var data = $this.data('bs.carousel') - var options = $.extend({}, Carousel.DEFAULTS, $this.data(), typeof option == 'object' && option) - var action = typeof option == 'string' ? option : options.slide - - if (!data) $this.data('bs.carousel', (data = new Carousel(this, options))) - if (typeof option == 'number') data.to(option) - else if (action) data[action]() - else if (options.interval) data.pause().cycle() - }) - } - - var old = $.fn.carousel - - $.fn.carousel = Plugin - $.fn.carousel.Constructor = Carousel - - - // CAROUSEL NO CONFLICT - // ==================== - - $.fn.carousel.noConflict = function () { - $.fn.carousel = old - return this - } - - - // CAROUSEL DATA-API - // ================= - - var clickHandler = function (e) { - var href - var $this = $(this) - var $target = $($this.attr('data-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) // strip for ie7 - if (!$target.hasClass('carousel')) return - var options = $.extend({}, $target.data(), $this.data()) - var slideIndex = $this.attr('data-slide-to') - if (slideIndex) options.interval = false - - Plugin.call($target, options) - - if (slideIndex) { - $target.data('bs.carousel').to(slideIndex) - } - - e.preventDefault() - } - - $(document) - .on('click.bs.carousel.data-api', '[data-slide]', clickHandler) - .on('click.bs.carousel.data-api', '[data-slide-to]', clickHandler) - - $(window).on('load', function () { - $('[data-ride="carousel"]').each(function () { - var $carousel = $(this) - Plugin.call($carousel, $carousel.data()) - }) - }) - -}(jQuery); - -/* ======================================================================== - * Bootstrap: collapse.js v3.3.7 - * http://getbootstrap.com/javascript/#collapse - * ======================================================================== - * Copyright 2011-2016 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - * ======================================================================== */ - -/* jshint latedef: false */ - -+function ($) { - 'use strict'; - - // COLLAPSE PUBLIC CLASS DEFINITION - // ================================ - - var Collapse = function (element, options) { - this.$element = $(element) - this.options = $.extend({}, Collapse.DEFAULTS, options) - this.$trigger = $('[data-toggle="collapse"][href="#' + element.id + '"],' + - '[data-toggle="collapse"][data-target="#' + element.id + '"]') - this.transitioning = null - - if (this.options.parent) { - this.$parent = this.getParent() - } else { - this.addAriaAndCollapsedClass(this.$element, this.$trigger) - } - - if (this.options.toggle) this.toggle() - } - - Collapse.VERSION = '3.3.7' - - Collapse.TRANSITION_DURATION = 350 - - Collapse.DEFAULTS = { - toggle: true - } - - Collapse.prototype.dimension = function () { - var hasWidth = this.$element.hasClass('width') - return hasWidth ? 'width' : 'height' - } - - Collapse.prototype.show = function () { - if (this.transitioning || this.$element.hasClass('in')) return - - var activesData - var actives = this.$parent && this.$parent.children('.panel').children('.in, .collapsing') - - if (actives && actives.length) { - activesData = actives.data('bs.collapse') - if (activesData && activesData.transitioning) return - } - - var startEvent = $.Event('show.bs.collapse') - this.$element.trigger(startEvent) - if (startEvent.isDefaultPrevented()) return - - if (actives && actives.length) { - Plugin.call(actives, 'hide') - activesData || actives.data('bs.collapse', null) - } - - var dimension = this.dimension() - - this.$element - .removeClass('collapse') - .addClass('collapsing')[dimension](0) - .attr('aria-expanded', true) - - this.$trigger - .removeClass('collapsed') - .attr('aria-expanded', true) - - this.transitioning = 1 - - var complete = function () { - this.$element - .removeClass('collapsing') - .addClass('collapse in')[dimension]('') - this.transitioning = 0 - this.$element - .trigger('shown.bs.collapse') - } - - if (!$.support.transition) return complete.call(this) - - var scrollSize = $.camelCase(['scroll', dimension].join('-')) - - this.$element - .one('bsTransitionEnd', $.proxy(complete, this)) - .emulateTransitionEnd(Collapse.TRANSITION_DURATION)[dimension](this.$element[0][scrollSize]) - } - - Collapse.prototype.hide = function () { - if (this.transitioning || !this.$element.hasClass('in')) return - - var startEvent = $.Event('hide.bs.collapse') - this.$element.trigger(startEvent) - if (startEvent.isDefaultPrevented()) return - - var dimension = this.dimension() - - this.$element[dimension](this.$element[dimension]())[0].offsetHeight - - this.$element - .addClass('collapsing') - .removeClass('collapse in') - .attr('aria-expanded', false) - - this.$trigger - .addClass('collapsed') - .attr('aria-expanded', false) - - this.transitioning = 1 - - var complete = function () { - this.transitioning = 0 - this.$element - .removeClass('collapsing') - .addClass('collapse') - .trigger('hidden.bs.collapse') - } - - if (!$.support.transition) return complete.call(this) - - this.$element - [dimension](0) - .one('bsTransitionEnd', $.proxy(complete, this)) - .emulateTransitionEnd(Collapse.TRANSITION_DURATION) - } - - Collapse.prototype.toggle = function () { - this[this.$element.hasClass('in') ? 'hide' : 'show']() - } - - Collapse.prototype.getParent = function () { - return $(this.options.parent) - .find('[data-toggle="collapse"][data-parent="' + this.options.parent + '"]') - .each($.proxy(function (i, element) { - var $element = $(element) - this.addAriaAndCollapsedClass(getTargetFromTrigger($element), $element) - }, this)) - .end() - } - - Collapse.prototype.addAriaAndCollapsedClass = function ($element, $trigger) { - var isOpen = $element.hasClass('in') - - $element.attr('aria-expanded', isOpen) - $trigger - .toggleClass('collapsed', !isOpen) - .attr('aria-expanded', isOpen) - } - - function getTargetFromTrigger($trigger) { - var href - var target = $trigger.attr('data-target') - || (href = $trigger.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '') // strip for ie7 - - return $(target) - } - - - // COLLAPSE PLUGIN DEFINITION - // ========================== - - function Plugin(option) { - return this.each(function () { - var $this = $(this) - var data = $this.data('bs.collapse') - var options = $.extend({}, Collapse.DEFAULTS, $this.data(), typeof option == 'object' && option) - - if (!data && options.toggle && /show|hide/.test(option)) options.toggle = false - if (!data) $this.data('bs.collapse', (data = new Collapse(this, options))) - if (typeof option == 'string') data[option]() - }) - } - - var old = $.fn.collapse - - $.fn.collapse = Plugin - $.fn.collapse.Constructor = Collapse - - - // COLLAPSE NO CONFLICT - // ==================== - - $.fn.collapse.noConflict = function () { - $.fn.collapse = old - return this - } - - - // COLLAPSE DATA-API - // ================= - - $(document).on('click.bs.collapse.data-api', '[data-toggle="collapse"]', function (e) { - var $this = $(this) - - if (!$this.attr('data-target')) e.preventDefault() - - var $target = getTargetFromTrigger($this) - var data = $target.data('bs.collapse') - var option = data ? 'toggle' : $this.data() - - Plugin.call($target, option) - }) - -}(jQuery); - -/* ======================================================================== - * Bootstrap: dropdown.js v3.3.7 - * http://getbootstrap.com/javascript/#dropdowns - * ======================================================================== - * Copyright 2011-2016 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - * ======================================================================== */ - - -+function ($) { - 'use strict'; - - // DROPDOWN CLASS DEFINITION - // ========================= - - var backdrop = '.dropdown-backdrop' - var toggle = '[data-toggle="dropdown"]' - var Dropdown = function (element) { - $(element).on('click.bs.dropdown', this.toggle) - } - - Dropdown.VERSION = '3.3.7' - - function getParent($this) { - var selector = $this.attr('data-target') - - if (!selector) { - selector = $this.attr('href') - selector = selector && /#[A-Za-z]/.test(selector) && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7 - } - - var $parent = selector && $(selector) - - return $parent && $parent.length ? $parent : $this.parent() - } - - function clearMenus(e) { - if (e && e.which === 3) return - $(backdrop).remove() - $(toggle).each(function () { - var $this = $(this) - var $parent = getParent($this) - var relatedTarget = { relatedTarget: this } - - if (!$parent.hasClass('open')) return - - if (e && e.type == 'click' && /input|textarea/i.test(e.target.tagName) && $.contains($parent[0], e.target)) return - - $parent.trigger(e = $.Event('hide.bs.dropdown', relatedTarget)) - - if (e.isDefaultPrevented()) return - - $this.attr('aria-expanded', 'false') - $parent.removeClass('open').trigger($.Event('hidden.bs.dropdown', relatedTarget)) - }) - } - - Dropdown.prototype.toggle = function (e) { - var $this = $(this) - - if ($this.is('.disabled, :disabled')) return - - var $parent = getParent($this) - var isActive = $parent.hasClass('open') - - clearMenus() - - if (!isActive) { - if ('ontouchstart' in document.documentElement && !$parent.closest('.navbar-nav').length) { - // if mobile we use a backdrop because click events don't delegate - $(document.createElement('div')) - .addClass('dropdown-backdrop') - .insertAfter($(this)) - .on('click', clearMenus) - } - - var relatedTarget = { relatedTarget: this } - $parent.trigger(e = $.Event('show.bs.dropdown', relatedTarget)) - - if (e.isDefaultPrevented()) return - - $this - .trigger('focus') - .attr('aria-expanded', 'true') - - $parent - .toggleClass('open') - .trigger($.Event('shown.bs.dropdown', relatedTarget)) - } - - return false - } - - Dropdown.prototype.keydown = function (e) { - if (!/(38|40|27|32)/.test(e.which) || /input|textarea/i.test(e.target.tagName)) return - - var $this = $(this) - - e.preventDefault() - e.stopPropagation() - - if ($this.is('.disabled, :disabled')) return - - var $parent = getParent($this) - var isActive = $parent.hasClass('open') - - if (!isActive && e.which != 27 || isActive && e.which == 27) { - if (e.which == 27) $parent.find(toggle).trigger('focus') - return $this.trigger('click') - } - - var desc = ' li:not(.disabled):visible a' - var $items = $parent.find('.dropdown-menu' + desc) - - if (!$items.length) return - - var index = $items.index(e.target) - - if (e.which == 38 && index > 0) index-- // up - if (e.which == 40 && index < $items.length - 1) index++ // down - if (!~index) index = 0 - - $items.eq(index).trigger('focus') - } - - - // DROPDOWN PLUGIN DEFINITION - // ========================== - - function Plugin(option) { - return this.each(function () { - var $this = $(this) - var data = $this.data('bs.dropdown') - - if (!data) $this.data('bs.dropdown', (data = new Dropdown(this))) - if (typeof option == 'string') data[option].call($this) - }) - } - - var old = $.fn.dropdown - - $.fn.dropdown = Plugin - $.fn.dropdown.Constructor = Dropdown - - - // DROPDOWN NO CONFLICT - // ==================== - - $.fn.dropdown.noConflict = function () { - $.fn.dropdown = old - return this - } - - - // APPLY TO STANDARD DROPDOWN ELEMENTS - // =================================== - - $(document) - .on('click.bs.dropdown.data-api', clearMenus) - .on('click.bs.dropdown.data-api', '.dropdown form', function (e) { e.stopPropagation() }) - .on('click.bs.dropdown.data-api', toggle, Dropdown.prototype.toggle) - .on('keydown.bs.dropdown.data-api', toggle, Dropdown.prototype.keydown) - .on('keydown.bs.dropdown.data-api', '.dropdown-menu', Dropdown.prototype.keydown) - -}(jQuery); - -/* ======================================================================== - * Bootstrap: modal.js v3.3.7 - * http://getbootstrap.com/javascript/#modals - * ======================================================================== - * Copyright 2011-2016 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - * ======================================================================== */ - - -+function ($) { - 'use strict'; - - // MODAL CLASS DEFINITION - // ====================== - - var Modal = function (element, options) { - this.options = options - this.$body = $(document.body) - this.$element = $(element) - this.$dialog = this.$element.find('.modal-dialog') - this.$backdrop = null - this.isShown = null - this.originalBodyPad = null - this.scrollbarWidth = 0 - this.ignoreBackdropClick = false - - if (this.options.remote) { - this.$element - .find('.modal-content') - .load(this.options.remote, $.proxy(function () { - this.$element.trigger('loaded.bs.modal') - }, this)) - } - } - - Modal.VERSION = '3.3.7' - - Modal.TRANSITION_DURATION = 300 - Modal.BACKDROP_TRANSITION_DURATION = 150 - - Modal.DEFAULTS = { - backdrop: true, - keyboard: true, - show: true - } - - Modal.prototype.toggle = function (_relatedTarget) { - return this.isShown ? this.hide() : this.show(_relatedTarget) - } - - Modal.prototype.show = function (_relatedTarget) { - var that = this - var e = $.Event('show.bs.modal', { relatedTarget: _relatedTarget }) - - this.$element.trigger(e) - - if (this.isShown || e.isDefaultPrevented()) return - - this.isShown = true - - this.checkScrollbar() - this.setScrollbar() - this.$body.addClass('modal-open') - - this.escape() - this.resize() - - this.$element.on('click.dismiss.bs.modal', '[data-dismiss="modal"]', $.proxy(this.hide, this)) - - this.$dialog.on('mousedown.dismiss.bs.modal', function () { - that.$element.one('mouseup.dismiss.bs.modal', function (e) { - if ($(e.target).is(that.$element)) that.ignoreBackdropClick = true - }) - }) - - this.backdrop(function () { - var transition = $.support.transition && that.$element.hasClass('fade') - - if (!that.$element.parent().length) { - that.$element.appendTo(that.$body) // don't move modals dom position - } - - that.$element - .show() - .scrollTop(0) - - that.adjustDialog() - - if (transition) { - that.$element[0].offsetWidth // force reflow - } - - that.$element.addClass('in') - - that.enforceFocus() - - var e = $.Event('shown.bs.modal', { relatedTarget: _relatedTarget }) - - transition ? - that.$dialog // wait for modal to slide in - .one('bsTransitionEnd', function () { - that.$element.trigger('focus').trigger(e) - }) - .emulateTransitionEnd(Modal.TRANSITION_DURATION) : - that.$element.trigger('focus').trigger(e) - }) - } - - Modal.prototype.hide = function (e) { - if (e) e.preventDefault() - - e = $.Event('hide.bs.modal') - - this.$element.trigger(e) - - if (!this.isShown || e.isDefaultPrevented()) return - - this.isShown = false - - this.escape() - this.resize() - - $(document).off('focusin.bs.modal') - - this.$element - .removeClass('in') - .off('click.dismiss.bs.modal') - .off('mouseup.dismiss.bs.modal') - - this.$dialog.off('mousedown.dismiss.bs.modal') - - $.support.transition && this.$element.hasClass('fade') ? - this.$element - .one('bsTransitionEnd', $.proxy(this.hideModal, this)) - .emulateTransitionEnd(Modal.TRANSITION_DURATION) : - this.hideModal() - } - - Modal.prototype.enforceFocus = function () { - $(document) - .off('focusin.bs.modal') // guard against infinite focus loop - .on('focusin.bs.modal', $.proxy(function (e) { - if (document !== e.target && - this.$element[0] !== e.target && - !this.$element.has(e.target).length) { - this.$element.trigger('focus') - } - }, this)) - } - - Modal.prototype.escape = function () { - if (this.isShown && this.options.keyboard) { - this.$element.on('keydown.dismiss.bs.modal', $.proxy(function (e) { - e.which == 27 && this.hide() - }, this)) - } else if (!this.isShown) { - this.$element.off('keydown.dismiss.bs.modal') - } - } - - Modal.prototype.resize = function () { - if (this.isShown) { - $(window).on('resize.bs.modal', $.proxy(this.handleUpdate, this)) - } else { - $(window).off('resize.bs.modal') - } - } - - Modal.prototype.hideModal = function () { - var that = this - this.$element.hide() - this.backdrop(function () { - that.$body.removeClass('modal-open') - that.resetAdjustments() - that.resetScrollbar() - that.$element.trigger('hidden.bs.modal') - }) - } - - Modal.prototype.removeBackdrop = function () { - this.$backdrop && this.$backdrop.remove() - this.$backdrop = null - } - - Modal.prototype.backdrop = function (callback) { - var that = this - var animate = this.$element.hasClass('fade') ? 'fade' : '' - - if (this.isShown && this.options.backdrop) { - var doAnimate = $.support.transition && animate - - this.$backdrop = $(document.createElement('div')) - .addClass('modal-backdrop ' + animate) - .appendTo(this.$body) - - this.$element.on('click.dismiss.bs.modal', $.proxy(function (e) { - if (this.ignoreBackdropClick) { - this.ignoreBackdropClick = false - return - } - if (e.target !== e.currentTarget) return - this.options.backdrop == 'static' - ? this.$element[0].focus() - : this.hide() - }, this)) - - if (doAnimate) this.$backdrop[0].offsetWidth // force reflow - - this.$backdrop.addClass('in') - - if (!callback) return - - doAnimate ? - this.$backdrop - .one('bsTransitionEnd', callback) - .emulateTransitionEnd(Modal.BACKDROP_TRANSITION_DURATION) : - callback() - - } else if (!this.isShown && this.$backdrop) { - this.$backdrop.removeClass('in') - - var callbackRemove = function () { - that.removeBackdrop() - callback && callback() - } - $.support.transition && this.$element.hasClass('fade') ? - this.$backdrop - .one('bsTransitionEnd', callbackRemove) - .emulateTransitionEnd(Modal.BACKDROP_TRANSITION_DURATION) : - callbackRemove() - - } else if (callback) { - callback() - } - } - - // these following methods are used to handle overflowing modals - - Modal.prototype.handleUpdate = function () { - this.adjustDialog() - } - - Modal.prototype.adjustDialog = function () { - var modalIsOverflowing = this.$element[0].scrollHeight > document.documentElement.clientHeight - - this.$element.css({ - paddingLeft: !this.bodyIsOverflowing && modalIsOverflowing ? this.scrollbarWidth : '', - paddingRight: this.bodyIsOverflowing && !modalIsOverflowing ? this.scrollbarWidth : '' - }) - } - - Modal.prototype.resetAdjustments = function () { - this.$element.css({ - paddingLeft: '', - paddingRight: '' - }) - } - - Modal.prototype.checkScrollbar = function () { - var fullWindowWidth = window.innerWidth - if (!fullWindowWidth) { // workaround for missing window.innerWidth in IE8 - var documentElementRect = document.documentElement.getBoundingClientRect() - fullWindowWidth = documentElementRect.right - Math.abs(documentElementRect.left) - } - this.bodyIsOverflowing = document.body.clientWidth < fullWindowWidth - this.scrollbarWidth = this.measureScrollbar() - } - - Modal.prototype.setScrollbar = function () { - var bodyPad = parseInt((this.$body.css('padding-right') || 0), 10) - this.originalBodyPad = document.body.style.paddingRight || '' - if (this.bodyIsOverflowing) this.$body.css('padding-right', bodyPad + this.scrollbarWidth) - } - - Modal.prototype.resetScrollbar = function () { - this.$body.css('padding-right', this.originalBodyPad) - } - - Modal.prototype.measureScrollbar = function () { // thx walsh - var scrollDiv = document.createElement('div') - scrollDiv.className = 'modal-scrollbar-measure' - this.$body.append(scrollDiv) - var scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth - this.$body[0].removeChild(scrollDiv) - return scrollbarWidth - } - - - // MODAL PLUGIN DEFINITION - // ======================= - - function Plugin(option, _relatedTarget) { - return this.each(function () { - var $this = $(this) - var data = $this.data('bs.modal') - var options = $.extend({}, Modal.DEFAULTS, $this.data(), typeof option == 'object' && option) - - if (!data) $this.data('bs.modal', (data = new Modal(this, options))) - if (typeof option == 'string') data[option](_relatedTarget) - else if (options.show) data.show(_relatedTarget) - }) - } - - var old = $.fn.modal - - $.fn.modal = Plugin - $.fn.modal.Constructor = Modal - - - // MODAL NO CONFLICT - // ================= - - $.fn.modal.noConflict = function () { - $.fn.modal = old - return this - } - - - // MODAL DATA-API - // ============== - - $(document).on('click.bs.modal.data-api', '[data-toggle="modal"]', function (e) { - var $this = $(this) - var href = $this.attr('href') - var $target = $($this.attr('data-target') || (href && href.replace(/.*(?=#[^\s]+$)/, ''))) // strip for ie7 - var option = $target.data('bs.modal') ? 'toggle' : $.extend({ remote: !/#/.test(href) && href }, $target.data(), $this.data()) - - if ($this.is('a')) e.preventDefault() - - $target.one('show.bs.modal', function (showEvent) { - if (showEvent.isDefaultPrevented()) return // only register focus restorer if modal will actually get shown - $target.one('hidden.bs.modal', function () { - $this.is(':visible') && $this.trigger('focus') - }) - }) - Plugin.call($target, option, this) - }) - -}(jQuery); - -/* ======================================================================== - * Bootstrap: tooltip.js v3.3.7 - * http://getbootstrap.com/javascript/#tooltip - * Inspired by the original jQuery.tipsy by Jason Frame - * ======================================================================== - * Copyright 2011-2016 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - * ======================================================================== */ - - -+function ($) { - 'use strict'; - - // TOOLTIP PUBLIC CLASS DEFINITION - // =============================== - - var Tooltip = function (element, options) { - this.type = null - this.options = null - this.enabled = null - this.timeout = null - this.hoverState = null - this.$element = null - this.inState = null - - this.init('tooltip', element, options) - } - - Tooltip.VERSION = '3.3.7' - - Tooltip.TRANSITION_DURATION = 150 - - Tooltip.DEFAULTS = { - animation: true, - placement: 'top', - selector: false, - template: '', - trigger: 'hover focus', - title: '', - delay: 0, - html: false, - container: false, - viewport: { - selector: 'body', - padding: 0 - } - } - - Tooltip.prototype.init = function (type, element, options) { - this.enabled = true - this.type = type - this.$element = $(element) - this.options = this.getOptions(options) - this.$viewport = this.options.viewport && $($.isFunction(this.options.viewport) ? this.options.viewport.call(this, this.$element) : (this.options.viewport.selector || this.options.viewport)) - this.inState = { click: false, hover: false, focus: false } - - if (this.$element[0] instanceof document.constructor && !this.options.selector) { - throw new Error('`selector` option must be specified when initializing ' + this.type + ' on the window.document object!') - } - - var triggers = this.options.trigger.split(' ') - - for (var i = triggers.length; i--;) { - var trigger = triggers[i] - - if (trigger == 'click') { - this.$element.on('click.' + this.type, this.options.selector, $.proxy(this.toggle, this)) - } else if (trigger != 'manual') { - var eventIn = trigger == 'hover' ? 'mouseenter' : 'focusin' - var eventOut = trigger == 'hover' ? 'mouseleave' : 'focusout' - - this.$element.on(eventIn + '.' + this.type, this.options.selector, $.proxy(this.enter, this)) - this.$element.on(eventOut + '.' + this.type, this.options.selector, $.proxy(this.leave, this)) - } - } - - this.options.selector ? - (this._options = $.extend({}, this.options, { trigger: 'manual', selector: '' })) : - this.fixTitle() - } - - Tooltip.prototype.getDefaults = function () { - return Tooltip.DEFAULTS - } - - Tooltip.prototype.getOptions = function (options) { - options = $.extend({}, this.getDefaults(), this.$element.data(), options) - - if (options.delay && typeof options.delay == 'number') { - options.delay = { - show: options.delay, - hide: options.delay - } - } - - return options - } - - Tooltip.prototype.getDelegateOptions = function () { - var options = {} - var defaults = this.getDefaults() - - this._options && $.each(this._options, function (key, value) { - if (defaults[key] != value) options[key] = value - }) - - return options - } - - Tooltip.prototype.enter = function (obj) { - var self = obj instanceof this.constructor ? - obj : $(obj.currentTarget).data('bs.' + this.type) - - if (!self) { - self = new this.constructor(obj.currentTarget, this.getDelegateOptions()) - $(obj.currentTarget).data('bs.' + this.type, self) - } - - if (obj instanceof $.Event) { - self.inState[obj.type == 'focusin' ? 'focus' : 'hover'] = true - } - - if (self.tip().hasClass('in') || self.hoverState == 'in') { - self.hoverState = 'in' - return - } - - clearTimeout(self.timeout) - - self.hoverState = 'in' - - if (!self.options.delay || !self.options.delay.show) return self.show() - - self.timeout = setTimeout(function () { - if (self.hoverState == 'in') self.show() - }, self.options.delay.show) - } - - Tooltip.prototype.isInStateTrue = function () { - for (var key in this.inState) { - if (this.inState[key]) return true - } - - return false - } - - Tooltip.prototype.leave = function (obj) { - var self = obj instanceof this.constructor ? - obj : $(obj.currentTarget).data('bs.' + this.type) - - if (!self) { - self = new this.constructor(obj.currentTarget, this.getDelegateOptions()) - $(obj.currentTarget).data('bs.' + this.type, self) - } - - if (obj instanceof $.Event) { - self.inState[obj.type == 'focusout' ? 'focus' : 'hover'] = false - } - - if (self.isInStateTrue()) return - - clearTimeout(self.timeout) - - self.hoverState = 'out' - - if (!self.options.delay || !self.options.delay.hide) return self.hide() - - self.timeout = setTimeout(function () { - if (self.hoverState == 'out') self.hide() - }, self.options.delay.hide) - } - - Tooltip.prototype.show = function () { - var e = $.Event('show.bs.' + this.type) - - if (this.hasContent() && this.enabled) { - this.$element.trigger(e) - - var inDom = $.contains(this.$element[0].ownerDocument.documentElement, this.$element[0]) - if (e.isDefaultPrevented() || !inDom) return - var that = this - - var $tip = this.tip() - - var tipId = this.getUID(this.type) - - this.setContent() - $tip.attr('id', tipId) - this.$element.attr('aria-describedby', tipId) - - if (this.options.animation) $tip.addClass('fade') - - var placement = typeof this.options.placement == 'function' ? - this.options.placement.call(this, $tip[0], this.$element[0]) : - this.options.placement - - var autoToken = /\s?auto?\s?/i - var autoPlace = autoToken.test(placement) - if (autoPlace) placement = placement.replace(autoToken, '') || 'top' - - $tip - .detach() - .css({ top: 0, left: 0, display: 'block' }) - .addClass(placement) - .data('bs.' + this.type, this) - - this.options.container ? $tip.appendTo(this.options.container) : $tip.insertAfter(this.$element) - this.$element.trigger('inserted.bs.' + this.type) - - var pos = this.getPosition() - var actualWidth = $tip[0].offsetWidth - var actualHeight = $tip[0].offsetHeight - - if (autoPlace) { - var orgPlacement = placement - var viewportDim = this.getPosition(this.$viewport) - - placement = placement == 'bottom' && pos.bottom + actualHeight > viewportDim.bottom ? 'top' : - placement == 'top' && pos.top - actualHeight < viewportDim.top ? 'bottom' : - placement == 'right' && pos.right + actualWidth > viewportDim.width ? 'left' : - placement == 'left' && pos.left - actualWidth < viewportDim.left ? 'right' : - placement - - $tip - .removeClass(orgPlacement) - .addClass(placement) - } - - var calculatedOffset = this.getCalculatedOffset(placement, pos, actualWidth, actualHeight) - - this.applyPlacement(calculatedOffset, placement) - - var complete = function () { - var prevHoverState = that.hoverState - that.$element.trigger('shown.bs.' + that.type) - that.hoverState = null - - if (prevHoverState == 'out') that.leave(that) - } - - $.support.transition && this.$tip.hasClass('fade') ? - $tip - .one('bsTransitionEnd', complete) - .emulateTransitionEnd(Tooltip.TRANSITION_DURATION) : - complete() - } - } - - Tooltip.prototype.applyPlacement = function (offset, placement) { - var $tip = this.tip() - var width = $tip[0].offsetWidth - var height = $tip[0].offsetHeight - - // manually read margins because getBoundingClientRect includes difference - var marginTop = parseInt($tip.css('margin-top'), 10) - var marginLeft = parseInt($tip.css('margin-left'), 10) - - // we must check for NaN for ie 8/9 - if (isNaN(marginTop)) marginTop = 0 - if (isNaN(marginLeft)) marginLeft = 0 - - offset.top += marginTop - offset.left += marginLeft - - // $.fn.offset doesn't round pixel values - // so we use setOffset directly with our own function B-0 - $.offset.setOffset($tip[0], $.extend({ - using: function (props) { - $tip.css({ - top: Math.round(props.top), - left: Math.round(props.left) - }) - } - }, offset), 0) - - $tip.addClass('in') - - // check to see if placing tip in new offset caused the tip to resize itself - var actualWidth = $tip[0].offsetWidth - var actualHeight = $tip[0].offsetHeight - - if (placement == 'top' && actualHeight != height) { - offset.top = offset.top + height - actualHeight - } - - var delta = this.getViewportAdjustedDelta(placement, offset, actualWidth, actualHeight) - - if (delta.left) offset.left += delta.left - else offset.top += delta.top - - var isVertical = /top|bottom/.test(placement) - var arrowDelta = isVertical ? delta.left * 2 - width + actualWidth : delta.top * 2 - height + actualHeight - var arrowOffsetPosition = isVertical ? 'offsetWidth' : 'offsetHeight' - - $tip.offset(offset) - this.replaceArrow(arrowDelta, $tip[0][arrowOffsetPosition], isVertical) - } - - Tooltip.prototype.replaceArrow = function (delta, dimension, isVertical) { - this.arrow() - .css(isVertical ? 'left' : 'top', 50 * (1 - delta / dimension) + '%') - .css(isVertical ? 'top' : 'left', '') - } - - Tooltip.prototype.setContent = function () { - var $tip = this.tip() - var title = this.getTitle() - - $tip.find('.tooltip-inner')[this.options.html ? 'html' : 'text'](title) - $tip.removeClass('fade in top bottom left right') - } - - Tooltip.prototype.hide = function (callback) { - var that = this - var $tip = $(this.$tip) - var e = $.Event('hide.bs.' + this.type) - - function complete() { - if (that.hoverState != 'in') $tip.detach() - if (that.$element) { // TODO: Check whether guarding this code with this `if` is really necessary. - that.$element - .removeAttr('aria-describedby') - .trigger('hidden.bs.' + that.type) - } - callback && callback() - } - - this.$element.trigger(e) - - if (e.isDefaultPrevented()) return - - $tip.removeClass('in') - - $.support.transition && $tip.hasClass('fade') ? - $tip - .one('bsTransitionEnd', complete) - .emulateTransitionEnd(Tooltip.TRANSITION_DURATION) : - complete() - - this.hoverState = null - - return this - } - - Tooltip.prototype.fixTitle = function () { - var $e = this.$element - if ($e.attr('title') || typeof $e.attr('data-original-title') != 'string') { - $e.attr('data-original-title', $e.attr('title') || '').attr('title', '') - } - } - - Tooltip.prototype.hasContent = function () { - return this.getTitle() - } - - Tooltip.prototype.getPosition = function ($element) { - $element = $element || this.$element - - var el = $element[0] - var isBody = el.tagName == 'BODY' - - var elRect = el.getBoundingClientRect() - if (elRect.width == null) { - // width and height are missing in IE8, so compute them manually; see https://github.com/twbs/bootstrap/issues/14093 - elRect = $.extend({}, elRect, { width: elRect.right - elRect.left, height: elRect.bottom - elRect.top }) - } - var isSvg = window.SVGElement && el instanceof window.SVGElement - // Avoid using $.offset() on SVGs since it gives incorrect results in jQuery 3. - // See https://github.com/twbs/bootstrap/issues/20280 - var elOffset = isBody ? { top: 0, left: 0 } : (isSvg ? null : $element.offset()) - var scroll = { scroll: isBody ? document.documentElement.scrollTop || document.body.scrollTop : $element.scrollTop() } - var outerDims = isBody ? { width: $(window).width(), height: $(window).height() } : null - - return $.extend({}, elRect, scroll, outerDims, elOffset) - } - - Tooltip.prototype.getCalculatedOffset = function (placement, pos, actualWidth, actualHeight) { - return placement == 'bottom' ? { top: pos.top + pos.height, left: pos.left + pos.width / 2 - actualWidth / 2 } : - placement == 'top' ? { top: pos.top - actualHeight, left: pos.left + pos.width / 2 - actualWidth / 2 } : - placement == 'left' ? { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left - actualWidth } : - /* placement == 'right' */ { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left + pos.width } - - } - - Tooltip.prototype.getViewportAdjustedDelta = function (placement, pos, actualWidth, actualHeight) { - var delta = { top: 0, left: 0 } - if (!this.$viewport) return delta - - var viewportPadding = this.options.viewport && this.options.viewport.padding || 0 - var viewportDimensions = this.getPosition(this.$viewport) - - if (/right|left/.test(placement)) { - var topEdgeOffset = pos.top - viewportPadding - viewportDimensions.scroll - var bottomEdgeOffset = pos.top + viewportPadding - viewportDimensions.scroll + actualHeight - if (topEdgeOffset < viewportDimensions.top) { // top overflow - delta.top = viewportDimensions.top - topEdgeOffset - } else if (bottomEdgeOffset > viewportDimensions.top + viewportDimensions.height) { // bottom overflow - delta.top = viewportDimensions.top + viewportDimensions.height - bottomEdgeOffset - } - } else { - var leftEdgeOffset = pos.left - viewportPadding - var rightEdgeOffset = pos.left + viewportPadding + actualWidth - if (leftEdgeOffset < viewportDimensions.left) { // left overflow - delta.left = viewportDimensions.left - leftEdgeOffset - } else if (rightEdgeOffset > viewportDimensions.right) { // right overflow - delta.left = viewportDimensions.left + viewportDimensions.width - rightEdgeOffset - } - } - - return delta - } - - Tooltip.prototype.getTitle = function () { - var title - var $e = this.$element - var o = this.options - - title = $e.attr('data-original-title') - || (typeof o.title == 'function' ? o.title.call($e[0]) : o.title) - - return title - } - - Tooltip.prototype.getUID = function (prefix) { - do prefix += ~~(Math.random() * 1000000) - while (document.getElementById(prefix)) - return prefix - } - - Tooltip.prototype.tip = function () { - if (!this.$tip) { - this.$tip = $(this.options.template) - if (this.$tip.length != 1) { - throw new Error(this.type + ' `template` option must consist of exactly 1 top-level element!') - } - } - return this.$tip - } - - Tooltip.prototype.arrow = function () { - return (this.$arrow = this.$arrow || this.tip().find('.tooltip-arrow')) - } - - Tooltip.prototype.enable = function () { - this.enabled = true - } - - Tooltip.prototype.disable = function () { - this.enabled = false - } - - Tooltip.prototype.toggleEnabled = function () { - this.enabled = !this.enabled - } - - Tooltip.prototype.toggle = function (e) { - var self = this - if (e) { - self = $(e.currentTarget).data('bs.' + this.type) - if (!self) { - self = new this.constructor(e.currentTarget, this.getDelegateOptions()) - $(e.currentTarget).data('bs.' + this.type, self) - } - } - - if (e) { - self.inState.click = !self.inState.click - if (self.isInStateTrue()) self.enter(self) - else self.leave(self) - } else { - self.tip().hasClass('in') ? self.leave(self) : self.enter(self) - } - } - - Tooltip.prototype.destroy = function () { - var that = this - clearTimeout(this.timeout) - this.hide(function () { - that.$element.off('.' + that.type).removeData('bs.' + that.type) - if (that.$tip) { - that.$tip.detach() - } - that.$tip = null - that.$arrow = null - that.$viewport = null - that.$element = null - }) - } - - - // TOOLTIP PLUGIN DEFINITION - // ========================= - - function Plugin(option) { - return this.each(function () { - var $this = $(this) - var data = $this.data('bs.tooltip') - var options = typeof option == 'object' && option - - if (!data && /destroy|hide/.test(option)) return - if (!data) $this.data('bs.tooltip', (data = new Tooltip(this, options))) - if (typeof option == 'string') data[option]() - }) - } - - var old = $.fn.tooltip - - $.fn.tooltip = Plugin - $.fn.tooltip.Constructor = Tooltip - - - // TOOLTIP NO CONFLICT - // =================== - - $.fn.tooltip.noConflict = function () { - $.fn.tooltip = old - return this - } - -}(jQuery); - -/* ======================================================================== - * Bootstrap: popover.js v3.3.7 - * http://getbootstrap.com/javascript/#popovers - * ======================================================================== - * Copyright 2011-2016 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - * ======================================================================== */ - - -+function ($) { - 'use strict'; - - // POPOVER PUBLIC CLASS DEFINITION - // =============================== - - var Popover = function (element, options) { - this.init('popover', element, options) - } - - if (!$.fn.tooltip) throw new Error('Popover requires tooltip.js') - - Popover.VERSION = '3.3.7' - - Popover.DEFAULTS = $.extend({}, $.fn.tooltip.Constructor.DEFAULTS, { - placement: 'right', - trigger: 'click', - content: '', - template: '' - }) - - - // NOTE: POPOVER EXTENDS tooltip.js - // ================================ - - Popover.prototype = $.extend({}, $.fn.tooltip.Constructor.prototype) - - Popover.prototype.constructor = Popover - - Popover.prototype.getDefaults = function () { - return Popover.DEFAULTS - } - - Popover.prototype.setContent = function () { - var $tip = this.tip() - var title = this.getTitle() - var content = this.getContent() - - $tip.find('.popover-title')[this.options.html ? 'html' : 'text'](title) - $tip.find('.popover-content').children().detach().end()[ // we use append for html objects to maintain js events - this.options.html ? (typeof content == 'string' ? 'html' : 'append') : 'text' - ](content) - - $tip.removeClass('fade top bottom left right in') - - // IE8 doesn't accept hiding via the `:empty` pseudo selector, we have to do - // this manually by checking the contents. - if (!$tip.find('.popover-title').html()) $tip.find('.popover-title').hide() - } - - Popover.prototype.hasContent = function () { - return this.getTitle() || this.getContent() - } - - Popover.prototype.getContent = function () { - var $e = this.$element - var o = this.options - - return $e.attr('data-content') - || (typeof o.content == 'function' ? - o.content.call($e[0]) : - o.content) - } - - Popover.prototype.arrow = function () { - return (this.$arrow = this.$arrow || this.tip().find('.arrow')) - } - - - // POPOVER PLUGIN DEFINITION - // ========================= - - function Plugin(option) { - return this.each(function () { - var $this = $(this) - var data = $this.data('bs.popover') - var options = typeof option == 'object' && option - - if (!data && /destroy|hide/.test(option)) return - if (!data) $this.data('bs.popover', (data = new Popover(this, options))) - if (typeof option == 'string') data[option]() - }) - } - - var old = $.fn.popover - - $.fn.popover = Plugin - $.fn.popover.Constructor = Popover - - - // POPOVER NO CONFLICT - // =================== - - $.fn.popover.noConflict = function () { - $.fn.popover = old - return this - } - -}(jQuery); - -/* ======================================================================== - * Bootstrap: scrollspy.js v3.3.7 - * http://getbootstrap.com/javascript/#scrollspy - * ======================================================================== - * Copyright 2011-2016 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - * ======================================================================== */ - - -+function ($) { - 'use strict'; - - // SCROLLSPY CLASS DEFINITION - // ========================== - - function ScrollSpy(element, options) { - this.$body = $(document.body) - this.$scrollElement = $(element).is(document.body) ? $(window) : $(element) - this.options = $.extend({}, ScrollSpy.DEFAULTS, options) - this.selector = (this.options.target || '') + ' .nav li > a' - this.offsets = [] - this.targets = [] - this.activeTarget = null - this.scrollHeight = 0 - - this.$scrollElement.on('scroll.bs.scrollspy', $.proxy(this.process, this)) - this.refresh() - this.process() - } - - ScrollSpy.VERSION = '3.3.7' - - ScrollSpy.DEFAULTS = { - offset: 10 - } - - ScrollSpy.prototype.getScrollHeight = function () { - return this.$scrollElement[0].scrollHeight || Math.max(this.$body[0].scrollHeight, document.documentElement.scrollHeight) - } - - ScrollSpy.prototype.refresh = function () { - var that = this - var offsetMethod = 'offset' - var offsetBase = 0 - - this.offsets = [] - this.targets = [] - this.scrollHeight = this.getScrollHeight() - - if (!$.isWindow(this.$scrollElement[0])) { - offsetMethod = 'position' - offsetBase = this.$scrollElement.scrollTop() - } - - this.$body - .find(this.selector) - .map(function () { - var $el = $(this) - var href = $el.data('target') || $el.attr('href') - var $href = /^#./.test(href) && $(href) - - return ($href - && $href.length - && $href.is(':visible') - && [[$href[offsetMethod]().top + offsetBase, href]]) || null - }) - .sort(function (a, b) { return a[0] - b[0] }) - .each(function () { - that.offsets.push(this[0]) - that.targets.push(this[1]) - }) - } - - ScrollSpy.prototype.process = function () { - var scrollTop = this.$scrollElement.scrollTop() + this.options.offset - var scrollHeight = this.getScrollHeight() - var maxScroll = this.options.offset + scrollHeight - this.$scrollElement.height() - var offsets = this.offsets - var targets = this.targets - var activeTarget = this.activeTarget - var i - - if (this.scrollHeight != scrollHeight) { - this.refresh() - } - - if (scrollTop >= maxScroll) { - return activeTarget != (i = targets[targets.length - 1]) && this.activate(i) - } - - if (activeTarget && scrollTop < offsets[0]) { - this.activeTarget = null - return this.clear() - } - - for (i = offsets.length; i--;) { - activeTarget != targets[i] - && scrollTop >= offsets[i] - && (offsets[i + 1] === undefined || scrollTop < offsets[i + 1]) - && this.activate(targets[i]) - } - } - - ScrollSpy.prototype.activate = function (target) { - this.activeTarget = target - - this.clear() - - var selector = this.selector + - '[data-target="' + target + '"],' + - this.selector + '[href="' + target + '"]' - - var active = $(selector) - .parents('li') - .addClass('active') - - if (active.parent('.dropdown-menu').length) { - active = active - .closest('li.dropdown') - .addClass('active') - } - - active.trigger('activate.bs.scrollspy') - } - - ScrollSpy.prototype.clear = function () { - $(this.selector) - .parentsUntil(this.options.target, '.active') - .removeClass('active') - } - - - // SCROLLSPY PLUGIN DEFINITION - // =========================== - - function Plugin(option) { - return this.each(function () { - var $this = $(this) - var data = $this.data('bs.scrollspy') - var options = typeof option == 'object' && option - - if (!data) $this.data('bs.scrollspy', (data = new ScrollSpy(this, options))) - if (typeof option == 'string') data[option]() - }) - } - - var old = $.fn.scrollspy - - $.fn.scrollspy = Plugin - $.fn.scrollspy.Constructor = ScrollSpy - - - // SCROLLSPY NO CONFLICT - // ===================== - - $.fn.scrollspy.noConflict = function () { - $.fn.scrollspy = old - return this - } - - - // SCROLLSPY DATA-API - // ================== - - $(window).on('load.bs.scrollspy.data-api', function () { - $('[data-spy="scroll"]').each(function () { - var $spy = $(this) - Plugin.call($spy, $spy.data()) - }) - }) - -}(jQuery); - -/* ======================================================================== - * Bootstrap: tab.js v3.3.7 - * http://getbootstrap.com/javascript/#tabs - * ======================================================================== - * Copyright 2011-2016 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - * ======================================================================== */ - - -+function ($) { - 'use strict'; - - // TAB CLASS DEFINITION - // ==================== - - var Tab = function (element) { - // jscs:disable requireDollarBeforejQueryAssignment - this.element = $(element) - // jscs:enable requireDollarBeforejQueryAssignment - } - - Tab.VERSION = '3.3.7' - - Tab.TRANSITION_DURATION = 150 - - Tab.prototype.show = function () { - var $this = this.element - var $ul = $this.closest('ul:not(.dropdown-menu)') - var selector = $this.data('target') - - if (!selector) { - selector = $this.attr('href') - selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7 - } - - if ($this.parent('li').hasClass('active')) return - - var $previous = $ul.find('.active:last a') - var hideEvent = $.Event('hide.bs.tab', { - relatedTarget: $this[0] - }) - var showEvent = $.Event('show.bs.tab', { - relatedTarget: $previous[0] - }) - - $previous.trigger(hideEvent) - $this.trigger(showEvent) - - if (showEvent.isDefaultPrevented() || hideEvent.isDefaultPrevented()) return - - var $target = $(selector) - - this.activate($this.closest('li'), $ul) - this.activate($target, $target.parent(), function () { - $previous.trigger({ - type: 'hidden.bs.tab', - relatedTarget: $this[0] - }) - $this.trigger({ - type: 'shown.bs.tab', - relatedTarget: $previous[0] - }) - }) - } - - Tab.prototype.activate = function (element, container, callback) { - var $active = container.find('> .active') - var transition = callback - && $.support.transition - && ($active.length && $active.hasClass('fade') || !!container.find('> .fade').length) - - function next() { - $active - .removeClass('active') - .find('> .dropdown-menu > .active') - .removeClass('active') - .end() - .find('[data-toggle="tab"]') - .attr('aria-expanded', false) - - element - .addClass('active') - .find('[data-toggle="tab"]') - .attr('aria-expanded', true) - - if (transition) { - element[0].offsetWidth // reflow for transition - element.addClass('in') - } else { - element.removeClass('fade') - } - - if (element.parent('.dropdown-menu').length) { - element - .closest('li.dropdown') - .addClass('active') - .end() - .find('[data-toggle="tab"]') - .attr('aria-expanded', true) - } - - callback && callback() - } - - $active.length && transition ? - $active - .one('bsTransitionEnd', next) - .emulateTransitionEnd(Tab.TRANSITION_DURATION) : - next() - - $active.removeClass('in') - } - - - // TAB PLUGIN DEFINITION - // ===================== - - function Plugin(option) { - return this.each(function () { - var $this = $(this) - var data = $this.data('bs.tab') - - if (!data) $this.data('bs.tab', (data = new Tab(this))) - if (typeof option == 'string') data[option]() - }) - } - - var old = $.fn.tab - - $.fn.tab = Plugin - $.fn.tab.Constructor = Tab - - - // TAB NO CONFLICT - // =============== - - $.fn.tab.noConflict = function () { - $.fn.tab = old - return this - } - - - // TAB DATA-API - // ============ - - var clickHandler = function (e) { - e.preventDefault() - Plugin.call($(this), 'show') - } - - $(document) - .on('click.bs.tab.data-api', '[data-toggle="tab"]', clickHandler) - .on('click.bs.tab.data-api', '[data-toggle="pill"]', clickHandler) - -}(jQuery); - -/* ======================================================================== - * Bootstrap: affix.js v3.3.7 - * http://getbootstrap.com/javascript/#affix - * ======================================================================== - * Copyright 2011-2016 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - * ======================================================================== */ - - -+function ($) { - 'use strict'; - - // AFFIX CLASS DEFINITION - // ====================== - - var Affix = function (element, options) { - this.options = $.extend({}, Affix.DEFAULTS, options) - - this.$target = $(this.options.target) - .on('scroll.bs.affix.data-api', $.proxy(this.checkPosition, this)) - .on('click.bs.affix.data-api', $.proxy(this.checkPositionWithEventLoop, this)) - - this.$element = $(element) - this.affixed = null - this.unpin = null - this.pinnedOffset = null - - this.checkPosition() - } - - Affix.VERSION = '3.3.7' - - Affix.RESET = 'affix affix-top affix-bottom' - - Affix.DEFAULTS = { - offset: 0, - target: window - } - - Affix.prototype.getState = function (scrollHeight, height, offsetTop, offsetBottom) { - var scrollTop = this.$target.scrollTop() - var position = this.$element.offset() - var targetHeight = this.$target.height() - - if (offsetTop != null && this.affixed == 'top') return scrollTop < offsetTop ? 'top' : false - - if (this.affixed == 'bottom') { - if (offsetTop != null) return (scrollTop + this.unpin <= position.top) ? false : 'bottom' - return (scrollTop + targetHeight <= scrollHeight - offsetBottom) ? false : 'bottom' - } - - var initializing = this.affixed == null - var colliderTop = initializing ? scrollTop : position.top - var colliderHeight = initializing ? targetHeight : height - - if (offsetTop != null && scrollTop <= offsetTop) return 'top' - if (offsetBottom != null && (colliderTop + colliderHeight >= scrollHeight - offsetBottom)) return 'bottom' - - return false - } - - Affix.prototype.getPinnedOffset = function () { - if (this.pinnedOffset) return this.pinnedOffset - this.$element.removeClass(Affix.RESET).addClass('affix') - var scrollTop = this.$target.scrollTop() - var position = this.$element.offset() - return (this.pinnedOffset = position.top - scrollTop) - } - - Affix.prototype.checkPositionWithEventLoop = function () { - setTimeout($.proxy(this.checkPosition, this), 1) - } - - Affix.prototype.checkPosition = function () { - if (!this.$element.is(':visible')) return - - var height = this.$element.height() - var offset = this.options.offset - var offsetTop = offset.top - var offsetBottom = offset.bottom - var scrollHeight = Math.max($(document).height(), $(document.body).height()) - - if (typeof offset != 'object') offsetBottom = offsetTop = offset - if (typeof offsetTop == 'function') offsetTop = offset.top(this.$element) - if (typeof offsetBottom == 'function') offsetBottom = offset.bottom(this.$element) - - var affix = this.getState(scrollHeight, height, offsetTop, offsetBottom) - - if (this.affixed != affix) { - if (this.unpin != null) this.$element.css('top', '') - - var affixType = 'affix' + (affix ? '-' + affix : '') - var e = $.Event(affixType + '.bs.affix') - - this.$element.trigger(e) - - if (e.isDefaultPrevented()) return - - this.affixed = affix - this.unpin = affix == 'bottom' ? this.getPinnedOffset() : null - - this.$element - .removeClass(Affix.RESET) - .addClass(affixType) - .trigger(affixType.replace('affix', 'affixed') + '.bs.affix') - } - - if (affix == 'bottom') { - this.$element.offset({ - top: scrollHeight - height - offsetBottom - }) - } - } - - - // AFFIX PLUGIN DEFINITION - // ======================= - - function Plugin(option) { - return this.each(function () { - var $this = $(this) - var data = $this.data('bs.affix') - var options = typeof option == 'object' && option - - if (!data) $this.data('bs.affix', (data = new Affix(this, options))) - if (typeof option == 'string') data[option]() - }) - } - - var old = $.fn.affix - - $.fn.affix = Plugin - $.fn.affix.Constructor = Affix - - - // AFFIX NO CONFLICT - // ================= - - $.fn.affix.noConflict = function () { - $.fn.affix = old - return this - } - - - // AFFIX DATA-API - // ============== - - $(window).on('load', function () { - $('[data-spy="affix"]').each(function () { - var $spy = $(this) - var data = $spy.data() - - data.offset = data.offset || {} - - if (data.offsetBottom != null) data.offset.bottom = data.offsetBottom - if (data.offsetTop != null) data.offset.top = data.offsetTop - - Plugin.call($spy, data) - }) - }) - -}(jQuery); - -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(/*! jquery */ "./node_modules/jquery/dist/jquery.js"))) - -/***/ }), - -/***/ "./node_modules/bootstrap-select/dist/js/bootstrap-select.js": -/*!*******************************************************************!*\ - !*** ./node_modules/bootstrap-select/dist/js/bootstrap-select.js ***! - \*******************************************************************/ -/*! dynamic exports provided */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*! - * Bootstrap-select v1.13.1 (https://developer.snapappointments.com/bootstrap-select) - * - * Copyright 2012-2018 SnapAppointments, LLC - * Licensed under MIT (https://github.com/snapappointments/bootstrap-select/blob/master/LICENSE) - */ - -(function (root, factory) { - if (true) { - // AMD. Register as an anonymous module unless amdModuleId is set - !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! jquery */ "./node_modules/jquery/dist/jquery.js")], __WEBPACK_AMD_DEFINE_RESULT__ = (function (a0) { - return (factory(a0)); - }).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), - __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); - } else if (typeof module === 'object' && module.exports) { - // Node. Does not work with strict CommonJS, but - // only CommonJS-like environments that support module.exports, - // like Node. - module.exports = factory(require("jquery")); - } else { - factory(root["jQuery"]); - } -}(this, function (jQuery) { - -(function ($) { - 'use strict'; - - var testElement = document.createElement('_'); - - testElement.classList.toggle('c3', false); - - // Polyfill for IE 10 and Firefox <24, where classList.toggle does not - // support the second argument. - if (testElement.classList.contains('c3')) { - var _toggle = DOMTokenList.prototype.toggle; - - DOMTokenList.prototype.toggle = function(token, force) { - if (1 in arguments && !this.contains(token) === !force) { - return force; - } else { - return _toggle.call(this, token); - } - }; - } - - // shallow array comparison - function isEqual (array1, array2) { - return array1.length === array2.length && array1.every(function(element, index) { - return element === array2[index]; - }); - }; - - // - if (!String.prototype.startsWith) { - (function () { - 'use strict'; // needed to support `apply`/`call` with `undefined`/`null` - var defineProperty = (function () { - // IE 8 only supports `Object.defineProperty` on DOM elements - try { - var object = {}; - var $defineProperty = Object.defineProperty; - var result = $defineProperty(object, object, object) && $defineProperty; - } catch (error) { - } - return result; - }()); - var toString = {}.toString; - var startsWith = function (search) { - if (this == null) { - throw new TypeError(); - } - var string = String(this); - if (search && toString.call(search) == '[object RegExp]') { - throw new TypeError(); - } - var stringLength = string.length; - var searchString = String(search); - var searchLength = searchString.length; - var position = arguments.length > 1 ? arguments[1] : undefined; - // `ToInteger` - var pos = position ? Number(position) : 0; - if (pos != pos) { // better `isNaN` - pos = 0; - } - var start = Math.min(Math.max(pos, 0), stringLength); - // Avoid the `indexOf` call if no match is possible - if (searchLength + start > stringLength) { - return false; - } - var index = -1; - while (++index < searchLength) { - if (string.charCodeAt(start + index) != searchString.charCodeAt(index)) { - return false; - } - } - return true; - }; - if (defineProperty) { - defineProperty(String.prototype, 'startsWith', { - 'value': startsWith, - 'configurable': true, - 'writable': true - }); - } else { - String.prototype.startsWith = startsWith; - } - }()); - } - - if (!Object.keys) { - Object.keys = function ( - o, // object - k, // key - r // result array - ){ - // initialize object and result - r=[]; - // iterate over object keys - for (k in o) - // fill result array with non-prototypical keys - r.hasOwnProperty.call(o, k) && r.push(k); - // return result - return r; - }; - } - - // much faster than $.val() - function getSelectValues(select) { - var result = []; - var options = select && select.options; - var opt; - - if (select.multiple) { - for (var i = 0, len = options.length; i < len; i++) { - opt = options[i]; - - if (opt.selected) { - result.push(opt.value || opt.text); - } - } - } else { - result = select.value; - } - - return result; - } - - // set data-selected on select element if the value has been programmatically selected - // prior to initialization of bootstrap-select - // * consider removing or replacing an alternative method * - var valHooks = { - useDefault: false, - _set: $.valHooks.select.set - }; - - $.valHooks.select.set = function (elem, value) { - if (value && !valHooks.useDefault) $(elem).data('selected', true); - - return valHooks._set.apply(this, arguments); - }; - - var changed_arguments = null; - - var EventIsSupported = (function () { - try { - new Event('change'); - return true; - } catch (e) { - return false; - } - })(); - - $.fn.triggerNative = function (eventName) { - var el = this[0], - event; - - if (el.dispatchEvent) { // for modern browsers & IE9+ - if (EventIsSupported) { - // For modern browsers - event = new Event(eventName, { - bubbles: true - }); - } else { - // For IE since it doesn't support Event constructor - event = document.createEvent('Event'); - event.initEvent(eventName, true, false); - } - - el.dispatchEvent(event); - } else if (el.fireEvent) { // for IE8 - event = document.createEventObject(); - event.eventType = eventName; - el.fireEvent('on' + eventName, event); - } else { - // fall back to jQuery.trigger - this.trigger(eventName); - } - }; - // - - function stringSearch(li, searchString, method, normalize) { - var stringTypes = [ - 'content', - 'subtext', - 'tokens' - ], - searchSuccess = false; - - for (var i = 0; i < stringTypes.length; i++) { - var stringType = stringTypes[i], - string = li[stringType]; - - if (string) { - string = string.toString(); - - // Strip HTML tags. This isn't perfect, but it's much faster than any other method - if (stringType === 'content') { - string = string.replace(/<[^>]+>/g, ''); - } - - if (normalize) string = normalizeToBase(string); - string = string.toUpperCase(); - - if (method === 'contains') { - searchSuccess = string.indexOf(searchString) >= 0; - } else { - searchSuccess = string.startsWith(searchString); - } - - if (searchSuccess) break; - } - } - - return searchSuccess; - } - - function toInteger(value) { - return parseInt(value, 10) || 0; - } - - /** - * Remove all diatrics from the given text. - * @access private - * @param {String} text - * @returns {String} - */ - function normalizeToBase(text) { - var rExps = [ - {re: /[\xC0-\xC6]/g, ch: "A"}, - {re: /[\xE0-\xE6]/g, ch: "a"}, - {re: /[\xC8-\xCB]/g, ch: "E"}, - {re: /[\xE8-\xEB]/g, ch: "e"}, - {re: /[\xCC-\xCF]/g, ch: "I"}, - {re: /[\xEC-\xEF]/g, ch: "i"}, - {re: /[\xD2-\xD6]/g, ch: "O"}, - {re: /[\xF2-\xF6]/g, ch: "o"}, - {re: /[\xD9-\xDC]/g, ch: "U"}, - {re: /[\xF9-\xFC]/g, ch: "u"}, - {re: /[\xC7-\xE7]/g, ch: "c"}, - {re: /[\xD1]/g, ch: "N"}, - {re: /[\xF1]/g, ch: "n"} - ]; - $.each(rExps, function () { - text = text ? text.replace(this.re, this.ch) : ''; - }); - return text; - } - - - // List of HTML entities for escaping. - var escapeMap = { - '&': '&', - '<': '<', - '>': '>', - '"': '"', - "'": ''', - '`': '`' - }; - - var unescapeMap = { - '&': '&', - '<': '<', - '>': '>', - '"': '"', - ''': "'", - '`': '`' - }; - - // Functions for escaping and unescaping strings to/from HTML interpolation. - var createEscaper = function (map) { - var escaper = function (match) { - return map[match]; - }; - // Regexes for identifying a key that needs to be escaped. - var source = '(?:' + Object.keys(map).join('|') + ')'; - var testRegexp = RegExp(source); - var replaceRegexp = RegExp(source, 'g'); - return function (string) { - string = string == null ? '' : '' + string; - return testRegexp.test(string) ? string.replace(replaceRegexp, escaper) : string; - }; - }; - - var htmlEscape = createEscaper(escapeMap); - var htmlUnescape = createEscaper(unescapeMap); - - /** - * ------------------------------------------------------------------------ - * Constants - * ------------------------------------------------------------------------ - */ - - var keyCodeMap = { - 32: ' ', - 48: '0', - 49: '1', - 50: '2', - 51: '3', - 52: '4', - 53: '5', - 54: '6', - 55: '7', - 56: '8', - 57: '9', - 59: ';', - 65: 'A', - 66: 'B', - 67: 'C', - 68: 'D', - 69: 'E', - 70: 'F', - 71: 'G', - 72: 'H', - 73: 'I', - 74: 'J', - 75: 'K', - 76: 'L', - 77: 'M', - 78: 'N', - 79: 'O', - 80: 'P', - 81: 'Q', - 82: 'R', - 83: 'S', - 84: 'T', - 85: 'U', - 86: 'V', - 87: 'W', - 88: 'X', - 89: 'Y', - 90: 'Z', - 96: '0', - 97: '1', - 98: '2', - 99: '3', - 100: '4', - 101: '5', - 102: '6', - 103: '7', - 104: '8', - 105: '9' - }; - - var keyCodes = { - ESCAPE: 27, // KeyboardEvent.which value for Escape (Esc) key - ENTER: 13, // KeyboardEvent.which value for Enter key - SPACE: 32, // KeyboardEvent.which value for space key - TAB: 9, // KeyboardEvent.which value for tab key - ARROW_UP: 38, // KeyboardEvent.which value for up arrow key - ARROW_DOWN: 40 // KeyboardEvent.which value for down arrow key - } - - var version = {}; - - try { - version.full = ($.fn.dropdown.Constructor.VERSION || '').split(' ')[0].split('.'); - version.major = version.full[0]; - } - catch(err) { - console.error('There was an issue retrieving Bootstrap\'s version. Ensure Bootstrap is being loaded before bootstrap-select and there is no namespace collision.', err); - version.major = '3'; - } - - var classNames = { - DISABLED: 'disabled', - DIVIDER: version.major === '4' ? 'dropdown-divider' : 'divider', - SHOW: version.major === '4' ? 'show' : 'open', - DROPUP: 'dropup', - MENURIGHT: 'dropdown-menu-right', - MENULEFT: 'dropdown-menu-left', - // to-do: replace with more advanced template/customization options - BUTTONCLASS: version.major === '4' ? 'btn-light' : 'btn-default', - POPOVERHEADER: version.major === '4' ? 'popover-header' : 'popover-title' - } - - var REGEXP_ARROW = new RegExp(keyCodes.ARROW_UP + '|' + keyCodes.ARROW_DOWN); - var REGEXP_TAB_OR_ESCAPE = new RegExp('^' + keyCodes.TAB + '$|' + keyCodes.ESCAPE); - var REGEXP_ENTER_OR_SPACE = new RegExp(keyCodes.ENTER + '|' + keyCodes.SPACE); - - var Selectpicker = function (element, options) { - var that = this; - - // bootstrap-select has been initialized - revert valHooks.select.set back to its original function - if (!valHooks.useDefault) { - $.valHooks.select.set = valHooks._set; - valHooks.useDefault = true; - } - - this.$element = $(element); - this.$newElement = null; - this.$button = null; - this.$menu = null; - this.options = options; - this.selectpicker = { - main: { - // store originalIndex (key) and newIndex (value) in this.selectpicker.main.map.newIndex for fast accessibility - // allows us to do this.main.elements[this.selectpicker.main.map.newIndex[index]] to select an element based on the originalIndex - map: { - newIndex: {}, - originalIndex: {} - } - }, - current: { - map: {} - }, // current changes if a search is in progress - search: { - map: {} - }, - view: {}, - keydown: { - keyHistory: '', - resetKeyHistory: { - start: function () { - return setTimeout(function () { - that.selectpicker.keydown.keyHistory = ''; - }, 800); - } - } - } - }; - // If we have no title yet, try to pull it from the html title attribute (jQuery doesnt' pick it up as it's not a - // data-attribute) - if (this.options.title === null) { - this.options.title = this.$element.attr('title'); - } - - // Format window padding - var winPad = this.options.windowPadding; - if (typeof winPad === 'number') { - this.options.windowPadding = [winPad, winPad, winPad, winPad]; - } - - //Expose public methods - this.val = Selectpicker.prototype.val; - this.render = Selectpicker.prototype.render; - this.refresh = Selectpicker.prototype.refresh; - this.setStyle = Selectpicker.prototype.setStyle; - this.selectAll = Selectpicker.prototype.selectAll; - this.deselectAll = Selectpicker.prototype.deselectAll; - this.destroy = Selectpicker.prototype.destroy; - this.remove = Selectpicker.prototype.remove; - this.show = Selectpicker.prototype.show; - this.hide = Selectpicker.prototype.hide; - - this.init(); - }; - - Selectpicker.VERSION = '1.13.1'; - - // part of this is duplicated in i18n/defaults-en_US.js. Make sure to update both. - Selectpicker.DEFAULTS = { - noneSelectedText: 'Nothing selected', - noneResultsText: 'No results matched {0}', - countSelectedText: function (numSelected, numTotal) { - return (numSelected == 1) ? "{0} item selected" : "{0} items selected"; - }, - maxOptionsText: function (numAll, numGroup) { - return [ - (numAll == 1) ? 'Limit reached ({n} item max)' : 'Limit reached ({n} items max)', - (numGroup == 1) ? 'Group limit reached ({n} item max)' : 'Group limit reached ({n} items max)' - ]; - }, - selectAllText: 'Select All', - deselectAllText: 'Deselect All', - doneButton: false, - doneButtonText: 'Close', - multipleSeparator: ', ', - styleBase: 'btn', - style: 'btn-default', - size: 'auto', - title: null, - selectedTextFormat: 'values', - width: false, - container: false, - hideDisabled: false, - showSubtext: false, - showIcon: true, - showContent: true, - dropupAuto: true, - header: false, - liveSearch: false, - liveSearchPlaceholder: null, - liveSearchNormalize: false, - liveSearchStyle: 'contains', - actionsBox: false, - iconBase: 'glyphicon', - tickIcon: 'glyphicon-ok', - showTick: false, - template: { - caret: '' - }, - maxOptions: false, - mobile: false, - selectOnTab: false, - dropdownAlignRight: false, - windowPadding: 0, - virtualScroll: 600 - }; - - if (version.major === '4') { - Selectpicker.DEFAULTS.style = 'btn-light'; - Selectpicker.DEFAULTS.iconBase = ''; - Selectpicker.DEFAULTS.tickIcon = 'bs-ok-default'; - } - - Selectpicker.prototype = { - - constructor: Selectpicker, - - init: function () { - var that = this, - id = this.$element.attr('id'); - - this.$element.addClass('bs-select-hidden'); - - this.multiple = this.$element.prop('multiple'); - this.autofocus = this.$element.prop('autofocus'); - this.$newElement = this.createDropdown(); - this.createLi(); - this.$element - .after(this.$newElement) - .prependTo(this.$newElement); - this.$button = this.$newElement.children('button'); - this.$menu = this.$newElement.children('.dropdown-menu'); - this.$menuInner = this.$menu.children('.inner'); - this.$searchbox = this.$menu.find('input'); - - this.$element.removeClass('bs-select-hidden'); - - if (this.options.dropdownAlignRight === true) this.$menu.addClass(classNames.MENURIGHT); - - if (typeof id !== 'undefined') { - this.$button.attr('data-id', id); - } - - this.checkDisabled(); - this.clickListener(); - if (this.options.liveSearch) this.liveSearchListener(); - this.render(); - this.setStyle(); - this.setWidth(); - if (this.options.container) { - this.selectPosition(); - } else { - this.$element.on('hide.bs.select', function () { - if (that.isVirtual()) { - // empty menu on close - var menuInner = that.$menuInner[0], - emptyMenu = menuInner.firstChild.cloneNode(false); - - // replace the existing UL with an empty one - this is faster than $.empty() or innerHTML = '' - menuInner.replaceChild(emptyMenu, menuInner.firstChild); - menuInner.scrollTop = 0; - } - }); - } - this.$menu.data('this', this); - this.$newElement.data('this', this); - if (this.options.mobile) this.mobile(); - - this.$newElement.on({ - 'hide.bs.dropdown': function (e) { - that.$menuInner.attr('aria-expanded', false); - that.$element.trigger('hide.bs.select', e); - }, - 'hidden.bs.dropdown': function (e) { - that.$element.trigger('hidden.bs.select', e); - }, - 'show.bs.dropdown': function (e) { - that.$menuInner.attr('aria-expanded', true); - that.$element.trigger('show.bs.select', e); - }, - 'shown.bs.dropdown': function (e) { - that.$element.trigger('shown.bs.select', e); - } - }); - - if (that.$element[0].hasAttribute('required')) { - this.$element.on('invalid', function () { - that.$button.addClass('bs-invalid'); - - that.$element.on({ - 'shown.bs.select': function () { - that.$element - .val(that.$element.val()) // set the value to hide the validation message in Chrome when menu is opened - .off('shown.bs.select'); - }, - 'rendered.bs.select': function () { - // if select is no longer invalid, remove the bs-invalid class - if (this.validity.valid) that.$button.removeClass('bs-invalid'); - that.$element.off('rendered.bs.select'); - } - }); - - that.$button.on('blur.bs.select', function () { - that.$element.focus().blur(); - that.$button.off('blur.bs.select'); - }); - }); - } - - setTimeout(function () { - that.$element.trigger('loaded.bs.select'); - }); - }, - - createDropdown: function () { - // Options - // If we are multiple or showTick option is set, then add the show-tick class - var showTick = (this.multiple || this.options.showTick) ? ' show-tick' : '', - autofocus = this.autofocus ? ' autofocus' : ''; - // Elements - var header = this.options.header ? '
' + this.options.header + '
' : ''; - var searchbox = this.options.liveSearch ? - '' - : ''; - var actionsbox = this.multiple && this.options.actionsBox ? - '
' + - '
' + - '' + - '' + - '
' + - '
' - : ''; - var donebutton = this.multiple && this.options.doneButton ? - '
' + - '
' + - '' + - '
' + - '
' - : ''; - var drop = - ''; - - return $(drop); - }, - - setPositionData: function () { - this.selectpicker.view.canHighlight = []; - - for (var i = 0; i < this.selectpicker.current.data.length; i++) { - var li = this.selectpicker.current.data[i], - canHighlight = true; - - if (li.type === 'divider') { - canHighlight = false; - li.height = this.sizeInfo.dividerHeight; - } else if (li.type === 'optgroup-label') { - canHighlight = false; - li.height = this.sizeInfo.dropdownHeaderHeight; - } else { - li.height = this.sizeInfo.liHeight; - } - - if (li.disabled) canHighlight = false; - - this.selectpicker.view.canHighlight.push(canHighlight); - - li.position = (i === 0 ? 0 : this.selectpicker.current.data[i - 1].position) + li.height; - } - }, - - isVirtual: function () { - return (this.options.virtualScroll !== false) && this.selectpicker.main.elements.length >= this.options.virtualScroll || this.options.virtualScroll === true; - }, - - createView: function (isSearching, scrollTop) { - scrollTop = scrollTop || 0; - - var that = this; - - this.selectpicker.current = isSearching ? this.selectpicker.search : this.selectpicker.main; - - var $lis; - var active = []; - var selected; - var prevActive; - var activeIndex; - var prevActiveIndex; - - this.setPositionData(); - - scroll(scrollTop, true); - - this.$menuInner.off('scroll.createView').on('scroll.createView', function (e, updateValue) { - if (!that.noScroll) scroll(this.scrollTop, updateValue); - that.noScroll = false; - }); - - function scroll(scrollTop, init) { - var size = that.selectpicker.current.elements.length, - chunks = [], - chunkSize, - chunkCount, - firstChunk, - lastChunk, - currentChunk = undefined, - prevPositions, - positionIsDifferent, - previousElements, - menuIsDifferent = true, - isVirtual = that.isVirtual(); - - that.selectpicker.view.scrollTop = scrollTop; - - if (isVirtual === true) { - // if an option that is encountered that is wider than the current menu width, update the menu width accordingly - if (that.sizeInfo.hasScrollBar && that.$menu[0].offsetWidth > that.sizeInfo.totalMenuWidth) { - that.sizeInfo.menuWidth = that.$menu[0].offsetWidth; - that.sizeInfo.totalMenuWidth = that.sizeInfo.menuWidth + that.sizeInfo.scrollBarWidth; - that.$menu.css('min-width', that.sizeInfo.menuWidth); - } - } - - chunkSize = Math.ceil(that.sizeInfo.menuInnerHeight / that.sizeInfo.liHeight * 1.5); // number of options in a chunk - chunkCount = Math.round(size / chunkSize) || 1; // number of chunks - - for (var i = 0; i < chunkCount; i++) { - var end_of_chunk = (i + 1) * chunkSize; - - if (i === chunkCount - 1) { - end_of_chunk = size; - } - - chunks[i] = [ - (i) * chunkSize + (!i ? 0 : 1), - end_of_chunk - ]; - - if (!size) break; - - if (currentChunk === undefined && scrollTop <= that.selectpicker.current.data[end_of_chunk - 1].position - that.sizeInfo.menuInnerHeight) { - currentChunk = i; - } - } - - if (currentChunk === undefined) currentChunk = 0; - - prevPositions = [that.selectpicker.view.position0, that.selectpicker.view.position1]; - - // always display previous, current, and next chunks - firstChunk = Math.max(0, currentChunk - 1); - lastChunk = Math.min(chunkCount - 1, currentChunk + 1); - - that.selectpicker.view.position0 = Math.max(0, chunks[firstChunk][0]) || 0; - that.selectpicker.view.position1 = Math.min(size, chunks[lastChunk][1]) || 0; - - positionIsDifferent = prevPositions[0] !== that.selectpicker.view.position0 || prevPositions[1] !== that.selectpicker.view.position1; - - if (that.activeIndex !== undefined) { - prevActive = that.selectpicker.current.elements[that.selectpicker.current.map.newIndex[that.prevActiveIndex]]; - active = that.selectpicker.current.elements[that.selectpicker.current.map.newIndex[that.activeIndex]]; - selected = that.selectpicker.current.elements[that.selectpicker.current.map.newIndex[that.selectedIndex]]; - - if (init) { - if (that.activeIndex !== that.selectedIndex) { - active.classList.remove('active'); - if (active.firstChild) active.firstChild.classList.remove('active'); - } - that.activeIndex = undefined; - } - - if (that.activeIndex && that.activeIndex !== that.selectedIndex && selected && selected.length) { - selected.classList.remove('active'); - if (selected.firstChild) selected.firstChild.classList.remove('active'); - } - } - - if (that.prevActiveIndex !== undefined && that.prevActiveIndex !== that.activeIndex && that.prevActiveIndex !== that.selectedIndex && prevActive && prevActive.length) { - prevActive.classList.remove('active'); - if (prevActive.firstChild) prevActive.firstChild.classList.remove('active'); - } - - if (init || positionIsDifferent) { - previousElements = that.selectpicker.view.visibleElements ? that.selectpicker.view.visibleElements.slice() : []; - - that.selectpicker.view.visibleElements = that.selectpicker.current.elements.slice(that.selectpicker.view.position0, that.selectpicker.view.position1); - - that.setOptionStatus(); - - // if searching, check to make sure the list has actually been updated before updating DOM - // this prevents unnecessary repaints - if ( isSearching || (isVirtual === false && init) ) menuIsDifferent = !isEqual(previousElements, that.selectpicker.view.visibleElements); - - // if virtual scroll is disabled and not searching, - // menu should never need to be updated more than once - if ( (init || isVirtual === true) && menuIsDifferent ) { - var menuInner = that.$menuInner[0], - menuFragment = document.createDocumentFragment(), - emptyMenu = menuInner.firstChild.cloneNode(false), - marginTop, - marginBottom, - elements = isVirtual === true ? that.selectpicker.view.visibleElements : that.selectpicker.current.elements; - - // replace the existing UL with an empty one - this is faster than $.empty() - menuInner.replaceChild(emptyMenu, menuInner.firstChild); - - for (var i = 0, visibleElementsLen = elements.length; i < visibleElementsLen; i++) { - menuFragment.appendChild(elements[i]); - } - - if (isVirtual === true) { - marginTop = (that.selectpicker.view.position0 === 0 ? 0 : that.selectpicker.current.data[that.selectpicker.view.position0 - 1].position), - marginBottom = (that.selectpicker.view.position1 > size - 1 ? 0 : that.selectpicker.current.data[size - 1].position - that.selectpicker.current.data[that.selectpicker.view.position1 - 1].position); - - menuInner.firstChild.style.marginTop = marginTop + 'px'; - menuInner.firstChild.style.marginBottom = marginBottom + 'px'; - } - - menuInner.firstChild.appendChild(menuFragment); - } - } - - that.prevActiveIndex = that.activeIndex; - - if (!that.options.liveSearch) { - that.$menuInner.focus(); - } else if (isSearching && init) { - var index = 0, - newActive; - - if (!that.selectpicker.view.canHighlight[index]) { - index = 1 + that.selectpicker.view.canHighlight.slice(1).indexOf(true); - } - - newActive = that.selectpicker.view.visibleElements[index]; - - if (that.selectpicker.view.currentActive) { - that.selectpicker.view.currentActive.classList.remove('active'); - if (that.selectpicker.view.currentActive.firstChild) that.selectpicker.view.currentActive.firstChild.classList.remove('active'); - } - - if (newActive) { - newActive.classList.add('active'); - if (newActive.firstChild) newActive.firstChild.classList.add('active'); - } - - that.activeIndex = that.selectpicker.current.map.originalIndex[index]; - } - } - - $(window).off('resize.createView').on('resize.createView', function () { - scroll(that.$menuInner[0].scrollTop); - }); - }, - - createLi: function () { - var that = this, - mainElements = [], - widestOption, - availableOptionsCount = 0, - widestOptionLength = 0, - mainData = [], - optID = 0, - headerIndex = 0, - liIndex = -1; // increment liIndex whenever a new
  • element is created to ensure newIndex is correct - - if (!this.selectpicker.view.titleOption) this.selectpicker.view.titleOption = document.createElement('option'); - - var elementTemplates = { - span: document.createElement('span'), - subtext: document.createElement('small'), - a: document.createElement('a'), - li: document.createElement('li'), - whitespace: document.createTextNode("\u00A0") - }, - checkMark = elementTemplates.span.cloneNode(false), - fragment = document.createDocumentFragment(); - - checkMark.className = that.options.iconBase + ' ' + that.options.tickIcon + ' check-mark'; - elementTemplates.a.appendChild(checkMark); - elementTemplates.a.setAttribute('role', 'option'); - - elementTemplates.subtext.className = 'text-muted'; - - elementTemplates.text = elementTemplates.span.cloneNode(false); - elementTemplates.text.className = 'text'; - - // Helper functions - /** - * @param content - * @param [index] - * @param [classes] - * @param [optgroup] - * @returns {HTMLElement} - */ - var generateLI = function (content, index, classes, optgroup) { - var li = elementTemplates.li.cloneNode(false); - - if (content) { - if (content.nodeType === 1 || content.nodeType === 11) { - li.appendChild(content); - } else { - li.innerHTML = content; - } - } - - if (typeof classes !== 'undefined' && '' !== classes) li.className = classes; - if (typeof optgroup !== 'undefined' && null !== optgroup) li.classList.add('optgroup-' + optgroup); - - return li; - }; - - /** - * @param text - * @param [classes] - * @param [inline] - * @returns {string} - */ - var generateA = function (text, classes, inline) { - var a = elementTemplates.a.cloneNode(true); - - if (text) { - if (text.nodeType === 11) { - a.appendChild(text); - } else { - a.insertAdjacentHTML('beforeend', text); - } - } - - if (typeof classes !== 'undefined' & '' !== classes) a.className = classes; - if (version.major === '4') a.classList.add('dropdown-item'); - if (inline) a.setAttribute('style', inline); - - return a; - }; - - var generateText = function (options) { - var textElement = elementTemplates.text.cloneNode(false), - optionSubtextElement, - optionIconElement; - - if (options.optionContent) { - textElement.innerHTML = options.optionContent; - } else { - textElement.textContent = options.text; - - if (options.optionIcon) { - var whitespace = elementTemplates.whitespace.cloneNode(false); - - optionIconElement = elementTemplates.span.cloneNode(false); - optionIconElement.className = that.options.iconBase + ' ' + options.optionIcon; - - fragment.appendChild(optionIconElement); - fragment.appendChild(whitespace); - } - - if (options.optionSubtext) { - optionSubtextElement = elementTemplates.subtext.cloneNode(false); - optionSubtextElement.innerHTML = options.optionSubtext; - textElement.appendChild(optionSubtextElement); - } - } - - fragment.appendChild(textElement); - - return fragment; - }; - - var generateLabel = function (options) { - var labelTextElement = elementTemplates.text.cloneNode(false), - labelSubtextElement, - labelIconElement; - - labelTextElement.textContent = options.labelEscaped; - - if (options.labelIcon) { - var whitespace = elementTemplates.whitespace.cloneNode(false); - - labelIconElement = elementTemplates.span.cloneNode(false); - labelIconElement.className = that.options.iconBase + ' ' + options.labelIcon; - - fragment.appendChild(labelIconElement); - fragment.appendChild(whitespace); - } - - if (options.labelSubtext) { - labelSubtextElement = elementTemplates.subtext.cloneNode(false); - labelSubtextElement.textContent = options.labelSubtext; - labelTextElement.appendChild(labelSubtextElement); - } - - fragment.appendChild(labelTextElement); - - return fragment; - } - - if (this.options.title && !this.multiple) { - // this option doesn't create a new
  • element, but does add a new option, so liIndex is decreased - // since newIndex is recalculated on every refresh, liIndex needs to be decreased even if the titleOption is already appended - liIndex--; - - var element = this.$element[0], - isSelected = false, - titleNotAppended = !this.selectpicker.view.titleOption.parentNode; - - if (titleNotAppended) { - // Use native JS to prepend option (faster) - this.selectpicker.view.titleOption.className = 'bs-title-option'; - this.selectpicker.view.titleOption.value = ''; - - // Check if selected or data-selected attribute is already set on an option. If not, select the titleOption option. - // the selected item may have been changed by user or programmatically before the bootstrap select plugin runs, - // if so, the select will have the data-selected attribute - var $opt = $(element.options[element.selectedIndex]); - isSelected = $opt.attr('selected') === undefined && this.$element.data('selected') === undefined; - } - - if (titleNotAppended || this.selectpicker.view.titleOption.index !== 0) { - element.insertBefore(this.selectpicker.view.titleOption, element.firstChild); - } - - // Set selected *after* appending to select, - // otherwise the option doesn't get selected in IE - // set using selectedIndex, as setting the selected attr to true here doesn't work in IE11 - if (isSelected) element.selectedIndex = 0; - } - - var $selectOptions = this.$element.find('option'); - - $selectOptions.each(function (index) { - var $this = $(this); - - liIndex++; - - if ($this.hasClass('bs-title-option')) return; - - var thisData = $this.data(); - - // Get the class and text for the option - var optionClass = this.className || '', - inline = htmlEscape(this.style.cssText), - optionContent = thisData.content, - text = this.textContent, - tokens = thisData.tokens, - subtext = thisData.subtext, - icon = thisData.icon, - $parent = $this.parent(), - parent = $parent[0], - isOptgroup = parent.tagName === 'OPTGROUP', - isOptgroupDisabled = isOptgroup && parent.disabled, - isDisabled = this.disabled || isOptgroupDisabled, - prevHiddenIndex, - showDivider = this.previousElementSibling && this.previousElementSibling.tagName === 'OPTGROUP', - textElement; - - var parentData = $parent.data(); - - if (thisData.hidden === true || that.options.hideDisabled && (isDisabled && !isOptgroup || isOptgroupDisabled)) { - // set prevHiddenIndex - the index of the first hidden option in a group of hidden options - // used to determine whether or not a divider should be placed after an optgroup if there are - // hidden options between the optgroup and the first visible option - prevHiddenIndex = thisData.prevHiddenIndex; - $this.next().data('prevHiddenIndex', (prevHiddenIndex !== undefined ? prevHiddenIndex : index)); - - liIndex--; - - // if previous element is not an optgroup - if (!showDivider) { - if (prevHiddenIndex !== undefined) { - // select the element **before** the first hidden element in the group - var prevHidden = $selectOptions[prevHiddenIndex].previousElementSibling; - - if (prevHidden && prevHidden.tagName === 'OPTGROUP' && !prevHidden.disabled) { - showDivider = true; - } - } - } - - if (showDivider && mainData[mainData.length - 1].type !== 'divider') { - liIndex++; - mainElements.push( - generateLI( - false, - null, - classNames.DIVIDER, - optID + 'div' - ) - ); - mainData.push({ - type: 'divider', - optID: optID, - originalIndex: index - }); - } - - return; - } - - if (isOptgroup && thisData.divider !== true) { - if (that.options.hideDisabled && isDisabled) { - if (parentData.allOptionsDisabled === undefined) { - var $options = $parent.children(); - $parent.data('allOptionsDisabled', $options.filter(':disabled').length === $options.length); - } - - if ($parent.data('allOptionsDisabled')) { - liIndex--; - return; - } - } - - var optGroupClass = ' ' + parent.className || ''; - - if (!this.previousElementSibling) { // Is it the first option of the optgroup? - optID += 1; - - // Get the opt group label - var label = parent.label, - labelEscaped = htmlEscape(label), - labelSubtext = parentData.subtext, - labelIcon = parentData.icon; - - if (index !== 0 && mainElements.length > 0) { // Is it NOT the first option of the select && are there elements in the dropdown? - liIndex++; - mainElements.push( - generateLI( - false, - null, - classNames.DIVIDER, - optID + 'div' - ) - ); - mainData.push({ - type: 'divider', - optID: optID, - originalIndex: index - }); - } - liIndex++; - - var labelElement = generateLabel({ - labelEscaped: labelEscaped, - labelSubtext: labelSubtext, - labelIcon: labelIcon - }); - - mainElements.push(generateLI(labelElement, null, 'dropdown-header' + optGroupClass, optID)); - mainData.push({ - content: labelEscaped, - subtext: labelSubtext, - type: 'optgroup-label', - optID: optID, - originalIndex: index - }); - - headerIndex = liIndex - 1; - } - - if (that.options.hideDisabled && isDisabled || thisData.hidden === true) { - liIndex--; - return; - } - - textElement = generateText({ - text: text, - optionContent: optionContent, - optionSubtext: subtext, - optionIcon: icon - }); - - mainElements.push(generateLI(generateA(textElement, 'opt ' + optionClass + optGroupClass, inline), index, '', optID)); - mainData.push({ - content: optionContent || text, - subtext: subtext, - tokens: tokens, - type: 'option', - optID: optID, - headerIndex: headerIndex, - lastIndex: headerIndex + parent.childElementCount, - originalIndex: index, - data: thisData - }); - - availableOptionsCount++; - } else if (thisData.divider === true) { - mainElements.push(generateLI(false, index, 'divider')); - mainData.push({ - type: 'divider', - originalIndex: index - }); - } else { - // if previous element is not an optgroup and hideDisabled is true - if (!showDivider && that.options.hideDisabled) { - prevHiddenIndex = thisData.prevHiddenIndex; - - if (prevHiddenIndex !== undefined) { - // select the element **before** the first hidden element in the group - var prevHidden = $selectOptions[prevHiddenIndex].previousElementSibling; - - if (prevHidden && prevHidden.tagName === 'OPTGROUP' && !prevHidden.disabled) { - showDivider = true; - } - } - } - - if (showDivider && mainData[mainData.length - 1].type !== 'divider') { - liIndex++; - mainElements.push( - generateLI( - false, - null, - classNames.DIVIDER, - optID + 'div' - ) - ); - mainData.push({ - type: 'divider', - optID: optID, - originalIndex: index - }); - } - - textElement = generateText({ - text: text, - optionContent: optionContent, - optionSubtext: subtext, - optionIcon: icon - }); - - mainElements.push(generateLI(generateA(textElement, optionClass, inline), index)); - mainData.push({ - content: optionContent || text, - subtext: subtext, - tokens: tokens, - type: 'option', - originalIndex: index, - data: thisData - }); - - availableOptionsCount++; - } - - that.selectpicker.main.map.newIndex[index] = liIndex; - that.selectpicker.main.map.originalIndex[liIndex] = index; - - // get the most recent option info added to mainData - var _mainDataLast = mainData[mainData.length - 1]; - - _mainDataLast.disabled = isDisabled; - - var combinedLength = 0; - - // count the number of characters in the option - not perfect, but should work in most cases - if (_mainDataLast.content) combinedLength += _mainDataLast.content.length; - if (_mainDataLast.subtext) combinedLength += _mainDataLast.subtext.length; - // if there is an icon, ensure this option's width is checked - if (icon) combinedLength += 1; - - if (combinedLength > widestOptionLength) { - widestOptionLength = combinedLength; - - // guess which option is the widest - // use this when calculating menu width - // not perfect, but it's fast, and the width will be updating accordingly when scrolling - widestOption = mainElements[mainElements.length - 1]; - } - }); - - this.selectpicker.main.elements = mainElements; - this.selectpicker.main.data = mainData; - - this.selectpicker.current = this.selectpicker.main; - - this.selectpicker.view.widestOption = widestOption; - this.selectpicker.view.availableOptionsCount = availableOptionsCount; // faster way to get # of available options without filter - }, - - findLis: function () { - return this.$menuInner.find('.inner > li'); - }, - - render: function () { - var that = this, - $selectOptions = this.$element.find('option'), - selectedItems = [], - selectedItemsInTitle = []; - - this.togglePlaceholder(); - - this.tabIndex(); - - for (var i = 0, len = this.selectpicker.main.elements.length; i < len; i++) { - var index = this.selectpicker.main.map.originalIndex[i], - option = $selectOptions[index]; - - if (option && option.selected) { - selectedItems.push(option); - - if (selectedItemsInTitle.length < 100 && that.options.selectedTextFormat !== 'count' || selectedItems.length === 1) { - if (that.options.hideDisabled && (option.disabled || option.parentNode.tagName === 'OPTGROUP' && option.parentNode.disabled)) return; - - var thisData = this.selectpicker.main.data[i].data, - icon = thisData.icon && that.options.showIcon ? ' ' : '', - subtext, - titleItem; - - if (that.options.showSubtext && thisData.subtext && !that.multiple) { - subtext = ' ' + thisData.subtext + ''; - } else { - subtext = ''; - } - - if (option.title) { - titleItem = option.title; - } else if (thisData.content && that.options.showContent) { - titleItem = thisData.content.toString(); - } else { - titleItem = icon + option.innerHTML.trim() + subtext; - } - - selectedItemsInTitle.push(titleItem); - } - } - } - - //Fixes issue in IE10 occurring when no default option is selected and at least one option is disabled - //Convert all the values into a comma delimited string - var title = !this.multiple ? selectedItemsInTitle[0] : selectedItemsInTitle.join(this.options.multipleSeparator); - - // add ellipsis - if (selectedItems.length > 50) title += '...'; - - // If this is a multiselect, and selectedTextFormat is count, then show 1 of 2 selected etc.. - if (this.multiple && this.options.selectedTextFormat.indexOf('count') !== -1) { - var max = this.options.selectedTextFormat.split('>'); - - if ((max.length > 1 && selectedItems.length > max[1]) || (max.length === 1 && selectedItems.length >= 2)) { - var totalCount = this.selectpicker.view.availableOptionsCount, - tr8nText = (typeof this.options.countSelectedText === 'function') ? this.options.countSelectedText(selectedItems.length, totalCount) : this.options.countSelectedText; - - title = tr8nText.replace('{0}', selectedItems.length.toString()).replace('{1}', totalCount.toString()); - } - } - - if (this.options.title == undefined) { - // use .attr to ensure undefined is returned if title attribute is not set - this.options.title = this.$element.attr('title'); - } - - if (this.options.selectedTextFormat == 'static') { - title = this.options.title; - } - - //If we dont have a title, then use the default, or if nothing is set at all, use the not selected text - if (!title) { - title = typeof this.options.title !== 'undefined' ? this.options.title : this.options.noneSelectedText; - } - - //strip all HTML tags and trim the result, then unescape any escaped tags - this.$button[0].title = htmlUnescape(title.replace(/<[^>]*>?/g, '').trim()); - this.$button.find('.filter-option-inner-inner')[0].innerHTML = title; - - this.$element.trigger('rendered.bs.select'); - }, - - /** - * @param [style] - * @param [status] - */ - setStyle: function (style, status) { - if (this.$element.attr('class')) { - this.$newElement.addClass(this.$element.attr('class').replace(/selectpicker|mobile-device|bs-select-hidden|validate\[.*\]/gi, '')); - } - - var buttonClass = style ? style : this.options.style; - - if (status == 'add') { - this.$button.addClass(buttonClass); - } else if (status == 'remove') { - this.$button.removeClass(buttonClass); - } else { - this.$button.removeClass(this.options.style); - this.$button.addClass(buttonClass); - } - }, - - liHeight: function (refresh) { - if (!refresh && (this.options.size === false || this.sizeInfo)) return; - - if (!this.sizeInfo) this.sizeInfo = {}; - - var newElement = document.createElement('div'), - menu = document.createElement('div'), - menuInner = document.createElement('div'), - menuInnerInner = document.createElement('ul'), - divider = document.createElement('li'), - dropdownHeader = document.createElement('li'), - li = document.createElement('li'), - a = document.createElement('a'), - text = document.createElement('span'), - header = this.options.header && this.$menu.find('.' + classNames.POPOVERHEADER).length > 0 ? this.$menu.find('.' + classNames.POPOVERHEADER)[0].cloneNode(true) : null, - search = this.options.liveSearch ? document.createElement('div') : null, - actions = this.options.actionsBox && this.multiple && this.$menu.find('.bs-actionsbox').length > 0 ? this.$menu.find('.bs-actionsbox')[0].cloneNode(true) : null, - doneButton = this.options.doneButton && this.multiple && this.$menu.find('.bs-donebutton').length > 0 ? this.$menu.find('.bs-donebutton')[0].cloneNode(true) : null; - - this.sizeInfo.selectWidth = this.$newElement[0].offsetWidth; - - text.className = 'text'; - a.className = 'dropdown-item'; - newElement.className = this.$menu[0].parentNode.className + ' ' + classNames.SHOW; - newElement.style.width = this.sizeInfo.selectWidth + 'px'; - menu.className = 'dropdown-menu ' + classNames.SHOW; - menuInner.className = 'inner ' + classNames.SHOW; - menuInnerInner.className = 'dropdown-menu inner ' + (version.major === '4' ? classNames.SHOW : ''); - divider.className = classNames.DIVIDER; - dropdownHeader.className = 'dropdown-header'; - - text.appendChild(document.createTextNode('Inner text')); - a.appendChild(text); - li.appendChild(a); - dropdownHeader.appendChild(text.cloneNode(true)); - - if (this.selectpicker.view.widestOption) { - menuInnerInner.appendChild(this.selectpicker.view.widestOption.cloneNode(true)); - } - - menuInnerInner.appendChild(li); - menuInnerInner.appendChild(divider); - menuInnerInner.appendChild(dropdownHeader); - if (header) menu.appendChild(header); - if (search) { - var input = document.createElement('input'); - search.className = 'bs-searchbox'; - input.className = 'form-control'; - search.appendChild(input); - menu.appendChild(search); - } - if (actions) menu.appendChild(actions); - menuInner.appendChild(menuInnerInner); - menu.appendChild(menuInner); - if (doneButton) menu.appendChild(doneButton); - newElement.appendChild(menu); - - document.body.appendChild(newElement); - - var liHeight = a.offsetHeight, - dropdownHeaderHeight = dropdownHeader ? dropdownHeader.offsetHeight : 0, - headerHeight = header ? header.offsetHeight : 0, - searchHeight = search ? search.offsetHeight : 0, - actionsHeight = actions ? actions.offsetHeight : 0, - doneButtonHeight = doneButton ? doneButton.offsetHeight : 0, - dividerHeight = $(divider).outerHeight(true), - // fall back to jQuery if getComputedStyle is not supported - menuStyle = window.getComputedStyle ? window.getComputedStyle(menu) : false, - menuWidth = menu.offsetWidth, - $menu = menuStyle ? null : $(menu), - menuPadding = { - vert: toInteger(menuStyle ? menuStyle.paddingTop : $menu.css('paddingTop')) + - toInteger(menuStyle ? menuStyle.paddingBottom : $menu.css('paddingBottom')) + - toInteger(menuStyle ? menuStyle.borderTopWidth : $menu.css('borderTopWidth')) + - toInteger(menuStyle ? menuStyle.borderBottomWidth : $menu.css('borderBottomWidth')), - horiz: toInteger(menuStyle ? menuStyle.paddingLeft : $menu.css('paddingLeft')) + - toInteger(menuStyle ? menuStyle.paddingRight : $menu.css('paddingRight')) + - toInteger(menuStyle ? menuStyle.borderLeftWidth : $menu.css('borderLeftWidth')) + - toInteger(menuStyle ? menuStyle.borderRightWidth : $menu.css('borderRightWidth')) - }, - menuExtras = { - vert: menuPadding.vert + - toInteger(menuStyle ? menuStyle.marginTop : $menu.css('marginTop')) + - toInteger(menuStyle ? menuStyle.marginBottom : $menu.css('marginBottom')) + 2, - horiz: menuPadding.horiz + - toInteger(menuStyle ? menuStyle.marginLeft : $menu.css('marginLeft')) + - toInteger(menuStyle ? menuStyle.marginRight : $menu.css('marginRight')) + 2 - }, - scrollBarWidth; - - menuInner.style.overflowY = 'scroll'; - - scrollBarWidth = menu.offsetWidth - menuWidth; - - document.body.removeChild(newElement); - - this.sizeInfo.liHeight = liHeight; - this.sizeInfo.dropdownHeaderHeight = dropdownHeaderHeight; - this.sizeInfo.headerHeight = headerHeight; - this.sizeInfo.searchHeight = searchHeight; - this.sizeInfo.actionsHeight = actionsHeight; - this.sizeInfo.doneButtonHeight = doneButtonHeight; - this.sizeInfo.dividerHeight = dividerHeight; - this.sizeInfo.menuPadding = menuPadding; - this.sizeInfo.menuExtras = menuExtras; - this.sizeInfo.menuWidth = menuWidth; - this.sizeInfo.totalMenuWidth = this.sizeInfo.menuWidth; - this.sizeInfo.scrollBarWidth = scrollBarWidth; - this.sizeInfo.selectHeight = this.$newElement[0].offsetHeight; - - this.setPositionData(); - }, - - getSelectPosition: function () { - var that = this, - $window = $(window), - pos = that.$newElement.offset(), - $container = $(that.options.container), - containerPos; - - if (that.options.container && !$container.is('body')) { - containerPos = $container.offset(); - containerPos.top += parseInt($container.css('borderTopWidth')); - containerPos.left += parseInt($container.css('borderLeftWidth')); - } else { - containerPos = { top: 0, left: 0 }; - } - - var winPad = that.options.windowPadding; - - this.sizeInfo.selectOffsetTop = pos.top - containerPos.top - $window.scrollTop(); - this.sizeInfo.selectOffsetBot = $window.height() - this.sizeInfo.selectOffsetTop - this.sizeInfo['selectHeight'] - containerPos.top - winPad[2]; - this.sizeInfo.selectOffsetLeft = pos.left - containerPos.left - $window.scrollLeft(); - this.sizeInfo.selectOffsetRight = $window.width() - this.sizeInfo.selectOffsetLeft - this.sizeInfo['selectWidth'] - containerPos.left - winPad[1]; - this.sizeInfo.selectOffsetTop -= winPad[0]; - this.sizeInfo.selectOffsetLeft -= winPad[3]; - }, - - setMenuSize: function (isAuto) { - this.getSelectPosition(); - - var selectWidth = this.sizeInfo['selectWidth'], - liHeight = this.sizeInfo['liHeight'], - headerHeight = this.sizeInfo['headerHeight'], - searchHeight = this.sizeInfo['searchHeight'], - actionsHeight = this.sizeInfo['actionsHeight'], - doneButtonHeight = this.sizeInfo['doneButtonHeight'], - divHeight = this.sizeInfo['dividerHeight'], - menuPadding = this.sizeInfo['menuPadding'], - menuInnerHeight, - menuHeight, - divLength = 0, - minHeight, - _minHeight, - maxHeight, - menuInnerMinHeight, - estimate; - - if (this.options.dropupAuto) { - // Get the estimated height of the menu without scrollbars. - // This is useful for smaller menus, where there might be plenty of room - // below the button without setting dropup, but we can't know - // the exact height of the menu until createView is called later - estimate = liHeight * this.selectpicker.current.elements.length + menuPadding.vert; - this.$newElement.toggleClass(classNames.DROPUP, this.sizeInfo.selectOffsetTop - this.sizeInfo.selectOffsetBot > this.sizeInfo.menuExtras.vert && estimate + this.sizeInfo.menuExtras.vert + 50 > this.sizeInfo.selectOffsetBot); - } - - if (this.options.size === 'auto') { - _minHeight = this.selectpicker.current.elements.length > 3 ? this.sizeInfo.liHeight * 3 + this.sizeInfo.menuExtras.vert - 2 : 0; - menuHeight = this.sizeInfo.selectOffsetBot - this.sizeInfo.menuExtras.vert; - minHeight = _minHeight + headerHeight + searchHeight + actionsHeight + doneButtonHeight; - menuInnerMinHeight = Math.max(_minHeight - menuPadding.vert, 0); - - if (this.$newElement.hasClass(classNames.DROPUP)) { - menuHeight = this.sizeInfo.selectOffsetTop - this.sizeInfo.menuExtras.vert; - } - - maxHeight = menuHeight; - menuInnerHeight = menuHeight - headerHeight - searchHeight - actionsHeight - doneButtonHeight - menuPadding.vert; - } else if (this.options.size && this.options.size != 'auto' && this.selectpicker.current.elements.length > this.options.size) { - for (var i = 0; i < this.options.size; i++) { - if (this.selectpicker.current.data[i].type === 'divider') divLength++; - } - - menuHeight = liHeight * this.options.size + divLength * divHeight + menuPadding.vert; - menuInnerHeight = menuHeight - menuPadding.vert; - maxHeight = menuHeight + headerHeight + searchHeight + actionsHeight + doneButtonHeight; - minHeight = menuInnerMinHeight = ''; - } - - if (this.options.dropdownAlignRight === 'auto') { - this.$menu.toggleClass(classNames.MENURIGHT, this.sizeInfo.selectOffsetLeft > this.sizeInfo.selectOffsetRight && this.sizeInfo.selectOffsetRight < (this.$menu[0].offsetWidth - selectWidth)); - } - - this.$menu.css({ - 'max-height': maxHeight + 'px', - 'overflow': 'hidden', - 'min-height': minHeight + 'px' - }); - - this.$menuInner.css({ - 'max-height': menuInnerHeight + 'px', - 'overflow-y': 'auto', - 'min-height': menuInnerMinHeight + 'px' - }); - - this.sizeInfo['menuInnerHeight'] = menuInnerHeight; - - if (this.selectpicker.current.data.length && this.selectpicker.current.data[this.selectpicker.current.data.length - 1].position > this.sizeInfo.menuInnerHeight) { - this.sizeInfo.hasScrollBar = true; - this.sizeInfo.totalMenuWidth = this.sizeInfo.menuWidth + this.sizeInfo.scrollBarWidth; - - this.$menu.css('min-width', this.sizeInfo.totalMenuWidth); - } - - if (this.dropdown && this.dropdown._popper) this.dropdown._popper.update(); - }, - - setSize: function (refresh) { - this.liHeight(refresh); - - if (this.options.header) this.$menu.css('padding-top', 0); - if (this.options.size === false) return; - - var that = this, - $window = $(window), - selectedIndex, - offset = 0; - - this.setMenuSize(); - - if (this.options.size === 'auto') { - this.$searchbox.off('input.setMenuSize propertychange.setMenuSize').on('input.setMenuSize propertychange.setMenuSize', function() { - return that.setMenuSize(); - }); - $window.off('resize.setMenuSize scroll.setMenuSize').on('resize.setMenuSize scroll.setMenuSize', function() { - return that.setMenuSize(); - }); - } else if (this.options.size && this.options.size != 'auto' && this.selectpicker.current.elements.length > this.options.size) { - this.$searchbox.off('input.setMenuSize propertychange.setMenuSize'); - $window.off('resize.setMenuSize scroll.setMenuSize'); - } - - if (refresh) { - offset = this.$menuInner[0].scrollTop; - } else if (!that.multiple) { - selectedIndex = that.selectpicker.main.map.newIndex[that.$element[0].selectedIndex]; - - if (typeof selectedIndex === 'number' && that.options.size !== false) { - offset = that.sizeInfo.liHeight * selectedIndex; - offset = offset - (that.sizeInfo.menuInnerHeight / 2) + (that.sizeInfo.liHeight / 2); - } - } - - that.createView(false, offset); - }, - - setWidth: function () { - var that = this; - - if (this.options.width === 'auto') { - requestAnimationFrame(function() { - that.$menu.css('min-width', '0'); - that.liHeight(); - that.setMenuSize(); - - // Get correct width if element is hidden - var $selectClone = that.$newElement.clone().appendTo('body'), - btnWidth = $selectClone.css('width', 'auto').children('button').outerWidth(); - - $selectClone.remove(); - - // Set width to whatever's larger, button title or longest option - that.sizeInfo.selectWidth = Math.max(that.sizeInfo.totalMenuWidth, btnWidth); - that.$newElement.css('width', that.sizeInfo.selectWidth + 'px'); - }); - } else if (this.options.width === 'fit') { - // Remove inline min-width so width can be changed from 'auto' - this.$menu.css('min-width', ''); - this.$newElement.css('width', '').addClass('fit-width'); - } else if (this.options.width) { - // Remove inline min-width so width can be changed from 'auto' - this.$menu.css('min-width', ''); - this.$newElement.css('width', this.options.width); - } else { - // Remove inline min-width/width so width can be changed - this.$menu.css('min-width', ''); - this.$newElement.css('width', ''); - } - // Remove fit-width class if width is changed programmatically - if (this.$newElement.hasClass('fit-width') && this.options.width !== 'fit') { - this.$newElement.removeClass('fit-width'); - } - }, - - selectPosition: function () { - this.$bsContainer = $('
    '); - - var that = this, - $container = $(this.options.container), - pos, - containerPos, - actualHeight, - getPlacement = function ($element) { - var containerPosition = {}; - - that.$bsContainer.addClass($element.attr('class').replace(/form-control|fit-width/gi, '')).toggleClass(classNames.DROPUP, $element.hasClass(classNames.DROPUP)); - pos = $element.offset(); - - if (!$container.is('body')) { - containerPos = $container.offset(); - containerPos.top += parseInt($container.css('borderTopWidth')) - $container.scrollTop(); - containerPos.left += parseInt($container.css('borderLeftWidth')) - $container.scrollLeft(); - } else { - containerPos = { top: 0, left: 0 }; - } - - actualHeight = $element.hasClass(classNames.DROPUP) ? 0 : $element[0].offsetHeight; - - // Bootstrap 4+ uses Popper for menu positioning - if (version.major < 4) { - containerPosition['top'] = pos.top - containerPos.top + actualHeight; - containerPosition['left'] = pos.left - containerPos.left; - } - - containerPosition['width'] = $element[0].offsetWidth; - - that.$bsContainer.css(containerPosition); - }; - - this.$button.on('click.bs.dropdown.data-api', function () { - if (that.isDisabled()) { - return; - } - - getPlacement(that.$newElement); - - that.$bsContainer - .appendTo(that.options.container) - .toggleClass(classNames.SHOW, !that.$button.hasClass(classNames.SHOW)) - .append(that.$menu); - }); - - $(window).on('resize scroll', function () { - getPlacement(that.$newElement); - }); - - this.$element.on('hide.bs.select', function () { - that.$menu.data('height', that.$menu.height()); - that.$bsContainer.detach(); - }); - }, - - setOptionStatus: function () { - var that = this, - $selectOptions = this.$element.find('option'); - - that.noScroll = false; - - if (that.selectpicker.view.visibleElements && that.selectpicker.view.visibleElements.length) { - for (var i = 0; i < that.selectpicker.view.visibleElements.length; i++) { - var index = that.selectpicker.current.map.originalIndex[i + that.selectpicker.view.position0], // faster than $(li).data('originalIndex') - option = $selectOptions[index]; - - if (option) { - var liIndex = this.selectpicker.main.map.newIndex[index], - li = this.selectpicker.main.elements[liIndex]; - - that.setDisabled( - index, - option.disabled || option.parentNode.tagName === 'OPTGROUP' && option.parentNode.disabled, - liIndex, - li - ); - - that.setSelected( - index, - option.selected, - liIndex, - li - ); - } - } - } - }, - - /** - * @param {number} index - the index of the option that is being changed - * @param {boolean} selected - true if the option is being selected, false if being deselected - */ - setSelected: function (index, selected, liIndex, li) { - var activeIndexIsSet = this.activeIndex !== undefined, - thisIsActive = this.activeIndex === index, - prevActiveIndex, - prevActive, - a, - // if current option is already active - // OR - // if the current option is being selected, it's NOT multiple, and - // activeIndex is undefined: - // - when the menu is first being opened, OR - // - after a search has been performed, OR - // - when retainActive is false when selecting a new option (i.e. index of the newly selected option is not the same as the current activeIndex) - keepActive = thisIsActive || selected && !this.multiple && !activeIndexIsSet; - - if (!liIndex) liIndex = this.selectpicker.main.map.newIndex[index]; - if (!li) li = this.selectpicker.main.elements[liIndex]; - - a = li.firstChild; - - if (selected) { - this.selectedIndex = index; - } - - li.classList.toggle('selected', selected); - li.classList.toggle('active', keepActive); - - if (keepActive) { - this.selectpicker.view.currentActive = li; - this.activeIndex = index; - } - - if (a) { - a.classList.toggle('selected', selected); - a.classList.toggle('active', keepActive); - a.setAttribute('aria-selected', selected); - } - - if (!keepActive) { - if (!activeIndexIsSet && selected && this.prevActiveIndex !== undefined) { - prevActiveIndex = this.selectpicker.main.map.newIndex[this.prevActiveIndex]; - prevActive = this.selectpicker.main.elements[prevActiveIndex]; - - prevActive.classList.remove('selected'); - prevActive.classList.remove('active'); - if (prevActive.firstChild) { - prevActive.firstChild.classList.remove('selected'); - prevActive.firstChild.classList.remove('active'); - } - } - } - }, - - /** - * @param {number} index - the index of the option that is being disabled - * @param {boolean} disabled - true if the option is being disabled, false if being enabled - */ - setDisabled: function (index, disabled, liIndex, li) { - var a; - - if (!liIndex) liIndex = this.selectpicker.main.map.newIndex[index]; - if (!li) li = this.selectpicker.main.elements[liIndex]; - - a = li.firstChild; - - li.classList.toggle(classNames.DISABLED, disabled); - - if (a) { - if (version.major === '4') a.classList.toggle(classNames.DISABLED, disabled); - - a.setAttribute('aria-disabled', disabled); - - if (disabled) { - a.setAttribute('tabindex', -1); - } else { - a.setAttribute('tabindex', 0); - } - } - }, - - isDisabled: function () { - return this.$element[0].disabled; - }, - - checkDisabled: function () { - var that = this; - - if (this.isDisabled()) { - this.$newElement.addClass(classNames.DISABLED); - this.$button.addClass(classNames.DISABLED).attr('tabindex', -1).attr('aria-disabled', true); - } else { - if (this.$button.hasClass(classNames.DISABLED)) { - this.$newElement.removeClass(classNames.DISABLED); - this.$button.removeClass(classNames.DISABLED).attr('aria-disabled', false); - } - - if (this.$button.attr('tabindex') == -1 && !this.$element.data('tabindex')) { - this.$button.removeAttr('tabindex'); - } - } - - this.$button.click(function () { - return !that.isDisabled(); - }); - }, - - togglePlaceholder: function () { - // much faster than calling $.val() - var element = this.$element[0], - selectedIndex = element.selectedIndex, - nothingSelected = selectedIndex === -1; - - if (!nothingSelected && !element.options[selectedIndex].value) nothingSelected = true; - - this.$button.toggleClass('bs-placeholder', nothingSelected); - }, - - tabIndex: function () { - if (this.$element.data('tabindex') !== this.$element.attr('tabindex') && - (this.$element.attr('tabindex') !== -98 && this.$element.attr('tabindex') !== '-98')) { - this.$element.data('tabindex', this.$element.attr('tabindex')); - this.$button.attr('tabindex', this.$element.data('tabindex')); - } - - this.$element.attr('tabindex', -98); - }, - - clickListener: function () { - var that = this, - $document = $(document); - - $document.data('spaceSelect', false); - - this.$button.on('keyup', function (e) { - if (/(32)/.test(e.keyCode.toString(10)) && $document.data('spaceSelect')) { - e.preventDefault(); - $document.data('spaceSelect', false); - } - }); - - this.$newElement.on('show.bs.dropdown', function() { - if (version.major > 3 && !that.dropdown) { - that.dropdown = that.$button.data('bs.dropdown'); - that.dropdown._menu = that.$menu[0]; - } - }); - - this.$button.on('click.bs.dropdown.data-api', function () { - if (!that.$newElement.hasClass(classNames.SHOW)) { - that.setSize(); - } - }); - - this.$element.on('shown.bs.select', function () { - if (that.$menuInner[0].scrollTop !== that.selectpicker.view.scrollTop) { - that.$menuInner[0].scrollTop = that.selectpicker.view.scrollTop; - } - - if (that.options.liveSearch) { - that.$searchbox.focus(); - } else { - that.$menuInner.focus(); - } - }); - - this.$menuInner.on('click', 'li a', function (e, retainActive) { - var $this = $(this), - position0 = that.isVirtual() ? that.selectpicker.view.position0 : 0, - clickedIndex = that.selectpicker.current.map.originalIndex[$this.parent().index() + position0], - prevValue = getSelectValues(that.$element[0]), - prevIndex = that.$element.prop('selectedIndex'), - triggerChange = true; - - // Don't close on multi choice menu - if (that.multiple && that.options.maxOptions !== 1) { - e.stopPropagation(); - } - - e.preventDefault(); - - //Don't run if we have been disabled - if (!that.isDisabled() && !$this.parent().hasClass(classNames.DISABLED)) { - var $options = that.$element.find('option'), - $option = $options.eq(clickedIndex), - state = $option.prop('selected'), - $optgroup = $option.parent('optgroup'), - maxOptions = that.options.maxOptions, - maxOptionsGrp = $optgroup.data('maxOptions') || false; - - if (clickedIndex === that.activeIndex) retainActive = true; - - if (!retainActive) { - that.prevActiveIndex = that.activeIndex; - that.activeIndex = undefined; - } - - if (!that.multiple) { // Deselect all others if not multi select box - $options.prop('selected', false); - $option.prop('selected', true); - that.setSelected(clickedIndex, true); - } else { // Toggle the one we have chosen if we are multi select. - $option.prop('selected', !state); - - that.setSelected(clickedIndex, !state); - $this.blur(); - - if (maxOptions !== false || maxOptionsGrp !== false) { - var maxReached = maxOptions < $options.filter(':selected').length, - maxReachedGrp = maxOptionsGrp < $optgroup.find('option:selected').length; - - if ((maxOptions && maxReached) || (maxOptionsGrp && maxReachedGrp)) { - if (maxOptions && maxOptions == 1) { - $options.prop('selected', false); - $option.prop('selected', true); - that.$menuInner.find('.selected').removeClass('selected'); - that.setSelected(clickedIndex, true); - } else if (maxOptionsGrp && maxOptionsGrp == 1) { - $optgroup.find('option:selected').prop('selected', false); - $option.prop('selected', true); - var optgroupID = that.selectpicker.current.data[$this.parent().index() + that.selectpicker.view.position0].optID; - that.$menuInner.find('.optgroup-' + optgroupID).removeClass('selected'); - that.setSelected(clickedIndex, true); - } else { - var maxOptionsText = typeof that.options.maxOptionsText === 'string' ? [that.options.maxOptionsText, that.options.maxOptionsText] : that.options.maxOptionsText, - maxOptionsArr = typeof maxOptionsText === 'function' ? maxOptionsText(maxOptions, maxOptionsGrp) : maxOptionsText, - maxTxt = maxOptionsArr[0].replace('{n}', maxOptions), - maxTxtGrp = maxOptionsArr[1].replace('{n}', maxOptionsGrp), - $notify = $('
    '); - // If {var} is set in array, replace it - /** @deprecated */ - if (maxOptionsArr[2]) { - maxTxt = maxTxt.replace('{var}', maxOptionsArr[2][maxOptions > 1 ? 0 : 1]); - maxTxtGrp = maxTxtGrp.replace('{var}', maxOptionsArr[2][maxOptionsGrp > 1 ? 0 : 1]); - } - - $option.prop('selected', false); - - that.$menu.append($notify); - - if (maxOptions && maxReached) { - $notify.append($('
    ' + maxTxt + '
    ')); - triggerChange = false; - that.$element.trigger('maxReached.bs.select'); - } - - if (maxOptionsGrp && maxReachedGrp) { - $notify.append($('
    ' + maxTxtGrp + '
    ')); - triggerChange = false; - that.$element.trigger('maxReachedGrp.bs.select'); - } - - setTimeout(function () { - that.setSelected(clickedIndex, false); - }, 10); - - $notify.delay(750).fadeOut(300, function () { - $(this).remove(); - }); - } - } - } - } - - if (!that.multiple || (that.multiple && that.options.maxOptions === 1)) { - that.$button.focus(); - } else if (that.options.liveSearch) { - that.$searchbox.focus(); - } - - // Trigger select 'change' - if (triggerChange) { - if ((prevValue != getSelectValues(that.$element[0]) && that.multiple) || (prevIndex != that.$element.prop('selectedIndex') && !that.multiple)) { - // $option.prop('selected') is current option state (selected/unselected). prevValue is the value of the select prior to being changed. - changed_arguments = [clickedIndex, $option.prop('selected'), prevValue]; - that.$element - .triggerNative('change'); - } - } - } - }); - - this.$menu.on('click', 'li.' + classNames.DISABLED + ' a, .' + classNames.POPOVERHEADER + ', .' + classNames.POPOVERHEADER + ' :not(.close)', function (e) { - if (e.currentTarget == this) { - e.preventDefault(); - e.stopPropagation(); - if (that.options.liveSearch && !$(e.target).hasClass('close')) { - that.$searchbox.focus(); - } else { - that.$button.focus(); - } - } - }); - - this.$menuInner.on('click', '.divider, .dropdown-header', function (e) { - e.preventDefault(); - e.stopPropagation(); - if (that.options.liveSearch) { - that.$searchbox.focus(); - } else { - that.$button.focus(); - } - }); - - this.$menu.on('click', '.' + classNames.POPOVERHEADER + ' .close', function () { - that.$button.click(); - }); - - this.$searchbox.on('click', function (e) { - e.stopPropagation(); - }); - - this.$menu.on('click', '.actions-btn', function (e) { - if (that.options.liveSearch) { - that.$searchbox.focus(); - } else { - that.$button.focus(); - } - - e.preventDefault(); - e.stopPropagation(); - - if ($(this).hasClass('bs-select-all')) { - that.selectAll(); - } else { - that.deselectAll(); - } - }); - - this.$element.on({ - 'change': function () { - that.render(); - that.$element.trigger('changed.bs.select', changed_arguments); - changed_arguments = null; - }, - 'focus': function () { - that.$button.focus(); - } - }); - }, - - liveSearchListener: function () { - var that = this, - no_results = document.createElement('li'); - - this.$button.on('click.bs.dropdown.data-api', function () { - if (!!that.$searchbox.val()) { - that.$searchbox.val(''); - } - }); - - this.$searchbox.on('click.bs.dropdown.data-api focus.bs.dropdown.data-api touchend.bs.dropdown.data-api', function (e) { - e.stopPropagation(); - }); - - this.$searchbox.on('input propertychange', function () { - var searchValue = that.$searchbox.val(); - - that.selectpicker.search.map.newIndex = {}; - that.selectpicker.search.map.originalIndex = {}; - that.selectpicker.search.elements = []; - that.selectpicker.search.data = []; - - if (searchValue) { - var i, - searchMatch = [], - q = searchValue.toUpperCase(), - cache = {}, - cacheArr = [], - searchStyle = that._searchStyle(), - normalizeSearch = that.options.liveSearchNormalize; - - that._$lisSelected = that.$menuInner.find('.selected'); - - for (var i = 0; i < that.selectpicker.main.data.length; i++) { - var li = that.selectpicker.main.data[i]; - - if (!cache[i]) { - cache[i] = stringSearch(li, q, searchStyle, normalizeSearch); - } - - if (cache[i] && li.headerIndex !== undefined && cacheArr.indexOf(li.headerIndex) === -1) { - if (li.headerIndex > 0) { - cache[li.headerIndex - 1] = true; - cacheArr.push(li.headerIndex - 1); - } - - cache[li.headerIndex] = true; - cacheArr.push(li.headerIndex); - - cache[li.lastIndex + 1] = true; - } - - if (cache[i] && li.type !== 'optgroup-label') cacheArr.push(i); - } - - for (var i = 0, cacheLen = cacheArr.length; i < cacheLen; i++) { - var index = cacheArr[i], - prevIndex = cacheArr[i - 1], - li = that.selectpicker.main.data[index], - liPrev = that.selectpicker.main.data[prevIndex]; - - if ( li.type !== 'divider' || ( li.type === 'divider' && liPrev && liPrev.type !== 'divider' && cacheLen - 1 !== i ) ) { - that.selectpicker.search.data.push(li); - searchMatch.push(that.selectpicker.main.elements[index]); - that.selectpicker.search.map.newIndex[li.originalIndex] = searchMatch.length - 1; - that.selectpicker.search.map.originalIndex[searchMatch.length - 1] = li.originalIndex; - } - } - - that.activeIndex = undefined; - that.noScroll = true; - that.$menuInner.scrollTop(0); - that.selectpicker.search.elements = searchMatch; - that.createView(true); - - if (!searchMatch.length) { - no_results.className = 'no-results'; - no_results.innerHTML = that.options.noneResultsText.replace('{0}', '"' + htmlEscape(searchValue) + '"'); - that.$menuInner[0].firstChild.appendChild(no_results); - } - } else { - that.$menuInner.scrollTop(0); - that.createView(false); - } - }); - }, - - _searchStyle: function () { - return this.options.liveSearchStyle || 'contains'; - }, - - val: function (value) { - if (typeof value !== 'undefined') { - this.$element - .val(value) - .triggerNative('change'); - - return this.$element; - } else { - return this.$element.val(); - } - }, - - changeAll: function (status) { - if (!this.multiple) return; - if (typeof status === 'undefined') status = true; - - var $selectOptions = this.$element.find('option'), - previousSelected = 0, - currentSelected = 0, - prevValue = getSelectValues(this.$element[0]); - - this.$element.addClass('bs-select-hidden'); - - for (var i = 0; i < this.selectpicker.current.elements.length; i++) { - var index = this.selectpicker.current.map.originalIndex[i], // faster than $(li).data('originalIndex') - option = $selectOptions[index]; - - if (option) { - if (option.selected) previousSelected++; - option.selected = status; - if (option.selected) currentSelected++; - } - } - - this.$element.removeClass('bs-select-hidden'); - - if (previousSelected === currentSelected) return; - - this.setOptionStatus(); - - this.togglePlaceholder(); - - changed_arguments = [null, null, prevValue]; - - this.$element - .triggerNative('change'); - }, - - selectAll: function () { - return this.changeAll(true); - }, - - deselectAll: function () { - return this.changeAll(false); - }, - - toggle: function (e) { - e = e || window.event; - - if (e) e.stopPropagation(); - - this.$button.trigger('click.bs.dropdown.data-api'); - }, - - keydown: function (e) { - var $this = $(this), - $parent = $this.is('input') ? $this.parent().parent() : $this.parent(), - that = $parent.data('this'), - $items = that.findLis(), - index, - isActive, - liActive, - activeLi, - offset, - updateScroll = false, - downOnTab = e.which === keyCodes.TAB && !$this.hasClass('dropdown-toggle') && !that.options.selectOnTab, - isArrowKey = REGEXP_ARROW.test(e.which) || downOnTab, - scrollTop = that.$menuInner[0].scrollTop, - isVirtual = that.isVirtual(), - position0 = isVirtual === true ? that.selectpicker.view.position0 : 0; - - isActive = that.$newElement.hasClass(classNames.SHOW); - - if ( - !isActive && - ( - isArrowKey || - e.which >= 48 && e.which <= 57 || - e.which >= 96 && e.which <= 105 || - e.which >= 65 && e.which <= 90 - ) - ) { - that.$button.trigger('click.bs.dropdown.data-api'); - } - - if (e.which === keyCodes.ESCAPE && isActive) { - e.preventDefault(); - that.$button.trigger('click.bs.dropdown.data-api').focus(); - } - - if (isArrowKey) { // if up or down - if (!$items.length) return; - - // $items.index/.filter is too slow with a large list and no virtual scroll - index = isVirtual === true ? $items.index($items.filter('.active')) : that.selectpicker.current.map.newIndex[that.activeIndex]; - - if (index === undefined) index = -1; - - if (index !== -1) { - liActive = that.selectpicker.current.elements[index + position0]; - liActive.classList.remove('active'); - if (liActive.firstChild) liActive.firstChild.classList.remove('active'); - } - - if (e.which === keyCodes.ARROW_UP) { // up - if (index !== -1) index--; - if (index + position0 < 0) index += $items.length; - - if (!that.selectpicker.view.canHighlight[index + position0]) { - index = that.selectpicker.view.canHighlight.slice(0, index + position0).lastIndexOf(true) - position0; - if (index === -1) index = $items.length - 1; - } - } else if (e.which === keyCodes.ARROW_DOWN || downOnTab) { // down - index++; - if (index + position0 >= that.selectpicker.view.canHighlight.length) index = 0; - - if (!that.selectpicker.view.canHighlight[index + position0]) { - index = index + 1 + that.selectpicker.view.canHighlight.slice(index + position0 + 1).indexOf(true); - } - } - - e.preventDefault(); - - var liActiveIndex = position0 + index; - - if (e.which === keyCodes.ARROW_UP) { // up - // scroll to bottom and highlight last option - if (position0 === 0 && index === $items.length - 1) { - that.$menuInner[0].scrollTop = that.$menuInner[0].scrollHeight; - - liActiveIndex = that.selectpicker.current.elements.length - 1; - } else { - activeLi = that.selectpicker.current.data[liActiveIndex]; - offset = activeLi.position - activeLi.height; - - updateScroll = offset < scrollTop; - } - } else if (e.which === keyCodes.ARROW_DOWN || downOnTab) { // down - // scroll to top and highlight first option - if (position0 !== 0 && index === 0) { - that.$menuInner[0].scrollTop = 0; - - liActiveIndex = 0; - } else { - activeLi = that.selectpicker.current.data[liActiveIndex]; - offset = activeLi.position - that.sizeInfo.menuInnerHeight; - - updateScroll = offset > scrollTop; - } - } - - liActive = that.selectpicker.current.elements[liActiveIndex]; - liActive.classList.add('active'); - if (liActive.firstChild) liActive.firstChild.classList.add('active'); - that.activeIndex = that.selectpicker.current.map.originalIndex[liActiveIndex]; - - that.selectpicker.view.currentActive = liActive; - - if (updateScroll) that.$menuInner[0].scrollTop = offset; - - if (that.options.liveSearch) { - that.$searchbox.focus(); - } else { - $this.focus(); - } - } else if ( - !$this.is('input') && - !REGEXP_TAB_OR_ESCAPE.test(e.which) || - (e.which === keyCodes.SPACE && that.selectpicker.keydown.keyHistory) - ) { - var searchMatch, - matches = [], - keyHistory; - - e.preventDefault(); - - that.selectpicker.keydown.keyHistory += keyCodeMap[e.which]; - - if (that.selectpicker.keydown.resetKeyHistory.cancel) clearTimeout(that.selectpicker.keydown.resetKeyHistory.cancel); - that.selectpicker.keydown.resetKeyHistory.cancel = that.selectpicker.keydown.resetKeyHistory.start(); - - keyHistory = that.selectpicker.keydown.keyHistory; - - // if all letters are the same, set keyHistory to just the first character when searching - if (/^(.)\1+$/.test(keyHistory)) { - keyHistory = keyHistory.charAt(0); - } - - // find matches - for (var i = 0; i < that.selectpicker.current.data.length; i++) { - var li = that.selectpicker.current.data[i], - hasMatch; - - hasMatch = stringSearch(li, keyHistory, 'startsWith', true); - - if (hasMatch && that.selectpicker.view.canHighlight[i]) { - li.index = i; - matches.push(li.originalIndex); - } - } - - if (matches.length) { - var matchIndex = 0; - - $items.removeClass('active').find('a').removeClass('active'); - - // either only one key has been pressed or they are all the same key - if (keyHistory.length === 1) { - matchIndex = matches.indexOf(that.activeIndex); - - if (matchIndex === -1 || matchIndex === matches.length - 1) { - matchIndex = 0; - } else { - matchIndex++; - } - } - - searchMatch = that.selectpicker.current.map.newIndex[matches[matchIndex]]; - - activeLi = that.selectpicker.current.data[searchMatch]; - - if (scrollTop - activeLi.position > 0) { - offset = activeLi.position - activeLi.height; - updateScroll = true; - } else { - offset = activeLi.position - that.sizeInfo.menuInnerHeight; - // if the option is already visible at the current scroll position, just keep it the same - updateScroll = activeLi.position > scrollTop + that.sizeInfo.menuInnerHeight; - } - - liActive = that.selectpicker.current.elements[searchMatch]; - liActive.classList.add('active'); - if (liActive.firstChild) liActive.firstChild.classList.add('active'); - that.activeIndex = matches[matchIndex]; - - liActive.firstChild.focus(); - - if (updateScroll) that.$menuInner[0].scrollTop = offset; - - $this.focus(); - } - } - - // Select focused option if "Enter", "Spacebar" or "Tab" (when selectOnTab is true) are pressed inside the menu. - if ( - isActive && - ( - (e.which === keyCodes.SPACE && !that.selectpicker.keydown.keyHistory) || - e.which === keyCodes.ENTER || - (e.which === keyCodes.TAB && that.options.selectOnTab) - ) - ) { - if (e.which !== keyCodes.SPACE) e.preventDefault(); - - if (!that.options.liveSearch || e.which !== keyCodes.SPACE) { - that.$menuInner.find('.active a').trigger('click', true); // retain active class - $this.focus(); - - if (!that.options.liveSearch) { - // Prevent screen from scrolling if the user hits the spacebar - e.preventDefault(); - // Fixes spacebar selection of dropdown items in FF & IE - $(document).data('spaceSelect', true); - } - } - } - }, - - mobile: function () { - this.$element.addClass('mobile-device'); - }, - - refresh: function () { - // update options if data attributes have been changed - var config = $.extend({}, this.options, this.$element.data()); - this.options = config; - - this.selectpicker.main.map.newIndex = {}; - this.selectpicker.main.map.originalIndex = {}; - this.createLi(); - this.checkDisabled(); - this.render(); - this.setStyle(); - this.setWidth(); - - this.setSize(true); - - this.$element.trigger('refreshed.bs.select'); - }, - - hide: function () { - this.$newElement.hide(); - }, - - show: function () { - this.$newElement.show(); - }, - - remove: function () { - this.$newElement.remove(); - this.$element.remove(); - }, - - destroy: function () { - this.$newElement.before(this.$element).remove(); - - if (this.$bsContainer) { - this.$bsContainer.remove(); - } else { - this.$menu.remove(); - } - - this.$element - .off('.bs.select') - .removeData('selectpicker') - .removeClass('bs-select-hidden selectpicker'); - } - }; - - // SELECTPICKER PLUGIN DEFINITION - // ============================== - function Plugin(option) { - // get the args of the outer function.. - var args = arguments; - // The arguments of the function are explicitly re-defined from the argument list, because the shift causes them - // to get lost/corrupted in android 2.3 and IE9 #715 #775 - var _option = option; - - [].shift.apply(args); - - var value; - var chain = this.each(function () { - var $this = $(this); - if ($this.is('select')) { - var data = $this.data('selectpicker'), - options = typeof _option == 'object' && _option; - - if (!data) { - var config = $.extend({}, Selectpicker.DEFAULTS, $.fn.selectpicker.defaults || {}, $this.data(), options); - config.template = $.extend({}, Selectpicker.DEFAULTS.template, ($.fn.selectpicker.defaults ? $.fn.selectpicker.defaults.template : {}), $this.data().template, options.template); - $this.data('selectpicker', (data = new Selectpicker(this, config))); - } else if (options) { - for (var i in options) { - if (options.hasOwnProperty(i)) { - data.options[i] = options[i]; - } - } - } - - if (typeof _option == 'string') { - if (data[_option] instanceof Function) { - value = data[_option].apply(data, args); - } else { - value = data.options[_option]; - } - } - } - }); - - if (typeof value !== 'undefined') { - //noinspection JSUnusedAssignment - return value; - } else { - return chain; - } - } - - var old = $.fn.selectpicker; - $.fn.selectpicker = Plugin; - $.fn.selectpicker.Constructor = Selectpicker; - - // SELECTPICKER NO CONFLICT - // ======================== - $.fn.selectpicker.noConflict = function () { - $.fn.selectpicker = old; - return this; - }; - - $(document) - .off('keydown.bs.dropdown.data-api') - .on('keydown.bs.select', '.bootstrap-select [data-toggle="dropdown"], .bootstrap-select [role="listbox"], .bs-searchbox input', Selectpicker.prototype.keydown) - .on('focusin.modal', '.bootstrap-select [data-toggle="dropdown"], .bootstrap-select [role="listbox"], .bs-searchbox input', function (e) { - e.stopPropagation(); - }); - - // SELECTPICKER DATA-API - // ===================== - $(window).on('load.bs.select.data-api', function () { - $('.selectpicker').each(function () { - var $selectpicker = $(this); - Plugin.call($selectpicker, $selectpicker.data()); - }) - }); -})(jQuery); - - -})); - - -/***/ }), - -/***/ "./node_modules/chart.js/dist/Chart.min.js": -/*!*************************************************!*\ - !*** ./node_modules/chart.js/dist/Chart.min.js ***! - \*************************************************/ -/*! dynamic exports provided */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -var require;var require;/*! +!function(e){function t(i){if(n[i])return n[i].exports;var a=n[i]={i:i,l:!1,exports:{}};return e[i].call(a.exports,a,a.exports,t),a.l=!0,a.exports}var n={};t.m=e,t.c=n,t.d=function(e,n,i){t.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:i})},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="./",t(t.s="c0dd")}({"+27R":function(e,t,n){!function(e,t){t(n("PJh5"))}(0,function(e){"use strict";function t(e,t,n,i){var a={s:["thodde secondanim","thodde second"],ss:[e+" secondanim",e+" second"],m:["eka mintan","ek minute"],mm:[e+" mintanim",e+" mintam"],h:["eka horan","ek hor"],hh:[e+" horanim",e+" horam"],d:["eka disan","ek dis"],dd:[e+" disanim",e+" dis"],M:["eka mhoinean","ek mhoino"],MM:[e+" mhoineanim",e+" mhoine"],y:["eka vorsan","ek voros"],yy:[e+" vorsanim",e+" vorsam"]};return t?a[n][0]:a[n][1]}return e.defineLocale("gom-latn",{months:"Janer_Febrer_Mars_Abril_Mai_Jun_Julai_Agost_Setembr_Otubr_Novembr_Dezembr".split("_"),monthsShort:"Jan._Feb._Mars_Abr._Mai_Jun_Jul._Ago._Set._Otu._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Aitar_Somar_Mongllar_Budvar_Brestar_Sukrar_Son'var".split("_"),weekdaysShort:"Ait._Som._Mon._Bud._Bre._Suk._Son.".split("_"),weekdaysMin:"Ai_Sm_Mo_Bu_Br_Su_Sn".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"A h:mm [vazta]",LTS:"A h:mm:ss [vazta]",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY A h:mm [vazta]",LLLL:"dddd, MMMM[achea] Do, YYYY, A h:mm [vazta]",llll:"ddd, D MMM YYYY, A h:mm [vazta]"},calendar:{sameDay:"[Aiz] LT",nextDay:"[Faleam] LT",nextWeek:"[Ieta to] dddd[,] LT",lastDay:"[Kal] LT",lastWeek:"[Fatlo] dddd[,] LT",sameElse:"L"},relativeTime:{future:"%s",past:"%s adim",s:t,ss:t,m:t,mm:t,h:t,hh:t,d:t,dd:t,M:t,MM:t,y:t,yy:t},dayOfMonthOrdinalParse:/\d{1,2}(er)/,ordinal:function(e,t){switch(t){case"D":return e+"er";default:case"M":case"Q":case"DDD":case"d":case"w":case"W":return e}},week:{dow:1,doy:4},meridiemParse:/rati|sokalli|donparam|sanje/,meridiemHour:function(e,t){return 12===e&&(e=0),"rati"===t?e<4?e:e+12:"sokalli"===t?e:"donparam"===t?e>12?e:e+12:"sanje"===t?e+12:void 0},meridiem:function(e,t,n){return e<4?"rati":e<12?"sokalli":e<16?"donparam":e<20?"sanje":"rati"}})})},"+7/x":function(e,t,n){!function(e,t){t(n("PJh5"))}(0,function(e){"use strict";var t={1:"௧",2:"௨",3:"௩",4:"௪",5:"௫",6:"௬",7:"௭",8:"௮",9:"௯",0:"௦"},n={"௧":"1","௨":"2","௩":"3","௪":"4","௫":"5","௬":"6","௭":"7","௮":"8","௯":"9","௦":"0"};return e.defineLocale("ta",{months:"ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்".split("_"),monthsShort:"ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்".split("_"),weekdays:"ஞாயிற்றுக்கிழமை_திங்கட்கிழமை_செவ்வாய்கிழமை_புதன்கிழமை_வியாழக்கிழமை_வெள்ளிக்கிழமை_சனிக்கிழமை".split("_"),weekdaysShort:"ஞாயிறு_திங்கள்_செவ்வாய்_புதன்_வியாழன்_வெள்ளி_சனி".split("_"),weekdaysMin:"ஞா_தி_செ_பு_வி_வெ_ச".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, HH:mm",LLLL:"dddd, D MMMM YYYY, HH:mm"},calendar:{sameDay:"[இன்று] LT",nextDay:"[நாளை] LT",nextWeek:"dddd, LT",lastDay:"[நேற்று] LT",lastWeek:"[கடந்த வாரம்] dddd, LT",sameElse:"L"},relativeTime:{future:"%s இல்",past:"%s முன்",s:"ஒரு சில விநாடிகள்",ss:"%d விநாடிகள்",m:"ஒரு நிமிடம்",mm:"%d நிமிடங்கள்",h:"ஒரு மணி நேரம்",hh:"%d மணி நேரம்",d:"ஒரு நாள்",dd:"%d நாட்கள்",M:"ஒரு மாதம்",MM:"%d மாதங்கள்",y:"ஒரு வருடம்",yy:"%d ஆண்டுகள்"},dayOfMonthOrdinalParse:/\d{1,2}வது/,ordinal:function(e){return e+"வது"},preparse:function(e){return e.replace(/[௧௨௩௪௫௬௭௮௯௦]/g,function(e){return n[e]})},postformat:function(e){return e.replace(/\d/g,function(e){return t[e]})},meridiemParse:/யாமம்|வைகறை|காலை|நண்பகல்|எற்பாடு|மாலை/,meridiem:function(e,t,n){return e<2?" யாமம்":e<6?" வைகறை":e<10?" காலை":e<14?" நண்பகல்":e<18?" எற்பாடு":e<22?" மாலை":" யாமம்"},meridiemHour:function(e,t){return 12===e&&(e=0),"யாமம்"===t?e<2?e:e+12:"வைகறை"===t||"காலை"===t?e:"நண்பகல்"===t&&e>=10?e:e+12},week:{dow:0,doy:6}})})},"/6P1":function(e,t,n){!function(e,t){t(n("PJh5"))}(0,function(e){"use strict";function t(e,t,n,i){return t?"kelios sekundės":i?"kelių sekundžių":"kelias sekundes"}function n(e,t,n,i){return t?a(n)[0]:i?a(n)[1]:a(n)[2]}function i(e){return e%10==0||e>10&&e<20}function a(e){return o[e].split("_")}function r(e,t,r,o){var s=e+" ";return 1===e?s+n(e,t,r[0],o):t?s+(i(e)?a(r)[1]:a(r)[0]):o?s+a(r)[1]:s+(i(e)?a(r)[1]:a(r)[2])}var o={ss:"sekundė_sekundžių_sekundes",m:"minutė_minutės_minutę",mm:"minutės_minučių_minutes",h:"valanda_valandos_valandą",hh:"valandos_valandų_valandas",d:"diena_dienos_dieną",dd:"dienos_dienų_dienas",M:"mėnuo_mėnesio_mėnesį",MM:"mėnesiai_mėnesių_mėnesius",y:"metai_metų_metus",yy:"metai_metų_metus"};return e.defineLocale("lt",{months:{format:"sausio_vasario_kovo_balandžio_gegužės_birželio_liepos_rugpjūčio_rugsėjo_spalio_lapkričio_gruodžio".split("_"),standalone:"sausis_vasaris_kovas_balandis_gegužė_birželis_liepa_rugpjūtis_rugsėjis_spalis_lapkritis_gruodis".split("_"),isFormat:/D[oD]?(\[[^\[\]]*\]|\s)+MMMM?|MMMM?(\[[^\[\]]*\]|\s)+D[oD]?/},monthsShort:"sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd".split("_"),weekdays:{format:"sekmadienį_pirmadienį_antradienį_trečiadienį_ketvirtadienį_penktadienį_šeštadienį".split("_"),standalone:"sekmadienis_pirmadienis_antradienis_trečiadienis_ketvirtadienis_penktadienis_šeštadienis".split("_"),isFormat:/dddd HH:mm/},weekdaysShort:"Sek_Pir_Ant_Tre_Ket_Pen_Šeš".split("_"),weekdaysMin:"S_P_A_T_K_Pn_Š".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"YYYY [m.] MMMM D [d.]",LLL:"YYYY [m.] MMMM D [d.], HH:mm [val.]",LLLL:"YYYY [m.] MMMM D [d.], dddd, HH:mm [val.]",l:"YYYY-MM-DD",ll:"YYYY [m.] MMMM D [d.]",lll:"YYYY [m.] MMMM D [d.], HH:mm [val.]",llll:"YYYY [m.] MMMM D [d.], ddd, HH:mm [val.]"},calendar:{sameDay:"[Šiandien] LT",nextDay:"[Rytoj] LT",nextWeek:"dddd LT",lastDay:"[Vakar] LT",lastWeek:"[Praėjusį] dddd LT",sameElse:"L"},relativeTime:{future:"po %s",past:"prieš %s",s:t,ss:r,m:n,mm:r,h:n,hh:r,d:n,dd:r,M:n,MM:r,y:n,yy:r},dayOfMonthOrdinalParse:/\d{1,2}-oji/,ordinal:function(e){return e+"-oji"},week:{dow:1,doy:4}})})},"/bsm":function(e,t,n){!function(e,t){t(n("PJh5"))}(0,function(e){"use strict";return e.defineLocale("uz-latn",{months:"Yanvar_Fevral_Mart_Aprel_May_Iyun_Iyul_Avgust_Sentabr_Oktabr_Noyabr_Dekabr".split("_"),monthsShort:"Yan_Fev_Mar_Apr_May_Iyun_Iyul_Avg_Sen_Okt_Noy_Dek".split("_"),weekdays:"Yakshanba_Dushanba_Seshanba_Chorshanba_Payshanba_Juma_Shanba".split("_"),weekdaysShort:"Yak_Dush_Sesh_Chor_Pay_Jum_Shan".split("_"),weekdaysMin:"Ya_Du_Se_Cho_Pa_Ju_Sha".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"D MMMM YYYY, dddd HH:mm"},calendar:{sameDay:"[Bugun soat] LT [da]",nextDay:"[Ertaga] LT [da]",nextWeek:"dddd [kuni soat] LT [da]",lastDay:"[Kecha soat] LT [da]",lastWeek:"[O'tgan] dddd [kuni soat] LT [da]",sameElse:"L"},relativeTime:{future:"Yaqin %s ichida",past:"Bir necha %s oldin",s:"soniya",ss:"%d soniya",m:"bir daqiqa",mm:"%d daqiqa",h:"bir soat",hh:"%d soat",d:"bir kun",dd:"%d kun",M:"bir oy",MM:"%d oy",y:"bir yil",yy:"%d yil"},week:{dow:1,doy:7}})})},"/mhn":function(e,t,n){!function(e,t){t(n("PJh5"))}(0,function(e){"use strict";var t={1:"१",2:"२",3:"३",4:"४",5:"५",6:"६",7:"७",8:"८",9:"९",0:"०"},n={"१":"1","२":"2","३":"3","४":"4","५":"5","६":"6","७":"7","८":"8","९":"9","०":"0"};return e.defineLocale("ne",{months:"जनवरी_फेब्रुवरी_मार्च_अप्रिल_मई_जुन_जुलाई_अगष्ट_सेप्टेम्बर_अक्टोबर_नोभेम्बर_डिसेम्बर".split("_"),monthsShort:"जन._फेब्रु._मार्च_अप्रि._मई_जुन_जुलाई._अग._सेप्ट._अक्टो._नोभे._डिसे.".split("_"),monthsParseExact:!0,weekdays:"आइतबार_सोमबार_मङ्गलबार_बुधबार_बिहिबार_शुक्रबार_शनिबार".split("_"),weekdaysShort:"आइत._सोम._मङ्गल._बुध._बिहि._शुक्र._शनि.".split("_"),weekdaysMin:"आ._सो._मं._बु._बि._शु._श.".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"Aको h:mm बजे",LTS:"Aको h:mm:ss बजे",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, Aको h:mm बजे",LLLL:"dddd, D MMMM YYYY, Aको h:mm बजे"},preparse:function(e){return e.replace(/[१२३४५६७८९०]/g,function(e){return n[e]})},postformat:function(e){return e.replace(/\d/g,function(e){return t[e]})},meridiemParse:/राति|बिहान|दिउँसो|साँझ/,meridiemHour:function(e,t){return 12===e&&(e=0),"राति"===t?e<4?e:e+12:"बिहान"===t?e:"दिउँसो"===t?e>=10?e:e+12:"साँझ"===t?e+12:void 0},meridiem:function(e,t,n){return e<3?"राति":e<12?"बिहान":e<16?"दिउँसो":e<20?"साँझ":"राति"},calendar:{sameDay:"[आज] LT",nextDay:"[भोलि] LT",nextWeek:"[आउँदो] dddd[,] LT",lastDay:"[हिजो] LT",lastWeek:"[गएको] dddd[,] LT",sameElse:"L"},relativeTime:{future:"%sमा",past:"%s अगाडि",s:"केही क्षण",ss:"%d सेकेण्ड",m:"एक मिनेट",mm:"%d मिनेट",h:"एक घण्टा",hh:"%d घण्टा",d:"एक दिन",dd:"%d दिन",M:"एक महिना",MM:"%d महिना",y:"एक बर्ष",yy:"%d बर्ष"},week:{dow:0,doy:6}})})},"0X8Q":function(e,t,n){!function(e,t){t(n("PJh5"))}(0,function(e){"use strict";return e.defineLocale("vi",{months:"tháng 1_tháng 2_tháng 3_tháng 4_tháng 5_tháng 6_tháng 7_tháng 8_tháng 9_tháng 10_tháng 11_tháng 12".split("_"),monthsShort:"Th01_Th02_Th03_Th04_Th05_Th06_Th07_Th08_Th09_Th10_Th11_Th12".split("_"),monthsParseExact:!0,weekdays:"chủ nhật_thứ hai_thứ ba_thứ tư_thứ năm_thứ sáu_thứ bảy".split("_"),weekdaysShort:"CN_T2_T3_T4_T5_T6_T7".split("_"),weekdaysMin:"CN_T2_T3_T4_T5_T6_T7".split("_"),weekdaysParseExact:!0,meridiemParse:/sa|ch/i,isPM:function(e){return/^ch$/i.test(e)},meridiem:function(e,t,n){return e<12?n?"sa":"SA":n?"ch":"CH"},longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM [năm] YYYY",LLL:"D MMMM [năm] YYYY HH:mm",LLLL:"dddd, D MMMM [năm] YYYY HH:mm",l:"DD/M/YYYY",ll:"D MMM YYYY",lll:"D MMM YYYY HH:mm",llll:"ddd, D MMM YYYY HH:mm"},calendar:{sameDay:"[Hôm nay lúc] LT",nextDay:"[Ngày mai lúc] LT",nextWeek:"dddd [tuần tới lúc] LT",lastDay:"[Hôm qua lúc] LT",lastWeek:"dddd [tuần rồi lúc] LT",sameElse:"L"},relativeTime:{future:"%s tới",past:"%s trước",s:"vài giây",ss:"%d giây",m:"một phút",mm:"%d phút",h:"một giờ",hh:"%d giờ",d:"một ngày",dd:"%d ngày",M:"một tháng",MM:"%d tháng",y:"một năm",yy:"%d năm"},dayOfMonthOrdinalParse:/\d{1,2}/,ordinal:function(e){return e},week:{dow:1,doy:4}})})},"1QPC":function(e,t,n){var i,i;/*! * Chart.js * http://chartjs.org/ * Version: 2.7.2 @@ -5744,18426 +7,7 @@ var require;var require;/*! * Released under the MIT license * https://github.com/chartjs/Chart.js/blob/master/LICENSE.md */ -!function(t){if(true)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{("undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this).Chart=t()}}(function(){return function t(e,i,n){function a(r,s){if(!i[r]){if(!e[r]){var l="function"==typeof require&&require;if(!s&&l)return require(r,!0);if(o)return o(r,!0);var u=new Error("Cannot find module '"+r+"'");throw u.code="MODULE_NOT_FOUND",u}var d=i[r]={exports:{}};e[r][0].call(d.exports,function(t){var i=e[r][1][t];return a(i||t)},d,d.exports,t,e,i,n)}return i[r].exports}for(var o="function"==typeof require&&require,r=0;ri?(e+.05)/(i+.05):(i+.05)/(e+.05)},level:function(t){var e=this.contrast(t);return e>=7.1?"AAA":e>=4.5?"AA":""},dark:function(){var t=this.values.rgb;return(299*t[0]+587*t[1]+114*t[2])/1e3<128},light:function(){return!this.dark()},negate:function(){for(var t=[],e=0;e<3;e++)t[e]=255-this.values.rgb[e];return this.setValues("rgb",t),this},lighten:function(t){var e=this.values.hsl;return e[2]+=e[2]*t,this.setValues("hsl",e),this},darken:function(t){var e=this.values.hsl;return e[2]-=e[2]*t,this.setValues("hsl",e),this},saturate:function(t){var e=this.values.hsl;return e[1]+=e[1]*t,this.setValues("hsl",e),this},desaturate:function(t){var e=this.values.hsl;return e[1]-=e[1]*t,this.setValues("hsl",e),this},whiten:function(t){var e=this.values.hwb;return e[1]+=e[1]*t,this.setValues("hwb",e),this},blacken:function(t){var e=this.values.hwb;return e[2]+=e[2]*t,this.setValues("hwb",e),this},greyscale:function(){var t=this.values.rgb,e=.3*t[0]+.59*t[1]+.11*t[2];return this.setValues("rgb",[e,e,e]),this},clearer:function(t){var e=this.values.alpha;return this.setValues("alpha",e-e*t),this},opaquer:function(t){var e=this.values.alpha;return this.setValues("alpha",e+e*t),this},rotate:function(t){var e=this.values.hsl,i=(e[0]+t)%360;return e[0]=i<0?360+i:i,this.setValues("hsl",e),this},mix:function(t,e){var i=this,n=t,a=void 0===e?.5:e,o=2*a-1,r=i.alpha()-n.alpha(),s=((o*r==-1?o:(o+r)/(1+o*r))+1)/2,l=1-s;return this.rgb(s*i.red()+l*n.red(),s*i.green()+l*n.green(),s*i.blue()+l*n.blue()).alpha(i.alpha()*a+n.alpha()*(1-a))},toJSON:function(){return this.rgb()},clone:function(){var t,e,i=new o,n=this.values,a=i.values;for(var r in n)n.hasOwnProperty(r)&&(t=n[r],"[object Array]"===(e={}.toString.call(t))?a[r]=t.slice(0):"[object Number]"===e?a[r]=t:console.error("unexpected color value:",t));return i}},o.prototype.spaces={rgb:["red","green","blue"],hsl:["hue","saturation","lightness"],hsv:["hue","saturation","value"],hwb:["hue","whiteness","blackness"],cmyk:["cyan","magenta","yellow","black"]},o.prototype.maxes={rgb:[255,255,255],hsl:[360,100,100],hsv:[360,100,100],hwb:[360,100,100],cmyk:[100,100,100,100]},o.prototype.getValues=function(t){for(var e=this.values,i={},n=0;n.04045?Math.pow((e+.055)/1.055,2.4):e/12.92)+.3576*(i=i>.04045?Math.pow((i+.055)/1.055,2.4):i/12.92)+.1805*(n=n>.04045?Math.pow((n+.055)/1.055,2.4):n/12.92)),100*(.2126*e+.7152*i+.0722*n),100*(.0193*e+.1192*i+.9505*n)]}function d(t){var e=u(t),i=e[0],n=e[1],a=e[2];return n/=100,a/=108.883,i=(i/=95.047)>.008856?Math.pow(i,1/3):7.787*i+16/116,[116*(n=n>.008856?Math.pow(n,1/3):7.787*n+16/116)-16,500*(i-n),200*(n-(a=a>.008856?Math.pow(a,1/3):7.787*a+16/116))]}function c(t){var e,i,n,a,o,r=t[0]/360,s=t[1]/100,l=t[2]/100;if(0==s)return[o=255*l,o,o];e=2*l-(i=l<.5?l*(1+s):l+s-l*s),a=[0,0,0];for(var u=0;u<3;u++)(n=r+1/3*-(u-1))<0&&n++,n>1&&n--,o=6*n<1?e+6*(i-e)*n:2*n<1?i:3*n<2?e+(i-e)*(2/3-n)*6:e,a[u]=255*o;return a}function h(t){var e=t[0]/60,i=t[1]/100,n=t[2]/100,a=Math.floor(e)%6,o=e-Math.floor(e),r=255*n*(1-i),s=255*n*(1-i*o),l=255*n*(1-i*(1-o));n*=255;switch(a){case 0:return[n,l,r];case 1:return[s,n,r];case 2:return[r,n,l];case 3:return[r,s,n];case 4:return[l,r,n];case 5:return[n,r,s]}}function f(t){var e,i,n,a,o=t[0]/360,s=t[1]/100,l=t[2]/100,u=s+l;switch(u>1&&(s/=u,l/=u),n=6*o-(e=Math.floor(6*o)),0!=(1&e)&&(n=1-n),a=s+n*((i=1-l)-s),e){default:case 6:case 0:r=i,g=a,b=s;break;case 1:r=a,g=i,b=s;break;case 2:r=s,g=i,b=a;break;case 3:r=s,g=a,b=i;break;case 4:r=a,g=s,b=i;break;case 5:r=i,g=s,b=a}return[255*r,255*g,255*b]}function p(t){var e=t[0]/100,i=t[1]/100,n=t[2]/100,a=t[3]/100;return[255*(1-Math.min(1,e*(1-a)+a)),255*(1-Math.min(1,i*(1-a)+a)),255*(1-Math.min(1,n*(1-a)+a))]}function m(t){var e,i,n,a=t[0]/100,o=t[1]/100,r=t[2]/100;return i=-.9689*a+1.8758*o+.0415*r,n=.0557*a+-.204*o+1.057*r,e=(e=3.2406*a+-1.5372*o+-.4986*r)>.0031308?1.055*Math.pow(e,1/2.4)-.055:e*=12.92,i=i>.0031308?1.055*Math.pow(i,1/2.4)-.055:i*=12.92,n=n>.0031308?1.055*Math.pow(n,1/2.4)-.055:n*=12.92,[255*(e=Math.min(Math.max(0,e),1)),255*(i=Math.min(Math.max(0,i),1)),255*(n=Math.min(Math.max(0,n),1))]}function v(t){var e=t[0],i=t[1],n=t[2];return i/=100,n/=108.883,e=(e/=95.047)>.008856?Math.pow(e,1/3):7.787*e+16/116,[116*(i=i>.008856?Math.pow(i,1/3):7.787*i+16/116)-16,500*(e-i),200*(i-(n=n>.008856?Math.pow(n,1/3):7.787*n+16/116))]}function x(t){var e,i,n,a,o=t[0],r=t[1],s=t[2];return o<=8?a=(i=100*o/903.3)/100*7.787+16/116:(i=100*Math.pow((o+16)/116,3),a=Math.pow(i/100,1/3)),[e=e/95.047<=.008856?e=95.047*(r/500+a-16/116)/7.787:95.047*Math.pow(r/500+a,3),i,n=n/108.883<=.008859?n=108.883*(a-s/200-16/116)/7.787:108.883*Math.pow(a-s/200,3)]}function y(t){var e,i=t[0],n=t[1],a=t[2];return(e=360*Math.atan2(a,n)/2/Math.PI)<0&&(e+=360),[i,Math.sqrt(n*n+a*a),e]}function k(t){return m(x(t))}function M(t){var e,i=t[0],n=t[1];return e=t[2]/360*2*Math.PI,[i,n*Math.cos(e),n*Math.sin(e)]}function w(t){return S[t]}e.exports={rgb2hsl:n,rgb2hsv:a,rgb2hwb:o,rgb2cmyk:s,rgb2keyword:l,rgb2xyz:u,rgb2lab:d,rgb2lch:function(t){return y(d(t))},hsl2rgb:c,hsl2hsv:function(t){var e=t[0],i=t[1]/100,n=t[2]/100;if(0===n)return[0,0,0];return[e,100*(2*(i*=(n*=2)<=1?n:2-n)/(n+i)),100*((n+i)/2)]},hsl2hwb:function(t){return o(c(t))},hsl2cmyk:function(t){return s(c(t))},hsl2keyword:function(t){return l(c(t))},hsv2rgb:h,hsv2hsl:function(t){var e,i,n=t[0],a=t[1]/100,o=t[2]/100;return e=a*o,[n,100*(e=(e/=(i=(2-a)*o)<=1?i:2-i)||0),100*(i/=2)]},hsv2hwb:function(t){return o(h(t))},hsv2cmyk:function(t){return s(h(t))},hsv2keyword:function(t){return l(h(t))},hwb2rgb:f,hwb2hsl:function(t){return n(f(t))},hwb2hsv:function(t){return a(f(t))},hwb2cmyk:function(t){return s(f(t))},hwb2keyword:function(t){return l(f(t))},cmyk2rgb:p,cmyk2hsl:function(t){return n(p(t))},cmyk2hsv:function(t){return a(p(t))},cmyk2hwb:function(t){return o(p(t))},cmyk2keyword:function(t){return l(p(t))},keyword2rgb:w,keyword2hsl:function(t){return n(w(t))},keyword2hsv:function(t){return a(w(t))},keyword2hwb:function(t){return o(w(t))},keyword2cmyk:function(t){return s(w(t))},keyword2lab:function(t){return d(w(t))},keyword2xyz:function(t){return u(w(t))},xyz2rgb:m,xyz2lab:v,xyz2lch:function(t){return y(v(t))},lab2xyz:x,lab2rgb:k,lab2lch:y,lch2lab:M,lch2xyz:function(t){return x(M(t))},lch2rgb:function(t){return k(M(t))}};var S={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]},C={};for(var _ in S)C[JSON.stringify(S[_])]=_},{}],5:[function(t,e,i){var n=t(4),a=function(){return new u};for(var o in n){a[o+"Raw"]=function(t){return function(e){return"number"==typeof e&&(e=Array.prototype.slice.call(arguments)),n[t](e)}}(o);var r=/(\w+)2(\w+)/.exec(o),s=r[1],l=r[2];(a[s]=a[s]||{})[l]=a[o]=function(t){return function(e){"number"==typeof e&&(e=Array.prototype.slice.call(arguments));var i=n[t](e);if("string"==typeof i||void 0===i)return i;for(var a=0;a0&&(t[0].yLabel?i=t[0].yLabel:e.labels.length>0&&t[0].index0?Math.min(r,n-i):r,i=n;return r}(i,u):-1,pixels:u,start:s,end:l,stackCount:n,scale:i}},calculateBarValuePixels:function(t,e){var i,n,a,o,r,s,l=this.chart,u=this.getMeta(),d=this.getValueScale(),c=l.data.datasets,h=d.getRightValue(c[t].data[e]),f=d.options.stacked,g=u.stack,p=0;if(f||void 0===f&&void 0!==g)for(i=0;i=0&&a>0)&&(p+=a));return o=d.getPixelForValue(p),{size:s=((r=d.getPixelForValue(p+h))-o)/2,base:o,head:r,center:r+s/2}},calculateBarIndexPixels:function(t,e,i){var n,a,r,s,l,u,d,c,h,f,g,p,m,v,b,x,y,k=i.scale.options,M="flex"===k.barThickness?(h=e,g=k,m=(f=i).pixels,v=m[h],b=h>0?m[h-1]:null,x=h');var i=t.data,n=i.datasets,a=i.labels;if(n.length)for(var o=0;o'),a[o]&&e.push(a[o]),e.push("
  • ");return e.push(""),e.join("")},legend:{labels:{generateLabels:function(t){var e=t.data;return e.labels.length&&e.datasets.length?e.labels.map(function(i,n){var a=t.getDatasetMeta(0),r=e.datasets[0],s=a.data[n],l=s&&s.custom||{},u=o.valueAtIndexOrDefault,d=t.options.elements.arc;return{text:i,fillStyle:l.backgroundColor?l.backgroundColor:u(r.backgroundColor,n,d.backgroundColor),strokeStyle:l.borderColor?l.borderColor:u(r.borderColor,n,d.borderColor),lineWidth:l.borderWidth?l.borderWidth:u(r.borderWidth,n,d.borderWidth),hidden:isNaN(r.data[n])||a.data[n].hidden,index:n}}):[]}},onClick:function(t,e){var i,n,a,o=e.index,r=this.chart;for(i=0,n=(r.data.datasets||[]).length;i=Math.PI?-1:g<-Math.PI?1:0))+f,m=Math.cos(g),v=Math.sin(g),b=Math.cos(p),x=Math.sin(p),y=g<=0&&p>=0||g<=2*Math.PI&&2*Math.PI<=p,k=g<=.5*Math.PI&&.5*Math.PI<=p||g<=2.5*Math.PI&&2.5*Math.PI<=p,M=g<=-Math.PI&&-Math.PI<=p||g<=Math.PI&&Math.PI<=p,w=g<=.5*-Math.PI&&.5*-Math.PI<=p||g<=1.5*Math.PI&&1.5*Math.PI<=p,S=h/100,C=M?-1:Math.min(m*(m<0?1:S),b*(b<0?1:S)),_=w?-1:Math.min(v*(v<0?1:S),x*(x<0?1:S)),D=y?1:Math.max(m*(m>0?1:S),b*(b>0?1:S)),I=k?1:Math.max(v*(v>0?1:S),x*(x>0?1:S)),P=.5*(D-C),A=.5*(I-_);u=Math.min(s/P,l/A),d={x:-.5*(D+C),y:-.5*(I+_)}}i.borderWidth=e.getMaxBorderWidth(c.data),i.outerRadius=Math.max((u-i.borderWidth)/2,0),i.innerRadius=Math.max(h?i.outerRadius/100*h:0,0),i.radiusLength=(i.outerRadius-i.innerRadius)/i.getVisibleDatasetCount(),i.offsetX=d.x*i.outerRadius,i.offsetY=d.y*i.outerRadius,c.total=e.calculateTotal(),e.outerRadius=i.outerRadius-i.radiusLength*e.getRingIndex(e.index),e.innerRadius=Math.max(e.outerRadius-i.radiusLength,0),o.each(c.data,function(i,n){e.updateElement(i,n,t)})},updateElement:function(t,e,i){var n=this,a=n.chart,r=a.chartArea,s=a.options,l=s.animation,u=(r.left+r.right)/2,d=(r.top+r.bottom)/2,c=s.rotation,h=s.rotation,f=n.getDataset(),g=i&&l.animateRotate?0:t.hidden?0:n.calculateCircumference(f.data[e])*(s.circumference/(2*Math.PI)),p=i&&l.animateScale?0:n.innerRadius,m=i&&l.animateScale?0:n.outerRadius,v=o.valueAtIndexOrDefault;o.extend(t,{_datasetIndex:n.index,_index:e,_model:{x:u+a.offsetX,y:d+a.offsetY,startAngle:c,endAngle:h,circumference:g,outerRadius:m,innerRadius:p,label:v(f.label,e,a.data.labels[e])}});var b=t._model;this.removeHoverStyle(t),i&&l.animateRotate||(b.startAngle=0===e?s.rotation:n.getMeta().data[e-1]._model.endAngle,b.endAngle=b.startAngle+b.circumference),t.pivot()},removeHoverStyle:function(e){t.DatasetController.prototype.removeHoverStyle.call(this,e,this.chart.options.elements.arc)},calculateTotal:function(){var t,e=this.getDataset(),i=this.getMeta(),n=0;return o.each(i.data,function(i,a){t=e.data[a],isNaN(t)||i.hidden||(n+=Math.abs(t))}),n},calculateCircumference:function(t){var e=this.getMeta().total;return e>0&&!isNaN(t)?2*Math.PI*(Math.abs(t)/e):0},getMaxBorderWidth:function(t){for(var e,i,n=0,a=this.index,o=t.length,r=0;r(n=e>n?e:n)?i:n;return n}})}},{25:25,40:40,45:45}],18:[function(t,e,i){"use strict";var n=t(25),a=t(40),o=t(45);n._set("line",{showLines:!0,spanGaps:!1,hover:{mode:"label"},scales:{xAxes:[{type:"category",id:"x-axis-0"}],yAxes:[{type:"linear",id:"y-axis-0"}]}}),e.exports=function(t){function e(t,e){return o.valueOrDefault(t.showLine,e.showLines)}t.controllers.line=t.DatasetController.extend({datasetElementType:a.Line,dataElementType:a.Point,update:function(t){var i,n,a,r=this,s=r.getMeta(),l=s.dataset,u=s.data||[],d=r.chart.options,c=d.elements.line,h=r.getScaleForId(s.yAxisID),f=r.getDataset(),g=e(f,d);for(g&&(a=l.custom||{},void 0!==f.tension&&void 0===f.lineTension&&(f.lineTension=f.tension),l._scale=h,l._datasetIndex=r.index,l._children=u,l._model={spanGaps:f.spanGaps?f.spanGaps:d.spanGaps,tension:a.tension?a.tension:o.valueOrDefault(f.lineTension,c.tension),backgroundColor:a.backgroundColor?a.backgroundColor:f.backgroundColor||c.backgroundColor,borderWidth:a.borderWidth?a.borderWidth:f.borderWidth||c.borderWidth,borderColor:a.borderColor?a.borderColor:f.borderColor||c.borderColor,borderCapStyle:a.borderCapStyle?a.borderCapStyle:f.borderCapStyle||c.borderCapStyle,borderDash:a.borderDash?a.borderDash:f.borderDash||c.borderDash,borderDashOffset:a.borderDashOffset?a.borderDashOffset:f.borderDashOffset||c.borderDashOffset,borderJoinStyle:a.borderJoinStyle?a.borderJoinStyle:f.borderJoinStyle||c.borderJoinStyle,fill:a.fill?a.fill:void 0!==f.fill?f.fill:c.fill,steppedLine:a.steppedLine?a.steppedLine:o.valueOrDefault(f.steppedLine,c.stepped),cubicInterpolationMode:a.cubicInterpolationMode?a.cubicInterpolationMode:o.valueOrDefault(f.cubicInterpolationMode,c.cubicInterpolationMode)},l.pivot()),i=0,n=u.length;i');var i=t.data,n=i.datasets,a=i.labels;if(n.length)for(var o=0;o'),a[o]&&e.push(a[o]),e.push("");return e.push(""),e.join("")},legend:{labels:{generateLabels:function(t){var e=t.data;return e.labels.length&&e.datasets.length?e.labels.map(function(i,n){var a=t.getDatasetMeta(0),r=e.datasets[0],s=a.data[n].custom||{},l=o.valueAtIndexOrDefault,u=t.options.elements.arc;return{text:i,fillStyle:s.backgroundColor?s.backgroundColor:l(r.backgroundColor,n,u.backgroundColor),strokeStyle:s.borderColor?s.borderColor:l(r.borderColor,n,u.borderColor),lineWidth:s.borderWidth?s.borderWidth:l(r.borderWidth,n,u.borderWidth),hidden:isNaN(r.data[n])||a.data[n].hidden,index:n}}):[]}},onClick:function(t,e){var i,n,a,o=e.index,r=this.chart;for(i=0,n=(r.data.datasets||[]).length;i0&&!isNaN(t)?2*Math.PI/e:0}})}},{25:25,40:40,45:45}],20:[function(t,e,i){"use strict";var n=t(25),a=t(40),o=t(45);n._set("radar",{scale:{type:"radialLinear"},elements:{line:{tension:0}}}),e.exports=function(t){t.controllers.radar=t.DatasetController.extend({datasetElementType:a.Line,dataElementType:a.Point,linkScales:o.noop,update:function(t){var e=this,i=e.getMeta(),n=i.dataset,a=i.data,r=n.custom||{},s=e.getDataset(),l=e.chart.options.elements.line,u=e.chart.scale;void 0!==s.tension&&void 0===s.lineTension&&(s.lineTension=s.tension),o.extend(i.dataset,{_datasetIndex:e.index,_scale:u,_children:a,_loop:!0,_model:{tension:r.tension?r.tension:o.valueOrDefault(s.lineTension,l.tension),backgroundColor:r.backgroundColor?r.backgroundColor:s.backgroundColor||l.backgroundColor,borderWidth:r.borderWidth?r.borderWidth:s.borderWidth||l.borderWidth,borderColor:r.borderColor?r.borderColor:s.borderColor||l.borderColor,fill:r.fill?r.fill:void 0!==s.fill?s.fill:l.fill,borderCapStyle:r.borderCapStyle?r.borderCapStyle:s.borderCapStyle||l.borderCapStyle,borderDash:r.borderDash?r.borderDash:s.borderDash||l.borderDash,borderDashOffset:r.borderDashOffset?r.borderDashOffset:s.borderDashOffset||l.borderDashOffset,borderJoinStyle:r.borderJoinStyle?r.borderJoinStyle:s.borderJoinStyle||l.borderJoinStyle}}),i.dataset.pivot(),o.each(a,function(i,n){e.updateElement(i,n,t)},e),e.updateBezierControlPoints()},updateElement:function(t,e,i){var n=this,a=t.custom||{},r=n.getDataset(),s=n.chart.scale,l=n.chart.options.elements.point,u=s.getPointPositionForValue(e,r.data[e]);void 0!==r.radius&&void 0===r.pointRadius&&(r.pointRadius=r.radius),void 0!==r.hitRadius&&void 0===r.pointHitRadius&&(r.pointHitRadius=r.hitRadius),o.extend(t,{_datasetIndex:n.index,_index:e,_scale:s,_model:{x:i?s.xCenter:u.x,y:i?s.yCenter:u.y,tension:a.tension?a.tension:o.valueOrDefault(r.lineTension,n.chart.options.elements.line.tension),radius:a.radius?a.radius:o.valueAtIndexOrDefault(r.pointRadius,e,l.radius),backgroundColor:a.backgroundColor?a.backgroundColor:o.valueAtIndexOrDefault(r.pointBackgroundColor,e,l.backgroundColor),borderColor:a.borderColor?a.borderColor:o.valueAtIndexOrDefault(r.pointBorderColor,e,l.borderColor),borderWidth:a.borderWidth?a.borderWidth:o.valueAtIndexOrDefault(r.pointBorderWidth,e,l.borderWidth),pointStyle:a.pointStyle?a.pointStyle:o.valueAtIndexOrDefault(r.pointStyle,e,l.pointStyle),hitRadius:a.hitRadius?a.hitRadius:o.valueAtIndexOrDefault(r.pointHitRadius,e,l.hitRadius)}}),t._model.skip=a.skip?a.skip:isNaN(t._model.x)||isNaN(t._model.y)},updateBezierControlPoints:function(){var t=this.chart.chartArea,e=this.getMeta();o.each(e.data,function(i,n){var a=i._model,r=o.splineCurve(o.previousItem(e.data,n,!0)._model,a,o.nextItem(e.data,n,!0)._model,a.tension);a.controlPointPreviousX=Math.max(Math.min(r.previous.x,t.right),t.left),a.controlPointPreviousY=Math.max(Math.min(r.previous.y,t.bottom),t.top),a.controlPointNextX=Math.max(Math.min(r.next.x,t.right),t.left),a.controlPointNextY=Math.max(Math.min(r.next.y,t.bottom),t.top),i.pivot()})},setHoverStyle:function(t){var e=this.chart.data.datasets[t._datasetIndex],i=t.custom||{},n=t._index,a=t._model;a.radius=i.hoverRadius?i.hoverRadius:o.valueAtIndexOrDefault(e.pointHoverRadius,n,this.chart.options.elements.point.hoverRadius),a.backgroundColor=i.hoverBackgroundColor?i.hoverBackgroundColor:o.valueAtIndexOrDefault(e.pointHoverBackgroundColor,n,o.getHoverColor(a.backgroundColor)),a.borderColor=i.hoverBorderColor?i.hoverBorderColor:o.valueAtIndexOrDefault(e.pointHoverBorderColor,n,o.getHoverColor(a.borderColor)),a.borderWidth=i.hoverBorderWidth?i.hoverBorderWidth:o.valueAtIndexOrDefault(e.pointHoverBorderWidth,n,a.borderWidth)},removeHoverStyle:function(t){var e=this.chart.data.datasets[t._datasetIndex],i=t.custom||{},n=t._index,a=t._model,r=this.chart.options.elements.point;a.radius=i.radius?i.radius:o.valueAtIndexOrDefault(e.pointRadius,n,r.radius),a.backgroundColor=i.backgroundColor?i.backgroundColor:o.valueAtIndexOrDefault(e.pointBackgroundColor,n,r.backgroundColor),a.borderColor=i.borderColor?i.borderColor:o.valueAtIndexOrDefault(e.pointBorderColor,n,r.borderColor),a.borderWidth=i.borderWidth?i.borderWidth:o.valueAtIndexOrDefault(e.pointBorderWidth,n,r.borderWidth)}})}},{25:25,40:40,45:45}],21:[function(t,e,i){"use strict";t(25)._set("scatter",{hover:{mode:"single"},scales:{xAxes:[{id:"x-axis-1",type:"linear",position:"bottom"}],yAxes:[{id:"y-axis-1",type:"linear",position:"left"}]},showLines:!1,tooltips:{callbacks:{title:function(){return""},label:function(t){return"("+t.xLabel+", "+t.yLabel+")"}}}}),e.exports=function(t){t.controllers.scatter=t.controllers.line}},{25:25}],22:[function(t,e,i){"use strict";var n=t(25),a=t(26),o=t(45);n._set("global",{animation:{duration:1e3,easing:"easeOutQuart",onProgress:o.noop,onComplete:o.noop}}),e.exports=function(t){t.Animation=a.extend({chart:null,currentStep:0,numSteps:60,easing:"",render:null,onAnimationProgress:null,onAnimationComplete:null}),t.animationService={frameDuration:17,animations:[],dropFrames:0,request:null,addAnimation:function(t,e,i,n){var a,o,r=this.animations;for(e.chart=t,n||(t.animating=!0),a=0,o=r.length;a1&&(i=Math.floor(t.dropFrames),t.dropFrames=t.dropFrames%1),t.advance(1+i);var n=Date.now();t.dropFrames+=(n-e)/t.frameDuration,t.animations.length>0&&t.requestAnimationFrame()},advance:function(t){for(var e,i,n=this.animations,a=0;a=e.numSteps?(o.callback(e.onAnimationComplete,[e],i),i.animating=!1,n.splice(a,1)):++a}},Object.defineProperty(t.Animation.prototype,"animationObject",{get:function(){return this}}),Object.defineProperty(t.Animation.prototype,"chartInstance",{get:function(){return this.chart},set:function(t){this.chart=t}})}},{25:25,26:26,45:45}],23:[function(t,e,i){"use strict";var n=t(25),a=t(45),o=t(28),r=t(30),s=t(48),l=t(31);e.exports=function(t){function e(t){return"top"===t||"bottom"===t}t.types={},t.instances={},t.controllers={},a.extend(t.prototype,{construct:function(e,i){var o,r,l=this;(r=(o=(o=i)||{}).data=o.data||{}).datasets=r.datasets||[],r.labels=r.labels||[],o.options=a.configMerge(n.global,n[o.type],o.options||{}),i=o;var u=s.acquireContext(e,i),d=u&&u.canvas,c=d&&d.height,h=d&&d.width;l.id=a.uid(),l.ctx=u,l.canvas=d,l.config=i,l.width=h,l.height=c,l.aspectRatio=c?h/c:null,l.options=i.options,l._bufferedRender=!1,l.chart=l,l.controller=l,t.instances[l.id]=l,Object.defineProperty(l,"data",{get:function(){return l.config.data},set:function(t){l.config.data=t}}),u&&d?(l.initialize(),l.update()):console.error("Failed to create chart: can't acquire context from the given item")},initialize:function(){var t=this;return l.notify(t,"beforeInit"),a.retinaScale(t,t.options.devicePixelRatio),t.bindEvents(),t.options.responsive&&t.resize(!0),t.ensureScalesHaveIDs(),t.buildOrUpdateScales(),t.initToolTip(),l.notify(t,"afterInit"),t},clear:function(){return a.canvas.clear(this),this},stop:function(){return t.animationService.cancelAnimation(this),this},resize:function(t){var e=this,i=e.options,n=e.canvas,o=i.maintainAspectRatio&&e.aspectRatio||null,r=Math.max(0,Math.floor(a.getMaximumWidth(n))),s=Math.max(0,Math.floor(o?r/o:a.getMaximumHeight(n)));if((e.width!==r||e.height!==s)&&(n.width=e.width=r,n.height=e.height=s,n.style.width=r+"px",n.style.height=s+"px",a.retinaScale(e,i.devicePixelRatio),!t)){var u={width:r,height:s};l.notify(e,"resize",[u]),e.options.onResize&&e.options.onResize(e,u),e.stop(),e.update(e.options.responsiveAnimationDuration)}},ensureScalesHaveIDs:function(){var t=this.options,e=t.scales||{},i=t.scale;a.each(e.xAxes,function(t,e){t.id=t.id||"x-axis-"+e}),a.each(e.yAxes,function(t,e){t.id=t.id||"y-axis-"+e}),i&&(i.id=i.id||"scale")},buildOrUpdateScales:function(){var i=this,n=i.options,o=i.scales||{},r=[],s=Object.keys(o).reduce(function(t,e){return t[e]=!1,t},{});n.scales&&(r=r.concat((n.scales.xAxes||[]).map(function(t){return{options:t,dtype:"category",dposition:"bottom"}}),(n.scales.yAxes||[]).map(function(t){return{options:t,dtype:"linear",dposition:"left"}}))),n.scale&&r.push({options:n.scale,dtype:"radialLinear",isDefault:!0,dposition:"chartArea"}),a.each(r,function(n){var r=n.options,l=r.id,u=a.valueOrDefault(r.type,n.dtype);e(r.position)!==e(n.dposition)&&(r.position=n.dposition),s[l]=!0;var d=null;if(l in o&&o[l].type===u)(d=o[l]).options=r,d.ctx=i.ctx,d.chart=i;else{var c=t.scaleService.getScaleConstructor(u);if(!c)return;d=new c({id:l,type:u,options:r,ctx:i.ctx,chart:i}),o[d.id]=d}d.mergeTicksOptions(),n.isDefault&&(i.scale=d)}),a.each(s,function(t,e){t||delete o[e]}),i.scales=o,t.scaleService.addScalesToLayout(this)},buildOrUpdateControllers:function(){var e=this,i=[],n=[];return a.each(e.data.datasets,function(a,o){var r=e.getDatasetMeta(o),s=a.type||e.config.type;if(r.type&&r.type!==s&&(e.destroyDatasetMeta(o),r=e.getDatasetMeta(o)),r.type=s,i.push(r.type),r.controller)r.controller.updateIndex(o),r.controller.linkScales();else{var l=t.controllers[r.type];if(void 0===l)throw new Error('"'+r.type+'" is not a chart type.');r.controller=new l(e,o),n.push(r.controller)}},e),n},resetElements:function(){var t=this;a.each(t.data.datasets,function(e,i){t.getDatasetMeta(i).controller.reset()},t)},reset:function(){this.resetElements(),this.tooltip.initialize()},update:function(e){var i,n,o=this;if(e&&"object"==typeof e||(e={duration:e,lazy:arguments[1]}),n=(i=o).options,a.each(i.scales,function(t){r.removeBox(i,t)}),n=a.configMerge(t.defaults.global,t.defaults[i.config.type],n),i.options=i.config.options=n,i.ensureScalesHaveIDs(),i.buildOrUpdateScales(),i.tooltip._options=n.tooltips,i.tooltip.initialize(),l._invalidate(o),!1!==l.notify(o,"beforeUpdate")){o.tooltip._data=o.data;var s=o.buildOrUpdateControllers();a.each(o.data.datasets,function(t,e){o.getDatasetMeta(e).controller.buildOrUpdateElements()},o),o.updateLayout(),o.options.animation&&o.options.animation.duration&&a.each(s,function(t){t.reset()}),o.updateDatasets(),o.tooltip.initialize(),o.lastActive=[],l.notify(o,"afterUpdate"),o._bufferedRender?o._bufferedRequest={duration:e.duration,easing:e.easing,lazy:e.lazy}:o.render(e)}},updateLayout:function(){!1!==l.notify(this,"beforeLayout")&&(r.update(this,this.width,this.height),l.notify(this,"afterScaleUpdate"),l.notify(this,"afterLayout"))},updateDatasets:function(){if(!1!==l.notify(this,"beforeDatasetsUpdate")){for(var t=0,e=this.data.datasets.length;t=0;--i)e.isDatasetVisible(i)&&e.drawDataset(i,t);l.notify(e,"afterDatasetsDraw",[t])}},drawDataset:function(t,e){var i=this.getDatasetMeta(t),n={meta:i,index:t,easingValue:e};!1!==l.notify(this,"beforeDatasetDraw",[n])&&(i.controller.draw(e),l.notify(this,"afterDatasetDraw",[n]))},_drawTooltip:function(t){var e=this.tooltip,i={tooltip:e,easingValue:t};!1!==l.notify(this,"beforeTooltipDraw",[i])&&(e.draw(),l.notify(this,"afterTooltipDraw",[i]))},getElementAtEvent:function(t){return o.modes.single(this,t)},getElementsAtEvent:function(t){return o.modes.label(this,t,{intersect:!0})},getElementsAtXAxis:function(t){return o.modes["x-axis"](this,t,{intersect:!0})},getElementsAtEventForMode:function(t,e,i){var n=o.modes[e];return"function"==typeof n?n(this,t,i):[]},getDatasetAtEvent:function(t){return o.modes.dataset(this,t,{intersect:!0})},getDatasetMeta:function(t){var e=this.data.datasets[t];e._meta||(e._meta={});var i=e._meta[this.id];return i||(i=e._meta[this.id]={type:null,data:[],dataset:null,controller:null,hidden:null,xAxisID:null,yAxisID:null}),i},getVisibleDatasetCount:function(){for(var t=0,e=0,i=this.data.datasets.length;e0||(e.forEach(function(e){delete t[e]}),delete t._chartjs)}}t.DatasetController=function(t,e){this.initialize(t,e)},n.extend(t.DatasetController.prototype,{datasetElementType:null,dataElementType:null,initialize:function(t,e){this.chart=t,this.index=e,this.linkScales(),this.addElements()},updateIndex:function(t){this.index=t},linkScales:function(){var t=this,e=t.getMeta(),i=t.getDataset();null!==e.xAxisID&&e.xAxisID in t.chart.scales||(e.xAxisID=i.xAxisID||t.chart.options.scales.xAxes[0].id),null!==e.yAxisID&&e.yAxisID in t.chart.scales||(e.yAxisID=i.yAxisID||t.chart.options.scales.yAxes[0].id)},getDataset:function(){return this.chart.data.datasets[this.index]},getMeta:function(){return this.chart.getDatasetMeta(this.index)},getScaleForId:function(t){return this.chart.scales[t]},reset:function(){this.update(!0)},destroy:function(){this._data&&i(this._data,this)},createMetaDataset:function(){var t=this.datasetElementType;return t&&new t({_chart:this.chart,_datasetIndex:this.index})},createMetaData:function(t){var e=this.dataElementType;return e&&new e({_chart:this.chart,_datasetIndex:this.index,_index:t})},addElements:function(){var t,e,i=this.getMeta(),n=this.getDataset().data||[],a=i.data;for(t=0,e=n.length;ti&&this.insertElements(i,n-i)},insertElements:function(t,e){for(var i=0;i=i[e].length&&i[e].push({}),!i[e][r].type||l.type&&l.type!==i[e][r].type?o.merge(i[e][r],[t.scaleService.getScaleDefaults(s),l]):o.merge(i[e][r],l)}else o._merger(e,i,n,a)}})},o.where=function(t,e){if(o.isArray(t)&&Array.prototype.filter)return t.filter(e);var i=[];return o.each(t,function(t){e(t)&&i.push(t)}),i},o.findIndex=Array.prototype.findIndex?function(t,e,i){return t.findIndex(e,i)}:function(t,e,i){i=void 0===i?t:i;for(var n=0,a=t.length;n=0;n--){var a=t[n];if(e(a))return a}},o.isNumber=function(t){return!isNaN(parseFloat(t))&&isFinite(t)},o.almostEquals=function(t,e,i){return Math.abs(t-e)t},o.max=function(t){return t.reduce(function(t,e){return isNaN(e)?t:Math.max(t,e)},Number.NEGATIVE_INFINITY)},o.min=function(t){return t.reduce(function(t,e){return isNaN(e)?t:Math.min(t,e)},Number.POSITIVE_INFINITY)},o.sign=Math.sign?function(t){return Math.sign(t)}:function(t){return 0===(t=+t)||isNaN(t)?t:t>0?1:-1},o.log10=Math.log10?function(t){return Math.log10(t)}:function(t){var e=Math.log(t)*Math.LOG10E,i=Math.round(e);return t===Math.pow(10,i)?i:e},o.toRadians=function(t){return t*(Math.PI/180)},o.toDegrees=function(t){return t*(180/Math.PI)},o.getAngleFromPoint=function(t,e){var i=e.x-t.x,n=e.y-t.y,a=Math.sqrt(i*i+n*n),o=Math.atan2(n,i);return o<-.5*Math.PI&&(o+=2*Math.PI),{angle:o,distance:a}},o.distanceBetweenPoints=function(t,e){return Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2))},o.aliasPixel=function(t){return t%2==0?0:.5},o.splineCurve=function(t,e,i,n){var a=t.skip?e:t,o=e,r=i.skip?e:i,s=Math.sqrt(Math.pow(o.x-a.x,2)+Math.pow(o.y-a.y,2)),l=Math.sqrt(Math.pow(r.x-o.x,2)+Math.pow(r.y-o.y,2)),u=s/(s+l),d=l/(s+l),c=n*(u=isNaN(u)?0:u),h=n*(d=isNaN(d)?0:d);return{previous:{x:o.x-c*(r.x-a.x),y:o.y-c*(r.y-a.y)},next:{x:o.x+h*(r.x-a.x),y:o.y+h*(r.y-a.y)}}},o.EPSILON=Number.EPSILON||1e-14,o.splineCurveMonotone=function(t){var e,i,n,a,r,s,l,u,d,c=(t||[]).map(function(t){return{model:t._model,deltaK:0,mK:0}}),h=c.length;for(e=0;e0?c[e-1]:null,(a=e0?c[e-1]:null,a=e=t.length-1?t[0]:t[e+1]:e>=t.length-1?t[t.length-1]:t[e+1]},o.previousItem=function(t,e,i){return i?e<=0?t[t.length-1]:t[e-1]:e<=0?t[0]:t[e-1]},o.niceNum=function(t,e){var i=Math.floor(o.log10(t)),n=t/Math.pow(10,i);return(e?n<1.5?1:n<3?2:n<7?5:10:n<=1?1:n<=2?2:n<=5?5:10)*Math.pow(10,i)},o.requestAnimFrame="undefined"==typeof window?function(t){t()}:window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(t){return window.setTimeout(t,1e3/60)},o.getRelativePosition=function(t,e){var i,n,a=t.originalEvent||t,r=t.currentTarget||t.srcElement,s=r.getBoundingClientRect(),l=a.touches;l&&l.length>0?(i=l[0].clientX,n=l[0].clientY):(i=a.clientX,n=a.clientY);var u=parseFloat(o.getStyle(r,"padding-left")),d=parseFloat(o.getStyle(r,"padding-top")),c=parseFloat(o.getStyle(r,"padding-right")),h=parseFloat(o.getStyle(r,"padding-bottom")),f=s.right-s.left-u-c,g=s.bottom-s.top-d-h;return{x:i=Math.round((i-s.left-u)/f*r.width/e.currentDevicePixelRatio),y:n=Math.round((n-s.top-d)/g*r.height/e.currentDevicePixelRatio)}},o.getConstraintWidth=function(t){return r(t,"max-width","clientWidth")},o.getConstraintHeight=function(t){return r(t,"max-height","clientHeight")},o.getMaximumWidth=function(t){var e=t.parentNode;if(!e)return t.clientWidth;var i=parseInt(o.getStyle(e,"padding-left"),10),n=parseInt(o.getStyle(e,"padding-right"),10),a=e.clientWidth-i-n,r=o.getConstraintWidth(t);return isNaN(r)?a:Math.min(a,r)},o.getMaximumHeight=function(t){var e=t.parentNode;if(!e)return t.clientHeight;var i=parseInt(o.getStyle(e,"padding-top"),10),n=parseInt(o.getStyle(e,"padding-bottom"),10),a=e.clientHeight-i-n,r=o.getConstraintHeight(t);return isNaN(r)?a:Math.min(a,r)},o.getStyle=function(t,e){return t.currentStyle?t.currentStyle[e]:document.defaultView.getComputedStyle(t,null).getPropertyValue(e)},o.retinaScale=function(t,e){var i=t.currentDevicePixelRatio=e||window.devicePixelRatio||1;if(1!==i){var n=t.canvas,a=t.height,o=t.width;n.height=a*i,n.width=o*i,t.ctx.scale(i,i),n.style.height||n.style.width||(n.style.height=a+"px",n.style.width=o+"px")}},o.fontString=function(t,e,i){return e+" "+t+"px "+i},o.longestText=function(t,e,i,n){var a=(n=n||{}).data=n.data||{},r=n.garbageCollect=n.garbageCollect||[];n.font!==e&&(a=n.data={},r=n.garbageCollect=[],n.font=e),t.font=e;var s=0;o.each(i,function(e){null!=e&&!0!==o.isArray(e)?s=o.measureText(t,a,r,s,e):o.isArray(e)&&o.each(e,function(e){null==e||o.isArray(e)||(s=o.measureText(t,a,r,s,e))})});var l=r.length/2;if(l>i.length){for(var u=0;un&&(n=o),n},o.numberOfLabelLines=function(t){var e=1;return o.each(t,function(t){o.isArray(t)&&t.length>e&&(e=t.length)}),e},o.color=n?function(t){return t instanceof CanvasGradient&&(t=a.global.defaultColor),n(t)}:function(t){return console.error("Color.js not found!"),t},o.getHoverColor=function(t){return t instanceof CanvasPattern?t:o.color(t).saturate(.5).darken(.1).rgbString()}}},{25:25,3:3,45:45}],28:[function(t,e,i){"use strict";var n=t(45);function a(t,e){return t.native?{x:t.x,y:t.y}:n.getRelativePosition(t,e)}function o(t,e){var i,n,a,o,r;for(n=0,o=t.data.datasets.length;n0&&(u=t.getDatasetMeta(u[0]._datasetIndex).data),u},"x-axis":function(t,e){return u(t,e,{intersect:!1})},point:function(t,e){return r(t,a(e,t))},nearest:function(t,e,i){var n=a(e,t);i.axis=i.axis||"xy";var o=l(i.axis),r=s(t,n,i.intersect,o);return r.length>1&&r.sort(function(t,e){var i=t.getArea()-e.getArea();return 0===i&&(i=t._datasetIndex-e._datasetIndex),i}),r.slice(0,1)},x:function(t,e,i){var n=a(e,t),r=[],s=!1;return o(t,function(t){t.inXRange(n.x)&&r.push(t),t.inRange(n.x,n.y)&&(s=!0)}),i.intersect&&!s&&(r=[]),r},y:function(t,e,i){var n=a(e,t),r=[],s=!1;return o(t,function(t){t.inYRange(n.y)&&r.push(t),t.inRange(n.x,n.y)&&(s=!0)}),i.intersect&&!s&&(r=[]),r}}}},{45:45}],29:[function(t,e,i){"use strict";t(25)._set("global",{responsive:!0,responsiveAnimationDuration:0,maintainAspectRatio:!0,events:["mousemove","mouseout","click","touchstart","touchmove"],hover:{onHover:null,mode:"nearest",intersect:!0,animationDuration:400},onClick:null,defaultColor:"rgba(0,0,0,0.1)",defaultFontColor:"#666",defaultFontFamily:"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif",defaultFontSize:12,defaultFontStyle:"normal",showLines:!0,elements:{},layout:{padding:{top:0,right:0,bottom:0,left:0}}}),e.exports=function(){var t=function(t,e){return this.construct(t,e),this};return t.Chart=t,t}},{25:25}],30:[function(t,e,i){"use strict";var n=t(45);function a(t,e){return n.where(t,function(t){return t.position===e})}function o(t,e){t.forEach(function(t,e){return t._tmpIndex_=e,t}),t.sort(function(t,i){var n=e?i:t,a=e?t:i;return n.weight===a.weight?n._tmpIndex_-a._tmpIndex_:n.weight-a.weight}),t.forEach(function(t){delete t._tmpIndex_})}e.exports={defaults:{},addBox:function(t,e){t.boxes||(t.boxes=[]),e.fullWidth=e.fullWidth||!1,e.position=e.position||"top",e.weight=e.weight||0,t.boxes.push(e)},removeBox:function(t,e){var i=t.boxes?t.boxes.indexOf(e):-1;-1!==i&&t.boxes.splice(i,1)},configure:function(t,e,i){for(var n,a=["fullWidth","position","weight"],o=a.length,r=0;rh&&lt.maxHeight){l--;break}l++,c=u*d}t.labelRotation=l},afterCalculateTickRotation:function(){o.callback(this.options.afterCalculateTickRotation,[this])},beforeFit:function(){o.callback(this.options.beforeFit,[this])},fit:function(){var t=this,n=t.minSize={width:0,height:0},a=s(t._ticks),l=t.options,u=l.ticks,d=l.scaleLabel,c=l.gridLines,h=l.display,f=t.isHorizontal(),g=i(u),p=l.gridLines.tickMarkLength;if(n.width=f?t.isFullWidth()?t.maxWidth-t.margins.left-t.margins.right:t.maxWidth:h&&c.drawTicks?p:0,n.height=f?h&&c.drawTicks?p:0:t.maxHeight,d.display&&h){var m=r(d)+o.options.toPadding(d.padding).height;f?n.height+=m:n.width+=m}if(u.display&&h){var v=o.longestText(t.ctx,g.font,a,t.longestTextCache),b=o.numberOfLabelLines(a),x=.5*g.size,y=t.options.ticks.padding;if(f){t.longestLabelWidth=v;var k=o.toRadians(t.labelRotation),M=Math.cos(k),w=Math.sin(k)*v+g.size*b+x*(b-1)+x;n.height=Math.min(t.maxHeight,n.height+w+y),t.ctx.font=g.font;var S=e(t.ctx,a[0],g.font),C=e(t.ctx,a[a.length-1],g.font);0!==t.labelRotation?(t.paddingLeft="bottom"===l.position?M*S+3:M*x+3,t.paddingRight="bottom"===l.position?M*x+3:M*C+3):(t.paddingLeft=S/2+3,t.paddingRight=C/2+3)}else u.mirror?v=0:v+=y+x,n.width=Math.min(t.maxWidth,n.width+v),t.paddingTop=g.size/2,t.paddingBottom=g.size/2}t.handleMargins(),t.width=n.width,t.height=n.height},handleMargins:function(){var t=this;t.margins&&(t.paddingLeft=Math.max(t.paddingLeft-t.margins.left,0),t.paddingTop=Math.max(t.paddingTop-t.margins.top,0),t.paddingRight=Math.max(t.paddingRight-t.margins.right,0),t.paddingBottom=Math.max(t.paddingBottom-t.margins.bottom,0))},afterFit:function(){o.callback(this.options.afterFit,[this])},isHorizontal:function(){return"top"===this.options.position||"bottom"===this.options.position},isFullWidth:function(){return this.options.fullWidth},getRightValue:function(t){if(o.isNullOrUndef(t))return NaN;if("number"==typeof t&&!isFinite(t))return NaN;if(t)if(this.isHorizontal()){if(void 0!==t.x)return this.getRightValue(t.x)}else if(void 0!==t.y)return this.getRightValue(t.y);return t},getLabelForIndex:o.noop,getPixelForValue:o.noop,getValueForPixel:o.noop,getPixelForTick:function(t){var e=this,i=e.options.offset;if(e.isHorizontal()){var n=(e.width-(e.paddingLeft+e.paddingRight))/Math.max(e._ticks.length-(i?0:1),1),a=n*t+e.paddingLeft;i&&(a+=n/2);var o=e.left+Math.round(a);return o+=e.isFullWidth()?e.margins.left:0}var r=e.height-(e.paddingTop+e.paddingBottom);return e.top+t*(r/(e._ticks.length-1))},getPixelForDecimal:function(t){var e=this;if(e.isHorizontal()){var i=(e.width-(e.paddingLeft+e.paddingRight))*t+e.paddingLeft,n=e.left+Math.round(i);return n+=e.isFullWidth()?e.margins.left:0}return e.top+t*e.height},getBasePixel:function(){return this.getPixelForValue(this.getBaseValue())},getBaseValue:function(){var t=this.min,e=this.max;return this.beginAtZero?0:t<0&&e<0?e:t>0&&e>0?t:0},_autoSkip:function(t){var e,i,n,a,r=this,s=r.isHorizontal(),l=r.options.ticks.minor,u=t.length,d=o.toRadians(r.labelRotation),c=Math.cos(d),h=r.longestLabelWidth*c,f=[];for(l.maxTicksLimit&&(a=l.maxTicksLimit),s&&(e=!1,(h+l.autoSkipPadding)*u>r.width-(r.paddingLeft+r.paddingRight)&&(e=1+Math.floor((h+l.autoSkipPadding)*u/(r.width-(r.paddingLeft+r.paddingRight)))),a&&u>a&&(e=Math.max(e,Math.floor(u/a)))),i=0;i1&&i%e>0||i%e==0&&i+e>=u)&&i!==u-1&&delete n.label,f.push(n);return f},draw:function(t){var e=this,a=e.options;if(a.display){var s=e.ctx,u=n.global,d=a.ticks.minor,c=a.ticks.major||d,h=a.gridLines,f=a.scaleLabel,g=0!==e.labelRotation,p=e.isHorizontal(),m=d.autoSkip?e._autoSkip(e.getTicks()):e.getTicks(),v=o.valueOrDefault(d.fontColor,u.defaultFontColor),b=i(d),x=o.valueOrDefault(c.fontColor,u.defaultFontColor),y=i(c),k=h.drawTicks?h.tickMarkLength:0,M=o.valueOrDefault(f.fontColor,u.defaultFontColor),w=i(f),S=o.options.toPadding(f.padding),C=o.toRadians(e.labelRotation),_=[],D=e.options.gridLines.lineWidth,I="right"===a.position?e.right:e.right-D-k,P="right"===a.position?e.right+k:e.right,A="bottom"===a.position?e.top+D:e.bottom-k-D,T="bottom"===a.position?e.top+D+k:e.bottom+D;if(o.each(m,function(i,n){if(!o.isNullOrUndef(i.label)){var r,s,c,f,v,b,x,y,M,w,S,F,O,R,L=i.label;n===e.zeroLineIndex&&a.offset===h.offsetGridLines?(r=h.zeroLineWidth,s=h.zeroLineColor,c=h.zeroLineBorderDash,f=h.zeroLineBorderDashOffset):(r=o.valueAtIndexOrDefault(h.lineWidth,n),s=o.valueAtIndexOrDefault(h.color,n),c=o.valueOrDefault(h.borderDash,u.borderDash),f=o.valueOrDefault(h.borderDashOffset,u.borderDashOffset));var z="middle",B="middle",W=d.padding;if(p){var N=k+W;"bottom"===a.position?(B=g?"middle":"top",z=g?"right":"center",R=e.top+N):(B=g?"middle":"bottom",z=g?"left":"center",R=e.bottom-N);var V=l(e,n,h.offsetGridLines&&m.length>1);V1);j3?i[2]-i[1]:i[1]-i[0];Math.abs(a)>1&&t!==Math.floor(t)&&(a=t-Math.floor(t));var o=n.log10(Math.abs(a)),r="";if(0!==t){var s=-1*Math.floor(o);s=Math.max(Math.min(s,20),0),r=t.toFixed(s)}else r="0";return r},logarithmic:function(t,e,i){var a=t/Math.pow(10,Math.floor(n.log10(t)));return 0===t?"0":1===a||2===a||5===a||0===e||e===i.length-1?t.toExponential():""}}}},{45:45}],35:[function(t,e,i){"use strict";var n=t(25),a=t(26),o=t(45);n._set("global",{tooltips:{enabled:!0,custom:null,mode:"nearest",position:"average",intersect:!0,backgroundColor:"rgba(0,0,0,0.8)",titleFontStyle:"bold",titleSpacing:2,titleMarginBottom:6,titleFontColor:"#fff",titleAlign:"left",bodySpacing:2,bodyFontColor:"#fff",bodyAlign:"left",footerFontStyle:"bold",footerSpacing:2,footerMarginTop:6,footerFontColor:"#fff",footerAlign:"left",yPadding:6,xPadding:6,caretPadding:2,caretSize:5,cornerRadius:6,multiKeyBackground:"#fff",displayColors:!0,borderColor:"rgba(0,0,0,0)",borderWidth:0,callbacks:{beforeTitle:o.noop,title:function(t,e){var i="",n=e.labels,a=n?n.length:0;if(t.length>0){var o=t[0];o.xLabel?i=o.xLabel:a>0&&o.indexl.height-e.height&&(c="bottom");var h=(u.left+u.right)/2,f=(u.top+u.bottom)/2;"center"===c?(i=function(t){return t<=h},n=function(t){return t>h}):(i=function(t){return t<=e.width/2},n=function(t){return t>=l.width-e.width/2}),a=function(t){return t+e.width+s.caretSize+s.caretPadding>l.width},o=function(t){return t-e.width-s.caretSize-s.caretPadding<0},r=function(t){return t<=f?"top":"bottom"},i(s.x)?(d="left",a(s.x)&&(d="center",c=r(s.y))):n(s.x)&&(d="right",o(s.x)&&(d="center",c=r(s.y)));var g=t._options;return{xAlign:g.xAlign?g.xAlign:d,yAlign:g.yAlign?g.yAlign:c}}(this,F=function(t,e){var i=t._chart.ctx,n=2*e.yPadding,a=0,r=e.body,s=r.reduce(function(t,e){return t+e.before.length+e.lines.length+e.after.length},0);s+=e.beforeBody.length+e.afterBody.length;var l=e.title.length,u=e.footer.length,d=e.titleFontSize,c=e.bodyFontSize,h=e.footerFontSize;n+=l*d,n+=l?(l-1)*e.titleSpacing:0,n+=l?e.titleMarginBottom:0,n+=s*c,n+=s?(s-1)*e.bodySpacing:0,n+=u?e.footerMarginTop:0,n+=u*h,n+=u?(u-1)*e.footerSpacing:0;var f=0,g=function(t){a=Math.max(a,i.measureText(t).width+f)};return i.font=o.fontString(d,e._titleFontStyle,e._titleFontFamily),o.each(e.title,g),i.font=o.fontString(c,e._bodyFontStyle,e._bodyFontFamily),o.each(e.beforeBody.concat(e.afterBody),g),f=e.displayColors?c+2:0,o.each(r,function(t){o.each(t.before,g),o.each(t.lines,g),o.each(t.after,g)}),f=0,i.font=o.fontString(h,e._footerFontStyle,e._footerFontFamily),o.each(e.footer,g),{width:a+=2*e.xPadding,height:n}}(this,D)),a=D,s=F,l=A,u=S._chart,d=a.x,c=a.y,h=a.caretSize,f=a.caretPadding,g=a.cornerRadius,p=l.xAlign,m=l.yAlign,v=h+f,b=g+f,"right"===p?d-=s.width:"center"===p&&((d-=s.width/2)+s.width>u.width&&(d=u.width-s.width),d<0&&(d=0)),"top"===m?c+=v:c-="bottom"===m?s.height+v:s.height/2,"center"===m?"left"===p?d+=v:"right"===p&&(d-=v):"left"===p?d-=b:"right"===p&&(d+=b),T={x:d,y:c}}else D.opacity=0;return D.xAlign=A.xAlign,D.yAlign=A.yAlign,D.x=T.x,D.y=T.y,D.width=F.width,D.height=F.height,D.caretX=O.x,D.caretY=O.y,S._model=D,e&&C.custom&&C.custom.call(S,D),S},drawCaret:function(t,e){var i=this._chart.ctx,n=this._view,a=this.getCaretPosition(t,e,n);i.lineTo(a.x1,a.y1),i.lineTo(a.x2,a.y2),i.lineTo(a.x3,a.y3)},getCaretPosition:function(t,e,i){var n,a,o,r,s,l,u=i.caretSize,d=i.cornerRadius,c=i.xAlign,h=i.yAlign,f=t.x,g=t.y,p=e.width,m=e.height;if("center"===h)s=g+m/2,"left"===c?(a=(n=f)-u,o=n,r=s+u,l=s-u):(a=(n=f+p)+u,o=n,r=s-u,l=s+u);else if("left"===c?(n=(a=f+d+u)-u,o=a+u):"right"===c?(n=(a=f+p-d-u)-u,o=a+u):(n=(a=i.caretX)-u,o=a+u),"top"===h)s=(r=g)-u,l=r;else{s=(r=g+m)+u,l=r;var v=o;o=n,n=v}return{x1:n,x2:a,x3:o,y1:r,y2:s,y3:l}},drawTitle:function(t,i,n,a){var r=i.title;if(r.length){n.textAlign=i._titleAlign,n.textBaseline="top";var s,l,u=i.titleFontSize,d=i.titleSpacing;for(n.fillStyle=e(i.titleFontColor,a),n.font=o.fontString(u,i._titleFontStyle,i._titleFontFamily),s=0,l=r.length;s0&&n.stroke()},draw:function(){var t=this._chart.ctx,e=this._view;if(0!==e.opacity){var i={width:e.width,height:e.height},n={x:e.x,y:e.y},a=Math.abs(e.opacity<.001)?0:e.opacity,o=e.title.length||e.beforeBody.length||e.body.length||e.afterBody.length||e.footer.length;this._options.enabled&&o&&(this.drawBackground(n,e,t,i,a),n.x+=e.xPadding,n.y+=e.yPadding,this.drawTitle(n,e,t,a),this.drawBody(n,e,t,a),this.drawFooter(n,e,t,a))}},handleEvent:function(t){var e,i=this,n=i._options;return i._lastActive=i._lastActive||[],"mouseout"===t.type?i._active=[]:i._active=i._chart.getElementsAtEventForMode(t,n.mode,n),(e=!o.arrayEquals(i._active,i._lastActive))&&(i._lastActive=i._active,(n.enabled||n.custom)&&(i._eventPosition={x:t.x,y:t.y},i.update(!0),i.pivot())),e}}),t.Tooltip.positioners={average:function(t){if(!t.length)return!1;var e,i,n=0,a=0,o=0;for(e=0,i=t.length;el;)a-=2*Math.PI;for(;a=s&&a<=l,d=r>=i.innerRadius&&r<=i.outerRadius;return u&&d}return!1},getCenterPoint:function(){var t=this._view,e=(t.startAngle+t.endAngle)/2,i=(t.innerRadius+t.outerRadius)/2;return{x:t.x+Math.cos(e)*i,y:t.y+Math.sin(e)*i}},getArea:function(){var t=this._view;return Math.PI*((t.endAngle-t.startAngle)/(2*Math.PI))*(Math.pow(t.outerRadius,2)-Math.pow(t.innerRadius,2))},tooltipPosition:function(){var t=this._view,e=t.startAngle+(t.endAngle-t.startAngle)/2,i=(t.outerRadius-t.innerRadius)/2+t.innerRadius;return{x:t.x+Math.cos(e)*i,y:t.y+Math.sin(e)*i}},draw:function(){var t=this._chart.ctx,e=this._view,i=e.startAngle,n=e.endAngle;t.beginPath(),t.arc(e.x,e.y,e.outerRadius,i,n),t.arc(e.x,e.y,e.innerRadius,n,i,!0),t.closePath(),t.strokeStyle=e.borderColor,t.lineWidth=e.borderWidth,t.fillStyle=e.backgroundColor,t.fill(),t.lineJoin="bevel",e.borderWidth&&t.stroke()}})},{25:25,26:26,45:45}],37:[function(t,e,i){"use strict";var n=t(25),a=t(26),o=t(45),r=n.global;n._set("global",{elements:{line:{tension:.4,backgroundColor:r.defaultColor,borderWidth:3,borderColor:r.defaultColor,borderCapStyle:"butt",borderDash:[],borderDashOffset:0,borderJoinStyle:"miter",capBezierPoints:!0,fill:!0}}}),e.exports=a.extend({draw:function(){var t,e,i,n,a=this._view,s=this._chart.ctx,l=a.spanGaps,u=this._children.slice(),d=r.elements.line,c=-1;for(this._loop&&u.length&&u.push(u[0]),s.save(),s.lineCap=a.borderCapStyle||d.borderCapStyle,s.setLineDash&&s.setLineDash(a.borderDash||d.borderDash),s.lineDashOffset=a.borderDashOffset||d.borderDashOffset,s.lineJoin=a.borderJoinStyle||d.borderJoinStyle,s.lineWidth=a.borderWidth||d.borderWidth,s.strokeStyle=a.borderColor||r.defaultColor,s.beginPath(),c=-1,t=0;tt?1:-1,o=1,r=l.borderSkipped||"left"):(t=l.x-l.width/2,e=l.x+l.width/2,i=l.y,a=1,o=(n=l.base)>i?1:-1,r=l.borderSkipped||"bottom"),u){var d=Math.min(Math.abs(t-e),Math.abs(i-n)),c=(u=u>d?d:u)/2,h=t+("left"!==r?c*a:0),f=e+("right"!==r?-c*a:0),g=i+("top"!==r?c*o:0),p=n+("bottom"!==r?-c*o:0);h!==f&&(i=g,n=p),g!==p&&(t=h,e=f)}s.beginPath(),s.fillStyle=l.backgroundColor,s.strokeStyle=l.borderColor,s.lineWidth=u;var m=[[t,n],[t,i],[e,i],[e,n]],v=["bottom","left","top","right"].indexOf(r,0);function b(t){return m[(v+t)%4]}-1===v&&(v=0);var x=b(0);s.moveTo(x[0],x[1]);for(var y=1;y<4;y++)x=b(y),s.lineTo(x[0],x[1]);s.fill(),u&&s.stroke()},height:function(){var t=this._view;return t.base-t.y},inRange:function(t,e){var i=!1;if(this._view){var n=r(this);i=t>=n.left&&t<=n.right&&e>=n.top&&e<=n.bottom}return i},inLabelRange:function(t,e){if(!this._view)return!1;var i=r(this);return o(this)?t>=i.left&&t<=i.right:e>=i.top&&e<=i.bottom},inXRange:function(t){var e=r(this);return t>=e.left&&t<=e.right},inYRange:function(t){var e=r(this);return t>=e.top&&t<=e.bottom},getCenterPoint:function(){var t,e,i=this._view;return o(this)?(t=i.x,e=(i.y+i.base)/2):(t=(i.x+i.base)/2,e=i.y),{x:t,y:e}},getArea:function(){var t=this._view;return t.width*Math.abs(t.y-t.base)},tooltipPosition:function(){var t=this._view;return{x:t.x,y:t.y}}})},{25:25,26:26}],40:[function(t,e,i){"use strict";e.exports={},e.exports.Arc=t(36),e.exports.Line=t(37),e.exports.Point=t(38),e.exports.Rectangle=t(39)},{36:36,37:37,38:38,39:39}],41:[function(t,e,i){"use strict";var n=t(42);i=e.exports={clear:function(t){t.ctx.clearRect(0,0,t.width,t.height)},roundedRect:function(t,e,i,n,a,o){if(o){var r=Math.min(o,n/2),s=Math.min(o,a/2);t.moveTo(e+r,i),t.lineTo(e+n-r,i),t.quadraticCurveTo(e+n,i,e+n,i+s),t.lineTo(e+n,i+a-s),t.quadraticCurveTo(e+n,i+a,e+n-r,i+a),t.lineTo(e+r,i+a),t.quadraticCurveTo(e,i+a,e,i+a-s),t.lineTo(e,i+s),t.quadraticCurveTo(e,i,e+r,i)}else t.rect(e,i,n,a)},drawPoint:function(t,e,i,n,a){var o,r,s,l,u,d;if(!e||"object"!=typeof e||"[object HTMLImageElement]"!==(o=e.toString())&&"[object HTMLCanvasElement]"!==o){if(!(isNaN(i)||i<=0)){switch(e){default:t.beginPath(),t.arc(n,a,i,0,2*Math.PI),t.closePath(),t.fill();break;case"triangle":t.beginPath(),u=(r=3*i/Math.sqrt(3))*Math.sqrt(3)/2,t.moveTo(n-r/2,a+u/3),t.lineTo(n+r/2,a+u/3),t.lineTo(n,a-2*u/3),t.closePath(),t.fill();break;case"rect":d=1/Math.SQRT2*i,t.beginPath(),t.fillRect(n-d,a-d,2*d,2*d),t.strokeRect(n-d,a-d,2*d,2*d);break;case"rectRounded":var c=i/Math.SQRT2,h=n-c,f=a-c,g=Math.SQRT2*i;t.beginPath(),this.roundedRect(t,h,f,g,g,i/2),t.closePath(),t.fill();break;case"rectRot":d=1/Math.SQRT2*i,t.beginPath(),t.moveTo(n-d,a),t.lineTo(n,a+d),t.lineTo(n+d,a),t.lineTo(n,a-d),t.closePath(),t.fill();break;case"cross":t.beginPath(),t.moveTo(n,a+i),t.lineTo(n,a-i),t.moveTo(n-i,a),t.lineTo(n+i,a),t.closePath();break;case"crossRot":t.beginPath(),s=Math.cos(Math.PI/4)*i,l=Math.sin(Math.PI/4)*i,t.moveTo(n-s,a-l),t.lineTo(n+s,a+l),t.moveTo(n-s,a+l),t.lineTo(n+s,a-l),t.closePath();break;case"star":t.beginPath(),t.moveTo(n,a+i),t.lineTo(n,a-i),t.moveTo(n-i,a),t.lineTo(n+i,a),s=Math.cos(Math.PI/4)*i,l=Math.sin(Math.PI/4)*i,t.moveTo(n-s,a-l),t.lineTo(n+s,a+l),t.moveTo(n-s,a+l),t.lineTo(n+s,a-l),t.closePath();break;case"line":t.beginPath(),t.moveTo(n-i,a),t.lineTo(n+i,a),t.closePath();break;case"dash":t.beginPath(),t.moveTo(n,a),t.lineTo(n+i,a),t.closePath()}t.stroke()}}else t.drawImage(e,n-e.width/2,a-e.height/2,e.width,e.height)},clipArea:function(t,e){t.save(),t.beginPath(),t.rect(e.left,e.top,e.right-e.left,e.bottom-e.top),t.clip()},unclipArea:function(t){t.restore()},lineTo:function(t,e,i,n){if(i.steppedLine)return"after"===i.steppedLine&&!n||"after"!==i.steppedLine&&n?t.lineTo(e.x,i.y):t.lineTo(i.x,e.y),void t.lineTo(i.x,i.y);i.tension?t.bezierCurveTo(n?e.controlPointPreviousX:e.controlPointNextX,n?e.controlPointPreviousY:e.controlPointNextY,n?i.controlPointNextX:i.controlPointPreviousX,n?i.controlPointNextY:i.controlPointPreviousY,i.x,i.y):t.lineTo(i.x,i.y)}};n.clear=i.clear,n.drawRoundedRectangle=function(t){t.beginPath(),i.roundedRect.apply(i,arguments),t.closePath()}},{42:42}],42:[function(t,e,i){"use strict";var n,a={noop:function(){},uid:(n=0,function(){return n++}),isNullOrUndef:function(t){return null==t},isArray:Array.isArray?Array.isArray:function(t){return"[object Array]"===Object.prototype.toString.call(t)},isObject:function(t){return null!==t&&"[object Object]"===Object.prototype.toString.call(t)},valueOrDefault:function(t,e){return void 0===t?e:t},valueAtIndexOrDefault:function(t,e,i){return a.valueOrDefault(a.isArray(t)?t[e]:t,i)},callback:function(t,e,i){if(t&&"function"==typeof t.call)return t.apply(i,e)},each:function(t,e,i,n){var o,r,s;if(a.isArray(t))if(r=t.length,n)for(o=r-1;o>=0;o--)e.call(i,t[o],o);else for(o=0;o=1?t:-(Math.sqrt(1-t*t)-1)},easeOutCirc:function(t){return Math.sqrt(1-(t-=1)*t)},easeInOutCirc:function(t){return(t/=.5)<1?-.5*(Math.sqrt(1-t*t)-1):.5*(Math.sqrt(1-(t-=2)*t)+1)},easeInElastic:function(t){var e=1.70158,i=0,n=1;return 0===t?0:1===t?1:(i||(i=.3),n<1?(n=1,e=i/4):e=i/(2*Math.PI)*Math.asin(1/n),-n*Math.pow(2,10*(t-=1))*Math.sin((t-e)*(2*Math.PI)/i))},easeOutElastic:function(t){var e=1.70158,i=0,n=1;return 0===t?0:1===t?1:(i||(i=.3),n<1?(n=1,e=i/4):e=i/(2*Math.PI)*Math.asin(1/n),n*Math.pow(2,-10*t)*Math.sin((t-e)*(2*Math.PI)/i)+1)},easeInOutElastic:function(t){var e=1.70158,i=0,n=1;return 0===t?0:2==(t/=.5)?1:(i||(i=.45),n<1?(n=1,e=i/4):e=i/(2*Math.PI)*Math.asin(1/n),t<1?n*Math.pow(2,10*(t-=1))*Math.sin((t-e)*(2*Math.PI)/i)*-.5:n*Math.pow(2,-10*(t-=1))*Math.sin((t-e)*(2*Math.PI)/i)*.5+1)},easeInBack:function(t){return t*t*(2.70158*t-1.70158)},easeOutBack:function(t){return(t-=1)*t*(2.70158*t+1.70158)+1},easeInOutBack:function(t){var e=1.70158;return(t/=.5)<1?t*t*((1+(e*=1.525))*t-e)*.5:.5*((t-=2)*t*((1+(e*=1.525))*t+e)+2)},easeInBounce:function(t){return 1-a.easeOutBounce(1-t)},easeOutBounce:function(t){return t<1/2.75?7.5625*t*t:t<2/2.75?7.5625*(t-=1.5/2.75)*t+.75:t<2.5/2.75?7.5625*(t-=2.25/2.75)*t+.9375:7.5625*(t-=2.625/2.75)*t+.984375},easeInOutBounce:function(t){return t<.5?.5*a.easeInBounce(2*t):.5*a.easeOutBounce(2*t-1)+.5}};e.exports={effects:a},n.easingEffects=a},{42:42}],44:[function(t,e,i){"use strict";var n=t(42);e.exports={toLineHeight:function(t,e){var i=(""+t).match(/^(normal|(\d+(?:\.\d+)?)(px|em|%)?)$/);if(!i||"normal"===i[1])return 1.2*e;switch(t=+i[2],i[3]){case"px":return t;case"%":t/=100}return e*t},toPadding:function(t){var e,i,a,o;return n.isObject(t)?(e=+t.top||0,i=+t.right||0,a=+t.bottom||0,o=+t.left||0):e=i=a=o=+t||0,{top:e,right:i,bottom:a,left:o,height:e+a,width:o+i}},resolve:function(t,e,i){var a,o,r;for(a=0,o=t.length;a
    ';var a=e.childNodes[0],r=e.childNodes[1];e._reset=function(){a.scrollLeft=1e6,a.scrollTop=1e6,r.scrollLeft=1e6,r.scrollTop=1e6};var s=function(){e._reset(),t()};return h(a,"scroll",s.bind(a,"expand")),h(r,"scroll",s.bind(r,"shrink")),e}((u=function(){if(x.resizer)return e(g("resize",i))},c=!1,f=[],function(){f=Array.prototype.slice.call(arguments),d=d||this,c||(c=!0,n.requestAnimFrame.call(window,function(){c=!1,u.apply(d,f)}))}));m=function(){if(x.resizer){var e=t.parentNode;e&&e!==y.parentNode&&e.insertBefore(y,e.firstChild),y._reset()}},v=(p=t)[a]||(p[a]={}),b=v.renderProxy=function(t){t.animationName===s&&m()},n.each(l,function(t){h(p,t,b)}),v.reflow=!!p.offsetParent,p.classList.add(r)}function m(t){var e,i,o,s=t[a]||{},u=s.resizer;delete s.resizer,i=(e=t)[a]||{},(o=i.renderProxy)&&(n.each(l,function(t){f(e,t,o)}),delete i.renderProxy),e.classList.remove(r),u&&u.parentNode&&u.parentNode.removeChild(u)}e.exports={_enabled:"undefined"!=typeof window&&"undefined"!=typeof document,initialize:function(){var t,e,i,n="from{opacity:0.99}to{opacity:1}";e="@-webkit-keyframes "+s+"{"+n+"}@keyframes "+s+"{"+n+"}."+r+"{-webkit-animation:"+s+" 0.001s;animation:"+s+" 0.001s;}",i=(t=this)._style||document.createElement("style"),t._style||(t._style=i,e="/* Chart.js */\n"+e,i.setAttribute("type","text/css"),document.getElementsByTagName("head")[0].appendChild(i)),i.appendChild(document.createTextNode(e))},acquireContext:function(t,e){"string"==typeof t?t=document.getElementById(t):t.length&&(t=t[0]),t&&t.canvas&&(t=t.canvas);var i=t&&t.getContext&&t.getContext("2d");return i&&i.canvas===t?(function(t,e){var i=t.style,n=t.getAttribute("height"),o=t.getAttribute("width");if(t[a]={initial:{height:n,width:o,style:{display:i.display,height:i.height,width:i.width}}},i.display=i.display||"block",null===o||""===o){var r=d(t,"width");void 0!==r&&(t.width=r)}if(null===n||""===n)if(""===t.style.height)t.height=t.width/(e.options.aspectRatio||2);else{var s=d(t,"height");void 0!==r&&(t.height=s)}}(t,e),i):null},releaseContext:function(t){var e=t.canvas;if(e[a]){var i=e[a].initial;["height","width"].forEach(function(t){var a=i[t];n.isNullOrUndef(a)?e.removeAttribute(t):e.setAttribute(t,a)}),n.each(i.style||{},function(t,i){e.style[i]=t}),e.width=e.width,delete e[a]}},addEventListener:function(t,e,i){var o=t.canvas;if("resize"!==e){var r=i[a]||(i[a]={});h(o,e,(r.proxies||(r.proxies={}))[t.id+"_"+e]=function(e){var a,o,r,s;i((o=t,r=u[(a=e).type]||a.type,s=n.getRelativePosition(a,o),g(r,o,s.x,s.y,a)))})}else p(o,i,t)},removeEventListener:function(t,e,i){var n=t.canvas;if("resize"!==e){var o=((i[a]||{}).proxies||{})[t.id+"_"+e];o&&f(n,e,o)}else m(n)}},n.addEvent=h,n.removeEvent=f},{45:45}],48:[function(t,e,i){"use strict";var n=t(45),a=t(46),o=t(47),r=o._enabled?o:a;e.exports=n.extend({initialize:function(){},acquireContext:function(){},releaseContext:function(){},addEventListener:function(){},removeEventListener:function(){}},r)},{45:45,46:46,47:47}],49:[function(t,e,i){"use strict";e.exports={},e.exports.filler=t(50),e.exports.legend=t(51),e.exports.title=t(52)},{50:50,51:51,52:52}],50:[function(t,e,i){"use strict";var n=t(25),a=t(40),o=t(45);n._set("global",{plugins:{filler:{propagate:!0}}});var r={dataset:function(t){var e=t.fill,i=t.chart,n=i.getDatasetMeta(e),a=n&&i.isDatasetVisible(e)&&n.dataset._children||[],o=a.length||0;return o?function(t,e){return e=i)&&n;switch(o){case"bottom":return"start";case"top":return"end";case"zero":return"origin";case"origin":case"start":case"end":return o;default:return!1}}function l(t){var e,i=t.el._model||{},n=t.el._scale||{},a=t.fill,o=null;if(isFinite(a))return null;if("start"===a?o=void 0===i.scaleBottom?n.bottom:i.scaleBottom:"end"===a?o=void 0===i.scaleTop?n.top:i.scaleTop:void 0!==i.scaleZero?o=i.scaleZero:n.getBasePosition?o=n.getBasePosition():n.getBasePixel&&(o=n.getBasePixel()),null!=o){if(void 0!==o.x&&void 0!==o.y)return o;if("number"==typeof o&&isFinite(o))return{x:(e=n.isHorizontal())?o:null,y:e?null:o}}return null}function u(t,e,i){var n,a=t[e].fill,o=[e];if(!i)return a;for(;!1!==a&&-1===o.indexOf(a);){if(!isFinite(a))return a;if(!(n=t[a]))return!1;if(n.visible)return a;o.push(a),a=n.fill}return!1}function d(t){return t&&!t.skip}function c(t,e,i,n,a){var r;if(n&&a){for(t.moveTo(e[0].x,e[0].y),r=1;r0;--r)o.canvas.lineTo(t,i[r],i[r-1],!0)}}e.exports={id:"filler",afterDatasetsUpdate:function(t,e){var i,n,o,d,c,h,f,g=(t.data.datasets||[]).length,p=e.propagate,m=[];for(n=0;n');for(var i=0;i'),t.data.datasets[i].label&&e.push(t.data.datasets[i].label),e.push("");return e.push(""),e.join("")}});var u=a.extend({initialize:function(t){o.extend(this,t),this.legendHitBoxes=[],this.doughnutMode=!1},beforeUpdate:s,update:function(t,e,i){var n=this;return n.beforeUpdate(),n.maxWidth=t,n.maxHeight=e,n.margins=i,n.beforeSetDimensions(),n.setDimensions(),n.afterSetDimensions(),n.beforeBuildLabels(),n.buildLabels(),n.afterBuildLabels(),n.beforeFit(),n.fit(),n.afterFit(),n.afterUpdate(),n.minSize},afterUpdate:s,beforeSetDimensions:s,setDimensions:function(){var t=this;t.isHorizontal()?(t.width=t.maxWidth,t.left=0,t.right=t.width):(t.height=t.maxHeight,t.top=0,t.bottom=t.height),t.paddingLeft=0,t.paddingTop=0,t.paddingRight=0,t.paddingBottom=0,t.minSize={width:0,height:0}},afterSetDimensions:s,beforeBuildLabels:s,buildLabels:function(){var t=this,e=t.options.labels||{},i=o.callback(e.generateLabels,[t.chart],t)||[];e.filter&&(i=i.filter(function(i){return e.filter(i,t.chart.data)})),t.options.reverse&&i.reverse(),t.legendItems=i},afterBuildLabels:s,beforeFit:s,fit:function(){var t=this,e=t.options,i=e.labels,a=e.display,r=t.ctx,s=n.global,u=o.valueOrDefault,d=u(i.fontSize,s.defaultFontSize),c=u(i.fontStyle,s.defaultFontStyle),h=u(i.fontFamily,s.defaultFontFamily),f=o.fontString(d,c,h),g=t.legendHitBoxes=[],p=t.minSize,m=t.isHorizontal();if(m?(p.width=t.maxWidth,p.height=a?10:0):(p.width=a?10:0,p.height=t.maxHeight),a)if(r.font=f,m){var v=t.lineWidths=[0],b=t.legendItems.length?d+i.padding:0;r.textAlign="left",r.textBaseline="top",o.each(t.legendItems,function(e,n){var a=l(i,d)+d/2+r.measureText(e.text).width;v[v.length-1]+a+i.padding>=t.width&&(b+=d+i.padding,v[v.length]=t.left),g[n]={left:0,top:0,width:a,height:d},v[v.length-1]+=a+i.padding}),p.height+=b}else{var x=i.padding,y=t.columnWidths=[],k=i.padding,M=0,w=0,S=d+x;o.each(t.legendItems,function(t,e){var n=l(i,d)+d/2+r.measureText(t.text).width;w+S>p.height&&(k+=M+i.padding,y.push(M),M=0,w=0),M=Math.max(M,n),w+=S,g[e]={left:0,top:0,width:n,height:d}}),k+=M,y.push(M),p.width+=k}t.width=p.width,t.height=p.height},afterFit:s,isHorizontal:function(){return"top"===this.options.position||"bottom"===this.options.position},draw:function(){var t=this,e=t.options,i=e.labels,a=n.global,r=a.elements.line,s=t.width,u=t.lineWidths;if(e.display){var d,c=t.ctx,h=o.valueOrDefault,f=h(i.fontColor,a.defaultFontColor),g=h(i.fontSize,a.defaultFontSize),p=h(i.fontStyle,a.defaultFontStyle),m=h(i.fontFamily,a.defaultFontFamily),v=o.fontString(g,p,m);c.textAlign="left",c.textBaseline="middle",c.lineWidth=.5,c.strokeStyle=f,c.fillStyle=f,c.font=v;var b=l(i,g),x=t.legendHitBoxes,y=t.isHorizontal();d=y?{x:t.left+(s-u[0])/2,y:t.top+i.padding,line:0}:{x:t.left+i.padding,y:t.top+i.padding,line:0};var k=g+i.padding;o.each(t.legendItems,function(n,l){var f,p,m,v,M,w=c.measureText(n.text).width,S=b+g/2+w,C=d.x,_=d.y;y?C+S>=s&&(_=d.y+=k,d.line++,C=d.x=t.left+(s-u[d.line])/2):_+k>t.bottom&&(C=d.x=C+t.columnWidths[d.line]+i.padding,_=d.y=t.top+i.padding,d.line++),function(t,i,n){if(!(isNaN(b)||b<=0)){c.save(),c.fillStyle=h(n.fillStyle,a.defaultColor),c.lineCap=h(n.lineCap,r.borderCapStyle),c.lineDashOffset=h(n.lineDashOffset,r.borderDashOffset),c.lineJoin=h(n.lineJoin,r.borderJoinStyle),c.lineWidth=h(n.lineWidth,r.borderWidth),c.strokeStyle=h(n.strokeStyle,a.defaultColor);var s=0===h(n.lineWidth,r.borderWidth);if(c.setLineDash&&c.setLineDash(h(n.lineDash,r.borderDash)),e.labels&&e.labels.usePointStyle){var l=g*Math.SQRT2/2,u=l/Math.SQRT2,d=t+u,f=i+u;o.canvas.drawPoint(c,n.pointStyle,l,d,f)}else s||c.strokeRect(t,i,b,g),c.fillRect(t,i,b,g);c.restore()}}(C,_,n),x[l].left=C,x[l].top=_,f=n,p=w,v=b+(m=g/2)+C,M=_+m,c.fillText(f.text,v,M),f.hidden&&(c.beginPath(),c.lineWidth=2,c.moveTo(v,M),c.lineTo(v+p,M),c.stroke()),y?d.x+=S+i.padding:d.y+=k})}},handleEvent:function(t){var e=this,i=e.options,n="mouseup"===t.type?"click":t.type,a=!1;if("mousemove"===n){if(!i.onHover)return}else{if("click"!==n)return;if(!i.onClick)return}var o=t.x,r=t.y;if(o>=e.left&&o<=e.right&&r>=e.top&&r<=e.bottom)for(var s=e.legendHitBoxes,l=0;l=u.left&&o<=u.left+u.width&&r>=u.top&&r<=u.top+u.height){if("click"===n){i.onClick.call(e,t.native,e.legendItems[l]),a=!0;break}if("mousemove"===n){i.onHover.call(e,t.native,e.legendItems[l]),a=!0;break}}}return a}});function d(t,e){var i=new u({ctx:t.ctx,options:e,chart:t});r.configure(t,i,e),r.addBox(t,i),t.legend=i}e.exports={id:"legend",_element:u,beforeInit:function(t){var e=t.options.legend;e&&d(t,e)},beforeUpdate:function(t){var e=t.options.legend,i=t.legend;e?(o.mergeIf(e,n.global.legend),i?(r.configure(t,i,e),i.options=e):d(t,e)):i&&(r.removeBox(t,i),delete t.legend)},afterEvent:function(t,e){var i=t.legend;i&&i.handleEvent(e)}}},{25:25,26:26,30:30,45:45}],52:[function(t,e,i){"use strict";var n=t(25),a=t(26),o=t(45),r=t(30),s=o.noop;n._set("global",{title:{display:!1,fontStyle:"bold",fullWidth:!0,lineHeight:1.2,padding:10,position:"top",text:"",weight:2e3}});var l=a.extend({initialize:function(t){o.extend(this,t),this.legendHitBoxes=[]},beforeUpdate:s,update:function(t,e,i){var n=this;return n.beforeUpdate(),n.maxWidth=t,n.maxHeight=e,n.margins=i,n.beforeSetDimensions(),n.setDimensions(),n.afterSetDimensions(),n.beforeBuildLabels(),n.buildLabels(),n.afterBuildLabels(),n.beforeFit(),n.fit(),n.afterFit(),n.afterUpdate(),n.minSize},afterUpdate:s,beforeSetDimensions:s,setDimensions:function(){var t=this;t.isHorizontal()?(t.width=t.maxWidth,t.left=0,t.right=t.width):(t.height=t.maxHeight,t.top=0,t.bottom=t.height),t.paddingLeft=0,t.paddingTop=0,t.paddingRight=0,t.paddingBottom=0,t.minSize={width:0,height:0}},afterSetDimensions:s,beforeBuildLabels:s,buildLabels:s,afterBuildLabels:s,beforeFit:s,fit:function(){var t=this,e=o.valueOrDefault,i=t.options,a=i.display,r=e(i.fontSize,n.global.defaultFontSize),s=t.minSize,l=o.isArray(i.text)?i.text.length:1,u=o.options.toLineHeight(i.lineHeight,r),d=a?l*u+2*i.padding:0;t.isHorizontal()?(s.width=t.maxWidth,s.height=d):(s.width=d,s.height=t.maxHeight),t.width=s.width,t.height=s.height},afterFit:s,isHorizontal:function(){var t=this.options.position;return"top"===t||"bottom"===t},draw:function(){var t=this,e=t.ctx,i=o.valueOrDefault,a=t.options,r=n.global;if(a.display){var s,l,u,d=i(a.fontSize,r.defaultFontSize),c=i(a.fontStyle,r.defaultFontStyle),h=i(a.fontFamily,r.defaultFontFamily),f=o.fontString(d,c,h),g=o.options.toLineHeight(a.lineHeight,d),p=g/2+a.padding,m=0,v=t.top,b=t.left,x=t.bottom,y=t.right;e.fillStyle=i(a.fontColor,r.defaultFontColor),e.font=f,t.isHorizontal()?(l=b+(y-b)/2,u=v+p,s=y-b):(l="left"===a.position?b+p:y-p,u=v+(x-v)/2,s=x-v,m=Math.PI*("left"===a.position?-.5:.5)),e.save(),e.translate(l,u),e.rotate(m),e.textAlign="center",e.textBaseline="middle";var k=a.text;if(o.isArray(k))for(var M=0,w=0;wt.max&&(t.max=n))})});t.min=isFinite(t.min)&&!isNaN(t.min)?t.min:0,t.max=isFinite(t.max)&&!isNaN(t.max)?t.max:1,this.handleTickRangeOptions()},getTickLimit:function(){var t,e=this.options.ticks;if(this.isHorizontal())t=Math.min(e.maxTicksLimit?e.maxTicksLimit:11,Math.ceil(this.width/50));else{var i=a.valueOrDefault(e.fontSize,n.global.defaultFontSize);t=Math.min(e.maxTicksLimit?e.maxTicksLimit:11,Math.ceil(this.height/(2*i)))}return t},handleDirectionalChanges:function(){this.isHorizontal()||this.ticks.reverse()},getLabelForIndex:function(t,e){return+this.getRightValue(this.chart.data.datasets[e].data[t])},getPixelForValue:function(t){var e=this,i=e.start,n=+e.getRightValue(t),a=e.end-i;return e.isHorizontal()?e.left+e.width/a*(n-i):e.bottom-e.height/a*(n-i)},getValueForPixel:function(t){var e=this,i=e.isHorizontal(),n=i?e.width:e.height,a=(i?t-e.left:e.bottom-t)/n;return e.start+(e.end-e.start)*a},getPixelForTick:function(t){return this.getPixelForValue(this.ticksAsNumbers[t])}});t.scaleService.registerScaleType("linear",i,e)}},{25:25,34:34,45:45}],55:[function(t,e,i){"use strict";var n=t(45);e.exports=function(t){var e=n.noop;t.LinearScaleBase=t.Scale.extend({getRightValue:function(e){return"string"==typeof e?+e:t.Scale.prototype.getRightValue.call(this,e)},handleTickRangeOptions:function(){var t=this,e=t.options.ticks;if(e.beginAtZero){var i=n.sign(t.min),a=n.sign(t.max);i<0&&a<0?t.max=0:i>0&&a>0&&(t.min=0)}var o=void 0!==e.min||void 0!==e.suggestedMin,r=void 0!==e.max||void 0!==e.suggestedMax;void 0!==e.min?t.min=e.min:void 0!==e.suggestedMin&&(null===t.min?t.min=e.suggestedMin:t.min=Math.min(t.min,e.suggestedMin)),void 0!==e.max?t.max=e.max:void 0!==e.suggestedMax&&(null===t.max?t.max=e.suggestedMax:t.max=Math.max(t.max,e.suggestedMax)),o!==r&&t.min>=t.max&&(o?t.max=t.min+1:t.min=t.max-1),t.min===t.max&&(t.max++,e.beginAtZero||t.min--)},getTickLimit:e,handleDirectionalChanges:e,buildTicks:function(){var t=this,e=t.options.ticks,i=t.getTickLimit(),a={maxTicks:i=Math.max(2,i),min:e.min,max:e.max,stepSize:n.valueOrDefault(e.fixedStepSize,e.stepSize)},o=t.ticks=function(t,e){var i,a=[];if(t.stepSize&&t.stepSize>0)i=t.stepSize;else{var o=n.niceNum(e.max-e.min,!1);i=n.niceNum(o/(t.maxTicks-1),!0)}var r=Math.floor(e.min/i)*i,s=Math.ceil(e.max/i)*i;t.min&&t.max&&t.stepSize&&n.almostWhole((t.max-t.min)/t.stepSize,i/1e3)&&(r=t.min,s=t.max);var l=(s-r)/i;l=n.almostEquals(l,Math.round(l),i/1e3)?Math.round(l):Math.ceil(l);var u=1;i<1&&(u=Math.pow(10,i.toString().length-2),r=Math.round(r*u)/u,s=Math.round(s*u)/u),a.push(void 0!==t.min?t.min:r);for(var d=1;d0){var i=n.min(e),a=n.max(e);t.min=null===t.min?i:Math.min(t.min,i),t.max=null===t.max?a:Math.max(t.max,a)}})}else n.each(a,function(e,a){var o=i.getDatasetMeta(a);i.isDatasetVisible(a)&&r(o)&&n.each(e.data,function(e,i){var n=+t.getRightValue(e);isNaN(n)||o.data[i].hidden||n<0||(null===t.min?t.min=n:nt.max&&(t.max=n),0!==n&&(null===t.minNotZero||n0?t.minNotZero=t.min:t.max<1?t.minNotZero=Math.pow(10,Math.floor(n.log10(t.max))):t.minNotZero=1)},buildTicks:function(){var t=this,e=t.options.ticks,i=!t.isHorizontal(),a={min:e.min,max:e.max},o=t.ticks=function(t,e){var i,a,o=[],r=n.valueOrDefault,s=r(t.min,Math.pow(10,Math.floor(n.log10(e.min)))),l=Math.floor(n.log10(e.max)),u=Math.ceil(e.max/Math.pow(10,l));0===s?(i=Math.floor(n.log10(e.minNotZero)),a=Math.floor(e.minNotZero/Math.pow(10,i)),o.push(s),s=a*Math.pow(10,i)):(i=Math.floor(n.log10(s)),a=Math.floor(s/Math.pow(10,i)));for(var d=i<0?Math.pow(10,Math.abs(i)):1;o.push(s),10==++a&&(a=1,d=++i>=0?1:d),s=Math.round(a*Math.pow(10,i)*d)/d,ia?{start:e-i-5,end:e}:{start:e,end:e+i+5}}function u(t,e,i,n){if(a.isArray(e))for(var o=i.y,r=1.5*n,s=0;sd.r&&(d.r=b.end,c.r=m),x.startd.b&&(d.b=x.end,c.b=m)}t.setReductions(u,d,c)}(this):(t=this,e=Math.min(t.height/2,t.width/2),t.drawingArea=Math.round(e),t.setCenterPoint(0,0,0,0))},setReductions:function(t,e,i){var n=e.l/Math.sin(i.l),a=Math.max(e.r-this.width,0)/Math.sin(i.r),o=-e.t/Math.cos(i.t),r=-Math.max(e.b-this.height,0)/Math.cos(i.b);n=d(n),a=d(a),o=d(o),r=d(r),this.drawingArea=Math.min(Math.round(t-(n+a)/2),Math.round(t-(o+r)/2)),this.setCenterPoint(n,a,o,r)},setCenterPoint:function(t,e,i,n){var a=this,o=a.width-e-a.drawingArea,r=t+a.drawingArea,s=i+a.drawingArea,l=a.height-n-a.drawingArea;a.xCenter=Math.round((r+o)/2+a.left),a.yCenter=Math.round((s+l)/2+a.top)},getIndexAngle:function(t){return t*(2*Math.PI/r(this))+(this.chart.options&&this.chart.options.startAngle?this.chart.options.startAngle:0)*Math.PI*2/360},getDistanceFromCenterForValue:function(t){var e=this;if(null===t)return 0;var i=e.drawingArea/(e.max-e.min);return e.options.ticks.reverse?(e.max-t)*i:(t-e.min)*i},getPointPosition:function(t,e){var i=this.getIndexAngle(t)-Math.PI/2;return{x:Math.round(Math.cos(i)*e)+this.xCenter,y:Math.round(Math.sin(i)*e)+this.yCenter}},getPointPositionForValue:function(t,e){return this.getPointPosition(t,this.getDistanceFromCenterForValue(e))},getBasePosition:function(){var t=this.min,e=this.max;return this.getPointPositionForValue(0,this.beginAtZero?0:t<0&&e<0?e:t>0&&e>0?t:0)},draw:function(){var t=this,i=t.options,n=i.gridLines,o=i.ticks,l=a.valueOrDefault;if(i.display){var d=t.ctx,c=this.getIndexAngle(0),h=l(o.fontSize,e.defaultFontSize),f=l(o.fontStyle,e.defaultFontStyle),g=l(o.fontFamily,e.defaultFontFamily),p=a.fontString(h,f,g);a.each(t.ticks,function(i,s){if(s>0||o.reverse){var u=t.getDistanceFromCenterForValue(t.ticksAsNumbers[s]);if(n.display&&0!==s&&function(t,e,i,n){var o=t.ctx;if(o.strokeStyle=a.valueAtIndexOrDefault(e.color,n-1),o.lineWidth=a.valueAtIndexOrDefault(e.lineWidth,n-1),t.options.gridLines.circular)o.beginPath(),o.arc(t.xCenter,t.yCenter,i,0,2*Math.PI),o.closePath(),o.stroke();else{var s=r(t);if(0===s)return;o.beginPath();var l=t.getPointPosition(0,i);o.moveTo(l.x,l.y);for(var u=1;u=0;m--){if(o.display){var v=t.getPointPosition(m,g);i.beginPath(),i.moveTo(t.xCenter,t.yCenter),i.lineTo(v.x,v.y),i.stroke(),i.closePath()}if(l.display){var b=t.getPointPosition(m,g+5),x=a.valueAtIndexOrDefault(l.fontColor,m,e.defaultFontColor);i.font=p.font,i.fillStyle=x;var y=t.getIndexAngle(m),k=a.toDegrees(y);i.textAlign=0===(f=k)||180===f?"center":f<180?"left":"right",d=k,c=t._pointLabelSizes[m],h=b,90===d||270===d?h.y-=c.h/2:(d>270||d<90)&&(h.y-=c.h),u(i,t.pointLabels[m]||"",b,p.size)}}}(t)}}});t.scaleService.registerScaleType("radialLinear",c,i)}},{25:25,34:34,45:45}],58:[function(t,e,i){"use strict";var n=t(1);n="function"==typeof n?n:window.moment;var a=t(25),o=t(45),r=Number.MIN_SAFE_INTEGER||-9007199254740991,s=Number.MAX_SAFE_INTEGER||9007199254740991,l={millisecond:{common:!0,size:1,steps:[1,2,5,10,20,50,100,250,500]},second:{common:!0,size:1e3,steps:[1,2,5,10,30]},minute:{common:!0,size:6e4,steps:[1,2,5,10,30]},hour:{common:!0,size:36e5,steps:[1,2,3,6,12]},day:{common:!0,size:864e5,steps:[1,2,5]},week:{common:!1,size:6048e5,steps:[1,2,3,4]},month:{common:!0,size:2628e6,steps:[1,2,3]},quarter:{common:!1,size:7884e6,steps:[1,2,3,4]},year:{common:!0,size:3154e7}},u=Object.keys(l);function d(t,e){return t-e}function c(t){var e,i,n,a={},o=[];for(e=0,i=t.length;e=0&&r<=s;){if(a=t[(n=r+s>>1)-1]||null,o=t[n],!a)return{lo:null,hi:o};if(o[e]i))return{lo:a,hi:o};s=n-1}}return{lo:o,hi:null}}(t,e,i),o=a.lo?a.hi?a.lo:t[t.length-2]:t[0],r=a.lo?a.hi?a.hi:t[t.length-1]:t[1],s=r[e]-o[e],l=s?(i-o[e])/s:0,u=(r[n]-o[n])*l;return o[n]+u}function f(t,e){var i=e.parser,a=e.parser||e.format;return"function"==typeof i?i(t):"string"==typeof t&&"string"==typeof a?n(t,a):(t instanceof n||(t=n(t)),t.isValid()?t:"function"==typeof a?a(t):t)}function g(t,e){if(o.isNullOrUndef(t))return null;var i=e.options.time,n=f(e.getRightValue(t),i);return n.isValid()?(i.round&&n.startOf(i.round),n.valueOf()):null}function p(t){for(var e=u.indexOf(t)+1,i=u.length;e=k&&i<=M&&_.push(i);return y.min=k,y.max=M,y._unit=S.unit||function(t,e,i,a){var o,r,s=n.duration(n(a).diff(n(i)));for(o=u.length-1;o>=u.indexOf(e);o--)if(r=u[o],l[r].common&&s.as(r)>=t.length)return r;return u[e?u.indexOf(e):0]}(_,S.minUnit,y.min,y.max),y._majorUnit=p(y._unit),y._table=function(t,e,i,n){if("linear"===n||!t.length)return[{time:e,pos:0},{time:i,pos:1}];var a,o,r,s,l,u=[],d=[e];for(a=0,o=t.length;ae&&s1?o[1]:s,v=o[0],b=(h(a,"time",c,"pos")-h(a,"time",v,"pos"))/2),d.time.max||(c=o[o.length-1],v=o.length>1?o[o.length-2]:r,x=(h(a,"time",c,"pos")-h(a,"time",v,"pos"))/2)),{left:b,right:x}),y._labelFormat=function(t,e){var i,n,a,o=t.length;for(i=0;i=0&&t0?s:1}});t.scaleService.registerScaleType("time",e,{position:"bottom",distribution:"linear",bounds:"data",time:{parser:!1,format:!1,unit:!1,round:!1,displayFormat:!1,isoWeekday:!1,minUnit:"millisecond",displayFormats:{millisecond:"h:mm:ss.SSS a",second:"h:mm:ss a",minute:"h:mm a",hour:"hA",day:"MMM D",week:"ll",month:"MMM YYYY",quarter:"[Q]Q - YYYY",year:"YYYY"}},ticks:{autoSkip:!1,source:"auto",major:{enabled:!1}}})}},{1:1,25:25,45:45}]},{},[7])(7)}); - -/***/ }), - -/***/ "./node_modules/daterangepicker/daterangepicker.js": -/*!*********************************************************!*\ - !*** ./node_modules/daterangepicker/daterangepicker.js ***! - \*********************************************************/ -/*! dynamic exports provided */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/** -* @version: 3.0.3 -* @author: Dan Grossman http://www.dangrossman.info/ -* @copyright: Copyright (c) 2012-2018 Dan Grossman. All rights reserved. -* @license: Licensed under the MIT license. See http://www.opensource.org/licenses/mit-license.php -* @website: http://www.daterangepicker.com/ -*/ -// Following the UMD template https://github.com/umdjs/umd/blob/master/templates/returnExportsGlobal.js -(function (root, factory) { - if (true) { - // AMD. Make globaly available as well - !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! moment */ "./node_modules/moment/moment.js"), __webpack_require__(/*! jquery */ "./node_modules/jquery/dist/jquery.js")], __WEBPACK_AMD_DEFINE_RESULT__ = (function (moment, jquery) { - if (!jquery.fn) jquery.fn = {}; // webpack server rendering - return factory(moment, jquery); - }).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), - __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); - } else if (typeof module === 'object' && module.exports) { - // Node / Browserify - //isomorphic issue - var jQuery = (typeof window != 'undefined') ? window.jQuery : undefined; - if (!jQuery) { - jQuery = require('jquery'); - if (!jQuery.fn) jQuery.fn = {}; - } - var moment = (typeof window != 'undefined' && typeof window.moment != 'undefined') ? window.moment : require('moment'); - module.exports = factory(moment, jQuery); - } else { - // Browser globals - root.daterangepicker = factory(root.moment, root.jQuery); - } -}(this, function(moment, $) { - var DateRangePicker = function(element, options, cb) { - - //default settings for options - this.parentEl = 'body'; - this.element = $(element); - this.startDate = moment().startOf('day'); - this.endDate = moment().endOf('day'); - this.minDate = false; - this.maxDate = false; - this.maxSpan = false; - this.autoApply = false; - this.singleDatePicker = false; - this.showDropdowns = false; - this.minYear = moment().subtract(100, 'year').format('YYYY'); - this.maxYear = moment().add(100, 'year').format('YYYY'); - this.showWeekNumbers = false; - this.showISOWeekNumbers = false; - this.showCustomRangeLabel = true; - this.timePicker = false; - this.timePicker24Hour = false; - this.timePickerIncrement = 1; - this.timePickerSeconds = false; - this.linkedCalendars = true; - this.autoUpdateInput = true; - this.alwaysShowCalendars = false; - this.ranges = {}; - - this.opens = 'right'; - if (this.element.hasClass('pull-right')) - this.opens = 'left'; - - this.drops = 'down'; - if (this.element.hasClass('dropup')) - this.drops = 'up'; - - this.buttonClasses = 'btn btn-sm'; - this.applyButtonClasses = 'btn-primary'; - this.cancelButtonClasses = 'btn-default'; - - this.locale = { - direction: 'ltr', - format: moment.localeData().longDateFormat('L'), - separator: ' - ', - applyLabel: 'Apply', - cancelLabel: 'Cancel', - weekLabel: 'W', - customRangeLabel: 'Custom Range', - daysOfWeek: moment.weekdaysMin(), - monthNames: moment.monthsShort(), - firstDay: moment.localeData().firstDayOfWeek() - }; - - this.callback = function() { }; - - //some state information - this.isShowing = false; - this.leftCalendar = {}; - this.rightCalendar = {}; - - //custom options from user - if (typeof options !== 'object' || options === null) - options = {}; - - //allow setting options with data attributes - //data-api options will be overwritten with custom javascript options - options = $.extend(this.element.data(), options); - - //html template for the picker UI - if (typeof options.template !== 'string' && !(options.template instanceof $)) - options.template = - '
    ' + - '
    ' + - '
    ' + - '
    ' + - '
    ' + - '
    ' + - '
    ' + - '
    ' + - '
    ' + - '
    ' + - '
    ' + - '' + - '' + - ' ' + - '
    ' + - '
    '; - - this.parentEl = (options.parentEl && $(options.parentEl).length) ? $(options.parentEl) : $(this.parentEl); - this.container = $(options.template).appendTo(this.parentEl); - - // - // handle all the possible options overriding defaults - // - - if (typeof options.locale === 'object') { - - if (typeof options.locale.direction === 'string') - this.locale.direction = options.locale.direction; - - if (typeof options.locale.format === 'string') - this.locale.format = options.locale.format; - - if (typeof options.locale.separator === 'string') - this.locale.separator = options.locale.separator; - - if (typeof options.locale.daysOfWeek === 'object') - this.locale.daysOfWeek = options.locale.daysOfWeek.slice(); - - if (typeof options.locale.monthNames === 'object') - this.locale.monthNames = options.locale.monthNames.slice(); - - if (typeof options.locale.firstDay === 'number') - this.locale.firstDay = options.locale.firstDay; - - if (typeof options.locale.applyLabel === 'string') - this.locale.applyLabel = options.locale.applyLabel; - - if (typeof options.locale.cancelLabel === 'string') - this.locale.cancelLabel = options.locale.cancelLabel; - - if (typeof options.locale.weekLabel === 'string') - this.locale.weekLabel = options.locale.weekLabel; - - if (typeof options.locale.customRangeLabel === 'string'){ - //Support unicode chars in the custom range name. - var elem = document.createElement('textarea'); - elem.innerHTML = options.locale.customRangeLabel; - var rangeHtml = elem.value; - this.locale.customRangeLabel = rangeHtml; - } - } - this.container.addClass(this.locale.direction); - - if (typeof options.startDate === 'string') - this.startDate = moment(options.startDate, this.locale.format); - - if (typeof options.endDate === 'string') - this.endDate = moment(options.endDate, this.locale.format); - - if (typeof options.minDate === 'string') - this.minDate = moment(options.minDate, this.locale.format); - - if (typeof options.maxDate === 'string') - this.maxDate = moment(options.maxDate, this.locale.format); - - if (typeof options.startDate === 'object') - this.startDate = moment(options.startDate); - - if (typeof options.endDate === 'object') - this.endDate = moment(options.endDate); - - if (typeof options.minDate === 'object') - this.minDate = moment(options.minDate); - - if (typeof options.maxDate === 'object') - this.maxDate = moment(options.maxDate); - - // sanity check for bad options - if (this.minDate && this.startDate.isBefore(this.minDate)) - this.startDate = this.minDate.clone(); - - // sanity check for bad options - if (this.maxDate && this.endDate.isAfter(this.maxDate)) - this.endDate = this.maxDate.clone(); - - if (typeof options.applyButtonClasses === 'string') - this.applyButtonClasses = options.applyButtonClasses; - - if (typeof options.applyClass === 'string') //backwards compat - this.applyButtonClasses = options.applyClass; - - if (typeof options.cancelButtonClasses === 'string') - this.cancelButtonClasses = options.cancelButtonClasses; - - if (typeof options.cancelClass === 'string') //backwards compat - this.cancelButtonClasses = options.cancelClass; - - if (typeof options.maxSpan === 'object') - this.maxSpan = options.maxSpan; - - if (typeof options.dateLimit === 'object') //backwards compat - this.maxSpan = options.dateLimit; - - if (typeof options.opens === 'string') - this.opens = options.opens; - - if (typeof options.drops === 'string') - this.drops = options.drops; - - if (typeof options.showWeekNumbers === 'boolean') - this.showWeekNumbers = options.showWeekNumbers; - - if (typeof options.showISOWeekNumbers === 'boolean') - this.showISOWeekNumbers = options.showISOWeekNumbers; - - if (typeof options.buttonClasses === 'string') - this.buttonClasses = options.buttonClasses; - - if (typeof options.buttonClasses === 'object') - this.buttonClasses = options.buttonClasses.join(' '); - - if (typeof options.showDropdowns === 'boolean') - this.showDropdowns = options.showDropdowns; - - if (typeof options.minYear === 'number') - this.minYear = options.minYear; - - if (typeof options.maxYear === 'number') - this.maxYear = options.maxYear; - - if (typeof options.showCustomRangeLabel === 'boolean') - this.showCustomRangeLabel = options.showCustomRangeLabel; - - if (typeof options.singleDatePicker === 'boolean') { - this.singleDatePicker = options.singleDatePicker; - if (this.singleDatePicker) - this.endDate = this.startDate.clone(); - } - - if (typeof options.timePicker === 'boolean') - this.timePicker = options.timePicker; - - if (typeof options.timePickerSeconds === 'boolean') - this.timePickerSeconds = options.timePickerSeconds; - - if (typeof options.timePickerIncrement === 'number') - this.timePickerIncrement = options.timePickerIncrement; - - if (typeof options.timePicker24Hour === 'boolean') - this.timePicker24Hour = options.timePicker24Hour; - - if (typeof options.autoApply === 'boolean') - this.autoApply = options.autoApply; - - if (typeof options.autoUpdateInput === 'boolean') - this.autoUpdateInput = options.autoUpdateInput; - - if (typeof options.linkedCalendars === 'boolean') - this.linkedCalendars = options.linkedCalendars; - - if (typeof options.isInvalidDate === 'function') - this.isInvalidDate = options.isInvalidDate; - - if (typeof options.isCustomDate === 'function') - this.isCustomDate = options.isCustomDate; - - if (typeof options.alwaysShowCalendars === 'boolean') - this.alwaysShowCalendars = options.alwaysShowCalendars; - - // update day names order to firstDay - if (this.locale.firstDay != 0) { - var iterator = this.locale.firstDay; - while (iterator > 0) { - this.locale.daysOfWeek.push(this.locale.daysOfWeek.shift()); - iterator--; - } - } - - var start, end, range; - - //if no start/end dates set, check if an input element contains initial values - if (typeof options.startDate === 'undefined' && typeof options.endDate === 'undefined') { - if ($(this.element).is(':text')) { - var val = $(this.element).val(), - split = val.split(this.locale.separator); - - start = end = null; - - if (split.length == 2) { - start = moment(split[0], this.locale.format); - end = moment(split[1], this.locale.format); - } else if (this.singleDatePicker && val !== "") { - start = moment(val, this.locale.format); - end = moment(val, this.locale.format); - } - if (start !== null && end !== null) { - this.setStartDate(start); - this.setEndDate(end); - } - } - } - - if (typeof options.ranges === 'object') { - for (range in options.ranges) { - - if (typeof options.ranges[range][0] === 'string') - start = moment(options.ranges[range][0], this.locale.format); - else - start = moment(options.ranges[range][0]); - - if (typeof options.ranges[range][1] === 'string') - end = moment(options.ranges[range][1], this.locale.format); - else - end = moment(options.ranges[range][1]); - - // If the start or end date exceed those allowed by the minDate or maxSpan - // options, shorten the range to the allowable period. - if (this.minDate && start.isBefore(this.minDate)) - start = this.minDate.clone(); - - var maxDate = this.maxDate; - if (this.maxSpan && maxDate && start.clone().add(this.maxSpan).isAfter(maxDate)) - maxDate = start.clone().add(this.maxSpan); - if (maxDate && end.isAfter(maxDate)) - end = maxDate.clone(); - - // If the end of the range is before the minimum or the start of the range is - // after the maximum, don't display this range option at all. - if ((this.minDate && end.isBefore(this.minDate, this.timepicker ? 'minute' : 'day')) - || (maxDate && start.isAfter(maxDate, this.timepicker ? 'minute' : 'day'))) - continue; - - //Support unicode chars in the range names. - var elem = document.createElement('textarea'); - elem.innerHTML = range; - var rangeHtml = elem.value; - - this.ranges[rangeHtml] = [start, end]; - } - - var list = '
      '; - for (range in this.ranges) { - list += '
    • ' + range + '
    • '; - } - if (this.showCustomRangeLabel) { - list += '
    • ' + this.locale.customRangeLabel + '
    • '; - } - list += '
    '; - this.container.find('.ranges').prepend(list); - } - - if (typeof cb === 'function') { - this.callback = cb; - } - - if (!this.timePicker) { - this.startDate = this.startDate.startOf('day'); - this.endDate = this.endDate.endOf('day'); - this.container.find('.calendar-time').hide(); - } - - //can't be used together for now - if (this.timePicker && this.autoApply) - this.autoApply = false; - - if (this.autoApply) { - this.container.addClass('auto-apply'); - } - - if (typeof options.ranges === 'object') - this.container.addClass('show-ranges'); - - if (this.singleDatePicker) { - this.container.addClass('single'); - this.container.find('.drp-calendar.left').addClass('single'); - this.container.find('.drp-calendar.left').show(); - this.container.find('.drp-calendar.right').hide(); - if (!this.timePicker) { - this.container.addClass('auto-apply'); - } - } - - if ((typeof options.ranges === 'undefined' && !this.singleDatePicker) || this.alwaysShowCalendars) { - this.container.addClass('show-calendar'); - } - - this.container.addClass('opens' + this.opens); - - //apply CSS classes and labels to buttons - this.container.find('.applyBtn, .cancelBtn').addClass(this.buttonClasses); - if (this.applyButtonClasses.length) - this.container.find('.applyBtn').addClass(this.applyButtonClasses); - if (this.cancelButtonClasses.length) - this.container.find('.cancelBtn').addClass(this.cancelButtonClasses); - this.container.find('.applyBtn').html(this.locale.applyLabel); - this.container.find('.cancelBtn').html(this.locale.cancelLabel); - - // - // event listeners - // - - this.container.find('.drp-calendar') - .on('click.daterangepicker', '.prev', $.proxy(this.clickPrev, this)) - .on('click.daterangepicker', '.next', $.proxy(this.clickNext, this)) - .on('mousedown.daterangepicker', 'td.available', $.proxy(this.clickDate, this)) - .on('mouseenter.daterangepicker', 'td.available', $.proxy(this.hoverDate, this)) - .on('change.daterangepicker', 'select.yearselect', $.proxy(this.monthOrYearChanged, this)) - .on('change.daterangepicker', 'select.monthselect', $.proxy(this.monthOrYearChanged, this)) - .on('change.daterangepicker', 'select.hourselect,select.minuteselect,select.secondselect,select.ampmselect', $.proxy(this.timeChanged, this)) - - this.container.find('.ranges') - .on('click.daterangepicker', 'li', $.proxy(this.clickRange, this)) - - this.container.find('.drp-buttons') - .on('click.daterangepicker', 'button.applyBtn', $.proxy(this.clickApply, this)) - .on('click.daterangepicker', 'button.cancelBtn', $.proxy(this.clickCancel, this)) - - if (this.element.is('input') || this.element.is('button')) { - this.element.on({ - 'click.daterangepicker': $.proxy(this.show, this), - 'focus.daterangepicker': $.proxy(this.show, this), - 'keyup.daterangepicker': $.proxy(this.elementChanged, this), - 'keydown.daterangepicker': $.proxy(this.keydown, this) //IE 11 compatibility - }); - } else { - this.element.on('click.daterangepicker', $.proxy(this.toggle, this)); - this.element.on('keydown.daterangepicker', $.proxy(this.toggle, this)); - } - - // - // if attached to a text input, set the initial value - // - - this.updateElement(); - - }; - - DateRangePicker.prototype = { - - constructor: DateRangePicker, - - setStartDate: function(startDate) { - if (typeof startDate === 'string') - this.startDate = moment(startDate, this.locale.format); - - if (typeof startDate === 'object') - this.startDate = moment(startDate); - - if (!this.timePicker) - this.startDate = this.startDate.startOf('day'); - - if (this.timePicker && this.timePickerIncrement) - this.startDate.minute(Math.round(this.startDate.minute() / this.timePickerIncrement) * this.timePickerIncrement); - - if (this.minDate && this.startDate.isBefore(this.minDate)) { - this.startDate = this.minDate.clone(); - if (this.timePicker && this.timePickerIncrement) - this.startDate.minute(Math.round(this.startDate.minute() / this.timePickerIncrement) * this.timePickerIncrement); - } - - if (this.maxDate && this.startDate.isAfter(this.maxDate)) { - this.startDate = this.maxDate.clone(); - if (this.timePicker && this.timePickerIncrement) - this.startDate.minute(Math.floor(this.startDate.minute() / this.timePickerIncrement) * this.timePickerIncrement); - } - - if (!this.isShowing) - this.updateElement(); - - this.updateMonthsInView(); - }, - - setEndDate: function(endDate) { - if (typeof endDate === 'string') - this.endDate = moment(endDate, this.locale.format); - - if (typeof endDate === 'object') - this.endDate = moment(endDate); - - if (!this.timePicker) - this.endDate = this.endDate.add(1,'d').startOf('day').subtract(1,'second'); - - if (this.timePicker && this.timePickerIncrement) - this.endDate.minute(Math.round(this.endDate.minute() / this.timePickerIncrement) * this.timePickerIncrement); - - if (this.endDate.isBefore(this.startDate)) - this.endDate = this.startDate.clone(); - - if (this.maxDate && this.endDate.isAfter(this.maxDate)) - this.endDate = this.maxDate.clone(); - - if (this.maxSpan && this.startDate.clone().add(this.maxSpan).isBefore(this.endDate)) - this.endDate = this.startDate.clone().add(this.maxSpan); - - this.previousRightTime = this.endDate.clone(); - - this.container.find('.drp-selected').html(this.startDate.format(this.locale.format) + this.locale.separator + this.endDate.format(this.locale.format)); - - if (!this.isShowing) - this.updateElement(); - - this.updateMonthsInView(); - }, - - isInvalidDate: function() { - return false; - }, - - isCustomDate: function() { - return false; - }, - - updateView: function() { - if (this.timePicker) { - this.renderTimePicker('left'); - this.renderTimePicker('right'); - if (!this.endDate) { - this.container.find('.right .calendar-time select').attr('disabled', 'disabled').addClass('disabled'); - } else { - this.container.find('.right .calendar-time select').removeAttr('disabled').removeClass('disabled'); - } - } - if (this.endDate) - this.container.find('.drp-selected').html(this.startDate.format(this.locale.format) + this.locale.separator + this.endDate.format(this.locale.format)); - this.updateMonthsInView(); - this.updateCalendars(); - this.updateFormInputs(); - }, - - updateMonthsInView: function() { - if (this.endDate) { - - //if both dates are visible already, do nothing - if (!this.singleDatePicker && this.leftCalendar.month && this.rightCalendar.month && - (this.startDate.format('YYYY-MM') == this.leftCalendar.month.format('YYYY-MM') || this.startDate.format('YYYY-MM') == this.rightCalendar.month.format('YYYY-MM')) - && - (this.endDate.format('YYYY-MM') == this.leftCalendar.month.format('YYYY-MM') || this.endDate.format('YYYY-MM') == this.rightCalendar.month.format('YYYY-MM')) - ) { - return; - } - - this.leftCalendar.month = this.startDate.clone().date(2); - if (!this.linkedCalendars && (this.endDate.month() != this.startDate.month() || this.endDate.year() != this.startDate.year())) { - this.rightCalendar.month = this.endDate.clone().date(2); - } else { - this.rightCalendar.month = this.startDate.clone().date(2).add(1, 'month'); - } - - } else { - if (this.leftCalendar.month.format('YYYY-MM') != this.startDate.format('YYYY-MM') && this.rightCalendar.month.format('YYYY-MM') != this.startDate.format('YYYY-MM')) { - this.leftCalendar.month = this.startDate.clone().date(2); - this.rightCalendar.month = this.startDate.clone().date(2).add(1, 'month'); - } - } - if (this.maxDate && this.linkedCalendars && !this.singleDatePicker && this.rightCalendar.month > this.maxDate) { - this.rightCalendar.month = this.maxDate.clone().date(2); - this.leftCalendar.month = this.maxDate.clone().date(2).subtract(1, 'month'); - } - }, - - updateCalendars: function() { - - if (this.timePicker) { - var hour, minute, second; - if (this.endDate) { - hour = parseInt(this.container.find('.left .hourselect').val(), 10); - minute = parseInt(this.container.find('.left .minuteselect').val(), 10); - second = this.timePickerSeconds ? parseInt(this.container.find('.left .secondselect').val(), 10) : 0; - if (!this.timePicker24Hour) { - var ampm = this.container.find('.left .ampmselect').val(); - if (ampm === 'PM' && hour < 12) - hour += 12; - if (ampm === 'AM' && hour === 12) - hour = 0; - } - } else { - hour = parseInt(this.container.find('.right .hourselect').val(), 10); - minute = parseInt(this.container.find('.right .minuteselect').val(), 10); - second = this.timePickerSeconds ? parseInt(this.container.find('.right .secondselect').val(), 10) : 0; - if (!this.timePicker24Hour) { - var ampm = this.container.find('.right .ampmselect').val(); - if (ampm === 'PM' && hour < 12) - hour += 12; - if (ampm === 'AM' && hour === 12) - hour = 0; - } - } - this.leftCalendar.month.hour(hour).minute(minute).second(second); - this.rightCalendar.month.hour(hour).minute(minute).second(second); - } - - this.renderCalendar('left'); - this.renderCalendar('right'); - - //highlight any predefined range matching the current start and end dates - this.container.find('.ranges li').removeClass('active'); - if (this.endDate == null) return; - - this.calculateChosenLabel(); - }, - - renderCalendar: function(side) { - - // - // Build the matrix of dates that will populate the calendar - // - - var calendar = side == 'left' ? this.leftCalendar : this.rightCalendar; - var month = calendar.month.month(); - var year = calendar.month.year(); - var hour = calendar.month.hour(); - var minute = calendar.month.minute(); - var second = calendar.month.second(); - var daysInMonth = moment([year, month]).daysInMonth(); - var firstDay = moment([year, month, 1]); - var lastDay = moment([year, month, daysInMonth]); - var lastMonth = moment(firstDay).subtract(1, 'month').month(); - var lastYear = moment(firstDay).subtract(1, 'month').year(); - var daysInLastMonth = moment([lastYear, lastMonth]).daysInMonth(); - var dayOfWeek = firstDay.day(); - - //initialize a 6 rows x 7 columns array for the calendar - var calendar = []; - calendar.firstDay = firstDay; - calendar.lastDay = lastDay; - - for (var i = 0; i < 6; i++) { - calendar[i] = []; - } - - //populate the calendar with date objects - var startDay = daysInLastMonth - dayOfWeek + this.locale.firstDay + 1; - if (startDay > daysInLastMonth) - startDay -= 7; - - if (dayOfWeek == this.locale.firstDay) - startDay = daysInLastMonth - 6; - - var curDate = moment([lastYear, lastMonth, startDay, 12, minute, second]); - - var col, row; - for (var i = 0, col = 0, row = 0; i < 42; i++, col++, curDate = moment(curDate).add(24, 'hour')) { - if (i > 0 && col % 7 === 0) { - col = 0; - row++; - } - calendar[row][col] = curDate.clone().hour(hour).minute(minute).second(second); - curDate.hour(12); - - if (this.minDate && calendar[row][col].format('YYYY-MM-DD') == this.minDate.format('YYYY-MM-DD') && calendar[row][col].isBefore(this.minDate) && side == 'left') { - calendar[row][col] = this.minDate.clone(); - } - - if (this.maxDate && calendar[row][col].format('YYYY-MM-DD') == this.maxDate.format('YYYY-MM-DD') && calendar[row][col].isAfter(this.maxDate) && side == 'right') { - calendar[row][col] = this.maxDate.clone(); - } - - } - - //make the calendar object available to hoverDate/clickDate - if (side == 'left') { - this.leftCalendar.calendar = calendar; - } else { - this.rightCalendar.calendar = calendar; - } - - // - // Display the calendar - // - - var minDate = side == 'left' ? this.minDate : this.startDate; - var maxDate = this.maxDate; - var selected = side == 'left' ? this.startDate : this.endDate; - var arrow = this.locale.direction == 'ltr' ? {left: 'chevron-left', right: 'chevron-right'} : {left: 'chevron-right', right: 'chevron-left'}; - - var html = ''; - html += ''; - html += ''; - - // add empty cell for week number - if (this.showWeekNumbers || this.showISOWeekNumbers) - html += ''; - - if ((!minDate || minDate.isBefore(calendar.firstDay)) && (!this.linkedCalendars || side == 'left')) { - html += ''; - } else { - html += ''; - } - - var dateHtml = this.locale.monthNames[calendar[1][1].month()] + calendar[1][1].format(" YYYY"); - - if (this.showDropdowns) { - var currentMonth = calendar[1][1].month(); - var currentYear = calendar[1][1].year(); - var maxYear = (maxDate && maxDate.year()) || (this.maxYear); - var minYear = (minDate && minDate.year()) || (this.minYear); - var inMinYear = currentYear == minYear; - var inMaxYear = currentYear == maxYear; - - var monthHtml = '"; - - var yearHtml = ''; - - dateHtml = monthHtml + yearHtml; - } - - html += ''; - if ((!maxDate || maxDate.isAfter(calendar.lastDay)) && (!this.linkedCalendars || side == 'right' || this.singleDatePicker)) { - html += ''; - } else { - html += ''; - } - - html += ''; - html += ''; - - // add week number label - if (this.showWeekNumbers || this.showISOWeekNumbers) - html += ''; - - $.each(this.locale.daysOfWeek, function(index, dayOfWeek) { - html += ''; - }); - - html += ''; - html += ''; - html += ''; - - //adjust maxDate to reflect the maxSpan setting in order to - //grey out end dates beyond the maxSpan - if (this.endDate == null && this.maxSpan) { - var maxLimit = this.startDate.clone().add(this.maxSpan).endOf('day'); - if (!maxDate || maxLimit.isBefore(maxDate)) { - maxDate = maxLimit; - } - } - - for (var row = 0; row < 6; row++) { - html += ''; - - // add week number - if (this.showWeekNumbers) - html += ''; - else if (this.showISOWeekNumbers) - html += ''; - - for (var col = 0; col < 7; col++) { - - var classes = []; - - //highlight today's date - if (calendar[row][col].isSame(new Date(), "day")) - classes.push('today'); - - //highlight weekends - if (calendar[row][col].isoWeekday() > 5) - classes.push('weekend'); - - //grey out the dates in other months displayed at beginning and end of this calendar - if (calendar[row][col].month() != calendar[1][1].month()) - classes.push('off'); - - //don't allow selection of dates before the minimum date - if (this.minDate && calendar[row][col].isBefore(this.minDate, 'day')) - classes.push('off', 'disabled'); - - //don't allow selection of dates after the maximum date - if (maxDate && calendar[row][col].isAfter(maxDate, 'day')) - classes.push('off', 'disabled'); - - //don't allow selection of date if a custom function decides it's invalid - if (this.isInvalidDate(calendar[row][col])) - classes.push('off', 'disabled'); - - //highlight the currently selected start date - if (calendar[row][col].format('YYYY-MM-DD') == this.startDate.format('YYYY-MM-DD')) - classes.push('active', 'start-date'); - - //highlight the currently selected end date - if (this.endDate != null && calendar[row][col].format('YYYY-MM-DD') == this.endDate.format('YYYY-MM-DD')) - classes.push('active', 'end-date'); - - //highlight dates in-between the selected dates - if (this.endDate != null && calendar[row][col] > this.startDate && calendar[row][col] < this.endDate) - classes.push('in-range'); - - //apply custom classes for this date - var isCustom = this.isCustomDate(calendar[row][col]); - if (isCustom !== false) { - if (typeof isCustom === 'string') - classes.push(isCustom); - else - Array.prototype.push.apply(classes, isCustom); - } - - var cname = '', disabled = false; - for (var i = 0; i < classes.length; i++) { - cname += classes[i] + ' '; - if (classes[i] == 'disabled') - disabled = true; - } - if (!disabled) - cname += 'available'; - - html += ''; - - } - html += ''; - } - - html += ''; - html += '
    ' + dateHtml + '
    ' + this.locale.weekLabel + '' + dayOfWeek + '
    ' + calendar[row][0].week() + '' + calendar[row][0].isoWeek() + '' + calendar[row][col].date() + '
    '; - - this.container.find('.drp-calendar.' + side + ' .calendar-table').html(html); - - }, - - renderTimePicker: function(side) { - - // Don't bother updating the time picker if it's currently disabled - // because an end date hasn't been clicked yet - if (side == 'right' && !this.endDate) return; - - var html, selected, minDate, maxDate = this.maxDate; - - if (this.maxSpan && (!this.maxDate || this.startDate.clone().add(this.maxSpan).isAfter(this.maxDate))) - maxDate = this.startDate.clone().add(this.maxSpan); - - if (side == 'left') { - selected = this.startDate.clone(); - minDate = this.minDate; - } else if (side == 'right') { - selected = this.endDate.clone(); - minDate = this.startDate; - - //Preserve the time already selected - var timeSelector = this.container.find('.drp-calendar.right .calendar-time'); - if (timeSelector.html() != '') { - - selected.hour(selected.hour() || timeSelector.find('.hourselect option:selected').val()); - selected.minute(selected.minute() || timeSelector.find('.minuteselect option:selected').val()); - selected.second(selected.second() || timeSelector.find('.secondselect option:selected').val()); - - if (!this.timePicker24Hour) { - var ampm = timeSelector.find('.ampmselect option:selected').val(); - if (ampm === 'PM' && selected.hour() < 12) - selected.hour(selected.hour() + 12); - if (ampm === 'AM' && selected.hour() === 12) - selected.hour(0); - } - - } - - if (selected.isBefore(this.startDate)) - selected = this.startDate.clone(); - - if (maxDate && selected.isAfter(maxDate)) - selected = maxDate.clone(); - - } - - // - // hours - // - - html = ' '; - - // - // minutes - // - - html += ': '; - - // - // seconds - // - - if (this.timePickerSeconds) { - html += ': '; - } - - // - // AM/PM - // - - if (!this.timePicker24Hour) { - html += ''; - } - - this.container.find('.drp-calendar.' + side + ' .calendar-time').html(html); - - }, - - updateFormInputs: function() { - - if (this.singleDatePicker || (this.endDate && (this.startDate.isBefore(this.endDate) || this.startDate.isSame(this.endDate)))) { - this.container.find('button.applyBtn').removeAttr('disabled'); - } else { - this.container.find('button.applyBtn').attr('disabled', 'disabled'); - } - - }, - - move: function() { - var parentOffset = { top: 0, left: 0 }, - containerTop; - var parentRightEdge = $(window).width(); - if (!this.parentEl.is('body')) { - parentOffset = { - top: this.parentEl.offset().top - this.parentEl.scrollTop(), - left: this.parentEl.offset().left - this.parentEl.scrollLeft() - }; - parentRightEdge = this.parentEl[0].clientWidth + this.parentEl.offset().left; - } - - if (this.drops == 'up') - containerTop = this.element.offset().top - this.container.outerHeight() - parentOffset.top; - else - containerTop = this.element.offset().top + this.element.outerHeight() - parentOffset.top; - this.container[this.drops == 'up' ? 'addClass' : 'removeClass']('drop-up'); - - if (this.opens == 'left') { - this.container.css({ - top: containerTop, - right: parentRightEdge - this.element.offset().left - this.element.outerWidth(), - left: 'auto' - }); - if (this.container.offset().left < 0) { - this.container.css({ - right: 'auto', - left: 9 - }); - } - } else if (this.opens == 'center') { - this.container.css({ - top: containerTop, - left: this.element.offset().left - parentOffset.left + this.element.outerWidth() / 2 - - this.container.outerWidth() / 2, - right: 'auto' - }); - if (this.container.offset().left < 0) { - this.container.css({ - right: 'auto', - left: 9 - }); - } - } else { - this.container.css({ - top: containerTop, - left: this.element.offset().left - parentOffset.left, - right: 'auto' - }); - if (this.container.offset().left + this.container.outerWidth() > $(window).width()) { - this.container.css({ - left: 'auto', - right: 0 - }); - } - } - }, - - show: function(e) { - if (this.isShowing) return; - - // Create a click proxy that is private to this instance of datepicker, for unbinding - this._outsideClickProxy = $.proxy(function(e) { this.outsideClick(e); }, this); - - // Bind global datepicker mousedown for hiding and - $(document) - .on('mousedown.daterangepicker', this._outsideClickProxy) - // also support mobile devices - .on('touchend.daterangepicker', this._outsideClickProxy) - // also explicitly play nice with Bootstrap dropdowns, which stopPropagation when clicking them - .on('click.daterangepicker', '[data-toggle=dropdown]', this._outsideClickProxy) - // and also close when focus changes to outside the picker (eg. tabbing between controls) - .on('focusin.daterangepicker', this._outsideClickProxy); - - // Reposition the picker if the window is resized while it's open - $(window).on('resize.daterangepicker', $.proxy(function(e) { this.move(e); }, this)); - - this.oldStartDate = this.startDate.clone(); - this.oldEndDate = this.endDate.clone(); - this.previousRightTime = this.endDate.clone(); - - this.updateView(); - this.container.show(); - this.move(); - this.element.trigger('show.daterangepicker', this); - this.isShowing = true; - }, - - hide: function(e) { - if (!this.isShowing) return; - - //incomplete date selection, revert to last values - if (!this.endDate) { - this.startDate = this.oldStartDate.clone(); - this.endDate = this.oldEndDate.clone(); - } - - //if a new date range was selected, invoke the user callback function - if (!this.startDate.isSame(this.oldStartDate) || !this.endDate.isSame(this.oldEndDate)) - this.callback(this.startDate.clone(), this.endDate.clone(), this.chosenLabel); - - //if picker is attached to a text input, update it - this.updateElement(); - - $(document).off('.daterangepicker'); - $(window).off('.daterangepicker'); - this.container.hide(); - this.element.trigger('hide.daterangepicker', this); - this.isShowing = false; - }, - - toggle: function(e) { - if (this.isShowing) { - this.hide(); - } else { - this.show(); - } - }, - - outsideClick: function(e) { - var target = $(e.target); - // if the page is clicked anywhere except within the daterangerpicker/button - // itself then call this.hide() - if ( - // ie modal dialog fix - e.type == "focusin" || - target.closest(this.element).length || - target.closest(this.container).length || - target.closest('.calendar-table').length - ) return; - this.hide(); - this.element.trigger('outsideClick.daterangepicker', this); - }, - - showCalendars: function() { - this.container.addClass('show-calendar'); - this.move(); - this.element.trigger('showCalendar.daterangepicker', this); - }, - - hideCalendars: function() { - this.container.removeClass('show-calendar'); - this.element.trigger('hideCalendar.daterangepicker', this); - }, - - clickRange: function(e) { - var label = e.target.getAttribute('data-range-key'); - this.chosenLabel = label; - if (label == this.locale.customRangeLabel) { - this.showCalendars(); - } else { - var dates = this.ranges[label]; - this.startDate = dates[0]; - this.endDate = dates[1]; - - if (!this.timePicker) { - this.startDate.startOf('day'); - this.endDate.endOf('day'); - } - - if (!this.alwaysShowCalendars) - this.hideCalendars(); - this.clickApply(); - } - }, - - clickPrev: function(e) { - var cal = $(e.target).parents('.drp-calendar'); - if (cal.hasClass('left')) { - this.leftCalendar.month.subtract(1, 'month'); - if (this.linkedCalendars) - this.rightCalendar.month.subtract(1, 'month'); - } else { - this.rightCalendar.month.subtract(1, 'month'); - } - this.updateCalendars(); - }, - - clickNext: function(e) { - var cal = $(e.target).parents('.drp-calendar'); - if (cal.hasClass('left')) { - this.leftCalendar.month.add(1, 'month'); - } else { - this.rightCalendar.month.add(1, 'month'); - if (this.linkedCalendars) - this.leftCalendar.month.add(1, 'month'); - } - this.updateCalendars(); - }, - - hoverDate: function(e) { - - //ignore dates that can't be selected - if (!$(e.target).hasClass('available')) return; - - var title = $(e.target).attr('data-title'); - var row = title.substr(1, 1); - var col = title.substr(3, 1); - var cal = $(e.target).parents('.drp-calendar'); - var date = cal.hasClass('left') ? this.leftCalendar.calendar[row][col] : this.rightCalendar.calendar[row][col]; - - //highlight the dates between the start date and the date being hovered as a potential end date - var leftCalendar = this.leftCalendar; - var rightCalendar = this.rightCalendar; - var startDate = this.startDate; - if (!this.endDate) { - this.container.find('.drp-calendar tbody td').each(function(index, el) { - - //skip week numbers, only look at dates - if ($(el).hasClass('week')) return; - - var title = $(el).attr('data-title'); - var row = title.substr(1, 1); - var col = title.substr(3, 1); - var cal = $(el).parents('.drp-calendar'); - var dt = cal.hasClass('left') ? leftCalendar.calendar[row][col] : rightCalendar.calendar[row][col]; - - if ((dt.isAfter(startDate) && dt.isBefore(date)) || dt.isSame(date, 'day')) { - $(el).addClass('in-range'); - } else { - $(el).removeClass('in-range'); - } - - }); - } - - }, - - clickDate: function(e) { - - if (!$(e.target).hasClass('available')) return; - - var title = $(e.target).attr('data-title'); - var row = title.substr(1, 1); - var col = title.substr(3, 1); - var cal = $(e.target).parents('.drp-calendar'); - var date = cal.hasClass('left') ? this.leftCalendar.calendar[row][col] : this.rightCalendar.calendar[row][col]; - - // - // this function needs to do a few things: - // * alternate between selecting a start and end date for the range, - // * if the time picker is enabled, apply the hour/minute/second from the select boxes to the clicked date - // * if autoapply is enabled, and an end date was chosen, apply the selection - // * if single date picker mode, and time picker isn't enabled, apply the selection immediately - // * if one of the inputs above the calendars was focused, cancel that manual input - // - - if (this.endDate || date.isBefore(this.startDate, 'day')) { //picking start - if (this.timePicker) { - var hour = parseInt(this.container.find('.left .hourselect').val(), 10); - if (!this.timePicker24Hour) { - var ampm = this.container.find('.left .ampmselect').val(); - if (ampm === 'PM' && hour < 12) - hour += 12; - if (ampm === 'AM' && hour === 12) - hour = 0; - } - var minute = parseInt(this.container.find('.left .minuteselect').val(), 10); - var second = this.timePickerSeconds ? parseInt(this.container.find('.left .secondselect').val(), 10) : 0; - date = date.clone().hour(hour).minute(minute).second(second); - } - this.endDate = null; - this.setStartDate(date.clone()); - } else if (!this.endDate && date.isBefore(this.startDate)) { - //special case: clicking the same date for start/end, - //but the time of the end date is before the start date - this.setEndDate(this.startDate.clone()); - } else { // picking end - if (this.timePicker) { - var hour = parseInt(this.container.find('.right .hourselect').val(), 10); - if (!this.timePicker24Hour) { - var ampm = this.container.find('.right .ampmselect').val(); - if (ampm === 'PM' && hour < 12) - hour += 12; - if (ampm === 'AM' && hour === 12) - hour = 0; - } - var minute = parseInt(this.container.find('.right .minuteselect').val(), 10); - var second = this.timePickerSeconds ? parseInt(this.container.find('.right .secondselect').val(), 10) : 0; - date = date.clone().hour(hour).minute(minute).second(second); - } - this.setEndDate(date.clone()); - if (this.autoApply) { - this.calculateChosenLabel(); - this.clickApply(); - } - } - - if (this.singleDatePicker) { - this.setEndDate(this.startDate); - if (!this.timePicker) - this.clickApply(); - } - - this.updateView(); - - //This is to cancel the blur event handler if the mouse was in one of the inputs - e.stopPropagation(); - - }, - - calculateChosenLabel: function () { - var customRange = true; - var i = 0; - for (var range in this.ranges) { - if (this.timePicker) { - var format = this.timePickerSeconds ? "YYYY-MM-DD hh:mm:ss" : "YYYY-MM-DD hh:mm"; - //ignore times when comparing dates if time picker seconds is not enabled - if (this.startDate.format(format) == this.ranges[range][0].format(format) && this.endDate.format(format) == this.ranges[range][1].format(format)) { - customRange = false; - this.chosenLabel = this.container.find('.ranges li:eq(' + i + ')').addClass('active').attr('data-range-key'); - break; - } - } else { - //ignore times when comparing dates if time picker is not enabled - if (this.startDate.format('YYYY-MM-DD') == this.ranges[range][0].format('YYYY-MM-DD') && this.endDate.format('YYYY-MM-DD') == this.ranges[range][1].format('YYYY-MM-DD')) { - customRange = false; - this.chosenLabel = this.container.find('.ranges li:eq(' + i + ')').addClass('active').attr('data-range-key'); - break; - } - } - i++; - } - if (customRange) { - if (this.showCustomRangeLabel) { - this.chosenLabel = this.container.find('.ranges li:last').addClass('active').attr('data-range-key'); - } else { - this.chosenLabel = null; - } - this.showCalendars(); - } - }, - - clickApply: function(e) { - this.hide(); - this.element.trigger('apply.daterangepicker', this); - }, - - clickCancel: function(e) { - this.startDate = this.oldStartDate; - this.endDate = this.oldEndDate; - this.hide(); - this.element.trigger('cancel.daterangepicker', this); - }, - - monthOrYearChanged: function(e) { - var isLeft = $(e.target).closest('.drp-calendar').hasClass('left'), - leftOrRight = isLeft ? 'left' : 'right', - cal = this.container.find('.drp-calendar.'+leftOrRight); - - // Month must be Number for new moment versions - var month = parseInt(cal.find('.monthselect').val(), 10); - var year = cal.find('.yearselect').val(); - - if (!isLeft) { - if (year < this.startDate.year() || (year == this.startDate.year() && month < this.startDate.month())) { - month = this.startDate.month(); - year = this.startDate.year(); - } - } - - if (this.minDate) { - if (year < this.minDate.year() || (year == this.minDate.year() && month < this.minDate.month())) { - month = this.minDate.month(); - year = this.minDate.year(); - } - } - - if (this.maxDate) { - if (year > this.maxDate.year() || (year == this.maxDate.year() && month > this.maxDate.month())) { - month = this.maxDate.month(); - year = this.maxDate.year(); - } - } - - if (isLeft) { - this.leftCalendar.month.month(month).year(year); - if (this.linkedCalendars) - this.rightCalendar.month = this.leftCalendar.month.clone().add(1, 'month'); - } else { - this.rightCalendar.month.month(month).year(year); - if (this.linkedCalendars) - this.leftCalendar.month = this.rightCalendar.month.clone().subtract(1, 'month'); - } - this.updateCalendars(); - }, - - timeChanged: function(e) { - - var cal = $(e.target).closest('.drp-calendar'), - isLeft = cal.hasClass('left'); - - var hour = parseInt(cal.find('.hourselect').val(), 10); - var minute = parseInt(cal.find('.minuteselect').val(), 10); - var second = this.timePickerSeconds ? parseInt(cal.find('.secondselect').val(), 10) : 0; - - if (!this.timePicker24Hour) { - var ampm = cal.find('.ampmselect').val(); - if (ampm === 'PM' && hour < 12) - hour += 12; - if (ampm === 'AM' && hour === 12) - hour = 0; - } - - if (isLeft) { - var start = this.startDate.clone(); - start.hour(hour); - start.minute(minute); - start.second(second); - this.setStartDate(start); - if (this.singleDatePicker) { - this.endDate = this.startDate.clone(); - } else if (this.endDate && this.endDate.format('YYYY-MM-DD') == start.format('YYYY-MM-DD') && this.endDate.isBefore(start)) { - this.setEndDate(start.clone()); - } - } else if (this.endDate) { - var end = this.endDate.clone(); - end.hour(hour); - end.minute(minute); - end.second(second); - this.setEndDate(end); - } - - //update the calendars so all clickable dates reflect the new time component - this.updateCalendars(); - - //update the form inputs above the calendars with the new time - this.updateFormInputs(); - - //re-render the time pickers because changing one selection can affect what's enabled in another - this.renderTimePicker('left'); - this.renderTimePicker('right'); - - }, - - elementChanged: function() { - if (!this.element.is('input')) return; - if (!this.element.val().length) return; - - var dateString = this.element.val().split(this.locale.separator), - start = null, - end = null; - - if (dateString.length === 2) { - start = moment(dateString[0], this.locale.format); - end = moment(dateString[1], this.locale.format); - } - - if (this.singleDatePicker || start === null || end === null) { - start = moment(this.element.val(), this.locale.format); - end = start; - } - - if (!start.isValid() || !end.isValid()) return; - - this.setStartDate(start); - this.setEndDate(end); - this.updateView(); - }, - - keydown: function(e) { - //hide on tab or enter - if ((e.keyCode === 9) || (e.keyCode === 13)) { - this.hide(); - } - - //hide on esc and prevent propagation - if (e.keyCode === 27) { - e.preventDefault(); - e.stopPropagation(); - - this.hide(); - } - }, - - updateElement: function() { - if (this.element.is('input') && this.autoUpdateInput) { - var newValue = this.startDate.format(this.locale.format); - if (!this.singleDatePicker) { - newValue += this.locale.separator + this.endDate.format(this.locale.format); - } - if (newValue !== this.element.val()) { - this.element.val(newValue).trigger('change'); - } - } - }, - - remove: function() { - this.container.remove(); - this.element.off('.daterangepicker'); - this.element.removeData(); - } - - }; - - $.fn.daterangepicker = function(options, callback) { - var implementOptions = $.extend(true, {}, $.fn.daterangepicker.defaultOptions, options); - this.each(function() { - var el = $(this); - if (el.data('daterangepicker')) - el.data('daterangepicker').remove(); - el.data('daterangepicker', new DateRangePicker(el, implementOptions, callback)); - }); - return this; - }; - - return DateRangePicker; - -})); - - -/***/ }), - -/***/ "./node_modules/fullcalendar/dist/fullcalendar.js": -/*!********************************************************!*\ - !*** ./node_modules/fullcalendar/dist/fullcalendar.js ***! - \********************************************************/ -/*! dynamic exports provided */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -/*! - * FullCalendar v3.9.0 - * Docs & License: https://fullcalendar.io/ - * (c) 2018 Adam Shaw - */ -(function webpackUniversalModuleDefinition(root, factory) { - if(true) - module.exports = factory(__webpack_require__(/*! moment */ "./node_modules/moment/moment.js"), __webpack_require__(/*! jquery */ "./node_modules/jquery/dist/jquery.js")); - else if(typeof define === 'function' && define.amd) - define(["moment", "jquery"], factory); - else if(typeof exports === 'object') - exports["FullCalendar"] = factory(require("moment"), require("jquery")); - else - root["FullCalendar"] = factory(root["moment"], root["jQuery"]); -})(typeof self !== 'undefined' ? self : this, function(__WEBPACK_EXTERNAL_MODULE_0__, __WEBPACK_EXTERNAL_MODULE_3__) { -return /******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) { -/******/ return installedModules[moduleId].exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ i: moduleId, -/******/ l: false, -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); -/******/ -/******/ // Flag the module as loaded -/******/ module.l = true; -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/******/ -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; -/******/ -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; -/******/ -/******/ // define getter function for harmony exports -/******/ __webpack_require__.d = function(exports, name, getter) { -/******/ if(!__webpack_require__.o(exports, name)) { -/******/ Object.defineProperty(exports, name, { -/******/ configurable: false, -/******/ enumerable: true, -/******/ get: getter -/******/ }); -/******/ } -/******/ }; -/******/ -/******/ // getDefaultExport function for compatibility with non-harmony modules -/******/ __webpack_require__.n = function(module) { -/******/ var getter = module && module.__esModule ? -/******/ function getDefault() { return module['default']; } : -/******/ function getModuleExports() { return module; }; -/******/ __webpack_require__.d(getter, 'a', getter); -/******/ return getter; -/******/ }; -/******/ -/******/ // Object.prototype.hasOwnProperty.call -/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; -/******/ -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; -/******/ -/******/ // Load entry module and return exports -/******/ return __webpack_require__(__webpack_require__.s = 236); -/******/ }) -/************************************************************************/ -/******/ ([ -/* 0 */ -/***/ (function(module, exports) { - -module.exports = __WEBPACK_EXTERNAL_MODULE_0__; - -/***/ }), -/* 1 */, -/* 2 */ -/***/ (function(module, exports) { - -/* -derived from: -https://github.com/Microsoft/tslib/blob/v1.6.0/tslib.js - -only include the helpers we need, to keep down filesize -*/ -var extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) - if (b.hasOwnProperty(p)) - d[p] = b[p]; }; -exports.__extends = function (d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); -}; - - -/***/ }), -/* 3 */ -/***/ (function(module, exports) { - -module.exports = __WEBPACK_EXTERNAL_MODULE_3__; - -/***/ }), -/* 4 */ -/***/ (function(module, exports, __webpack_require__) { - -Object.defineProperty(exports, "__esModule", { value: true }); -var moment = __webpack_require__(0); -var $ = __webpack_require__(3); -/* FullCalendar-specific DOM Utilities -----------------------------------------------------------------------------------------------------------------------*/ -// Given the scrollbar widths of some other container, create borders/margins on rowEls in order to match the left -// and right space that was offset by the scrollbars. A 1-pixel border first, then margin beyond that. -function compensateScroll(rowEls, scrollbarWidths) { - if (scrollbarWidths.left) { - rowEls.css({ - 'border-left-width': 1, - 'margin-left': scrollbarWidths.left - 1 - }); - } - if (scrollbarWidths.right) { - rowEls.css({ - 'border-right-width': 1, - 'margin-right': scrollbarWidths.right - 1 - }); - } -} -exports.compensateScroll = compensateScroll; -// Undoes compensateScroll and restores all borders/margins -function uncompensateScroll(rowEls) { - rowEls.css({ - 'margin-left': '', - 'margin-right': '', - 'border-left-width': '', - 'border-right-width': '' - }); -} -exports.uncompensateScroll = uncompensateScroll; -// Make the mouse cursor express that an event is not allowed in the current area -function disableCursor() { - $('body').addClass('fc-not-allowed'); -} -exports.disableCursor = disableCursor; -// Returns the mouse cursor to its original look -function enableCursor() { - $('body').removeClass('fc-not-allowed'); -} -exports.enableCursor = enableCursor; -// Given a total available height to fill, have `els` (essentially child rows) expand to accomodate. -// By default, all elements that are shorter than the recommended height are expanded uniformly, not considering -// any other els that are already too tall. if `shouldRedistribute` is on, it considers these tall rows and -// reduces the available height. -function distributeHeight(els, availableHeight, shouldRedistribute) { - // *FLOORING NOTE*: we floor in certain places because zoom can give inaccurate floating-point dimensions, - // and it is better to be shorter than taller, to avoid creating unnecessary scrollbars. - var minOffset1 = Math.floor(availableHeight / els.length); // for non-last element - var minOffset2 = Math.floor(availableHeight - minOffset1 * (els.length - 1)); // for last element *FLOORING NOTE* - var flexEls = []; // elements that are allowed to expand. array of DOM nodes - var flexOffsets = []; // amount of vertical space it takes up - var flexHeights = []; // actual css height - var usedHeight = 0; - undistributeHeight(els); // give all elements their natural height - // find elements that are below the recommended height (expandable). - // important to query for heights in a single first pass (to avoid reflow oscillation). - els.each(function (i, el) { - var minOffset = i === els.length - 1 ? minOffset2 : minOffset1; - var naturalOffset = $(el).outerHeight(true); - if (naturalOffset < minOffset) { - flexEls.push(el); - flexOffsets.push(naturalOffset); - flexHeights.push($(el).height()); - } - else { - // this element stretches past recommended height (non-expandable). mark the space as occupied. - usedHeight += naturalOffset; - } - }); - // readjust the recommended height to only consider the height available to non-maxed-out rows. - if (shouldRedistribute) { - availableHeight -= usedHeight; - minOffset1 = Math.floor(availableHeight / flexEls.length); - minOffset2 = Math.floor(availableHeight - minOffset1 * (flexEls.length - 1)); // *FLOORING NOTE* - } - // assign heights to all expandable elements - $(flexEls).each(function (i, el) { - var minOffset = i === flexEls.length - 1 ? minOffset2 : minOffset1; - var naturalOffset = flexOffsets[i]; - var naturalHeight = flexHeights[i]; - var newHeight = minOffset - (naturalOffset - naturalHeight); // subtract the margin/padding - if (naturalOffset < minOffset) { - $(el).height(newHeight); - } - }); -} -exports.distributeHeight = distributeHeight; -// Undoes distrubuteHeight, restoring all els to their natural height -function undistributeHeight(els) { - els.height(''); -} -exports.undistributeHeight = undistributeHeight; -// Given `els`, a jQuery set of cells, find the cell with the largest natural width and set the widths of all the -// cells to be that width. -// PREREQUISITE: if you want a cell to take up width, it needs to have a single inner element w/ display:inline -function matchCellWidths(els) { - var maxInnerWidth = 0; - els.find('> *').each(function (i, innerEl) { - var innerWidth = $(innerEl).outerWidth(); - if (innerWidth > maxInnerWidth) { - maxInnerWidth = innerWidth; - } - }); - maxInnerWidth++; // sometimes not accurate of width the text needs to stay on one line. insurance - els.width(maxInnerWidth); - return maxInnerWidth; -} -exports.matchCellWidths = matchCellWidths; -// Given one element that resides inside another, -// Subtracts the height of the inner element from the outer element. -function subtractInnerElHeight(outerEl, innerEl) { - var both = outerEl.add(innerEl); - var diff; - // effin' IE8/9/10/11 sometimes returns 0 for dimensions. this weird hack was the only thing that worked - both.css({ - position: 'relative', - left: -1 // ensure reflow in case the el was already relative. negative is less likely to cause new scroll - }); - diff = outerEl.outerHeight() - innerEl.outerHeight(); // grab the dimensions - both.css({ position: '', left: '' }); // undo hack - return diff; -} -exports.subtractInnerElHeight = subtractInnerElHeight; -/* Element Geom Utilities -----------------------------------------------------------------------------------------------------------------------*/ -// borrowed from https://github.com/jquery/jquery-ui/blob/1.11.0/ui/core.js#L51 -function getScrollParent(el) { - var position = el.css('position'); - var scrollParent = el.parents().filter(function () { - var parent = $(this); - return (/(auto|scroll)/).test(parent.css('overflow') + parent.css('overflow-y') + parent.css('overflow-x')); - }).eq(0); - return position === 'fixed' || !scrollParent.length ? $(el[0].ownerDocument || document) : scrollParent; -} -exports.getScrollParent = getScrollParent; -// Queries the outer bounding area of a jQuery element. -// Returns a rectangle with absolute coordinates: left, right (exclusive), top, bottom (exclusive). -// Origin is optional. -function getOuterRect(el, origin) { - var offset = el.offset(); - var left = offset.left - (origin ? origin.left : 0); - var top = offset.top - (origin ? origin.top : 0); - return { - left: left, - right: left + el.outerWidth(), - top: top, - bottom: top + el.outerHeight() - }; -} -exports.getOuterRect = getOuterRect; -// Queries the area within the margin/border/scrollbars of a jQuery element. Does not go within the padding. -// Returns a rectangle with absolute coordinates: left, right (exclusive), top, bottom (exclusive). -// Origin is optional. -// WARNING: given element can't have borders -// NOTE: should use clientLeft/clientTop, but very unreliable cross-browser. -function getClientRect(el, origin) { - var offset = el.offset(); - var scrollbarWidths = getScrollbarWidths(el); - var left = offset.left + getCssFloat(el, 'border-left-width') + scrollbarWidths.left - (origin ? origin.left : 0); - var top = offset.top + getCssFloat(el, 'border-top-width') + scrollbarWidths.top - (origin ? origin.top : 0); - return { - left: left, - right: left + el[0].clientWidth, - top: top, - bottom: top + el[0].clientHeight // clientHeight includes padding but NOT scrollbars - }; -} -exports.getClientRect = getClientRect; -// Queries the area within the margin/border/padding of a jQuery element. Assumed not to have scrollbars. -// Returns a rectangle with absolute coordinates: left, right (exclusive), top, bottom (exclusive). -// Origin is optional. -function getContentRect(el, origin) { - var offset = el.offset(); // just outside of border, margin not included - var left = offset.left + getCssFloat(el, 'border-left-width') + getCssFloat(el, 'padding-left') - - (origin ? origin.left : 0); - var top = offset.top + getCssFloat(el, 'border-top-width') + getCssFloat(el, 'padding-top') - - (origin ? origin.top : 0); - return { - left: left, - right: left + el.width(), - top: top, - bottom: top + el.height() - }; -} -exports.getContentRect = getContentRect; -// Returns the computed left/right/top/bottom scrollbar widths for the given jQuery element. -// WARNING: given element can't have borders (which will cause offsetWidth/offsetHeight to be larger). -// NOTE: should use clientLeft/clientTop, but very unreliable cross-browser. -function getScrollbarWidths(el) { - var leftRightWidth = el[0].offsetWidth - el[0].clientWidth; - var bottomWidth = el[0].offsetHeight - el[0].clientHeight; - var widths; - leftRightWidth = sanitizeScrollbarWidth(leftRightWidth); - bottomWidth = sanitizeScrollbarWidth(bottomWidth); - widths = { left: 0, right: 0, top: 0, bottom: bottomWidth }; - if (getIsLeftRtlScrollbars() && el.css('direction') === 'rtl') { - widths.left = leftRightWidth; - } - else { - widths.right = leftRightWidth; - } - return widths; -} -exports.getScrollbarWidths = getScrollbarWidths; -// The scrollbar width computations in getScrollbarWidths are sometimes flawed when it comes to -// retina displays, rounding, and IE11. Massage them into a usable value. -function sanitizeScrollbarWidth(width) { - width = Math.max(0, width); // no negatives - width = Math.round(width); - return width; -} -// Logic for determining if, when the element is right-to-left, the scrollbar appears on the left side -var _isLeftRtlScrollbars = null; -function getIsLeftRtlScrollbars() { - if (_isLeftRtlScrollbars === null) { - _isLeftRtlScrollbars = computeIsLeftRtlScrollbars(); - } - return _isLeftRtlScrollbars; -} -function computeIsLeftRtlScrollbars() { - var el = $('
    ') - .css({ - position: 'absolute', - top: -1000, - left: 0, - border: 0, - padding: 0, - overflow: 'scroll', - direction: 'rtl' - }) - .appendTo('body'); - var innerEl = el.children(); - var res = innerEl.offset().left > el.offset().left; // is the inner div shifted to accommodate a left scrollbar? - el.remove(); - return res; -} -// Retrieves a jQuery element's computed CSS value as a floating-point number. -// If the queried value is non-numeric (ex: IE can return "medium" for border width), will just return zero. -function getCssFloat(el, prop) { - return parseFloat(el.css(prop)) || 0; -} -/* Mouse / Touch Utilities -----------------------------------------------------------------------------------------------------------------------*/ -// Returns a boolean whether this was a left mouse click and no ctrl key (which means right click on Mac) -function isPrimaryMouseButton(ev) { - return ev.which === 1 && !ev.ctrlKey; -} -exports.isPrimaryMouseButton = isPrimaryMouseButton; -function getEvX(ev) { - var touches = ev.originalEvent.touches; - // on mobile FF, pageX for touch events is present, but incorrect, - // so, look at touch coordinates first. - if (touches && touches.length) { - return touches[0].pageX; - } - return ev.pageX; -} -exports.getEvX = getEvX; -function getEvY(ev) { - var touches = ev.originalEvent.touches; - // on mobile FF, pageX for touch events is present, but incorrect, - // so, look at touch coordinates first. - if (touches && touches.length) { - return touches[0].pageY; - } - return ev.pageY; -} -exports.getEvY = getEvY; -function getEvIsTouch(ev) { - return /^touch/.test(ev.type); -} -exports.getEvIsTouch = getEvIsTouch; -function preventSelection(el) { - el.addClass('fc-unselectable') - .on('selectstart', preventDefault); -} -exports.preventSelection = preventSelection; -function allowSelection(el) { - el.removeClass('fc-unselectable') - .off('selectstart', preventDefault); -} -exports.allowSelection = allowSelection; -// Stops a mouse/touch event from doing it's native browser action -function preventDefault(ev) { - ev.preventDefault(); -} -exports.preventDefault = preventDefault; -/* General Geometry Utils -----------------------------------------------------------------------------------------------------------------------*/ -// Returns a new rectangle that is the intersection of the two rectangles. If they don't intersect, returns false -function intersectRects(rect1, rect2) { - var res = { - left: Math.max(rect1.left, rect2.left), - right: Math.min(rect1.right, rect2.right), - top: Math.max(rect1.top, rect2.top), - bottom: Math.min(rect1.bottom, rect2.bottom) - }; - if (res.left < res.right && res.top < res.bottom) { - return res; - } - return false; -} -exports.intersectRects = intersectRects; -// Returns a new point that will have been moved to reside within the given rectangle -function constrainPoint(point, rect) { - return { - left: Math.min(Math.max(point.left, rect.left), rect.right), - top: Math.min(Math.max(point.top, rect.top), rect.bottom) - }; -} -exports.constrainPoint = constrainPoint; -// Returns a point that is the center of the given rectangle -function getRectCenter(rect) { - return { - left: (rect.left + rect.right) / 2, - top: (rect.top + rect.bottom) / 2 - }; -} -exports.getRectCenter = getRectCenter; -// Subtracts point2's coordinates from point1's coordinates, returning a delta -function diffPoints(point1, point2) { - return { - left: point1.left - point2.left, - top: point1.top - point2.top - }; -} -exports.diffPoints = diffPoints; -/* Object Ordering by Field -----------------------------------------------------------------------------------------------------------------------*/ -function parseFieldSpecs(input) { - var specs = []; - var tokens = []; - var i; - var token; - if (typeof input === 'string') { - tokens = input.split(/\s*,\s*/); - } - else if (typeof input === 'function') { - tokens = [input]; - } - else if ($.isArray(input)) { - tokens = input; - } - for (i = 0; i < tokens.length; i++) { - token = tokens[i]; - if (typeof token === 'string') { - specs.push(token.charAt(0) === '-' ? - { field: token.substring(1), order: -1 } : - { field: token, order: 1 }); - } - else if (typeof token === 'function') { - specs.push({ func: token }); - } - } - return specs; -} -exports.parseFieldSpecs = parseFieldSpecs; -function compareByFieldSpecs(obj1, obj2, fieldSpecs, obj1fallback, obj2fallback) { - var i; - var cmp; - for (i = 0; i < fieldSpecs.length; i++) { - cmp = compareByFieldSpec(obj1, obj2, fieldSpecs[i], obj1fallback, obj2fallback); - if (cmp) { - return cmp; - } - } - return 0; -} -exports.compareByFieldSpecs = compareByFieldSpecs; -function compareByFieldSpec(obj1, obj2, fieldSpec, obj1fallback, obj2fallback) { - if (fieldSpec.func) { - return fieldSpec.func(obj1, obj2); - } - var val1 = obj1[fieldSpec.field]; - var val2 = obj2[fieldSpec.field]; - if (val1 == null && obj1fallback) { - val1 = obj1fallback[fieldSpec.field]; - } - if (val2 == null && obj2fallback) { - val2 = obj2fallback[fieldSpec.field]; - } - return flexibleCompare(val1, val2) * (fieldSpec.order || 1); -} -exports.compareByFieldSpec = compareByFieldSpec; -function flexibleCompare(a, b) { - if (!a && !b) { - return 0; - } - if (b == null) { - return -1; - } - if (a == null) { - return 1; - } - if ($.type(a) === 'string' || $.type(b) === 'string') { - return String(a).localeCompare(String(b)); - } - return a - b; -} -exports.flexibleCompare = flexibleCompare; -/* Date Utilities -----------------------------------------------------------------------------------------------------------------------*/ -exports.dayIDs = ['sun', 'mon', 'tue', 'wed', 'thu', 'fri', 'sat']; -exports.unitsDesc = ['year', 'month', 'week', 'day', 'hour', 'minute', 'second', 'millisecond']; // descending -// Diffs the two moments into a Duration where full-days are recorded first, then the remaining time. -// Moments will have their timezones normalized. -function diffDayTime(a, b) { - return moment.duration({ - days: a.clone().stripTime().diff(b.clone().stripTime(), 'days'), - ms: a.time() - b.time() // time-of-day from day start. disregards timezone - }); -} -exports.diffDayTime = diffDayTime; -// Diffs the two moments via their start-of-day (regardless of timezone). Produces whole-day durations. -function diffDay(a, b) { - return moment.duration({ - days: a.clone().stripTime().diff(b.clone().stripTime(), 'days') - }); -} -exports.diffDay = diffDay; -// Diffs two moments, producing a duration, made of a whole-unit-increment of the given unit. Uses rounding. -function diffByUnit(a, b, unit) { - return moment.duration(Math.round(a.diff(b, unit, true)), // returnFloat=true - unit); -} -exports.diffByUnit = diffByUnit; -// Computes the unit name of the largest whole-unit period of time. -// For example, 48 hours will be "days" whereas 49 hours will be "hours". -// Accepts start/end, a range object, or an original duration object. -function computeGreatestUnit(start, end) { - var i; - var unit; - var val; - for (i = 0; i < exports.unitsDesc.length; i++) { - unit = exports.unitsDesc[i]; - val = computeRangeAs(unit, start, end); - if (val >= 1 && isInt(val)) { - break; - } - } - return unit; // will be "milliseconds" if nothing else matches -} -exports.computeGreatestUnit = computeGreatestUnit; -// like computeGreatestUnit, but has special abilities to interpret the source input for clues -function computeDurationGreatestUnit(duration, durationInput) { - var unit = computeGreatestUnit(duration); - // prevent days:7 from being interpreted as a week - if (unit === 'week' && typeof durationInput === 'object' && durationInput.days) { - unit = 'day'; - } - return unit; -} -exports.computeDurationGreatestUnit = computeDurationGreatestUnit; -// Computes the number of units (like "hours") in the given range. -// Range can be a {start,end} object, separate start/end args, or a Duration. -// Results are based on Moment's .as() and .diff() methods, so results can depend on internal handling -// of month-diffing logic (which tends to vary from version to version). -function computeRangeAs(unit, start, end) { - if (end != null) { - return end.diff(start, unit, true); - } - else if (moment.isDuration(start)) { - return start.as(unit); - } - else { - return start.end.diff(start.start, unit, true); - } -} -// Intelligently divides a range (specified by a start/end params) by a duration -function divideRangeByDuration(start, end, dur) { - var months; - if (durationHasTime(dur)) { - return (end - start) / dur; - } - months = dur.asMonths(); - if (Math.abs(months) >= 1 && isInt(months)) { - return end.diff(start, 'months', true) / months; - } - return end.diff(start, 'days', true) / dur.asDays(); -} -exports.divideRangeByDuration = divideRangeByDuration; -// Intelligently divides one duration by another -function divideDurationByDuration(dur1, dur2) { - var months1; - var months2; - if (durationHasTime(dur1) || durationHasTime(dur2)) { - return dur1 / dur2; - } - months1 = dur1.asMonths(); - months2 = dur2.asMonths(); - if (Math.abs(months1) >= 1 && isInt(months1) && - Math.abs(months2) >= 1 && isInt(months2)) { - return months1 / months2; - } - return dur1.asDays() / dur2.asDays(); -} -exports.divideDurationByDuration = divideDurationByDuration; -// Intelligently multiplies a duration by a number -function multiplyDuration(dur, n) { - var months; - if (durationHasTime(dur)) { - return moment.duration(dur * n); - } - months = dur.asMonths(); - if (Math.abs(months) >= 1 && isInt(months)) { - return moment.duration({ months: months * n }); - } - return moment.duration({ days: dur.asDays() * n }); -} -exports.multiplyDuration = multiplyDuration; -// Returns a boolean about whether the given duration has any time parts (hours/minutes/seconds/ms) -function durationHasTime(dur) { - return Boolean(dur.hours() || dur.minutes() || dur.seconds() || dur.milliseconds()); -} -exports.durationHasTime = durationHasTime; -function isNativeDate(input) { - return Object.prototype.toString.call(input) === '[object Date]' || input instanceof Date; -} -exports.isNativeDate = isNativeDate; -// Returns a boolean about whether the given input is a time string, like "06:40:00" or "06:00" -function isTimeString(str) { - return typeof str === 'string' && - /^\d+\:\d+(?:\:\d+\.?(?:\d{3})?)?$/.test(str); -} -exports.isTimeString = isTimeString; -/* Logging and Debug -----------------------------------------------------------------------------------------------------------------------*/ -function log() { - var args = []; - for (var _i = 0; _i < arguments.length; _i++) { - args[_i] = arguments[_i]; - } - var console = window.console; - if (console && console.log) { - return console.log.apply(console, args); - } -} -exports.log = log; -function warn() { - var args = []; - for (var _i = 0; _i < arguments.length; _i++) { - args[_i] = arguments[_i]; - } - var console = window.console; - if (console && console.warn) { - return console.warn.apply(console, args); - } - else { - return log.apply(null, args); - } -} -exports.warn = warn; -/* General Utilities -----------------------------------------------------------------------------------------------------------------------*/ -var hasOwnPropMethod = {}.hasOwnProperty; -// Merges an array of objects into a single object. -// The second argument allows for an array of property names who's object values will be merged together. -function mergeProps(propObjs, complexProps) { - var dest = {}; - var i; - var name; - var complexObjs; - var j; - var val; - var props; - if (complexProps) { - for (i = 0; i < complexProps.length; i++) { - name = complexProps[i]; - complexObjs = []; - // collect the trailing object values, stopping when a non-object is discovered - for (j = propObjs.length - 1; j >= 0; j--) { - val = propObjs[j][name]; - if (typeof val === 'object') { - complexObjs.unshift(val); - } - else if (val !== undefined) { - dest[name] = val; // if there were no objects, this value will be used - break; - } - } - // if the trailing values were objects, use the merged value - if (complexObjs.length) { - dest[name] = mergeProps(complexObjs); - } - } - } - // copy values into the destination, going from last to first - for (i = propObjs.length - 1; i >= 0; i--) { - props = propObjs[i]; - for (name in props) { - if (!(name in dest)) { - dest[name] = props[name]; - } - } - } - return dest; -} -exports.mergeProps = mergeProps; -function copyOwnProps(src, dest) { - for (var name_1 in src) { - if (hasOwnProp(src, name_1)) { - dest[name_1] = src[name_1]; - } - } -} -exports.copyOwnProps = copyOwnProps; -function hasOwnProp(obj, name) { - return hasOwnPropMethod.call(obj, name); -} -exports.hasOwnProp = hasOwnProp; -function applyAll(functions, thisObj, args) { - if ($.isFunction(functions)) { - functions = [functions]; - } - if (functions) { - var i = void 0; - var ret = void 0; - for (i = 0; i < functions.length; i++) { - ret = functions[i].apply(thisObj, args) || ret; - } - return ret; - } -} -exports.applyAll = applyAll; -function removeMatching(array, testFunc) { - var removeCnt = 0; - var i = 0; - while (i < array.length) { - if (testFunc(array[i])) { - array.splice(i, 1); - removeCnt++; - } - else { - i++; - } - } - return removeCnt; -} -exports.removeMatching = removeMatching; -function removeExact(array, exactVal) { - var removeCnt = 0; - var i = 0; - while (i < array.length) { - if (array[i] === exactVal) { - array.splice(i, 1); - removeCnt++; - } - else { - i++; - } - } - return removeCnt; -} -exports.removeExact = removeExact; -function isArraysEqual(a0, a1) { - var len = a0.length; - var i; - if (len == null || len !== a1.length) { - return false; - } - for (i = 0; i < len; i++) { - if (a0[i] !== a1[i]) { - return false; - } - } - return true; -} -exports.isArraysEqual = isArraysEqual; -function firstDefined() { - var args = []; - for (var _i = 0; _i < arguments.length; _i++) { - args[_i] = arguments[_i]; - } - for (var i = 0; i < args.length; i++) { - if (args[i] !== undefined) { - return args[i]; - } - } -} -exports.firstDefined = firstDefined; -function htmlEscape(s) { - return (s + '').replace(/&/g, '&') - .replace(//g, '>') - .replace(/'/g, ''') - .replace(/"/g, '"') - .replace(/\n/g, '
    '); -} -exports.htmlEscape = htmlEscape; -function stripHtmlEntities(text) { - return text.replace(/&.*?;/g, ''); -} -exports.stripHtmlEntities = stripHtmlEntities; -// Given a hash of CSS properties, returns a string of CSS. -// Uses property names as-is (no camel-case conversion). Will not make statements for null/undefined values. -function cssToStr(cssProps) { - var statements = []; - $.each(cssProps, function (name, val) { - if (val != null) { - statements.push(name + ':' + val); - } - }); - return statements.join(';'); -} -exports.cssToStr = cssToStr; -// Given an object hash of HTML attribute names to values, -// generates a string that can be injected between < > in HTML -function attrsToStr(attrs) { - var parts = []; - $.each(attrs, function (name, val) { - if (val != null) { - parts.push(name + '="' + htmlEscape(val) + '"'); - } - }); - return parts.join(' '); -} -exports.attrsToStr = attrsToStr; -function capitaliseFirstLetter(str) { - return str.charAt(0).toUpperCase() + str.slice(1); -} -exports.capitaliseFirstLetter = capitaliseFirstLetter; -function compareNumbers(a, b) { - return a - b; -} -exports.compareNumbers = compareNumbers; -function isInt(n) { - return n % 1 === 0; -} -exports.isInt = isInt; -// Returns a method bound to the given object context. -// Just like one of the jQuery.proxy signatures, but without the undesired behavior of treating the same method with -// different contexts as identical when binding/unbinding events. -function proxy(obj, methodName) { - var method = obj[methodName]; - return function () { - return method.apply(obj, arguments); - }; -} -exports.proxy = proxy; -// Returns a function, that, as long as it continues to be invoked, will not -// be triggered. The function will be called after it stops being called for -// N milliseconds. If `immediate` is passed, trigger the function on the -// leading edge, instead of the trailing. -// https://github.com/jashkenas/underscore/blob/1.6.0/underscore.js#L714 -function debounce(func, wait, immediate) { - if (immediate === void 0) { immediate = false; } - var timeout; - var args; - var context; - var timestamp; - var result; - var later = function () { - var last = +new Date() - timestamp; - if (last < wait) { - timeout = setTimeout(later, wait - last); - } - else { - timeout = null; - if (!immediate) { - result = func.apply(context, args); - context = args = null; - } - } - }; - return function () { - context = this; - args = arguments; - timestamp = +new Date(); - var callNow = immediate && !timeout; - if (!timeout) { - timeout = setTimeout(later, wait); - } - if (callNow) { - result = func.apply(context, args); - context = args = null; - } - return result; - }; -} -exports.debounce = debounce; - - -/***/ }), -/* 5 */ -/***/ (function(module, exports, __webpack_require__) { - -Object.defineProperty(exports, "__esModule", { value: true }); -var moment = __webpack_require__(0); -var moment_ext_1 = __webpack_require__(10); -var UnzonedRange = /** @class */ (function () { - function UnzonedRange(startInput, endInput) { - // TODO: move these into footprint. - // Especially, doesn't make sense for null startMs/endMs. - this.isStart = true; - this.isEnd = true; - if (moment.isMoment(startInput)) { - startInput = startInput.clone().stripZone(); - } - if (moment.isMoment(endInput)) { - endInput = endInput.clone().stripZone(); - } - if (startInput) { - this.startMs = startInput.valueOf(); - } - if (endInput) { - this.endMs = endInput.valueOf(); - } - } - /* - SIDEEFFECT: will mutate eventRanges. - Will return a new array result. - Only works for non-open-ended ranges. - */ - UnzonedRange.invertRanges = function (ranges, constraintRange) { - var invertedRanges = []; - var startMs = constraintRange.startMs; // the end of the previous range. the start of the new range - var i; - var dateRange; - // ranges need to be in order. required for our date-walking algorithm - ranges.sort(compareUnzonedRanges); - for (i = 0; i < ranges.length; i++) { - dateRange = ranges[i]; - // add the span of time before the event (if there is any) - if (dateRange.startMs > startMs) { - invertedRanges.push(new UnzonedRange(startMs, dateRange.startMs)); - } - if (dateRange.endMs > startMs) { - startMs = dateRange.endMs; - } - } - // add the span of time after the last event (if there is any) - if (startMs < constraintRange.endMs) { - invertedRanges.push(new UnzonedRange(startMs, constraintRange.endMs)); - } - return invertedRanges; - }; - UnzonedRange.prototype.intersect = function (otherRange) { - var startMs = this.startMs; - var endMs = this.endMs; - var newRange = null; - if (otherRange.startMs != null) { - if (startMs == null) { - startMs = otherRange.startMs; - } - else { - startMs = Math.max(startMs, otherRange.startMs); - } - } - if (otherRange.endMs != null) { - if (endMs == null) { - endMs = otherRange.endMs; - } - else { - endMs = Math.min(endMs, otherRange.endMs); - } - } - if (startMs == null || endMs == null || startMs < endMs) { - newRange = new UnzonedRange(startMs, endMs); - newRange.isStart = this.isStart && startMs === this.startMs; - newRange.isEnd = this.isEnd && endMs === this.endMs; - } - return newRange; - }; - UnzonedRange.prototype.intersectsWith = function (otherRange) { - return (this.endMs == null || otherRange.startMs == null || this.endMs > otherRange.startMs) && - (this.startMs == null || otherRange.endMs == null || this.startMs < otherRange.endMs); - }; - UnzonedRange.prototype.containsRange = function (innerRange) { - return (this.startMs == null || (innerRange.startMs != null && innerRange.startMs >= this.startMs)) && - (this.endMs == null || (innerRange.endMs != null && innerRange.endMs <= this.endMs)); - }; - // `date` can be a moment, a Date, or a millisecond time. - UnzonedRange.prototype.containsDate = function (date) { - var ms = date.valueOf(); - return (this.startMs == null || ms >= this.startMs) && - (this.endMs == null || ms < this.endMs); - }; - // If the given date is not within the given range, move it inside. - // (If it's past the end, make it one millisecond before the end). - // `date` can be a moment, a Date, or a millisecond time. - // Returns a MS-time. - UnzonedRange.prototype.constrainDate = function (date) { - var ms = date.valueOf(); - if (this.startMs != null && ms < this.startMs) { - ms = this.startMs; - } - if (this.endMs != null && ms >= this.endMs) { - ms = this.endMs - 1; - } - return ms; - }; - UnzonedRange.prototype.equals = function (otherRange) { - return this.startMs === otherRange.startMs && this.endMs === otherRange.endMs; - }; - UnzonedRange.prototype.clone = function () { - var range = new UnzonedRange(this.startMs, this.endMs); - range.isStart = this.isStart; - range.isEnd = this.isEnd; - return range; - }; - // Returns an ambig-zoned moment from startMs. - // BEWARE: returned moment is not localized. - // Formatting and start-of-week will be default. - UnzonedRange.prototype.getStart = function () { - if (this.startMs != null) { - return moment_ext_1.default.utc(this.startMs).stripZone(); - } - return null; - }; - // Returns an ambig-zoned moment from startMs. - // BEWARE: returned moment is not localized. - // Formatting and start-of-week will be default. - UnzonedRange.prototype.getEnd = function () { - if (this.endMs != null) { - return moment_ext_1.default.utc(this.endMs).stripZone(); - } - return null; - }; - UnzonedRange.prototype.as = function (unit) { - return moment.utc(this.endMs).diff(moment.utc(this.startMs), unit, true); - }; - return UnzonedRange; -}()); -exports.default = UnzonedRange; -/* -Only works for non-open-ended ranges. -*/ -function compareUnzonedRanges(range1, range2) { - return range1.startMs - range2.startMs; // earlier ranges go first -} - - -/***/ }), -/* 6 */ -/***/ (function(module, exports, __webpack_require__) { - -Object.defineProperty(exports, "__esModule", { value: true }); -var tslib_1 = __webpack_require__(2); -var $ = __webpack_require__(3); -var ParsableModelMixin_1 = __webpack_require__(208); -var Class_1 = __webpack_require__(33); -var EventDefParser_1 = __webpack_require__(49); -var EventSource = /** @class */ (function (_super) { - tslib_1.__extends(EventSource, _super); - // can we do away with calendar? at least for the abstract? - // useful for buildEventDef - function EventSource(calendar) { - var _this = _super.call(this) || this; - _this.calendar = calendar; - _this.className = []; - _this.uid = String(EventSource.uuid++); - return _this; - } - /* - rawInput can be any data type! - */ - EventSource.parse = function (rawInput, calendar) { - var source = new this(calendar); - if (typeof rawInput === 'object') { - if (source.applyProps(rawInput)) { - return source; - } - } - return false; - }; - EventSource.normalizeId = function (id) { - if (id) { - return String(id); - } - return null; - }; - EventSource.prototype.fetch = function (start, end, timezone) { - // subclasses must implement. must return a promise. - }; - EventSource.prototype.removeEventDefsById = function (eventDefId) { - // optional for subclasses to implement - }; - EventSource.prototype.removeAllEventDefs = function () { - // optional for subclasses to implement - }; - /* - For compairing/matching - */ - EventSource.prototype.getPrimitive = function (otherSource) { - // subclasses must implement - }; - EventSource.prototype.parseEventDefs = function (rawEventDefs) { - var i; - var eventDef; - var eventDefs = []; - for (i = 0; i < rawEventDefs.length; i++) { - eventDef = this.parseEventDef(rawEventDefs[i]); - if (eventDef) { - eventDefs.push(eventDef); - } - } - return eventDefs; - }; - EventSource.prototype.parseEventDef = function (rawInput) { - var calendarTransform = this.calendar.opt('eventDataTransform'); - var sourceTransform = this.eventDataTransform; - if (calendarTransform) { - rawInput = calendarTransform(rawInput, this.calendar); - } - if (sourceTransform) { - rawInput = sourceTransform(rawInput, this.calendar); - } - return EventDefParser_1.default.parse(rawInput, this); - }; - EventSource.prototype.applyManualStandardProps = function (rawProps) { - if (rawProps.id != null) { - this.id = EventSource.normalizeId(rawProps.id); - } - // TODO: converge with EventDef - if ($.isArray(rawProps.className)) { - this.className = rawProps.className; - } - else if (typeof rawProps.className === 'string') { - this.className = rawProps.className.split(/\s+/); - } - return true; - }; - EventSource.uuid = 0; - EventSource.defineStandardProps = ParsableModelMixin_1.default.defineStandardProps; - EventSource.copyVerbatimStandardProps = ParsableModelMixin_1.default.copyVerbatimStandardProps; - return EventSource; -}(Class_1.default)); -exports.default = EventSource; -ParsableModelMixin_1.default.mixInto(EventSource); -// Parsing -// --------------------------------------------------------------------------------------------------------------------- -EventSource.defineStandardProps({ - // manually process... - id: false, - className: false, - // automatically transfer... - color: true, - backgroundColor: true, - borderColor: true, - textColor: true, - editable: true, - startEditable: true, - durationEditable: true, - rendering: true, - overlap: true, - constraint: true, - allDayDefault: true, - eventDataTransform: true -}); - - -/***/ }), -/* 7 */ -/***/ (function(module, exports, __webpack_require__) { - -/* -Utility methods for easily listening to events on another object, -and more importantly, easily unlistening from them. - -USAGE: - import { default as ListenerMixin, ListenerInterface } from './ListenerMixin' -in class: - listenTo: ListenerInterface['listenTo'] - stopListeningTo: ListenerInterface['stopListeningTo'] -after class: - ListenerMixin.mixInto(TheClass) -*/ -Object.defineProperty(exports, "__esModule", { value: true }); -var tslib_1 = __webpack_require__(2); -var $ = __webpack_require__(3); -var Mixin_1 = __webpack_require__(14); -var guid = 0; -var ListenerMixin = /** @class */ (function (_super) { - tslib_1.__extends(ListenerMixin, _super); - function ListenerMixin() { - return _super !== null && _super.apply(this, arguments) || this; - } - /* - Given an `other` object that has on/off methods, bind the given `callback` to an event by the given name. - The `callback` will be called with the `this` context of the object that .listenTo is being called on. - Can be called: - .listenTo(other, eventName, callback) - OR - .listenTo(other, { - eventName1: callback1, - eventName2: callback2 - }) - */ - ListenerMixin.prototype.listenTo = function (other, arg, callback) { - if (typeof arg === 'object') { - for (var eventName in arg) { - if (arg.hasOwnProperty(eventName)) { - this.listenTo(other, eventName, arg[eventName]); - } - } - } - else if (typeof arg === 'string') { - other.on(arg + '.' + this.getListenerNamespace(), // use event namespacing to identify this object - $.proxy(callback, this) // always use `this` context - // the usually-undesired jQuery guid behavior doesn't matter, - // because we always unbind via namespace - ); - } - }; - /* - Causes the current object to stop listening to events on the `other` object. - `eventName` is optional. If omitted, will stop listening to ALL events on `other`. - */ - ListenerMixin.prototype.stopListeningTo = function (other, eventName) { - other.off((eventName || '') + '.' + this.getListenerNamespace()); - }; - /* - Returns a string, unique to this object, to be used for event namespacing - */ - ListenerMixin.prototype.getListenerNamespace = function () { - if (this.listenerId == null) { - this.listenerId = guid++; - } - return '_listener' + this.listenerId; - }; - return ListenerMixin; -}(Mixin_1.default)); -exports.default = ListenerMixin; - - -/***/ }), -/* 8 */, -/* 9 */, -/* 10 */ -/***/ (function(module, exports, __webpack_require__) { - -Object.defineProperty(exports, "__esModule", { value: true }); -var moment = __webpack_require__(0); -var $ = __webpack_require__(3); -var util_1 = __webpack_require__(4); -var ambigDateOfMonthRegex = /^\s*\d{4}-\d\d$/; -var ambigTimeOrZoneRegex = /^\s*\d{4}-(?:(\d\d-\d\d)|(W\d\d$)|(W\d\d-\d)|(\d\d\d))((T| )(\d\d(:\d\d(:\d\d(\.\d+)?)?)?)?)?$/; -var newMomentProto = moment.fn; // where we will attach our new methods -exports.newMomentProto = newMomentProto; -var oldMomentProto = $.extend({}, newMomentProto); // copy of original moment methods -exports.oldMomentProto = oldMomentProto; -// tell momentjs to transfer these properties upon clone -var momentProperties = moment.momentProperties; -momentProperties.push('_fullCalendar'); -momentProperties.push('_ambigTime'); -momentProperties.push('_ambigZone'); -/* -Call this if you want Moment's original format method to be used -*/ -function oldMomentFormat(mom, formatStr) { - return oldMomentProto.format.call(mom, formatStr); // oldMomentProto defined in moment-ext.js -} -exports.oldMomentFormat = oldMomentFormat; -// Creating -// ------------------------------------------------------------------------------------------------- -// Creates a new moment, similar to the vanilla moment(...) constructor, but with -// extra features (ambiguous time, enhanced formatting). When given an existing moment, -// it will function as a clone (and retain the zone of the moment). Anything else will -// result in a moment in the local zone. -var momentExt = function () { - return makeMoment(arguments); -}; -exports.default = momentExt; -// Sames as momentExt, but forces the resulting moment to be in the UTC timezone. -momentExt.utc = function () { - var mom = makeMoment(arguments, true); - // Force it into UTC because makeMoment doesn't guarantee it - // (if given a pre-existing moment for example) - if (mom.hasTime()) { - mom.utc(); - } - return mom; -}; -// Same as momentExt, but when given an ISO8601 string, the timezone offset is preserved. -// ISO8601 strings with no timezone offset will become ambiguously zoned. -momentExt.parseZone = function () { - return makeMoment(arguments, true, true); -}; -// Builds an enhanced moment from args. When given an existing moment, it clones. When given a -// native Date, or called with no arguments (the current time), the resulting moment will be local. -// Anything else needs to be "parsed" (a string or an array), and will be affected by: -// parseAsUTC - if there is no zone information, should we parse the input in UTC? -// parseZone - if there is zone information, should we force the zone of the moment? -function makeMoment(args, parseAsUTC, parseZone) { - if (parseAsUTC === void 0) { parseAsUTC = false; } - if (parseZone === void 0) { parseZone = false; } - var input = args[0]; - var isSingleString = args.length === 1 && typeof input === 'string'; - var isAmbigTime; - var isAmbigZone; - var ambigMatch; - var mom; - if (moment.isMoment(input) || util_1.isNativeDate(input) || input === undefined) { - mom = moment.apply(null, args); - } - else { - isAmbigTime = false; - isAmbigZone = false; - if (isSingleString) { - if (ambigDateOfMonthRegex.test(input)) { - // accept strings like '2014-05', but convert to the first of the month - input += '-01'; - args = [input]; // for when we pass it on to moment's constructor - isAmbigTime = true; - isAmbigZone = true; - } - else if ((ambigMatch = ambigTimeOrZoneRegex.exec(input))) { - isAmbigTime = !ambigMatch[5]; // no time part? - isAmbigZone = true; - } - } - else if ($.isArray(input)) { - // arrays have no timezone information, so assume ambiguous zone - isAmbigZone = true; - } - // otherwise, probably a string with a format - if (parseAsUTC || isAmbigTime) { - mom = moment.utc.apply(moment, args); - } - else { - mom = moment.apply(null, args); - } - if (isAmbigTime) { - mom._ambigTime = true; - mom._ambigZone = true; // ambiguous time always means ambiguous zone - } - else if (parseZone) { - if (isAmbigZone) { - mom._ambigZone = true; - } - else if (isSingleString) { - mom.utcOffset(input); // if not a valid zone, will assign UTC - } - } - } - mom._fullCalendar = true; // flag for extended functionality - return mom; -} -// Week Number -// ------------------------------------------------------------------------------------------------- -// Returns the week number, considering the locale's custom week number calcuation -// `weeks` is an alias for `week` -newMomentProto.week = newMomentProto.weeks = function (input) { - var weekCalc = this._locale._fullCalendar_weekCalc; - if (input == null && typeof weekCalc === 'function') { - return weekCalc(this); - } - else if (weekCalc === 'ISO') { - return oldMomentProto.isoWeek.apply(this, arguments); // ISO getter/setter - } - return oldMomentProto.week.apply(this, arguments); // local getter/setter -}; -// Time-of-day -// ------------------------------------------------------------------------------------------------- -// GETTER -// Returns a Duration with the hours/minutes/seconds/ms values of the moment. -// If the moment has an ambiguous time, a duration of 00:00 will be returned. -// -// SETTER -// You can supply a Duration, a Moment, or a Duration-like argument. -// When setting the time, and the moment has an ambiguous time, it then becomes unambiguous. -newMomentProto.time = function (time) { - // Fallback to the original method (if there is one) if this moment wasn't created via FullCalendar. - // `time` is a generic enough method name where this precaution is necessary to avoid collisions w/ other plugins. - if (!this._fullCalendar) { - return oldMomentProto.time.apply(this, arguments); - } - if (time == null) { - return moment.duration({ - hours: this.hours(), - minutes: this.minutes(), - seconds: this.seconds(), - milliseconds: this.milliseconds() - }); - } - else { - this._ambigTime = false; // mark that the moment now has a time - if (!moment.isDuration(time) && !moment.isMoment(time)) { - time = moment.duration(time); - } - // The day value should cause overflow (so 24 hours becomes 00:00:00 of next day). - // Only for Duration times, not Moment times. - var dayHours = 0; - if (moment.isDuration(time)) { - dayHours = Math.floor(time.asDays()) * 24; - } - // We need to set the individual fields. - // Can't use startOf('day') then add duration. In case of DST at start of day. - return this.hours(dayHours + time.hours()) - .minutes(time.minutes()) - .seconds(time.seconds()) - .milliseconds(time.milliseconds()); - } -}; -// Converts the moment to UTC, stripping out its time-of-day and timezone offset, -// but preserving its YMD. A moment with a stripped time will display no time -// nor timezone offset when .format() is called. -newMomentProto.stripTime = function () { - if (!this._ambigTime) { - this.utc(true); // keepLocalTime=true (for keeping *date* value) - // set time to zero - this.set({ - hours: 0, - minutes: 0, - seconds: 0, - ms: 0 - }); - // Mark the time as ambiguous. This needs to happen after the .utc() call, which might call .utcOffset(), - // which clears all ambig flags. - this._ambigTime = true; - this._ambigZone = true; // if ambiguous time, also ambiguous timezone offset - } - return this; // for chaining -}; -// Returns if the moment has a non-ambiguous time (boolean) -newMomentProto.hasTime = function () { - return !this._ambigTime; -}; -// Timezone -// ------------------------------------------------------------------------------------------------- -// Converts the moment to UTC, stripping out its timezone offset, but preserving its -// YMD and time-of-day. A moment with a stripped timezone offset will display no -// timezone offset when .format() is called. -newMomentProto.stripZone = function () { - var wasAmbigTime; - if (!this._ambigZone) { - wasAmbigTime = this._ambigTime; - this.utc(true); // keepLocalTime=true (for keeping date and time values) - // the above call to .utc()/.utcOffset() unfortunately might clear the ambig flags, so restore - this._ambigTime = wasAmbigTime || false; - // Mark the zone as ambiguous. This needs to happen after the .utc() call, which might call .utcOffset(), - // which clears the ambig flags. - this._ambigZone = true; - } - return this; // for chaining -}; -// Returns of the moment has a non-ambiguous timezone offset (boolean) -newMomentProto.hasZone = function () { - return !this._ambigZone; -}; -// implicitly marks a zone -newMomentProto.local = function (keepLocalTime) { - // for when converting from ambiguously-zoned to local, - // keep the time values when converting from UTC -> local - oldMomentProto.local.call(this, this._ambigZone || keepLocalTime); - // ensure non-ambiguous - // this probably already happened via local() -> utcOffset(), but don't rely on Moment's internals - this._ambigTime = false; - this._ambigZone = false; - return this; // for chaining -}; -// implicitly marks a zone -newMomentProto.utc = function (keepLocalTime) { - oldMomentProto.utc.call(this, keepLocalTime); - // ensure non-ambiguous - // this probably already happened via utc() -> utcOffset(), but don't rely on Moment's internals - this._ambigTime = false; - this._ambigZone = false; - return this; -}; -// implicitly marks a zone (will probably get called upon .utc() and .local()) -newMomentProto.utcOffset = function (tzo) { - if (tzo != null) { - // these assignments needs to happen before the original zone method is called. - // I forget why, something to do with a browser crash. - this._ambigTime = false; - this._ambigZone = false; - } - return oldMomentProto.utcOffset.apply(this, arguments); -}; - - -/***/ }), -/* 11 */ -/***/ (function(module, exports, __webpack_require__) { - -/* -USAGE: - import { default as EmitterMixin, EmitterInterface } from './EmitterMixin' -in class: - on: EmitterInterface['on'] - one: EmitterInterface['one'] - off: EmitterInterface['off'] - trigger: EmitterInterface['trigger'] - triggerWith: EmitterInterface['triggerWith'] - hasHandlers: EmitterInterface['hasHandlers'] -after class: - EmitterMixin.mixInto(TheClass) -*/ -Object.defineProperty(exports, "__esModule", { value: true }); -var tslib_1 = __webpack_require__(2); -var $ = __webpack_require__(3); -var Mixin_1 = __webpack_require__(14); -var EmitterMixin = /** @class */ (function (_super) { - tslib_1.__extends(EmitterMixin, _super); - function EmitterMixin() { - return _super !== null && _super.apply(this, arguments) || this; - } - // jQuery-ification via $(this) allows a non-DOM object to have - // the same event handling capabilities (including namespaces). - EmitterMixin.prototype.on = function (types, handler) { - $(this).on(types, this._prepareIntercept(handler)); - return this; // for chaining - }; - EmitterMixin.prototype.one = function (types, handler) { - $(this).one(types, this._prepareIntercept(handler)); - return this; // for chaining - }; - EmitterMixin.prototype._prepareIntercept = function (handler) { - // handlers are always called with an "event" object as their first param. - // sneak the `this` context and arguments into the extra parameter object - // and forward them on to the original handler. - var intercept = function (ev, extra) { - return handler.apply(extra.context || this, extra.args || []); - }; - // mimick jQuery's internal "proxy" system (risky, I know) - // causing all functions with the same .guid to appear to be the same. - // https://github.com/jquery/jquery/blob/2.2.4/src/core.js#L448 - // this is needed for calling .off with the original non-intercept handler. - if (!handler.guid) { - handler.guid = $.guid++; - } - intercept.guid = handler.guid; - return intercept; - }; - EmitterMixin.prototype.off = function (types, handler) { - $(this).off(types, handler); - return this; // for chaining - }; - EmitterMixin.prototype.trigger = function (types) { - var args = []; - for (var _i = 1; _i < arguments.length; _i++) { - args[_i - 1] = arguments[_i]; - } - // pass in "extra" info to the intercept - $(this).triggerHandler(types, { args: args }); - return this; // for chaining - }; - EmitterMixin.prototype.triggerWith = function (types, context, args) { - // `triggerHandler` is less reliant on the DOM compared to `trigger`. - // pass in "extra" info to the intercept. - $(this).triggerHandler(types, { context: context, args: args }); - return this; // for chaining - }; - EmitterMixin.prototype.hasHandlers = function (type) { - var hash = $._data(this, 'events'); // http://blog.jquery.com/2012/08/09/jquery-1-8-released/ - return hash && hash[type] && hash[type].length > 0; - }; - return EmitterMixin; -}(Mixin_1.default)); -exports.default = EmitterMixin; - - -/***/ }), -/* 12 */ -/***/ (function(module, exports) { - -Object.defineProperty(exports, "__esModule", { value: true }); -/* -Meant to be immutable -*/ -var ComponentFootprint = /** @class */ (function () { - function ComponentFootprint(unzonedRange, isAllDay) { - this.isAllDay = false; // component can choose to ignore this - this.unzonedRange = unzonedRange; - this.isAllDay = isAllDay; - } - /* - Only works for non-open-ended ranges. - */ - ComponentFootprint.prototype.toLegacy = function (calendar) { - return { - start: calendar.msToMoment(this.unzonedRange.startMs, this.isAllDay), - end: calendar.msToMoment(this.unzonedRange.endMs, this.isAllDay) - }; - }; - return ComponentFootprint; -}()); -exports.default = ComponentFootprint; - - -/***/ }), -/* 13 */ -/***/ (function(module, exports, __webpack_require__) { - -Object.defineProperty(exports, "__esModule", { value: true }); -var tslib_1 = __webpack_require__(2); -var EventDef_1 = __webpack_require__(34); -var EventInstance_1 = __webpack_require__(209); -var EventDateProfile_1 = __webpack_require__(17); -var SingleEventDef = /** @class */ (function (_super) { - tslib_1.__extends(SingleEventDef, _super); - function SingleEventDef() { - return _super !== null && _super.apply(this, arguments) || this; - } - /* - Will receive start/end params, but will be ignored. - */ - SingleEventDef.prototype.buildInstances = function () { - return [this.buildInstance()]; - }; - SingleEventDef.prototype.buildInstance = function () { - return new EventInstance_1.default(this, // definition - this.dateProfile); - }; - SingleEventDef.prototype.isAllDay = function () { - return this.dateProfile.isAllDay(); - }; - SingleEventDef.prototype.clone = function () { - var def = _super.prototype.clone.call(this); - def.dateProfile = this.dateProfile; - return def; - }; - SingleEventDef.prototype.rezone = function () { - var calendar = this.source.calendar; - var dateProfile = this.dateProfile; - this.dateProfile = new EventDateProfile_1.default(calendar.moment(dateProfile.start), dateProfile.end ? calendar.moment(dateProfile.end) : null, calendar); - }; - /* - NOTE: if super-method fails, should still attempt to apply - */ - SingleEventDef.prototype.applyManualStandardProps = function (rawProps) { - var superSuccess = _super.prototype.applyManualStandardProps.call(this, rawProps); - var dateProfile = EventDateProfile_1.default.parse(rawProps, this.source); // returns null on failure - if (dateProfile) { - this.dateProfile = dateProfile; - // make sure `date` shows up in the legacy event objects as-is - if (rawProps.date != null) { - this.miscProps.date = rawProps.date; - } - return superSuccess; - } - else { - return false; - } - }; - return SingleEventDef; -}(EventDef_1.default)); -exports.default = SingleEventDef; -// Parsing -// --------------------------------------------------------------------------------------------------------------------- -SingleEventDef.defineStandardProps({ - start: false, - date: false, - end: false, - allDay: false -}); - - -/***/ }), -/* 14 */ -/***/ (function(module, exports) { - -Object.defineProperty(exports, "__esModule", { value: true }); -var Mixin = /** @class */ (function () { - function Mixin() { - } - Mixin.mixInto = function (destClass) { - var _this = this; - Object.getOwnPropertyNames(this.prototype).forEach(function (name) { - if (!destClass.prototype[name]) { - destClass.prototype[name] = _this.prototype[name]; - } - }); - }; - /* - will override existing methods - TODO: remove! not used anymore - */ - Mixin.mixOver = function (destClass) { - var _this = this; - Object.getOwnPropertyNames(this.prototype).forEach(function (name) { - destClass.prototype[name] = _this.prototype[name]; - }); - }; - return Mixin; -}()); -exports.default = Mixin; - - -/***/ }), -/* 15 */ -/***/ (function(module, exports) { - -Object.defineProperty(exports, "__esModule", { value: true }); -var Interaction = /** @class */ (function () { - function Interaction(component) { - this.view = component._getView(); - this.component = component; - } - Interaction.prototype.opt = function (name) { - return this.view.opt(name); - }; - Interaction.prototype.end = function () { - // subclasses can implement - }; - return Interaction; -}()); -exports.default = Interaction; - - -/***/ }), -/* 16 */ -/***/ (function(module, exports, __webpack_require__) { - -Object.defineProperty(exports, "__esModule", { value: true }); -exports.version = '3.9.0'; -// When introducing internal API incompatibilities (where fullcalendar plugins would break), -// the minor version of the calendar should be upped (ex: 2.7.2 -> 2.8.0) -// and the below integer should be incremented. -exports.internalApiVersion = 12; -var util_1 = __webpack_require__(4); -exports.applyAll = util_1.applyAll; -exports.debounce = util_1.debounce; -exports.isInt = util_1.isInt; -exports.htmlEscape = util_1.htmlEscape; -exports.cssToStr = util_1.cssToStr; -exports.proxy = util_1.proxy; -exports.capitaliseFirstLetter = util_1.capitaliseFirstLetter; -exports.getOuterRect = util_1.getOuterRect; -exports.getClientRect = util_1.getClientRect; -exports.getContentRect = util_1.getContentRect; -exports.getScrollbarWidths = util_1.getScrollbarWidths; -exports.preventDefault = util_1.preventDefault; -exports.parseFieldSpecs = util_1.parseFieldSpecs; -exports.compareByFieldSpecs = util_1.compareByFieldSpecs; -exports.compareByFieldSpec = util_1.compareByFieldSpec; -exports.flexibleCompare = util_1.flexibleCompare; -exports.computeGreatestUnit = util_1.computeGreatestUnit; -exports.divideRangeByDuration = util_1.divideRangeByDuration; -exports.divideDurationByDuration = util_1.divideDurationByDuration; -exports.multiplyDuration = util_1.multiplyDuration; -exports.durationHasTime = util_1.durationHasTime; -exports.log = util_1.log; -exports.warn = util_1.warn; -exports.removeExact = util_1.removeExact; -exports.intersectRects = util_1.intersectRects; -var date_formatting_1 = __webpack_require__(47); -exports.formatDate = date_formatting_1.formatDate; -exports.formatRange = date_formatting_1.formatRange; -exports.queryMostGranularFormatUnit = date_formatting_1.queryMostGranularFormatUnit; -var locale_1 = __webpack_require__(31); -exports.datepickerLocale = locale_1.datepickerLocale; -exports.locale = locale_1.locale; -var moment_ext_1 = __webpack_require__(10); -exports.moment = moment_ext_1.default; -var EmitterMixin_1 = __webpack_require__(11); -exports.EmitterMixin = EmitterMixin_1.default; -var ListenerMixin_1 = __webpack_require__(7); -exports.ListenerMixin = ListenerMixin_1.default; -var Model_1 = __webpack_require__(48); -exports.Model = Model_1.default; -var Constraints_1 = __webpack_require__(207); -exports.Constraints = Constraints_1.default; -var UnzonedRange_1 = __webpack_require__(5); -exports.UnzonedRange = UnzonedRange_1.default; -var ComponentFootprint_1 = __webpack_require__(12); -exports.ComponentFootprint = ComponentFootprint_1.default; -var BusinessHourGenerator_1 = __webpack_require__(212); -exports.BusinessHourGenerator = BusinessHourGenerator_1.default; -var EventDef_1 = __webpack_require__(34); -exports.EventDef = EventDef_1.default; -var EventDefMutation_1 = __webpack_require__(37); -exports.EventDefMutation = EventDefMutation_1.default; -var EventSourceParser_1 = __webpack_require__(38); -exports.EventSourceParser = EventSourceParser_1.default; -var EventSource_1 = __webpack_require__(6); -exports.EventSource = EventSource_1.default; -var ThemeRegistry_1 = __webpack_require__(51); -exports.defineThemeSystem = ThemeRegistry_1.defineThemeSystem; -var EventInstanceGroup_1 = __webpack_require__(18); -exports.EventInstanceGroup = EventInstanceGroup_1.default; -var ArrayEventSource_1 = __webpack_require__(52); -exports.ArrayEventSource = ArrayEventSource_1.default; -var FuncEventSource_1 = __webpack_require__(215); -exports.FuncEventSource = FuncEventSource_1.default; -var JsonFeedEventSource_1 = __webpack_require__(216); -exports.JsonFeedEventSource = JsonFeedEventSource_1.default; -var EventFootprint_1 = __webpack_require__(36); -exports.EventFootprint = EventFootprint_1.default; -var Class_1 = __webpack_require__(33); -exports.Class = Class_1.default; -var Mixin_1 = __webpack_require__(14); -exports.Mixin = Mixin_1.default; -var CoordCache_1 = __webpack_require__(53); -exports.CoordCache = CoordCache_1.default; -var DragListener_1 = __webpack_require__(54); -exports.DragListener = DragListener_1.default; -var Promise_1 = __webpack_require__(20); -exports.Promise = Promise_1.default; -var TaskQueue_1 = __webpack_require__(217); -exports.TaskQueue = TaskQueue_1.default; -var RenderQueue_1 = __webpack_require__(218); -exports.RenderQueue = RenderQueue_1.default; -var Scroller_1 = __webpack_require__(39); -exports.Scroller = Scroller_1.default; -var Theme_1 = __webpack_require__(19); -exports.Theme = Theme_1.default; -var DateComponent_1 = __webpack_require__(219); -exports.DateComponent = DateComponent_1.default; -var InteractiveDateComponent_1 = __webpack_require__(40); -exports.InteractiveDateComponent = InteractiveDateComponent_1.default; -var Calendar_1 = __webpack_require__(220); -exports.Calendar = Calendar_1.default; -var View_1 = __webpack_require__(41); -exports.View = View_1.default; -var ViewRegistry_1 = __webpack_require__(22); -exports.defineView = ViewRegistry_1.defineView; -exports.getViewConfig = ViewRegistry_1.getViewConfig; -var DayTableMixin_1 = __webpack_require__(55); -exports.DayTableMixin = DayTableMixin_1.default; -var BusinessHourRenderer_1 = __webpack_require__(56); -exports.BusinessHourRenderer = BusinessHourRenderer_1.default; -var EventRenderer_1 = __webpack_require__(42); -exports.EventRenderer = EventRenderer_1.default; -var FillRenderer_1 = __webpack_require__(57); -exports.FillRenderer = FillRenderer_1.default; -var HelperRenderer_1 = __webpack_require__(58); -exports.HelperRenderer = HelperRenderer_1.default; -var ExternalDropping_1 = __webpack_require__(222); -exports.ExternalDropping = ExternalDropping_1.default; -var EventResizing_1 = __webpack_require__(223); -exports.EventResizing = EventResizing_1.default; -var EventPointing_1 = __webpack_require__(59); -exports.EventPointing = EventPointing_1.default; -var EventDragging_1 = __webpack_require__(224); -exports.EventDragging = EventDragging_1.default; -var DateSelecting_1 = __webpack_require__(225); -exports.DateSelecting = DateSelecting_1.default; -var StandardInteractionsMixin_1 = __webpack_require__(60); -exports.StandardInteractionsMixin = StandardInteractionsMixin_1.default; -var AgendaView_1 = __webpack_require__(226); -exports.AgendaView = AgendaView_1.default; -var TimeGrid_1 = __webpack_require__(227); -exports.TimeGrid = TimeGrid_1.default; -var DayGrid_1 = __webpack_require__(61); -exports.DayGrid = DayGrid_1.default; -var BasicView_1 = __webpack_require__(62); -exports.BasicView = BasicView_1.default; -var MonthView_1 = __webpack_require__(229); -exports.MonthView = MonthView_1.default; -var ListView_1 = __webpack_require__(230); -exports.ListView = ListView_1.default; - - -/***/ }), -/* 17 */ -/***/ (function(module, exports, __webpack_require__) { - -Object.defineProperty(exports, "__esModule", { value: true }); -var UnzonedRange_1 = __webpack_require__(5); -/* -Meant to be immutable -*/ -var EventDateProfile = /** @class */ (function () { - function EventDateProfile(start, end, calendar) { - this.start = start; - this.end = end || null; - this.unzonedRange = this.buildUnzonedRange(calendar); - } - /* - Needs an EventSource object - */ - EventDateProfile.parse = function (rawProps, source) { - var startInput = rawProps.start || rawProps.date; - var endInput = rawProps.end; - if (!startInput) { - return false; - } - var calendar = source.calendar; - var start = calendar.moment(startInput); - var end = endInput ? calendar.moment(endInput) : null; - var forcedAllDay = rawProps.allDay; - var forceEventDuration = calendar.opt('forceEventDuration'); - if (!start.isValid()) { - return false; - } - if (end && (!end.isValid() || !end.isAfter(start))) { - end = null; - } - if (forcedAllDay == null) { - forcedAllDay = source.allDayDefault; - if (forcedAllDay == null) { - forcedAllDay = calendar.opt('allDayDefault'); - } - } - if (forcedAllDay === true) { - start.stripTime(); - if (end) { - end.stripTime(); - } - } - else if (forcedAllDay === false) { - if (!start.hasTime()) { - start.time(0); - } - if (end && !end.hasTime()) { - end.time(0); - } - } - if (!end && forceEventDuration) { - end = calendar.getDefaultEventEnd(!start.hasTime(), start); - } - return new EventDateProfile(start, end, calendar); - }; - EventDateProfile.isStandardProp = function (propName) { - return propName === 'start' || propName === 'date' || propName === 'end' || propName === 'allDay'; - }; - EventDateProfile.prototype.isAllDay = function () { - return !(this.start.hasTime() || (this.end && this.end.hasTime())); - }; - /* - Needs a Calendar object - */ - EventDateProfile.prototype.buildUnzonedRange = function (calendar) { - var startMs = this.start.clone().stripZone().valueOf(); - var endMs = this.getEnd(calendar).stripZone().valueOf(); - return new UnzonedRange_1.default(startMs, endMs); - }; - /* - Needs a Calendar object - */ - EventDateProfile.prototype.getEnd = function (calendar) { - return this.end ? - this.end.clone() : - // derive the end from the start and allDay. compute allDay if necessary - calendar.getDefaultEventEnd(this.isAllDay(), this.start); - }; - return EventDateProfile; -}()); -exports.default = EventDateProfile; - - -/***/ }), -/* 18 */ -/***/ (function(module, exports, __webpack_require__) { - -Object.defineProperty(exports, "__esModule", { value: true }); -var UnzonedRange_1 = __webpack_require__(5); -var util_1 = __webpack_require__(35); -var EventRange_1 = __webpack_require__(211); -/* -It's expected that there will be at least one EventInstance, -OR that an explicitEventDef is assigned. -*/ -var EventInstanceGroup = /** @class */ (function () { - function EventInstanceGroup(eventInstances) { - this.eventInstances = eventInstances || []; - } - EventInstanceGroup.prototype.getAllEventRanges = function (constraintRange) { - if (constraintRange) { - return this.sliceNormalRenderRanges(constraintRange); - } - else { - return this.eventInstances.map(util_1.eventInstanceToEventRange); - } - }; - EventInstanceGroup.prototype.sliceRenderRanges = function (constraintRange) { - if (this.isInverse()) { - return this.sliceInverseRenderRanges(constraintRange); - } - else { - return this.sliceNormalRenderRanges(constraintRange); - } - }; - EventInstanceGroup.prototype.sliceNormalRenderRanges = function (constraintRange) { - var eventInstances = this.eventInstances; - var i; - var eventInstance; - var slicedRange; - var slicedEventRanges = []; - for (i = 0; i < eventInstances.length; i++) { - eventInstance = eventInstances[i]; - slicedRange = eventInstance.dateProfile.unzonedRange.intersect(constraintRange); - if (slicedRange) { - slicedEventRanges.push(new EventRange_1.default(slicedRange, eventInstance.def, eventInstance)); - } - } - return slicedEventRanges; - }; - EventInstanceGroup.prototype.sliceInverseRenderRanges = function (constraintRange) { - var unzonedRanges = this.eventInstances.map(util_1.eventInstanceToUnzonedRange); - var ownerDef = this.getEventDef(); - unzonedRanges = UnzonedRange_1.default.invertRanges(unzonedRanges, constraintRange); - return unzonedRanges.map(function (unzonedRange) { - return new EventRange_1.default(unzonedRange, ownerDef); // don't give an EventInstance - }); - }; - EventInstanceGroup.prototype.isInverse = function () { - return this.getEventDef().hasInverseRendering(); - }; - EventInstanceGroup.prototype.getEventDef = function () { - return this.explicitEventDef || this.eventInstances[0].def; - }; - return EventInstanceGroup; -}()); -exports.default = EventInstanceGroup; - - -/***/ }), -/* 19 */ -/***/ (function(module, exports, __webpack_require__) { - -Object.defineProperty(exports, "__esModule", { value: true }); -var $ = __webpack_require__(3); -var Theme = /** @class */ (function () { - function Theme(optionsManager) { - this.optionsManager = optionsManager; - this.processIconOverride(); - } - Theme.prototype.processIconOverride = function () { - if (this.iconOverrideOption) { - this.setIconOverride(this.optionsManager.get(this.iconOverrideOption)); - } - }; - Theme.prototype.setIconOverride = function (iconOverrideHash) { - var iconClassesCopy; - var buttonName; - if ($.isPlainObject(iconOverrideHash)) { - iconClassesCopy = $.extend({}, this.iconClasses); - for (buttonName in iconOverrideHash) { - iconClassesCopy[buttonName] = this.applyIconOverridePrefix(iconOverrideHash[buttonName]); - } - this.iconClasses = iconClassesCopy; - } - else if (iconOverrideHash === false) { - this.iconClasses = {}; - } - }; - Theme.prototype.applyIconOverridePrefix = function (className) { - var prefix = this.iconOverridePrefix; - if (prefix && className.indexOf(prefix) !== 0) { - className = prefix + className; - } - return className; - }; - Theme.prototype.getClass = function (key) { - return this.classes[key] || ''; - }; - Theme.prototype.getIconClass = function (buttonName) { - var className = this.iconClasses[buttonName]; - if (className) { - return this.baseIconClass + ' ' + className; - } - return ''; - }; - Theme.prototype.getCustomButtonIconClass = function (customButtonProps) { - var className; - if (this.iconOverrideCustomButtonOption) { - className = customButtonProps[this.iconOverrideCustomButtonOption]; - if (className) { - return this.baseIconClass + ' ' + this.applyIconOverridePrefix(className); - } - } - return ''; - }; - return Theme; -}()); -exports.default = Theme; -Theme.prototype.classes = {}; -Theme.prototype.iconClasses = {}; -Theme.prototype.baseIconClass = ''; -Theme.prototype.iconOverridePrefix = ''; - - -/***/ }), -/* 20 */ -/***/ (function(module, exports, __webpack_require__) { - -Object.defineProperty(exports, "__esModule", { value: true }); -var $ = __webpack_require__(3); -var PromiseStub = { - construct: function (executor) { - var deferred = $.Deferred(); - var promise = deferred.promise(); - if (typeof executor === 'function') { - executor(function (val) { - deferred.resolve(val); - attachImmediatelyResolvingThen(promise, val); - }, function () { - deferred.reject(); - attachImmediatelyRejectingThen(promise); - }); - } - return promise; - }, - resolve: function (val) { - var deferred = $.Deferred().resolve(val); - var promise = deferred.promise(); - attachImmediatelyResolvingThen(promise, val); - return promise; - }, - reject: function () { - var deferred = $.Deferred().reject(); - var promise = deferred.promise(); - attachImmediatelyRejectingThen(promise); - return promise; - } -}; -exports.default = PromiseStub; -function attachImmediatelyResolvingThen(promise, val) { - promise.then = function (onResolve) { - if (typeof onResolve === 'function') { - return PromiseStub.resolve(onResolve(val)); - } - return promise; - }; -} -function attachImmediatelyRejectingThen(promise) { - promise.then = function (onResolve, onReject) { - if (typeof onReject === 'function') { - onReject(); - } - return promise; - }; -} - - -/***/ }), -/* 21 */ -/***/ (function(module, exports, __webpack_require__) { - -Object.defineProperty(exports, "__esModule", { value: true }); -var $ = __webpack_require__(3); -var exportHooks = __webpack_require__(16); -var EmitterMixin_1 = __webpack_require__(11); -var ListenerMixin_1 = __webpack_require__(7); -exportHooks.touchMouseIgnoreWait = 500; -var globalEmitter = null; -var neededCount = 0; -/* -Listens to document and window-level user-interaction events, like touch events and mouse events, -and fires these events as-is to whoever is observing a GlobalEmitter. -Best when used as a singleton via GlobalEmitter.get() - -Normalizes mouse/touch events. For examples: -- ignores the the simulated mouse events that happen after a quick tap: mousemove+mousedown+mouseup+click -- compensates for various buggy scenarios where a touchend does not fire -*/ -var GlobalEmitter = /** @class */ (function () { - function GlobalEmitter() { - this.isTouching = false; - this.mouseIgnoreDepth = 0; - } - // gets the singleton - GlobalEmitter.get = function () { - if (!globalEmitter) { - globalEmitter = new GlobalEmitter(); - globalEmitter.bind(); - } - return globalEmitter; - }; - // called when an object knows it will need a GlobalEmitter in the near future. - GlobalEmitter.needed = function () { - GlobalEmitter.get(); // ensures globalEmitter - neededCount++; - }; - // called when the object that originally called needed() doesn't need a GlobalEmitter anymore. - GlobalEmitter.unneeded = function () { - neededCount--; - if (!neededCount) { - globalEmitter.unbind(); - globalEmitter = null; - } - }; - GlobalEmitter.prototype.bind = function () { - var _this = this; - this.listenTo($(document), { - touchstart: this.handleTouchStart, - touchcancel: this.handleTouchCancel, - touchend: this.handleTouchEnd, - mousedown: this.handleMouseDown, - mousemove: this.handleMouseMove, - mouseup: this.handleMouseUp, - click: this.handleClick, - selectstart: this.handleSelectStart, - contextmenu: this.handleContextMenu - }); - // because we need to call preventDefault - // because https://www.chromestatus.com/features/5093566007214080 - // TODO: investigate performance because this is a global handler - window.addEventListener('touchmove', this.handleTouchMoveProxy = function (ev) { - _this.handleTouchMove($.Event(ev)); - }, { passive: false } // allows preventDefault() - ); - // attach a handler to get called when ANY scroll action happens on the page. - // this was impossible to do with normal on/off because 'scroll' doesn't bubble. - // http://stackoverflow.com/a/32954565/96342 - window.addEventListener('scroll', this.handleScrollProxy = function (ev) { - _this.handleScroll($.Event(ev)); - }, true // useCapture - ); - }; - GlobalEmitter.prototype.unbind = function () { - this.stopListeningTo($(document)); - window.removeEventListener('touchmove', this.handleTouchMoveProxy); - window.removeEventListener('scroll', this.handleScrollProxy, true // useCapture - ); - }; - // Touch Handlers - // ----------------------------------------------------------------------------------------------------------------- - GlobalEmitter.prototype.handleTouchStart = function (ev) { - // if a previous touch interaction never ended with a touchend, then implicitly end it, - // but since a new touch interaction is about to begin, don't start the mouse ignore period. - this.stopTouch(ev, true); // skipMouseIgnore=true - this.isTouching = true; - this.trigger('touchstart', ev); - }; - GlobalEmitter.prototype.handleTouchMove = function (ev) { - if (this.isTouching) { - this.trigger('touchmove', ev); - } - }; - GlobalEmitter.prototype.handleTouchCancel = function (ev) { - if (this.isTouching) { - this.trigger('touchcancel', ev); - // Have touchcancel fire an artificial touchend. That way, handlers won't need to listen to both. - // If touchend fires later, it won't have any effect b/c isTouching will be false. - this.stopTouch(ev); - } - }; - GlobalEmitter.prototype.handleTouchEnd = function (ev) { - this.stopTouch(ev); - }; - // Mouse Handlers - // ----------------------------------------------------------------------------------------------------------------- - GlobalEmitter.prototype.handleMouseDown = function (ev) { - if (!this.shouldIgnoreMouse()) { - this.trigger('mousedown', ev); - } - }; - GlobalEmitter.prototype.handleMouseMove = function (ev) { - if (!this.shouldIgnoreMouse()) { - this.trigger('mousemove', ev); - } - }; - GlobalEmitter.prototype.handleMouseUp = function (ev) { - if (!this.shouldIgnoreMouse()) { - this.trigger('mouseup', ev); - } - }; - GlobalEmitter.prototype.handleClick = function (ev) { - if (!this.shouldIgnoreMouse()) { - this.trigger('click', ev); - } - }; - // Misc Handlers - // ----------------------------------------------------------------------------------------------------------------- - GlobalEmitter.prototype.handleSelectStart = function (ev) { - this.trigger('selectstart', ev); - }; - GlobalEmitter.prototype.handleContextMenu = function (ev) { - this.trigger('contextmenu', ev); - }; - GlobalEmitter.prototype.handleScroll = function (ev) { - this.trigger('scroll', ev); - }; - // Utils - // ----------------------------------------------------------------------------------------------------------------- - GlobalEmitter.prototype.stopTouch = function (ev, skipMouseIgnore) { - if (skipMouseIgnore === void 0) { skipMouseIgnore = false; } - if (this.isTouching) { - this.isTouching = false; - this.trigger('touchend', ev); - if (!skipMouseIgnore) { - this.startTouchMouseIgnore(); - } - } - }; - GlobalEmitter.prototype.startTouchMouseIgnore = function () { - var _this = this; - var wait = exportHooks.touchMouseIgnoreWait; - if (wait) { - this.mouseIgnoreDepth++; - setTimeout(function () { - _this.mouseIgnoreDepth--; - }, wait); - } - }; - GlobalEmitter.prototype.shouldIgnoreMouse = function () { - return this.isTouching || Boolean(this.mouseIgnoreDepth); - }; - return GlobalEmitter; -}()); -exports.default = GlobalEmitter; -ListenerMixin_1.default.mixInto(GlobalEmitter); -EmitterMixin_1.default.mixInto(GlobalEmitter); - - -/***/ }), -/* 22 */ -/***/ (function(module, exports, __webpack_require__) { - -Object.defineProperty(exports, "__esModule", { value: true }); -var exportHooks = __webpack_require__(16); -exports.viewHash = {}; -exportHooks.views = exports.viewHash; -function defineView(viewName, viewConfig) { - exports.viewHash[viewName] = viewConfig; -} -exports.defineView = defineView; -function getViewConfig(viewName) { - return exports.viewHash[viewName]; -} -exports.getViewConfig = getViewConfig; - - -/***/ }), -/* 23 */ -/***/ (function(module, exports, __webpack_require__) { - -Object.defineProperty(exports, "__esModule", { value: true }); -var tslib_1 = __webpack_require__(2); -var util_1 = __webpack_require__(4); -var DragListener_1 = __webpack_require__(54); -/* Tracks mouse movements over a component and raises events about which hit the mouse is over. ------------------------------------------------------------------------------------------------------------------------- -options: -- subjectEl -- subjectCenter -*/ -var HitDragListener = /** @class */ (function (_super) { - tslib_1.__extends(HitDragListener, _super); - function HitDragListener(component, options) { - var _this = _super.call(this, options) || this; - _this.component = component; - return _this; - } - // Called when drag listening starts (but a real drag has not necessarily began). - // ev might be undefined if dragging was started manually. - HitDragListener.prototype.handleInteractionStart = function (ev) { - var subjectEl = this.subjectEl; - var subjectRect; - var origPoint; - var point; - this.component.hitsNeeded(); - this.computeScrollBounds(); // for autoscroll - if (ev) { - origPoint = { left: util_1.getEvX(ev), top: util_1.getEvY(ev) }; - point = origPoint; - // constrain the point to bounds of the element being dragged - if (subjectEl) { - subjectRect = util_1.getOuterRect(subjectEl); // used for centering as well - point = util_1.constrainPoint(point, subjectRect); - } - this.origHit = this.queryHit(point.left, point.top); - // treat the center of the subject as the collision point? - if (subjectEl && this.options.subjectCenter) { - // only consider the area the subject overlaps the hit. best for large subjects. - // TODO: skip this if hit didn't supply left/right/top/bottom - if (this.origHit) { - subjectRect = util_1.intersectRects(this.origHit, subjectRect) || - subjectRect; // in case there is no intersection - } - point = util_1.getRectCenter(subjectRect); - } - this.coordAdjust = util_1.diffPoints(point, origPoint); // point - origPoint - } - else { - this.origHit = null; - this.coordAdjust = null; - } - // call the super-method. do it after origHit has been computed - _super.prototype.handleInteractionStart.call(this, ev); - }; - // Called when the actual drag has started - HitDragListener.prototype.handleDragStart = function (ev) { - var hit; - _super.prototype.handleDragStart.call(this, ev); - // might be different from this.origHit if the min-distance is large - hit = this.queryHit(util_1.getEvX(ev), util_1.getEvY(ev)); - // report the initial hit the mouse is over - // especially important if no min-distance and drag starts immediately - if (hit) { - this.handleHitOver(hit); - } - }; - // Called when the drag moves - HitDragListener.prototype.handleDrag = function (dx, dy, ev) { - var hit; - _super.prototype.handleDrag.call(this, dx, dy, ev); - hit = this.queryHit(util_1.getEvX(ev), util_1.getEvY(ev)); - if (!isHitsEqual(hit, this.hit)) { - if (this.hit) { - this.handleHitOut(); - } - if (hit) { - this.handleHitOver(hit); - } - } - }; - // Called when dragging has been stopped - HitDragListener.prototype.handleDragEnd = function (ev) { - this.handleHitDone(); - _super.prototype.handleDragEnd.call(this, ev); - }; - // Called when a the mouse has just moved over a new hit - HitDragListener.prototype.handleHitOver = function (hit) { - var isOrig = isHitsEqual(hit, this.origHit); - this.hit = hit; - this.trigger('hitOver', this.hit, isOrig, this.origHit); - }; - // Called when the mouse has just moved out of a hit - HitDragListener.prototype.handleHitOut = function () { - if (this.hit) { - this.trigger('hitOut', this.hit); - this.handleHitDone(); - this.hit = null; - } - }; - // Called after a hitOut. Also called before a dragStop - HitDragListener.prototype.handleHitDone = function () { - if (this.hit) { - this.trigger('hitDone', this.hit); - } - }; - // Called when the interaction ends, whether there was a real drag or not - HitDragListener.prototype.handleInteractionEnd = function (ev, isCancelled) { - _super.prototype.handleInteractionEnd.call(this, ev, isCancelled); - this.origHit = null; - this.hit = null; - this.component.hitsNotNeeded(); - }; - // Called when scrolling has stopped, whether through auto scroll, or the user scrolling - HitDragListener.prototype.handleScrollEnd = function () { - _super.prototype.handleScrollEnd.call(this); - // hits' absolute positions will be in new places after a user's scroll. - // HACK for recomputing. - if (this.isDragging) { - this.component.releaseHits(); - this.component.prepareHits(); - } - }; - // Gets the hit underneath the coordinates for the given mouse event - HitDragListener.prototype.queryHit = function (left, top) { - if (this.coordAdjust) { - left += this.coordAdjust.left; - top += this.coordAdjust.top; - } - return this.component.queryHit(left, top); - }; - return HitDragListener; -}(DragListener_1.default)); -exports.default = HitDragListener; -// Returns `true` if the hits are identically equal. `false` otherwise. Must be from the same component. -// Two null values will be considered equal, as two "out of the component" states are the same. -function isHitsEqual(hit0, hit1) { - if (!hit0 && !hit1) { - return true; - } - if (hit0 && hit1) { - return hit0.component === hit1.component && - isHitPropsWithin(hit0, hit1) && - isHitPropsWithin(hit1, hit0); // ensures all props are identical - } - return false; -} -// Returns true if all of subHit's non-standard properties are within superHit -function isHitPropsWithin(subHit, superHit) { - for (var propName in subHit) { - if (!/^(component|left|right|top|bottom)$/.test(propName)) { - if (subHit[propName] !== superHit[propName]) { - return false; - } - } - } - return true; -} - - -/***/ }), -/* 24 */, -/* 25 */, -/* 26 */, -/* 27 */, -/* 28 */, -/* 29 */, -/* 30 */, -/* 31 */ -/***/ (function(module, exports, __webpack_require__) { - -Object.defineProperty(exports, "__esModule", { value: true }); -var $ = __webpack_require__(3); -var moment = __webpack_require__(0); -var exportHooks = __webpack_require__(16); -var options_1 = __webpack_require__(32); -var util_1 = __webpack_require__(4); -exports.localeOptionHash = {}; -exportHooks.locales = exports.localeOptionHash; -// NOTE: can't guarantee any of these computations will run because not every locale has datepicker -// configs, so make sure there are English fallbacks for these in the defaults file. -var dpComputableOptions = { - buttonText: function (dpOptions) { - return { - // the translations sometimes wrongly contain HTML entities - prev: util_1.stripHtmlEntities(dpOptions.prevText), - next: util_1.stripHtmlEntities(dpOptions.nextText), - today: util_1.stripHtmlEntities(dpOptions.currentText) - }; - }, - // Produces format strings like "MMMM YYYY" -> "September 2014" - monthYearFormat: function (dpOptions) { - return dpOptions.showMonthAfterYear ? - 'YYYY[' + dpOptions.yearSuffix + '] MMMM' : - 'MMMM YYYY[' + dpOptions.yearSuffix + ']'; - } -}; -var momComputableOptions = { - // Produces format strings like "ddd M/D" -> "Fri 9/15" - dayOfMonthFormat: function (momOptions, fcOptions) { - var format = momOptions.longDateFormat('l'); // for the format like "M/D/YYYY" - // strip the year off the edge, as well as other misc non-whitespace chars - format = format.replace(/^Y+[^\w\s]*|[^\w\s]*Y+$/g, ''); - if (fcOptions.isRTL) { - format += ' ddd'; // for RTL, add day-of-week to end - } - else { - format = 'ddd ' + format; // for LTR, add day-of-week to beginning - } - return format; - }, - // Produces format strings like "h:mma" -> "6:00pm" - mediumTimeFormat: function (momOptions) { - return momOptions.longDateFormat('LT') - .replace(/\s*a$/i, 'a'); // convert AM/PM/am/pm to lowercase. remove any spaces beforehand - }, - // Produces format strings like "h(:mm)a" -> "6pm" / "6:30pm" - smallTimeFormat: function (momOptions) { - return momOptions.longDateFormat('LT') - .replace(':mm', '(:mm)') - .replace(/(\Wmm)$/, '($1)') // like above, but for foreign locales - .replace(/\s*a$/i, 'a'); // convert AM/PM/am/pm to lowercase. remove any spaces beforehand - }, - // Produces format strings like "h(:mm)t" -> "6p" / "6:30p" - extraSmallTimeFormat: function (momOptions) { - return momOptions.longDateFormat('LT') - .replace(':mm', '(:mm)') - .replace(/(\Wmm)$/, '($1)') // like above, but for foreign locales - .replace(/\s*a$/i, 't'); // convert to AM/PM/am/pm to lowercase one-letter. remove any spaces beforehand - }, - // Produces format strings like "ha" / "H" -> "6pm" / "18" - hourFormat: function (momOptions) { - return momOptions.longDateFormat('LT') - .replace(':mm', '') - .replace(/(\Wmm)$/, '') // like above, but for foreign locales - .replace(/\s*a$/i, 'a'); // convert AM/PM/am/pm to lowercase. remove any spaces beforehand - }, - // Produces format strings like "h:mm" -> "6:30" (with no AM/PM) - noMeridiemTimeFormat: function (momOptions) { - return momOptions.longDateFormat('LT') - .replace(/\s*a$/i, ''); // remove trailing AM/PM - } -}; -// options that should be computed off live calendar options (considers override options) -// TODO: best place for this? related to locale? -// TODO: flipping text based on isRTL is a bad idea because the CSS `direction` might want to handle it -var instanceComputableOptions = { - // Produces format strings for results like "Mo 16" - smallDayDateFormat: function (options) { - return options.isRTL ? - 'D dd' : - 'dd D'; - }, - // Produces format strings for results like "Wk 5" - weekFormat: function (options) { - return options.isRTL ? - 'w[ ' + options.weekNumberTitle + ']' : - '[' + options.weekNumberTitle + ' ]w'; - }, - // Produces format strings for results like "Wk5" - smallWeekFormat: function (options) { - return options.isRTL ? - 'w[' + options.weekNumberTitle + ']' : - '[' + options.weekNumberTitle + ']w'; - } -}; -// TODO: make these computable properties in optionsManager -function populateInstanceComputableOptions(options) { - $.each(instanceComputableOptions, function (name, func) { - if (options[name] == null) { - options[name] = func(options); - } - }); -} -exports.populateInstanceComputableOptions = populateInstanceComputableOptions; -// Initialize jQuery UI datepicker translations while using some of the translations -// Will set this as the default locales for datepicker. -function datepickerLocale(localeCode, dpLocaleCode, dpOptions) { - // get the FullCalendar internal option hash for this locale. create if necessary - var fcOptions = exports.localeOptionHash[localeCode] || (exports.localeOptionHash[localeCode] = {}); - // transfer some simple options from datepicker to fc - fcOptions.isRTL = dpOptions.isRTL; - fcOptions.weekNumberTitle = dpOptions.weekHeader; - // compute some more complex options from datepicker - $.each(dpComputableOptions, function (name, func) { - fcOptions[name] = func(dpOptions); - }); - var jqDatePicker = $.datepicker; - // is jQuery UI Datepicker is on the page? - if (jqDatePicker) { - // Register the locale data. - // FullCalendar and MomentJS use locale codes like "pt-br" but Datepicker - // does it like "pt-BR" or if it doesn't have the locale, maybe just "pt". - // Make an alias so the locale can be referenced either way. - jqDatePicker.regional[dpLocaleCode] = - jqDatePicker.regional[localeCode] = // alias - dpOptions; - // Alias 'en' to the default locale data. Do this every time. - jqDatePicker.regional.en = jqDatePicker.regional['']; - // Set as Datepicker's global defaults. - jqDatePicker.setDefaults(dpOptions); - } -} -exports.datepickerLocale = datepickerLocale; -// Sets FullCalendar-specific translations. Will set the locales as the global default. -function locale(localeCode, newFcOptions) { - var fcOptions; - var momOptions; - // get the FullCalendar internal option hash for this locale. create if necessary - fcOptions = exports.localeOptionHash[localeCode] || (exports.localeOptionHash[localeCode] = {}); - // provided new options for this locales? merge them in - if (newFcOptions) { - fcOptions = exports.localeOptionHash[localeCode] = options_1.mergeOptions([fcOptions, newFcOptions]); - } - // compute locale options that weren't defined. - // always do this. newFcOptions can be undefined when initializing from i18n file, - // so no way to tell if this is an initialization or a default-setting. - momOptions = getMomentLocaleData(localeCode); // will fall back to en - $.each(momComputableOptions, function (name, func) { - if (fcOptions[name] == null) { - fcOptions[name] = (func)(momOptions, fcOptions); - } - }); - // set it as the default locale for FullCalendar - options_1.globalDefaults.locale = localeCode; -} -exports.locale = locale; -// Returns moment's internal locale data. If doesn't exist, returns English. -function getMomentLocaleData(localeCode) { - return moment.localeData(localeCode) || moment.localeData('en'); -} -exports.getMomentLocaleData = getMomentLocaleData; -// Initialize English by forcing computation of moment-derived options. -// Also, sets it as the default. -locale('en', options_1.englishDefaults); - - -/***/ }), -/* 32 */ -/***/ (function(module, exports, __webpack_require__) { - -Object.defineProperty(exports, "__esModule", { value: true }); -var util_1 = __webpack_require__(4); -exports.globalDefaults = { - titleRangeSeparator: ' \u2013 ', - monthYearFormat: 'MMMM YYYY', - defaultTimedEventDuration: '02:00:00', - defaultAllDayEventDuration: { days: 1 }, - forceEventDuration: false, - nextDayThreshold: '09:00:00', - // display - columnHeader: true, - defaultView: 'month', - aspectRatio: 1.35, - header: { - left: 'title', - center: '', - right: 'today prev,next' - }, - weekends: true, - weekNumbers: false, - weekNumberTitle: 'W', - weekNumberCalculation: 'local', - // editable: false, - // nowIndicator: false, - scrollTime: '06:00:00', - minTime: '00:00:00', - maxTime: '24:00:00', - showNonCurrentDates: true, - // event ajax - lazyFetching: true, - startParam: 'start', - endParam: 'end', - timezoneParam: 'timezone', - timezone: false, - // allDayDefault: undefined, - // locale - locale: null, - isRTL: false, - buttonText: { - prev: 'prev', - next: 'next', - prevYear: 'prev year', - nextYear: 'next year', - year: 'year', - today: 'today', - month: 'month', - week: 'week', - day: 'day' - }, - // buttonIcons: null, - allDayText: 'all-day', - // allows setting a min-height to the event segment to prevent short events overlapping each other - agendaEventMinHeight: 0, - // jquery-ui theming - theme: false, - // themeButtonIcons: null, - // eventResizableFromStart: false, - dragOpacity: .75, - dragRevertDuration: 500, - dragScroll: true, - // selectable: false, - unselectAuto: true, - // selectMinDistance: 0, - dropAccept: '*', - eventOrder: 'title', - // eventRenderWait: null, - eventLimit: false, - eventLimitText: 'more', - eventLimitClick: 'popover', - dayPopoverFormat: 'LL', - handleWindowResize: true, - windowResizeDelay: 100, - longPressDelay: 1000 -}; -exports.englishDefaults = { - dayPopoverFormat: 'dddd, MMMM D' -}; -exports.rtlDefaults = { - header: { - left: 'next,prev today', - center: '', - right: 'title' - }, - buttonIcons: { - prev: 'right-single-arrow', - next: 'left-single-arrow', - prevYear: 'right-double-arrow', - nextYear: 'left-double-arrow' - }, - themeButtonIcons: { - prev: 'circle-triangle-e', - next: 'circle-triangle-w', - nextYear: 'seek-prev', - prevYear: 'seek-next' - } -}; -var complexOptions = [ - 'header', - 'footer', - 'buttonText', - 'buttonIcons', - 'themeButtonIcons' -]; -// Merges an array of option objects into a single object -function mergeOptions(optionObjs) { - return util_1.mergeProps(optionObjs, complexOptions); -} -exports.mergeOptions = mergeOptions; - - -/***/ }), -/* 33 */ -/***/ (function(module, exports, __webpack_require__) { - -Object.defineProperty(exports, "__esModule", { value: true }); -var tslib_1 = __webpack_require__(2); -var util_1 = __webpack_require__(4); -// Class that all other classes will inherit from -var Class = /** @class */ (function () { - function Class() { - } - // Called on a class to create a subclass. - // LIMITATION: cannot provide a constructor! - Class.extend = function (members) { - var SubClass = /** @class */ (function (_super) { - tslib_1.__extends(SubClass, _super); - function SubClass() { - return _super !== null && _super.apply(this, arguments) || this; - } - return SubClass; - }(this)); - util_1.copyOwnProps(members, SubClass.prototype); - return SubClass; - }; - // Adds new member variables/methods to the class's prototype. - // Can be called with another class, or a plain object hash containing new members. - Class.mixin = function (members) { - util_1.copyOwnProps(members, this.prototype); - }; - return Class; -}()); -exports.default = Class; - - -/***/ }), -/* 34 */ -/***/ (function(module, exports, __webpack_require__) { - -Object.defineProperty(exports, "__esModule", { value: true }); -var $ = __webpack_require__(3); -var ParsableModelMixin_1 = __webpack_require__(208); -var EventDef = /** @class */ (function () { - function EventDef(source) { - this.source = source; - this.className = []; - this.miscProps = {}; - } - EventDef.parse = function (rawInput, source) { - var def = new this(source); - if (def.applyProps(rawInput)) { - return def; - } - return false; - }; - EventDef.normalizeId = function (id) { - return String(id); - }; - EventDef.generateId = function () { - return '_fc' + (EventDef.uuid++); - }; - EventDef.prototype.clone = function () { - var copy = new this.constructor(this.source); - copy.id = this.id; - copy.rawId = this.rawId; - copy.uid = this.uid; // not really unique anymore :( - EventDef.copyVerbatimStandardProps(this, copy); - copy.className = this.className.slice(); // copy - copy.miscProps = $.extend({}, this.miscProps); - return copy; - }; - EventDef.prototype.hasInverseRendering = function () { - return this.getRendering() === 'inverse-background'; - }; - EventDef.prototype.hasBgRendering = function () { - var rendering = this.getRendering(); - return rendering === 'inverse-background' || rendering === 'background'; - }; - EventDef.prototype.getRendering = function () { - if (this.rendering != null) { - return this.rendering; - } - return this.source.rendering; - }; - EventDef.prototype.getConstraint = function () { - if (this.constraint != null) { - return this.constraint; - } - if (this.source.constraint != null) { - return this.source.constraint; - } - return this.source.calendar.opt('eventConstraint'); // what about View option? - }; - EventDef.prototype.getOverlap = function () { - if (this.overlap != null) { - return this.overlap; - } - if (this.source.overlap != null) { - return this.source.overlap; - } - return this.source.calendar.opt('eventOverlap'); // what about View option? - }; - EventDef.prototype.isStartExplicitlyEditable = function () { - if (this.startEditable != null) { - return this.startEditable; - } - return this.source.startEditable; - }; - EventDef.prototype.isDurationExplicitlyEditable = function () { - if (this.durationEditable != null) { - return this.durationEditable; - } - return this.source.durationEditable; - }; - EventDef.prototype.isExplicitlyEditable = function () { - if (this.editable != null) { - return this.editable; - } - return this.source.editable; - }; - EventDef.prototype.toLegacy = function () { - var obj = $.extend({}, this.miscProps); - obj._id = this.uid; - obj.source = this.source; - obj.className = this.className.slice(); // copy - obj.allDay = this.isAllDay(); - if (this.rawId != null) { - obj.id = this.rawId; - } - EventDef.copyVerbatimStandardProps(this, obj); - return obj; - }; - EventDef.prototype.applyManualStandardProps = function (rawProps) { - if (rawProps.id != null) { - this.id = EventDef.normalizeId((this.rawId = rawProps.id)); - } - else { - this.id = EventDef.generateId(); - } - if (rawProps._id != null) { - this.uid = String(rawProps._id); - } - else { - this.uid = EventDef.generateId(); - } - // TODO: converge with EventSource - if ($.isArray(rawProps.className)) { - this.className = rawProps.className; - } - if (typeof rawProps.className === 'string') { - this.className = rawProps.className.split(/\s+/); - } - return true; - }; - EventDef.prototype.applyMiscProps = function (rawProps) { - $.extend(this.miscProps, rawProps); - }; - EventDef.uuid = 0; - EventDef.defineStandardProps = ParsableModelMixin_1.default.defineStandardProps; - EventDef.copyVerbatimStandardProps = ParsableModelMixin_1.default.copyVerbatimStandardProps; - return EventDef; -}()); -exports.default = EventDef; -ParsableModelMixin_1.default.mixInto(EventDef); -EventDef.defineStandardProps({ - // not automatically assigned (`false`) - _id: false, - id: false, - className: false, - source: false, - // automatically assigned (`true`) - title: true, - url: true, - rendering: true, - constraint: true, - overlap: true, - editable: true, - startEditable: true, - durationEditable: true, - color: true, - backgroundColor: true, - borderColor: true, - textColor: true -}); - - -/***/ }), -/* 35 */ -/***/ (function(module, exports, __webpack_require__) { - -Object.defineProperty(exports, "__esModule", { value: true }); -var EventRange_1 = __webpack_require__(211); -var EventFootprint_1 = __webpack_require__(36); -var ComponentFootprint_1 = __webpack_require__(12); -function eventDefsToEventInstances(eventDefs, unzonedRange) { - var eventInstances = []; - var i; - for (i = 0; i < eventDefs.length; i++) { - eventInstances.push.apply(eventInstances, // append - eventDefs[i].buildInstances(unzonedRange)); - } - return eventInstances; -} -exports.eventDefsToEventInstances = eventDefsToEventInstances; -function eventInstanceToEventRange(eventInstance) { - return new EventRange_1.default(eventInstance.dateProfile.unzonedRange, eventInstance.def, eventInstance); -} -exports.eventInstanceToEventRange = eventInstanceToEventRange; -function eventRangeToEventFootprint(eventRange) { - return new EventFootprint_1.default(new ComponentFootprint_1.default(eventRange.unzonedRange, eventRange.eventDef.isAllDay()), eventRange.eventDef, eventRange.eventInstance // might not exist - ); -} -exports.eventRangeToEventFootprint = eventRangeToEventFootprint; -function eventInstanceToUnzonedRange(eventInstance) { - return eventInstance.dateProfile.unzonedRange; -} -exports.eventInstanceToUnzonedRange = eventInstanceToUnzonedRange; -function eventFootprintToComponentFootprint(eventFootprint) { - return eventFootprint.componentFootprint; -} -exports.eventFootprintToComponentFootprint = eventFootprintToComponentFootprint; - - -/***/ }), -/* 36 */ -/***/ (function(module, exports) { - -Object.defineProperty(exports, "__esModule", { value: true }); -var EventFootprint = /** @class */ (function () { - function EventFootprint(componentFootprint, eventDef, eventInstance) { - this.componentFootprint = componentFootprint; - this.eventDef = eventDef; - if (eventInstance) { - this.eventInstance = eventInstance; - } - } - EventFootprint.prototype.getEventLegacy = function () { - return (this.eventInstance || this.eventDef).toLegacy(); - }; - return EventFootprint; -}()); -exports.default = EventFootprint; - - -/***/ }), -/* 37 */ -/***/ (function(module, exports, __webpack_require__) { - -Object.defineProperty(exports, "__esModule", { value: true }); -var util_1 = __webpack_require__(4); -var EventDateProfile_1 = __webpack_require__(17); -var EventDef_1 = __webpack_require__(34); -var EventDefDateMutation_1 = __webpack_require__(50); -var SingleEventDef_1 = __webpack_require__(13); -var EventDefMutation = /** @class */ (function () { - function EventDefMutation() { - } - EventDefMutation.createFromRawProps = function (eventInstance, rawProps, largeUnit) { - var eventDef = eventInstance.def; - var dateProps = {}; - var standardProps = {}; - var miscProps = {}; - var verbatimStandardProps = {}; - var eventDefId = null; - var className = null; - var propName; - var dateProfile; - var dateMutation; - var defMutation; - for (propName in rawProps) { - if (EventDateProfile_1.default.isStandardProp(propName)) { - dateProps[propName] = rawProps[propName]; - } - else if (eventDef.isStandardProp(propName)) { - standardProps[propName] = rawProps[propName]; - } - else if (eventDef.miscProps[propName] !== rawProps[propName]) { - miscProps[propName] = rawProps[propName]; - } - } - dateProfile = EventDateProfile_1.default.parse(dateProps, eventDef.source); - if (dateProfile) { - dateMutation = EventDefDateMutation_1.default.createFromDiff(eventInstance.dateProfile, dateProfile, largeUnit); - } - if (standardProps.id !== eventDef.id) { - eventDefId = standardProps.id; // only apply if there's a change - } - if (!util_1.isArraysEqual(standardProps.className, eventDef.className)) { - className = standardProps.className; // only apply if there's a change - } - EventDef_1.default.copyVerbatimStandardProps(standardProps, // src - verbatimStandardProps // dest - ); - defMutation = new EventDefMutation(); - defMutation.eventDefId = eventDefId; - defMutation.className = className; - defMutation.verbatimStandardProps = verbatimStandardProps; - defMutation.miscProps = miscProps; - if (dateMutation) { - defMutation.dateMutation = dateMutation; - } - return defMutation; - }; - /* - eventDef assumed to be a SingleEventDef. - returns an undo function. - */ - EventDefMutation.prototype.mutateSingle = function (eventDef) { - var origDateProfile; - if (this.dateMutation) { - origDateProfile = eventDef.dateProfile; - eventDef.dateProfile = this.dateMutation.buildNewDateProfile(origDateProfile, eventDef.source.calendar); - } - // can't undo - // TODO: more DRY with EventDef::applyManualStandardProps - if (this.eventDefId != null) { - eventDef.id = EventDef_1.default.normalizeId((eventDef.rawId = this.eventDefId)); - } - // can't undo - // TODO: more DRY with EventDef::applyManualStandardProps - if (this.className) { - eventDef.className = this.className; - } - // can't undo - if (this.verbatimStandardProps) { - SingleEventDef_1.default.copyVerbatimStandardProps(this.verbatimStandardProps, // src - eventDef // dest - ); - } - // can't undo - if (this.miscProps) { - eventDef.applyMiscProps(this.miscProps); - } - if (origDateProfile) { - return function () { - eventDef.dateProfile = origDateProfile; - }; - } - else { - return function () { }; - } - }; - EventDefMutation.prototype.setDateMutation = function (dateMutation) { - if (dateMutation && !dateMutation.isEmpty()) { - this.dateMutation = dateMutation; - } - else { - this.dateMutation = null; - } - }; - EventDefMutation.prototype.isEmpty = function () { - return !this.dateMutation; - }; - return EventDefMutation; -}()); -exports.default = EventDefMutation; - - -/***/ }), -/* 38 */ -/***/ (function(module, exports) { - -Object.defineProperty(exports, "__esModule", { value: true }); -exports.default = { - sourceClasses: [], - registerClass: function (EventSourceClass) { - this.sourceClasses.unshift(EventSourceClass); // give highest priority - }, - parse: function (rawInput, calendar) { - var sourceClasses = this.sourceClasses; - var i; - var eventSource; - for (i = 0; i < sourceClasses.length; i++) { - eventSource = sourceClasses[i].parse(rawInput, calendar); - if (eventSource) { - return eventSource; - } - } - } -}; - - -/***/ }), -/* 39 */ -/***/ (function(module, exports, __webpack_require__) { - -Object.defineProperty(exports, "__esModule", { value: true }); -var tslib_1 = __webpack_require__(2); -var $ = __webpack_require__(3); -var util_1 = __webpack_require__(4); -var Class_1 = __webpack_require__(33); -/* -Embodies a div that has potential scrollbars -*/ -var Scroller = /** @class */ (function (_super) { - tslib_1.__extends(Scroller, _super); - function Scroller(options) { - var _this = _super.call(this) || this; - options = options || {}; - _this.overflowX = options.overflowX || options.overflow || 'auto'; - _this.overflowY = options.overflowY || options.overflow || 'auto'; - return _this; - } - Scroller.prototype.render = function () { - this.el = this.renderEl(); - this.applyOverflow(); - }; - Scroller.prototype.renderEl = function () { - return (this.scrollEl = $('
    ')); - }; - // sets to natural height, unlocks overflow - Scroller.prototype.clear = function () { - this.setHeight('auto'); - this.applyOverflow(); - }; - Scroller.prototype.destroy = function () { - this.el.remove(); - }; - // Overflow - // ----------------------------------------------------------------------------------------------------------------- - Scroller.prototype.applyOverflow = function () { - this.scrollEl.css({ - 'overflow-x': this.overflowX, - 'overflow-y': this.overflowY - }); - }; - // Causes any 'auto' overflow values to resolves to 'scroll' or 'hidden'. - // Useful for preserving scrollbar widths regardless of future resizes. - // Can pass in scrollbarWidths for optimization. - Scroller.prototype.lockOverflow = function (scrollbarWidths) { - var overflowX = this.overflowX; - var overflowY = this.overflowY; - scrollbarWidths = scrollbarWidths || this.getScrollbarWidths(); - if (overflowX === 'auto') { - overflowX = (scrollbarWidths.top || scrollbarWidths.bottom || // horizontal scrollbars? - // OR scrolling pane with massless scrollbars? - this.scrollEl[0].scrollWidth - 1 > this.scrollEl[0].clientWidth) ? 'scroll' : 'hidden'; - } - if (overflowY === 'auto') { - overflowY = (scrollbarWidths.left || scrollbarWidths.right || // vertical scrollbars? - // OR scrolling pane with massless scrollbars? - this.scrollEl[0].scrollHeight - 1 > this.scrollEl[0].clientHeight) ? 'scroll' : 'hidden'; - } - this.scrollEl.css({ 'overflow-x': overflowX, 'overflow-y': overflowY }); - }; - // Getters / Setters - // ----------------------------------------------------------------------------------------------------------------- - Scroller.prototype.setHeight = function (height) { - this.scrollEl.height(height); - }; - Scroller.prototype.getScrollTop = function () { - return this.scrollEl.scrollTop(); - }; - Scroller.prototype.setScrollTop = function (top) { - this.scrollEl.scrollTop(top); - }; - Scroller.prototype.getClientWidth = function () { - return this.scrollEl[0].clientWidth; - }; - Scroller.prototype.getClientHeight = function () { - return this.scrollEl[0].clientHeight; - }; - Scroller.prototype.getScrollbarWidths = function () { - return util_1.getScrollbarWidths(this.scrollEl); - }; - return Scroller; -}(Class_1.default)); -exports.default = Scroller; - - -/***/ }), -/* 40 */ -/***/ (function(module, exports, __webpack_require__) { - -Object.defineProperty(exports, "__esModule", { value: true }); -var tslib_1 = __webpack_require__(2); -var $ = __webpack_require__(3); -var util_1 = __webpack_require__(4); -var DateComponent_1 = __webpack_require__(219); -var GlobalEmitter_1 = __webpack_require__(21); -var InteractiveDateComponent = /** @class */ (function (_super) { - tslib_1.__extends(InteractiveDateComponent, _super); - function InteractiveDateComponent(_view, _options) { - var _this = _super.call(this, _view, _options) || this; - // self-config, overridable by subclasses - _this.segSelector = '.fc-event-container > *'; // what constitutes an event element? - if (_this.dateSelectingClass) { - _this.dateClicking = new _this.dateClickingClass(_this); - } - if (_this.dateSelectingClass) { - _this.dateSelecting = new _this.dateSelectingClass(_this); - } - if (_this.eventPointingClass) { - _this.eventPointing = new _this.eventPointingClass(_this); - } - if (_this.eventDraggingClass && _this.eventPointing) { - _this.eventDragging = new _this.eventDraggingClass(_this, _this.eventPointing); - } - if (_this.eventResizingClass && _this.eventPointing) { - _this.eventResizing = new _this.eventResizingClass(_this, _this.eventPointing); - } - if (_this.externalDroppingClass) { - _this.externalDropping = new _this.externalDroppingClass(_this); - } - return _this; - } - // Sets the container element that the view should render inside of, does global DOM-related initializations, - // and renders all the non-date-related content inside. - InteractiveDateComponent.prototype.setElement = function (el) { - _super.prototype.setElement.call(this, el); - if (this.dateClicking) { - this.dateClicking.bindToEl(el); - } - if (this.dateSelecting) { - this.dateSelecting.bindToEl(el); - } - this.bindAllSegHandlersToEl(el); - }; - InteractiveDateComponent.prototype.removeElement = function () { - this.endInteractions(); - _super.prototype.removeElement.call(this); - }; - InteractiveDateComponent.prototype.executeEventUnrender = function () { - this.endInteractions(); - _super.prototype.executeEventUnrender.call(this); - }; - InteractiveDateComponent.prototype.bindGlobalHandlers = function () { - _super.prototype.bindGlobalHandlers.call(this); - if (this.externalDropping) { - this.externalDropping.bindToDocument(); - } - }; - InteractiveDateComponent.prototype.unbindGlobalHandlers = function () { - _super.prototype.unbindGlobalHandlers.call(this); - if (this.externalDropping) { - this.externalDropping.unbindFromDocument(); - } - }; - InteractiveDateComponent.prototype.bindDateHandlerToEl = function (el, name, handler) { - var _this = this; - // attach a handler to the grid's root element. - // jQuery will take care of unregistering them when removeElement gets called. - this.el.on(name, function (ev) { - if (!$(ev.target).is(_this.segSelector + ':not(.fc-helper),' + // directly on an event element - _this.segSelector + ':not(.fc-helper) *,' + // within an event element - '.fc-more,' + // a "more.." link - 'a[data-goto]' // a clickable nav link - )) { - return handler.call(_this, ev); - } - }); - }; - InteractiveDateComponent.prototype.bindAllSegHandlersToEl = function (el) { - [ - this.eventPointing, - this.eventDragging, - this.eventResizing - ].forEach(function (eventInteraction) { - if (eventInteraction) { - eventInteraction.bindToEl(el); - } - }); - }; - InteractiveDateComponent.prototype.bindSegHandlerToEl = function (el, name, handler) { - var _this = this; - el.on(name, this.segSelector, function (ev) { - var segEl = $(ev.currentTarget); - if (!segEl.is('.fc-helper')) { - var seg = segEl.data('fc-seg'); // grab segment data. put there by View::renderEventsPayload - if (seg && !_this.shouldIgnoreEventPointing()) { - return handler.call(_this, seg, ev); // context will be the Grid - } - } - }); - }; - InteractiveDateComponent.prototype.shouldIgnoreMouse = function () { - // HACK - // This will still work even though bindDateHandlerToEl doesn't use GlobalEmitter. - return GlobalEmitter_1.default.get().shouldIgnoreMouse(); - }; - InteractiveDateComponent.prototype.shouldIgnoreTouch = function () { - var view = this._getView(); - // On iOS (and Android?) when a new selection is initiated overtop another selection, - // the touchend never fires because the elements gets removed mid-touch-interaction (my theory). - // HACK: simply don't allow this to happen. - // ALSO: prevent selection when an *event* is already raised. - return view.isSelected || view.selectedEvent; - }; - InteractiveDateComponent.prototype.shouldIgnoreEventPointing = function () { - // only call the handlers if there is not a drag/resize in progress - return (this.eventDragging && this.eventDragging.isDragging) || - (this.eventResizing && this.eventResizing.isResizing); - }; - InteractiveDateComponent.prototype.canStartSelection = function (seg, ev) { - return util_1.getEvIsTouch(ev) && - !this.canStartResize(seg, ev) && - (this.isEventDefDraggable(seg.footprint.eventDef) || - this.isEventDefResizable(seg.footprint.eventDef)); - }; - InteractiveDateComponent.prototype.canStartDrag = function (seg, ev) { - return !this.canStartResize(seg, ev) && - this.isEventDefDraggable(seg.footprint.eventDef); - }; - InteractiveDateComponent.prototype.canStartResize = function (seg, ev) { - var view = this._getView(); - var eventDef = seg.footprint.eventDef; - return (!util_1.getEvIsTouch(ev) || view.isEventDefSelected(eventDef)) && - this.isEventDefResizable(eventDef) && - $(ev.target).is('.fc-resizer'); - }; - // Kills all in-progress dragging. - // Useful for when public API methods that result in re-rendering are invoked during a drag. - // Also useful for when touch devices misbehave and don't fire their touchend. - InteractiveDateComponent.prototype.endInteractions = function () { - [ - this.dateClicking, - this.dateSelecting, - this.eventPointing, - this.eventDragging, - this.eventResizing - ].forEach(function (interaction) { - if (interaction) { - interaction.end(); - } - }); - }; - // Event Drag-n-Drop - // --------------------------------------------------------------------------------------------------------------- - // Computes if the given event is allowed to be dragged by the user - InteractiveDateComponent.prototype.isEventDefDraggable = function (eventDef) { - return this.isEventDefStartEditable(eventDef); - }; - InteractiveDateComponent.prototype.isEventDefStartEditable = function (eventDef) { - var isEditable = eventDef.isStartExplicitlyEditable(); - if (isEditable == null) { - isEditable = this.opt('eventStartEditable'); - if (isEditable == null) { - isEditable = this.isEventDefGenerallyEditable(eventDef); - } - } - return isEditable; - }; - InteractiveDateComponent.prototype.isEventDefGenerallyEditable = function (eventDef) { - var isEditable = eventDef.isExplicitlyEditable(); - if (isEditable == null) { - isEditable = this.opt('editable'); - } - return isEditable; - }; - // Event Resizing - // --------------------------------------------------------------------------------------------------------------- - // Computes if the given event is allowed to be resized from its starting edge - InteractiveDateComponent.prototype.isEventDefResizableFromStart = function (eventDef) { - return this.opt('eventResizableFromStart') && this.isEventDefResizable(eventDef); - }; - // Computes if the given event is allowed to be resized from its ending edge - InteractiveDateComponent.prototype.isEventDefResizableFromEnd = function (eventDef) { - return this.isEventDefResizable(eventDef); - }; - // Computes if the given event is allowed to be resized by the user at all - InteractiveDateComponent.prototype.isEventDefResizable = function (eventDef) { - var isResizable = eventDef.isDurationExplicitlyEditable(); - if (isResizable == null) { - isResizable = this.opt('eventDurationEditable'); - if (isResizable == null) { - isResizable = this.isEventDefGenerallyEditable(eventDef); - } - } - return isResizable; - }; - // Event Mutation / Constraints - // --------------------------------------------------------------------------------------------------------------- - // Diffs the two dates, returning a duration, based on granularity of the grid - // TODO: port isTimeScale into this system? - InteractiveDateComponent.prototype.diffDates = function (a, b) { - if (this.largeUnit) { - return util_1.diffByUnit(a, b, this.largeUnit); - } - else { - return util_1.diffDayTime(a, b); - } - }; - // is it allowed, in relation to the view's validRange? - // NOTE: very similar to isExternalInstanceGroupAllowed - InteractiveDateComponent.prototype.isEventInstanceGroupAllowed = function (eventInstanceGroup) { - var view = this._getView(); - var dateProfile = this.dateProfile; - var eventFootprints = this.eventRangesToEventFootprints(eventInstanceGroup.getAllEventRanges()); - var i; - for (i = 0; i < eventFootprints.length; i++) { - // TODO: just use getAllEventRanges directly - if (!dateProfile.validUnzonedRange.containsRange(eventFootprints[i].componentFootprint.unzonedRange)) { - return false; - } - } - return view.calendar.constraints.isEventInstanceGroupAllowed(eventInstanceGroup); - }; - // NOTE: very similar to isEventInstanceGroupAllowed - // when it's a completely anonymous external drag, no event. - InteractiveDateComponent.prototype.isExternalInstanceGroupAllowed = function (eventInstanceGroup) { - var view = this._getView(); - var dateProfile = this.dateProfile; - var eventFootprints = this.eventRangesToEventFootprints(eventInstanceGroup.getAllEventRanges()); - var i; - for (i = 0; i < eventFootprints.length; i++) { - if (!dateProfile.validUnzonedRange.containsRange(eventFootprints[i].componentFootprint.unzonedRange)) { - return false; - } - } - for (i = 0; i < eventFootprints.length; i++) { - // treat it as a selection - // TODO: pass in eventInstanceGroup instead - // because we don't want calendar's constraint system to depend on a component's - // determination of footprints. - if (!view.calendar.constraints.isSelectionFootprintAllowed(eventFootprints[i].componentFootprint)) { - return false; - } - } - return true; - }; - return InteractiveDateComponent; -}(DateComponent_1.default)); -exports.default = InteractiveDateComponent; - - -/***/ }), -/* 41 */ -/***/ (function(module, exports, __webpack_require__) { - -Object.defineProperty(exports, "__esModule", { value: true }); -var tslib_1 = __webpack_require__(2); -var $ = __webpack_require__(3); -var moment = __webpack_require__(0); -var util_1 = __webpack_require__(4); -var RenderQueue_1 = __webpack_require__(218); -var DateProfileGenerator_1 = __webpack_require__(221); -var InteractiveDateComponent_1 = __webpack_require__(40); -var GlobalEmitter_1 = __webpack_require__(21); -var UnzonedRange_1 = __webpack_require__(5); -/* An abstract class from which other views inherit from -----------------------------------------------------------------------------------------------------------------------*/ -var View = /** @class */ (function (_super) { - tslib_1.__extends(View, _super); - function View(calendar, viewSpec) { - var _this = _super.call(this, null, viewSpec.options) || this; - _this.batchRenderDepth = 0; - _this.isSelected = false; // boolean whether a range of time is user-selected or not - _this.calendar = calendar; - _this.viewSpec = viewSpec; - // shortcuts - _this.type = viewSpec.type; - // .name is deprecated - _this.name = _this.type; - _this.initRenderQueue(); - _this.initHiddenDays(); - _this.dateProfileGenerator = new _this.dateProfileGeneratorClass(_this); - _this.bindBaseRenderHandlers(); - _this.eventOrderSpecs = util_1.parseFieldSpecs(_this.opt('eventOrder')); - // legacy - if (_this['initialize']) { - _this['initialize'](); - } - return _this; - } - View.prototype._getView = function () { - return this; - }; - // Retrieves an option with the given name - View.prototype.opt = function (name) { - return this.options[name]; - }; - /* Render Queue - ------------------------------------------------------------------------------------------------------------------*/ - View.prototype.initRenderQueue = function () { - this.renderQueue = new RenderQueue_1.default({ - event: this.opt('eventRenderWait') - }); - this.renderQueue.on('start', this.onRenderQueueStart.bind(this)); - this.renderQueue.on('stop', this.onRenderQueueStop.bind(this)); - this.on('before:change', this.startBatchRender); - this.on('change', this.stopBatchRender); - }; - View.prototype.onRenderQueueStart = function () { - this.calendar.freezeContentHeight(); - this.addScroll(this.queryScroll()); - }; - View.prototype.onRenderQueueStop = function () { - if (this.calendar.updateViewSize()) { - this.popScroll(); - } - this.calendar.thawContentHeight(); - }; - View.prototype.startBatchRender = function () { - if (!(this.batchRenderDepth++)) { - this.renderQueue.pause(); - } - }; - View.prototype.stopBatchRender = function () { - if (!(--this.batchRenderDepth)) { - this.renderQueue.resume(); - } - }; - View.prototype.requestRender = function (func, namespace, actionType) { - this.renderQueue.queue(func, namespace, actionType); - }; - // given func will auto-bind to `this` - View.prototype.whenSizeUpdated = function (func) { - if (this.renderQueue.isRunning) { - this.renderQueue.one('stop', func.bind(this)); - } - else { - func.call(this); - } - }; - /* Title and Date Formatting - ------------------------------------------------------------------------------------------------------------------*/ - // Computes what the title at the top of the calendar should be for this view - View.prototype.computeTitle = function (dateProfile) { - var unzonedRange; - // for views that span a large unit of time, show the proper interval, ignoring stray days before and after - if (/^(year|month)$/.test(dateProfile.currentRangeUnit)) { - unzonedRange = dateProfile.currentUnzonedRange; - } - else { - unzonedRange = dateProfile.activeUnzonedRange; - } - return this.formatRange({ - start: this.calendar.msToMoment(unzonedRange.startMs, dateProfile.isRangeAllDay), - end: this.calendar.msToMoment(unzonedRange.endMs, dateProfile.isRangeAllDay) - }, dateProfile.isRangeAllDay, this.opt('titleFormat') || this.computeTitleFormat(dateProfile), this.opt('titleRangeSeparator')); - }; - // Generates the format string that should be used to generate the title for the current date range. - // Attempts to compute the most appropriate format if not explicitly specified with `titleFormat`. - View.prototype.computeTitleFormat = function (dateProfile) { - var currentRangeUnit = dateProfile.currentRangeUnit; - if (currentRangeUnit === 'year') { - return 'YYYY'; - } - else if (currentRangeUnit === 'month') { - return this.opt('monthYearFormat'); // like "September 2014" - } - else if (dateProfile.currentUnzonedRange.as('days') > 1) { - return 'll'; // multi-day range. shorter, like "Sep 9 - 10 2014" - } - else { - return 'LL'; // one day. longer, like "September 9 2014" - } - }; - // Date Setting/Unsetting - // ----------------------------------------------------------------------------------------------------------------- - View.prototype.setDate = function (date) { - var currentDateProfile = this.get('dateProfile'); - var newDateProfile = this.dateProfileGenerator.build(date, undefined, true); // forceToValid=true - if (!currentDateProfile || - !currentDateProfile.activeUnzonedRange.equals(newDateProfile.activeUnzonedRange)) { - this.set('dateProfile', newDateProfile); - } - }; - View.prototype.unsetDate = function () { - this.unset('dateProfile'); - }; - // Event Data - // ----------------------------------------------------------------------------------------------------------------- - View.prototype.fetchInitialEvents = function (dateProfile) { - var calendar = this.calendar; - var forceAllDay = dateProfile.isRangeAllDay && !this.usesMinMaxTime; - return calendar.requestEvents(calendar.msToMoment(dateProfile.activeUnzonedRange.startMs, forceAllDay), calendar.msToMoment(dateProfile.activeUnzonedRange.endMs, forceAllDay)); - }; - View.prototype.bindEventChanges = function () { - this.listenTo(this.calendar, 'eventsReset', this.resetEvents); // TODO: make this a real event - }; - View.prototype.unbindEventChanges = function () { - this.stopListeningTo(this.calendar, 'eventsReset'); - }; - View.prototype.setEvents = function (eventsPayload) { - this.set('currentEvents', eventsPayload); - this.set('hasEvents', true); - }; - View.prototype.unsetEvents = function () { - this.unset('currentEvents'); - this.unset('hasEvents'); - }; - View.prototype.resetEvents = function (eventsPayload) { - this.startBatchRender(); - this.unsetEvents(); - this.setEvents(eventsPayload); - this.stopBatchRender(); - }; - // Date High-level Rendering - // ----------------------------------------------------------------------------------------------------------------- - View.prototype.requestDateRender = function (dateProfile) { - var _this = this; - this.requestRender(function () { - _this.executeDateRender(dateProfile); - }, 'date', 'init'); - }; - View.prototype.requestDateUnrender = function () { - var _this = this; - this.requestRender(function () { - _this.executeDateUnrender(); - }, 'date', 'destroy'); - }; - // if dateProfile not specified, uses current - View.prototype.executeDateRender = function (dateProfile) { - _super.prototype.executeDateRender.call(this, dateProfile); - if (this['render']) { - this['render'](); // TODO: deprecate - } - this.trigger('datesRendered'); - this.addScroll({ isDateInit: true }); - this.startNowIndicator(); // shouldn't render yet because updateSize will be called soon - }; - View.prototype.executeDateUnrender = function () { - this.unselect(); - this.stopNowIndicator(); - this.trigger('before:datesUnrendered'); - if (this['destroy']) { - this['destroy'](); // TODO: deprecate - } - _super.prototype.executeDateUnrender.call(this); - }; - // "Base" rendering - // ----------------------------------------------------------------------------------------------------------------- - View.prototype.bindBaseRenderHandlers = function () { - var _this = this; - this.on('datesRendered', function () { - _this.whenSizeUpdated(_this.triggerViewRender); - }); - this.on('before:datesUnrendered', function () { - _this.triggerViewDestroy(); - }); - }; - View.prototype.triggerViewRender = function () { - this.publiclyTrigger('viewRender', { - context: this, - args: [this, this.el] - }); - }; - View.prototype.triggerViewDestroy = function () { - this.publiclyTrigger('viewDestroy', { - context: this, - args: [this, this.el] - }); - }; - // Event High-level Rendering - // ----------------------------------------------------------------------------------------------------------------- - View.prototype.requestEventsRender = function (eventsPayload) { - var _this = this; - this.requestRender(function () { - _this.executeEventRender(eventsPayload); - _this.whenSizeUpdated(_this.triggerAfterEventsRendered); - }, 'event', 'init'); - }; - View.prototype.requestEventsUnrender = function () { - var _this = this; - this.requestRender(function () { - _this.triggerBeforeEventsDestroyed(); - _this.executeEventUnrender(); - }, 'event', 'destroy'); - }; - // Business Hour High-level Rendering - // ----------------------------------------------------------------------------------------------------------------- - View.prototype.requestBusinessHoursRender = function (businessHourGenerator) { - var _this = this; - this.requestRender(function () { - _this.renderBusinessHours(businessHourGenerator); - }, 'businessHours', 'init'); - }; - View.prototype.requestBusinessHoursUnrender = function () { - var _this = this; - this.requestRender(function () { - _this.unrenderBusinessHours(); - }, 'businessHours', 'destroy'); - }; - // Misc view rendering utils - // ----------------------------------------------------------------------------------------------------------------- - // Binds DOM handlers to elements that reside outside the view container, such as the document - View.prototype.bindGlobalHandlers = function () { - _super.prototype.bindGlobalHandlers.call(this); - this.listenTo(GlobalEmitter_1.default.get(), { - touchstart: this.processUnselect, - mousedown: this.handleDocumentMousedown - }); - }; - // Unbinds DOM handlers from elements that reside outside the view container - View.prototype.unbindGlobalHandlers = function () { - _super.prototype.unbindGlobalHandlers.call(this); - this.stopListeningTo(GlobalEmitter_1.default.get()); - }; - /* Now Indicator - ------------------------------------------------------------------------------------------------------------------*/ - // Immediately render the current time indicator and begins re-rendering it at an interval, - // which is defined by this.getNowIndicatorUnit(). - // TODO: somehow do this for the current whole day's background too - View.prototype.startNowIndicator = function () { - var _this = this; - var unit; - var update; - var delay; // ms wait value - if (this.opt('nowIndicator')) { - unit = this.getNowIndicatorUnit(); - if (unit) { - update = util_1.proxy(this, 'updateNowIndicator'); // bind to `this` - this.initialNowDate = this.calendar.getNow(); - this.initialNowQueriedMs = new Date().valueOf(); - // wait until the beginning of the next interval - delay = this.initialNowDate.clone().startOf(unit).add(1, unit).valueOf() - this.initialNowDate.valueOf(); - this.nowIndicatorTimeoutID = setTimeout(function () { - _this.nowIndicatorTimeoutID = null; - update(); - delay = +moment.duration(1, unit); - delay = Math.max(100, delay); // prevent too frequent - _this.nowIndicatorIntervalID = setInterval(update, delay); // update every interval - }, delay); - } - // rendering will be initiated in updateSize - } - }; - // rerenders the now indicator, computing the new current time from the amount of time that has passed - // since the initial getNow call. - View.prototype.updateNowIndicator = function () { - if (this.isDatesRendered && - this.initialNowDate // activated before? - ) { - this.unrenderNowIndicator(); // won't unrender if unnecessary - this.renderNowIndicator(this.initialNowDate.clone().add(new Date().valueOf() - this.initialNowQueriedMs) // add ms - ); - this.isNowIndicatorRendered = true; - } - }; - // Immediately unrenders the view's current time indicator and stops any re-rendering timers. - // Won't cause side effects if indicator isn't rendered. - View.prototype.stopNowIndicator = function () { - if (this.isNowIndicatorRendered) { - if (this.nowIndicatorTimeoutID) { - clearTimeout(this.nowIndicatorTimeoutID); - this.nowIndicatorTimeoutID = null; - } - if (this.nowIndicatorIntervalID) { - clearInterval(this.nowIndicatorIntervalID); - this.nowIndicatorIntervalID = null; - } - this.unrenderNowIndicator(); - this.isNowIndicatorRendered = false; - } - }; - /* Dimensions - ------------------------------------------------------------------------------------------------------------------*/ - View.prototype.updateSize = function (totalHeight, isAuto, isResize) { - if (this['setHeight']) { - this['setHeight'](totalHeight, isAuto); - } - else { - _super.prototype.updateSize.call(this, totalHeight, isAuto, isResize); - } - this.updateNowIndicator(); - }; - /* Scroller - ------------------------------------------------------------------------------------------------------------------*/ - View.prototype.addScroll = function (scroll) { - var queuedScroll = this.queuedScroll || (this.queuedScroll = {}); - $.extend(queuedScroll, scroll); - }; - View.prototype.popScroll = function () { - this.applyQueuedScroll(); - this.queuedScroll = null; - }; - View.prototype.applyQueuedScroll = function () { - if (this.queuedScroll) { - this.applyScroll(this.queuedScroll); - } - }; - View.prototype.queryScroll = function () { - var scroll = {}; - if (this.isDatesRendered) { - $.extend(scroll, this.queryDateScroll()); - } - return scroll; - }; - View.prototype.applyScroll = function (scroll) { - if (scroll.isDateInit && this.isDatesRendered) { - $.extend(scroll, this.computeInitialDateScroll()); - } - if (this.isDatesRendered) { - this.applyDateScroll(scroll); - } - }; - View.prototype.computeInitialDateScroll = function () { - return {}; // subclasses must implement - }; - View.prototype.queryDateScroll = function () { - return {}; // subclasses must implement - }; - View.prototype.applyDateScroll = function (scroll) { - // subclasses must implement - }; - /* Event Drag-n-Drop - ------------------------------------------------------------------------------------------------------------------*/ - View.prototype.reportEventDrop = function (eventInstance, eventMutation, el, ev) { - var eventManager = this.calendar.eventManager; - var undoFunc = eventManager.mutateEventsWithId(eventInstance.def.id, eventMutation); - var dateMutation = eventMutation.dateMutation; - // update the EventInstance, for handlers - if (dateMutation) { - eventInstance.dateProfile = dateMutation.buildNewDateProfile(eventInstance.dateProfile, this.calendar); - } - this.triggerEventDrop(eventInstance, - // a drop doesn't necessarily mean a date mutation (ex: resource change) - (dateMutation && dateMutation.dateDelta) || moment.duration(), undoFunc, el, ev); - }; - // Triggers event-drop handlers that have subscribed via the API - View.prototype.triggerEventDrop = function (eventInstance, dateDelta, undoFunc, el, ev) { - this.publiclyTrigger('eventDrop', { - context: el[0], - args: [ - eventInstance.toLegacy(), - dateDelta, - undoFunc, - ev, - {}, - this - ] - }); - }; - /* External Element Drag-n-Drop - ------------------------------------------------------------------------------------------------------------------*/ - // Must be called when an external element, via jQuery UI, has been dropped onto the calendar. - // `meta` is the parsed data that has been embedded into the dragging event. - // `dropLocation` is an object that contains the new zoned start/end/allDay values for the event. - View.prototype.reportExternalDrop = function (singleEventDef, isEvent, isSticky, el, ev, ui) { - if (isEvent) { - this.calendar.eventManager.addEventDef(singleEventDef, isSticky); - } - this.triggerExternalDrop(singleEventDef, isEvent, el, ev, ui); - }; - // Triggers external-drop handlers that have subscribed via the API - View.prototype.triggerExternalDrop = function (singleEventDef, isEvent, el, ev, ui) { - // trigger 'drop' regardless of whether element represents an event - this.publiclyTrigger('drop', { - context: el[0], - args: [ - singleEventDef.dateProfile.start.clone(), - ev, - ui, - this - ] - }); - if (isEvent) { - // signal an external event landed - this.publiclyTrigger('eventReceive', { - context: this, - args: [ - singleEventDef.buildInstance().toLegacy(), - this - ] - }); - } - }; - /* Event Resizing - ------------------------------------------------------------------------------------------------------------------*/ - // Must be called when an event in the view has been resized to a new length - View.prototype.reportEventResize = function (eventInstance, eventMutation, el, ev) { - var eventManager = this.calendar.eventManager; - var undoFunc = eventManager.mutateEventsWithId(eventInstance.def.id, eventMutation); - // update the EventInstance, for handlers - eventInstance.dateProfile = eventMutation.dateMutation.buildNewDateProfile(eventInstance.dateProfile, this.calendar); - this.triggerEventResize(eventInstance, eventMutation.dateMutation.endDelta, undoFunc, el, ev); - }; - // Triggers event-resize handlers that have subscribed via the API - View.prototype.triggerEventResize = function (eventInstance, durationDelta, undoFunc, el, ev) { - this.publiclyTrigger('eventResize', { - context: el[0], - args: [ - eventInstance.toLegacy(), - durationDelta, - undoFunc, - ev, - {}, - this - ] - }); - }; - /* Selection (time range) - ------------------------------------------------------------------------------------------------------------------*/ - // Selects a date span on the view. `start` and `end` are both Moments. - // `ev` is the native mouse event that begin the interaction. - View.prototype.select = function (footprint, ev) { - this.unselect(ev); - this.renderSelectionFootprint(footprint); - this.reportSelection(footprint, ev); - }; - View.prototype.renderSelectionFootprint = function (footprint) { - if (this['renderSelection']) { - this['renderSelection'](footprint.toLegacy(this.calendar)); - } - else { - _super.prototype.renderSelectionFootprint.call(this, footprint); - } - }; - // Called when a new selection is made. Updates internal state and triggers handlers. - View.prototype.reportSelection = function (footprint, ev) { - this.isSelected = true; - this.triggerSelect(footprint, ev); - }; - // Triggers handlers to 'select' - View.prototype.triggerSelect = function (footprint, ev) { - var dateProfile = this.calendar.footprintToDateProfile(footprint); // abuse of "Event"DateProfile? - this.publiclyTrigger('select', { - context: this, - args: [ - dateProfile.start, - dateProfile.end, - ev, - this - ] - }); - }; - // Undoes a selection. updates in the internal state and triggers handlers. - // `ev` is the native mouse event that began the interaction. - View.prototype.unselect = function (ev) { - if (this.isSelected) { - this.isSelected = false; - if (this['destroySelection']) { - this['destroySelection'](); // TODO: deprecate - } - this.unrenderSelection(); - this.publiclyTrigger('unselect', { - context: this, - args: [ev, this] - }); - } - }; - /* Event Selection - ------------------------------------------------------------------------------------------------------------------*/ - View.prototype.selectEventInstance = function (eventInstance) { - if (!this.selectedEventInstance || - this.selectedEventInstance !== eventInstance) { - this.unselectEventInstance(); - this.getEventSegs().forEach(function (seg) { - if (seg.footprint.eventInstance === eventInstance && - seg.el // necessary? - ) { - seg.el.addClass('fc-selected'); - } - }); - this.selectedEventInstance = eventInstance; - } - }; - View.prototype.unselectEventInstance = function () { - if (this.selectedEventInstance) { - this.getEventSegs().forEach(function (seg) { - if (seg.el) { - seg.el.removeClass('fc-selected'); - } - }); - this.selectedEventInstance = null; - } - }; - View.prototype.isEventDefSelected = function (eventDef) { - // event references might change on refetchEvents(), while selectedEventInstance doesn't, - // so compare IDs - return this.selectedEventInstance && this.selectedEventInstance.def.id === eventDef.id; - }; - /* Mouse / Touch Unselecting (time range & event unselection) - ------------------------------------------------------------------------------------------------------------------*/ - // TODO: move consistently to down/start or up/end? - // TODO: don't kill previous selection if touch scrolling - View.prototype.handleDocumentMousedown = function (ev) { - if (util_1.isPrimaryMouseButton(ev)) { - this.processUnselect(ev); - } - }; - View.prototype.processUnselect = function (ev) { - this.processRangeUnselect(ev); - this.processEventUnselect(ev); - }; - View.prototype.processRangeUnselect = function (ev) { - var ignore; - // is there a time-range selection? - if (this.isSelected && this.opt('unselectAuto')) { - // only unselect if the clicked element is not identical to or inside of an 'unselectCancel' element - ignore = this.opt('unselectCancel'); - if (!ignore || !$(ev.target).closest(ignore).length) { - this.unselect(ev); - } - } - }; - View.prototype.processEventUnselect = function (ev) { - if (this.selectedEventInstance) { - if (!$(ev.target).closest('.fc-selected').length) { - this.unselectEventInstance(); - } - } - }; - /* Triggers - ------------------------------------------------------------------------------------------------------------------*/ - View.prototype.triggerBaseRendered = function () { - this.publiclyTrigger('viewRender', { - context: this, - args: [this, this.el] - }); - }; - View.prototype.triggerBaseUnrendered = function () { - this.publiclyTrigger('viewDestroy', { - context: this, - args: [this, this.el] - }); - }; - // Triggers handlers to 'dayClick' - // Span has start/end of the clicked area. Only the start is useful. - View.prototype.triggerDayClick = function (footprint, dayEl, ev) { - var dateProfile = this.calendar.footprintToDateProfile(footprint); // abuse of "Event"DateProfile? - this.publiclyTrigger('dayClick', { - context: dayEl, - args: [dateProfile.start, ev, this] - }); - }; - /* Date Utils - ------------------------------------------------------------------------------------------------------------------*/ - // For DateComponent::getDayClasses - View.prototype.isDateInOtherMonth = function (date, dateProfile) { - return false; - }; - // Arguments after name will be forwarded to a hypothetical function value - // WARNING: passed-in arguments will be given to generator functions as-is and can cause side-effects. - // Always clone your objects if you fear mutation. - View.prototype.getUnzonedRangeOption = function (name) { - var val = this.opt(name); - if (typeof val === 'function') { - val = val.apply(null, Array.prototype.slice.call(arguments, 1)); - } - if (val) { - return this.calendar.parseUnzonedRange(val); - } - }; - /* Hidden Days - ------------------------------------------------------------------------------------------------------------------*/ - // Initializes internal variables related to calculating hidden days-of-week - View.prototype.initHiddenDays = function () { - var hiddenDays = this.opt('hiddenDays') || []; // array of day-of-week indices that are hidden - var isHiddenDayHash = []; // is the day-of-week hidden? (hash with day-of-week-index -> bool) - var dayCnt = 0; - var i; - if (this.opt('weekends') === false) { - hiddenDays.push(0, 6); // 0=sunday, 6=saturday - } - for (i = 0; i < 7; i++) { - if (!(isHiddenDayHash[i] = $.inArray(i, hiddenDays) !== -1)) { - dayCnt++; - } - } - if (!dayCnt) { - throw new Error('invalid hiddenDays'); // all days were hidden? bad. - } - this.isHiddenDayHash = isHiddenDayHash; - }; - // Remove days from the beginning and end of the range that are computed as hidden. - // If the whole range is trimmed off, returns null - View.prototype.trimHiddenDays = function (inputUnzonedRange) { - var start = inputUnzonedRange.getStart(); - var end = inputUnzonedRange.getEnd(); - if (start) { - start = this.skipHiddenDays(start); - } - if (end) { - end = this.skipHiddenDays(end, -1, true); - } - if (start === null || end === null || start < end) { - return new UnzonedRange_1.default(start, end); - } - return null; - }; - // Is the current day hidden? - // `day` is a day-of-week index (0-6), or a Moment - View.prototype.isHiddenDay = function (day) { - if (moment.isMoment(day)) { - day = day.day(); - } - return this.isHiddenDayHash[day]; - }; - // Incrementing the current day until it is no longer a hidden day, returning a copy. - // DOES NOT CONSIDER validUnzonedRange! - // If the initial value of `date` is not a hidden day, don't do anything. - // Pass `isExclusive` as `true` if you are dealing with an end date. - // `inc` defaults to `1` (increment one day forward each time) - View.prototype.skipHiddenDays = function (date, inc, isExclusive) { - if (inc === void 0) { inc = 1; } - if (isExclusive === void 0) { isExclusive = false; } - var out = date.clone(); - while (this.isHiddenDayHash[(out.day() + (isExclusive ? inc : 0) + 7) % 7]) { - out.add(inc, 'days'); - } - return out; - }; - return View; -}(InteractiveDateComponent_1.default)); -exports.default = View; -View.prototype.usesMinMaxTime = false; -View.prototype.dateProfileGeneratorClass = DateProfileGenerator_1.default; -View.watch('displayingDates', ['isInDom', 'dateProfile'], function (deps) { - this.requestDateRender(deps.dateProfile); -}, function () { - this.requestDateUnrender(); -}); -View.watch('displayingBusinessHours', ['displayingDates', 'businessHourGenerator'], function (deps) { - this.requestBusinessHoursRender(deps.businessHourGenerator); -}, function () { - this.requestBusinessHoursUnrender(); -}); -View.watch('initialEvents', ['dateProfile'], function (deps) { - return this.fetchInitialEvents(deps.dateProfile); -}); -View.watch('bindingEvents', ['initialEvents'], function (deps) { - this.setEvents(deps.initialEvents); - this.bindEventChanges(); -}, function () { - this.unbindEventChanges(); - this.unsetEvents(); -}); -View.watch('displayingEvents', ['displayingDates', 'hasEvents'], function () { - this.requestEventsRender(this.get('currentEvents')); -}, function () { - this.requestEventsUnrender(); -}); -View.watch('title', ['dateProfile'], function (deps) { - return (this.title = this.computeTitle(deps.dateProfile)); // assign to View for legacy reasons -}); -View.watch('legacyDateProps', ['dateProfile'], function (deps) { - var calendar = this.calendar; - var dateProfile = deps.dateProfile; - // DEPRECATED, but we need to keep it updated... - this.start = calendar.msToMoment(dateProfile.activeUnzonedRange.startMs, dateProfile.isRangeAllDay); - this.end = calendar.msToMoment(dateProfile.activeUnzonedRange.endMs, dateProfile.isRangeAllDay); - this.intervalStart = calendar.msToMoment(dateProfile.currentUnzonedRange.startMs, dateProfile.isRangeAllDay); - this.intervalEnd = calendar.msToMoment(dateProfile.currentUnzonedRange.endMs, dateProfile.isRangeAllDay); -}); - - -/***/ }), -/* 42 */ -/***/ (function(module, exports, __webpack_require__) { - -Object.defineProperty(exports, "__esModule", { value: true }); -var $ = __webpack_require__(3); -var util_1 = __webpack_require__(4); -var EventRenderer = /** @class */ (function () { - function EventRenderer(component, fillRenderer) { - this.view = component._getView(); - this.component = component; - this.fillRenderer = fillRenderer; - } - EventRenderer.prototype.opt = function (name) { - return this.view.opt(name); - }; - // Updates values that rely on options and also relate to range - EventRenderer.prototype.rangeUpdated = function () { - var displayEventTime; - var displayEventEnd; - this.eventTimeFormat = - this.opt('eventTimeFormat') || - this.opt('timeFormat') || // deprecated - this.computeEventTimeFormat(); - displayEventTime = this.opt('displayEventTime'); - if (displayEventTime == null) { - displayEventTime = this.computeDisplayEventTime(); // might be based off of range - } - displayEventEnd = this.opt('displayEventEnd'); - if (displayEventEnd == null) { - displayEventEnd = this.computeDisplayEventEnd(); // might be based off of range - } - this.displayEventTime = displayEventTime; - this.displayEventEnd = displayEventEnd; - }; - EventRenderer.prototype.render = function (eventsPayload) { - var dateProfile = this.component._getDateProfile(); - var eventDefId; - var instanceGroup; - var eventRanges; - var bgRanges = []; - var fgRanges = []; - for (eventDefId in eventsPayload) { - instanceGroup = eventsPayload[eventDefId]; - eventRanges = instanceGroup.sliceRenderRanges(dateProfile.activeUnzonedRange); - if (instanceGroup.getEventDef().hasBgRendering()) { - bgRanges.push.apply(bgRanges, eventRanges); - } - else { - fgRanges.push.apply(fgRanges, eventRanges); - } - } - this.renderBgRanges(bgRanges); - this.renderFgRanges(fgRanges); - }; - EventRenderer.prototype.unrender = function () { - this.unrenderBgRanges(); - this.unrenderFgRanges(); - }; - EventRenderer.prototype.renderFgRanges = function (eventRanges) { - var eventFootprints = this.component.eventRangesToEventFootprints(eventRanges); - var segs = this.component.eventFootprintsToSegs(eventFootprints); - // render an `.el` on each seg - // returns a subset of the segs. segs that were actually rendered - segs = this.renderFgSegEls(segs); - if (this.renderFgSegs(segs) !== false) { - this.fgSegs = segs; - } - }; - EventRenderer.prototype.unrenderFgRanges = function () { - this.unrenderFgSegs(this.fgSegs || []); - this.fgSegs = null; - }; - EventRenderer.prototype.renderBgRanges = function (eventRanges) { - var eventFootprints = this.component.eventRangesToEventFootprints(eventRanges); - var segs = this.component.eventFootprintsToSegs(eventFootprints); - if (this.renderBgSegs(segs) !== false) { - this.bgSegs = segs; - } - }; - EventRenderer.prototype.unrenderBgRanges = function () { - this.unrenderBgSegs(); - this.bgSegs = null; - }; - EventRenderer.prototype.getSegs = function () { - return (this.bgSegs || []).concat(this.fgSegs || []); - }; - // Renders foreground event segments onto the grid - EventRenderer.prototype.renderFgSegs = function (segs) { - // subclasses must implement - // segs already has rendered els, and has been filtered. - return false; // signal failure if not implemented - }; - // Unrenders all currently rendered foreground segments - EventRenderer.prototype.unrenderFgSegs = function (segs) { - // subclasses must implement - }; - EventRenderer.prototype.renderBgSegs = function (segs) { - var _this = this; - if (this.fillRenderer) { - this.fillRenderer.renderSegs('bgEvent', segs, { - getClasses: function (seg) { - return _this.getBgClasses(seg.footprint.eventDef); - }, - getCss: function (seg) { - return { - 'background-color': _this.getBgColor(seg.footprint.eventDef) - }; - }, - filterEl: function (seg, el) { - return _this.filterEventRenderEl(seg.footprint, el); - } - }); - } - else { - return false; // signal failure if no fillRenderer - } - }; - EventRenderer.prototype.unrenderBgSegs = function () { - if (this.fillRenderer) { - this.fillRenderer.unrender('bgEvent'); - } - }; - // Renders and assigns an `el` property for each foreground event segment. - // Only returns segments that successfully rendered. - EventRenderer.prototype.renderFgSegEls = function (segs, disableResizing) { - var _this = this; - if (disableResizing === void 0) { disableResizing = false; } - var hasEventRenderHandlers = this.view.hasPublicHandlers('eventRender'); - var html = ''; - var renderedSegs = []; - var i; - if (segs.length) { - // build a large concatenation of event segment HTML - for (i = 0; i < segs.length; i++) { - this.beforeFgSegHtml(segs[i]); - html += this.fgSegHtml(segs[i], disableResizing); - } - // Grab individual elements from the combined HTML string. Use each as the default rendering. - // Then, compute the 'el' for each segment. An el might be null if the eventRender callback returned false. - $(html).each(function (i, node) { - var seg = segs[i]; - var el = $(node); - if (hasEventRenderHandlers) { - el = _this.filterEventRenderEl(seg.footprint, el); - } - if (el) { - el.data('fc-seg', seg); // used by handlers - seg.el = el; - renderedSegs.push(seg); - } - }); - } - return renderedSegs; - }; - EventRenderer.prototype.beforeFgSegHtml = function (seg) { - }; - // Generates the HTML for the default rendering of a foreground event segment. Used by renderFgSegEls() - EventRenderer.prototype.fgSegHtml = function (seg, disableResizing) { - // subclasses should implement - }; - // Generic utility for generating the HTML classNames for an event segment's element - EventRenderer.prototype.getSegClasses = function (seg, isDraggable, isResizable) { - var classes = [ - 'fc-event', - seg.isStart ? 'fc-start' : 'fc-not-start', - seg.isEnd ? 'fc-end' : 'fc-not-end' - ].concat(this.getClasses(seg.footprint.eventDef)); - if (isDraggable) { - classes.push('fc-draggable'); - } - if (isResizable) { - classes.push('fc-resizable'); - } - // event is currently selected? attach a className. - if (this.view.isEventDefSelected(seg.footprint.eventDef)) { - classes.push('fc-selected'); - } - return classes; - }; - // Given an event and the default element used for rendering, returns the element that should actually be used. - // Basically runs events and elements through the eventRender hook. - EventRenderer.prototype.filterEventRenderEl = function (eventFootprint, el) { - var legacy = eventFootprint.getEventLegacy(); - var custom = this.view.publiclyTrigger('eventRender', { - context: legacy, - args: [legacy, el, this.view] - }); - if (custom === false) { - el = null; - } - else if (custom && custom !== true) { - el = $(custom); - } - return el; - }; - // Compute the text that should be displayed on an event's element. - // `range` can be the Event object itself, or something range-like, with at least a `start`. - // If event times are disabled, or the event has no time, will return a blank string. - // If not specified, formatStr will default to the eventTimeFormat setting, - // and displayEnd will default to the displayEventEnd setting. - EventRenderer.prototype.getTimeText = function (eventFootprint, formatStr, displayEnd) { - return this._getTimeText(eventFootprint.eventInstance.dateProfile.start, eventFootprint.eventInstance.dateProfile.end, eventFootprint.componentFootprint.isAllDay, formatStr, displayEnd); - }; - EventRenderer.prototype._getTimeText = function (start, end, isAllDay, formatStr, displayEnd) { - if (formatStr == null) { - formatStr = this.eventTimeFormat; - } - if (displayEnd == null) { - displayEnd = this.displayEventEnd; - } - if (this.displayEventTime && !isAllDay) { - if (displayEnd && end) { - return this.view.formatRange({ start: start, end: end }, false, // allDay - formatStr); - } - else { - return start.format(formatStr); - } - } - return ''; - }; - EventRenderer.prototype.computeEventTimeFormat = function () { - return this.opt('smallTimeFormat'); - }; - EventRenderer.prototype.computeDisplayEventTime = function () { - return true; - }; - EventRenderer.prototype.computeDisplayEventEnd = function () { - return true; - }; - EventRenderer.prototype.getBgClasses = function (eventDef) { - var classNames = this.getClasses(eventDef); - classNames.push('fc-bgevent'); - return classNames; - }; - EventRenderer.prototype.getClasses = function (eventDef) { - var objs = this.getStylingObjs(eventDef); - var i; - var classNames = []; - for (i = 0; i < objs.length; i++) { - classNames.push.apply(// append - classNames, objs[i].eventClassName || objs[i].className || []); - } - return classNames; - }; - // Utility for generating event skin-related CSS properties - EventRenderer.prototype.getSkinCss = function (eventDef) { - return { - 'background-color': this.getBgColor(eventDef), - 'border-color': this.getBorderColor(eventDef), - color: this.getTextColor(eventDef) - }; - }; - // Queries for caller-specified color, then falls back to default - EventRenderer.prototype.getBgColor = function (eventDef) { - var objs = this.getStylingObjs(eventDef); - var i; - var val; - for (i = 0; i < objs.length && !val; i++) { - val = objs[i].eventBackgroundColor || objs[i].eventColor || - objs[i].backgroundColor || objs[i].color; - } - if (!val) { - val = this.opt('eventBackgroundColor') || this.opt('eventColor'); - } - return val; - }; - // Queries for caller-specified color, then falls back to default - EventRenderer.prototype.getBorderColor = function (eventDef) { - var objs = this.getStylingObjs(eventDef); - var i; - var val; - for (i = 0; i < objs.length && !val; i++) { - val = objs[i].eventBorderColor || objs[i].eventColor || - objs[i].borderColor || objs[i].color; - } - if (!val) { - val = this.opt('eventBorderColor') || this.opt('eventColor'); - } - return val; - }; - // Queries for caller-specified color, then falls back to default - EventRenderer.prototype.getTextColor = function (eventDef) { - var objs = this.getStylingObjs(eventDef); - var i; - var val; - for (i = 0; i < objs.length && !val; i++) { - val = objs[i].eventTextColor || - objs[i].textColor; - } - if (!val) { - val = this.opt('eventTextColor'); - } - return val; - }; - EventRenderer.prototype.getStylingObjs = function (eventDef) { - var objs = this.getFallbackStylingObjs(eventDef); - objs.unshift(eventDef); - return objs; - }; - EventRenderer.prototype.getFallbackStylingObjs = function (eventDef) { - return [eventDef.source]; - }; - EventRenderer.prototype.sortEventSegs = function (segs) { - segs.sort(util_1.proxy(this, 'compareEventSegs')); - }; - // A cmp function for determining which segments should take visual priority - EventRenderer.prototype.compareEventSegs = function (seg1, seg2) { - var f1 = seg1.footprint; - var f2 = seg2.footprint; - var cf1 = f1.componentFootprint; - var cf2 = f2.componentFootprint; - var r1 = cf1.unzonedRange; - var r2 = cf2.unzonedRange; - return r1.startMs - r2.startMs || // earlier events go first - (r2.endMs - r2.startMs) - (r1.endMs - r1.startMs) || // tie? longer events go first - cf2.isAllDay - cf1.isAllDay || // tie? put all-day events first (booleans cast to 0/1) - util_1.compareByFieldSpecs(f1.eventDef, f2.eventDef, this.view.eventOrderSpecs, f1.eventDef.miscProps, f2.eventDef.miscProps); - }; - return EventRenderer; -}()); -exports.default = EventRenderer; - - -/***/ }), -/* 43 */, -/* 44 */, -/* 45 */, -/* 46 */, -/* 47 */ -/***/ (function(module, exports, __webpack_require__) { - -Object.defineProperty(exports, "__esModule", { value: true }); -var moment_ext_1 = __webpack_require__(10); -// Plugin -// ------------------------------------------------------------------------------------------------- -moment_ext_1.newMomentProto.format = function () { - if (this._fullCalendar && arguments[0]) { - return formatDate(this, arguments[0]); // our extended formatting - } - if (this._ambigTime) { - return moment_ext_1.oldMomentFormat(englishMoment(this), 'YYYY-MM-DD'); - } - if (this._ambigZone) { - return moment_ext_1.oldMomentFormat(englishMoment(this), 'YYYY-MM-DD[T]HH:mm:ss'); - } - if (this._fullCalendar) { - // moment.format() doesn't ensure english, but we want to. - return moment_ext_1.oldMomentFormat(englishMoment(this)); - } - return moment_ext_1.oldMomentProto.format.apply(this, arguments); -}; -moment_ext_1.newMomentProto.toISOString = function () { - if (this._ambigTime) { - return moment_ext_1.oldMomentFormat(englishMoment(this), 'YYYY-MM-DD'); - } - if (this._ambigZone) { - return moment_ext_1.oldMomentFormat(englishMoment(this), 'YYYY-MM-DD[T]HH:mm:ss'); - } - if (this._fullCalendar) { - // depending on browser, moment might not output english. ensure english. - // https://github.com/moment/moment/blob/2.18.1/src/lib/moment/format.js#L22 - return moment_ext_1.oldMomentProto.toISOString.apply(englishMoment(this), arguments); - } - return moment_ext_1.oldMomentProto.toISOString.apply(this, arguments); -}; -function englishMoment(mom) { - if (mom.locale() !== 'en') { - return mom.clone().locale('en'); - } - return mom; -} -// Config -// --------------------------------------------------------------------------------------------------------------------- -/* -Inserted between chunks in the fake ("intermediate") formatting string. -Important that it passes as whitespace (\s) because moment often identifies non-standalone months -via a regexp with an \s. -*/ -var PART_SEPARATOR = '\u000b'; // vertical tab -/* -Inserted as the first character of a literal-text chunk to indicate that the literal text is not actually literal text, -but rather, a "special" token that has custom rendering (see specialTokens map). -*/ -var SPECIAL_TOKEN_MARKER = '\u001f'; // information separator 1 -/* -Inserted at the beginning and end of a span of text that must have non-zero numeric characters. -Handling of these markers is done in a post-processing step at the very end of text rendering. -*/ -var MAYBE_MARKER = '\u001e'; // information separator 2 -var MAYBE_REGEXP = new RegExp(MAYBE_MARKER + '([^' + MAYBE_MARKER + ']*)' + MAYBE_MARKER, 'g'); // must be global -/* -Addition formatting tokens we want recognized -*/ -var specialTokens = { - t: function (date) { - return moment_ext_1.oldMomentFormat(date, 'a').charAt(0); - }, - T: function (date) { - return moment_ext_1.oldMomentFormat(date, 'A').charAt(0); - } -}; -/* -The first characters of formatting tokens for units that are 1 day or larger. -`value` is for ranking relative size (lower means bigger). -`unit` is a normalized unit, used for comparing moments. -*/ -var largeTokenMap = { - Y: { value: 1, unit: 'year' }, - M: { value: 2, unit: 'month' }, - W: { value: 3, unit: 'week' }, - w: { value: 3, unit: 'week' }, - D: { value: 4, unit: 'day' }, - d: { value: 4, unit: 'day' } // day of week -}; -// Single Date Formatting -// --------------------------------------------------------------------------------------------------------------------- -/* -Formats `date` with a Moment formatting string, but allow our non-zero areas and special token -*/ -function formatDate(date, formatStr) { - return renderFakeFormatString(getParsedFormatString(formatStr).fakeFormatString, date); -} -exports.formatDate = formatDate; -// Date Range Formatting -// ------------------------------------------------------------------------------------------------- -// TODO: make it work with timezone offset -/* -Using a formatting string meant for a single date, generate a range string, like -"Sep 2 - 9 2013", that intelligently inserts a separator where the dates differ. -If the dates are the same as far as the format string is concerned, just return a single -rendering of one date, without any separator. -*/ -function formatRange(date1, date2, formatStr, separator, isRTL) { - var localeData; - date1 = moment_ext_1.default.parseZone(date1); - date2 = moment_ext_1.default.parseZone(date2); - localeData = date1.localeData(); - // Expand localized format strings, like "LL" -> "MMMM D YYYY". - // BTW, this is not important for `formatDate` because it is impossible to put custom tokens - // or non-zero areas in Moment's localized format strings. - formatStr = localeData.longDateFormat(formatStr) || formatStr; - return renderParsedFormat(getParsedFormatString(formatStr), date1, date2, separator || ' - ', isRTL); -} -exports.formatRange = formatRange; -/* -Renders a range with an already-parsed format string. -*/ -function renderParsedFormat(parsedFormat, date1, date2, separator, isRTL) { - var sameUnits = parsedFormat.sameUnits; - var unzonedDate1 = date1.clone().stripZone(); // for same-unit comparisons - var unzonedDate2 = date2.clone().stripZone(); // " - var renderedParts1 = renderFakeFormatStringParts(parsedFormat.fakeFormatString, date1); - var renderedParts2 = renderFakeFormatStringParts(parsedFormat.fakeFormatString, date2); - var leftI; - var leftStr = ''; - var rightI; - var rightStr = ''; - var middleI; - var middleStr1 = ''; - var middleStr2 = ''; - var middleStr = ''; - // Start at the leftmost side of the formatting string and continue until you hit a token - // that is not the same between dates. - for (leftI = 0; leftI < sameUnits.length && (!sameUnits[leftI] || unzonedDate1.isSame(unzonedDate2, sameUnits[leftI])); leftI++) { - leftStr += renderedParts1[leftI]; - } - // Similarly, start at the rightmost side of the formatting string and move left - for (rightI = sameUnits.length - 1; rightI > leftI && (!sameUnits[rightI] || unzonedDate1.isSame(unzonedDate2, sameUnits[rightI])); rightI--) { - // If current chunk is on the boundary of unique date-content, and is a special-case - // date-formatting postfix character, then don't consume it. Consider it unique date-content. - // TODO: make configurable - if (rightI - 1 === leftI && renderedParts1[rightI] === '.') { - break; - } - rightStr = renderedParts1[rightI] + rightStr; - } - // The area in the middle is different for both of the dates. - // Collect them distinctly so we can jam them together later. - for (middleI = leftI; middleI <= rightI; middleI++) { - middleStr1 += renderedParts1[middleI]; - middleStr2 += renderedParts2[middleI]; - } - if (middleStr1 || middleStr2) { - if (isRTL) { - middleStr = middleStr2 + separator + middleStr1; - } - else { - middleStr = middleStr1 + separator + middleStr2; - } - } - return processMaybeMarkers(leftStr + middleStr + rightStr); -} -// Format String Parsing -// --------------------------------------------------------------------------------------------------------------------- -var parsedFormatStrCache = {}; -/* -Returns a parsed format string, leveraging a cache. -*/ -function getParsedFormatString(formatStr) { - return parsedFormatStrCache[formatStr] || - (parsedFormatStrCache[formatStr] = parseFormatString(formatStr)); -} -/* -Parses a format string into the following: -- fakeFormatString: a momentJS formatting string, littered with special control characters that get post-processed. -- sameUnits: for every part in fakeFormatString, if the part is a token, the value will be a unit string (like "day"), - that indicates how similar a range's start & end must be in order to share the same formatted text. - If not a token, then the value is null. - Always a flat array (not nested liked "chunks"). -*/ -function parseFormatString(formatStr) { - var chunks = chunkFormatString(formatStr); - return { - fakeFormatString: buildFakeFormatString(chunks), - sameUnits: buildSameUnits(chunks) - }; -} -/* -Break the formatting string into an array of chunks. -A 'maybe' chunk will have nested chunks. -*/ -function chunkFormatString(formatStr) { - var chunks = []; - var match; - // TODO: more descrimination - // \4 is a backreference to the first character of a multi-character set. - var chunker = /\[([^\]]*)\]|\(([^\)]*)\)|(LTS|LT|(\w)\4*o?)|([^\w\[\(]+)/g; - while ((match = chunker.exec(formatStr))) { - if (match[1]) { - chunks.push.apply(chunks, // append - splitStringLiteral(match[1])); - } - else if (match[2]) { - chunks.push({ maybe: chunkFormatString(match[2]) }); - } - else if (match[3]) { - chunks.push({ token: match[3] }); - } - else if (match[5]) { - chunks.push.apply(chunks, // append - splitStringLiteral(match[5])); - } - } - return chunks; -} -/* -Potentially splits a literal-text string into multiple parts. For special cases. -*/ -function splitStringLiteral(s) { - if (s === '. ') { - return ['.', ' ']; // for locales with periods bound to the end of each year/month/date - } - else { - return [s]; - } -} -/* -Given chunks parsed from a real format string, generate a fake (aka "intermediate") format string with special control -characters that will eventually be given to moment for formatting, and then post-processed. -*/ -function buildFakeFormatString(chunks) { - var parts = []; - var i; - var chunk; - for (i = 0; i < chunks.length; i++) { - chunk = chunks[i]; - if (typeof chunk === 'string') { - parts.push('[' + chunk + ']'); - } - else if (chunk.token) { - if (chunk.token in specialTokens) { - parts.push(SPECIAL_TOKEN_MARKER + // useful during post-processing - '[' + chunk.token + ']' // preserve as literal text - ); - } - else { - parts.push(chunk.token); // unprotected text implies a format string - } - } - else if (chunk.maybe) { - parts.push(MAYBE_MARKER + // useful during post-processing - buildFakeFormatString(chunk.maybe) + - MAYBE_MARKER); - } - } - return parts.join(PART_SEPARATOR); -} -/* -Given parsed chunks from a real formatting string, generates an array of unit strings (like "day") that indicate -in which regard two dates must be similar in order to share range formatting text. -The `chunks` can be nested (because of "maybe" chunks), however, the returned array will be flat. -*/ -function buildSameUnits(chunks) { - var units = []; - var i; - var chunk; - var tokenInfo; - for (i = 0; i < chunks.length; i++) { - chunk = chunks[i]; - if (chunk.token) { - tokenInfo = largeTokenMap[chunk.token.charAt(0)]; - units.push(tokenInfo ? tokenInfo.unit : 'second'); // default to a very strict same-second - } - else if (chunk.maybe) { - units.push.apply(units, // append - buildSameUnits(chunk.maybe)); - } - else { - units.push(null); - } - } - return units; -} -// Rendering to text -// --------------------------------------------------------------------------------------------------------------------- -/* -Formats a date with a fake format string, post-processes the control characters, then returns. -*/ -function renderFakeFormatString(fakeFormatString, date) { - return processMaybeMarkers(renderFakeFormatStringParts(fakeFormatString, date).join('')); -} -/* -Formats a date into parts that will have been post-processed, EXCEPT for the "maybe" markers. -*/ -function renderFakeFormatStringParts(fakeFormatString, date) { - var parts = []; - var fakeRender = moment_ext_1.oldMomentFormat(date, fakeFormatString); - var fakeParts = fakeRender.split(PART_SEPARATOR); - var i; - var fakePart; - for (i = 0; i < fakeParts.length; i++) { - fakePart = fakeParts[i]; - if (fakePart.charAt(0) === SPECIAL_TOKEN_MARKER) { - parts.push( - // the literal string IS the token's name. - // call special token's registered function. - specialTokens[fakePart.substring(1)](date)); - } - else { - parts.push(fakePart); - } - } - return parts; -} -/* -Accepts an almost-finally-formatted string and processes the "maybe" control characters, returning a new string. -*/ -function processMaybeMarkers(s) { - return s.replace(MAYBE_REGEXP, function (m0, m1) { - if (m1.match(/[1-9]/)) { - return m1; - } - else { - return ''; - } - }); -} -// Misc Utils -// ------------------------------------------------------------------------------------------------- -/* -Returns a unit string, either 'year', 'month', 'day', or null for the most granular formatting token in the string. -*/ -function queryMostGranularFormatUnit(formatStr) { - var chunks = chunkFormatString(formatStr); - var i; - var chunk; - var candidate; - var best; - for (i = 0; i < chunks.length; i++) { - chunk = chunks[i]; - if (chunk.token) { - candidate = largeTokenMap[chunk.token.charAt(0)]; - if (candidate) { - if (!best || candidate.value > best.value) { - best = candidate; - } - } - } - } - if (best) { - return best.unit; - } - return null; -} -exports.queryMostGranularFormatUnit = queryMostGranularFormatUnit; - - -/***/ }), -/* 48 */ -/***/ (function(module, exports, __webpack_require__) { - -Object.defineProperty(exports, "__esModule", { value: true }); -var tslib_1 = __webpack_require__(2); -var Class_1 = __webpack_require__(33); -var EmitterMixin_1 = __webpack_require__(11); -var ListenerMixin_1 = __webpack_require__(7); -var Model = /** @class */ (function (_super) { - tslib_1.__extends(Model, _super); - function Model() { - var _this = _super.call(this) || this; - _this._watchers = {}; - _this._props = {}; - _this.applyGlobalWatchers(); - _this.constructed(); - return _this; - } - Model.watch = function (name) { - var args = []; - for (var _i = 1; _i < arguments.length; _i++) { - args[_i - 1] = arguments[_i]; - } - // subclasses should make a masked-copy of the superclass's map - // TODO: write test - if (!this.prototype.hasOwnProperty('_globalWatchArgs')) { - this.prototype._globalWatchArgs = Object.create(this.prototype._globalWatchArgs); - } - this.prototype._globalWatchArgs[name] = args; - }; - Model.prototype.constructed = function () { - // useful for monkeypatching. TODO: BaseClass? - }; - Model.prototype.applyGlobalWatchers = function () { - var map = this._globalWatchArgs; - var name; - for (name in map) { - this.watch.apply(this, [name].concat(map[name])); - } - }; - Model.prototype.has = function (name) { - return name in this._props; - }; - Model.prototype.get = function (name) { - if (name === undefined) { - return this._props; - } - return this._props[name]; - }; - Model.prototype.set = function (name, val) { - var newProps; - if (typeof name === 'string') { - newProps = {}; - newProps[name] = val === undefined ? null : val; - } - else { - newProps = name; - } - this.setProps(newProps); - }; - Model.prototype.reset = function (newProps) { - var oldProps = this._props; - var changeset = {}; // will have undefined's to signal unsets - var name; - for (name in oldProps) { - changeset[name] = undefined; - } - for (name in newProps) { - changeset[name] = newProps[name]; - } - this.setProps(changeset); - }; - Model.prototype.unset = function (name) { - var newProps = {}; - var names; - var i; - if (typeof name === 'string') { - names = [name]; - } - else { - names = name; - } - for (i = 0; i < names.length; i++) { - newProps[names[i]] = undefined; - } - this.setProps(newProps); - }; - Model.prototype.setProps = function (newProps) { - var changedProps = {}; - var changedCnt = 0; - var name; - var val; - for (name in newProps) { - val = newProps[name]; - // a change in value? - // if an object, don't check equality, because might have been mutated internally. - // TODO: eventually enforce immutability. - if (typeof val === 'object' || - val !== this._props[name]) { - changedProps[name] = val; - changedCnt++; - } - } - if (changedCnt) { - this.trigger('before:batchChange', changedProps); - for (name in changedProps) { - val = changedProps[name]; - this.trigger('before:change', name, val); - this.trigger('before:change:' + name, val); - } - for (name in changedProps) { - val = changedProps[name]; - if (val === undefined) { - delete this._props[name]; - } - else { - this._props[name] = val; - } - this.trigger('change:' + name, val); - this.trigger('change', name, val); - } - this.trigger('batchChange', changedProps); - } - }; - Model.prototype.watch = function (name, depList, startFunc, stopFunc) { - var _this = this; - this.unwatch(name); - this._watchers[name] = this._watchDeps(depList, function (deps) { - var res = startFunc.call(_this, deps); - if (res && res.then) { - _this.unset(name); // put in an unset state while resolving - res.then(function (val) { - _this.set(name, val); - }); - } - else { - _this.set(name, res); - } - }, function (deps) { - _this.unset(name); - if (stopFunc) { - stopFunc.call(_this, deps); - } - }); - }; - Model.prototype.unwatch = function (name) { - var watcher = this._watchers[name]; - if (watcher) { - delete this._watchers[name]; - watcher.teardown(); - } - }; - Model.prototype._watchDeps = function (depList, startFunc, stopFunc) { - var _this = this; - var queuedChangeCnt = 0; - var depCnt = depList.length; - var satisfyCnt = 0; - var values = {}; // what's passed as the `deps` arguments - var bindTuples = []; // array of [ eventName, handlerFunc ] arrays - var isCallingStop = false; - var onBeforeDepChange = function (depName, val, isOptional) { - queuedChangeCnt++; - if (queuedChangeCnt === 1) { - if (satisfyCnt === depCnt) { - isCallingStop = true; - stopFunc(values); - isCallingStop = false; - } - } - }; - var onDepChange = function (depName, val, isOptional) { - if (val === undefined) { - // required dependency that was previously set? - if (!isOptional && values[depName] !== undefined) { - satisfyCnt--; - } - delete values[depName]; - } - else { - // required dependency that was previously unset? - if (!isOptional && values[depName] === undefined) { - satisfyCnt++; - } - values[depName] = val; - } - queuedChangeCnt--; - if (!queuedChangeCnt) { - // now finally satisfied or satisfied all along? - if (satisfyCnt === depCnt) { - // if the stopFunc initiated another value change, ignore it. - // it will be processed by another change event anyway. - if (!isCallingStop) { - startFunc(values); - } - } - } - }; - // intercept for .on() that remembers handlers - var bind = function (eventName, handler) { - _this.on(eventName, handler); - bindTuples.push([eventName, handler]); - }; - // listen to dependency changes - depList.forEach(function (depName) { - var isOptional = false; - if (depName.charAt(0) === '?') { - depName = depName.substring(1); - isOptional = true; - } - bind('before:change:' + depName, function (val) { - onBeforeDepChange(depName, val, isOptional); - }); - bind('change:' + depName, function (val) { - onDepChange(depName, val, isOptional); - }); - }); - // process current dependency values - depList.forEach(function (depName) { - var isOptional = false; - if (depName.charAt(0) === '?') { - depName = depName.substring(1); - isOptional = true; - } - if (_this.has(depName)) { - values[depName] = _this.get(depName); - satisfyCnt++; - } - else if (isOptional) { - satisfyCnt++; - } - }); - // initially satisfied - if (satisfyCnt === depCnt) { - startFunc(values); - } - return { - teardown: function () { - // remove all handlers - for (var i = 0; i < bindTuples.length; i++) { - _this.off(bindTuples[i][0], bindTuples[i][1]); - } - bindTuples = null; - // was satisfied, so call stopFunc - if (satisfyCnt === depCnt) { - stopFunc(); - } - }, - flash: function () { - if (satisfyCnt === depCnt) { - stopFunc(); - startFunc(values); - } - } - }; - }; - Model.prototype.flash = function (name) { - var watcher = this._watchers[name]; - if (watcher) { - watcher.flash(); - } - }; - return Model; -}(Class_1.default)); -exports.default = Model; -Model.prototype._globalWatchArgs = {}; // mutation protection in Model.watch -EmitterMixin_1.default.mixInto(Model); -ListenerMixin_1.default.mixInto(Model); - - -/***/ }), -/* 49 */ -/***/ (function(module, exports, __webpack_require__) { - -Object.defineProperty(exports, "__esModule", { value: true }); -var moment = __webpack_require__(0); -var util_1 = __webpack_require__(4); -var SingleEventDef_1 = __webpack_require__(13); -var RecurringEventDef_1 = __webpack_require__(210); -exports.default = { - parse: function (eventInput, source) { - if (util_1.isTimeString(eventInput.start) || moment.isDuration(eventInput.start) || - util_1.isTimeString(eventInput.end) || moment.isDuration(eventInput.end)) { - return RecurringEventDef_1.default.parse(eventInput, source); - } - else { - return SingleEventDef_1.default.parse(eventInput, source); - } - } -}; - - -/***/ }), -/* 50 */ -/***/ (function(module, exports, __webpack_require__) { - -Object.defineProperty(exports, "__esModule", { value: true }); -var util_1 = __webpack_require__(4); -var EventDateProfile_1 = __webpack_require__(17); -var EventDefDateMutation = /** @class */ (function () { - function EventDefDateMutation() { - this.clearEnd = false; - this.forceTimed = false; - this.forceAllDay = false; - } - EventDefDateMutation.createFromDiff = function (dateProfile0, dateProfile1, largeUnit) { - var clearEnd = dateProfile0.end && !dateProfile1.end; - var forceTimed = dateProfile0.isAllDay() && !dateProfile1.isAllDay(); - var forceAllDay = !dateProfile0.isAllDay() && dateProfile1.isAllDay(); - var dateDelta; - var endDiff; - var endDelta; - var mutation; - // subtracts the dates in the appropriate way, returning a duration - function subtractDates(date1, date0) { - if (largeUnit) { - return util_1.diffByUnit(date1, date0, largeUnit); // poorly named - } - else if (dateProfile1.isAllDay()) { - return util_1.diffDay(date1, date0); // poorly named - } - else { - return util_1.diffDayTime(date1, date0); // poorly named - } - } - dateDelta = subtractDates(dateProfile1.start, dateProfile0.start); - if (dateProfile1.end) { - // use unzonedRanges because dateProfile0.end might be null - endDiff = subtractDates(dateProfile1.unzonedRange.getEnd(), dateProfile0.unzonedRange.getEnd()); - endDelta = endDiff.subtract(dateDelta); - } - mutation = new EventDefDateMutation(); - mutation.clearEnd = clearEnd; - mutation.forceTimed = forceTimed; - mutation.forceAllDay = forceAllDay; - mutation.setDateDelta(dateDelta); - mutation.setEndDelta(endDelta); - return mutation; - }; - /* - returns an undo function. - */ - EventDefDateMutation.prototype.buildNewDateProfile = function (eventDateProfile, calendar) { - var start = eventDateProfile.start.clone(); - var end = null; - var shouldRezone = false; - if (eventDateProfile.end && !this.clearEnd) { - end = eventDateProfile.end.clone(); - } - else if (this.endDelta && !end) { - end = calendar.getDefaultEventEnd(eventDateProfile.isAllDay(), start); - } - if (this.forceTimed) { - shouldRezone = true; - if (!start.hasTime()) { - start.time(0); - } - if (end && !end.hasTime()) { - end.time(0); - } - } - else if (this.forceAllDay) { - if (start.hasTime()) { - start.stripTime(); - } - if (end && end.hasTime()) { - end.stripTime(); - } - } - if (this.dateDelta) { - shouldRezone = true; - start.add(this.dateDelta); - if (end) { - end.add(this.dateDelta); - } - } - // do this before adding startDelta to start, so we can work off of start - if (this.endDelta) { - shouldRezone = true; - end.add(this.endDelta); - } - if (this.startDelta) { - shouldRezone = true; - start.add(this.startDelta); - } - if (shouldRezone) { - start = calendar.applyTimezone(start); - if (end) { - end = calendar.applyTimezone(end); - } - } - // TODO: okay to access calendar option? - if (!end && calendar.opt('forceEventDuration')) { - end = calendar.getDefaultEventEnd(eventDateProfile.isAllDay(), start); - } - return new EventDateProfile_1.default(start, end, calendar); - }; - EventDefDateMutation.prototype.setDateDelta = function (dateDelta) { - if (dateDelta && dateDelta.valueOf()) { - this.dateDelta = dateDelta; - } - else { - this.dateDelta = null; - } - }; - EventDefDateMutation.prototype.setStartDelta = function (startDelta) { - if (startDelta && startDelta.valueOf()) { - this.startDelta = startDelta; - } - else { - this.startDelta = null; - } - }; - EventDefDateMutation.prototype.setEndDelta = function (endDelta) { - if (endDelta && endDelta.valueOf()) { - this.endDelta = endDelta; - } - else { - this.endDelta = null; - } - }; - EventDefDateMutation.prototype.isEmpty = function () { - return !this.clearEnd && !this.forceTimed && !this.forceAllDay && - !this.dateDelta && !this.startDelta && !this.endDelta; - }; - return EventDefDateMutation; -}()); -exports.default = EventDefDateMutation; - - -/***/ }), -/* 51 */ -/***/ (function(module, exports, __webpack_require__) { - -Object.defineProperty(exports, "__esModule", { value: true }); -var StandardTheme_1 = __webpack_require__(213); -var JqueryUiTheme_1 = __webpack_require__(214); -var themeClassHash = {}; -function defineThemeSystem(themeName, themeClass) { - themeClassHash[themeName] = themeClass; -} -exports.defineThemeSystem = defineThemeSystem; -function getThemeSystemClass(themeSetting) { - if (!themeSetting) { - return StandardTheme_1.default; - } - else if (themeSetting === true) { - return JqueryUiTheme_1.default; - } - else { - return themeClassHash[themeSetting]; - } -} -exports.getThemeSystemClass = getThemeSystemClass; - - -/***/ }), -/* 52 */ -/***/ (function(module, exports, __webpack_require__) { - -Object.defineProperty(exports, "__esModule", { value: true }); -var tslib_1 = __webpack_require__(2); -var $ = __webpack_require__(3); -var util_1 = __webpack_require__(4); -var Promise_1 = __webpack_require__(20); -var EventSource_1 = __webpack_require__(6); -var SingleEventDef_1 = __webpack_require__(13); -var ArrayEventSource = /** @class */ (function (_super) { - tslib_1.__extends(ArrayEventSource, _super); - function ArrayEventSource(calendar) { - var _this = _super.call(this, calendar) || this; - _this.eventDefs = []; // for if setRawEventDefs is never called - return _this; - } - ArrayEventSource.parse = function (rawInput, calendar) { - var rawProps; - // normalize raw input - if ($.isArray(rawInput.events)) { - rawProps = rawInput; - } - else if ($.isArray(rawInput)) { - rawProps = { events: rawInput }; - } - if (rawProps) { - return EventSource_1.default.parse.call(this, rawProps, calendar); - } - return false; - }; - ArrayEventSource.prototype.setRawEventDefs = function (rawEventDefs) { - this.rawEventDefs = rawEventDefs; - this.eventDefs = this.parseEventDefs(rawEventDefs); - }; - ArrayEventSource.prototype.fetch = function (start, end, timezone) { - var eventDefs = this.eventDefs; - var i; - if (this.currentTimezone != null && - this.currentTimezone !== timezone) { - for (i = 0; i < eventDefs.length; i++) { - if (eventDefs[i] instanceof SingleEventDef_1.default) { - eventDefs[i].rezone(); - } - } - } - this.currentTimezone = timezone; - return Promise_1.default.resolve(eventDefs); - }; - ArrayEventSource.prototype.addEventDef = function (eventDef) { - this.eventDefs.push(eventDef); - }; - /* - eventDefId already normalized to a string - */ - ArrayEventSource.prototype.removeEventDefsById = function (eventDefId) { - return util_1.removeMatching(this.eventDefs, function (eventDef) { - return eventDef.id === eventDefId; - }); - }; - ArrayEventSource.prototype.removeAllEventDefs = function () { - this.eventDefs = []; - }; - ArrayEventSource.prototype.getPrimitive = function () { - return this.rawEventDefs; - }; - ArrayEventSource.prototype.applyManualStandardProps = function (rawProps) { - var superSuccess = _super.prototype.applyManualStandardProps.call(this, rawProps); - this.setRawEventDefs(rawProps.events); - return superSuccess; - }; - return ArrayEventSource; -}(EventSource_1.default)); -exports.default = ArrayEventSource; -ArrayEventSource.defineStandardProps({ - events: false // don't automatically transfer -}); - - -/***/ }), -/* 53 */ -/***/ (function(module, exports, __webpack_require__) { - -Object.defineProperty(exports, "__esModule", { value: true }); -var $ = __webpack_require__(3); -var util_1 = __webpack_require__(4); -/* -A cache for the left/right/top/bottom/width/height values for one or more elements. -Works with both offset (from topleft document) and position (from offsetParent). - -options: -- els -- isHorizontal -- isVertical -*/ -var CoordCache = /** @class */ (function () { - function CoordCache(options) { - this.isHorizontal = false; // whether to query for left/right/width - this.isVertical = false; // whether to query for top/bottom/height - this.els = $(options.els); - this.isHorizontal = options.isHorizontal; - this.isVertical = options.isVertical; - this.forcedOffsetParentEl = options.offsetParent ? $(options.offsetParent) : null; - } - // Queries the els for coordinates and stores them. - // Call this method before using and of the get* methods below. - CoordCache.prototype.build = function () { - var offsetParentEl = this.forcedOffsetParentEl; - if (!offsetParentEl && this.els.length > 0) { - offsetParentEl = this.els.eq(0).offsetParent(); - } - this.origin = offsetParentEl ? - offsetParentEl.offset() : - null; - this.boundingRect = this.queryBoundingRect(); - if (this.isHorizontal) { - this.buildElHorizontals(); - } - if (this.isVertical) { - this.buildElVerticals(); - } - }; - // Destroys all internal data about coordinates, freeing memory - CoordCache.prototype.clear = function () { - this.origin = null; - this.boundingRect = null; - this.lefts = null; - this.rights = null; - this.tops = null; - this.bottoms = null; - }; - // When called, if coord caches aren't built, builds them - CoordCache.prototype.ensureBuilt = function () { - if (!this.origin) { - this.build(); - } - }; - // Populates the left/right internal coordinate arrays - CoordCache.prototype.buildElHorizontals = function () { - var lefts = []; - var rights = []; - this.els.each(function (i, node) { - var el = $(node); - var left = el.offset().left; - var width = el.outerWidth(); - lefts.push(left); - rights.push(left + width); - }); - this.lefts = lefts; - this.rights = rights; - }; - // Populates the top/bottom internal coordinate arrays - CoordCache.prototype.buildElVerticals = function () { - var tops = []; - var bottoms = []; - this.els.each(function (i, node) { - var el = $(node); - var top = el.offset().top; - var height = el.outerHeight(); - tops.push(top); - bottoms.push(top + height); - }); - this.tops = tops; - this.bottoms = bottoms; - }; - // Given a left offset (from document left), returns the index of the el that it horizontally intersects. - // If no intersection is made, returns undefined. - CoordCache.prototype.getHorizontalIndex = function (leftOffset) { - this.ensureBuilt(); - var lefts = this.lefts; - var rights = this.rights; - var len = lefts.length; - var i; - for (i = 0; i < len; i++) { - if (leftOffset >= lefts[i] && leftOffset < rights[i]) { - return i; - } - } - }; - // Given a top offset (from document top), returns the index of the el that it vertically intersects. - // If no intersection is made, returns undefined. - CoordCache.prototype.getVerticalIndex = function (topOffset) { - this.ensureBuilt(); - var tops = this.tops; - var bottoms = this.bottoms; - var len = tops.length; - var i; - for (i = 0; i < len; i++) { - if (topOffset >= tops[i] && topOffset < bottoms[i]) { - return i; - } - } - }; - // Gets the left offset (from document left) of the element at the given index - CoordCache.prototype.getLeftOffset = function (leftIndex) { - this.ensureBuilt(); - return this.lefts[leftIndex]; - }; - // Gets the left position (from offsetParent left) of the element at the given index - CoordCache.prototype.getLeftPosition = function (leftIndex) { - this.ensureBuilt(); - return this.lefts[leftIndex] - this.origin.left; - }; - // Gets the right offset (from document left) of the element at the given index. - // This value is NOT relative to the document's right edge, like the CSS concept of "right" would be. - CoordCache.prototype.getRightOffset = function (leftIndex) { - this.ensureBuilt(); - return this.rights[leftIndex]; - }; - // Gets the right position (from offsetParent left) of the element at the given index. - // This value is NOT relative to the offsetParent's right edge, like the CSS concept of "right" would be. - CoordCache.prototype.getRightPosition = function (leftIndex) { - this.ensureBuilt(); - return this.rights[leftIndex] - this.origin.left; - }; - // Gets the width of the element at the given index - CoordCache.prototype.getWidth = function (leftIndex) { - this.ensureBuilt(); - return this.rights[leftIndex] - this.lefts[leftIndex]; - }; - // Gets the top offset (from document top) of the element at the given index - CoordCache.prototype.getTopOffset = function (topIndex) { - this.ensureBuilt(); - return this.tops[topIndex]; - }; - // Gets the top position (from offsetParent top) of the element at the given position - CoordCache.prototype.getTopPosition = function (topIndex) { - this.ensureBuilt(); - return this.tops[topIndex] - this.origin.top; - }; - // Gets the bottom offset (from the document top) of the element at the given index. - // This value is NOT relative to the offsetParent's bottom edge, like the CSS concept of "bottom" would be. - CoordCache.prototype.getBottomOffset = function (topIndex) { - this.ensureBuilt(); - return this.bottoms[topIndex]; - }; - // Gets the bottom position (from the offsetParent top) of the element at the given index. - // This value is NOT relative to the offsetParent's bottom edge, like the CSS concept of "bottom" would be. - CoordCache.prototype.getBottomPosition = function (topIndex) { - this.ensureBuilt(); - return this.bottoms[topIndex] - this.origin.top; - }; - // Gets the height of the element at the given index - CoordCache.prototype.getHeight = function (topIndex) { - this.ensureBuilt(); - return this.bottoms[topIndex] - this.tops[topIndex]; - }; - // Bounding Rect - // TODO: decouple this from CoordCache - // Compute and return what the elements' bounding rectangle is, from the user's perspective. - // Right now, only returns a rectangle if constrained by an overflow:scroll element. - // Returns null if there are no elements - CoordCache.prototype.queryBoundingRect = function () { - var scrollParentEl; - if (this.els.length > 0) { - scrollParentEl = util_1.getScrollParent(this.els.eq(0)); - if (!scrollParentEl.is(document)) { - return util_1.getClientRect(scrollParentEl); - } - } - return null; - }; - CoordCache.prototype.isPointInBounds = function (leftOffset, topOffset) { - return this.isLeftInBounds(leftOffset) && this.isTopInBounds(topOffset); - }; - CoordCache.prototype.isLeftInBounds = function (leftOffset) { - return !this.boundingRect || (leftOffset >= this.boundingRect.left && leftOffset < this.boundingRect.right); - }; - CoordCache.prototype.isTopInBounds = function (topOffset) { - return !this.boundingRect || (topOffset >= this.boundingRect.top && topOffset < this.boundingRect.bottom); - }; - return CoordCache; -}()); -exports.default = CoordCache; - - -/***/ }), -/* 54 */ -/***/ (function(module, exports, __webpack_require__) { - -Object.defineProperty(exports, "__esModule", { value: true }); -var $ = __webpack_require__(3); -var util_1 = __webpack_require__(4); -var ListenerMixin_1 = __webpack_require__(7); -var GlobalEmitter_1 = __webpack_require__(21); -/* Tracks a drag's mouse movement, firing various handlers -----------------------------------------------------------------------------------------------------------------------*/ -// TODO: use Emitter -var DragListener = /** @class */ (function () { - function DragListener(options) { - this.isInteracting = false; - this.isDistanceSurpassed = false; - this.isDelayEnded = false; - this.isDragging = false; - this.isTouch = false; - this.isGeneric = false; // initiated by 'dragstart' (jqui) - this.shouldCancelTouchScroll = true; - this.scrollAlwaysKills = false; - this.isAutoScroll = false; - // defaults - this.scrollSensitivity = 30; // pixels from edge for scrolling to start - this.scrollSpeed = 200; // pixels per second, at maximum speed - this.scrollIntervalMs = 50; // millisecond wait between scroll increment - this.options = options || {}; - } - // Interaction (high-level) - // ----------------------------------------------------------------------------------------------------------------- - DragListener.prototype.startInteraction = function (ev, extraOptions) { - if (extraOptions === void 0) { extraOptions = {}; } - if (ev.type === 'mousedown') { - if (GlobalEmitter_1.default.get().shouldIgnoreMouse()) { - return; - } - else if (!util_1.isPrimaryMouseButton(ev)) { - return; - } - else { - ev.preventDefault(); // prevents native selection in most browsers - } - } - if (!this.isInteracting) { - // process options - this.delay = util_1.firstDefined(extraOptions.delay, this.options.delay, 0); - this.minDistance = util_1.firstDefined(extraOptions.distance, this.options.distance, 0); - this.subjectEl = this.options.subjectEl; - util_1.preventSelection($('body')); - this.isInteracting = true; - this.isTouch = util_1.getEvIsTouch(ev); - this.isGeneric = ev.type === 'dragstart'; - this.isDelayEnded = false; - this.isDistanceSurpassed = false; - this.originX = util_1.getEvX(ev); - this.originY = util_1.getEvY(ev); - this.scrollEl = util_1.getScrollParent($(ev.target)); - this.bindHandlers(); - this.initAutoScroll(); - this.handleInteractionStart(ev); - this.startDelay(ev); - if (!this.minDistance) { - this.handleDistanceSurpassed(ev); - } - } - }; - DragListener.prototype.handleInteractionStart = function (ev) { - this.trigger('interactionStart', ev); - }; - DragListener.prototype.endInteraction = function (ev, isCancelled) { - if (this.isInteracting) { - this.endDrag(ev); - if (this.delayTimeoutId) { - clearTimeout(this.delayTimeoutId); - this.delayTimeoutId = null; - } - this.destroyAutoScroll(); - this.unbindHandlers(); - this.isInteracting = false; - this.handleInteractionEnd(ev, isCancelled); - util_1.allowSelection($('body')); - } - }; - DragListener.prototype.handleInteractionEnd = function (ev, isCancelled) { - this.trigger('interactionEnd', ev, isCancelled || false); - }; - // Binding To DOM - // ----------------------------------------------------------------------------------------------------------------- - DragListener.prototype.bindHandlers = function () { - // some browsers (Safari in iOS 10) don't allow preventDefault on touch events that are bound after touchstart, - // so listen to the GlobalEmitter singleton, which is always bound, instead of the document directly. - var globalEmitter = GlobalEmitter_1.default.get(); - if (this.isGeneric) { - this.listenTo($(document), { - drag: this.handleMove, - dragstop: this.endInteraction - }); - } - else if (this.isTouch) { - this.listenTo(globalEmitter, { - touchmove: this.handleTouchMove, - touchend: this.endInteraction, - scroll: this.handleTouchScroll - }); - } - else { - this.listenTo(globalEmitter, { - mousemove: this.handleMouseMove, - mouseup: this.endInteraction - }); - } - this.listenTo(globalEmitter, { - selectstart: util_1.preventDefault, - contextmenu: util_1.preventDefault // long taps would open menu on Chrome dev tools - }); - }; - DragListener.prototype.unbindHandlers = function () { - this.stopListeningTo(GlobalEmitter_1.default.get()); - this.stopListeningTo($(document)); // for isGeneric - }; - // Drag (high-level) - // ----------------------------------------------------------------------------------------------------------------- - // extraOptions ignored if drag already started - DragListener.prototype.startDrag = function (ev, extraOptions) { - this.startInteraction(ev, extraOptions); // ensure interaction began - if (!this.isDragging) { - this.isDragging = true; - this.handleDragStart(ev); - } - }; - DragListener.prototype.handleDragStart = function (ev) { - this.trigger('dragStart', ev); - }; - DragListener.prototype.handleMove = function (ev) { - var dx = util_1.getEvX(ev) - this.originX; - var dy = util_1.getEvY(ev) - this.originY; - var minDistance = this.minDistance; - var distanceSq; // current distance from the origin, squared - if (!this.isDistanceSurpassed) { - distanceSq = dx * dx + dy * dy; - if (distanceSq >= minDistance * minDistance) { - this.handleDistanceSurpassed(ev); - } - } - if (this.isDragging) { - this.handleDrag(dx, dy, ev); - } - }; - // Called while the mouse is being moved and when we know a legitimate drag is taking place - DragListener.prototype.handleDrag = function (dx, dy, ev) { - this.trigger('drag', dx, dy, ev); - this.updateAutoScroll(ev); // will possibly cause scrolling - }; - DragListener.prototype.endDrag = function (ev) { - if (this.isDragging) { - this.isDragging = false; - this.handleDragEnd(ev); - } - }; - DragListener.prototype.handleDragEnd = function (ev) { - this.trigger('dragEnd', ev); - }; - // Delay - // ----------------------------------------------------------------------------------------------------------------- - DragListener.prototype.startDelay = function (initialEv) { - var _this = this; - if (this.delay) { - this.delayTimeoutId = setTimeout(function () { - _this.handleDelayEnd(initialEv); - }, this.delay); - } - else { - this.handleDelayEnd(initialEv); - } - }; - DragListener.prototype.handleDelayEnd = function (initialEv) { - this.isDelayEnded = true; - if (this.isDistanceSurpassed) { - this.startDrag(initialEv); - } - }; - // Distance - // ----------------------------------------------------------------------------------------------------------------- - DragListener.prototype.handleDistanceSurpassed = function (ev) { - this.isDistanceSurpassed = true; - if (this.isDelayEnded) { - this.startDrag(ev); - } - }; - // Mouse / Touch - // ----------------------------------------------------------------------------------------------------------------- - DragListener.prototype.handleTouchMove = function (ev) { - // prevent inertia and touchmove-scrolling while dragging - if (this.isDragging && this.shouldCancelTouchScroll) { - ev.preventDefault(); - } - this.handleMove(ev); - }; - DragListener.prototype.handleMouseMove = function (ev) { - this.handleMove(ev); - }; - // Scrolling (unrelated to auto-scroll) - // ----------------------------------------------------------------------------------------------------------------- - DragListener.prototype.handleTouchScroll = function (ev) { - // if the drag is being initiated by touch, but a scroll happens before - // the drag-initiating delay is over, cancel the drag - if (!this.isDragging || this.scrollAlwaysKills) { - this.endInteraction(ev, true); // isCancelled=true - } - }; - // Utils - // ----------------------------------------------------------------------------------------------------------------- - // Triggers a callback. Calls a function in the option hash of the same name. - // Arguments beyond the first `name` are forwarded on. - DragListener.prototype.trigger = function (name) { - var args = []; - for (var _i = 1; _i < arguments.length; _i++) { - args[_i - 1] = arguments[_i]; - } - if (this.options[name]) { - this.options[name].apply(this, args); - } - // makes _methods callable by event name. TODO: kill this - if (this['_' + name]) { - this['_' + name].apply(this, args); - } - }; - // Auto-scroll - // ----------------------------------------------------------------------------------------------------------------- - DragListener.prototype.initAutoScroll = function () { - var scrollEl = this.scrollEl; - this.isAutoScroll = - this.options.scroll && - scrollEl && - !scrollEl.is(window) && - !scrollEl.is(document); - if (this.isAutoScroll) { - // debounce makes sure rapid calls don't happen - this.listenTo(scrollEl, 'scroll', util_1.debounce(this.handleDebouncedScroll, 100)); - } - }; - DragListener.prototype.destroyAutoScroll = function () { - this.endAutoScroll(); // kill any animation loop - // remove the scroll handler if there is a scrollEl - if (this.isAutoScroll) { - this.stopListeningTo(this.scrollEl, 'scroll'); // will probably get removed by unbindHandlers too :( - } - }; - // Computes and stores the bounding rectangle of scrollEl - DragListener.prototype.computeScrollBounds = function () { - if (this.isAutoScroll) { - this.scrollBounds = util_1.getOuterRect(this.scrollEl); - // TODO: use getClientRect in future. but prevents auto scrolling when on top of scrollbars - } - }; - // Called when the dragging is in progress and scrolling should be updated - DragListener.prototype.updateAutoScroll = function (ev) { - var sensitivity = this.scrollSensitivity; - var bounds = this.scrollBounds; - var topCloseness; - var bottomCloseness; - var leftCloseness; - var rightCloseness; - var topVel = 0; - var leftVel = 0; - if (bounds) { - // compute closeness to edges. valid range is from 0.0 - 1.0 - topCloseness = (sensitivity - (util_1.getEvY(ev) - bounds.top)) / sensitivity; - bottomCloseness = (sensitivity - (bounds.bottom - util_1.getEvY(ev))) / sensitivity; - leftCloseness = (sensitivity - (util_1.getEvX(ev) - bounds.left)) / sensitivity; - rightCloseness = (sensitivity - (bounds.right - util_1.getEvX(ev))) / sensitivity; - // translate vertical closeness into velocity. - // mouse must be completely in bounds for velocity to happen. - if (topCloseness >= 0 && topCloseness <= 1) { - topVel = topCloseness * this.scrollSpeed * -1; // negative. for scrolling up - } - else if (bottomCloseness >= 0 && bottomCloseness <= 1) { - topVel = bottomCloseness * this.scrollSpeed; - } - // translate horizontal closeness into velocity - if (leftCloseness >= 0 && leftCloseness <= 1) { - leftVel = leftCloseness * this.scrollSpeed * -1; // negative. for scrolling left - } - else if (rightCloseness >= 0 && rightCloseness <= 1) { - leftVel = rightCloseness * this.scrollSpeed; - } - } - this.setScrollVel(topVel, leftVel); - }; - // Sets the speed-of-scrolling for the scrollEl - DragListener.prototype.setScrollVel = function (topVel, leftVel) { - this.scrollTopVel = topVel; - this.scrollLeftVel = leftVel; - this.constrainScrollVel(); // massages into realistic values - // if there is non-zero velocity, and an animation loop hasn't already started, then START - if ((this.scrollTopVel || this.scrollLeftVel) && !this.scrollIntervalId) { - this.scrollIntervalId = setInterval(util_1.proxy(this, 'scrollIntervalFunc'), // scope to `this` - this.scrollIntervalMs); - } - }; - // Forces scrollTopVel and scrollLeftVel to be zero if scrolling has already gone all the way - DragListener.prototype.constrainScrollVel = function () { - var el = this.scrollEl; - if (this.scrollTopVel < 0) { - if (el.scrollTop() <= 0) { - this.scrollTopVel = 0; - } - } - else if (this.scrollTopVel > 0) { - if (el.scrollTop() + el[0].clientHeight >= el[0].scrollHeight) { - this.scrollTopVel = 0; - } - } - if (this.scrollLeftVel < 0) { - if (el.scrollLeft() <= 0) { - this.scrollLeftVel = 0; - } - } - else if (this.scrollLeftVel > 0) { - if (el.scrollLeft() + el[0].clientWidth >= el[0].scrollWidth) { - this.scrollLeftVel = 0; - } - } - }; - // This function gets called during every iteration of the scrolling animation loop - DragListener.prototype.scrollIntervalFunc = function () { - var el = this.scrollEl; - var frac = this.scrollIntervalMs / 1000; // considering animation frequency, what the vel should be mult'd by - // change the value of scrollEl's scroll - if (this.scrollTopVel) { - el.scrollTop(el.scrollTop() + this.scrollTopVel * frac); - } - if (this.scrollLeftVel) { - el.scrollLeft(el.scrollLeft() + this.scrollLeftVel * frac); - } - this.constrainScrollVel(); // since the scroll values changed, recompute the velocities - // if scrolled all the way, which causes the vels to be zero, stop the animation loop - if (!this.scrollTopVel && !this.scrollLeftVel) { - this.endAutoScroll(); - } - }; - // Kills any existing scrolling animation loop - DragListener.prototype.endAutoScroll = function () { - if (this.scrollIntervalId) { - clearInterval(this.scrollIntervalId); - this.scrollIntervalId = null; - this.handleScrollEnd(); - } - }; - // Get called when the scrollEl is scrolled (NOTE: this is delayed via debounce) - DragListener.prototype.handleDebouncedScroll = function () { - // recompute all coordinates, but *only* if this is *not* part of our scrolling animation - if (!this.scrollIntervalId) { - this.handleScrollEnd(); - } - }; - DragListener.prototype.handleScrollEnd = function () { - // Called when scrolling has stopped, whether through auto scroll, or the user scrolling - }; - return DragListener; -}()); -exports.default = DragListener; -ListenerMixin_1.default.mixInto(DragListener); - - -/***/ }), -/* 55 */ -/***/ (function(module, exports, __webpack_require__) { - -Object.defineProperty(exports, "__esModule", { value: true }); -var tslib_1 = __webpack_require__(2); -var util_1 = __webpack_require__(4); -var Mixin_1 = __webpack_require__(14); -/* -A set of rendering and date-related methods for a visual component comprised of one or more rows of day columns. -Prerequisite: the object being mixed into needs to be a *Grid* -*/ -var DayTableMixin = /** @class */ (function (_super) { - tslib_1.__extends(DayTableMixin, _super); - function DayTableMixin() { - return _super !== null && _super.apply(this, arguments) || this; - } - // Populates internal variables used for date calculation and rendering - DayTableMixin.prototype.updateDayTable = function () { - var t = this; - var view = t.view; - var calendar = view.calendar; - var date = calendar.msToUtcMoment(t.dateProfile.renderUnzonedRange.startMs, true); - var end = calendar.msToUtcMoment(t.dateProfile.renderUnzonedRange.endMs, true); - var dayIndex = -1; - var dayIndices = []; - var dayDates = []; - var daysPerRow; - var firstDay; - var rowCnt; - while (date.isBefore(end)) { - if (view.isHiddenDay(date)) { - dayIndices.push(dayIndex + 0.5); // mark that it's between indices - } - else { - dayIndex++; - dayIndices.push(dayIndex); - dayDates.push(date.clone()); - } - date.add(1, 'days'); - } - if (this.breakOnWeeks) { - // count columns until the day-of-week repeats - firstDay = dayDates[0].day(); - for (daysPerRow = 1; daysPerRow < dayDates.length; daysPerRow++) { - if (dayDates[daysPerRow].day() === firstDay) { - break; - } - } - rowCnt = Math.ceil(dayDates.length / daysPerRow); - } - else { - rowCnt = 1; - daysPerRow = dayDates.length; - } - this.dayDates = dayDates; - this.dayIndices = dayIndices; - this.daysPerRow = daysPerRow; - this.rowCnt = rowCnt; - this.updateDayTableCols(); - }; - // Computes and assigned the colCnt property and updates any options that may be computed from it - DayTableMixin.prototype.updateDayTableCols = function () { - this.colCnt = this.computeColCnt(); - this.colHeadFormat = - this.opt('columnHeaderFormat') || - this.opt('columnFormat') || // deprecated - this.computeColHeadFormat(); - }; - // Determines how many columns there should be in the table - DayTableMixin.prototype.computeColCnt = function () { - return this.daysPerRow; - }; - // Computes the ambiguously-timed moment for the given cell - DayTableMixin.prototype.getCellDate = function (row, col) { - return this.dayDates[this.getCellDayIndex(row, col)].clone(); - }; - // Computes the ambiguously-timed date range for the given cell - DayTableMixin.prototype.getCellRange = function (row, col) { - var start = this.getCellDate(row, col); - var end = start.clone().add(1, 'days'); - return { start: start, end: end }; - }; - // Returns the number of day cells, chronologically, from the first of the grid (0-based) - DayTableMixin.prototype.getCellDayIndex = function (row, col) { - return row * this.daysPerRow + this.getColDayIndex(col); - }; - // Returns the numner of day cells, chronologically, from the first cell in *any given row* - DayTableMixin.prototype.getColDayIndex = function (col) { - if (this.isRTL) { - return this.colCnt - 1 - col; - } - else { - return col; - } - }; - // Given a date, returns its chronolocial cell-index from the first cell of the grid. - // If the date lies between cells (because of hiddenDays), returns a floating-point value between offsets. - // If before the first offset, returns a negative number. - // If after the last offset, returns an offset past the last cell offset. - // Only works for *start* dates of cells. Will not work for exclusive end dates for cells. - DayTableMixin.prototype.getDateDayIndex = function (date) { - var dayIndices = this.dayIndices; - var dayOffset = date.diff(this.dayDates[0], 'days'); - if (dayOffset < 0) { - return dayIndices[0] - 1; - } - else if (dayOffset >= dayIndices.length) { - return dayIndices[dayIndices.length - 1] + 1; - } - else { - return dayIndices[dayOffset]; - } - }; - /* Options - ------------------------------------------------------------------------------------------------------------------*/ - // Computes a default column header formatting string if `colFormat` is not explicitly defined - DayTableMixin.prototype.computeColHeadFormat = function () { - // if more than one week row, or if there are a lot of columns with not much space, - // put just the day numbers will be in each cell - if (this.rowCnt > 1 || this.colCnt > 10) { - return 'ddd'; // "Sat" - } - else if (this.colCnt > 1) { - return this.opt('dayOfMonthFormat'); // "Sat 12/10" - } - else { - return 'dddd'; // "Saturday" - } - }; - /* Slicing - ------------------------------------------------------------------------------------------------------------------*/ - // Slices up a date range into a segment for every week-row it intersects with - DayTableMixin.prototype.sliceRangeByRow = function (unzonedRange) { - var daysPerRow = this.daysPerRow; - var normalRange = this.view.computeDayRange(unzonedRange); // make whole-day range, considering nextDayThreshold - var rangeFirst = this.getDateDayIndex(normalRange.start); // inclusive first index - var rangeLast = this.getDateDayIndex(normalRange.end.clone().subtract(1, 'days')); // inclusive last index - var segs = []; - var row; - var rowFirst; - var rowLast; // inclusive day-index range for current row - var segFirst; - var segLast; // inclusive day-index range for segment - for (row = 0; row < this.rowCnt; row++) { - rowFirst = row * daysPerRow; - rowLast = rowFirst + daysPerRow - 1; - // intersect segment's offset range with the row's - segFirst = Math.max(rangeFirst, rowFirst); - segLast = Math.min(rangeLast, rowLast); - // deal with in-between indices - segFirst = Math.ceil(segFirst); // in-between starts round to next cell - segLast = Math.floor(segLast); // in-between ends round to prev cell - if (segFirst <= segLast) { - segs.push({ - row: row, - // normalize to start of row - firstRowDayIndex: segFirst - rowFirst, - lastRowDayIndex: segLast - rowFirst, - // must be matching integers to be the segment's start/end - isStart: segFirst === rangeFirst, - isEnd: segLast === rangeLast - }); - } - } - return segs; - }; - // Slices up a date range into a segment for every day-cell it intersects with. - // TODO: make more DRY with sliceRangeByRow somehow. - DayTableMixin.prototype.sliceRangeByDay = function (unzonedRange) { - var daysPerRow = this.daysPerRow; - var normalRange = this.view.computeDayRange(unzonedRange); // make whole-day range, considering nextDayThreshold - var rangeFirst = this.getDateDayIndex(normalRange.start); // inclusive first index - var rangeLast = this.getDateDayIndex(normalRange.end.clone().subtract(1, 'days')); // inclusive last index - var segs = []; - var row; - var rowFirst; - var rowLast; // inclusive day-index range for current row - var i; - var segFirst; - var segLast; // inclusive day-index range for segment - for (row = 0; row < this.rowCnt; row++) { - rowFirst = row * daysPerRow; - rowLast = rowFirst + daysPerRow - 1; - for (i = rowFirst; i <= rowLast; i++) { - // intersect segment's offset range with the row's - segFirst = Math.max(rangeFirst, i); - segLast = Math.min(rangeLast, i); - // deal with in-between indices - segFirst = Math.ceil(segFirst); // in-between starts round to next cell - segLast = Math.floor(segLast); // in-between ends round to prev cell - if (segFirst <= segLast) { - segs.push({ - row: row, - // normalize to start of row - firstRowDayIndex: segFirst - rowFirst, - lastRowDayIndex: segLast - rowFirst, - // must be matching integers to be the segment's start/end - isStart: segFirst === rangeFirst, - isEnd: segLast === rangeLast - }); - } - } - } - return segs; - }; - /* Header Rendering - ------------------------------------------------------------------------------------------------------------------*/ - DayTableMixin.prototype.renderHeadHtml = function () { - var theme = this.view.calendar.theme; - return '' + - '
    ' + - '' + - '' + - this.renderHeadTrHtml() + - '' + - '
    ' + - '
    '; - }; - DayTableMixin.prototype.renderHeadIntroHtml = function () { - return this.renderIntroHtml(); // fall back to generic - }; - DayTableMixin.prototype.renderHeadTrHtml = function () { - return '' + - '' + - (this.isRTL ? '' : this.renderHeadIntroHtml()) + - this.renderHeadDateCellsHtml() + - (this.isRTL ? this.renderHeadIntroHtml() : '') + - ''; - }; - DayTableMixin.prototype.renderHeadDateCellsHtml = function () { - var htmls = []; - var col; - var date; - for (col = 0; col < this.colCnt; col++) { - date = this.getCellDate(0, col); - htmls.push(this.renderHeadDateCellHtml(date)); - } - return htmls.join(''); - }; - // TODO: when internalApiVersion, accept an object for HTML attributes - // (colspan should be no different) - DayTableMixin.prototype.renderHeadDateCellHtml = function (date, colspan, otherAttrs) { - var t = this; - var view = t.view; - var isDateValid = t.dateProfile.activeUnzonedRange.containsDate(date); // TODO: called too frequently. cache somehow. - var classNames = [ - 'fc-day-header', - view.calendar.theme.getClass('widgetHeader') - ]; - var innerHtml; - if (typeof t.opt('columnHeaderHtml') === 'function') { - innerHtml = t.opt('columnHeaderHtml')(date); - } - else if (typeof t.opt('columnHeaderText') === 'function') { - innerHtml = util_1.htmlEscape(t.opt('columnHeaderText')(date)); - } - else { - innerHtml = util_1.htmlEscape(date.format(t.colHeadFormat)); - } - // if only one row of days, the classNames on the header can represent the specific days beneath - if (t.rowCnt === 1) { - classNames = classNames.concat( - // includes the day-of-week class - // noThemeHighlight=true (don't highlight the header) - t.getDayClasses(date, true)); - } - else { - classNames.push('fc-' + util_1.dayIDs[date.day()]); // only add the day-of-week class - } - return '' + - ' 1 ? - ' colspan="' + colspan + '"' : - '') + - (otherAttrs ? - ' ' + otherAttrs : - '') + - '>' + - (isDateValid ? - // don't make a link if the heading could represent multiple days, or if there's only one day (forceOff) - view.buildGotoAnchorHtml({ date: date, forceOff: t.rowCnt > 1 || t.colCnt === 1 }, innerHtml) : - // if not valid, display text, but no link - innerHtml) + - ''; - }; - /* Background Rendering - ------------------------------------------------------------------------------------------------------------------*/ - DayTableMixin.prototype.renderBgTrHtml = function (row) { - return '' + - '' + - (this.isRTL ? '' : this.renderBgIntroHtml(row)) + - this.renderBgCellsHtml(row) + - (this.isRTL ? this.renderBgIntroHtml(row) : '') + - ''; - }; - DayTableMixin.prototype.renderBgIntroHtml = function (row) { - return this.renderIntroHtml(); // fall back to generic - }; - DayTableMixin.prototype.renderBgCellsHtml = function (row) { - var htmls = []; - var col; - var date; - for (col = 0; col < this.colCnt; col++) { - date = this.getCellDate(row, col); - htmls.push(this.renderBgCellHtml(date)); - } - return htmls.join(''); - }; - DayTableMixin.prototype.renderBgCellHtml = function (date, otherAttrs) { - var t = this; - var view = t.view; - var isDateValid = t.dateProfile.activeUnzonedRange.containsDate(date); // TODO: called too frequently. cache somehow. - var classes = t.getDayClasses(date); - classes.unshift('fc-day', view.calendar.theme.getClass('widgetContent')); - return ''; - }; - /* Generic - ------------------------------------------------------------------------------------------------------------------*/ - DayTableMixin.prototype.renderIntroHtml = function () { - // Generates the default HTML intro for any row. User classes should override - }; - // TODO: a generic method for dealing with , RTL, intro - // when increment internalApiVersion - // wrapTr (scheduler) - /* Utils - ------------------------------------------------------------------------------------------------------------------*/ - // Applies the generic "intro" and "outro" HTML to the given cells. - // Intro means the leftmost cell when the calendar is LTR and the rightmost cell when RTL. Vice-versa for outro. - DayTableMixin.prototype.bookendCells = function (trEl) { - var introHtml = this.renderIntroHtml(); - if (introHtml) { - if (this.isRTL) { - trEl.append(introHtml); - } - else { - trEl.prepend(introHtml); - } - } - }; - return DayTableMixin; -}(Mixin_1.default)); -exports.default = DayTableMixin; - - -/***/ }), -/* 56 */ -/***/ (function(module, exports) { - -Object.defineProperty(exports, "__esModule", { value: true }); -var BusinessHourRenderer = /** @class */ (function () { - /* - component implements: - - eventRangesToEventFootprints - - eventFootprintsToSegs - */ - function BusinessHourRenderer(component, fillRenderer) { - this.component = component; - this.fillRenderer = fillRenderer; - } - BusinessHourRenderer.prototype.render = function (businessHourGenerator) { - var component = this.component; - var unzonedRange = component._getDateProfile().activeUnzonedRange; - var eventInstanceGroup = businessHourGenerator.buildEventInstanceGroup(component.hasAllDayBusinessHours, unzonedRange); - var eventFootprints = eventInstanceGroup ? - component.eventRangesToEventFootprints(eventInstanceGroup.sliceRenderRanges(unzonedRange)) : - []; - this.renderEventFootprints(eventFootprints); - }; - BusinessHourRenderer.prototype.renderEventFootprints = function (eventFootprints) { - var segs = this.component.eventFootprintsToSegs(eventFootprints); - this.renderSegs(segs); - this.segs = segs; - }; - BusinessHourRenderer.prototype.renderSegs = function (segs) { - if (this.fillRenderer) { - this.fillRenderer.renderSegs('businessHours', segs, { - getClasses: function (seg) { - return ['fc-nonbusiness', 'fc-bgevent']; - } - }); - } - }; - BusinessHourRenderer.prototype.unrender = function () { - if (this.fillRenderer) { - this.fillRenderer.unrender('businessHours'); - } - this.segs = null; - }; - BusinessHourRenderer.prototype.getSegs = function () { - return this.segs || []; - }; - return BusinessHourRenderer; -}()); -exports.default = BusinessHourRenderer; - - -/***/ }), -/* 57 */ -/***/ (function(module, exports, __webpack_require__) { - -Object.defineProperty(exports, "__esModule", { value: true }); -var $ = __webpack_require__(3); -var util_1 = __webpack_require__(4); -var FillRenderer = /** @class */ (function () { - function FillRenderer(component) { - this.fillSegTag = 'div'; - this.component = component; - this.elsByFill = {}; - } - FillRenderer.prototype.renderFootprint = function (type, componentFootprint, props) { - this.renderSegs(type, this.component.componentFootprintToSegs(componentFootprint), props); - }; - FillRenderer.prototype.renderSegs = function (type, segs, props) { - var els; - segs = this.buildSegEls(type, segs, props); // assignes `.el` to each seg. returns successfully rendered segs - els = this.attachSegEls(type, segs); - if (els) { - this.reportEls(type, els); - } - return segs; - }; - // Unrenders a specific type of fill that is currently rendered on the grid - FillRenderer.prototype.unrender = function (type) { - var el = this.elsByFill[type]; - if (el) { - el.remove(); - delete this.elsByFill[type]; - } - }; - // Renders and assigns an `el` property for each fill segment. Generic enough to work with different types. - // Only returns segments that successfully rendered. - FillRenderer.prototype.buildSegEls = function (type, segs, props) { - var _this = this; - var html = ''; - var renderedSegs = []; - var i; - if (segs.length) { - // build a large concatenation of segment HTML - for (i = 0; i < segs.length; i++) { - html += this.buildSegHtml(type, segs[i], props); - } - // Grab individual elements from the combined HTML string. Use each as the default rendering. - // Then, compute the 'el' for each segment. - $(html).each(function (i, node) { - var seg = segs[i]; - var el = $(node); - // allow custom filter methods per-type - if (props.filterEl) { - el = props.filterEl(seg, el); - } - if (el) { - el = $(el); // allow custom filter to return raw DOM node - // correct element type? (would be bad if a non-TD were inserted into a table for example) - if (el.is(_this.fillSegTag)) { - seg.el = el; - renderedSegs.push(seg); - } - } - }); - } - return renderedSegs; - }; - // Builds the HTML needed for one fill segment. Generic enough to work with different types. - FillRenderer.prototype.buildSegHtml = function (type, seg, props) { - // custom hooks per-type - var classes = props.getClasses ? props.getClasses(seg) : []; - var css = util_1.cssToStr(props.getCss ? props.getCss(seg) : {}); - return '<' + this.fillSegTag + - (classes.length ? ' class="' + classes.join(' ') + '"' : '') + - (css ? ' style="' + css + '"' : '') + - ' />'; - }; - // Should return wrapping DOM structure - FillRenderer.prototype.attachSegEls = function (type, segs) { - // subclasses must implement - }; - FillRenderer.prototype.reportEls = function (type, nodes) { - if (this.elsByFill[type]) { - this.elsByFill[type] = this.elsByFill[type].add(nodes); - } - else { - this.elsByFill[type] = $(nodes); - } - }; - return FillRenderer; -}()); -exports.default = FillRenderer; - - -/***/ }), -/* 58 */ -/***/ (function(module, exports, __webpack_require__) { - -Object.defineProperty(exports, "__esModule", { value: true }); -var SingleEventDef_1 = __webpack_require__(13); -var EventFootprint_1 = __webpack_require__(36); -var EventSource_1 = __webpack_require__(6); -var HelperRenderer = /** @class */ (function () { - function HelperRenderer(component, eventRenderer) { - this.view = component._getView(); - this.component = component; - this.eventRenderer = eventRenderer; - } - HelperRenderer.prototype.renderComponentFootprint = function (componentFootprint) { - this.renderEventFootprints([ - this.fabricateEventFootprint(componentFootprint) - ]); - }; - HelperRenderer.prototype.renderEventDraggingFootprints = function (eventFootprints, sourceSeg, isTouch) { - this.renderEventFootprints(eventFootprints, sourceSeg, 'fc-dragging', isTouch ? null : this.view.opt('dragOpacity')); - }; - HelperRenderer.prototype.renderEventResizingFootprints = function (eventFootprints, sourceSeg, isTouch) { - this.renderEventFootprints(eventFootprints, sourceSeg, 'fc-resizing'); - }; - HelperRenderer.prototype.renderEventFootprints = function (eventFootprints, sourceSeg, extraClassNames, opacity) { - var segs = this.component.eventFootprintsToSegs(eventFootprints); - var classNames = 'fc-helper ' + (extraClassNames || ''); - var i; - // assigns each seg's el and returns a subset of segs that were rendered - segs = this.eventRenderer.renderFgSegEls(segs); - for (i = 0; i < segs.length; i++) { - segs[i].el.addClass(classNames); - } - if (opacity != null) { - for (i = 0; i < segs.length; i++) { - segs[i].el.css('opacity', opacity); - } - } - this.helperEls = this.renderSegs(segs, sourceSeg); - }; - /* - Must return all mock event elements - */ - HelperRenderer.prototype.renderSegs = function (segs, sourceSeg) { - // Subclasses must implement - }; - HelperRenderer.prototype.unrender = function () { - if (this.helperEls) { - this.helperEls.remove(); - this.helperEls = null; - } - }; - HelperRenderer.prototype.fabricateEventFootprint = function (componentFootprint) { - var calendar = this.view.calendar; - var eventDateProfile = calendar.footprintToDateProfile(componentFootprint); - var dummyEvent = new SingleEventDef_1.default(new EventSource_1.default(calendar)); - var dummyInstance; - dummyEvent.dateProfile = eventDateProfile; - dummyInstance = dummyEvent.buildInstance(); - return new EventFootprint_1.default(componentFootprint, dummyEvent, dummyInstance); - }; - return HelperRenderer; -}()); -exports.default = HelperRenderer; - - -/***/ }), -/* 59 */ -/***/ (function(module, exports, __webpack_require__) { - -Object.defineProperty(exports, "__esModule", { value: true }); -var tslib_1 = __webpack_require__(2); -var GlobalEmitter_1 = __webpack_require__(21); -var Interaction_1 = __webpack_require__(15); -var EventPointing = /** @class */ (function (_super) { - tslib_1.__extends(EventPointing, _super); - function EventPointing() { - return _super !== null && _super.apply(this, arguments) || this; - } - /* - component must implement: - - publiclyTrigger - */ - EventPointing.prototype.bindToEl = function (el) { - var component = this.component; - component.bindSegHandlerToEl(el, 'click', this.handleClick.bind(this)); - component.bindSegHandlerToEl(el, 'mouseenter', this.handleMouseover.bind(this)); - component.bindSegHandlerToEl(el, 'mouseleave', this.handleMouseout.bind(this)); - }; - EventPointing.prototype.handleClick = function (seg, ev) { - var res = this.component.publiclyTrigger('eventClick', { - context: seg.el[0], - args: [seg.footprint.getEventLegacy(), ev, this.view] - }); - if (res === false) { - ev.preventDefault(); - } - }; - // Updates internal state and triggers handlers for when an event element is moused over - EventPointing.prototype.handleMouseover = function (seg, ev) { - if (!GlobalEmitter_1.default.get().shouldIgnoreMouse() && - !this.mousedOverSeg) { - this.mousedOverSeg = seg; - // TODO: move to EventSelecting's responsibility - if (this.view.isEventDefResizable(seg.footprint.eventDef)) { - seg.el.addClass('fc-allow-mouse-resize'); - } - this.component.publiclyTrigger('eventMouseover', { - context: seg.el[0], - args: [seg.footprint.getEventLegacy(), ev, this.view] - }); - } - }; - // Updates internal state and triggers handlers for when an event element is moused out. - // Can be given no arguments, in which case it will mouseout the segment that was previously moused over. - EventPointing.prototype.handleMouseout = function (seg, ev) { - if (this.mousedOverSeg) { - this.mousedOverSeg = null; - // TODO: move to EventSelecting's responsibility - if (this.view.isEventDefResizable(seg.footprint.eventDef)) { - seg.el.removeClass('fc-allow-mouse-resize'); - } - this.component.publiclyTrigger('eventMouseout', { - context: seg.el[0], - args: [ - seg.footprint.getEventLegacy(), - ev || {}, - this.view - ] - }); - } - }; - EventPointing.prototype.end = function () { - if (this.mousedOverSeg) { - this.handleMouseout(this.mousedOverSeg); - } - }; - return EventPointing; -}(Interaction_1.default)); -exports.default = EventPointing; - - -/***/ }), -/* 60 */ -/***/ (function(module, exports, __webpack_require__) { - -Object.defineProperty(exports, "__esModule", { value: true }); -var tslib_1 = __webpack_require__(2); -var Mixin_1 = __webpack_require__(14); -var DateClicking_1 = __webpack_require__(245); -var DateSelecting_1 = __webpack_require__(225); -var EventPointing_1 = __webpack_require__(59); -var EventDragging_1 = __webpack_require__(224); -var EventResizing_1 = __webpack_require__(223); -var ExternalDropping_1 = __webpack_require__(222); -var StandardInteractionsMixin = /** @class */ (function (_super) { - tslib_1.__extends(StandardInteractionsMixin, _super); - function StandardInteractionsMixin() { - return _super !== null && _super.apply(this, arguments) || this; - } - return StandardInteractionsMixin; -}(Mixin_1.default)); -exports.default = StandardInteractionsMixin; -StandardInteractionsMixin.prototype.dateClickingClass = DateClicking_1.default; -StandardInteractionsMixin.prototype.dateSelectingClass = DateSelecting_1.default; -StandardInteractionsMixin.prototype.eventPointingClass = EventPointing_1.default; -StandardInteractionsMixin.prototype.eventDraggingClass = EventDragging_1.default; -StandardInteractionsMixin.prototype.eventResizingClass = EventResizing_1.default; -StandardInteractionsMixin.prototype.externalDroppingClass = ExternalDropping_1.default; - - -/***/ }), -/* 61 */ -/***/ (function(module, exports, __webpack_require__) { - -Object.defineProperty(exports, "__esModule", { value: true }); -var tslib_1 = __webpack_require__(2); -var $ = __webpack_require__(3); -var util_1 = __webpack_require__(4); -var CoordCache_1 = __webpack_require__(53); -var Popover_1 = __webpack_require__(249); -var UnzonedRange_1 = __webpack_require__(5); -var ComponentFootprint_1 = __webpack_require__(12); -var EventFootprint_1 = __webpack_require__(36); -var BusinessHourRenderer_1 = __webpack_require__(56); -var StandardInteractionsMixin_1 = __webpack_require__(60); -var InteractiveDateComponent_1 = __webpack_require__(40); -var DayTableMixin_1 = __webpack_require__(55); -var DayGridEventRenderer_1 = __webpack_require__(250); -var DayGridHelperRenderer_1 = __webpack_require__(251); -var DayGridFillRenderer_1 = __webpack_require__(252); -/* A component that renders a grid of whole-days that runs horizontally. There can be multiple rows, one per week. -----------------------------------------------------------------------------------------------------------------------*/ -var DayGrid = /** @class */ (function (_super) { - tslib_1.__extends(DayGrid, _super); - function DayGrid(view) { - var _this = _super.call(this, view) || this; - _this.cellWeekNumbersVisible = false; // display week numbers in day cell? - _this.bottomCoordPadding = 0; // hack for extending the hit area for the last row of the coordinate grid - // isRigid determines whether the individual rows should ignore the contents and be a constant height. - // Relies on the view's colCnt and rowCnt. In the future, this component should probably be self-sufficient. - _this.isRigid = false; - _this.hasAllDayBusinessHours = true; - return _this; - } - // Slices up the given span (unzoned start/end with other misc data) into an array of segments - DayGrid.prototype.componentFootprintToSegs = function (componentFootprint) { - var segs = this.sliceRangeByRow(componentFootprint.unzonedRange); - var i; - var seg; - for (i = 0; i < segs.length; i++) { - seg = segs[i]; - if (this.isRTL) { - seg.leftCol = this.daysPerRow - 1 - seg.lastRowDayIndex; - seg.rightCol = this.daysPerRow - 1 - seg.firstRowDayIndex; - } - else { - seg.leftCol = seg.firstRowDayIndex; - seg.rightCol = seg.lastRowDayIndex; - } - } - return segs; - }; - /* Date Rendering - ------------------------------------------------------------------------------------------------------------------*/ - DayGrid.prototype.renderDates = function (dateProfile) { - this.dateProfile = dateProfile; - this.updateDayTable(); - this.renderGrid(); - }; - DayGrid.prototype.unrenderDates = function () { - this.removeSegPopover(); - }; - // Renders the rows and columns into the component's `this.el`, which should already be assigned. - DayGrid.prototype.renderGrid = function () { - var view = this.view; - var rowCnt = this.rowCnt; - var colCnt = this.colCnt; - var html = ''; - var row; - var col; - if (this.headContainerEl) { - this.headContainerEl.html(this.renderHeadHtml()); - } - for (row = 0; row < rowCnt; row++) { - html += this.renderDayRowHtml(row, this.isRigid); - } - this.el.html(html); - this.rowEls = this.el.find('.fc-row'); - this.cellEls = this.el.find('.fc-day, .fc-disabled-day'); - this.rowCoordCache = new CoordCache_1.default({ - els: this.rowEls, - isVertical: true - }); - this.colCoordCache = new CoordCache_1.default({ - els: this.cellEls.slice(0, this.colCnt), - isHorizontal: true - }); - // trigger dayRender with each cell's element - for (row = 0; row < rowCnt; row++) { - for (col = 0; col < colCnt; col++) { - this.publiclyTrigger('dayRender', { - context: view, - args: [ - this.getCellDate(row, col), - this.getCellEl(row, col), - view - ] - }); - } - } - }; - // Generates the HTML for a single row, which is a div that wraps a table. - // `row` is the row number. - DayGrid.prototype.renderDayRowHtml = function (row, isRigid) { - var theme = this.view.calendar.theme; - var classes = ['fc-row', 'fc-week', theme.getClass('dayRow')]; - if (isRigid) { - classes.push('fc-rigid'); - } - return '' + - '
    ' + - '
    ' + - '' + - this.renderBgTrHtml(row) + - '
    ' + - '
    ' + - '
    ' + - '' + - (this.getIsNumbersVisible() ? - '' + - this.renderNumberTrHtml(row) + - '' : - '') + - '
    ' + - '
    ' + - '
    '; - }; - DayGrid.prototype.getIsNumbersVisible = function () { - return this.getIsDayNumbersVisible() || this.cellWeekNumbersVisible; - }; - DayGrid.prototype.getIsDayNumbersVisible = function () { - return this.rowCnt > 1; - }; - /* Grid Number Rendering - ------------------------------------------------------------------------------------------------------------------*/ - DayGrid.prototype.renderNumberTrHtml = function (row) { - return '' + - '' + - (this.isRTL ? '' : this.renderNumberIntroHtml(row)) + - this.renderNumberCellsHtml(row) + - (this.isRTL ? this.renderNumberIntroHtml(row) : '') + - ''; - }; - DayGrid.prototype.renderNumberIntroHtml = function (row) { - return this.renderIntroHtml(); - }; - DayGrid.prototype.renderNumberCellsHtml = function (row) { - var htmls = []; - var col; - var date; - for (col = 0; col < this.colCnt; col++) { - date = this.getCellDate(row, col); - htmls.push(this.renderNumberCellHtml(date)); - } - return htmls.join(''); - }; - // Generates the HTML for the s of the "number" row in the DayGrid's content skeleton. - // The number row will only exist if either day numbers or week numbers are turned on. - DayGrid.prototype.renderNumberCellHtml = function (date) { - var view = this.view; - var html = ''; - var isDateValid = this.dateProfile.activeUnzonedRange.containsDate(date); // TODO: called too frequently. cache somehow. - var isDayNumberVisible = this.getIsDayNumbersVisible() && isDateValid; - var classes; - var weekCalcFirstDoW; - if (!isDayNumberVisible && !this.cellWeekNumbersVisible) { - // no numbers in day cell (week number must be along the side) - return ''; // will create an empty space above events :( - } - classes = this.getDayClasses(date); - classes.unshift('fc-day-top'); - if (this.cellWeekNumbersVisible) { - // To determine the day of week number change under ISO, we cannot - // rely on moment.js methods such as firstDayOfWeek() or weekday(), - // because they rely on the locale's dow (possibly overridden by - // our firstDay option), which may not be Monday. We cannot change - // dow, because that would affect the calendar start day as well. - if (date._locale._fullCalendar_weekCalc === 'ISO') { - weekCalcFirstDoW = 1; // Monday by ISO 8601 definition - } - else { - weekCalcFirstDoW = date._locale.firstDayOfWeek(); - } - } - html += ''; - if (this.cellWeekNumbersVisible && (date.day() === weekCalcFirstDoW)) { - html += view.buildGotoAnchorHtml({ date: date, type: 'week' }, { 'class': 'fc-week-number' }, date.format('w') // inner HTML - ); - } - if (isDayNumberVisible) { - html += view.buildGotoAnchorHtml(date, { 'class': 'fc-day-number' }, date.format('D') // inner HTML - ); - } - html += ''; - return html; - }; - /* Hit System - ------------------------------------------------------------------------------------------------------------------*/ - DayGrid.prototype.prepareHits = function () { - this.colCoordCache.build(); - this.rowCoordCache.build(); - this.rowCoordCache.bottoms[this.rowCnt - 1] += this.bottomCoordPadding; // hack - }; - DayGrid.prototype.releaseHits = function () { - this.colCoordCache.clear(); - this.rowCoordCache.clear(); - }; - DayGrid.prototype.queryHit = function (leftOffset, topOffset) { - if (this.colCoordCache.isLeftInBounds(leftOffset) && this.rowCoordCache.isTopInBounds(topOffset)) { - var col = this.colCoordCache.getHorizontalIndex(leftOffset); - var row = this.rowCoordCache.getVerticalIndex(topOffset); - if (row != null && col != null) { - return this.getCellHit(row, col); - } - } - }; - DayGrid.prototype.getHitFootprint = function (hit) { - var range = this.getCellRange(hit.row, hit.col); - return new ComponentFootprint_1.default(new UnzonedRange_1.default(range.start, range.end), true // all-day? - ); - }; - DayGrid.prototype.getHitEl = function (hit) { - return this.getCellEl(hit.row, hit.col); - }; - /* Cell System - ------------------------------------------------------------------------------------------------------------------*/ - // FYI: the first column is the leftmost column, regardless of date - DayGrid.prototype.getCellHit = function (row, col) { - return { - row: row, - col: col, - component: this, - left: this.colCoordCache.getLeftOffset(col), - right: this.colCoordCache.getRightOffset(col), - top: this.rowCoordCache.getTopOffset(row), - bottom: this.rowCoordCache.getBottomOffset(row) - }; - }; - DayGrid.prototype.getCellEl = function (row, col) { - return this.cellEls.eq(row * this.colCnt + col); - }; - /* Event Rendering - ------------------------------------------------------------------------------------------------------------------*/ - // Unrenders all events currently rendered on the grid - DayGrid.prototype.executeEventUnrender = function () { - this.removeSegPopover(); // removes the "more.." events popover - _super.prototype.executeEventUnrender.call(this); - }; - // Retrieves all rendered segment objects currently rendered on the grid - DayGrid.prototype.getOwnEventSegs = function () { - // append the segments from the "more..." popover - return _super.prototype.getOwnEventSegs.call(this).concat(this.popoverSegs || []); - }; - /* Event Drag Visualization - ------------------------------------------------------------------------------------------------------------------*/ - // Renders a visual indication of an event or external element being dragged. - // `eventLocation` has zoned start and end (optional) - DayGrid.prototype.renderDrag = function (eventFootprints, seg, isTouch) { - var i; - for (i = 0; i < eventFootprints.length; i++) { - this.renderHighlight(eventFootprints[i].componentFootprint); - } - // render drags from OTHER components as helpers - if (eventFootprints.length && seg && seg.component !== this) { - this.helperRenderer.renderEventDraggingFootprints(eventFootprints, seg, isTouch); - return true; // signal helpers rendered - } - }; - // Unrenders any visual indication of a hovering event - DayGrid.prototype.unrenderDrag = function () { - this.unrenderHighlight(); - this.helperRenderer.unrender(); - }; - /* Event Resize Visualization - ------------------------------------------------------------------------------------------------------------------*/ - // Renders a visual indication of an event being resized - DayGrid.prototype.renderEventResize = function (eventFootprints, seg, isTouch) { - var i; - for (i = 0; i < eventFootprints.length; i++) { - this.renderHighlight(eventFootprints[i].componentFootprint); - } - this.helperRenderer.renderEventResizingFootprints(eventFootprints, seg, isTouch); - }; - // Unrenders a visual indication of an event being resized - DayGrid.prototype.unrenderEventResize = function () { - this.unrenderHighlight(); - this.helperRenderer.unrender(); - }; - /* More+ Link Popover - ------------------------------------------------------------------------------------------------------------------*/ - DayGrid.prototype.removeSegPopover = function () { - if (this.segPopover) { - this.segPopover.hide(); // in handler, will call segPopover's removeElement - } - }; - // Limits the number of "levels" (vertically stacking layers of events) for each row of the grid. - // `levelLimit` can be false (don't limit), a number, or true (should be computed). - DayGrid.prototype.limitRows = function (levelLimit) { - var rowStructs = this.eventRenderer.rowStructs || []; - var row; // row # - var rowLevelLimit; - for (row = 0; row < rowStructs.length; row++) { - this.unlimitRow(row); - if (!levelLimit) { - rowLevelLimit = false; - } - else if (typeof levelLimit === 'number') { - rowLevelLimit = levelLimit; - } - else { - rowLevelLimit = this.computeRowLevelLimit(row); - } - if (rowLevelLimit !== false) { - this.limitRow(row, rowLevelLimit); - } - } - }; - // Computes the number of levels a row will accomodate without going outside its bounds. - // Assumes the row is "rigid" (maintains a constant height regardless of what is inside). - // `row` is the row number. - DayGrid.prototype.computeRowLevelLimit = function (row) { - var rowEl = this.rowEls.eq(row); // the containing "fake" row div - var rowHeight = rowEl.height(); // TODO: cache somehow? - var trEls = this.eventRenderer.rowStructs[row].tbodyEl.children(); - var i; - var trEl; - var trHeight; - function iterInnerHeights(i, childNode) { - trHeight = Math.max(trHeight, $(childNode).outerHeight()); - } - // Reveal one level at a time and stop when we find one out of bounds - for (i = 0; i < trEls.length; i++) { - trEl = trEls.eq(i).removeClass('fc-limited'); // reset to original state (reveal) - // with rowspans>1 and IE8, trEl.outerHeight() would return the height of the largest cell, - // so instead, find the tallest inner content element. - trHeight = 0; - trEl.find('> td > :first-child').each(iterInnerHeights); - if (trEl.position().top + trHeight > rowHeight) { - return i; - } - } - return false; // should not limit at all - }; - // Limits the given grid row to the maximum number of levels and injects "more" links if necessary. - // `row` is the row number. - // `levelLimit` is a number for the maximum (inclusive) number of levels allowed. - DayGrid.prototype.limitRow = function (row, levelLimit) { - var _this = this; - var rowStruct = this.eventRenderer.rowStructs[row]; - var moreNodes = []; // array of "more" links and DOM nodes - var col = 0; // col #, left-to-right (not chronologically) - var levelSegs; // array of segment objects in the last allowable level, ordered left-to-right - var cellMatrix; // a matrix (by level, then column) of all jQuery elements in the row - var limitedNodes; // array of temporarily hidden level and segment DOM nodes - var i; - var seg; - var segsBelow; // array of segment objects below `seg` in the current `col` - var totalSegsBelow; // total number of segments below `seg` in any of the columns `seg` occupies - var colSegsBelow; // array of segment arrays, below seg, one for each column (offset from segs's first column) - var td; - var rowspan; - var segMoreNodes; // array of "more" cells that will stand-in for the current seg's cell - var j; - var moreTd; - var moreWrap; - var moreLink; - // Iterates through empty level cells and places "more" links inside if need be - var emptyCellsUntil = function (endCol) { - while (col < endCol) { - segsBelow = _this.getCellSegs(row, col, levelLimit); - if (segsBelow.length) { - td = cellMatrix[levelLimit - 1][col]; - moreLink = _this.renderMoreLink(row, col, segsBelow); - moreWrap = $('
    ').append(moreLink); - td.append(moreWrap); - moreNodes.push(moreWrap[0]); - } - col++; - } - }; - if (levelLimit && levelLimit < rowStruct.segLevels.length) { - levelSegs = rowStruct.segLevels[levelLimit - 1]; - cellMatrix = rowStruct.cellMatrix; - limitedNodes = rowStruct.tbodyEl.children().slice(levelLimit) // get level elements past the limit - .addClass('fc-limited').get(); // hide elements and get a simple DOM-nodes array - // iterate though segments in the last allowable level - for (i = 0; i < levelSegs.length; i++) { - seg = levelSegs[i]; - emptyCellsUntil(seg.leftCol); // process empty cells before the segment - // determine *all* segments below `seg` that occupy the same columns - colSegsBelow = []; - totalSegsBelow = 0; - while (col <= seg.rightCol) { - segsBelow = this.getCellSegs(row, col, levelLimit); - colSegsBelow.push(segsBelow); - totalSegsBelow += segsBelow.length; - col++; - } - if (totalSegsBelow) { - td = cellMatrix[levelLimit - 1][seg.leftCol]; // the segment's parent cell - rowspan = td.attr('rowspan') || 1; - segMoreNodes = []; - // make a replacement for each column the segment occupies. will be one for each colspan - for (j = 0; j < colSegsBelow.length; j++) { - moreTd = $('').attr('rowspan', rowspan); - segsBelow = colSegsBelow[j]; - moreLink = this.renderMoreLink(row, seg.leftCol + j, [seg].concat(segsBelow) // count seg as hidden too - ); - moreWrap = $('
    ').append(moreLink); - moreTd.append(moreWrap); - segMoreNodes.push(moreTd[0]); - moreNodes.push(moreTd[0]); - } - td.addClass('fc-limited').after($(segMoreNodes)); // hide original and inject replacements - limitedNodes.push(td[0]); - } - } - emptyCellsUntil(this.colCnt); // finish off the level - rowStruct.moreEls = $(moreNodes); // for easy undoing later - rowStruct.limitedEls = $(limitedNodes); // for easy undoing later - } - }; - // Reveals all levels and removes all "more"-related elements for a grid's row. - // `row` is a row number. - DayGrid.prototype.unlimitRow = function (row) { - var rowStruct = this.eventRenderer.rowStructs[row]; - if (rowStruct.moreEls) { - rowStruct.moreEls.remove(); - rowStruct.moreEls = null; - } - if (rowStruct.limitedEls) { - rowStruct.limitedEls.removeClass('fc-limited'); - rowStruct.limitedEls = null; - } - }; - // Renders an element that represents hidden event element for a cell. - // Responsible for attaching click handler as well. - DayGrid.prototype.renderMoreLink = function (row, col, hiddenSegs) { - var _this = this; - var view = this.view; - return $('') - .text(this.getMoreLinkText(hiddenSegs.length)) - .on('click', function (ev) { - var clickOption = _this.opt('eventLimitClick'); - var date = _this.getCellDate(row, col); - var moreEl = $(ev.currentTarget); - var dayEl = _this.getCellEl(row, col); - var allSegs = _this.getCellSegs(row, col); - // rescope the segments to be within the cell's date - var reslicedAllSegs = _this.resliceDaySegs(allSegs, date); - var reslicedHiddenSegs = _this.resliceDaySegs(hiddenSegs, date); - if (typeof clickOption === 'function') { - // the returned value can be an atomic option - clickOption = _this.publiclyTrigger('eventLimitClick', { - context: view, - args: [ - { - date: date.clone(), - dayEl: dayEl, - moreEl: moreEl, - segs: reslicedAllSegs, - hiddenSegs: reslicedHiddenSegs - }, - ev, - view - ] - }); - } - if (clickOption === 'popover') { - _this.showSegPopover(row, col, moreEl, reslicedAllSegs); - } - else if (typeof clickOption === 'string') { - view.calendar.zoomTo(date, clickOption); - } - }); - }; - // Reveals the popover that displays all events within a cell - DayGrid.prototype.showSegPopover = function (row, col, moreLink, segs) { - var _this = this; - var view = this.view; - var moreWrap = moreLink.parent(); // the
    wrapper around the - var topEl; // the element we want to match the top coordinate of - var options; - if (this.rowCnt === 1) { - topEl = view.el; // will cause the popover to cover any sort of header - } - else { - topEl = this.rowEls.eq(row); // will align with top of row - } - options = { - className: 'fc-more-popover ' + view.calendar.theme.getClass('popover'), - content: this.renderSegPopoverContent(row, col, segs), - parentEl: view.el, - top: topEl.offset().top, - autoHide: true, - viewportConstrain: this.opt('popoverViewportConstrain'), - hide: function () { - // kill everything when the popover is hidden - // notify events to be removed - if (_this.popoverSegs) { - _this.triggerBeforeEventSegsDestroyed(_this.popoverSegs); - } - _this.segPopover.removeElement(); - _this.segPopover = null; - _this.popoverSegs = null; - } - }; - // Determine horizontal coordinate. - // We use the moreWrap instead of the to avoid border confusion. - if (this.isRTL) { - options.right = moreWrap.offset().left + moreWrap.outerWidth() + 1; // +1 to be over cell border - } - else { - options.left = moreWrap.offset().left - 1; // -1 to be over cell border - } - this.segPopover = new Popover_1.default(options); - this.segPopover.show(); - // the popover doesn't live within the grid's container element, and thus won't get the event - // delegated-handlers for free. attach event-related handlers to the popover. - this.bindAllSegHandlersToEl(this.segPopover.el); - this.triggerAfterEventSegsRendered(segs); - }; - // Builds the inner DOM contents of the segment popover - DayGrid.prototype.renderSegPopoverContent = function (row, col, segs) { - var view = this.view; - var theme = view.calendar.theme; - var title = this.getCellDate(row, col).format(this.opt('dayPopoverFormat')); - var content = $('
    ' + - '' + - '' + - util_1.htmlEscape(title) + - '' + - '
    ' + - '
    ' + - '
    ' + - '
    ' + - '
    '); - var segContainer = content.find('.fc-event-container'); - var i; - // render each seg's `el` and only return the visible segs - segs = this.eventRenderer.renderFgSegEls(segs, true); // disableResizing=true - this.popoverSegs = segs; - for (i = 0; i < segs.length; i++) { - // because segments in the popover are not part of a grid coordinate system, provide a hint to any - // grids that want to do drag-n-drop about which cell it came from - this.hitsNeeded(); - segs[i].hit = this.getCellHit(row, col); - this.hitsNotNeeded(); - segContainer.append(segs[i].el); - } - return content; - }; - // Given the events within an array of segment objects, reslice them to be in a single day - DayGrid.prototype.resliceDaySegs = function (segs, dayDate) { - var dayStart = dayDate.clone(); - var dayEnd = dayStart.clone().add(1, 'days'); - var dayRange = new UnzonedRange_1.default(dayStart, dayEnd); - var newSegs = []; - var i; - var seg; - var slicedRange; - for (i = 0; i < segs.length; i++) { - seg = segs[i]; - slicedRange = seg.footprint.componentFootprint.unzonedRange.intersect(dayRange); - if (slicedRange) { - newSegs.push($.extend({}, seg, { - footprint: new EventFootprint_1.default(new ComponentFootprint_1.default(slicedRange, seg.footprint.componentFootprint.isAllDay), seg.footprint.eventDef, seg.footprint.eventInstance), - isStart: seg.isStart && slicedRange.isStart, - isEnd: seg.isEnd && slicedRange.isEnd - })); - } - } - // force an order because eventsToSegs doesn't guarantee one - // TODO: research if still needed - this.eventRenderer.sortEventSegs(newSegs); - return newSegs; - }; - // Generates the text that should be inside a "more" link, given the number of events it represents - DayGrid.prototype.getMoreLinkText = function (num) { - var opt = this.opt('eventLimitText'); - if (typeof opt === 'function') { - return opt(num); - } - else { - return '+' + num + ' ' + opt; - } - }; - // Returns segments within a given cell. - // If `startLevel` is specified, returns only events including and below that level. Otherwise returns all segs. - DayGrid.prototype.getCellSegs = function (row, col, startLevel) { - var segMatrix = this.eventRenderer.rowStructs[row].segMatrix; - var level = startLevel || 0; - var segs = []; - var seg; - while (level < segMatrix.length) { - seg = segMatrix[level][col]; - if (seg) { - segs.push(seg); - } - level++; - } - return segs; - }; - return DayGrid; -}(InteractiveDateComponent_1.default)); -exports.default = DayGrid; -DayGrid.prototype.eventRendererClass = DayGridEventRenderer_1.default; -DayGrid.prototype.businessHourRendererClass = BusinessHourRenderer_1.default; -DayGrid.prototype.helperRendererClass = DayGridHelperRenderer_1.default; -DayGrid.prototype.fillRendererClass = DayGridFillRenderer_1.default; -StandardInteractionsMixin_1.default.mixInto(DayGrid); -DayTableMixin_1.default.mixInto(DayGrid); - - -/***/ }), -/* 62 */ -/***/ (function(module, exports, __webpack_require__) { - -Object.defineProperty(exports, "__esModule", { value: true }); -var tslib_1 = __webpack_require__(2); -var $ = __webpack_require__(3); -var util_1 = __webpack_require__(4); -var Scroller_1 = __webpack_require__(39); -var View_1 = __webpack_require__(41); -var BasicViewDateProfileGenerator_1 = __webpack_require__(228); -var DayGrid_1 = __webpack_require__(61); -/* An abstract class for the "basic" views, as well as month view. Renders one or more rows of day cells. -----------------------------------------------------------------------------------------------------------------------*/ -// It is a manager for a DayGrid subcomponent, which does most of the heavy lifting. -// It is responsible for managing width/height. -var BasicView = /** @class */ (function (_super) { - tslib_1.__extends(BasicView, _super); - function BasicView(calendar, viewSpec) { - var _this = _super.call(this, calendar, viewSpec) || this; - _this.dayGrid = _this.instantiateDayGrid(); - _this.dayGrid.isRigid = _this.hasRigidRows(); - if (_this.opt('weekNumbers')) { - if (_this.opt('weekNumbersWithinDays')) { - _this.dayGrid.cellWeekNumbersVisible = true; - _this.dayGrid.colWeekNumbersVisible = false; - } - else { - _this.dayGrid.cellWeekNumbersVisible = false; - _this.dayGrid.colWeekNumbersVisible = true; - } - } - _this.addChild(_this.dayGrid); - _this.scroller = new Scroller_1.default({ - overflowX: 'hidden', - overflowY: 'auto' - }); - return _this; - } - // Generates the DayGrid object this view needs. Draws from this.dayGridClass - BasicView.prototype.instantiateDayGrid = function () { - // generate a subclass on the fly with BasicView-specific behavior - // TODO: cache this subclass - var subclass = makeDayGridSubclass(this.dayGridClass); - return new subclass(this); - }; - BasicView.prototype.executeDateRender = function (dateProfile) { - this.dayGrid.breakOnWeeks = /year|month|week/.test(dateProfile.currentRangeUnit); - _super.prototype.executeDateRender.call(this, dateProfile); - }; - BasicView.prototype.renderSkeleton = function () { - var dayGridContainerEl; - var dayGridEl; - this.el.addClass('fc-basic-view').html(this.renderSkeletonHtml()); - this.scroller.render(); - dayGridContainerEl = this.scroller.el.addClass('fc-day-grid-container'); - dayGridEl = $('
    ').appendTo(dayGridContainerEl); - this.el.find('.fc-body > tr > td').append(dayGridContainerEl); - this.dayGrid.headContainerEl = this.el.find('.fc-head-container'); - this.dayGrid.setElement(dayGridEl); - }; - BasicView.prototype.unrenderSkeleton = function () { - this.dayGrid.removeElement(); - this.scroller.destroy(); - }; - // Builds the HTML skeleton for the view. - // The day-grid component will render inside of a container defined by this HTML. - BasicView.prototype.renderSkeletonHtml = function () { - var theme = this.calendar.theme; - return '' + - '' + - (this.opt('columnHeader') ? - '' + - '' + - '' + - '' + - '' : - '') + - '' + - '' + - '' + - '' + - '' + - '
     
    '; - }; - // Generates an HTML attribute string for setting the width of the week number column, if it is known - BasicView.prototype.weekNumberStyleAttr = function () { - if (this.weekNumberWidth != null) { - return 'style="width:' + this.weekNumberWidth + 'px"'; - } - return ''; - }; - // Determines whether each row should have a constant height - BasicView.prototype.hasRigidRows = function () { - var eventLimit = this.opt('eventLimit'); - return eventLimit && typeof eventLimit !== 'number'; - }; - /* Dimensions - ------------------------------------------------------------------------------------------------------------------*/ - // Refreshes the horizontal dimensions of the view - BasicView.prototype.updateSize = function (totalHeight, isAuto, isResize) { - var eventLimit = this.opt('eventLimit'); - var headRowEl = this.dayGrid.headContainerEl.find('.fc-row'); - var scrollerHeight; - var scrollbarWidths; - // hack to give the view some height prior to dayGrid's columns being rendered - // TODO: separate setting height from scroller VS dayGrid. - if (!this.dayGrid.rowEls) { - if (!isAuto) { - scrollerHeight = this.computeScrollerHeight(totalHeight); - this.scroller.setHeight(scrollerHeight); - } - return; - } - _super.prototype.updateSize.call(this, totalHeight, isAuto, isResize); - if (this.dayGrid.colWeekNumbersVisible) { - // Make sure all week number cells running down the side have the same width. - // Record the width for cells created later. - this.weekNumberWidth = util_1.matchCellWidths(this.el.find('.fc-week-number')); - } - // reset all heights to be natural - this.scroller.clear(); - util_1.uncompensateScroll(headRowEl); - this.dayGrid.removeSegPopover(); // kill the "more" popover if displayed - // is the event limit a constant level number? - if (eventLimit && typeof eventLimit === 'number') { - this.dayGrid.limitRows(eventLimit); // limit the levels first so the height can redistribute after - } - // distribute the height to the rows - // (totalHeight is a "recommended" value if isAuto) - scrollerHeight = this.computeScrollerHeight(totalHeight); - this.setGridHeight(scrollerHeight, isAuto); - // is the event limit dynamically calculated? - if (eventLimit && typeof eventLimit !== 'number') { - this.dayGrid.limitRows(eventLimit); // limit the levels after the grid's row heights have been set - } - if (!isAuto) { - this.scroller.setHeight(scrollerHeight); - scrollbarWidths = this.scroller.getScrollbarWidths(); - if (scrollbarWidths.left || scrollbarWidths.right) { - util_1.compensateScroll(headRowEl, scrollbarWidths); - // doing the scrollbar compensation might have created text overflow which created more height. redo - scrollerHeight = this.computeScrollerHeight(totalHeight); - this.scroller.setHeight(scrollerHeight); - } - // guarantees the same scrollbar widths - this.scroller.lockOverflow(scrollbarWidths); - } - }; - // given a desired total height of the view, returns what the height of the scroller should be - BasicView.prototype.computeScrollerHeight = function (totalHeight) { - return totalHeight - - util_1.subtractInnerElHeight(this.el, this.scroller.el); // everything that's NOT the scroller - }; - // Sets the height of just the DayGrid component in this view - BasicView.prototype.setGridHeight = function (height, isAuto) { - if (isAuto) { - util_1.undistributeHeight(this.dayGrid.rowEls); // let the rows be their natural height with no expanding - } - else { - util_1.distributeHeight(this.dayGrid.rowEls, height, true); // true = compensate for height-hogging rows - } - }; - /* Scroll - ------------------------------------------------------------------------------------------------------------------*/ - BasicView.prototype.computeInitialDateScroll = function () { - return { top: 0 }; - }; - BasicView.prototype.queryDateScroll = function () { - return { top: this.scroller.getScrollTop() }; - }; - BasicView.prototype.applyDateScroll = function (scroll) { - if (scroll.top !== undefined) { - this.scroller.setScrollTop(scroll.top); - } - }; - return BasicView; -}(View_1.default)); -exports.default = BasicView; -BasicView.prototype.dateProfileGeneratorClass = BasicViewDateProfileGenerator_1.default; -BasicView.prototype.dayGridClass = DayGrid_1.default; -// customize the rendering behavior of BasicView's dayGrid -function makeDayGridSubclass(SuperClass) { - return /** @class */ (function (_super) { - tslib_1.__extends(SubClass, _super); - function SubClass() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.colWeekNumbersVisible = false; // display week numbers along the side? - return _this; - } - // Generates the HTML that will go before the day-of week header cells - SubClass.prototype.renderHeadIntroHtml = function () { - var view = this.view; - if (this.colWeekNumbersVisible) { - return '' + - '' + - '' + // needed for matchCellWidths - util_1.htmlEscape(this.opt('weekNumberTitle')) + - '' + - ''; - } - return ''; - }; - // Generates the HTML that will go before content-skeleton cells that display the day/week numbers - SubClass.prototype.renderNumberIntroHtml = function (row) { - var view = this.view; - var weekStart = this.getCellDate(row, 0); - if (this.colWeekNumbersVisible) { - return '' + - '' + - view.buildGotoAnchorHtml(// aside from link, important for matchCellWidths - { date: weekStart, type: 'week', forceOff: this.colCnt === 1 }, weekStart.format('w') // inner HTML - ) + - ''; - } - return ''; - }; - // Generates the HTML that goes before the day bg cells for each day-row - SubClass.prototype.renderBgIntroHtml = function () { - var view = this.view; - if (this.colWeekNumbersVisible) { - return ''; - } - return ''; - }; - // Generates the HTML that goes before every other type of row generated by DayGrid. - // Affects helper-skeleton and highlight-skeleton rows. - SubClass.prototype.renderIntroHtml = function () { - var view = this.view; - if (this.colWeekNumbersVisible) { - return ''; - } - return ''; - }; - SubClass.prototype.getIsNumbersVisible = function () { - return DayGrid_1.default.prototype.getIsNumbersVisible.apply(this, arguments) || this.colWeekNumbersVisible; - }; - return SubClass; - }(SuperClass)); -} - - -/***/ }), -/* 63 */, -/* 64 */, -/* 65 */, -/* 66 */, -/* 67 */, -/* 68 */, -/* 69 */, -/* 70 */, -/* 71 */, -/* 72 */, -/* 73 */, -/* 74 */, -/* 75 */, -/* 76 */, -/* 77 */, -/* 78 */, -/* 79 */, -/* 80 */, -/* 81 */, -/* 82 */, -/* 83 */, -/* 84 */, -/* 85 */, -/* 86 */, -/* 87 */, -/* 88 */, -/* 89 */, -/* 90 */, -/* 91 */, -/* 92 */, -/* 93 */, -/* 94 */, -/* 95 */, -/* 96 */, -/* 97 */, -/* 98 */, -/* 99 */, -/* 100 */, -/* 101 */, -/* 102 */, -/* 103 */, -/* 104 */, -/* 105 */, -/* 106 */, -/* 107 */, -/* 108 */, -/* 109 */, -/* 110 */, -/* 111 */, -/* 112 */, -/* 113 */, -/* 114 */, -/* 115 */, -/* 116 */, -/* 117 */, -/* 118 */, -/* 119 */, -/* 120 */, -/* 121 */, -/* 122 */, -/* 123 */, -/* 124 */, -/* 125 */, -/* 126 */, -/* 127 */, -/* 128 */, -/* 129 */, -/* 130 */, -/* 131 */, -/* 132 */, -/* 133 */, -/* 134 */, -/* 135 */, -/* 136 */, -/* 137 */, -/* 138 */, -/* 139 */, -/* 140 */, -/* 141 */, -/* 142 */, -/* 143 */, -/* 144 */, -/* 145 */, -/* 146 */, -/* 147 */, -/* 148 */, -/* 149 */, -/* 150 */, -/* 151 */, -/* 152 */, -/* 153 */, -/* 154 */, -/* 155 */, -/* 156 */, -/* 157 */, -/* 158 */, -/* 159 */, -/* 160 */, -/* 161 */, -/* 162 */, -/* 163 */, -/* 164 */, -/* 165 */, -/* 166 */, -/* 167 */, -/* 168 */, -/* 169 */, -/* 170 */, -/* 171 */, -/* 172 */, -/* 173 */, -/* 174 */, -/* 175 */, -/* 176 */, -/* 177 */, -/* 178 */, -/* 179 */, -/* 180 */, -/* 181 */, -/* 182 */, -/* 183 */, -/* 184 */, -/* 185 */, -/* 186 */, -/* 187 */, -/* 188 */, -/* 189 */, -/* 190 */, -/* 191 */, -/* 192 */, -/* 193 */, -/* 194 */, -/* 195 */, -/* 196 */, -/* 197 */, -/* 198 */, -/* 199 */, -/* 200 */, -/* 201 */, -/* 202 */, -/* 203 */, -/* 204 */, -/* 205 */, -/* 206 */, -/* 207 */ -/***/ (function(module, exports, __webpack_require__) { - -Object.defineProperty(exports, "__esModule", { value: true }); -var UnzonedRange_1 = __webpack_require__(5); -var ComponentFootprint_1 = __webpack_require__(12); -var EventDefParser_1 = __webpack_require__(49); -var EventSource_1 = __webpack_require__(6); -var util_1 = __webpack_require__(35); -var Constraints = /** @class */ (function () { - function Constraints(eventManager, _calendar) { - this.eventManager = eventManager; - this._calendar = _calendar; - } - Constraints.prototype.opt = function (name) { - return this._calendar.opt(name); - }; - /* - determines if eventInstanceGroup is allowed, - in relation to other EVENTS and business hours. - */ - Constraints.prototype.isEventInstanceGroupAllowed = function (eventInstanceGroup) { - var eventDef = eventInstanceGroup.getEventDef(); - var eventFootprints = this.eventRangesToEventFootprints(eventInstanceGroup.getAllEventRanges()); - var i; - var peerEventInstances = this.getPeerEventInstances(eventDef); - var peerEventRanges = peerEventInstances.map(util_1.eventInstanceToEventRange); - var peerEventFootprints = this.eventRangesToEventFootprints(peerEventRanges); - var constraintVal = eventDef.getConstraint(); - var overlapVal = eventDef.getOverlap(); - var eventAllowFunc = this.opt('eventAllow'); - for (i = 0; i < eventFootprints.length; i++) { - if (!this.isFootprintAllowed(eventFootprints[i].componentFootprint, peerEventFootprints, constraintVal, overlapVal, eventFootprints[i].eventInstance)) { - return false; - } - } - if (eventAllowFunc) { - for (i = 0; i < eventFootprints.length; i++) { - if (eventAllowFunc(eventFootprints[i].componentFootprint.toLegacy(this._calendar), eventFootprints[i].getEventLegacy()) === false) { - return false; - } - } - } - return true; - }; - Constraints.prototype.getPeerEventInstances = function (eventDef) { - return this.eventManager.getEventInstancesWithoutId(eventDef.id); - }; - Constraints.prototype.isSelectionFootprintAllowed = function (componentFootprint) { - var peerEventInstances = this.eventManager.getEventInstances(); - var peerEventRanges = peerEventInstances.map(util_1.eventInstanceToEventRange); - var peerEventFootprints = this.eventRangesToEventFootprints(peerEventRanges); - var selectAllowFunc; - if (this.isFootprintAllowed(componentFootprint, peerEventFootprints, this.opt('selectConstraint'), this.opt('selectOverlap'))) { - selectAllowFunc = this.opt('selectAllow'); - if (selectAllowFunc) { - return selectAllowFunc(componentFootprint.toLegacy(this._calendar)) !== false; - } - else { - return true; - } - } - return false; - }; - Constraints.prototype.isFootprintAllowed = function (componentFootprint, peerEventFootprints, constraintVal, overlapVal, subjectEventInstance // optional - ) { - var constraintFootprints; // ComponentFootprint[] - var overlapEventFootprints; // EventFootprint[] - if (constraintVal != null) { - constraintFootprints = this.constraintValToFootprints(constraintVal, componentFootprint.isAllDay); - if (!this.isFootprintWithinConstraints(componentFootprint, constraintFootprints)) { - return false; - } - } - overlapEventFootprints = this.collectOverlapEventFootprints(peerEventFootprints, componentFootprint); - if (overlapVal === false) { - if (overlapEventFootprints.length) { - return false; - } - } - else if (typeof overlapVal === 'function') { - if (!isOverlapsAllowedByFunc(overlapEventFootprints, overlapVal, subjectEventInstance)) { - return false; - } - } - if (subjectEventInstance) { - if (!isOverlapEventInstancesAllowed(overlapEventFootprints, subjectEventInstance)) { - return false; - } - } - return true; - }; - // Constraint - // ------------------------------------------------------------------------------------------------ - Constraints.prototype.isFootprintWithinConstraints = function (componentFootprint, constraintFootprints) { - var i; - for (i = 0; i < constraintFootprints.length; i++) { - if (this.footprintContainsFootprint(constraintFootprints[i], componentFootprint)) { - return true; - } - } - return false; - }; - Constraints.prototype.constraintValToFootprints = function (constraintVal, isAllDay) { - var eventInstances; - if (constraintVal === 'businessHours') { - return this.buildCurrentBusinessFootprints(isAllDay); - } - else if (typeof constraintVal === 'object') { - eventInstances = this.parseEventDefToInstances(constraintVal); // handles recurring events - if (!eventInstances) { - return this.parseFootprints(constraintVal); - } - else { - return this.eventInstancesToFootprints(eventInstances); - } - } - else if (constraintVal != null) { - eventInstances = this.eventManager.getEventInstancesWithId(constraintVal); - return this.eventInstancesToFootprints(eventInstances); - } - }; - // returns ComponentFootprint[] - // uses current view's range - Constraints.prototype.buildCurrentBusinessFootprints = function (isAllDay) { - var view = this._calendar.view; - var businessHourGenerator = view.get('businessHourGenerator'); - var unzonedRange = view.dateProfile.activeUnzonedRange; - var eventInstanceGroup = businessHourGenerator.buildEventInstanceGroup(isAllDay, unzonedRange); - if (eventInstanceGroup) { - return this.eventInstancesToFootprints(eventInstanceGroup.eventInstances); - } - else { - return []; - } - }; - // conversion util - Constraints.prototype.eventInstancesToFootprints = function (eventInstances) { - var eventRanges = eventInstances.map(util_1.eventInstanceToEventRange); - var eventFootprints = this.eventRangesToEventFootprints(eventRanges); - return eventFootprints.map(util_1.eventFootprintToComponentFootprint); - }; - // Overlap - // ------------------------------------------------------------------------------------------------ - Constraints.prototype.collectOverlapEventFootprints = function (peerEventFootprints, targetFootprint) { - var overlapEventFootprints = []; - var i; - for (i = 0; i < peerEventFootprints.length; i++) { - if (this.footprintsIntersect(targetFootprint, peerEventFootprints[i].componentFootprint)) { - overlapEventFootprints.push(peerEventFootprints[i]); - } - } - return overlapEventFootprints; - }; - // Conversion: eventDefs -> eventInstances -> eventRanges -> eventFootprints -> componentFootprints - // ------------------------------------------------------------------------------------------------ - // NOTE: this might seem like repetitive code with the Grid class, however, this code is related to - // constraints whereas the Grid code is related to rendering. Each approach might want to convert - // eventRanges -> eventFootprints in a different way. Regardless, there are opportunities to make - // this more DRY. - /* - Returns false on invalid input. - */ - Constraints.prototype.parseEventDefToInstances = function (eventInput) { - var eventManager = this.eventManager; - var eventDef = EventDefParser_1.default.parse(eventInput, new EventSource_1.default(this._calendar)); - if (!eventDef) { - return false; - } - return eventDef.buildInstances(eventManager.currentPeriod.unzonedRange); - }; - Constraints.prototype.eventRangesToEventFootprints = function (eventRanges) { - var i; - var eventFootprints = []; - for (i = 0; i < eventRanges.length; i++) { - eventFootprints.push.apply(// footprints - eventFootprints, this.eventRangeToEventFootprints(eventRanges[i])); - } - return eventFootprints; - }; - Constraints.prototype.eventRangeToEventFootprints = function (eventRange) { - return [util_1.eventRangeToEventFootprint(eventRange)]; - }; - /* - Parses footprints directly. - Very similar to EventDateProfile::parse :( - */ - Constraints.prototype.parseFootprints = function (rawInput) { - var start; - var end; - if (rawInput.start) { - start = this._calendar.moment(rawInput.start); - if (!start.isValid()) { - start = null; - } - } - if (rawInput.end) { - end = this._calendar.moment(rawInput.end); - if (!end.isValid()) { - end = null; - } - } - return [ - new ComponentFootprint_1.default(new UnzonedRange_1.default(start, end), (start && !start.hasTime()) || (end && !end.hasTime()) // isAllDay - ) - ]; - }; - // Footprint Utils - // ---------------------------------------------------------------------------------------- - Constraints.prototype.footprintContainsFootprint = function (outerFootprint, innerFootprint) { - return outerFootprint.unzonedRange.containsRange(innerFootprint.unzonedRange); - }; - Constraints.prototype.footprintsIntersect = function (footprint0, footprint1) { - return footprint0.unzonedRange.intersectsWith(footprint1.unzonedRange); - }; - return Constraints; -}()); -exports.default = Constraints; -// optional subjectEventInstance -function isOverlapsAllowedByFunc(overlapEventFootprints, overlapFunc, subjectEventInstance) { - var i; - for (i = 0; i < overlapEventFootprints.length; i++) { - if (!overlapFunc(overlapEventFootprints[i].eventInstance.toLegacy(), subjectEventInstance ? subjectEventInstance.toLegacy() : null)) { - return false; - } - } - return true; -} -function isOverlapEventInstancesAllowed(overlapEventFootprints, subjectEventInstance) { - var subjectLegacyInstance = subjectEventInstance.toLegacy(); - var i; - var overlapEventInstance; - var overlapEventDef; - var overlapVal; - for (i = 0; i < overlapEventFootprints.length; i++) { - overlapEventInstance = overlapEventFootprints[i].eventInstance; - overlapEventDef = overlapEventInstance.def; - // don't need to pass in calendar, because don't want to consider global eventOverlap property, - // because we already considered that earlier in the process. - overlapVal = overlapEventDef.getOverlap(); - if (overlapVal === false) { - return false; - } - else if (typeof overlapVal === 'function') { - if (!overlapVal(overlapEventInstance.toLegacy(), subjectLegacyInstance)) { - return false; - } - } - } - return true; -} - - -/***/ }), -/* 208 */ -/***/ (function(module, exports, __webpack_require__) { - -/* -USAGE: - import { default as ParsableModelMixin, ParsableModelInterface } from './ParsableModelMixin' -in class: - applyProps: ParsableModelInterface['applyProps'] - applyManualStandardProps: ParsableModelInterface['applyManualStandardProps'] - applyMiscProps: ParsableModelInterface['applyMiscProps'] - isStandardProp: ParsableModelInterface['isStandardProp'] - static defineStandardProps = ParsableModelMixin.defineStandardProps - static copyVerbatimStandardProps = ParsableModelMixin.copyVerbatimStandardProps -after class: - ParsableModelMixin.mixInto(TheClass) -*/ -Object.defineProperty(exports, "__esModule", { value: true }); -var tslib_1 = __webpack_require__(2); -var util_1 = __webpack_require__(4); -var Mixin_1 = __webpack_require__(14); -var ParsableModelMixin = /** @class */ (function (_super) { - tslib_1.__extends(ParsableModelMixin, _super); - function ParsableModelMixin() { - return _super !== null && _super.apply(this, arguments) || this; - } - ParsableModelMixin.defineStandardProps = function (propDefs) { - var proto = this.prototype; - if (!proto.hasOwnProperty('standardPropMap')) { - proto.standardPropMap = Object.create(proto.standardPropMap); - } - util_1.copyOwnProps(propDefs, proto.standardPropMap); - }; - ParsableModelMixin.copyVerbatimStandardProps = function (src, dest) { - var map = this.prototype.standardPropMap; - var propName; - for (propName in map) { - if (src[propName] != null && // in the src object? - map[propName] === true // false means "copy verbatim" - ) { - dest[propName] = src[propName]; - } - } - }; - /* - Returns true/false for success. - Meant to be only called ONCE, at object creation. - */ - ParsableModelMixin.prototype.applyProps = function (rawProps) { - var standardPropMap = this.standardPropMap; - var manualProps = {}; - var miscProps = {}; - var propName; - for (propName in rawProps) { - if (standardPropMap[propName] === true) { - this[propName] = rawProps[propName]; - } - else if (standardPropMap[propName] === false) { - manualProps[propName] = rawProps[propName]; - } - else { - miscProps[propName] = rawProps[propName]; - } - } - this.applyMiscProps(miscProps); - return this.applyManualStandardProps(manualProps); - }; - /* - If subclasses override, they must call this supermethod and return the boolean response. - Meant to be only called ONCE, at object creation. - */ - ParsableModelMixin.prototype.applyManualStandardProps = function (rawProps) { - return true; - }; - /* - Can be called even after initial object creation. - */ - ParsableModelMixin.prototype.applyMiscProps = function (rawProps) { - // subclasses can implement - }; - /* - TODO: why is this a method when defineStandardProps is static - */ - ParsableModelMixin.prototype.isStandardProp = function (propName) { - return propName in this.standardPropMap; - }; - return ParsableModelMixin; -}(Mixin_1.default)); -exports.default = ParsableModelMixin; -ParsableModelMixin.prototype.standardPropMap = {}; // will be cloned by defineStandardProps - - -/***/ }), -/* 209 */ -/***/ (function(module, exports) { - -Object.defineProperty(exports, "__esModule", { value: true }); -var EventInstance = /** @class */ (function () { - function EventInstance(def, dateProfile) { - this.def = def; - this.dateProfile = dateProfile; - } - EventInstance.prototype.toLegacy = function () { - var dateProfile = this.dateProfile; - var obj = this.def.toLegacy(); - obj.start = dateProfile.start.clone(); - obj.end = dateProfile.end ? dateProfile.end.clone() : null; - return obj; - }; - return EventInstance; -}()); -exports.default = EventInstance; - - -/***/ }), -/* 210 */ -/***/ (function(module, exports, __webpack_require__) { - -Object.defineProperty(exports, "__esModule", { value: true }); -var tslib_1 = __webpack_require__(2); -var $ = __webpack_require__(3); -var moment = __webpack_require__(0); -var EventDef_1 = __webpack_require__(34); -var EventInstance_1 = __webpack_require__(209); -var EventDateProfile_1 = __webpack_require__(17); -var RecurringEventDef = /** @class */ (function (_super) { - tslib_1.__extends(RecurringEventDef, _super); - function RecurringEventDef() { - return _super !== null && _super.apply(this, arguments) || this; - } - RecurringEventDef.prototype.isAllDay = function () { - return !this.startTime && !this.endTime; - }; - RecurringEventDef.prototype.buildInstances = function (unzonedRange) { - var calendar = this.source.calendar; - var unzonedDate = unzonedRange.getStart(); - var unzonedEnd = unzonedRange.getEnd(); - var zonedDayStart; - var instanceStart; - var instanceEnd; - var instances = []; - while (unzonedDate.isBefore(unzonedEnd)) { - // if everyday, or this particular day-of-week - if (!this.dowHash || this.dowHash[unzonedDate.day()]) { - zonedDayStart = calendar.applyTimezone(unzonedDate); - instanceStart = zonedDayStart.clone(); - instanceEnd = null; - if (this.startTime) { - instanceStart.time(this.startTime); - } - else { - instanceStart.stripTime(); - } - if (this.endTime) { - instanceEnd = zonedDayStart.clone().time(this.endTime); - } - instances.push(new EventInstance_1.default(this, // definition - new EventDateProfile_1.default(instanceStart, instanceEnd, calendar))); - } - unzonedDate.add(1, 'days'); - } - return instances; - }; - RecurringEventDef.prototype.setDow = function (dowNumbers) { - if (!this.dowHash) { - this.dowHash = {}; - } - for (var i = 0; i < dowNumbers.length; i++) { - this.dowHash[dowNumbers[i]] = true; - } - }; - RecurringEventDef.prototype.clone = function () { - var def = _super.prototype.clone.call(this); - if (def.startTime) { - def.startTime = moment.duration(this.startTime); - } - if (def.endTime) { - def.endTime = moment.duration(this.endTime); - } - if (this.dowHash) { - def.dowHash = $.extend({}, this.dowHash); - } - return def; - }; - return RecurringEventDef; -}(EventDef_1.default)); -exports.default = RecurringEventDef; -/* -HACK to work with TypeScript mixins -NOTE: if super-method fails, should still attempt to apply -*/ -RecurringEventDef.prototype.applyProps = function (rawProps) { - var superSuccess = EventDef_1.default.prototype.applyProps.call(this, rawProps); - if (rawProps.start) { - this.startTime = moment.duration(rawProps.start); - } - if (rawProps.end) { - this.endTime = moment.duration(rawProps.end); - } - if (rawProps.dow) { - this.setDow(rawProps.dow); - } - return superSuccess; -}; -// Parsing -// --------------------------------------------------------------------------------------------------------------------- -RecurringEventDef.defineStandardProps({ - start: false, - end: false, - dow: false -}); - - -/***/ }), -/* 211 */ -/***/ (function(module, exports) { - -Object.defineProperty(exports, "__esModule", { value: true }); -var EventRange = /** @class */ (function () { - function EventRange(unzonedRange, eventDef, eventInstance) { - this.unzonedRange = unzonedRange; - this.eventDef = eventDef; - if (eventInstance) { - this.eventInstance = eventInstance; - } - } - return EventRange; -}()); -exports.default = EventRange; - - -/***/ }), -/* 212 */ -/***/ (function(module, exports, __webpack_require__) { - -Object.defineProperty(exports, "__esModule", { value: true }); -var $ = __webpack_require__(3); -var util_1 = __webpack_require__(35); -var EventInstanceGroup_1 = __webpack_require__(18); -var RecurringEventDef_1 = __webpack_require__(210); -var EventSource_1 = __webpack_require__(6); -var BUSINESS_HOUR_EVENT_DEFAULTS = { - start: '09:00', - end: '17:00', - dow: [1, 2, 3, 4, 5], - rendering: 'inverse-background' - // classNames are defined in businessHoursSegClasses -}; -var BusinessHourGenerator = /** @class */ (function () { - function BusinessHourGenerator(rawComplexDef, calendar) { - this.rawComplexDef = rawComplexDef; - this.calendar = calendar; - } - BusinessHourGenerator.prototype.buildEventInstanceGroup = function (isAllDay, unzonedRange) { - var eventDefs = this.buildEventDefs(isAllDay); - var eventInstanceGroup; - if (eventDefs.length) { - eventInstanceGroup = new EventInstanceGroup_1.default(util_1.eventDefsToEventInstances(eventDefs, unzonedRange)); - // so that inverse-background rendering can happen even when no eventRanges in view - eventInstanceGroup.explicitEventDef = eventDefs[0]; - return eventInstanceGroup; - } - }; - BusinessHourGenerator.prototype.buildEventDefs = function (isAllDay) { - var rawComplexDef = this.rawComplexDef; - var rawDefs = []; - var requireDow = false; - var i; - var defs = []; - if (rawComplexDef === true) { - rawDefs = [{}]; // will get BUSINESS_HOUR_EVENT_DEFAULTS verbatim - } - else if ($.isPlainObject(rawComplexDef)) { - rawDefs = [rawComplexDef]; - } - else if ($.isArray(rawComplexDef)) { - rawDefs = rawComplexDef; - requireDow = true; // every sub-definition NEEDS a day-of-week - } - for (i = 0; i < rawDefs.length; i++) { - if (!requireDow || rawDefs[i].dow) { - defs.push(this.buildEventDef(isAllDay, rawDefs[i])); - } - } - return defs; - }; - BusinessHourGenerator.prototype.buildEventDef = function (isAllDay, rawDef) { - var fullRawDef = $.extend({}, BUSINESS_HOUR_EVENT_DEFAULTS, rawDef); - if (isAllDay) { - fullRawDef.start = null; - fullRawDef.end = null; - } - return RecurringEventDef_1.default.parse(fullRawDef, new EventSource_1.default(this.calendar) // dummy source - ); - }; - return BusinessHourGenerator; -}()); -exports.default = BusinessHourGenerator; - - -/***/ }), -/* 213 */ -/***/ (function(module, exports, __webpack_require__) { - -Object.defineProperty(exports, "__esModule", { value: true }); -var tslib_1 = __webpack_require__(2); -var Theme_1 = __webpack_require__(19); -var StandardTheme = /** @class */ (function (_super) { - tslib_1.__extends(StandardTheme, _super); - function StandardTheme() { - return _super !== null && _super.apply(this, arguments) || this; - } - return StandardTheme; -}(Theme_1.default)); -exports.default = StandardTheme; -StandardTheme.prototype.classes = { - widget: 'fc-unthemed', - widgetHeader: 'fc-widget-header', - widgetContent: 'fc-widget-content', - buttonGroup: 'fc-button-group', - button: 'fc-button', - cornerLeft: 'fc-corner-left', - cornerRight: 'fc-corner-right', - stateDefault: 'fc-state-default', - stateActive: 'fc-state-active', - stateDisabled: 'fc-state-disabled', - stateHover: 'fc-state-hover', - stateDown: 'fc-state-down', - popoverHeader: 'fc-widget-header', - popoverContent: 'fc-widget-content', - // day grid - headerRow: 'fc-widget-header', - dayRow: 'fc-widget-content', - // list view - listView: 'fc-widget-content' -}; -StandardTheme.prototype.baseIconClass = 'fc-icon'; -StandardTheme.prototype.iconClasses = { - close: 'fc-icon-x', - prev: 'fc-icon-left-single-arrow', - next: 'fc-icon-right-single-arrow', - prevYear: 'fc-icon-left-double-arrow', - nextYear: 'fc-icon-right-double-arrow' -}; -StandardTheme.prototype.iconOverrideOption = 'buttonIcons'; -StandardTheme.prototype.iconOverrideCustomButtonOption = 'icon'; -StandardTheme.prototype.iconOverridePrefix = 'fc-icon-'; - - -/***/ }), -/* 214 */ -/***/ (function(module, exports, __webpack_require__) { - -Object.defineProperty(exports, "__esModule", { value: true }); -var tslib_1 = __webpack_require__(2); -var Theme_1 = __webpack_require__(19); -var JqueryUiTheme = /** @class */ (function (_super) { - tslib_1.__extends(JqueryUiTheme, _super); - function JqueryUiTheme() { - return _super !== null && _super.apply(this, arguments) || this; - } - return JqueryUiTheme; -}(Theme_1.default)); -exports.default = JqueryUiTheme; -JqueryUiTheme.prototype.classes = { - widget: 'ui-widget', - widgetHeader: 'ui-widget-header', - widgetContent: 'ui-widget-content', - buttonGroup: 'fc-button-group', - button: 'ui-button', - cornerLeft: 'ui-corner-left', - cornerRight: 'ui-corner-right', - stateDefault: 'ui-state-default', - stateActive: 'ui-state-active', - stateDisabled: 'ui-state-disabled', - stateHover: 'ui-state-hover', - stateDown: 'ui-state-down', - today: 'ui-state-highlight', - popoverHeader: 'ui-widget-header', - popoverContent: 'ui-widget-content', - // day grid - headerRow: 'ui-widget-header', - dayRow: 'ui-widget-content', - // list view - listView: 'ui-widget-content' -}; -JqueryUiTheme.prototype.baseIconClass = 'ui-icon'; -JqueryUiTheme.prototype.iconClasses = { - close: 'ui-icon-closethick', - prev: 'ui-icon-circle-triangle-w', - next: 'ui-icon-circle-triangle-e', - prevYear: 'ui-icon-seek-prev', - nextYear: 'ui-icon-seek-next' -}; -JqueryUiTheme.prototype.iconOverrideOption = 'themeButtonIcons'; -JqueryUiTheme.prototype.iconOverrideCustomButtonOption = 'themeIcon'; -JqueryUiTheme.prototype.iconOverridePrefix = 'ui-icon-'; - - -/***/ }), -/* 215 */ -/***/ (function(module, exports, __webpack_require__) { - -Object.defineProperty(exports, "__esModule", { value: true }); -var tslib_1 = __webpack_require__(2); -var $ = __webpack_require__(3); -var Promise_1 = __webpack_require__(20); -var EventSource_1 = __webpack_require__(6); -var FuncEventSource = /** @class */ (function (_super) { - tslib_1.__extends(FuncEventSource, _super); - function FuncEventSource() { - return _super !== null && _super.apply(this, arguments) || this; - } - FuncEventSource.parse = function (rawInput, calendar) { - var rawProps; - // normalize raw input - if ($.isFunction(rawInput.events)) { - rawProps = rawInput; - } - else if ($.isFunction(rawInput)) { - rawProps = { events: rawInput }; - } - if (rawProps) { - return EventSource_1.default.parse.call(this, rawProps, calendar); - } - return false; - }; - FuncEventSource.prototype.fetch = function (start, end, timezone) { - var _this = this; - this.calendar.pushLoading(); - return Promise_1.default.construct(function (onResolve) { - _this.func.call(_this.calendar, start.clone(), end.clone(), timezone, function (rawEventDefs) { - _this.calendar.popLoading(); - onResolve(_this.parseEventDefs(rawEventDefs)); - }); - }); - }; - FuncEventSource.prototype.getPrimitive = function () { - return this.func; - }; - FuncEventSource.prototype.applyManualStandardProps = function (rawProps) { - var superSuccess = _super.prototype.applyManualStandardProps.call(this, rawProps); - this.func = rawProps.events; - return superSuccess; - }; - return FuncEventSource; -}(EventSource_1.default)); -exports.default = FuncEventSource; -FuncEventSource.defineStandardProps({ - events: false // don't automatically transfer -}); - - -/***/ }), -/* 216 */ -/***/ (function(module, exports, __webpack_require__) { - -Object.defineProperty(exports, "__esModule", { value: true }); -var tslib_1 = __webpack_require__(2); -var $ = __webpack_require__(3); -var util_1 = __webpack_require__(4); -var Promise_1 = __webpack_require__(20); -var EventSource_1 = __webpack_require__(6); -var JsonFeedEventSource = /** @class */ (function (_super) { - tslib_1.__extends(JsonFeedEventSource, _super); - function JsonFeedEventSource() { - return _super !== null && _super.apply(this, arguments) || this; - } - JsonFeedEventSource.parse = function (rawInput, calendar) { - var rawProps; - // normalize raw input - if (typeof rawInput.url === 'string') { - rawProps = rawInput; - } - else if (typeof rawInput === 'string') { - rawProps = { url: rawInput }; - } - if (rawProps) { - return EventSource_1.default.parse.call(this, rawProps, calendar); - } - return false; - }; - JsonFeedEventSource.prototype.fetch = function (start, end, timezone) { - var _this = this; - var ajaxSettings = this.ajaxSettings; - var onSuccess = ajaxSettings.success; - var onError = ajaxSettings.error; - var requestParams = this.buildRequestParams(start, end, timezone); - // todo: eventually handle the promise's then, - // don't intercept success/error - // tho will be a breaking API change - this.calendar.pushLoading(); - return Promise_1.default.construct(function (onResolve, onReject) { - $.ajax($.extend({}, // destination - JsonFeedEventSource.AJAX_DEFAULTS, ajaxSettings, { - url: _this.url, - data: requestParams, - success: function (rawEventDefs, status, xhr) { - var callbackRes; - _this.calendar.popLoading(); - if (rawEventDefs) { - callbackRes = util_1.applyAll(onSuccess, _this, [rawEventDefs, status, xhr]); // redirect `this` - if ($.isArray(callbackRes)) { - rawEventDefs = callbackRes; - } - onResolve(_this.parseEventDefs(rawEventDefs)); - } - else { - onReject(); - } - }, - error: function (xhr, statusText, errorThrown) { - _this.calendar.popLoading(); - util_1.applyAll(onError, _this, [xhr, statusText, errorThrown]); // redirect `this` - onReject(); - } - })); - }); - }; - JsonFeedEventSource.prototype.buildRequestParams = function (start, end, timezone) { - var calendar = this.calendar; - var ajaxSettings = this.ajaxSettings; - var startParam; - var endParam; - var timezoneParam; - var customRequestParams; - var params = {}; - startParam = this.startParam; - if (startParam == null) { - startParam = calendar.opt('startParam'); - } - endParam = this.endParam; - if (endParam == null) { - endParam = calendar.opt('endParam'); - } - timezoneParam = this.timezoneParam; - if (timezoneParam == null) { - timezoneParam = calendar.opt('timezoneParam'); - } - // retrieve any outbound GET/POST $.ajax data from the options - if ($.isFunction(ajaxSettings.data)) { - // supplied as a function that returns a key/value object - customRequestParams = ajaxSettings.data(); - } - else { - // probably supplied as a straight key/value object - customRequestParams = ajaxSettings.data || {}; - } - $.extend(params, customRequestParams); - params[startParam] = start.format(); - params[endParam] = end.format(); - if (timezone && timezone !== 'local') { - params[timezoneParam] = timezone; - } - return params; - }; - JsonFeedEventSource.prototype.getPrimitive = function () { - return this.url; - }; - JsonFeedEventSource.prototype.applyMiscProps = function (rawProps) { - this.ajaxSettings = rawProps; - }; - JsonFeedEventSource.AJAX_DEFAULTS = { - dataType: 'json', - cache: false - }; - return JsonFeedEventSource; -}(EventSource_1.default)); -exports.default = JsonFeedEventSource; -JsonFeedEventSource.defineStandardProps({ - // automatically transfer (true)... - url: true, - startParam: true, - endParam: true, - timezoneParam: true -}); - - -/***/ }), -/* 217 */ -/***/ (function(module, exports, __webpack_require__) { - -Object.defineProperty(exports, "__esModule", { value: true }); -var EmitterMixin_1 = __webpack_require__(11); -var TaskQueue = /** @class */ (function () { - function TaskQueue() { - this.q = []; - this.isPaused = false; - this.isRunning = false; - } - TaskQueue.prototype.queue = function () { - var args = []; - for (var _i = 0; _i < arguments.length; _i++) { - args[_i] = arguments[_i]; - } - this.q.push.apply(this.q, args); // append - this.tryStart(); - }; - TaskQueue.prototype.pause = function () { - this.isPaused = true; - }; - TaskQueue.prototype.resume = function () { - this.isPaused = false; - this.tryStart(); - }; - TaskQueue.prototype.getIsIdle = function () { - return !this.isRunning && !this.isPaused; - }; - TaskQueue.prototype.tryStart = function () { - if (!this.isRunning && this.canRunNext()) { - this.isRunning = true; - this.trigger('start'); - this.runRemaining(); - } - }; - TaskQueue.prototype.canRunNext = function () { - return !this.isPaused && this.q.length; - }; - TaskQueue.prototype.runRemaining = function () { - var _this = this; - var task; - var res; - do { - task = this.q.shift(); // always freshly reference q. might have been reassigned. - res = this.runTask(task); - if (res && res.then) { - res.then(function () { - if (_this.canRunNext()) { - _this.runRemaining(); - } - }); - return; // prevent marking as stopped - } - } while (this.canRunNext()); - this.trigger('stop'); // not really a 'stop' ... more of a 'drained' - this.isRunning = false; - // if 'stop' handler added more tasks.... TODO: write test for this - this.tryStart(); - }; - TaskQueue.prototype.runTask = function (task) { - return task(); // task *is* the function, but subclasses can change the format of a task - }; - return TaskQueue; -}()); -exports.default = TaskQueue; -EmitterMixin_1.default.mixInto(TaskQueue); - - -/***/ }), -/* 218 */ -/***/ (function(module, exports, __webpack_require__) { - -Object.defineProperty(exports, "__esModule", { value: true }); -var tslib_1 = __webpack_require__(2); -var TaskQueue_1 = __webpack_require__(217); -var RenderQueue = /** @class */ (function (_super) { - tslib_1.__extends(RenderQueue, _super); - function RenderQueue(waitsByNamespace) { - var _this = _super.call(this) || this; - _this.waitsByNamespace = waitsByNamespace || {}; - return _this; - } - RenderQueue.prototype.queue = function (taskFunc, namespace, type) { - var task = { - func: taskFunc, - namespace: namespace, - type: type - }; - var waitMs; - if (namespace) { - waitMs = this.waitsByNamespace[namespace]; - } - if (this.waitNamespace) { - if (namespace === this.waitNamespace && waitMs != null) { - this.delayWait(waitMs); - } - else { - this.clearWait(); - this.tryStart(); - } - } - if (this.compoundTask(task)) { - if (!this.waitNamespace && waitMs != null) { - this.startWait(namespace, waitMs); - } - else { - this.tryStart(); - } - } - }; - RenderQueue.prototype.startWait = function (namespace, waitMs) { - this.waitNamespace = namespace; - this.spawnWait(waitMs); - }; - RenderQueue.prototype.delayWait = function (waitMs) { - clearTimeout(this.waitId); - this.spawnWait(waitMs); - }; - RenderQueue.prototype.spawnWait = function (waitMs) { - var _this = this; - this.waitId = setTimeout(function () { - _this.waitNamespace = null; - _this.tryStart(); - }, waitMs); - }; - RenderQueue.prototype.clearWait = function () { - if (this.waitNamespace) { - clearTimeout(this.waitId); - this.waitId = null; - this.waitNamespace = null; - } - }; - RenderQueue.prototype.canRunNext = function () { - if (!_super.prototype.canRunNext.call(this)) { - return false; - } - // waiting for a certain namespace to stop receiving tasks? - if (this.waitNamespace) { - var q = this.q; - // if there was a different namespace task in the meantime, - // that forces all previously-waiting tasks to suddenly execute. - // TODO: find a way to do this in constant time. - for (var i = 0; i < q.length; i++) { - if (q[i].namespace !== this.waitNamespace) { - return true; // allow execution - } - } - return false; - } - return true; - }; - RenderQueue.prototype.runTask = function (task) { - task.func(); - }; - RenderQueue.prototype.compoundTask = function (newTask) { - var q = this.q; - var shouldAppend = true; - var i; - var task; - if (newTask.namespace && newTask.type === 'destroy') { - // remove all init/add/remove ops with same namespace, regardless of order - for (i = q.length - 1; i >= 0; i--) { - task = q[i]; - switch (task.type) { - case 'init': - shouldAppend = false; - // the latest destroy is cancelled out by not doing the init - /* falls through */ - case 'add': - /* falls through */ - case 'remove': - q.splice(i, 1); // remove task - } - } - } - if (shouldAppend) { - q.push(newTask); - } - return shouldAppend; - }; - return RenderQueue; -}(TaskQueue_1.default)); -exports.default = RenderQueue; - - -/***/ }), -/* 219 */ -/***/ (function(module, exports, __webpack_require__) { - -Object.defineProperty(exports, "__esModule", { value: true }); -var tslib_1 = __webpack_require__(2); -var $ = __webpack_require__(3); -var moment = __webpack_require__(0); -var util_1 = __webpack_require__(4); -var moment_ext_1 = __webpack_require__(10); -var date_formatting_1 = __webpack_require__(47); -var Component_1 = __webpack_require__(237); -var util_2 = __webpack_require__(35); -var DateComponent = /** @class */ (function (_super) { - tslib_1.__extends(DateComponent, _super); - function DateComponent(_view, _options) { - var _this = _super.call(this) || this; - _this.isRTL = false; // frequently accessed options - _this.hitsNeededDepth = 0; // necessary because multiple callers might need the same hits - _this.hasAllDayBusinessHours = false; // TODO: unify with largeUnit and isTimeScale? - _this.isDatesRendered = false; - // hack to set options prior to the this.opt calls - if (_view) { - _this['view'] = _view; - } - if (_options) { - _this['options'] = _options; - } - _this.uid = String(DateComponent.guid++); - _this.childrenByUid = {}; - _this.nextDayThreshold = moment.duration(_this.opt('nextDayThreshold')); - _this.isRTL = _this.opt('isRTL'); - if (_this.fillRendererClass) { - _this.fillRenderer = new _this.fillRendererClass(_this); - } - if (_this.eventRendererClass) { - _this.eventRenderer = new _this.eventRendererClass(_this, _this.fillRenderer); - } - if (_this.helperRendererClass && _this.eventRenderer) { - _this.helperRenderer = new _this.helperRendererClass(_this, _this.eventRenderer); - } - if (_this.businessHourRendererClass && _this.fillRenderer) { - _this.businessHourRenderer = new _this.businessHourRendererClass(_this, _this.fillRenderer); - } - return _this; - } - DateComponent.prototype.addChild = function (child) { - if (!this.childrenByUid[child.uid]) { - this.childrenByUid[child.uid] = child; - return true; - } - return false; - }; - DateComponent.prototype.removeChild = function (child) { - if (this.childrenByUid[child.uid]) { - delete this.childrenByUid[child.uid]; - return true; - } - return false; - }; - // TODO: only do if isInDom? - // TODO: make part of Component, along with children/batch-render system? - DateComponent.prototype.updateSize = function (totalHeight, isAuto, isResize) { - this.callChildren('updateSize', arguments); - }; - // Options - // ----------------------------------------------------------------------------------------------------------------- - DateComponent.prototype.opt = function (name) { - return this._getView().opt(name); // default implementation - }; - DateComponent.prototype.publiclyTrigger = function () { - var args = []; - for (var _i = 0; _i < arguments.length; _i++) { - args[_i] = arguments[_i]; - } - var calendar = this._getCalendar(); - return calendar.publiclyTrigger.apply(calendar, args); - }; - DateComponent.prototype.hasPublicHandlers = function () { - var args = []; - for (var _i = 0; _i < arguments.length; _i++) { - args[_i] = arguments[_i]; - } - var calendar = this._getCalendar(); - return calendar.hasPublicHandlers.apply(calendar, args); - }; - // Date - // ----------------------------------------------------------------------------------------------------------------- - DateComponent.prototype.executeDateRender = function (dateProfile) { - this.dateProfile = dateProfile; // for rendering - this.renderDates(dateProfile); - this.isDatesRendered = true; - this.callChildren('executeDateRender', arguments); - }; - DateComponent.prototype.executeDateUnrender = function () { - this.callChildren('executeDateUnrender', arguments); - this.dateProfile = null; - this.unrenderDates(); - this.isDatesRendered = false; - }; - // date-cell content only - DateComponent.prototype.renderDates = function (dateProfile) { - // subclasses should implement - }; - // date-cell content only - DateComponent.prototype.unrenderDates = function () { - // subclasses should override - }; - // Now-Indicator - // ----------------------------------------------------------------------------------------------------------------- - // Returns a string unit, like 'second' or 'minute' that defined how often the current time indicator - // should be refreshed. If something falsy is returned, no time indicator is rendered at all. - DateComponent.prototype.getNowIndicatorUnit = function () { - // subclasses should implement - }; - // Renders a current time indicator at the given datetime - DateComponent.prototype.renderNowIndicator = function (date) { - this.callChildren('renderNowIndicator', arguments); - }; - // Undoes the rendering actions from renderNowIndicator - DateComponent.prototype.unrenderNowIndicator = function () { - this.callChildren('unrenderNowIndicator', arguments); - }; - // Business Hours - // --------------------------------------------------------------------------------------------------------------- - DateComponent.prototype.renderBusinessHours = function (businessHourGenerator) { - if (this.businessHourRenderer) { - this.businessHourRenderer.render(businessHourGenerator); - } - this.callChildren('renderBusinessHours', arguments); - }; - // Unrenders previously-rendered business-hours - DateComponent.prototype.unrenderBusinessHours = function () { - this.callChildren('unrenderBusinessHours', arguments); - if (this.businessHourRenderer) { - this.businessHourRenderer.unrender(); - } - }; - // Event Displaying - // ----------------------------------------------------------------------------------------------------------------- - DateComponent.prototype.executeEventRender = function (eventsPayload) { - if (this.eventRenderer) { - this.eventRenderer.rangeUpdated(); // poorly named now - this.eventRenderer.render(eventsPayload); - } - else if (this['renderEvents']) { - this['renderEvents'](convertEventsPayloadToLegacyArray(eventsPayload)); - } - this.callChildren('executeEventRender', arguments); - }; - DateComponent.prototype.executeEventUnrender = function () { - this.callChildren('executeEventUnrender', arguments); - if (this.eventRenderer) { - this.eventRenderer.unrender(); - } - else if (this['destroyEvents']) { - this['destroyEvents'](); - } - }; - DateComponent.prototype.getBusinessHourSegs = function () { - var segs = this.getOwnBusinessHourSegs(); - this.iterChildren(function (child) { - segs.push.apply(segs, child.getBusinessHourSegs()); - }); - return segs; - }; - DateComponent.prototype.getOwnBusinessHourSegs = function () { - if (this.businessHourRenderer) { - return this.businessHourRenderer.getSegs(); - } - return []; - }; - DateComponent.prototype.getEventSegs = function () { - var segs = this.getOwnEventSegs(); - this.iterChildren(function (child) { - segs.push.apply(segs, child.getEventSegs()); - }); - return segs; - }; - DateComponent.prototype.getOwnEventSegs = function () { - if (this.eventRenderer) { - return this.eventRenderer.getSegs(); - } - return []; - }; - // Event Rendering Triggering - // ----------------------------------------------------------------------------------------------------------------- - DateComponent.prototype.triggerAfterEventsRendered = function () { - this.triggerAfterEventSegsRendered(this.getEventSegs()); - this.publiclyTrigger('eventAfterAllRender', { - context: this, - args: [this] - }); - }; - DateComponent.prototype.triggerAfterEventSegsRendered = function (segs) { - var _this = this; - // an optimization, because getEventLegacy is expensive - if (this.hasPublicHandlers('eventAfterRender')) { - segs.forEach(function (seg) { - var legacy; - if (seg.el) { - legacy = seg.footprint.getEventLegacy(); - _this.publiclyTrigger('eventAfterRender', { - context: legacy, - args: [legacy, seg.el, _this] - }); - } - }); - } - }; - DateComponent.prototype.triggerBeforeEventsDestroyed = function () { - this.triggerBeforeEventSegsDestroyed(this.getEventSegs()); - }; - DateComponent.prototype.triggerBeforeEventSegsDestroyed = function (segs) { - var _this = this; - if (this.hasPublicHandlers('eventDestroy')) { - segs.forEach(function (seg) { - var legacy; - if (seg.el) { - legacy = seg.footprint.getEventLegacy(); - _this.publiclyTrigger('eventDestroy', { - context: legacy, - args: [legacy, seg.el, _this] - }); - } - }); - } - }; - // Event Rendering Utils - // ----------------------------------------------------------------------------------------------------------------- - // Hides all rendered event segments linked to the given event - // RECURSIVE with subcomponents - DateComponent.prototype.showEventsWithId = function (eventDefId) { - this.getEventSegs().forEach(function (seg) { - if (seg.footprint.eventDef.id === eventDefId && - seg.el // necessary? - ) { - seg.el.css('visibility', ''); - } - }); - this.callChildren('showEventsWithId', arguments); - }; - // Shows all rendered event segments linked to the given event - // RECURSIVE with subcomponents - DateComponent.prototype.hideEventsWithId = function (eventDefId) { - this.getEventSegs().forEach(function (seg) { - if (seg.footprint.eventDef.id === eventDefId && - seg.el // necessary? - ) { - seg.el.css('visibility', 'hidden'); - } - }); - this.callChildren('hideEventsWithId', arguments); - }; - // Drag-n-Drop Rendering (for both events and external elements) - // --------------------------------------------------------------------------------------------------------------- - // Renders a visual indication of a event or external-element drag over the given drop zone. - // If an external-element, seg will be `null`. - // Must return elements used for any mock events. - DateComponent.prototype.renderDrag = function (eventFootprints, seg, isTouch) { - var renderedHelper = false; - this.iterChildren(function (child) { - if (child.renderDrag(eventFootprints, seg, isTouch)) { - renderedHelper = true; - } - }); - return renderedHelper; - }; - // Unrenders a visual indication of an event or external-element being dragged. - DateComponent.prototype.unrenderDrag = function () { - this.callChildren('unrenderDrag', arguments); - }; - // Event Resizing - // --------------------------------------------------------------------------------------------------------------- - // Renders a visual indication of an event being resized. - DateComponent.prototype.renderEventResize = function (eventFootprints, seg, isTouch) { - this.callChildren('renderEventResize', arguments); - }; - // Unrenders a visual indication of an event being resized. - DateComponent.prototype.unrenderEventResize = function () { - this.callChildren('unrenderEventResize', arguments); - }; - // Selection - // --------------------------------------------------------------------------------------------------------------- - // Renders a visual indication of the selection - // TODO: rename to `renderSelection` after legacy is gone - DateComponent.prototype.renderSelectionFootprint = function (componentFootprint) { - this.renderHighlight(componentFootprint); - this.callChildren('renderSelectionFootprint', arguments); - }; - // Unrenders a visual indication of selection - DateComponent.prototype.unrenderSelection = function () { - this.unrenderHighlight(); - this.callChildren('unrenderSelection', arguments); - }; - // Highlight - // --------------------------------------------------------------------------------------------------------------- - // Renders an emphasis on the given date range. Given a span (unzoned start/end and other misc data) - DateComponent.prototype.renderHighlight = function (componentFootprint) { - if (this.fillRenderer) { - this.fillRenderer.renderFootprint('highlight', componentFootprint, { - getClasses: function () { - return ['fc-highlight']; - } - }); - } - this.callChildren('renderHighlight', arguments); - }; - // Unrenders the emphasis on a date range - DateComponent.prototype.unrenderHighlight = function () { - if (this.fillRenderer) { - this.fillRenderer.unrender('highlight'); - } - this.callChildren('unrenderHighlight', arguments); - }; - // Hit Areas - // --------------------------------------------------------------------------------------------------------------- - // just because all DateComponents support this interface - // doesn't mean they need to have their own internal coord system. they can defer to sub-components. - DateComponent.prototype.hitsNeeded = function () { - if (!(this.hitsNeededDepth++)) { - this.prepareHits(); - } - this.callChildren('hitsNeeded', arguments); - }; - DateComponent.prototype.hitsNotNeeded = function () { - if (this.hitsNeededDepth && !(--this.hitsNeededDepth)) { - this.releaseHits(); - } - this.callChildren('hitsNotNeeded', arguments); - }; - DateComponent.prototype.prepareHits = function () { - // subclasses can implement - }; - DateComponent.prototype.releaseHits = function () { - // subclasses can implement - }; - // Given coordinates from the topleft of the document, return data about the date-related area underneath. - // Can return an object with arbitrary properties (although top/right/left/bottom are encouraged). - // Must have a `grid` property, a reference to this current grid. TODO: avoid this - // The returned object will be processed by getHitFootprint and getHitEl. - DateComponent.prototype.queryHit = function (leftOffset, topOffset) { - var childrenByUid = this.childrenByUid; - var uid; - var hit; - for (uid in childrenByUid) { - hit = childrenByUid[uid].queryHit(leftOffset, topOffset); - if (hit) { - break; - } - } - return hit; - }; - DateComponent.prototype.getSafeHitFootprint = function (hit) { - var footprint = this.getHitFootprint(hit); - if (!this.dateProfile.activeUnzonedRange.containsRange(footprint.unzonedRange)) { - return null; - } - return footprint; - }; - DateComponent.prototype.getHitFootprint = function (hit) { - // what about being abstract!? - }; - // Given position-level information about a date-related area within the grid, - // should return a jQuery element that best represents it. passed to dayClick callback. - DateComponent.prototype.getHitEl = function (hit) { - // what about being abstract!? - }; - /* Converting eventRange -> eventFootprint - ------------------------------------------------------------------------------------------------------------------*/ - DateComponent.prototype.eventRangesToEventFootprints = function (eventRanges) { - var eventFootprints = []; - var i; - for (i = 0; i < eventRanges.length; i++) { - eventFootprints.push.apply(// append - eventFootprints, this.eventRangeToEventFootprints(eventRanges[i])); - } - return eventFootprints; - }; - DateComponent.prototype.eventRangeToEventFootprints = function (eventRange) { - return [util_2.eventRangeToEventFootprint(eventRange)]; - }; - /* Converting componentFootprint/eventFootprint -> segs - ------------------------------------------------------------------------------------------------------------------*/ - DateComponent.prototype.eventFootprintsToSegs = function (eventFootprints) { - var segs = []; - var i; - for (i = 0; i < eventFootprints.length; i++) { - segs.push.apply(segs, this.eventFootprintToSegs(eventFootprints[i])); - } - return segs; - }; - // Given an event's span (unzoned start/end and other misc data), and the event itself, - // slices into segments and attaches event-derived properties to them. - // eventSpan - { start, end, isStart, isEnd, otherthings... } - DateComponent.prototype.eventFootprintToSegs = function (eventFootprint) { - var unzonedRange = eventFootprint.componentFootprint.unzonedRange; - var segs; - var i; - var seg; - segs = this.componentFootprintToSegs(eventFootprint.componentFootprint); - for (i = 0; i < segs.length; i++) { - seg = segs[i]; - if (!unzonedRange.isStart) { - seg.isStart = false; - } - if (!unzonedRange.isEnd) { - seg.isEnd = false; - } - seg.footprint = eventFootprint; - // TODO: rename to seg.eventFootprint - } - return segs; - }; - DateComponent.prototype.componentFootprintToSegs = function (componentFootprint) { - return []; - }; - // Utils - // --------------------------------------------------------------------------------------------------------------- - DateComponent.prototype.callChildren = function (methodName, args) { - this.iterChildren(function (child) { - child[methodName].apply(child, args); - }); - }; - DateComponent.prototype.iterChildren = function (func) { - var childrenByUid = this.childrenByUid; - var uid; - for (uid in childrenByUid) { - func(childrenByUid[uid]); - } - }; - DateComponent.prototype._getCalendar = function () { - var t = this; - return t.calendar || t.view.calendar; - }; - DateComponent.prototype._getView = function () { - return this.view; - }; - DateComponent.prototype._getDateProfile = function () { - return this._getView().get('dateProfile'); - }; - // Generates HTML for an anchor to another view into the calendar. - // Will either generate an
    tag or a non-clickable tag, depending on enabled settings. - // `gotoOptions` can either be a moment input, or an object with the form: - // { date, type, forceOff } - // `type` is a view-type like "day" or "week". default value is "day". - // `attrs` and `innerHtml` are use to generate the rest of the HTML tag. - DateComponent.prototype.buildGotoAnchorHtml = function (gotoOptions, attrs, innerHtml) { - var date; - var type; - var forceOff; - var finalOptions; - if ($.isPlainObject(gotoOptions)) { - date = gotoOptions.date; - type = gotoOptions.type; - forceOff = gotoOptions.forceOff; - } - else { - date = gotoOptions; // a single moment input - } - date = moment_ext_1.default(date); // if a string, parse it - finalOptions = { - date: date.format('YYYY-MM-DD'), - type: type || 'day' - }; - if (typeof attrs === 'string') { - innerHtml = attrs; - attrs = null; - } - attrs = attrs ? ' ' + util_1.attrsToStr(attrs) : ''; // will have a leading space - innerHtml = innerHtml || ''; - if (!forceOff && this.opt('navLinks')) { - return '' + - innerHtml + - ''; - } - else { - return '' + - innerHtml + - ''; - } - }; - DateComponent.prototype.getAllDayHtml = function () { - return this.opt('allDayHtml') || util_1.htmlEscape(this.opt('allDayText')); - }; - // Computes HTML classNames for a single-day element - DateComponent.prototype.getDayClasses = function (date, noThemeHighlight) { - var view = this._getView(); - var classes = []; - var today; - if (!this.dateProfile.activeUnzonedRange.containsDate(date)) { - classes.push('fc-disabled-day'); // TODO: jQuery UI theme? - } - else { - classes.push('fc-' + util_1.dayIDs[date.day()]); - if (view.isDateInOtherMonth(date, this.dateProfile)) { - classes.push('fc-other-month'); - } - today = view.calendar.getNow(); - if (date.isSame(today, 'day')) { - classes.push('fc-today'); - if (noThemeHighlight !== true) { - classes.push(view.calendar.theme.getClass('today')); - } - } - else if (date < today) { - classes.push('fc-past'); - } - else { - classes.push('fc-future'); - } - } - return classes; - }; - // Utility for formatting a range. Accepts a range object, formatting string, and optional separator. - // Displays all-day ranges naturally, with an inclusive end. Takes the current isRTL into account. - // The timezones of the dates within `range` will be respected. - DateComponent.prototype.formatRange = function (range, isAllDay, formatStr, separator) { - var end = range.end; - if (isAllDay) { - end = end.clone().subtract(1); // convert to inclusive. last ms of previous day - } - return date_formatting_1.formatRange(range.start, end, formatStr, separator, this.isRTL); - }; - // Compute the number of the give units in the "current" range. - // Will return a floating-point number. Won't round. - DateComponent.prototype.currentRangeAs = function (unit) { - return this._getDateProfile().currentUnzonedRange.as(unit); - }; - // Returns the date range of the full days the given range visually appears to occupy. - // Returns a plain object with start/end, NOT an UnzonedRange! - DateComponent.prototype.computeDayRange = function (unzonedRange) { - var calendar = this._getCalendar(); - var startDay = calendar.msToUtcMoment(unzonedRange.startMs, true); // the beginning of the day the range starts - var end = calendar.msToUtcMoment(unzonedRange.endMs); - var endTimeMS = +end.time(); // # of milliseconds into `endDay` - var endDay = end.clone().stripTime(); // the beginning of the day the range exclusively ends - // If the end time is actually inclusively part of the next day and is equal to or - // beyond the next day threshold, adjust the end to be the exclusive end of `endDay`. - // Otherwise, leaving it as inclusive will cause it to exclude `endDay`. - if (endTimeMS && endTimeMS >= this.nextDayThreshold) { - endDay.add(1, 'days'); - } - // If end is within `startDay` but not past nextDayThreshold, assign the default duration of one day. - if (endDay <= startDay) { - endDay = startDay.clone().add(1, 'days'); - } - return { start: startDay, end: endDay }; - }; - // Does the given range visually appear to occupy more than one day? - DateComponent.prototype.isMultiDayRange = function (unzonedRange) { - var dayRange = this.computeDayRange(unzonedRange); - return dayRange.end.diff(dayRange.start, 'days') > 1; - }; - DateComponent.guid = 0; // TODO: better system for this? - return DateComponent; -}(Component_1.default)); -exports.default = DateComponent; -// legacy -function convertEventsPayloadToLegacyArray(eventsPayload) { - var eventDefId; - var eventInstances; - var legacyEvents = []; - var i; - for (eventDefId in eventsPayload) { - eventInstances = eventsPayload[eventDefId].eventInstances; - for (i = 0; i < eventInstances.length; i++) { - legacyEvents.push(eventInstances[i].toLegacy()); - } - } - return legacyEvents; -} - - -/***/ }), -/* 220 */ -/***/ (function(module, exports, __webpack_require__) { - -Object.defineProperty(exports, "__esModule", { value: true }); -var $ = __webpack_require__(3); -var moment = __webpack_require__(0); -var util_1 = __webpack_require__(4); -var options_1 = __webpack_require__(32); -var Iterator_1 = __webpack_require__(238); -var GlobalEmitter_1 = __webpack_require__(21); -var EmitterMixin_1 = __webpack_require__(11); -var ListenerMixin_1 = __webpack_require__(7); -var Toolbar_1 = __webpack_require__(239); -var OptionsManager_1 = __webpack_require__(240); -var ViewSpecManager_1 = __webpack_require__(241); -var Constraints_1 = __webpack_require__(207); -var locale_1 = __webpack_require__(31); -var moment_ext_1 = __webpack_require__(10); -var UnzonedRange_1 = __webpack_require__(5); -var ComponentFootprint_1 = __webpack_require__(12); -var EventDateProfile_1 = __webpack_require__(17); -var EventManager_1 = __webpack_require__(242); -var BusinessHourGenerator_1 = __webpack_require__(212); -var EventSourceParser_1 = __webpack_require__(38); -var EventDefParser_1 = __webpack_require__(49); -var SingleEventDef_1 = __webpack_require__(13); -var EventDefMutation_1 = __webpack_require__(37); -var EventSource_1 = __webpack_require__(6); -var ThemeRegistry_1 = __webpack_require__(51); -var Calendar = /** @class */ (function () { - function Calendar(el, overrides) { - this.loadingLevel = 0; // number of simultaneous loading tasks - this.ignoreUpdateViewSize = 0; - this.freezeContentHeightDepth = 0; - // declare the current calendar instance relies on GlobalEmitter. needed for garbage collection. - // unneeded() is called in destroy. - GlobalEmitter_1.default.needed(); - this.el = el; - this.viewsByType = {}; - this.optionsManager = new OptionsManager_1.default(this, overrides); - this.viewSpecManager = new ViewSpecManager_1.default(this.optionsManager, this); - this.initMomentInternals(); // needs to happen after options hash initialized - this.initCurrentDate(); - this.initEventManager(); - this.constraints = new Constraints_1.default(this.eventManager, this); - this.constructed(); - } - Calendar.prototype.constructed = function () { - // useful for monkeypatching. used? - }; - Calendar.prototype.getView = function () { - return this.view; - }; - Calendar.prototype.publiclyTrigger = function (name, triggerInfo) { - var optHandler = this.opt(name); - var context; - var args; - if ($.isPlainObject(triggerInfo)) { - context = triggerInfo.context; - args = triggerInfo.args; - } - else if ($.isArray(triggerInfo)) { - args = triggerInfo; - } - if (context == null) { - context = this.el[0]; // fallback context - } - if (!args) { - args = []; - } - this.triggerWith(name, context, args); // Emitter's method - if (optHandler) { - return optHandler.apply(context, args); - } - }; - Calendar.prototype.hasPublicHandlers = function (name) { - return this.hasHandlers(name) || - this.opt(name); // handler specified in options - }; - // Options Public API - // ----------------------------------------------------------------------------------------------------------------- - // public getter/setter - Calendar.prototype.option = function (name, value) { - var newOptionHash; - if (typeof name === 'string') { - if (value === undefined) { - return this.optionsManager.get(name); - } - else { - newOptionHash = {}; - newOptionHash[name] = value; - this.optionsManager.add(newOptionHash); - } - } - else if (typeof name === 'object') { - this.optionsManager.add(name); - } - }; - // private getter - Calendar.prototype.opt = function (name) { - return this.optionsManager.get(name); - }; - // View - // ----------------------------------------------------------------------------------------------------------------- - // Given a view name for a custom view or a standard view, creates a ready-to-go View object - Calendar.prototype.instantiateView = function (viewType) { - var spec = this.viewSpecManager.getViewSpec(viewType); - if (!spec) { - throw new Error("View type \"" + viewType + "\" is not valid"); - } - return new spec['class'](this, spec); - }; - // Returns a boolean about whether the view is okay to instantiate at some point - Calendar.prototype.isValidViewType = function (viewType) { - return Boolean(this.viewSpecManager.getViewSpec(viewType)); - }; - Calendar.prototype.changeView = function (viewName, dateOrRange) { - if (dateOrRange) { - if (dateOrRange.start && dateOrRange.end) { - this.optionsManager.recordOverrides({ - visibleRange: dateOrRange - }); - } - else { - this.currentDate = this.moment(dateOrRange).stripZone(); // just like gotoDate - } - } - this.renderView(viewName); - }; - // Forces navigation to a view for the given date. - // `viewType` can be a specific view name or a generic one like "week" or "day". - Calendar.prototype.zoomTo = function (newDate, viewType) { - var spec; - viewType = viewType || 'day'; // day is default zoom - spec = this.viewSpecManager.getViewSpec(viewType) || - this.viewSpecManager.getUnitViewSpec(viewType); - this.currentDate = newDate.clone(); - this.renderView(spec ? spec.type : null); - }; - // Current Date - // ----------------------------------------------------------------------------------------------------------------- - Calendar.prototype.initCurrentDate = function () { - var defaultDateInput = this.opt('defaultDate'); - // compute the initial ambig-timezone date - if (defaultDateInput != null) { - this.currentDate = this.moment(defaultDateInput).stripZone(); - } - else { - this.currentDate = this.getNow(); // getNow already returns unzoned - } - }; - Calendar.prototype.prev = function () { - var view = this.view; - var prevInfo = view.dateProfileGenerator.buildPrev(view.get('dateProfile')); - if (prevInfo.isValid) { - this.currentDate = prevInfo.date; - this.renderView(); - } - }; - Calendar.prototype.next = function () { - var view = this.view; - var nextInfo = view.dateProfileGenerator.buildNext(view.get('dateProfile')); - if (nextInfo.isValid) { - this.currentDate = nextInfo.date; - this.renderView(); - } - }; - Calendar.prototype.prevYear = function () { - this.currentDate.add(-1, 'years'); - this.renderView(); - }; - Calendar.prototype.nextYear = function () { - this.currentDate.add(1, 'years'); - this.renderView(); - }; - Calendar.prototype.today = function () { - this.currentDate = this.getNow(); // should deny like prev/next? - this.renderView(); - }; - Calendar.prototype.gotoDate = function (zonedDateInput) { - this.currentDate = this.moment(zonedDateInput).stripZone(); - this.renderView(); - }; - Calendar.prototype.incrementDate = function (delta) { - this.currentDate.add(moment.duration(delta)); - this.renderView(); - }; - // for external API - Calendar.prototype.getDate = function () { - return this.applyTimezone(this.currentDate); // infuse the calendar's timezone - }; - // Loading Triggering - // ----------------------------------------------------------------------------------------------------------------- - // Should be called when any type of async data fetching begins - Calendar.prototype.pushLoading = function () { - if (!(this.loadingLevel++)) { - this.publiclyTrigger('loading', [true, this.view]); - } - }; - // Should be called when any type of async data fetching completes - Calendar.prototype.popLoading = function () { - if (!(--this.loadingLevel)) { - this.publiclyTrigger('loading', [false, this.view]); - } - }; - // High-level Rendering - // ----------------------------------------------------------------------------------- - Calendar.prototype.render = function () { - if (!this.contentEl) { - this.initialRender(); - } - else if (this.elementVisible()) { - // mainly for the public API - this.calcSize(); - this.updateViewSize(); - } - }; - Calendar.prototype.initialRender = function () { - var _this = this; - var el = this.el; - el.addClass('fc'); - // event delegation for nav links - el.on('click.fc', 'a[data-goto]', function (ev) { - var anchorEl = $(ev.currentTarget); - var gotoOptions = anchorEl.data('goto'); // will automatically parse JSON - var date = _this.moment(gotoOptions.date); - var viewType = gotoOptions.type; - // property like "navLinkDayClick". might be a string or a function - var customAction = _this.view.opt('navLink' + util_1.capitaliseFirstLetter(viewType) + 'Click'); - if (typeof customAction === 'function') { - customAction(date, ev); - } - else { - if (typeof customAction === 'string') { - viewType = customAction; - } - _this.zoomTo(date, viewType); - } - }); - // called immediately, and upon option change - this.optionsManager.watch('settingTheme', ['?theme', '?themeSystem'], function (opts) { - var themeClass = ThemeRegistry_1.getThemeSystemClass(opts.themeSystem || opts.theme); - var theme = new themeClass(_this.optionsManager); - var widgetClass = theme.getClass('widget'); - _this.theme = theme; - if (widgetClass) { - el.addClass(widgetClass); - } - }, function () { - var widgetClass = _this.theme.getClass('widget'); - _this.theme = null; - if (widgetClass) { - el.removeClass(widgetClass); - } - }); - this.optionsManager.watch('settingBusinessHourGenerator', ['?businessHours'], function (deps) { - _this.businessHourGenerator = new BusinessHourGenerator_1.default(deps.businessHours, _this); - if (_this.view) { - _this.view.set('businessHourGenerator', _this.businessHourGenerator); - } - }, function () { - _this.businessHourGenerator = null; - }); - // called immediately, and upon option change. - // HACK: locale often affects isRTL, so we explicitly listen to that too. - this.optionsManager.watch('applyingDirClasses', ['?isRTL', '?locale'], function (opts) { - el.toggleClass('fc-ltr', !opts.isRTL); - el.toggleClass('fc-rtl', opts.isRTL); - }); - this.contentEl = $("
    ").prependTo(el); - this.initToolbars(); - this.renderHeader(); - this.renderFooter(); - this.renderView(this.opt('defaultView')); - if (this.opt('handleWindowResize')) { - $(window).resize(this.windowResizeProxy = util_1.debounce(// prevents rapid calls - this.windowResize.bind(this), this.opt('windowResizeDelay'))); - } - }; - Calendar.prototype.destroy = function () { - if (this.view) { - this.clearView(); - } - this.toolbarsManager.proxyCall('removeElement'); - this.contentEl.remove(); - this.el.removeClass('fc fc-ltr fc-rtl'); - // removes theme-related root className - this.optionsManager.unwatch('settingTheme'); - this.optionsManager.unwatch('settingBusinessHourGenerator'); - this.el.off('.fc'); // unbind nav link handlers - if (this.windowResizeProxy) { - $(window).unbind('resize', this.windowResizeProxy); - this.windowResizeProxy = null; - } - GlobalEmitter_1.default.unneeded(); - }; - Calendar.prototype.elementVisible = function () { - return this.el.is(':visible'); - }; - // Render Queue - // ----------------------------------------------------------------------------------------------------------------- - Calendar.prototype.bindViewHandlers = function (view) { - var _this = this; - view.watch('titleForCalendar', ['title'], function (deps) { - if (view === _this.view) { - _this.setToolbarsTitle(deps.title); - } - }); - view.watch('dateProfileForCalendar', ['dateProfile'], function (deps) { - if (view === _this.view) { - _this.currentDate = deps.dateProfile.date; // might have been constrained by view dates - _this.updateToolbarButtons(deps.dateProfile); - } - }); - }; - Calendar.prototype.unbindViewHandlers = function (view) { - view.unwatch('titleForCalendar'); - view.unwatch('dateProfileForCalendar'); - }; - // View Rendering - // ----------------------------------------------------------------------------------- - // Renders a view because of a date change, view-type change, or for the first time. - // If not given a viewType, keep the current view but render different dates. - // Accepts an optional scroll state to restore to. - Calendar.prototype.renderView = function (viewType) { - var oldView = this.view; - var newView; - this.freezeContentHeight(); - if (oldView && viewType && oldView.type !== viewType) { - this.clearView(); - } - // if viewType changed, or the view was never created, create a fresh view - if (!this.view && viewType) { - newView = this.view = - this.viewsByType[viewType] || - (this.viewsByType[viewType] = this.instantiateView(viewType)); - this.bindViewHandlers(newView); - newView.startBatchRender(); // so that setElement+setDate rendering are joined - newView.setElement($("
    ").appendTo(this.contentEl)); - this.toolbarsManager.proxyCall('activateButton', viewType); - } - if (this.view) { - // prevent unnecessary change firing - if (this.view.get('businessHourGenerator') !== this.businessHourGenerator) { - this.view.set('businessHourGenerator', this.businessHourGenerator); - } - this.view.setDate(this.currentDate); - if (newView) { - newView.stopBatchRender(); - } - } - this.thawContentHeight(); - }; - // Unrenders the current view and reflects this change in the Header. - // Unregsiters the `view`, but does not remove from viewByType hash. - Calendar.prototype.clearView = function () { - var currentView = this.view; - this.toolbarsManager.proxyCall('deactivateButton', currentView.type); - this.unbindViewHandlers(currentView); - currentView.removeElement(); - currentView.unsetDate(); // so bindViewHandlers doesn't fire with old values next time - this.view = null; - }; - // Destroys the view, including the view object. Then, re-instantiates it and renders it. - // Maintains the same scroll state. - // TODO: maintain any other user-manipulated state. - Calendar.prototype.reinitView = function () { - var oldView = this.view; - var scroll = oldView.queryScroll(); // wouldn't be so complicated if Calendar owned the scroll - this.freezeContentHeight(); - this.clearView(); - this.calcSize(); - this.renderView(oldView.type); // needs the type to freshly render - this.view.applyScroll(scroll); - this.thawContentHeight(); - }; - // Resizing - // ----------------------------------------------------------------------------------- - Calendar.prototype.getSuggestedViewHeight = function () { - if (this.suggestedViewHeight == null) { - this.calcSize(); - } - return this.suggestedViewHeight; - }; - Calendar.prototype.isHeightAuto = function () { - return this.opt('contentHeight') === 'auto' || this.opt('height') === 'auto'; - }; - Calendar.prototype.updateViewSize = function (isResize) { - if (isResize === void 0) { isResize = false; } - var view = this.view; - var scroll; - if (!this.ignoreUpdateViewSize && view) { - if (isResize) { - this.calcSize(); - scroll = view.queryScroll(); - } - this.ignoreUpdateViewSize++; - view.updateSize(this.getSuggestedViewHeight(), this.isHeightAuto(), isResize); - this.ignoreUpdateViewSize--; - if (isResize) { - view.applyScroll(scroll); - } - return true; // signal success - } - }; - Calendar.prototype.calcSize = function () { - if (this.elementVisible()) { - this._calcSize(); - } - }; - Calendar.prototype._calcSize = function () { - var contentHeightInput = this.opt('contentHeight'); - var heightInput = this.opt('height'); - if (typeof contentHeightInput === 'number') { - this.suggestedViewHeight = contentHeightInput; - } - else if (typeof contentHeightInput === 'function') { - this.suggestedViewHeight = contentHeightInput(); - } - else if (typeof heightInput === 'number') { - this.suggestedViewHeight = heightInput - this.queryToolbarsHeight(); - } - else if (typeof heightInput === 'function') { - this.suggestedViewHeight = heightInput() - this.queryToolbarsHeight(); - } - else if (heightInput === 'parent') { - this.suggestedViewHeight = this.el.parent().height() - this.queryToolbarsHeight(); - } - else { - this.suggestedViewHeight = Math.round(this.contentEl.width() / - Math.max(this.opt('aspectRatio'), .5)); - } - }; - Calendar.prototype.windowResize = function (ev) { - if ( - // the purpose: so we don't process jqui "resize" events that have bubbled up - // cast to any because .target, which is Element, can't be compared to window for some reason. - ev.target === window && - this.view && - this.view.isDatesRendered) { - if (this.updateViewSize(true)) { - this.publiclyTrigger('windowResize', [this.view]); - } - } - }; - /* Height "Freezing" - -----------------------------------------------------------------------------*/ - Calendar.prototype.freezeContentHeight = function () { - if (!(this.freezeContentHeightDepth++)) { - this.forceFreezeContentHeight(); - } - }; - Calendar.prototype.forceFreezeContentHeight = function () { - this.contentEl.css({ - width: '100%', - height: this.contentEl.height(), - overflow: 'hidden' - }); - }; - Calendar.prototype.thawContentHeight = function () { - this.freezeContentHeightDepth--; - // always bring back to natural height - this.contentEl.css({ - width: '', - height: '', - overflow: '' - }); - // but if there are future thaws, re-freeze - if (this.freezeContentHeightDepth) { - this.forceFreezeContentHeight(); - } - }; - // Toolbar - // ----------------------------------------------------------------------------------------------------------------- - Calendar.prototype.initToolbars = function () { - this.header = new Toolbar_1.default(this, this.computeHeaderOptions()); - this.footer = new Toolbar_1.default(this, this.computeFooterOptions()); - this.toolbarsManager = new Iterator_1.default([this.header, this.footer]); - }; - Calendar.prototype.computeHeaderOptions = function () { - return { - extraClasses: 'fc-header-toolbar', - layout: this.opt('header') - }; - }; - Calendar.prototype.computeFooterOptions = function () { - return { - extraClasses: 'fc-footer-toolbar', - layout: this.opt('footer') - }; - }; - // can be called repeatedly and Header will rerender - Calendar.prototype.renderHeader = function () { - var header = this.header; - header.setToolbarOptions(this.computeHeaderOptions()); - header.render(); - if (header.el) { - this.el.prepend(header.el); - } - }; - // can be called repeatedly and Footer will rerender - Calendar.prototype.renderFooter = function () { - var footer = this.footer; - footer.setToolbarOptions(this.computeFooterOptions()); - footer.render(); - if (footer.el) { - this.el.append(footer.el); - } - }; - Calendar.prototype.setToolbarsTitle = function (title) { - this.toolbarsManager.proxyCall('updateTitle', title); - }; - Calendar.prototype.updateToolbarButtons = function (dateProfile) { - var now = this.getNow(); - var view = this.view; - var todayInfo = view.dateProfileGenerator.build(now); - var prevInfo = view.dateProfileGenerator.buildPrev(view.get('dateProfile')); - var nextInfo = view.dateProfileGenerator.buildNext(view.get('dateProfile')); - this.toolbarsManager.proxyCall((todayInfo.isValid && !dateProfile.currentUnzonedRange.containsDate(now)) ? - 'enableButton' : - 'disableButton', 'today'); - this.toolbarsManager.proxyCall(prevInfo.isValid ? - 'enableButton' : - 'disableButton', 'prev'); - this.toolbarsManager.proxyCall(nextInfo.isValid ? - 'enableButton' : - 'disableButton', 'next'); - }; - Calendar.prototype.queryToolbarsHeight = function () { - return this.toolbarsManager.items.reduce(function (accumulator, toolbar) { - var toolbarHeight = toolbar.el ? toolbar.el.outerHeight(true) : 0; // includes margin - return accumulator + toolbarHeight; - }, 0); - }; - // Selection - // ----------------------------------------------------------------------------------------------------------------- - // this public method receives start/end dates in any format, with any timezone - Calendar.prototype.select = function (zonedStartInput, zonedEndInput) { - this.view.select(this.buildSelectFootprint.apply(this, arguments)); - }; - Calendar.prototype.unselect = function () { - if (this.view) { - this.view.unselect(); - } - }; - // Given arguments to the select method in the API, returns a span (unzoned start/end and other info) - Calendar.prototype.buildSelectFootprint = function (zonedStartInput, zonedEndInput) { - var start = this.moment(zonedStartInput).stripZone(); - var end; - if (zonedEndInput) { - end = this.moment(zonedEndInput).stripZone(); - } - else if (start.hasTime()) { - end = start.clone().add(this.defaultTimedEventDuration); - } - else { - end = start.clone().add(this.defaultAllDayEventDuration); - } - return new ComponentFootprint_1.default(new UnzonedRange_1.default(start, end), !start.hasTime()); - }; - // Date Utils - // ----------------------------------------------------------------------------------------------------------------- - Calendar.prototype.initMomentInternals = function () { - var _this = this; - this.defaultAllDayEventDuration = moment.duration(this.opt('defaultAllDayEventDuration')); - this.defaultTimedEventDuration = moment.duration(this.opt('defaultTimedEventDuration')); - // Called immediately, and when any of the options change. - // Happens before any internal objects rebuild or rerender, because this is very core. - this.optionsManager.watch('buildingMomentLocale', [ - '?locale', '?monthNames', '?monthNamesShort', '?dayNames', '?dayNamesShort', - '?firstDay', '?weekNumberCalculation' - ], function (opts) { - var weekNumberCalculation = opts.weekNumberCalculation; - var firstDay = opts.firstDay; - var _week; - // normalize - if (weekNumberCalculation === 'iso') { - weekNumberCalculation = 'ISO'; // normalize - } - var localeData = Object.create(// make a cheap copy - locale_1.getMomentLocaleData(opts.locale) // will fall back to en - ); - if (opts.monthNames) { - localeData._months = opts.monthNames; - } - if (opts.monthNamesShort) { - localeData._monthsShort = opts.monthNamesShort; - } - if (opts.dayNames) { - localeData._weekdays = opts.dayNames; - } - if (opts.dayNamesShort) { - localeData._weekdaysShort = opts.dayNamesShort; - } - if (firstDay == null && weekNumberCalculation === 'ISO') { - firstDay = 1; - } - if (firstDay != null) { - _week = Object.create(localeData._week); // _week: { dow: # } - _week.dow = firstDay; - localeData._week = _week; - } - if (weekNumberCalculation === 'ISO' || - weekNumberCalculation === 'local' || - typeof weekNumberCalculation === 'function') { - localeData._fullCalendar_weekCalc = weekNumberCalculation; // moment-ext will know what to do with it - } - _this.localeData = localeData; - // If the internal current date object already exists, move to new locale. - // We do NOT need to do this technique for event dates, because this happens when converting to "segments". - if (_this.currentDate) { - _this.localizeMoment(_this.currentDate); // sets to localeData - } - }); - }; - // Builds a moment using the settings of the current calendar: timezone and locale. - // Accepts anything the vanilla moment() constructor accepts. - Calendar.prototype.moment = function () { - var args = []; - for (var _i = 0; _i < arguments.length; _i++) { - args[_i] = arguments[_i]; - } - var mom; - if (this.opt('timezone') === 'local') { - mom = moment_ext_1.default.apply(null, args); - // Force the moment to be local, because momentExt doesn't guarantee it. - if (mom.hasTime()) { - mom.local(); - } - } - else if (this.opt('timezone') === 'UTC') { - mom = moment_ext_1.default.utc.apply(null, args); // process as UTC - } - else { - mom = moment_ext_1.default.parseZone.apply(null, args); // let the input decide the zone - } - this.localizeMoment(mom); // TODO - return mom; - }; - Calendar.prototype.msToMoment = function (ms, forceAllDay) { - var mom = moment_ext_1.default.utc(ms); // TODO: optimize by using Date.UTC - if (forceAllDay) { - mom.stripTime(); - } - else { - mom = this.applyTimezone(mom); // may or may not apply locale - } - this.localizeMoment(mom); - return mom; - }; - Calendar.prototype.msToUtcMoment = function (ms, forceAllDay) { - var mom = moment_ext_1.default.utc(ms); // TODO: optimize by using Date.UTC - if (forceAllDay) { - mom.stripTime(); - } - this.localizeMoment(mom); - return mom; - }; - // Updates the given moment's locale settings to the current calendar locale settings. - Calendar.prototype.localizeMoment = function (mom) { - mom._locale = this.localeData; - }; - // Returns a boolean about whether or not the calendar knows how to calculate - // the timezone offset of arbitrary dates in the current timezone. - Calendar.prototype.getIsAmbigTimezone = function () { - return this.opt('timezone') !== 'local' && this.opt('timezone') !== 'UTC'; - }; - // Returns a copy of the given date in the current timezone. Has no effect on dates without times. - Calendar.prototype.applyTimezone = function (date) { - if (!date.hasTime()) { - return date.clone(); - } - var zonedDate = this.moment(date.toArray()); - var timeAdjust = date.time().asMilliseconds() - zonedDate.time().asMilliseconds(); - var adjustedZonedDate; - // Safari sometimes has problems with this coersion when near DST. Adjust if necessary. (bug #2396) - if (timeAdjust) { - adjustedZonedDate = zonedDate.clone().add(timeAdjust); // add milliseconds - if (date.time().asMilliseconds() - adjustedZonedDate.time().asMilliseconds() === 0) { - zonedDate = adjustedZonedDate; - } - } - return zonedDate; - }; - /* - Assumes the footprint is non-open-ended. - */ - Calendar.prototype.footprintToDateProfile = function (componentFootprint, ignoreEnd) { - if (ignoreEnd === void 0) { ignoreEnd = false; } - var start = moment_ext_1.default.utc(componentFootprint.unzonedRange.startMs); - var end; - if (!ignoreEnd) { - end = moment_ext_1.default.utc(componentFootprint.unzonedRange.endMs); - } - if (componentFootprint.isAllDay) { - start.stripTime(); - if (end) { - end.stripTime(); - } - } - else { - start = this.applyTimezone(start); - if (end) { - end = this.applyTimezone(end); - } - } - return new EventDateProfile_1.default(start, end, this); - }; - // Returns a moment for the current date, as defined by the client's computer or from the `now` option. - // Will return an moment with an ambiguous timezone. - Calendar.prototype.getNow = function () { - var now = this.opt('now'); - if (typeof now === 'function') { - now = now(); - } - return this.moment(now).stripZone(); - }; - // Produces a human-readable string for the given duration. - // Side-effect: changes the locale of the given duration. - Calendar.prototype.humanizeDuration = function (duration) { - return duration.locale(this.opt('locale')).humanize(); - }; - // will return `null` if invalid range - Calendar.prototype.parseUnzonedRange = function (rangeInput) { - var start = null; - var end = null; - if (rangeInput.start) { - start = this.moment(rangeInput.start).stripZone(); - } - if (rangeInput.end) { - end = this.moment(rangeInput.end).stripZone(); - } - if (!start && !end) { - return null; - } - if (start && end && end.isBefore(start)) { - return null; - } - return new UnzonedRange_1.default(start, end); - }; - // Event-Date Utilities - // ----------------------------------------------------------------------------------------------------------------- - Calendar.prototype.initEventManager = function () { - var _this = this; - var eventManager = new EventManager_1.default(this); - var rawSources = this.opt('eventSources') || []; - var singleRawSource = this.opt('events'); - this.eventManager = eventManager; - if (singleRawSource) { - rawSources.unshift(singleRawSource); - } - eventManager.on('release', function (eventsPayload) { - _this.trigger('eventsReset', eventsPayload); - }); - eventManager.freeze(); - rawSources.forEach(function (rawSource) { - var source = EventSourceParser_1.default.parse(rawSource, _this); - if (source) { - eventManager.addSource(source); - } - }); - eventManager.thaw(); - }; - Calendar.prototype.requestEvents = function (start, end) { - return this.eventManager.requestEvents(start, end, this.opt('timezone'), !this.opt('lazyFetching')); - }; - // Get an event's normalized end date. If not present, calculate it from the defaults. - Calendar.prototype.getEventEnd = function (event) { - if (event.end) { - return event.end.clone(); - } - else { - return this.getDefaultEventEnd(event.allDay, event.start); - } - }; - // Given an event's allDay status and start date, return what its fallback end date should be. - // TODO: rename to computeDefaultEventEnd - Calendar.prototype.getDefaultEventEnd = function (allDay, zonedStart) { - var end = zonedStart.clone(); - if (allDay) { - end.stripTime().add(this.defaultAllDayEventDuration); - } - else { - end.add(this.defaultTimedEventDuration); - } - if (this.getIsAmbigTimezone()) { - end.stripZone(); // we don't know what the tzo should be - } - return end; - }; - // Public Events API - // ----------------------------------------------------------------------------------------------------------------- - Calendar.prototype.rerenderEvents = function () { - this.view.flash('displayingEvents'); - }; - Calendar.prototype.refetchEvents = function () { - this.eventManager.refetchAllSources(); - }; - Calendar.prototype.renderEvents = function (eventInputs, isSticky) { - this.eventManager.freeze(); - for (var i = 0; i < eventInputs.length; i++) { - this.renderEvent(eventInputs[i], isSticky); - } - this.eventManager.thaw(); - }; - Calendar.prototype.renderEvent = function (eventInput, isSticky) { - if (isSticky === void 0) { isSticky = false; } - var eventManager = this.eventManager; - var eventDef = EventDefParser_1.default.parse(eventInput, eventInput.source || eventManager.stickySource); - if (eventDef) { - eventManager.addEventDef(eventDef, isSticky); - } - }; - // legacyQuery operates on legacy event instance objects - Calendar.prototype.removeEvents = function (legacyQuery) { - var eventManager = this.eventManager; - var legacyInstances = []; - var idMap = {}; - var eventDef; - var i; - if (legacyQuery == null) { - eventManager.removeAllEventDefs(); // persist=true - } - else { - eventManager.getEventInstances().forEach(function (eventInstance) { - legacyInstances.push(eventInstance.toLegacy()); - }); - legacyInstances = filterLegacyEventInstances(legacyInstances, legacyQuery); - // compute unique IDs - for (i = 0; i < legacyInstances.length; i++) { - eventDef = this.eventManager.getEventDefByUid(legacyInstances[i]._id); - idMap[eventDef.id] = true; - } - eventManager.freeze(); - for (i in idMap) { - eventManager.removeEventDefsById(i); // persist=true - } - eventManager.thaw(); - } - }; - // legacyQuery operates on legacy event instance objects - Calendar.prototype.clientEvents = function (legacyQuery) { - var legacyEventInstances = []; - this.eventManager.getEventInstances().forEach(function (eventInstance) { - legacyEventInstances.push(eventInstance.toLegacy()); - }); - return filterLegacyEventInstances(legacyEventInstances, legacyQuery); - }; - Calendar.prototype.updateEvents = function (eventPropsArray) { - this.eventManager.freeze(); - for (var i = 0; i < eventPropsArray.length; i++) { - this.updateEvent(eventPropsArray[i]); - } - this.eventManager.thaw(); - }; - Calendar.prototype.updateEvent = function (eventProps) { - var eventDef = this.eventManager.getEventDefByUid(eventProps._id); - var eventInstance; - var eventDefMutation; - if (eventDef instanceof SingleEventDef_1.default) { - eventInstance = eventDef.buildInstance(); - eventDefMutation = EventDefMutation_1.default.createFromRawProps(eventInstance, eventProps, // raw props - null // largeUnit -- who uses it? - ); - this.eventManager.mutateEventsWithId(eventDef.id, eventDefMutation); // will release - } - }; - // Public Event Sources API - // ------------------------------------------------------------------------------------ - Calendar.prototype.getEventSources = function () { - return this.eventManager.otherSources.slice(); // clone - }; - Calendar.prototype.getEventSourceById = function (id) { - return this.eventManager.getSourceById(EventSource_1.default.normalizeId(id)); - }; - Calendar.prototype.addEventSource = function (sourceInput) { - var source = EventSourceParser_1.default.parse(sourceInput, this); - if (source) { - this.eventManager.addSource(source); - } - }; - Calendar.prototype.removeEventSources = function (sourceMultiQuery) { - var eventManager = this.eventManager; - var sources; - var i; - if (sourceMultiQuery == null) { - this.eventManager.removeAllSources(); - } - else { - sources = eventManager.multiQuerySources(sourceMultiQuery); - eventManager.freeze(); - for (i = 0; i < sources.length; i++) { - eventManager.removeSource(sources[i]); - } - eventManager.thaw(); - } - }; - Calendar.prototype.removeEventSource = function (sourceQuery) { - var eventManager = this.eventManager; - var sources = eventManager.querySources(sourceQuery); - var i; - eventManager.freeze(); - for (i = 0; i < sources.length; i++) { - eventManager.removeSource(sources[i]); - } - eventManager.thaw(); - }; - Calendar.prototype.refetchEventSources = function (sourceMultiQuery) { - var eventManager = this.eventManager; - var sources = eventManager.multiQuerySources(sourceMultiQuery); - var i; - eventManager.freeze(); - for (i = 0; i < sources.length; i++) { - eventManager.refetchSource(sources[i]); - } - eventManager.thaw(); - }; - // not for internal use. use options module directly instead. - Calendar.defaults = options_1.globalDefaults; - Calendar.englishDefaults = options_1.englishDefaults; - Calendar.rtlDefaults = options_1.rtlDefaults; - return Calendar; -}()); -exports.default = Calendar; -EmitterMixin_1.default.mixInto(Calendar); -ListenerMixin_1.default.mixInto(Calendar); -function filterLegacyEventInstances(legacyEventInstances, legacyQuery) { - if (legacyQuery == null) { - return legacyEventInstances; - } - else if ($.isFunction(legacyQuery)) { - return legacyEventInstances.filter(legacyQuery); - } - else { - legacyQuery += ''; // normalize to string - return legacyEventInstances.filter(function (legacyEventInstance) { - // soft comparison because id not be normalized to string - // tslint:disable-next-line - return legacyEventInstance.id == legacyQuery || - legacyEventInstance._id === legacyQuery; // can specify internal id, but must exactly match - }); - } -} - - -/***/ }), -/* 221 */ -/***/ (function(module, exports, __webpack_require__) { - -Object.defineProperty(exports, "__esModule", { value: true }); -var moment = __webpack_require__(0); -var util_1 = __webpack_require__(4); -var UnzonedRange_1 = __webpack_require__(5); -var DateProfileGenerator = /** @class */ (function () { - function DateProfileGenerator(_view) { - this._view = _view; - } - DateProfileGenerator.prototype.opt = function (name) { - return this._view.opt(name); - }; - DateProfileGenerator.prototype.trimHiddenDays = function (unzonedRange) { - return this._view.trimHiddenDays(unzonedRange); - }; - DateProfileGenerator.prototype.msToUtcMoment = function (ms, forceAllDay) { - return this._view.calendar.msToUtcMoment(ms, forceAllDay); - }; - /* Date Range Computation - ------------------------------------------------------------------------------------------------------------------*/ - // Builds a structure with info about what the dates/ranges will be for the "prev" view. - DateProfileGenerator.prototype.buildPrev = function (currentDateProfile) { - var prevDate = currentDateProfile.date.clone() - .startOf(currentDateProfile.currentRangeUnit) - .subtract(currentDateProfile.dateIncrement); - return this.build(prevDate, -1); - }; - // Builds a structure with info about what the dates/ranges will be for the "next" view. - DateProfileGenerator.prototype.buildNext = function (currentDateProfile) { - var nextDate = currentDateProfile.date.clone() - .startOf(currentDateProfile.currentRangeUnit) - .add(currentDateProfile.dateIncrement); - return this.build(nextDate, 1); - }; - // Builds a structure holding dates/ranges for rendering around the given date. - // Optional direction param indicates whether the date is being incremented/decremented - // from its previous value. decremented = -1, incremented = 1 (default). - DateProfileGenerator.prototype.build = function (date, direction, forceToValid) { - if (forceToValid === void 0) { forceToValid = false; } - var isDateAllDay = !date.hasTime(); - var validUnzonedRange; - var minTime = null; - var maxTime = null; - var currentInfo; - var isRangeAllDay; - var renderUnzonedRange; - var activeUnzonedRange; - var isValid; - validUnzonedRange = this.buildValidRange(); - validUnzonedRange = this.trimHiddenDays(validUnzonedRange); - if (forceToValid) { - date = this.msToUtcMoment(validUnzonedRange.constrainDate(date), // returns MS - isDateAllDay); - } - currentInfo = this.buildCurrentRangeInfo(date, direction); - isRangeAllDay = /^(year|month|week|day)$/.test(currentInfo.unit); - renderUnzonedRange = this.buildRenderRange(this.trimHiddenDays(currentInfo.unzonedRange), currentInfo.unit, isRangeAllDay); - renderUnzonedRange = this.trimHiddenDays(renderUnzonedRange); - activeUnzonedRange = renderUnzonedRange.clone(); - if (!this.opt('showNonCurrentDates')) { - activeUnzonedRange = activeUnzonedRange.intersect(currentInfo.unzonedRange); - } - minTime = moment.duration(this.opt('minTime')); - maxTime = moment.duration(this.opt('maxTime')); - activeUnzonedRange = this.adjustActiveRange(activeUnzonedRange, minTime, maxTime); - activeUnzonedRange = activeUnzonedRange.intersect(validUnzonedRange); // might return null - if (activeUnzonedRange) { - date = this.msToUtcMoment(activeUnzonedRange.constrainDate(date), // returns MS - isDateAllDay); - } - // it's invalid if the originally requested date is not contained, - // or if the range is completely outside of the valid range. - isValid = currentInfo.unzonedRange.intersectsWith(validUnzonedRange); - return { - // constraint for where prev/next operations can go and where events can be dragged/resized to. - // an object with optional start and end properties. - validUnzonedRange: validUnzonedRange, - // range the view is formally responsible for. - // for example, a month view might have 1st-31st, excluding padded dates - currentUnzonedRange: currentInfo.unzonedRange, - // name of largest unit being displayed, like "month" or "week" - currentRangeUnit: currentInfo.unit, - isRangeAllDay: isRangeAllDay, - // dates that display events and accept drag-n-drop - // will be `null` if no dates accept events - activeUnzonedRange: activeUnzonedRange, - // date range with a rendered skeleton - // includes not-active days that need some sort of DOM - renderUnzonedRange: renderUnzonedRange, - // Duration object that denotes the first visible time of any given day - minTime: minTime, - // Duration object that denotes the exclusive visible end time of any given day - maxTime: maxTime, - isValid: isValid, - date: date, - // how far the current date will move for a prev/next operation - dateIncrement: this.buildDateIncrement(currentInfo.duration) - // pass a fallback (might be null) ^ - }; - }; - // Builds an object with optional start/end properties. - // Indicates the minimum/maximum dates to display. - // not responsible for trimming hidden days. - DateProfileGenerator.prototype.buildValidRange = function () { - return this._view.getUnzonedRangeOption('validRange', this._view.calendar.getNow()) || - new UnzonedRange_1.default(); // completely open-ended - }; - // Builds a structure with info about the "current" range, the range that is - // highlighted as being the current month for example. - // See build() for a description of `direction`. - // Guaranteed to have `range` and `unit` properties. `duration` is optional. - // TODO: accept a MS-time instead of a moment `date`? - DateProfileGenerator.prototype.buildCurrentRangeInfo = function (date, direction) { - var viewSpec = this._view.viewSpec; - var duration = null; - var unit = null; - var unzonedRange = null; - var dayCount; - if (viewSpec.duration) { - duration = viewSpec.duration; - unit = viewSpec.durationUnit; - unzonedRange = this.buildRangeFromDuration(date, direction, duration, unit); - } - else if ((dayCount = this.opt('dayCount'))) { - unit = 'day'; - unzonedRange = this.buildRangeFromDayCount(date, direction, dayCount); - } - else if ((unzonedRange = this.buildCustomVisibleRange(date))) { - unit = util_1.computeGreatestUnit(unzonedRange.getStart(), unzonedRange.getEnd()); - } - else { - duration = this.getFallbackDuration(); - unit = util_1.computeGreatestUnit(duration); - unzonedRange = this.buildRangeFromDuration(date, direction, duration, unit); - } - return { duration: duration, unit: unit, unzonedRange: unzonedRange }; - }; - DateProfileGenerator.prototype.getFallbackDuration = function () { - return moment.duration({ days: 1 }); - }; - // Returns a new activeUnzonedRange to have time values (un-ambiguate) - // minTime or maxTime causes the range to expand. - DateProfileGenerator.prototype.adjustActiveRange = function (unzonedRange, minTime, maxTime) { - var start = unzonedRange.getStart(); - var end = unzonedRange.getEnd(); - if (this._view.usesMinMaxTime) { - if (minTime < 0) { - start.time(0).add(minTime); - } - if (maxTime > 24 * 60 * 60 * 1000) { - end.time(maxTime - (24 * 60 * 60 * 1000)); - } - } - return new UnzonedRange_1.default(start, end); - }; - // Builds the "current" range when it is specified as an explicit duration. - // `unit` is the already-computed computeGreatestUnit value of duration. - // TODO: accept a MS-time instead of a moment `date`? - DateProfileGenerator.prototype.buildRangeFromDuration = function (date, direction, duration, unit) { - var alignment = this.opt('dateAlignment'); - var dateIncrementInput; - var dateIncrementDuration; - var start; - var end; - var res; - // compute what the alignment should be - if (!alignment) { - dateIncrementInput = this.opt('dateIncrement'); - if (dateIncrementInput) { - dateIncrementDuration = moment.duration(dateIncrementInput); - // use the smaller of the two units - if (dateIncrementDuration < duration) { - alignment = util_1.computeDurationGreatestUnit(dateIncrementDuration, dateIncrementInput); - } - else { - alignment = unit; - } - } - else { - alignment = unit; - } - } - // if the view displays a single day or smaller - if (duration.as('days') <= 1) { - if (this._view.isHiddenDay(start)) { - start = this._view.skipHiddenDays(start, direction); - start.startOf('day'); - } - } - function computeRes() { - start = date.clone().startOf(alignment); - end = start.clone().add(duration); - res = new UnzonedRange_1.default(start, end); - } - computeRes(); - // if range is completely enveloped by hidden days, go past the hidden days - if (!this.trimHiddenDays(res)) { - date = this._view.skipHiddenDays(date, direction); - computeRes(); - } - return res; - }; - // Builds the "current" range when a dayCount is specified. - // TODO: accept a MS-time instead of a moment `date`? - DateProfileGenerator.prototype.buildRangeFromDayCount = function (date, direction, dayCount) { - var customAlignment = this.opt('dateAlignment'); - var runningCount = 0; - var start = date.clone(); - var end; - if (customAlignment) { - start.startOf(customAlignment); - } - start.startOf('day'); - start = this._view.skipHiddenDays(start, direction); - end = start.clone(); - do { - end.add(1, 'day'); - if (!this._view.isHiddenDay(end)) { - runningCount++; - } - } while (runningCount < dayCount); - return new UnzonedRange_1.default(start, end); - }; - // Builds a normalized range object for the "visible" range, - // which is a way to define the currentUnzonedRange and activeUnzonedRange at the same time. - // TODO: accept a MS-time instead of a moment `date`? - DateProfileGenerator.prototype.buildCustomVisibleRange = function (date) { - var visibleUnzonedRange = this._view.getUnzonedRangeOption('visibleRange', this._view.calendar.applyTimezone(date) // correct zone. also generates new obj that avoids mutations - ); - if (visibleUnzonedRange && (visibleUnzonedRange.startMs == null || visibleUnzonedRange.endMs == null)) { - return null; - } - return visibleUnzonedRange; - }; - // Computes the range that will represent the element/cells for *rendering*, - // but which may have voided days/times. - // not responsible for trimming hidden days. - DateProfileGenerator.prototype.buildRenderRange = function (currentUnzonedRange, currentRangeUnit, isRangeAllDay) { - return currentUnzonedRange.clone(); - }; - // Compute the duration value that should be added/substracted to the current date - // when a prev/next operation happens. - DateProfileGenerator.prototype.buildDateIncrement = function (fallback) { - var dateIncrementInput = this.opt('dateIncrement'); - var customAlignment; - if (dateIncrementInput) { - return moment.duration(dateIncrementInput); - } - else if ((customAlignment = this.opt('dateAlignment'))) { - return moment.duration(1, customAlignment); - } - else if (fallback) { - return fallback; - } - else { - return moment.duration({ days: 1 }); - } - }; - return DateProfileGenerator; -}()); -exports.default = DateProfileGenerator; - - -/***/ }), -/* 222 */ -/***/ (function(module, exports, __webpack_require__) { - -Object.defineProperty(exports, "__esModule", { value: true }); -var tslib_1 = __webpack_require__(2); -var $ = __webpack_require__(3); -var moment = __webpack_require__(0); -var exportHooks = __webpack_require__(16); -var util_1 = __webpack_require__(4); -var moment_ext_1 = __webpack_require__(10); -var ListenerMixin_1 = __webpack_require__(7); -var HitDragListener_1 = __webpack_require__(23); -var SingleEventDef_1 = __webpack_require__(13); -var EventInstanceGroup_1 = __webpack_require__(18); -var EventSource_1 = __webpack_require__(6); -var Interaction_1 = __webpack_require__(15); -var ExternalDropping = /** @class */ (function (_super) { - tslib_1.__extends(ExternalDropping, _super); - function ExternalDropping() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.isDragging = false; // jqui-dragging an external element? boolean - return _this; - } - /* - component impements: - - eventRangesToEventFootprints - - isEventInstanceGroupAllowed - - isExternalInstanceGroupAllowed - - renderDrag - - unrenderDrag - */ - ExternalDropping.prototype.end = function () { - if (this.dragListener) { - this.dragListener.endInteraction(); - } - }; - ExternalDropping.prototype.bindToDocument = function () { - this.listenTo($(document), { - dragstart: this.handleDragStart, - sortstart: this.handleDragStart // jqui - }); - }; - ExternalDropping.prototype.unbindFromDocument = function () { - this.stopListeningTo($(document)); - }; - // Called when a jQuery UI drag is initiated anywhere in the DOM - ExternalDropping.prototype.handleDragStart = function (ev, ui) { - var el; - var accept; - if (this.opt('droppable')) { - el = $((ui ? ui.item : null) || ev.target); - // Test that the dragged element passes the dropAccept selector or filter function. - // FYI, the default is "*" (matches all) - accept = this.opt('dropAccept'); - if ($.isFunction(accept) ? accept.call(el[0], el) : el.is(accept)) { - if (!this.isDragging) { - this.listenToExternalDrag(el, ev, ui); - } - } - } - }; - // Called when a jQuery UI drag starts and it needs to be monitored for dropping - ExternalDropping.prototype.listenToExternalDrag = function (el, ev, ui) { - var _this = this; - var component = this.component; - var view = this.view; - var meta = getDraggedElMeta(el); // extra data about event drop, including possible event to create - var singleEventDef; // a null value signals an unsuccessful drag - // listener that tracks mouse movement over date-associated pixel regions - var dragListener = this.dragListener = new HitDragListener_1.default(component, { - interactionStart: function () { - _this.isDragging = true; - }, - hitOver: function (hit) { - var isAllowed = true; - var hitFootprint = hit.component.getSafeHitFootprint(hit); // hit might not belong to this grid - var mutatedEventInstanceGroup; - if (hitFootprint) { - singleEventDef = _this.computeExternalDrop(hitFootprint, meta); - if (singleEventDef) { - mutatedEventInstanceGroup = new EventInstanceGroup_1.default(singleEventDef.buildInstances()); - isAllowed = meta.eventProps ? // isEvent? - component.isEventInstanceGroupAllowed(mutatedEventInstanceGroup) : - component.isExternalInstanceGroupAllowed(mutatedEventInstanceGroup); - } - else { - isAllowed = false; - } - } - else { - isAllowed = false; - } - if (!isAllowed) { - singleEventDef = null; - util_1.disableCursor(); - } - if (singleEventDef) { - component.renderDrag(// called without a seg parameter - component.eventRangesToEventFootprints(mutatedEventInstanceGroup.sliceRenderRanges(component.dateProfile.renderUnzonedRange, view.calendar))); - } - }, - hitOut: function () { - singleEventDef = null; // signal unsuccessful - }, - hitDone: function () { - util_1.enableCursor(); - component.unrenderDrag(); - }, - interactionEnd: function (ev) { - if (singleEventDef) { - view.reportExternalDrop(singleEventDef, Boolean(meta.eventProps), // isEvent - Boolean(meta.stick), // isSticky - el, ev, ui); - } - _this.isDragging = false; - _this.dragListener = null; - } - }); - dragListener.startDrag(ev); // start listening immediately - }; - // Given a hit to be dropped upon, and misc data associated with the jqui drag (guaranteed to be a plain object), - // returns the zoned start/end dates for the event that would result from the hypothetical drop. end might be null. - // Returning a null value signals an invalid drop hit. - // DOES NOT consider overlap/constraint. - // Assumes both footprints are non-open-ended. - ExternalDropping.prototype.computeExternalDrop = function (componentFootprint, meta) { - var calendar = this.view.calendar; - var start = moment_ext_1.default.utc(componentFootprint.unzonedRange.startMs).stripZone(); - var end; - var eventDef; - if (componentFootprint.isAllDay) { - // if dropped on an all-day span, and element's metadata specified a time, set it - if (meta.startTime) { - start.time(meta.startTime); - } - else { - start.stripTime(); - } - } - if (meta.duration) { - end = start.clone().add(meta.duration); - } - start = calendar.applyTimezone(start); - if (end) { - end = calendar.applyTimezone(end); - } - eventDef = SingleEventDef_1.default.parse($.extend({}, meta.eventProps, { - start: start, - end: end - }), new EventSource_1.default(calendar)); - return eventDef; - }; - return ExternalDropping; -}(Interaction_1.default)); -exports.default = ExternalDropping; -ListenerMixin_1.default.mixInto(ExternalDropping); -/* External-Dragging-Element Data -----------------------------------------------------------------------------------------------------------------------*/ -// Require all HTML5 data-* attributes used by FullCalendar to have this prefix. -// A value of '' will query attributes like data-event. A value of 'fc' will query attributes like data-fc-event. -exportHooks.dataAttrPrefix = ''; -// Given a jQuery element that might represent a dragged FullCalendar event, returns an intermediate data structure -// to be used for Event Object creation. -// A defined `.eventProps`, even when empty, indicates that an event should be created. -function getDraggedElMeta(el) { - var prefix = exportHooks.dataAttrPrefix; - var eventProps; // properties for creating the event, not related to date/time - var startTime; // a Duration - var duration; - var stick; - if (prefix) { - prefix += '-'; - } - eventProps = el.data(prefix + 'event') || null; - if (eventProps) { - if (typeof eventProps === 'object') { - eventProps = $.extend({}, eventProps); // make a copy - } - else { - eventProps = {}; - } - // pluck special-cased date/time properties - startTime = eventProps.start; - if (startTime == null) { - startTime = eventProps.time; - } // accept 'time' as well - duration = eventProps.duration; - stick = eventProps.stick; - delete eventProps.start; - delete eventProps.time; - delete eventProps.duration; - delete eventProps.stick; - } - // fallback to standalone attribute values for each of the date/time properties - if (startTime == null) { - startTime = el.data(prefix + 'start'); - } - if (startTime == null) { - startTime = el.data(prefix + 'time'); - } // accept 'time' as well - if (duration == null) { - duration = el.data(prefix + 'duration'); - } - if (stick == null) { - stick = el.data(prefix + 'stick'); - } - // massage into correct data types - startTime = startTime != null ? moment.duration(startTime) : null; - duration = duration != null ? moment.duration(duration) : null; - stick = Boolean(stick); - return { eventProps: eventProps, startTime: startTime, duration: duration, stick: stick }; -} - - -/***/ }), -/* 223 */ -/***/ (function(module, exports, __webpack_require__) { - -Object.defineProperty(exports, "__esModule", { value: true }); -var tslib_1 = __webpack_require__(2); -var $ = __webpack_require__(3); -var util_1 = __webpack_require__(4); -var EventDefMutation_1 = __webpack_require__(37); -var EventDefDateMutation_1 = __webpack_require__(50); -var HitDragListener_1 = __webpack_require__(23); -var Interaction_1 = __webpack_require__(15); -var EventResizing = /** @class */ (function (_super) { - tslib_1.__extends(EventResizing, _super); - /* - component impements: - - bindSegHandlerToEl - - publiclyTrigger - - diffDates - - eventRangesToEventFootprints - - isEventInstanceGroupAllowed - - getSafeHitFootprint - */ - function EventResizing(component, eventPointing) { - var _this = _super.call(this, component) || this; - _this.isResizing = false; - _this.eventPointing = eventPointing; - return _this; - } - EventResizing.prototype.end = function () { - if (this.dragListener) { - this.dragListener.endInteraction(); - } - }; - EventResizing.prototype.bindToEl = function (el) { - var component = this.component; - component.bindSegHandlerToEl(el, 'mousedown', this.handleMouseDown.bind(this)); - component.bindSegHandlerToEl(el, 'touchstart', this.handleTouchStart.bind(this)); - }; - EventResizing.prototype.handleMouseDown = function (seg, ev) { - if (this.component.canStartResize(seg, ev)) { - this.buildDragListener(seg, $(ev.target).is('.fc-start-resizer')) - .startInteraction(ev, { distance: 5 }); - } - }; - EventResizing.prototype.handleTouchStart = function (seg, ev) { - if (this.component.canStartResize(seg, ev)) { - this.buildDragListener(seg, $(ev.target).is('.fc-start-resizer')) - .startInteraction(ev); - } - }; - // Creates a listener that tracks the user as they resize an event segment. - // Generic enough to work with any type of Grid. - EventResizing.prototype.buildDragListener = function (seg, isStart) { - var _this = this; - var component = this.component; - var view = this.view; - var calendar = view.calendar; - var eventManager = calendar.eventManager; - var el = seg.el; - var eventDef = seg.footprint.eventDef; - var eventInstance = seg.footprint.eventInstance; - var isDragging; - var resizeMutation; // zoned event date properties. falsy if invalid resize - // Tracks mouse movement over the *grid's* coordinate map - var dragListener = this.dragListener = new HitDragListener_1.default(component, { - scroll: this.opt('dragScroll'), - subjectEl: el, - interactionStart: function () { - isDragging = false; - }, - dragStart: function (ev) { - isDragging = true; - // ensure a mouseout on the manipulated event has been reported - _this.eventPointing.handleMouseout(seg, ev); - _this.segResizeStart(seg, ev); - }, - hitOver: function (hit, isOrig, origHit) { - var isAllowed = true; - var origHitFootprint = component.getSafeHitFootprint(origHit); - var hitFootprint = component.getSafeHitFootprint(hit); - var mutatedEventInstanceGroup; - if (origHitFootprint && hitFootprint) { - resizeMutation = isStart ? - _this.computeEventStartResizeMutation(origHitFootprint, hitFootprint, seg.footprint) : - _this.computeEventEndResizeMutation(origHitFootprint, hitFootprint, seg.footprint); - if (resizeMutation) { - mutatedEventInstanceGroup = eventManager.buildMutatedEventInstanceGroup(eventDef.id, resizeMutation); - isAllowed = component.isEventInstanceGroupAllowed(mutatedEventInstanceGroup); - } - else { - isAllowed = false; - } - } - else { - isAllowed = false; - } - if (!isAllowed) { - resizeMutation = null; - util_1.disableCursor(); - } - else if (resizeMutation.isEmpty()) { - // no change. (FYI, event dates might have zones) - resizeMutation = null; - } - if (resizeMutation) { - view.hideEventsWithId(seg.footprint.eventDef.id); - view.renderEventResize(component.eventRangesToEventFootprints(mutatedEventInstanceGroup.sliceRenderRanges(component.dateProfile.renderUnzonedRange, calendar)), seg); - } - }, - hitOut: function () { - resizeMutation = null; - }, - hitDone: function () { - view.unrenderEventResize(seg); - view.showEventsWithId(seg.footprint.eventDef.id); - util_1.enableCursor(); - }, - interactionEnd: function (ev) { - if (isDragging) { - _this.segResizeStop(seg, ev); - } - if (resizeMutation) { - // no need to re-show original, will rerender all anyways. esp important if eventRenderWait - view.reportEventResize(eventInstance, resizeMutation, el, ev); - } - _this.dragListener = null; - } - }); - return dragListener; - }; - // Called before event segment resizing starts - EventResizing.prototype.segResizeStart = function (seg, ev) { - this.isResizing = true; - this.component.publiclyTrigger('eventResizeStart', { - context: seg.el[0], - args: [ - seg.footprint.getEventLegacy(), - ev, - {}, - this.view - ] - }); - }; - // Called after event segment resizing stops - EventResizing.prototype.segResizeStop = function (seg, ev) { - this.isResizing = false; - this.component.publiclyTrigger('eventResizeStop', { - context: seg.el[0], - args: [ - seg.footprint.getEventLegacy(), - ev, - {}, - this.view - ] - }); - }; - // Returns new date-information for an event segment being resized from its start - EventResizing.prototype.computeEventStartResizeMutation = function (startFootprint, endFootprint, origEventFootprint) { - var origRange = origEventFootprint.componentFootprint.unzonedRange; - var startDelta = this.component.diffDates(endFootprint.unzonedRange.getStart(), startFootprint.unzonedRange.getStart()); - var dateMutation; - var eventDefMutation; - if (origRange.getStart().add(startDelta) < origRange.getEnd()) { - dateMutation = new EventDefDateMutation_1.default(); - dateMutation.setStartDelta(startDelta); - eventDefMutation = new EventDefMutation_1.default(); - eventDefMutation.setDateMutation(dateMutation); - return eventDefMutation; - } - return false; - }; - // Returns new date-information for an event segment being resized from its end - EventResizing.prototype.computeEventEndResizeMutation = function (startFootprint, endFootprint, origEventFootprint) { - var origRange = origEventFootprint.componentFootprint.unzonedRange; - var endDelta = this.component.diffDates(endFootprint.unzonedRange.getEnd(), startFootprint.unzonedRange.getEnd()); - var dateMutation; - var eventDefMutation; - if (origRange.getEnd().add(endDelta) > origRange.getStart()) { - dateMutation = new EventDefDateMutation_1.default(); - dateMutation.setEndDelta(endDelta); - eventDefMutation = new EventDefMutation_1.default(); - eventDefMutation.setDateMutation(dateMutation); - return eventDefMutation; - } - return false; - }; - return EventResizing; -}(Interaction_1.default)); -exports.default = EventResizing; - - -/***/ }), -/* 224 */ -/***/ (function(module, exports, __webpack_require__) { - -Object.defineProperty(exports, "__esModule", { value: true }); -var tslib_1 = __webpack_require__(2); -var util_1 = __webpack_require__(4); -var EventDefMutation_1 = __webpack_require__(37); -var EventDefDateMutation_1 = __webpack_require__(50); -var DragListener_1 = __webpack_require__(54); -var HitDragListener_1 = __webpack_require__(23); -var MouseFollower_1 = __webpack_require__(244); -var Interaction_1 = __webpack_require__(15); -var EventDragging = /** @class */ (function (_super) { - tslib_1.__extends(EventDragging, _super); - /* - component implements: - - bindSegHandlerToEl - - publiclyTrigger - - diffDates - - eventRangesToEventFootprints - - isEventInstanceGroupAllowed - */ - function EventDragging(component, eventPointing) { - var _this = _super.call(this, component) || this; - _this.isDragging = false; - _this.eventPointing = eventPointing; - return _this; - } - EventDragging.prototype.end = function () { - if (this.dragListener) { - this.dragListener.endInteraction(); - } - }; - EventDragging.prototype.getSelectionDelay = function () { - var delay = this.opt('eventLongPressDelay'); - if (delay == null) { - delay = this.opt('longPressDelay'); // fallback - } - return delay; - }; - EventDragging.prototype.bindToEl = function (el) { - var component = this.component; - component.bindSegHandlerToEl(el, 'mousedown', this.handleMousedown.bind(this)); - component.bindSegHandlerToEl(el, 'touchstart', this.handleTouchStart.bind(this)); - }; - EventDragging.prototype.handleMousedown = function (seg, ev) { - if (!this.component.shouldIgnoreMouse() && - this.component.canStartDrag(seg, ev)) { - this.buildDragListener(seg).startInteraction(ev, { distance: 5 }); - } - }; - EventDragging.prototype.handleTouchStart = function (seg, ev) { - var component = this.component; - var settings = { - delay: this.view.isEventDefSelected(seg.footprint.eventDef) ? // already selected? - 0 : this.getSelectionDelay() - }; - if (component.canStartDrag(seg, ev)) { - this.buildDragListener(seg).startInteraction(ev, settings); - } - else if (component.canStartSelection(seg, ev)) { - this.buildSelectListener(seg).startInteraction(ev, settings); - } - }; - // seg isn't draggable, but let's use a generic DragListener - // simply for the delay, so it can be selected. - // Has side effect of setting/unsetting `dragListener` - EventDragging.prototype.buildSelectListener = function (seg) { - var _this = this; - var view = this.view; - var eventDef = seg.footprint.eventDef; - var eventInstance = seg.footprint.eventInstance; // null for inverse-background events - if (this.dragListener) { - return this.dragListener; - } - var dragListener = this.dragListener = new DragListener_1.default({ - dragStart: function (ev) { - if (dragListener.isTouch && - !view.isEventDefSelected(eventDef) && - eventInstance) { - // if not previously selected, will fire after a delay. then, select the event - view.selectEventInstance(eventInstance); - } - }, - interactionEnd: function (ev) { - _this.dragListener = null; - } - }); - return dragListener; - }; - // Builds a listener that will track user-dragging on an event segment. - // Generic enough to work with any type of Grid. - // Has side effect of setting/unsetting `dragListener` - EventDragging.prototype.buildDragListener = function (seg) { - var _this = this; - var component = this.component; - var view = this.view; - var calendar = view.calendar; - var eventManager = calendar.eventManager; - var el = seg.el; - var eventDef = seg.footprint.eventDef; - var eventInstance = seg.footprint.eventInstance; // null for inverse-background events - var isDragging; - var mouseFollower; // A clone of the original element that will move with the mouse - var eventDefMutation; - if (this.dragListener) { - return this.dragListener; - } - // Tracks mouse movement over the *view's* coordinate map. Allows dragging and dropping between subcomponents - // of the view. - var dragListener = this.dragListener = new HitDragListener_1.default(view, { - scroll: this.opt('dragScroll'), - subjectEl: el, - subjectCenter: true, - interactionStart: function (ev) { - seg.component = component; // for renderDrag - isDragging = false; - mouseFollower = new MouseFollower_1.default(seg.el, { - additionalClass: 'fc-dragging', - parentEl: view.el, - opacity: dragListener.isTouch ? null : _this.opt('dragOpacity'), - revertDuration: _this.opt('dragRevertDuration'), - zIndex: 2 // one above the .fc-view - }); - mouseFollower.hide(); // don't show until we know this is a real drag - mouseFollower.start(ev); - }, - dragStart: function (ev) { - if (dragListener.isTouch && - !view.isEventDefSelected(eventDef) && - eventInstance) { - // if not previously selected, will fire after a delay. then, select the event - view.selectEventInstance(eventInstance); - } - isDragging = true; - // ensure a mouseout on the manipulated event has been reported - _this.eventPointing.handleMouseout(seg, ev); - _this.segDragStart(seg, ev); - view.hideEventsWithId(seg.footprint.eventDef.id); - }, - hitOver: function (hit, isOrig, origHit) { - var isAllowed = true; - var origFootprint; - var footprint; - var mutatedEventInstanceGroup; - // starting hit could be forced (DayGrid.limit) - if (seg.hit) { - origHit = seg.hit; - } - // hit might not belong to this grid, so query origin grid - origFootprint = origHit.component.getSafeHitFootprint(origHit); - footprint = hit.component.getSafeHitFootprint(hit); - if (origFootprint && footprint) { - eventDefMutation = _this.computeEventDropMutation(origFootprint, footprint, eventDef); - if (eventDefMutation) { - mutatedEventInstanceGroup = eventManager.buildMutatedEventInstanceGroup(eventDef.id, eventDefMutation); - isAllowed = component.isEventInstanceGroupAllowed(mutatedEventInstanceGroup); - } - else { - isAllowed = false; - } - } - else { - isAllowed = false; - } - if (!isAllowed) { - eventDefMutation = null; - util_1.disableCursor(); - } - // if a valid drop location, have the subclass render a visual indication - if (eventDefMutation && - view.renderDrag(// truthy if rendered something - component.eventRangesToEventFootprints(mutatedEventInstanceGroup.sliceRenderRanges(component.dateProfile.renderUnzonedRange, calendar)), seg, dragListener.isTouch)) { - mouseFollower.hide(); // if the subclass is already using a mock event "helper", hide our own - } - else { - mouseFollower.show(); // otherwise, have the helper follow the mouse (no snapping) - } - if (isOrig) { - // needs to have moved hits to be a valid drop - eventDefMutation = null; - } - }, - hitOut: function () { - view.unrenderDrag(seg); // unrender whatever was done in renderDrag - mouseFollower.show(); // show in case we are moving out of all hits - eventDefMutation = null; - }, - hitDone: function () { - util_1.enableCursor(); - }, - interactionEnd: function (ev) { - delete seg.component; // prevent side effects - // do revert animation if hasn't changed. calls a callback when finished (whether animation or not) - mouseFollower.stop(!eventDefMutation, function () { - if (isDragging) { - view.unrenderDrag(seg); - _this.segDragStop(seg, ev); - } - view.showEventsWithId(seg.footprint.eventDef.id); - if (eventDefMutation) { - // no need to re-show original, will rerender all anyways. esp important if eventRenderWait - view.reportEventDrop(eventInstance, eventDefMutation, el, ev); - } - }); - _this.dragListener = null; - } - }); - return dragListener; - }; - // Called before event segment dragging starts - EventDragging.prototype.segDragStart = function (seg, ev) { - this.isDragging = true; - this.component.publiclyTrigger('eventDragStart', { - context: seg.el[0], - args: [ - seg.footprint.getEventLegacy(), - ev, - {}, - this.view - ] - }); - }; - // Called after event segment dragging stops - EventDragging.prototype.segDragStop = function (seg, ev) { - this.isDragging = false; - this.component.publiclyTrigger('eventDragStop', { - context: seg.el[0], - args: [ - seg.footprint.getEventLegacy(), - ev, - {}, - this.view - ] - }); - }; - // DOES NOT consider overlap/constraint - EventDragging.prototype.computeEventDropMutation = function (startFootprint, endFootprint, eventDef) { - var eventDefMutation = new EventDefMutation_1.default(); - eventDefMutation.setDateMutation(this.computeEventDateMutation(startFootprint, endFootprint)); - return eventDefMutation; - }; - EventDragging.prototype.computeEventDateMutation = function (startFootprint, endFootprint) { - var date0 = startFootprint.unzonedRange.getStart(); - var date1 = endFootprint.unzonedRange.getStart(); - var clearEnd = false; - var forceTimed = false; - var forceAllDay = false; - var dateDelta; - var dateMutation; - if (startFootprint.isAllDay !== endFootprint.isAllDay) { - clearEnd = true; - if (endFootprint.isAllDay) { - forceAllDay = true; - date0.stripTime(); - } - else { - forceTimed = true; - } - } - dateDelta = this.component.diffDates(date1, date0); - dateMutation = new EventDefDateMutation_1.default(); - dateMutation.clearEnd = clearEnd; - dateMutation.forceTimed = forceTimed; - dateMutation.forceAllDay = forceAllDay; - dateMutation.setDateDelta(dateDelta); - return dateMutation; - }; - return EventDragging; -}(Interaction_1.default)); -exports.default = EventDragging; - - -/***/ }), -/* 225 */ -/***/ (function(module, exports, __webpack_require__) { - -Object.defineProperty(exports, "__esModule", { value: true }); -var tslib_1 = __webpack_require__(2); -var util_1 = __webpack_require__(4); -var HitDragListener_1 = __webpack_require__(23); -var ComponentFootprint_1 = __webpack_require__(12); -var UnzonedRange_1 = __webpack_require__(5); -var Interaction_1 = __webpack_require__(15); -var DateSelecting = /** @class */ (function (_super) { - tslib_1.__extends(DateSelecting, _super); - /* - component must implement: - - bindDateHandlerToEl - - getSafeHitFootprint - - renderHighlight - - unrenderHighlight - */ - function DateSelecting(component) { - var _this = _super.call(this, component) || this; - _this.dragListener = _this.buildDragListener(); - return _this; - } - DateSelecting.prototype.end = function () { - this.dragListener.endInteraction(); - }; - DateSelecting.prototype.getDelay = function () { - var delay = this.opt('selectLongPressDelay'); - if (delay == null) { - delay = this.opt('longPressDelay'); // fallback - } - return delay; - }; - DateSelecting.prototype.bindToEl = function (el) { - var _this = this; - var component = this.component; - var dragListener = this.dragListener; - component.bindDateHandlerToEl(el, 'mousedown', function (ev) { - if (_this.opt('selectable') && !component.shouldIgnoreMouse()) { - dragListener.startInteraction(ev, { - distance: _this.opt('selectMinDistance') - }); - } - }); - component.bindDateHandlerToEl(el, 'touchstart', function (ev) { - if (_this.opt('selectable') && !component.shouldIgnoreTouch()) { - dragListener.startInteraction(ev, { - delay: _this.getDelay() - }); - } - }); - util_1.preventSelection(el); - }; - // Creates a listener that tracks the user's drag across day elements, for day selecting. - DateSelecting.prototype.buildDragListener = function () { - var _this = this; - var component = this.component; - var selectionFootprint; // null if invalid selection - var dragListener = new HitDragListener_1.default(component, { - scroll: this.opt('dragScroll'), - interactionStart: function () { - selectionFootprint = null; - }, - dragStart: function (ev) { - _this.view.unselect(ev); // since we could be rendering a new selection, we want to clear any old one - }, - hitOver: function (hit, isOrig, origHit) { - var origHitFootprint; - var hitFootprint; - if (origHit) { - origHitFootprint = component.getSafeHitFootprint(origHit); - hitFootprint = component.getSafeHitFootprint(hit); - if (origHitFootprint && hitFootprint) { - selectionFootprint = _this.computeSelection(origHitFootprint, hitFootprint); - } - else { - selectionFootprint = null; - } - if (selectionFootprint) { - component.renderSelectionFootprint(selectionFootprint); - } - else if (selectionFootprint === false) { - util_1.disableCursor(); - } - } - }, - hitOut: function () { - selectionFootprint = null; - component.unrenderSelection(); - }, - hitDone: function () { - util_1.enableCursor(); - }, - interactionEnd: function (ev, isCancelled) { - if (!isCancelled && selectionFootprint) { - // the selection will already have been rendered. just report it - _this.view.reportSelection(selectionFootprint, ev); - } - } - }); - return dragListener; - }; - // Given the first and last date-spans of a selection, returns another date-span object. - // Subclasses can override and provide additional data in the span object. Will be passed to renderSelectionFootprint(). - // Will return false if the selection is invalid and this should be indicated to the user. - // Will return null/undefined if a selection invalid but no error should be reported. - DateSelecting.prototype.computeSelection = function (footprint0, footprint1) { - var wholeFootprint = this.computeSelectionFootprint(footprint0, footprint1); - if (wholeFootprint && !this.isSelectionFootprintAllowed(wholeFootprint)) { - return false; - } - return wholeFootprint; - }; - // Given two spans, must return the combination of the two. - // TODO: do this separation of concerns (combining VS validation) for event dnd/resize too. - // Assumes both footprints are non-open-ended. - DateSelecting.prototype.computeSelectionFootprint = function (footprint0, footprint1) { - var ms = [ - footprint0.unzonedRange.startMs, - footprint0.unzonedRange.endMs, - footprint1.unzonedRange.startMs, - footprint1.unzonedRange.endMs - ]; - ms.sort(util_1.compareNumbers); - return new ComponentFootprint_1.default(new UnzonedRange_1.default(ms[0], ms[3]), footprint0.isAllDay); - }; - DateSelecting.prototype.isSelectionFootprintAllowed = function (componentFootprint) { - return this.component.dateProfile.validUnzonedRange.containsRange(componentFootprint.unzonedRange) && - this.view.calendar.constraints.isSelectionFootprintAllowed(componentFootprint); - }; - return DateSelecting; -}(Interaction_1.default)); -exports.default = DateSelecting; - - -/***/ }), -/* 226 */ -/***/ (function(module, exports, __webpack_require__) { - -Object.defineProperty(exports, "__esModule", { value: true }); -var tslib_1 = __webpack_require__(2); -var moment = __webpack_require__(0); -var $ = __webpack_require__(3); -var util_1 = __webpack_require__(4); -var Scroller_1 = __webpack_require__(39); -var View_1 = __webpack_require__(41); -var TimeGrid_1 = __webpack_require__(227); -var DayGrid_1 = __webpack_require__(61); -var AGENDA_ALL_DAY_EVENT_LIMIT = 5; -var agendaTimeGridMethods; -var agendaDayGridMethods; -/* An abstract class for all agenda-related views. Displays one more columns with time slots running vertically. -----------------------------------------------------------------------------------------------------------------------*/ -// Is a manager for the TimeGrid subcomponent and possibly the DayGrid subcomponent (if allDaySlot is on). -// Responsible for managing width/height. -var AgendaView = /** @class */ (function (_super) { - tslib_1.__extends(AgendaView, _super); - function AgendaView(calendar, viewSpec) { - var _this = _super.call(this, calendar, viewSpec) || this; - _this.usesMinMaxTime = true; // indicates that minTime/maxTime affects rendering - _this.timeGrid = _this.instantiateTimeGrid(); - _this.addChild(_this.timeGrid); - if (_this.opt('allDaySlot')) { - _this.dayGrid = _this.instantiateDayGrid(); // the all-day subcomponent of this view - _this.addChild(_this.dayGrid); - } - _this.scroller = new Scroller_1.default({ - overflowX: 'hidden', - overflowY: 'auto' - }); - return _this; - } - // Instantiates the TimeGrid object this view needs. Draws from this.timeGridClass - AgendaView.prototype.instantiateTimeGrid = function () { - var timeGrid = new this.timeGridClass(this); - util_1.copyOwnProps(agendaTimeGridMethods, timeGrid); - return timeGrid; - }; - // Instantiates the DayGrid object this view might need. Draws from this.dayGridClass - AgendaView.prototype.instantiateDayGrid = function () { - var dayGrid = new this.dayGridClass(this); - util_1.copyOwnProps(agendaDayGridMethods, dayGrid); - return dayGrid; - }; - /* Rendering - ------------------------------------------------------------------------------------------------------------------*/ - AgendaView.prototype.renderSkeleton = function () { - var timeGridWrapEl; - var timeGridEl; - this.el.addClass('fc-agenda-view').html(this.renderSkeletonHtml()); - this.scroller.render(); - timeGridWrapEl = this.scroller.el.addClass('fc-time-grid-container'); - timeGridEl = $('
    ').appendTo(timeGridWrapEl); - this.el.find('.fc-body > tr > td').append(timeGridWrapEl); - this.timeGrid.headContainerEl = this.el.find('.fc-head-container'); - this.timeGrid.setElement(timeGridEl); - if (this.dayGrid) { - this.dayGrid.setElement(this.el.find('.fc-day-grid')); - // have the day-grid extend it's coordinate area over the
    dividing the two grids - this.dayGrid.bottomCoordPadding = this.dayGrid.el.next('hr').outerHeight(); - } - }; - AgendaView.prototype.unrenderSkeleton = function () { - this.timeGrid.removeElement(); - if (this.dayGrid) { - this.dayGrid.removeElement(); - } - this.scroller.destroy(); - }; - // Builds the HTML skeleton for the view. - // The day-grid and time-grid components will render inside containers defined by this HTML. - AgendaView.prototype.renderSkeletonHtml = function () { - var theme = this.calendar.theme; - return '' + - '' + - (this.opt('columnHeader') ? - '' + - '' + - '' + - '' + - '' : - '') + - '' + - '' + - '' + - '' + - '' + - '
     
    ' + - (this.dayGrid ? - '
    ' + - '
    ' : - '') + - '
    '; - }; - // Generates an HTML attribute string for setting the width of the axis, if it is known - AgendaView.prototype.axisStyleAttr = function () { - if (this.axisWidth != null) { - return 'style="width:' + this.axisWidth + 'px"'; - } - return ''; - }; - /* Now Indicator - ------------------------------------------------------------------------------------------------------------------*/ - AgendaView.prototype.getNowIndicatorUnit = function () { - return this.timeGrid.getNowIndicatorUnit(); - }; - /* Dimensions - ------------------------------------------------------------------------------------------------------------------*/ - // Adjusts the vertical dimensions of the view to the specified values - AgendaView.prototype.updateSize = function (totalHeight, isAuto, isResize) { - var eventLimit; - var scrollerHeight; - var scrollbarWidths; - _super.prototype.updateSize.call(this, totalHeight, isAuto, isResize); - // make all axis cells line up, and record the width so newly created axis cells will have it - this.axisWidth = util_1.matchCellWidths(this.el.find('.fc-axis')); - // hack to give the view some height prior to timeGrid's columns being rendered - // TODO: separate setting height from scroller VS timeGrid. - if (!this.timeGrid.colEls) { - if (!isAuto) { - scrollerHeight = this.computeScrollerHeight(totalHeight); - this.scroller.setHeight(scrollerHeight); - } - return; - } - // set of fake row elements that must compensate when scroller has scrollbars - var noScrollRowEls = this.el.find('.fc-row:not(.fc-scroller *)'); - // reset all dimensions back to the original state - this.timeGrid.bottomRuleEl.hide(); // .show() will be called later if this
    is necessary - this.scroller.clear(); // sets height to 'auto' and clears overflow - util_1.uncompensateScroll(noScrollRowEls); - // limit number of events in the all-day area - if (this.dayGrid) { - this.dayGrid.removeSegPopover(); // kill the "more" popover if displayed - eventLimit = this.opt('eventLimit'); - if (eventLimit && typeof eventLimit !== 'number') { - eventLimit = AGENDA_ALL_DAY_EVENT_LIMIT; // make sure "auto" goes to a real number - } - if (eventLimit) { - this.dayGrid.limitRows(eventLimit); - } - } - if (!isAuto) { - scrollerHeight = this.computeScrollerHeight(totalHeight); - this.scroller.setHeight(scrollerHeight); - scrollbarWidths = this.scroller.getScrollbarWidths(); - if (scrollbarWidths.left || scrollbarWidths.right) { - // make the all-day and header rows lines up - util_1.compensateScroll(noScrollRowEls, scrollbarWidths); - // the scrollbar compensation might have changed text flow, which might affect height, so recalculate - // and reapply the desired height to the scroller. - scrollerHeight = this.computeScrollerHeight(totalHeight); - this.scroller.setHeight(scrollerHeight); - } - // guarantees the same scrollbar widths - this.scroller.lockOverflow(scrollbarWidths); - // if there's any space below the slats, show the horizontal rule. - // this won't cause any new overflow, because lockOverflow already called. - if (this.timeGrid.getTotalSlatHeight() < scrollerHeight) { - this.timeGrid.bottomRuleEl.show(); - } - } - }; - // given a desired total height of the view, returns what the height of the scroller should be - AgendaView.prototype.computeScrollerHeight = function (totalHeight) { - return totalHeight - - util_1.subtractInnerElHeight(this.el, this.scroller.el); // everything that's NOT the scroller - }; - /* Scroll - ------------------------------------------------------------------------------------------------------------------*/ - // Computes the initial pre-configured scroll state prior to allowing the user to change it - AgendaView.prototype.computeInitialDateScroll = function () { - var scrollTime = moment.duration(this.opt('scrollTime')); - var top = this.timeGrid.computeTimeTop(scrollTime); - // zoom can give weird floating-point values. rather scroll a little bit further - top = Math.ceil(top); - if (top) { - top++; // to overcome top border that slots beyond the first have. looks better - } - return { top: top }; - }; - AgendaView.prototype.queryDateScroll = function () { - return { top: this.scroller.getScrollTop() }; - }; - AgendaView.prototype.applyDateScroll = function (scroll) { - if (scroll.top !== undefined) { - this.scroller.setScrollTop(scroll.top); - } - }; - /* Hit Areas - ------------------------------------------------------------------------------------------------------------------*/ - // forward all hit-related method calls to the grids (dayGrid might not be defined) - AgendaView.prototype.getHitFootprint = function (hit) { - // TODO: hit.component is set as a hack to identify where the hit came from - return hit.component.getHitFootprint(hit); - }; - AgendaView.prototype.getHitEl = function (hit) { - // TODO: hit.component is set as a hack to identify where the hit came from - return hit.component.getHitEl(hit); - }; - /* Event Rendering - ------------------------------------------------------------------------------------------------------------------*/ - AgendaView.prototype.executeEventRender = function (eventsPayload) { - var dayEventsPayload = {}; - var timedEventsPayload = {}; - var id; - var eventInstanceGroup; - // separate the events into all-day and timed - for (id in eventsPayload) { - eventInstanceGroup = eventsPayload[id]; - if (eventInstanceGroup.getEventDef().isAllDay()) { - dayEventsPayload[id] = eventInstanceGroup; - } - else { - timedEventsPayload[id] = eventInstanceGroup; - } - } - this.timeGrid.executeEventRender(timedEventsPayload); - if (this.dayGrid) { - this.dayGrid.executeEventRender(dayEventsPayload); - } - }; - /* Dragging/Resizing Routing - ------------------------------------------------------------------------------------------------------------------*/ - // A returned value of `true` signals that a mock "helper" event has been rendered. - AgendaView.prototype.renderDrag = function (eventFootprints, seg, isTouch) { - var groups = groupEventFootprintsByAllDay(eventFootprints); - var renderedHelper = false; - renderedHelper = this.timeGrid.renderDrag(groups.timed, seg, isTouch); - if (this.dayGrid) { - renderedHelper = this.dayGrid.renderDrag(groups.allDay, seg, isTouch) || renderedHelper; - } - return renderedHelper; - }; - AgendaView.prototype.renderEventResize = function (eventFootprints, seg, isTouch) { - var groups = groupEventFootprintsByAllDay(eventFootprints); - this.timeGrid.renderEventResize(groups.timed, seg, isTouch); - if (this.dayGrid) { - this.dayGrid.renderEventResize(groups.allDay, seg, isTouch); - } - }; - /* Selection - ------------------------------------------------------------------------------------------------------------------*/ - // Renders a visual indication of a selection - AgendaView.prototype.renderSelectionFootprint = function (componentFootprint) { - if (!componentFootprint.isAllDay) { - this.timeGrid.renderSelectionFootprint(componentFootprint); - } - else if (this.dayGrid) { - this.dayGrid.renderSelectionFootprint(componentFootprint); - } - }; - return AgendaView; -}(View_1.default)); -exports.default = AgendaView; -AgendaView.prototype.timeGridClass = TimeGrid_1.default; -AgendaView.prototype.dayGridClass = DayGrid_1.default; -// Will customize the rendering behavior of the AgendaView's timeGrid -agendaTimeGridMethods = { - // Generates the HTML that will go before the day-of week header cells - renderHeadIntroHtml: function () { - var view = this.view; - var calendar = view.calendar; - var weekStart = calendar.msToUtcMoment(this.dateProfile.renderUnzonedRange.startMs, true); - var weekText; - if (this.opt('weekNumbers')) { - weekText = weekStart.format(this.opt('smallWeekFormat')); - return '' + - '' + - view.buildGotoAnchorHtml(// aside from link, important for matchCellWidths - { date: weekStart, type: 'week', forceOff: this.colCnt > 1 }, util_1.htmlEscape(weekText) // inner HTML - ) + - ''; - } - else { - return ''; - } - }, - // Generates the HTML that goes before the bg of the TimeGrid slot area. Long vertical column. - renderBgIntroHtml: function () { - var view = this.view; - return ''; - }, - // Generates the HTML that goes before all other types of cells. - // Affects content-skeleton, helper-skeleton, highlight-skeleton for both the time-grid and day-grid. - renderIntroHtml: function () { - var view = this.view; - return ''; - } -}; -// Will customize the rendering behavior of the AgendaView's dayGrid -agendaDayGridMethods = { - // Generates the HTML that goes before the all-day cells - renderBgIntroHtml: function () { - var view = this.view; - return '' + - '' + - '' + // needed for matchCellWidths - view.getAllDayHtml() + - '' + - ''; - }, - // Generates the HTML that goes before all other types of cells. - // Affects content-skeleton, helper-skeleton, highlight-skeleton for both the time-grid and day-grid. - renderIntroHtml: function () { - var view = this.view; - return ''; - } -}; -function groupEventFootprintsByAllDay(eventFootprints) { - var allDay = []; - var timed = []; - var i; - for (i = 0; i < eventFootprints.length; i++) { - if (eventFootprints[i].componentFootprint.isAllDay) { - allDay.push(eventFootprints[i]); - } - else { - timed.push(eventFootprints[i]); - } - } - return { allDay: allDay, timed: timed }; -} - - -/***/ }), -/* 227 */ -/***/ (function(module, exports, __webpack_require__) { - -Object.defineProperty(exports, "__esModule", { value: true }); -var tslib_1 = __webpack_require__(2); -var $ = __webpack_require__(3); -var moment = __webpack_require__(0); -var util_1 = __webpack_require__(4); -var InteractiveDateComponent_1 = __webpack_require__(40); -var BusinessHourRenderer_1 = __webpack_require__(56); -var StandardInteractionsMixin_1 = __webpack_require__(60); -var DayTableMixin_1 = __webpack_require__(55); -var CoordCache_1 = __webpack_require__(53); -var UnzonedRange_1 = __webpack_require__(5); -var ComponentFootprint_1 = __webpack_require__(12); -var TimeGridEventRenderer_1 = __webpack_require__(246); -var TimeGridHelperRenderer_1 = __webpack_require__(247); -var TimeGridFillRenderer_1 = __webpack_require__(248); -/* A component that renders one or more columns of vertical time slots -----------------------------------------------------------------------------------------------------------------------*/ -// We mixin DayTable, even though there is only a single row of days -// potential nice values for the slot-duration and interval-duration -// from largest to smallest -var AGENDA_STOCK_SUB_DURATIONS = [ - { hours: 1 }, - { minutes: 30 }, - { minutes: 15 }, - { seconds: 30 }, - { seconds: 15 } -]; -var TimeGrid = /** @class */ (function (_super) { - tslib_1.__extends(TimeGrid, _super); - function TimeGrid(view) { - var _this = _super.call(this, view) || this; - _this.processOptions(); - return _this; - } - // Slices up the given span (unzoned start/end with other misc data) into an array of segments - TimeGrid.prototype.componentFootprintToSegs = function (componentFootprint) { - var segs = this.sliceRangeByTimes(componentFootprint.unzonedRange); - var i; - for (i = 0; i < segs.length; i++) { - if (this.isRTL) { - segs[i].col = this.daysPerRow - 1 - segs[i].dayIndex; - } - else { - segs[i].col = segs[i].dayIndex; - } - } - return segs; - }; - /* Date Handling - ------------------------------------------------------------------------------------------------------------------*/ - TimeGrid.prototype.sliceRangeByTimes = function (unzonedRange) { - var segs = []; - var segRange; - var dayIndex; - for (dayIndex = 0; dayIndex < this.daysPerRow; dayIndex++) { - segRange = unzonedRange.intersect(this.dayRanges[dayIndex]); - if (segRange) { - segs.push({ - startMs: segRange.startMs, - endMs: segRange.endMs, - isStart: segRange.isStart, - isEnd: segRange.isEnd, - dayIndex: dayIndex - }); - } - } - return segs; - }; - /* Options - ------------------------------------------------------------------------------------------------------------------*/ - // Parses various options into properties of this object - TimeGrid.prototype.processOptions = function () { - var slotDuration = this.opt('slotDuration'); - var snapDuration = this.opt('snapDuration'); - var input; - slotDuration = moment.duration(slotDuration); - snapDuration = snapDuration ? moment.duration(snapDuration) : slotDuration; - this.slotDuration = slotDuration; - this.snapDuration = snapDuration; - this.snapsPerSlot = slotDuration / snapDuration; // TODO: ensure an integer multiple? - // might be an array value (for TimelineView). - // if so, getting the most granular entry (the last one probably). - input = this.opt('slotLabelFormat'); - if ($.isArray(input)) { - input = input[input.length - 1]; - } - this.labelFormat = input || - this.opt('smallTimeFormat'); // the computed default - input = this.opt('slotLabelInterval'); - this.labelInterval = input ? - moment.duration(input) : - this.computeLabelInterval(slotDuration); - }; - // Computes an automatic value for slotLabelInterval - TimeGrid.prototype.computeLabelInterval = function (slotDuration) { - var i; - var labelInterval; - var slotsPerLabel; - // find the smallest stock label interval that results in more than one slots-per-label - for (i = AGENDA_STOCK_SUB_DURATIONS.length - 1; i >= 0; i--) { - labelInterval = moment.duration(AGENDA_STOCK_SUB_DURATIONS[i]); - slotsPerLabel = util_1.divideDurationByDuration(labelInterval, slotDuration); - if (util_1.isInt(slotsPerLabel) && slotsPerLabel > 1) { - return labelInterval; - } - } - return moment.duration(slotDuration); // fall back. clone - }; - /* Date Rendering - ------------------------------------------------------------------------------------------------------------------*/ - TimeGrid.prototype.renderDates = function (dateProfile) { - this.dateProfile = dateProfile; - this.updateDayTable(); - this.renderSlats(); - this.renderColumns(); - }; - TimeGrid.prototype.unrenderDates = function () { - // this.unrenderSlats(); // don't need this because repeated .html() calls clear - this.unrenderColumns(); - }; - TimeGrid.prototype.renderSkeleton = function () { - var theme = this.view.calendar.theme; - this.el.html('
    ' + - '
    ' + - ''); - this.bottomRuleEl = this.el.find('hr'); - }; - TimeGrid.prototype.renderSlats = function () { - var theme = this.view.calendar.theme; - this.slatContainerEl = this.el.find('> .fc-slats') - .html(// avoids needing ::unrenderSlats() - '' + - this.renderSlatRowHtml() + - '
    '); - this.slatEls = this.slatContainerEl.find('tr'); - this.slatCoordCache = new CoordCache_1.default({ - els: this.slatEls, - isVertical: true - }); - }; - // Generates the HTML for the horizontal "slats" that run width-wise. Has a time axis on a side. Depends on RTL. - TimeGrid.prototype.renderSlatRowHtml = function () { - var view = this.view; - var calendar = view.calendar; - var theme = calendar.theme; - var isRTL = this.isRTL; - var dateProfile = this.dateProfile; - var html = ''; - var slotTime = moment.duration(+dateProfile.minTime); // wish there was .clone() for durations - var slotIterator = moment.duration(0); - var slotDate; // will be on the view's first day, but we only care about its time - var isLabeled; - var axisHtml; - // Calculate the time for each slot - while (slotTime < dateProfile.maxTime) { - slotDate = calendar.msToUtcMoment(dateProfile.renderUnzonedRange.startMs).time(slotTime); - isLabeled = util_1.isInt(util_1.divideDurationByDuration(slotIterator, this.labelInterval)); - axisHtml = - '' + - (isLabeled ? - '' + // for matchCellWidths - util_1.htmlEscape(slotDate.format(this.labelFormat)) + - '' : - '') + - ''; - html += - '' + - (!isRTL ? axisHtml : '') + - '' + - (isRTL ? axisHtml : '') + - ''; - slotTime.add(this.slotDuration); - slotIterator.add(this.slotDuration); - } - return html; - }; - TimeGrid.prototype.renderColumns = function () { - var dateProfile = this.dateProfile; - var theme = this.view.calendar.theme; - this.dayRanges = this.dayDates.map(function (dayDate) { - return new UnzonedRange_1.default(dayDate.clone().add(dateProfile.minTime), dayDate.clone().add(dateProfile.maxTime)); - }); - if (this.headContainerEl) { - this.headContainerEl.html(this.renderHeadHtml()); - } - this.el.find('> .fc-bg').html('' + - this.renderBgTrHtml(0) + // row=0 - '
    '); - this.colEls = this.el.find('.fc-day, .fc-disabled-day'); - this.colCoordCache = new CoordCache_1.default({ - els: this.colEls, - isHorizontal: true - }); - this.renderContentSkeleton(); - }; - TimeGrid.prototype.unrenderColumns = function () { - this.unrenderContentSkeleton(); - }; - /* Content Skeleton - ------------------------------------------------------------------------------------------------------------------*/ - // Renders the DOM that the view's content will live in - TimeGrid.prototype.renderContentSkeleton = function () { - var cellHtml = ''; - var i; - var skeletonEl; - for (i = 0; i < this.colCnt; i++) { - cellHtml += - '' + - '
    ' + - '
    ' + - '
    ' + - '
    ' + - '
    ' + - '
    ' + - '
    ' + - ''; - } - skeletonEl = this.contentSkeletonEl = $('
    ' + - '' + - '' + cellHtml + '' + - '
    ' + - '
    '); - this.colContainerEls = skeletonEl.find('.fc-content-col'); - this.helperContainerEls = skeletonEl.find('.fc-helper-container'); - this.fgContainerEls = skeletonEl.find('.fc-event-container:not(.fc-helper-container)'); - this.bgContainerEls = skeletonEl.find('.fc-bgevent-container'); - this.highlightContainerEls = skeletonEl.find('.fc-highlight-container'); - this.businessContainerEls = skeletonEl.find('.fc-business-container'); - this.bookendCells(skeletonEl.find('tr')); // TODO: do this on string level - this.el.append(skeletonEl); - }; - TimeGrid.prototype.unrenderContentSkeleton = function () { - if (this.contentSkeletonEl) { - this.contentSkeletonEl.remove(); - this.contentSkeletonEl = null; - this.colContainerEls = null; - this.helperContainerEls = null; - this.fgContainerEls = null; - this.bgContainerEls = null; - this.highlightContainerEls = null; - this.businessContainerEls = null; - } - }; - // Given a flat array of segments, return an array of sub-arrays, grouped by each segment's col - TimeGrid.prototype.groupSegsByCol = function (segs) { - var segsByCol = []; - var i; - for (i = 0; i < this.colCnt; i++) { - segsByCol.push([]); - } - for (i = 0; i < segs.length; i++) { - segsByCol[segs[i].col].push(segs[i]); - } - return segsByCol; - }; - // Given segments grouped by column, insert the segments' elements into a parallel array of container - // elements, each living within a column. - TimeGrid.prototype.attachSegsByCol = function (segsByCol, containerEls) { - var col; - var segs; - var i; - for (col = 0; col < this.colCnt; col++) { - segs = segsByCol[col]; - for (i = 0; i < segs.length; i++) { - containerEls.eq(col).append(segs[i].el); - } - } - }; - /* Now Indicator - ------------------------------------------------------------------------------------------------------------------*/ - TimeGrid.prototype.getNowIndicatorUnit = function () { - return 'minute'; // will refresh on the minute - }; - TimeGrid.prototype.renderNowIndicator = function (date) { - // HACK: if date columns not ready for some reason (scheduler) - if (!this.colContainerEls) { - return; - } - // seg system might be overkill, but it handles scenario where line needs to be rendered - // more than once because of columns with the same date (resources columns for example) - var segs = this.componentFootprintToSegs(new ComponentFootprint_1.default(new UnzonedRange_1.default(date, date.valueOf() + 1), // protect against null range - false // all-day - )); - var top = this.computeDateTop(date, date); - var nodes = []; - var i; - // render lines within the columns - for (i = 0; i < segs.length; i++) { - nodes.push($('
    ') - .css('top', top) - .appendTo(this.colContainerEls.eq(segs[i].col))[0]); - } - // render an arrow over the axis - if (segs.length > 0) { - nodes.push($('
    ') - .css('top', top) - .appendTo(this.el.find('.fc-content-skeleton'))[0]); - } - this.nowIndicatorEls = $(nodes); - }; - TimeGrid.prototype.unrenderNowIndicator = function () { - if (this.nowIndicatorEls) { - this.nowIndicatorEls.remove(); - this.nowIndicatorEls = null; - } - }; - /* Coordinates - ------------------------------------------------------------------------------------------------------------------*/ - TimeGrid.prototype.updateSize = function (totalHeight, isAuto, isResize) { - _super.prototype.updateSize.call(this, totalHeight, isAuto, isResize); - this.slatCoordCache.build(); - if (isResize) { - this.updateSegVerticals([].concat(this.eventRenderer.getSegs(), this.businessSegs || [])); - } - }; - TimeGrid.prototype.getTotalSlatHeight = function () { - return this.slatContainerEl.outerHeight(); - }; - // Computes the top coordinate, relative to the bounds of the grid, of the given date. - // `ms` can be a millisecond UTC time OR a UTC moment. - // A `startOfDayDate` must be given for avoiding ambiguity over how to treat midnight. - TimeGrid.prototype.computeDateTop = function (ms, startOfDayDate) { - return this.computeTimeTop(moment.duration(ms - startOfDayDate.clone().stripTime())); - }; - // Computes the top coordinate, relative to the bounds of the grid, of the given time (a Duration). - TimeGrid.prototype.computeTimeTop = function (time) { - var len = this.slatEls.length; - var dateProfile = this.dateProfile; - var slatCoverage = (time - dateProfile.minTime) / this.slotDuration; // floating-point value of # of slots covered - var slatIndex; - var slatRemainder; - // compute a floating-point number for how many slats should be progressed through. - // from 0 to number of slats (inclusive) - // constrained because minTime/maxTime might be customized. - slatCoverage = Math.max(0, slatCoverage); - slatCoverage = Math.min(len, slatCoverage); - // an integer index of the furthest whole slat - // from 0 to number slats (*exclusive*, so len-1) - slatIndex = Math.floor(slatCoverage); - slatIndex = Math.min(slatIndex, len - 1); - // how much further through the slatIndex slat (from 0.0-1.0) must be covered in addition. - // could be 1.0 if slatCoverage is covering *all* the slots - slatRemainder = slatCoverage - slatIndex; - return this.slatCoordCache.getTopPosition(slatIndex) + - this.slatCoordCache.getHeight(slatIndex) * slatRemainder; - }; - // Refreshes the CSS top/bottom coordinates for each segment element. - // Works when called after initial render, after a window resize/zoom for example. - TimeGrid.prototype.updateSegVerticals = function (segs) { - this.computeSegVerticals(segs); - this.assignSegVerticals(segs); - }; - // For each segment in an array, computes and assigns its top and bottom properties - TimeGrid.prototype.computeSegVerticals = function (segs) { - var eventMinHeight = this.opt('agendaEventMinHeight'); - var i; - var seg; - var dayDate; - for (i = 0; i < segs.length; i++) { - seg = segs[i]; - dayDate = this.dayDates[seg.dayIndex]; - seg.top = this.computeDateTop(seg.startMs, dayDate); - seg.bottom = Math.max(seg.top + eventMinHeight, this.computeDateTop(seg.endMs, dayDate)); - } - }; - // Given segments that already have their top/bottom properties computed, applies those values to - // the segments' elements. - TimeGrid.prototype.assignSegVerticals = function (segs) { - var i; - var seg; - for (i = 0; i < segs.length; i++) { - seg = segs[i]; - seg.el.css(this.generateSegVerticalCss(seg)); - } - }; - // Generates an object with CSS properties for the top/bottom coordinates of a segment element - TimeGrid.prototype.generateSegVerticalCss = function (seg) { - return { - top: seg.top, - bottom: -seg.bottom // flipped because needs to be space beyond bottom edge of event container - }; - }; - /* Hit System - ------------------------------------------------------------------------------------------------------------------*/ - TimeGrid.prototype.prepareHits = function () { - this.colCoordCache.build(); - this.slatCoordCache.build(); - }; - TimeGrid.prototype.releaseHits = function () { - this.colCoordCache.clear(); - // NOTE: don't clear slatCoordCache because we rely on it for computeTimeTop - }; - TimeGrid.prototype.queryHit = function (leftOffset, topOffset) { - var snapsPerSlot = this.snapsPerSlot; - var colCoordCache = this.colCoordCache; - var slatCoordCache = this.slatCoordCache; - if (colCoordCache.isLeftInBounds(leftOffset) && slatCoordCache.isTopInBounds(topOffset)) { - var colIndex = colCoordCache.getHorizontalIndex(leftOffset); - var slatIndex = slatCoordCache.getVerticalIndex(topOffset); - if (colIndex != null && slatIndex != null) { - var slatTop = slatCoordCache.getTopOffset(slatIndex); - var slatHeight = slatCoordCache.getHeight(slatIndex); - var partial = (topOffset - slatTop) / slatHeight; // floating point number between 0 and 1 - var localSnapIndex = Math.floor(partial * snapsPerSlot); // the snap # relative to start of slat - var snapIndex = slatIndex * snapsPerSlot + localSnapIndex; - var snapTop = slatTop + (localSnapIndex / snapsPerSlot) * slatHeight; - var snapBottom = slatTop + ((localSnapIndex + 1) / snapsPerSlot) * slatHeight; - return { - col: colIndex, - snap: snapIndex, - component: this, - left: colCoordCache.getLeftOffset(colIndex), - right: colCoordCache.getRightOffset(colIndex), - top: snapTop, - bottom: snapBottom - }; - } - } - }; - TimeGrid.prototype.getHitFootprint = function (hit) { - var start = this.getCellDate(0, hit.col); // row=0 - var time = this.computeSnapTime(hit.snap); // pass in the snap-index - var end; - start.time(time); - end = start.clone().add(this.snapDuration); - return new ComponentFootprint_1.default(new UnzonedRange_1.default(start, end), false // all-day? - ); - }; - // Given a row number of the grid, representing a "snap", returns a time (Duration) from its start-of-day - TimeGrid.prototype.computeSnapTime = function (snapIndex) { - return moment.duration(this.dateProfile.minTime + this.snapDuration * snapIndex); - }; - TimeGrid.prototype.getHitEl = function (hit) { - return this.colEls.eq(hit.col); - }; - /* Event Drag Visualization - ------------------------------------------------------------------------------------------------------------------*/ - // Renders a visual indication of an event being dragged over the specified date(s). - // A returned value of `true` signals that a mock "helper" event has been rendered. - TimeGrid.prototype.renderDrag = function (eventFootprints, seg, isTouch) { - var i; - if (seg) { - if (eventFootprints.length) { - this.helperRenderer.renderEventDraggingFootprints(eventFootprints, seg, isTouch); - // signal that a helper has been rendered - return true; - } - } - else { - for (i = 0; i < eventFootprints.length; i++) { - this.renderHighlight(eventFootprints[i].componentFootprint); - } - } - }; - // Unrenders any visual indication of an event being dragged - TimeGrid.prototype.unrenderDrag = function () { - this.unrenderHighlight(); - this.helperRenderer.unrender(); - }; - /* Event Resize Visualization - ------------------------------------------------------------------------------------------------------------------*/ - // Renders a visual indication of an event being resized - TimeGrid.prototype.renderEventResize = function (eventFootprints, seg, isTouch) { - this.helperRenderer.renderEventResizingFootprints(eventFootprints, seg, isTouch); - }; - // Unrenders any visual indication of an event being resized - TimeGrid.prototype.unrenderEventResize = function () { - this.helperRenderer.unrender(); - }; - /* Selection - ------------------------------------------------------------------------------------------------------------------*/ - // Renders a visual indication of a selection. Overrides the default, which was to simply render a highlight. - TimeGrid.prototype.renderSelectionFootprint = function (componentFootprint) { - if (this.opt('selectHelper')) { - this.helperRenderer.renderComponentFootprint(componentFootprint); - } - else { - this.renderHighlight(componentFootprint); - } - }; - // Unrenders any visual indication of a selection - TimeGrid.prototype.unrenderSelection = function () { - this.helperRenderer.unrender(); - this.unrenderHighlight(); - }; - return TimeGrid; -}(InteractiveDateComponent_1.default)); -exports.default = TimeGrid; -TimeGrid.prototype.eventRendererClass = TimeGridEventRenderer_1.default; -TimeGrid.prototype.businessHourRendererClass = BusinessHourRenderer_1.default; -TimeGrid.prototype.helperRendererClass = TimeGridHelperRenderer_1.default; -TimeGrid.prototype.fillRendererClass = TimeGridFillRenderer_1.default; -StandardInteractionsMixin_1.default.mixInto(TimeGrid); -DayTableMixin_1.default.mixInto(TimeGrid); - - -/***/ }), -/* 228 */ -/***/ (function(module, exports, __webpack_require__) { - -Object.defineProperty(exports, "__esModule", { value: true }); -var tslib_1 = __webpack_require__(2); -var UnzonedRange_1 = __webpack_require__(5); -var DateProfileGenerator_1 = __webpack_require__(221); -var BasicViewDateProfileGenerator = /** @class */ (function (_super) { - tslib_1.__extends(BasicViewDateProfileGenerator, _super); - function BasicViewDateProfileGenerator() { - return _super !== null && _super.apply(this, arguments) || this; - } - // Computes the date range that will be rendered. - BasicViewDateProfileGenerator.prototype.buildRenderRange = function (currentUnzonedRange, currentRangeUnit, isRangeAllDay) { - var renderUnzonedRange = _super.prototype.buildRenderRange.call(this, currentUnzonedRange, currentRangeUnit, isRangeAllDay); // an UnzonedRange - var start = this.msToUtcMoment(renderUnzonedRange.startMs, isRangeAllDay); - var end = this.msToUtcMoment(renderUnzonedRange.endMs, isRangeAllDay); - // year and month views should be aligned with weeks. this is already done for week - if (/^(year|month)$/.test(currentRangeUnit)) { - start.startOf('week'); - // make end-of-week if not already - if (end.weekday()) { - end.add(1, 'week').startOf('week'); // exclusively move backwards - } - } - return new UnzonedRange_1.default(start, end); - }; - return BasicViewDateProfileGenerator; -}(DateProfileGenerator_1.default)); -exports.default = BasicViewDateProfileGenerator; - - -/***/ }), -/* 229 */ -/***/ (function(module, exports, __webpack_require__) { - -Object.defineProperty(exports, "__esModule", { value: true }); -var tslib_1 = __webpack_require__(2); -var moment = __webpack_require__(0); -var util_1 = __webpack_require__(4); -var BasicView_1 = __webpack_require__(62); -var MonthViewDateProfileGenerator_1 = __webpack_require__(253); -/* A month view with day cells running in rows (one-per-week) and columns -----------------------------------------------------------------------------------------------------------------------*/ -var MonthView = /** @class */ (function (_super) { - tslib_1.__extends(MonthView, _super); - function MonthView() { - return _super !== null && _super.apply(this, arguments) || this; - } - // Overrides the default BasicView behavior to have special multi-week auto-height logic - MonthView.prototype.setGridHeight = function (height, isAuto) { - // if auto, make the height of each row the height that it would be if there were 6 weeks - if (isAuto) { - height *= this.dayGrid.rowCnt / 6; - } - util_1.distributeHeight(this.dayGrid.rowEls, height, !isAuto); // if auto, don't compensate for height-hogging rows - }; - MonthView.prototype.isDateInOtherMonth = function (date, dateProfile) { - return date.month() !== moment.utc(dateProfile.currentUnzonedRange.startMs).month(); // TODO: optimize - }; - return MonthView; -}(BasicView_1.default)); -exports.default = MonthView; -MonthView.prototype.dateProfileGeneratorClass = MonthViewDateProfileGenerator_1.default; - - -/***/ }), -/* 230 */ -/***/ (function(module, exports, __webpack_require__) { - -Object.defineProperty(exports, "__esModule", { value: true }); -var tslib_1 = __webpack_require__(2); -var $ = __webpack_require__(3); -var util_1 = __webpack_require__(4); -var UnzonedRange_1 = __webpack_require__(5); -var View_1 = __webpack_require__(41); -var Scroller_1 = __webpack_require__(39); -var ListEventRenderer_1 = __webpack_require__(254); -var ListEventPointing_1 = __webpack_require__(255); -/* -Responsible for the scroller, and forwarding event-related actions into the "grid". -*/ -var ListView = /** @class */ (function (_super) { - tslib_1.__extends(ListView, _super); - function ListView(calendar, viewSpec) { - var _this = _super.call(this, calendar, viewSpec) || this; - _this.segSelector = '.fc-list-item'; // which elements accept event actions - _this.scroller = new Scroller_1.default({ - overflowX: 'hidden', - overflowY: 'auto' - }); - return _this; - } - ListView.prototype.renderSkeleton = function () { - this.el.addClass('fc-list-view ' + - this.calendar.theme.getClass('listView')); - this.scroller.render(); - this.scroller.el.appendTo(this.el); - this.contentEl = this.scroller.scrollEl; // shortcut - }; - ListView.prototype.unrenderSkeleton = function () { - this.scroller.destroy(); // will remove the Grid too - }; - ListView.prototype.updateSize = function (totalHeight, isAuto, isResize) { - _super.prototype.updateSize.call(this, totalHeight, isAuto, isResize); - this.scroller.clear(); // sets height to 'auto' and clears overflow - if (!isAuto) { - this.scroller.setHeight(this.computeScrollerHeight(totalHeight)); - } - }; - ListView.prototype.computeScrollerHeight = function (totalHeight) { - return totalHeight - - util_1.subtractInnerElHeight(this.el, this.scroller.el); // everything that's NOT the scroller - }; - ListView.prototype.renderDates = function (dateProfile) { - var calendar = this.calendar; - var dayStart = calendar.msToUtcMoment(dateProfile.renderUnzonedRange.startMs, true); - var viewEnd = calendar.msToUtcMoment(dateProfile.renderUnzonedRange.endMs, true); - var dayDates = []; - var dayRanges = []; - while (dayStart < viewEnd) { - dayDates.push(dayStart.clone()); - dayRanges.push(new UnzonedRange_1.default(dayStart, dayStart.clone().add(1, 'day'))); - dayStart.add(1, 'day'); - } - this.dayDates = dayDates; - this.dayRanges = dayRanges; - // all real rendering happens in EventRenderer - }; - // slices by day - ListView.prototype.componentFootprintToSegs = function (footprint) { - var dayRanges = this.dayRanges; - var dayIndex; - var segRange; - var seg; - var segs = []; - for (dayIndex = 0; dayIndex < dayRanges.length; dayIndex++) { - segRange = footprint.unzonedRange.intersect(dayRanges[dayIndex]); - if (segRange) { - seg = { - startMs: segRange.startMs, - endMs: segRange.endMs, - isStart: segRange.isStart, - isEnd: segRange.isEnd, - dayIndex: dayIndex - }; - segs.push(seg); - // detect when footprint won't go fully into the next day, - // and mutate the latest seg to the be the end. - if (!seg.isEnd && !footprint.isAllDay && - dayIndex + 1 < dayRanges.length && - footprint.unzonedRange.endMs < dayRanges[dayIndex + 1].startMs + this.nextDayThreshold) { - seg.endMs = footprint.unzonedRange.endMs; - seg.isEnd = true; - break; - } - } - } - return segs; - }; - ListView.prototype.renderEmptyMessage = function () { - this.contentEl.html('
    ' + // TODO: try less wraps - '
    ' + - '
    ' + - util_1.htmlEscape(this.opt('noEventsMessage')) + - '
    ' + - '
    ' + - '
    '); - }; - // render the event segments in the view - ListView.prototype.renderSegList = function (allSegs) { - var segsByDay = this.groupSegsByDay(allSegs); // sparse array - var dayIndex; - var daySegs; - var i; - var tableEl = $('
    '); - var tbodyEl = tableEl.find('tbody'); - for (dayIndex = 0; dayIndex < segsByDay.length; dayIndex++) { - daySegs = segsByDay[dayIndex]; - if (daySegs) { - // append a day header - tbodyEl.append(this.dayHeaderHtml(this.dayDates[dayIndex])); - this.eventRenderer.sortEventSegs(daySegs); - for (i = 0; i < daySegs.length; i++) { - tbodyEl.append(daySegs[i].el); // append event row - } - } - } - this.contentEl.empty().append(tableEl); - }; - // Returns a sparse array of arrays, segs grouped by their dayIndex - ListView.prototype.groupSegsByDay = function (segs) { - var segsByDay = []; // sparse array - var i; - var seg; - for (i = 0; i < segs.length; i++) { - seg = segs[i]; - (segsByDay[seg.dayIndex] || (segsByDay[seg.dayIndex] = [])) - .push(seg); - } - return segsByDay; - }; - // generates the HTML for the day headers that live amongst the event rows - ListView.prototype.dayHeaderHtml = function (dayDate) { - var mainFormat = this.opt('listDayFormat'); - var altFormat = this.opt('listDayAltFormat'); - return '' + - '' + - (mainFormat ? - this.buildGotoAnchorHtml(dayDate, { 'class': 'fc-list-heading-main' }, util_1.htmlEscape(dayDate.format(mainFormat)) // inner HTML - ) : - '') + - (altFormat ? - this.buildGotoAnchorHtml(dayDate, { 'class': 'fc-list-heading-alt' }, util_1.htmlEscape(dayDate.format(altFormat)) // inner HTML - ) : - '') + - '' + - ''; - }; - return ListView; -}(View_1.default)); -exports.default = ListView; -ListView.prototype.eventRendererClass = ListEventRenderer_1.default; -ListView.prototype.eventPointingClass = ListEventPointing_1.default; - - -/***/ }), -/* 231 */, -/* 232 */, -/* 233 */, -/* 234 */, -/* 235 */, -/* 236 */ -/***/ (function(module, exports, __webpack_require__) { - -var $ = __webpack_require__(3); -var exportHooks = __webpack_require__(16); -var util_1 = __webpack_require__(4); -var Calendar_1 = __webpack_require__(220); -// for intentional side-effects -__webpack_require__(10); -__webpack_require__(47); -__webpack_require__(256); -__webpack_require__(257); -__webpack_require__(260); -__webpack_require__(261); -__webpack_require__(262); -__webpack_require__(263); -$.fullCalendar = exportHooks; -$.fn.fullCalendar = function (options) { - var args = Array.prototype.slice.call(arguments, 1); // for a possible method call - var res = this; // what this function will return (this jQuery object by default) - this.each(function (i, _element) { - var element = $(_element); - var calendar = element.data('fullCalendar'); // get the existing calendar object (if any) - var singleRes; // the returned value of this single method call - // a method call - if (typeof options === 'string') { - if (options === 'getCalendar') { - if (!i) { - res = calendar; - } - } - else if (options === 'destroy') { - if (calendar) { - calendar.destroy(); - element.removeData('fullCalendar'); - } - } - else if (!calendar) { - util_1.warn('Attempting to call a FullCalendar method on an element with no calendar.'); - } - else if ($.isFunction(calendar[options])) { - singleRes = calendar[options].apply(calendar, args); - if (!i) { - res = singleRes; // record the first method call result - } - if (options === 'destroy') { - element.removeData('fullCalendar'); - } - } - else { - util_1.warn("'" + options + "' is an unknown FullCalendar method."); - } - } - else if (!calendar) { - calendar = new Calendar_1.default(element, options); - element.data('fullCalendar', calendar); - calendar.render(); - } - }); - return res; -}; -module.exports = exportHooks; - - -/***/ }), -/* 237 */ -/***/ (function(module, exports, __webpack_require__) { - -Object.defineProperty(exports, "__esModule", { value: true }); -var tslib_1 = __webpack_require__(2); -var Model_1 = __webpack_require__(48); -var Component = /** @class */ (function (_super) { - tslib_1.__extends(Component, _super); - function Component() { - return _super !== null && _super.apply(this, arguments) || this; - } - Component.prototype.setElement = function (el) { - this.el = el; - this.bindGlobalHandlers(); - this.renderSkeleton(); - this.set('isInDom', true); - }; - Component.prototype.removeElement = function () { - this.unset('isInDom'); - this.unrenderSkeleton(); - this.unbindGlobalHandlers(); - this.el.remove(); - // NOTE: don't null-out this.el in case the View was destroyed within an API callback. - // We don't null-out the View's other jQuery element references upon destroy, - // so we shouldn't kill this.el either. - }; - Component.prototype.bindGlobalHandlers = function () { - // subclasses can override - }; - Component.prototype.unbindGlobalHandlers = function () { - // subclasses can override - }; - /* - NOTE: Can't have a `render` method. Read the deprecation notice in View::executeDateRender - */ - // Renders the basic structure of the view before any content is rendered - Component.prototype.renderSkeleton = function () { - // subclasses should implement - }; - // Unrenders the basic structure of the view - Component.prototype.unrenderSkeleton = function () { - // subclasses should implement - }; - return Component; -}(Model_1.default)); -exports.default = Component; - - -/***/ }), -/* 238 */ -/***/ (function(module, exports) { - -Object.defineProperty(exports, "__esModule", { value: true }); -var Iterator = /** @class */ (function () { - function Iterator(items) { - this.items = items || []; - } - /* Calls a method on every item passing the arguments through */ - Iterator.prototype.proxyCall = function (methodName) { - var args = []; - for (var _i = 1; _i < arguments.length; _i++) { - args[_i - 1] = arguments[_i]; - } - var results = []; - this.items.forEach(function (item) { - results.push(item[methodName].apply(item, args)); - }); - return results; - }; - return Iterator; -}()); -exports.default = Iterator; - - -/***/ }), -/* 239 */ -/***/ (function(module, exports, __webpack_require__) { - -Object.defineProperty(exports, "__esModule", { value: true }); -var $ = __webpack_require__(3); -var util_1 = __webpack_require__(4); -/* Toolbar with buttons and title -----------------------------------------------------------------------------------------------------------------------*/ -var Toolbar = /** @class */ (function () { - function Toolbar(calendar, toolbarOptions) { - this.el = null; // mirrors local `el` - this.viewsWithButtons = []; - this.calendar = calendar; - this.toolbarOptions = toolbarOptions; - } - // method to update toolbar-specific options, not calendar-wide options - Toolbar.prototype.setToolbarOptions = function (newToolbarOptions) { - this.toolbarOptions = newToolbarOptions; - }; - // can be called repeatedly and will rerender - Toolbar.prototype.render = function () { - var sections = this.toolbarOptions.layout; - var el = this.el; - if (sections) { - if (!el) { - el = this.el = $("
    "); - } - else { - el.empty(); - } - el.append(this.renderSection('left')) - .append(this.renderSection('right')) - .append(this.renderSection('center')) - .append('
    '); - } - else { - this.removeElement(); - } - }; - Toolbar.prototype.removeElement = function () { - if (this.el) { - this.el.remove(); - this.el = null; - } - }; - Toolbar.prototype.renderSection = function (position) { - var _this = this; - var calendar = this.calendar; - var theme = calendar.theme; - var optionsManager = calendar.optionsManager; - var viewSpecManager = calendar.viewSpecManager; - var sectionEl = $('
    '); - var buttonStr = this.toolbarOptions.layout[position]; - var calendarCustomButtons = optionsManager.get('customButtons') || {}; - var calendarButtonTextOverrides = optionsManager.overrides.buttonText || {}; - var calendarButtonText = optionsManager.get('buttonText') || {}; - if (buttonStr) { - $.each(buttonStr.split(' '), function (i, buttonGroupStr) { - var groupChildren = $(); - var isOnlyButtons = true; - var groupEl; - $.each(buttonGroupStr.split(','), function (j, buttonName) { - var customButtonProps; - var viewSpec; - var buttonClick; - var buttonIcon; // only one of these will be set - var buttonText; // " - var buttonInnerHtml; - var buttonClasses; - var buttonEl; - var buttonAriaAttr; - if (buttonName === 'title') { - groupChildren = groupChildren.add($('

     

    ')); // we always want it to take up height - isOnlyButtons = false; - } - else { - if ((customButtonProps = calendarCustomButtons[buttonName])) { - buttonClick = function (ev) { - if (customButtonProps.click) { - customButtonProps.click.call(buttonEl[0], ev); - } - }; - (buttonIcon = theme.getCustomButtonIconClass(customButtonProps)) || - (buttonIcon = theme.getIconClass(buttonName)) || - (buttonText = customButtonProps.text); - } - else if ((viewSpec = viewSpecManager.getViewSpec(buttonName))) { - _this.viewsWithButtons.push(buttonName); - buttonClick = function () { - calendar.changeView(buttonName); - }; - (buttonText = viewSpec.buttonTextOverride) || - (buttonIcon = theme.getIconClass(buttonName)) || - (buttonText = viewSpec.buttonTextDefault); - } - else if (calendar[buttonName]) { - buttonClick = function () { - calendar[buttonName](); - }; - (buttonText = calendarButtonTextOverrides[buttonName]) || - (buttonIcon = theme.getIconClass(buttonName)) || - (buttonText = calendarButtonText[buttonName]); - // ^ everything else is considered default - } - if (buttonClick) { - buttonClasses = [ - 'fc-' + buttonName + '-button', - theme.getClass('button'), - theme.getClass('stateDefault') - ]; - if (buttonText) { - buttonInnerHtml = util_1.htmlEscape(buttonText); - buttonAriaAttr = ''; - } - else if (buttonIcon) { - buttonInnerHtml = ""; - buttonAriaAttr = ' aria-label="' + buttonName + '"'; - } - buttonEl = $(// type="button" so that it doesn't submit a form - '') - .click(function (ev) { - // don't process clicks for disabled buttons - if (!buttonEl.hasClass(theme.getClass('stateDisabled'))) { - buttonClick(ev); - // after the click action, if the button becomes the "active" tab, or disabled, - // it should never have a hover class, so remove it now. - if (buttonEl.hasClass(theme.getClass('stateActive')) || - buttonEl.hasClass(theme.getClass('stateDisabled'))) { - buttonEl.removeClass(theme.getClass('stateHover')); - } - } - }) - .mousedown(function () { - // the *down* effect (mouse pressed in). - // only on buttons that are not the "active" tab, or disabled - buttonEl - .not('.' + theme.getClass('stateActive')) - .not('.' + theme.getClass('stateDisabled')) - .addClass(theme.getClass('stateDown')); - }) - .mouseup(function () { - // undo the *down* effect - buttonEl.removeClass(theme.getClass('stateDown')); - }) - .hover(function () { - // the *hover* effect. - // only on buttons that are not the "active" tab, or disabled - buttonEl - .not('.' + theme.getClass('stateActive')) - .not('.' + theme.getClass('stateDisabled')) - .addClass(theme.getClass('stateHover')); - }, function () { - // undo the *hover* effect - buttonEl - .removeClass(theme.getClass('stateHover')) - .removeClass(theme.getClass('stateDown')); // if mouseleave happens before mouseup - }); - groupChildren = groupChildren.add(buttonEl); - } - } - }); - if (isOnlyButtons) { - groupChildren - .first().addClass(theme.getClass('cornerLeft')).end() - .last().addClass(theme.getClass('cornerRight')).end(); - } - if (groupChildren.length > 1) { - groupEl = $('
    '); - if (isOnlyButtons) { - groupEl.addClass(theme.getClass('buttonGroup')); - } - groupEl.append(groupChildren); - sectionEl.append(groupEl); - } - else { - sectionEl.append(groupChildren); // 1 or 0 children - } - }); - } - return sectionEl; - }; - Toolbar.prototype.updateTitle = function (text) { - if (this.el) { - this.el.find('h2').text(text); - } - }; - Toolbar.prototype.activateButton = function (buttonName) { - if (this.el) { - this.el.find('.fc-' + buttonName + '-button') - .addClass(this.calendar.theme.getClass('stateActive')); - } - }; - Toolbar.prototype.deactivateButton = function (buttonName) { - if (this.el) { - this.el.find('.fc-' + buttonName + '-button') - .removeClass(this.calendar.theme.getClass('stateActive')); - } - }; - Toolbar.prototype.disableButton = function (buttonName) { - if (this.el) { - this.el.find('.fc-' + buttonName + '-button') - .prop('disabled', true) - .addClass(this.calendar.theme.getClass('stateDisabled')); - } - }; - Toolbar.prototype.enableButton = function (buttonName) { - if (this.el) { - this.el.find('.fc-' + buttonName + '-button') - .prop('disabled', false) - .removeClass(this.calendar.theme.getClass('stateDisabled')); - } - }; - Toolbar.prototype.getViewsWithButtons = function () { - return this.viewsWithButtons; - }; - return Toolbar; -}()); -exports.default = Toolbar; - - -/***/ }), -/* 240 */ -/***/ (function(module, exports, __webpack_require__) { - -Object.defineProperty(exports, "__esModule", { value: true }); -var tslib_1 = __webpack_require__(2); -var $ = __webpack_require__(3); -var util_1 = __webpack_require__(4); -var options_1 = __webpack_require__(32); -var locale_1 = __webpack_require__(31); -var Model_1 = __webpack_require__(48); -var OptionsManager = /** @class */ (function (_super) { - tslib_1.__extends(OptionsManager, _super); - function OptionsManager(_calendar, overrides) { - var _this = _super.call(this) || this; - _this._calendar = _calendar; - _this.overrides = $.extend({}, overrides); // make a copy - _this.dynamicOverrides = {}; - _this.compute(); - return _this; - } - OptionsManager.prototype.add = function (newOptionHash) { - var optionCnt = 0; - var optionName; - this.recordOverrides(newOptionHash); // will trigger this model's watchers - for (optionName in newOptionHash) { - optionCnt++; - } - // special-case handling of single option change. - // if only one option change, `optionName` will be its name. - if (optionCnt === 1) { - if (optionName === 'height' || optionName === 'contentHeight' || optionName === 'aspectRatio') { - this._calendar.updateViewSize(true); // isResize=true - return; - } - else if (optionName === 'defaultDate') { - return; // can't change date this way. use gotoDate instead - } - else if (optionName === 'businessHours') { - return; // this model already reacts to this - } - else if (/^(event|select)(Overlap|Constraint|Allow)$/.test(optionName)) { - return; // doesn't affect rendering. only interactions. - } - else if (optionName === 'timezone') { - this._calendar.view.flash('initialEvents'); - return; - } - } - // catch-all. rerender the header and footer and rebuild/rerender the current view - this._calendar.renderHeader(); - this._calendar.renderFooter(); - // even non-current views will be affected by this option change. do before rerender - // TODO: detangle - this._calendar.viewsByType = {}; - this._calendar.reinitView(); - }; - // Computes the flattened options hash for the calendar and assigns to `this.options`. - // Assumes this.overrides and this.dynamicOverrides have already been initialized. - OptionsManager.prototype.compute = function () { - var locale; - var localeDefaults; - var isRTL; - var dirDefaults; - var rawOptions; - locale = util_1.firstDefined(// explicit locale option given? - this.dynamicOverrides.locale, this.overrides.locale); - localeDefaults = locale_1.localeOptionHash[locale]; - if (!localeDefaults) { - locale = options_1.globalDefaults.locale; - localeDefaults = locale_1.localeOptionHash[locale] || {}; - } - isRTL = util_1.firstDefined(// based on options computed so far, is direction RTL? - this.dynamicOverrides.isRTL, this.overrides.isRTL, localeDefaults.isRTL, options_1.globalDefaults.isRTL); - dirDefaults = isRTL ? options_1.rtlDefaults : {}; - this.dirDefaults = dirDefaults; - this.localeDefaults = localeDefaults; - rawOptions = options_1.mergeOptions([ - options_1.globalDefaults, - dirDefaults, - localeDefaults, - this.overrides, - this.dynamicOverrides - ]); - locale_1.populateInstanceComputableOptions(rawOptions); // fill in gaps with computed options - this.reset(rawOptions); - }; - // stores the new options internally, but does not rerender anything. - OptionsManager.prototype.recordOverrides = function (newOptionHash) { - var optionName; - for (optionName in newOptionHash) { - this.dynamicOverrides[optionName] = newOptionHash[optionName]; - } - this._calendar.viewSpecManager.clearCache(); // the dynamic override invalidates the options in this cache, so just clear it - this.compute(); // this.options needs to be recomputed after the dynamic override - }; - return OptionsManager; -}(Model_1.default)); -exports.default = OptionsManager; - - -/***/ }), -/* 241 */ -/***/ (function(module, exports, __webpack_require__) { - -Object.defineProperty(exports, "__esModule", { value: true }); -var moment = __webpack_require__(0); -var $ = __webpack_require__(3); -var ViewRegistry_1 = __webpack_require__(22); -var util_1 = __webpack_require__(4); -var options_1 = __webpack_require__(32); -var locale_1 = __webpack_require__(31); -var ViewSpecManager = /** @class */ (function () { - function ViewSpecManager(optionsManager, _calendar) { - this.optionsManager = optionsManager; - this._calendar = _calendar; - this.clearCache(); - } - ViewSpecManager.prototype.clearCache = function () { - this.viewSpecCache = {}; - }; - // Gets information about how to create a view. Will use a cache. - ViewSpecManager.prototype.getViewSpec = function (viewType) { - var cache = this.viewSpecCache; - return cache[viewType] || (cache[viewType] = this.buildViewSpec(viewType)); - }; - // Given a duration singular unit, like "week" or "day", finds a matching view spec. - // Preference is given to views that have corresponding buttons. - ViewSpecManager.prototype.getUnitViewSpec = function (unit) { - var viewTypes; - var i; - var spec; - if ($.inArray(unit, util_1.unitsDesc) !== -1) { - // put views that have buttons first. there will be duplicates, but oh well - viewTypes = this._calendar.header.getViewsWithButtons(); // TODO: include footer as well? - $.each(ViewRegistry_1.viewHash, function (viewType) { - viewTypes.push(viewType); - }); - for (i = 0; i < viewTypes.length; i++) { - spec = this.getViewSpec(viewTypes[i]); - if (spec) { - if (spec.singleUnit === unit) { - return spec; - } - } - } - } - }; - // Builds an object with information on how to create a given view - ViewSpecManager.prototype.buildViewSpec = function (requestedViewType) { - var viewOverrides = this.optionsManager.overrides.views || {}; - var specChain = []; // for the view. lowest to highest priority - var defaultsChain = []; // for the view. lowest to highest priority - var overridesChain = []; // for the view. lowest to highest priority - var viewType = requestedViewType; - var spec; // for the view - var overrides; // for the view - var durationInput; - var duration; - var unit; - // iterate from the specific view definition to a more general one until we hit an actual View class - while (viewType) { - spec = ViewRegistry_1.viewHash[viewType]; - overrides = viewOverrides[viewType]; - viewType = null; // clear. might repopulate for another iteration - if (typeof spec === 'function') { - spec = { 'class': spec }; - } - if (spec) { - specChain.unshift(spec); - defaultsChain.unshift(spec.defaults || {}); - durationInput = durationInput || spec.duration; - viewType = viewType || spec.type; - } - if (overrides) { - overridesChain.unshift(overrides); // view-specific option hashes have options at zero-level - durationInput = durationInput || overrides.duration; - viewType = viewType || overrides.type; - } - } - spec = util_1.mergeProps(specChain); - spec.type = requestedViewType; - if (!spec['class']) { - return false; - } - // fall back to top-level `duration` option - durationInput = durationInput || - this.optionsManager.dynamicOverrides.duration || - this.optionsManager.overrides.duration; - if (durationInput) { - duration = moment.duration(durationInput); - if (duration.valueOf()) { - unit = util_1.computeDurationGreatestUnit(duration, durationInput); - spec.duration = duration; - spec.durationUnit = unit; - // view is a single-unit duration, like "week" or "day" - // incorporate options for this. lowest priority - if (duration.as(unit) === 1) { - spec.singleUnit = unit; - overridesChain.unshift(viewOverrides[unit] || {}); - } - } - } - spec.defaults = options_1.mergeOptions(defaultsChain); - spec.overrides = options_1.mergeOptions(overridesChain); - this.buildViewSpecOptions(spec); - this.buildViewSpecButtonText(spec, requestedViewType); - return spec; - }; - // Builds and assigns a view spec's options object from its already-assigned defaults and overrides - ViewSpecManager.prototype.buildViewSpecOptions = function (spec) { - var optionsManager = this.optionsManager; - spec.options = options_1.mergeOptions([ - options_1.globalDefaults, - spec.defaults, - optionsManager.dirDefaults, - optionsManager.localeDefaults, - optionsManager.overrides, - spec.overrides, - optionsManager.dynamicOverrides // dynamically set via setter. highest precedence - ]); - locale_1.populateInstanceComputableOptions(spec.options); - }; - // Computes and assigns a view spec's buttonText-related options - ViewSpecManager.prototype.buildViewSpecButtonText = function (spec, requestedViewType) { - var optionsManager = this.optionsManager; - // given an options object with a possible `buttonText` hash, lookup the buttonText for the - // requested view, falling back to a generic unit entry like "week" or "day" - function queryButtonText(options) { - var buttonText = options.buttonText || {}; - return buttonText[requestedViewType] || - // view can decide to look up a certain key - (spec.buttonTextKey ? buttonText[spec.buttonTextKey] : null) || - // a key like "month" - (spec.singleUnit ? buttonText[spec.singleUnit] : null); - } - // highest to lowest priority - spec.buttonTextOverride = - queryButtonText(optionsManager.dynamicOverrides) || - queryButtonText(optionsManager.overrides) || // constructor-specified buttonText lookup hash takes precedence - spec.overrides.buttonText; // `buttonText` for view-specific options is a string - // highest to lowest priority. mirrors buildViewSpecOptions - spec.buttonTextDefault = - queryButtonText(optionsManager.localeDefaults) || - queryButtonText(optionsManager.dirDefaults) || - spec.defaults.buttonText || // a single string. from ViewSubclass.defaults - queryButtonText(options_1.globalDefaults) || - (spec.duration ? this._calendar.humanizeDuration(spec.duration) : null) || // like "3 days" - requestedViewType; // fall back to given view name - }; - return ViewSpecManager; -}()); -exports.default = ViewSpecManager; - - -/***/ }), -/* 242 */ -/***/ (function(module, exports, __webpack_require__) { - -Object.defineProperty(exports, "__esModule", { value: true }); -var $ = __webpack_require__(3); -var util_1 = __webpack_require__(4); -var EventPeriod_1 = __webpack_require__(243); -var ArrayEventSource_1 = __webpack_require__(52); -var EventSource_1 = __webpack_require__(6); -var EventSourceParser_1 = __webpack_require__(38); -var SingleEventDef_1 = __webpack_require__(13); -var EventInstanceGroup_1 = __webpack_require__(18); -var EmitterMixin_1 = __webpack_require__(11); -var ListenerMixin_1 = __webpack_require__(7); -var EventManager = /** @class */ (function () { - function EventManager(calendar) { - this.calendar = calendar; - this.stickySource = new ArrayEventSource_1.default(calendar); - this.otherSources = []; - } - EventManager.prototype.requestEvents = function (start, end, timezone, force) { - if (force || - !this.currentPeriod || - !this.currentPeriod.isWithinRange(start, end) || - timezone !== this.currentPeriod.timezone) { - this.setPeriod(// will change this.currentPeriod - new EventPeriod_1.default(start, end, timezone)); - } - return this.currentPeriod.whenReleased(); - }; - // Source Adding/Removing - // ----------------------------------------------------------------------------------------------------------------- - EventManager.prototype.addSource = function (eventSource) { - this.otherSources.push(eventSource); - if (this.currentPeriod) { - this.currentPeriod.requestSource(eventSource); // might release - } - }; - EventManager.prototype.removeSource = function (doomedSource) { - util_1.removeExact(this.otherSources, doomedSource); - if (this.currentPeriod) { - this.currentPeriod.purgeSource(doomedSource); // might release - } - }; - EventManager.prototype.removeAllSources = function () { - this.otherSources = []; - if (this.currentPeriod) { - this.currentPeriod.purgeAllSources(); // might release - } - }; - // Source Refetching - // ----------------------------------------------------------------------------------------------------------------- - EventManager.prototype.refetchSource = function (eventSource) { - var currentPeriod = this.currentPeriod; - if (currentPeriod) { - currentPeriod.freeze(); - currentPeriod.purgeSource(eventSource); - currentPeriod.requestSource(eventSource); - currentPeriod.thaw(); - } - }; - EventManager.prototype.refetchAllSources = function () { - var currentPeriod = this.currentPeriod; - if (currentPeriod) { - currentPeriod.freeze(); - currentPeriod.purgeAllSources(); - currentPeriod.requestSources(this.getSources()); - currentPeriod.thaw(); - } - }; - // Source Querying - // ----------------------------------------------------------------------------------------------------------------- - EventManager.prototype.getSources = function () { - return [this.stickySource].concat(this.otherSources); - }; - // like querySources, but accepts multple match criteria (like multiple IDs) - EventManager.prototype.multiQuerySources = function (matchInputs) { - // coerce into an array - if (!matchInputs) { - matchInputs = []; - } - else if (!$.isArray(matchInputs)) { - matchInputs = [matchInputs]; - } - var matchingSources = []; - var i; - // resolve raw inputs to real event source objects - for (i = 0; i < matchInputs.length; i++) { - matchingSources.push.apply(// append - matchingSources, this.querySources(matchInputs[i])); - } - return matchingSources; - }; - // matchInput can either by a real event source object, an ID, or the function/URL for the source. - // returns an array of matching source objects. - EventManager.prototype.querySources = function (matchInput) { - var sources = this.otherSources; - var i; - var source; - // given a proper event source object - for (i = 0; i < sources.length; i++) { - source = sources[i]; - if (source === matchInput) { - return [source]; - } - } - // an ID match - source = this.getSourceById(EventSource_1.default.normalizeId(matchInput)); - if (source) { - return [source]; - } - // parse as an event source - matchInput = EventSourceParser_1.default.parse(matchInput, this.calendar); - if (matchInput) { - return $.grep(sources, function (source) { - return isSourcesEquivalent(matchInput, source); - }); - } - }; - /* - ID assumed to already be normalized - */ - EventManager.prototype.getSourceById = function (id) { - return $.grep(this.otherSources, function (source) { - return source.id && source.id === id; - })[0]; - }; - // Event-Period - // ----------------------------------------------------------------------------------------------------------------- - EventManager.prototype.setPeriod = function (eventPeriod) { - if (this.currentPeriod) { - this.unbindPeriod(this.currentPeriod); - this.currentPeriod = null; - } - this.currentPeriod = eventPeriod; - this.bindPeriod(eventPeriod); - eventPeriod.requestSources(this.getSources()); - }; - EventManager.prototype.bindPeriod = function (eventPeriod) { - this.listenTo(eventPeriod, 'release', function (eventsPayload) { - this.trigger('release', eventsPayload); - }); - }; - EventManager.prototype.unbindPeriod = function (eventPeriod) { - this.stopListeningTo(eventPeriod); - }; - // Event Getting/Adding/Removing - // ----------------------------------------------------------------------------------------------------------------- - EventManager.prototype.getEventDefByUid = function (uid) { - if (this.currentPeriod) { - return this.currentPeriod.getEventDefByUid(uid); - } - }; - EventManager.prototype.addEventDef = function (eventDef, isSticky) { - if (isSticky) { - this.stickySource.addEventDef(eventDef); - } - if (this.currentPeriod) { - this.currentPeriod.addEventDef(eventDef); // might release - } - }; - EventManager.prototype.removeEventDefsById = function (eventId) { - this.getSources().forEach(function (eventSource) { - eventSource.removeEventDefsById(eventId); - }); - if (this.currentPeriod) { - this.currentPeriod.removeEventDefsById(eventId); // might release - } - }; - EventManager.prototype.removeAllEventDefs = function () { - this.getSources().forEach(function (eventSource) { - eventSource.removeAllEventDefs(); - }); - if (this.currentPeriod) { - this.currentPeriod.removeAllEventDefs(); - } - }; - // Event Mutating - // ----------------------------------------------------------------------------------------------------------------- - /* - Returns an undo function. - */ - EventManager.prototype.mutateEventsWithId = function (eventDefId, eventDefMutation) { - var currentPeriod = this.currentPeriod; - var eventDefs; - var undoFuncs = []; - if (currentPeriod) { - currentPeriod.freeze(); - eventDefs = currentPeriod.getEventDefsById(eventDefId); - eventDefs.forEach(function (eventDef) { - // add/remove esp because id might change - currentPeriod.removeEventDef(eventDef); - undoFuncs.push(eventDefMutation.mutateSingle(eventDef)); - currentPeriod.addEventDef(eventDef); - }); - currentPeriod.thaw(); - return function () { - currentPeriod.freeze(); - for (var i = 0; i < eventDefs.length; i++) { - currentPeriod.removeEventDef(eventDefs[i]); - undoFuncs[i](); - currentPeriod.addEventDef(eventDefs[i]); - } - currentPeriod.thaw(); - }; - } - return function () { }; - }; - /* - copies and then mutates - */ - EventManager.prototype.buildMutatedEventInstanceGroup = function (eventDefId, eventDefMutation) { - var eventDefs = this.getEventDefsById(eventDefId); - var i; - var defCopy; - var allInstances = []; - for (i = 0; i < eventDefs.length; i++) { - defCopy = eventDefs[i].clone(); - if (defCopy instanceof SingleEventDef_1.default) { - eventDefMutation.mutateSingle(defCopy); - allInstances.push.apply(allInstances, // append - defCopy.buildInstances()); - } - } - return new EventInstanceGroup_1.default(allInstances); - }; - // Freezing - // ----------------------------------------------------------------------------------------------------------------- - EventManager.prototype.freeze = function () { - if (this.currentPeriod) { - this.currentPeriod.freeze(); - } - }; - EventManager.prototype.thaw = function () { - if (this.currentPeriod) { - this.currentPeriod.thaw(); - } - }; - // methods that simply forward to EventPeriod - EventManager.prototype.getEventDefsById = function (eventDefId) { - return this.currentPeriod.getEventDefsById(eventDefId); - }; - EventManager.prototype.getEventInstances = function () { - return this.currentPeriod.getEventInstances(); - }; - EventManager.prototype.getEventInstancesWithId = function (eventDefId) { - return this.currentPeriod.getEventInstancesWithId(eventDefId); - }; - EventManager.prototype.getEventInstancesWithoutId = function (eventDefId) { - return this.currentPeriod.getEventInstancesWithoutId(eventDefId); - }; - return EventManager; -}()); -exports.default = EventManager; -EmitterMixin_1.default.mixInto(EventManager); -ListenerMixin_1.default.mixInto(EventManager); -function isSourcesEquivalent(source0, source1) { - return source0.getPrimitive() === source1.getPrimitive(); -} - - -/***/ }), -/* 243 */ -/***/ (function(module, exports, __webpack_require__) { - -Object.defineProperty(exports, "__esModule", { value: true }); -var $ = __webpack_require__(3); -var util_1 = __webpack_require__(4); -var Promise_1 = __webpack_require__(20); -var EmitterMixin_1 = __webpack_require__(11); -var UnzonedRange_1 = __webpack_require__(5); -var EventInstanceGroup_1 = __webpack_require__(18); -var EventPeriod = /** @class */ (function () { - function EventPeriod(start, end, timezone) { - this.pendingCnt = 0; - this.freezeDepth = 0; - this.stuntedReleaseCnt = 0; - this.releaseCnt = 0; - this.start = start; - this.end = end; - this.timezone = timezone; - this.unzonedRange = new UnzonedRange_1.default(start.clone().stripZone(), end.clone().stripZone()); - this.requestsByUid = {}; - this.eventDefsByUid = {}; - this.eventDefsById = {}; - this.eventInstanceGroupsById = {}; - } - EventPeriod.prototype.isWithinRange = function (start, end) { - // TODO: use a range util function? - return !start.isBefore(this.start) && !end.isAfter(this.end); - }; - // Requesting and Purging - // ----------------------------------------------------------------------------------------------------------------- - EventPeriod.prototype.requestSources = function (sources) { - this.freeze(); - for (var i = 0; i < sources.length; i++) { - this.requestSource(sources[i]); - } - this.thaw(); - }; - EventPeriod.prototype.requestSource = function (source) { - var _this = this; - var request = { source: source, status: 'pending', eventDefs: null }; - this.requestsByUid[source.uid] = request; - this.pendingCnt += 1; - source.fetch(this.start, this.end, this.timezone).then(function (eventDefs) { - if (request.status !== 'cancelled') { - request.status = 'completed'; - request.eventDefs = eventDefs; - _this.addEventDefs(eventDefs); - _this.pendingCnt--; - _this.tryRelease(); - } - }, function () { - if (request.status !== 'cancelled') { - request.status = 'failed'; - _this.pendingCnt--; - _this.tryRelease(); - } - }); - }; - EventPeriod.prototype.purgeSource = function (source) { - var request = this.requestsByUid[source.uid]; - if (request) { - delete this.requestsByUid[source.uid]; - if (request.status === 'pending') { - request.status = 'cancelled'; - this.pendingCnt--; - this.tryRelease(); - } - else if (request.status === 'completed') { - request.eventDefs.forEach(this.removeEventDef.bind(this)); - } - } - }; - EventPeriod.prototype.purgeAllSources = function () { - var requestsByUid = this.requestsByUid; - var uid; - var request; - var completedCnt = 0; - for (uid in requestsByUid) { - request = requestsByUid[uid]; - if (request.status === 'pending') { - request.status = 'cancelled'; - } - else if (request.status === 'completed') { - completedCnt++; - } - } - this.requestsByUid = {}; - this.pendingCnt = 0; - if (completedCnt) { - this.removeAllEventDefs(); // might release - } - }; - // Event Definitions - // ----------------------------------------------------------------------------------------------------------------- - EventPeriod.prototype.getEventDefByUid = function (eventDefUid) { - return this.eventDefsByUid[eventDefUid]; - }; - EventPeriod.prototype.getEventDefsById = function (eventDefId) { - var a = this.eventDefsById[eventDefId]; - if (a) { - return a.slice(); // clone - } - return []; - }; - EventPeriod.prototype.addEventDefs = function (eventDefs) { - for (var i = 0; i < eventDefs.length; i++) { - this.addEventDef(eventDefs[i]); - } - }; - EventPeriod.prototype.addEventDef = function (eventDef) { - var eventDefsById = this.eventDefsById; - var eventDefId = eventDef.id; - var eventDefs = eventDefsById[eventDefId] || (eventDefsById[eventDefId] = []); - var eventInstances = eventDef.buildInstances(this.unzonedRange); - var i; - eventDefs.push(eventDef); - this.eventDefsByUid[eventDef.uid] = eventDef; - for (i = 0; i < eventInstances.length; i++) { - this.addEventInstance(eventInstances[i], eventDefId); - } - }; - EventPeriod.prototype.removeEventDefsById = function (eventDefId) { - var _this = this; - this.getEventDefsById(eventDefId).forEach(function (eventDef) { - _this.removeEventDef(eventDef); - }); - }; - EventPeriod.prototype.removeAllEventDefs = function () { - var isEmpty = $.isEmptyObject(this.eventDefsByUid); - this.eventDefsByUid = {}; - this.eventDefsById = {}; - this.eventInstanceGroupsById = {}; - if (!isEmpty) { - this.tryRelease(); - } - }; - EventPeriod.prototype.removeEventDef = function (eventDef) { - var eventDefsById = this.eventDefsById; - var eventDefs = eventDefsById[eventDef.id]; - delete this.eventDefsByUid[eventDef.uid]; - if (eventDefs) { - util_1.removeExact(eventDefs, eventDef); - if (!eventDefs.length) { - delete eventDefsById[eventDef.id]; - } - this.removeEventInstancesForDef(eventDef); - } - }; - // Event Instances - // ----------------------------------------------------------------------------------------------------------------- - EventPeriod.prototype.getEventInstances = function () { - var eventInstanceGroupsById = this.eventInstanceGroupsById; - var eventInstances = []; - var id; - for (id in eventInstanceGroupsById) { - eventInstances.push.apply(eventInstances, // append - eventInstanceGroupsById[id].eventInstances); - } - return eventInstances; - }; - EventPeriod.prototype.getEventInstancesWithId = function (eventDefId) { - var eventInstanceGroup = this.eventInstanceGroupsById[eventDefId]; - if (eventInstanceGroup) { - return eventInstanceGroup.eventInstances.slice(); // clone - } - return []; - }; - EventPeriod.prototype.getEventInstancesWithoutId = function (eventDefId) { - var eventInstanceGroupsById = this.eventInstanceGroupsById; - var matchingInstances = []; - var id; - for (id in eventInstanceGroupsById) { - if (id !== eventDefId) { - matchingInstances.push.apply(matchingInstances, // append - eventInstanceGroupsById[id].eventInstances); - } - } - return matchingInstances; - }; - EventPeriod.prototype.addEventInstance = function (eventInstance, eventDefId) { - var eventInstanceGroupsById = this.eventInstanceGroupsById; - var eventInstanceGroup = eventInstanceGroupsById[eventDefId] || - (eventInstanceGroupsById[eventDefId] = new EventInstanceGroup_1.default()); - eventInstanceGroup.eventInstances.push(eventInstance); - this.tryRelease(); - }; - EventPeriod.prototype.removeEventInstancesForDef = function (eventDef) { - var eventInstanceGroupsById = this.eventInstanceGroupsById; - var eventInstanceGroup = eventInstanceGroupsById[eventDef.id]; - var removeCnt; - if (eventInstanceGroup) { - removeCnt = util_1.removeMatching(eventInstanceGroup.eventInstances, function (currentEventInstance) { - return currentEventInstance.def === eventDef; - }); - if (!eventInstanceGroup.eventInstances.length) { - delete eventInstanceGroupsById[eventDef.id]; - } - if (removeCnt) { - this.tryRelease(); - } - } - }; - // Releasing and Freezing - // ----------------------------------------------------------------------------------------------------------------- - EventPeriod.prototype.tryRelease = function () { - if (!this.pendingCnt) { - if (!this.freezeDepth) { - this.release(); - } - else { - this.stuntedReleaseCnt++; - } - } - }; - EventPeriod.prototype.release = function () { - this.releaseCnt++; - this.trigger('release', this.eventInstanceGroupsById); - }; - EventPeriod.prototype.whenReleased = function () { - var _this = this; - if (this.releaseCnt) { - return Promise_1.default.resolve(this.eventInstanceGroupsById); - } - else { - return Promise_1.default.construct(function (onResolve) { - _this.one('release', onResolve); - }); - } - }; - EventPeriod.prototype.freeze = function () { - if (!(this.freezeDepth++)) { - this.stuntedReleaseCnt = 0; - } - }; - EventPeriod.prototype.thaw = function () { - if (!(--this.freezeDepth) && this.stuntedReleaseCnt && !this.pendingCnt) { - this.release(); - } - }; - return EventPeriod; -}()); -exports.default = EventPeriod; -EmitterMixin_1.default.mixInto(EventPeriod); - - -/***/ }), -/* 244 */ -/***/ (function(module, exports, __webpack_require__) { - -Object.defineProperty(exports, "__esModule", { value: true }); -var $ = __webpack_require__(3); -var util_1 = __webpack_require__(4); -var ListenerMixin_1 = __webpack_require__(7); -/* Creates a clone of an element and lets it track the mouse as it moves -----------------------------------------------------------------------------------------------------------------------*/ -var MouseFollower = /** @class */ (function () { - function MouseFollower(sourceEl, options) { - this.isFollowing = false; - this.isHidden = false; - this.isAnimating = false; // doing the revert animation? - this.options = options = options || {}; - this.sourceEl = sourceEl; - this.parentEl = options.parentEl ? $(options.parentEl) : sourceEl.parent(); // default to sourceEl's parent - } - // Causes the element to start following the mouse - MouseFollower.prototype.start = function (ev) { - if (!this.isFollowing) { - this.isFollowing = true; - this.y0 = util_1.getEvY(ev); - this.x0 = util_1.getEvX(ev); - this.topDelta = 0; - this.leftDelta = 0; - if (!this.isHidden) { - this.updatePosition(); - } - if (util_1.getEvIsTouch(ev)) { - this.listenTo($(document), 'touchmove', this.handleMove); - } - else { - this.listenTo($(document), 'mousemove', this.handleMove); - } - } - }; - // Causes the element to stop following the mouse. If shouldRevert is true, will animate back to original position. - // `callback` gets invoked when the animation is complete. If no animation, it is invoked immediately. - MouseFollower.prototype.stop = function (shouldRevert, callback) { - var _this = this; - var revertDuration = this.options.revertDuration; - var complete = function () { - _this.isAnimating = false; - _this.removeElement(); - _this.top0 = _this.left0 = null; // reset state for future updatePosition calls - if (callback) { - callback(); - } - }; - if (this.isFollowing && !this.isAnimating) { - this.isFollowing = false; - this.stopListeningTo($(document)); - if (shouldRevert && revertDuration && !this.isHidden) { - this.isAnimating = true; - this.el.animate({ - top: this.top0, - left: this.left0 - }, { - duration: revertDuration, - complete: complete - }); - } - else { - complete(); - } - } - }; - // Gets the tracking element. Create it if necessary - MouseFollower.prototype.getEl = function () { - var el = this.el; - if (!el) { - el = this.el = this.sourceEl.clone() - .addClass(this.options.additionalClass || '') - .css({ - position: 'absolute', - visibility: '', - display: this.isHidden ? 'none' : '', - margin: 0, - right: 'auto', - bottom: 'auto', - width: this.sourceEl.width(), - height: this.sourceEl.height(), - opacity: this.options.opacity || '', - zIndex: this.options.zIndex - }); - // we don't want long taps or any mouse interaction causing selection/menus. - // would use preventSelection(), but that prevents selectstart, causing problems. - el.addClass('fc-unselectable'); - el.appendTo(this.parentEl); - } - return el; - }; - // Removes the tracking element if it has already been created - MouseFollower.prototype.removeElement = function () { - if (this.el) { - this.el.remove(); - this.el = null; - } - }; - // Update the CSS position of the tracking element - MouseFollower.prototype.updatePosition = function () { - var sourceOffset; - var origin; - this.getEl(); // ensure this.el - // make sure origin info was computed - if (this.top0 == null) { - sourceOffset = this.sourceEl.offset(); - origin = this.el.offsetParent().offset(); - this.top0 = sourceOffset.top - origin.top; - this.left0 = sourceOffset.left - origin.left; - } - this.el.css({ - top: this.top0 + this.topDelta, - left: this.left0 + this.leftDelta - }); - }; - // Gets called when the user moves the mouse - MouseFollower.prototype.handleMove = function (ev) { - this.topDelta = util_1.getEvY(ev) - this.y0; - this.leftDelta = util_1.getEvX(ev) - this.x0; - if (!this.isHidden) { - this.updatePosition(); - } - }; - // Temporarily makes the tracking element invisible. Can be called before following starts - MouseFollower.prototype.hide = function () { - if (!this.isHidden) { - this.isHidden = true; - if (this.el) { - this.el.hide(); - } - } - }; - // Show the tracking element after it has been temporarily hidden - MouseFollower.prototype.show = function () { - if (this.isHidden) { - this.isHidden = false; - this.updatePosition(); - this.getEl().show(); - } - }; - return MouseFollower; -}()); -exports.default = MouseFollower; -ListenerMixin_1.default.mixInto(MouseFollower); - - -/***/ }), -/* 245 */ -/***/ (function(module, exports, __webpack_require__) { - -Object.defineProperty(exports, "__esModule", { value: true }); -var tslib_1 = __webpack_require__(2); -var HitDragListener_1 = __webpack_require__(23); -var Interaction_1 = __webpack_require__(15); -var DateClicking = /** @class */ (function (_super) { - tslib_1.__extends(DateClicking, _super); - /* - component must implement: - - bindDateHandlerToEl - - getSafeHitFootprint - - getHitEl - */ - function DateClicking(component) { - var _this = _super.call(this, component) || this; - _this.dragListener = _this.buildDragListener(); - return _this; - } - DateClicking.prototype.end = function () { - this.dragListener.endInteraction(); - }; - DateClicking.prototype.bindToEl = function (el) { - var component = this.component; - var dragListener = this.dragListener; - component.bindDateHandlerToEl(el, 'mousedown', function (ev) { - if (!component.shouldIgnoreMouse()) { - dragListener.startInteraction(ev); - } - }); - component.bindDateHandlerToEl(el, 'touchstart', function (ev) { - if (!component.shouldIgnoreTouch()) { - dragListener.startInteraction(ev); - } - }); - }; - // Creates a listener that tracks the user's drag across day elements, for day clicking. - DateClicking.prototype.buildDragListener = function () { - var _this = this; - var component = this.component; - var dayClickHit; // null if invalid dayClick - var dragListener = new HitDragListener_1.default(component, { - scroll: this.opt('dragScroll'), - interactionStart: function () { - dayClickHit = dragListener.origHit; - }, - hitOver: function (hit, isOrig, origHit) { - // if user dragged to another cell at any point, it can no longer be a dayClick - if (!isOrig) { - dayClickHit = null; - } - }, - hitOut: function () { - dayClickHit = null; - }, - interactionEnd: function (ev, isCancelled) { - var componentFootprint; - if (!isCancelled && dayClickHit) { - componentFootprint = component.getSafeHitFootprint(dayClickHit); - if (componentFootprint) { - _this.view.triggerDayClick(componentFootprint, component.getHitEl(dayClickHit), ev); - } - } - } - }); - // because dragListener won't be called with any time delay, "dragging" will begin immediately, - // which will kill any touchmoving/scrolling. Prevent this. - dragListener.shouldCancelTouchScroll = false; - dragListener.scrollAlwaysKills = true; - return dragListener; - }; - return DateClicking; -}(Interaction_1.default)); -exports.default = DateClicking; - - -/***/ }), -/* 246 */ -/***/ (function(module, exports, __webpack_require__) { - -Object.defineProperty(exports, "__esModule", { value: true }); -var tslib_1 = __webpack_require__(2); -var util_1 = __webpack_require__(4); -var EventRenderer_1 = __webpack_require__(42); -/* -Only handles foreground segs. -Does not own rendering. Use for low-level util methods by TimeGrid. -*/ -var TimeGridEventRenderer = /** @class */ (function (_super) { - tslib_1.__extends(TimeGridEventRenderer, _super); - function TimeGridEventRenderer(timeGrid, fillRenderer) { - var _this = _super.call(this, timeGrid, fillRenderer) || this; - _this.timeGrid = timeGrid; - return _this; - } - TimeGridEventRenderer.prototype.renderFgSegs = function (segs) { - this.renderFgSegsIntoContainers(segs, this.timeGrid.fgContainerEls); - }; - // Given an array of foreground segments, render a DOM element for each, computes position, - // and attaches to the column inner-container elements. - TimeGridEventRenderer.prototype.renderFgSegsIntoContainers = function (segs, containerEls) { - var segsByCol; - var col; - segsByCol = this.timeGrid.groupSegsByCol(segs); - for (col = 0; col < this.timeGrid.colCnt; col++) { - this.updateFgSegCoords(segsByCol[col]); - } - this.timeGrid.attachSegsByCol(segsByCol, containerEls); - }; - TimeGridEventRenderer.prototype.unrenderFgSegs = function () { - if (this.fgSegs) { - this.fgSegs.forEach(function (seg) { - seg.el.remove(); - }); - } - }; - // Computes a default event time formatting string if `timeFormat` is not explicitly defined - TimeGridEventRenderer.prototype.computeEventTimeFormat = function () { - return this.opt('noMeridiemTimeFormat'); // like "6:30" (no AM/PM) - }; - // Computes a default `displayEventEnd` value if one is not expliclty defined - TimeGridEventRenderer.prototype.computeDisplayEventEnd = function () { - return true; - }; - // Renders the HTML for a single event segment's default rendering - TimeGridEventRenderer.prototype.fgSegHtml = function (seg, disableResizing) { - var view = this.view; - var calendar = view.calendar; - var componentFootprint = seg.footprint.componentFootprint; - var isAllDay = componentFootprint.isAllDay; - var eventDef = seg.footprint.eventDef; - var isDraggable = view.isEventDefDraggable(eventDef); - var isResizableFromStart = !disableResizing && seg.isStart && view.isEventDefResizableFromStart(eventDef); - var isResizableFromEnd = !disableResizing && seg.isEnd && view.isEventDefResizableFromEnd(eventDef); - var classes = this.getSegClasses(seg, isDraggable, isResizableFromStart || isResizableFromEnd); - var skinCss = util_1.cssToStr(this.getSkinCss(eventDef)); - var timeText; - var fullTimeText; // more verbose time text. for the print stylesheet - var startTimeText; // just the start time text - classes.unshift('fc-time-grid-event', 'fc-v-event'); - // if the event appears to span more than one day... - if (view.isMultiDayRange(componentFootprint.unzonedRange)) { - // Don't display time text on segments that run entirely through a day. - // That would appear as midnight-midnight and would look dumb. - // Otherwise, display the time text for the *segment's* times (like 6pm-midnight or midnight-10am) - if (seg.isStart || seg.isEnd) { - var zonedStart = calendar.msToMoment(seg.startMs); - var zonedEnd = calendar.msToMoment(seg.endMs); - timeText = this._getTimeText(zonedStart, zonedEnd, isAllDay); - fullTimeText = this._getTimeText(zonedStart, zonedEnd, isAllDay, 'LT'); - startTimeText = this._getTimeText(zonedStart, zonedEnd, isAllDay, null, false); // displayEnd=false - } - } - else { - // Display the normal time text for the *event's* times - timeText = this.getTimeText(seg.footprint); - fullTimeText = this.getTimeText(seg.footprint, 'LT'); - startTimeText = this.getTimeText(seg.footprint, null, false); // displayEnd=false - } - return '' + - '
    ' + - (timeText ? - '
    ' + - '' + util_1.htmlEscape(timeText) + '' + - '
    ' : - '') + - (eventDef.title ? - '
    ' + - util_1.htmlEscape(eventDef.title) + - '
    ' : - '') + - '
    ' + - '
    ' + - /* TODO: write CSS for this - (isResizableFromStart ? - '
    ' : - '' - ) + - */ - (isResizableFromEnd ? - '
    ' : - '') + - ''; - }; - // Given segments that are assumed to all live in the *same column*, - // compute their verical/horizontal coordinates and assign to their elements. - TimeGridEventRenderer.prototype.updateFgSegCoords = function (segs) { - this.timeGrid.computeSegVerticals(segs); // horizontals relies on this - this.computeFgSegHorizontals(segs); // compute horizontal coordinates, z-index's, and reorder the array - this.timeGrid.assignSegVerticals(segs); - this.assignFgSegHorizontals(segs); - }; - // Given an array of segments that are all in the same column, sets the backwardCoord and forwardCoord on each. - // NOTE: Also reorders the given array by date! - TimeGridEventRenderer.prototype.computeFgSegHorizontals = function (segs) { - var levels; - var level0; - var i; - this.sortEventSegs(segs); // order by certain criteria - levels = buildSlotSegLevels(segs); - computeForwardSlotSegs(levels); - if ((level0 = levels[0])) { - for (i = 0; i < level0.length; i++) { - computeSlotSegPressures(level0[i]); - } - for (i = 0; i < level0.length; i++) { - this.computeFgSegForwardBack(level0[i], 0, 0); - } - } - }; - // Calculate seg.forwardCoord and seg.backwardCoord for the segment, where both values range - // from 0 to 1. If the calendar is left-to-right, the seg.backwardCoord maps to "left" and - // seg.forwardCoord maps to "right" (via percentage). Vice-versa if the calendar is right-to-left. - // - // The segment might be part of a "series", which means consecutive segments with the same pressure - // who's width is unknown until an edge has been hit. `seriesBackwardPressure` is the number of - // segments behind this one in the current series, and `seriesBackwardCoord` is the starting - // coordinate of the first segment in the series. - TimeGridEventRenderer.prototype.computeFgSegForwardBack = function (seg, seriesBackwardPressure, seriesBackwardCoord) { - var forwardSegs = seg.forwardSegs; - var i; - if (seg.forwardCoord === undefined) { - if (!forwardSegs.length) { - // if there are no forward segments, this segment should butt up against the edge - seg.forwardCoord = 1; - } - else { - // sort highest pressure first - this.sortForwardSegs(forwardSegs); - // this segment's forwardCoord will be calculated from the backwardCoord of the - // highest-pressure forward segment. - this.computeFgSegForwardBack(forwardSegs[0], seriesBackwardPressure + 1, seriesBackwardCoord); - seg.forwardCoord = forwardSegs[0].backwardCoord; - } - // calculate the backwardCoord from the forwardCoord. consider the series - seg.backwardCoord = seg.forwardCoord - - (seg.forwardCoord - seriesBackwardCoord) / // available width for series - (seriesBackwardPressure + 1); // # of segments in the series - // use this segment's coordinates to computed the coordinates of the less-pressurized - // forward segments - for (i = 0; i < forwardSegs.length; i++) { - this.computeFgSegForwardBack(forwardSegs[i], 0, seg.forwardCoord); - } - } - }; - TimeGridEventRenderer.prototype.sortForwardSegs = function (forwardSegs) { - forwardSegs.sort(util_1.proxy(this, 'compareForwardSegs')); - }; - // A cmp function for determining which forward segment to rely on more when computing coordinates. - TimeGridEventRenderer.prototype.compareForwardSegs = function (seg1, seg2) { - // put higher-pressure first - return seg2.forwardPressure - seg1.forwardPressure || - // put segments that are closer to initial edge first (and favor ones with no coords yet) - (seg1.backwardCoord || 0) - (seg2.backwardCoord || 0) || - // do normal sorting... - this.compareEventSegs(seg1, seg2); - }; - // Given foreground event segments that have already had their position coordinates computed, - // assigns position-related CSS values to their elements. - TimeGridEventRenderer.prototype.assignFgSegHorizontals = function (segs) { - var i; - var seg; - for (i = 0; i < segs.length; i++) { - seg = segs[i]; - seg.el.css(this.generateFgSegHorizontalCss(seg)); - // if the height is short, add a className for alternate styling - if (seg.bottom - seg.top < 30) { - seg.el.addClass('fc-short'); - } - } - }; - // Generates an object with CSS properties/values that should be applied to an event segment element. - // Contains important positioning-related properties that should be applied to any event element, customized or not. - TimeGridEventRenderer.prototype.generateFgSegHorizontalCss = function (seg) { - var shouldOverlap = this.opt('slotEventOverlap'); - var backwardCoord = seg.backwardCoord; // the left side if LTR. the right side if RTL. floating-point - var forwardCoord = seg.forwardCoord; // the right side if LTR. the left side if RTL. floating-point - var props = this.timeGrid.generateSegVerticalCss(seg); // get top/bottom first - var isRTL = this.timeGrid.isRTL; - var left; // amount of space from left edge, a fraction of the total width - var right; // amount of space from right edge, a fraction of the total width - if (shouldOverlap) { - // double the width, but don't go beyond the maximum forward coordinate (1.0) - forwardCoord = Math.min(1, backwardCoord + (forwardCoord - backwardCoord) * 2); - } - if (isRTL) { - left = 1 - forwardCoord; - right = backwardCoord; - } - else { - left = backwardCoord; - right = 1 - forwardCoord; - } - props.zIndex = seg.level + 1; // convert from 0-base to 1-based - props.left = left * 100 + '%'; - props.right = right * 100 + '%'; - if (shouldOverlap && seg.forwardPressure) { - // add padding to the edge so that forward stacked events don't cover the resizer's icon - props[isRTL ? 'marginLeft' : 'marginRight'] = 10 * 2; // 10 is a guesstimate of the icon's width - } - return props; - }; - return TimeGridEventRenderer; -}(EventRenderer_1.default)); -exports.default = TimeGridEventRenderer; -// Builds an array of segments "levels". The first level will be the leftmost tier of segments if the calendar is -// left-to-right, or the rightmost if the calendar is right-to-left. Assumes the segments are already ordered by date. -function buildSlotSegLevels(segs) { - var levels = []; - var i; - var seg; - var j; - for (i = 0; i < segs.length; i++) { - seg = segs[i]; - // go through all the levels and stop on the first level where there are no collisions - for (j = 0; j < levels.length; j++) { - if (!computeSlotSegCollisions(seg, levels[j]).length) { - break; - } - } - seg.level = j; - (levels[j] || (levels[j] = [])).push(seg); - } - return levels; -} -// For every segment, figure out the other segments that are in subsequent -// levels that also occupy the same vertical space. Accumulate in seg.forwardSegs -function computeForwardSlotSegs(levels) { - var i; - var level; - var j; - var seg; - var k; - for (i = 0; i < levels.length; i++) { - level = levels[i]; - for (j = 0; j < level.length; j++) { - seg = level[j]; - seg.forwardSegs = []; - for (k = i + 1; k < levels.length; k++) { - computeSlotSegCollisions(seg, levels[k], seg.forwardSegs); - } - } - } -} -// Figure out which path forward (via seg.forwardSegs) results in the longest path until -// the furthest edge is reached. The number of segments in this path will be seg.forwardPressure -function computeSlotSegPressures(seg) { - var forwardSegs = seg.forwardSegs; - var forwardPressure = 0; - var i; - var forwardSeg; - if (seg.forwardPressure === undefined) { - for (i = 0; i < forwardSegs.length; i++) { - forwardSeg = forwardSegs[i]; - // figure out the child's maximum forward path - computeSlotSegPressures(forwardSeg); - // either use the existing maximum, or use the child's forward pressure - // plus one (for the forwardSeg itself) - forwardPressure = Math.max(forwardPressure, 1 + forwardSeg.forwardPressure); - } - seg.forwardPressure = forwardPressure; - } -} -// Find all the segments in `otherSegs` that vertically collide with `seg`. -// Append into an optionally-supplied `results` array and return. -function computeSlotSegCollisions(seg, otherSegs, results) { - if (results === void 0) { results = []; } - for (var i = 0; i < otherSegs.length; i++) { - if (isSlotSegCollision(seg, otherSegs[i])) { - results.push(otherSegs[i]); - } - } - return results; -} -// Do these segments occupy the same vertical space? -function isSlotSegCollision(seg1, seg2) { - return seg1.bottom > seg2.top && seg1.top < seg2.bottom; -} - - -/***/ }), -/* 247 */ -/***/ (function(module, exports, __webpack_require__) { - -Object.defineProperty(exports, "__esModule", { value: true }); -var tslib_1 = __webpack_require__(2); -var $ = __webpack_require__(3); -var HelperRenderer_1 = __webpack_require__(58); -var TimeGridHelperRenderer = /** @class */ (function (_super) { - tslib_1.__extends(TimeGridHelperRenderer, _super); - function TimeGridHelperRenderer() { - return _super !== null && _super.apply(this, arguments) || this; - } - TimeGridHelperRenderer.prototype.renderSegs = function (segs, sourceSeg) { - var helperNodes = []; - var i; - var seg; - var sourceEl; - // TODO: not good to call eventRenderer this way - this.eventRenderer.renderFgSegsIntoContainers(segs, this.component.helperContainerEls); - // Try to make the segment that is in the same row as sourceSeg look the same - for (i = 0; i < segs.length; i++) { - seg = segs[i]; - if (sourceSeg && sourceSeg.col === seg.col) { - sourceEl = sourceSeg.el; - seg.el.css({ - left: sourceEl.css('left'), - right: sourceEl.css('right'), - 'margin-left': sourceEl.css('margin-left'), - 'margin-right': sourceEl.css('margin-right') - }); - } - helperNodes.push(seg.el[0]); - } - return $(helperNodes); // must return the elements rendered - }; - return TimeGridHelperRenderer; -}(HelperRenderer_1.default)); -exports.default = TimeGridHelperRenderer; - - -/***/ }), -/* 248 */ -/***/ (function(module, exports, __webpack_require__) { - -Object.defineProperty(exports, "__esModule", { value: true }); -var tslib_1 = __webpack_require__(2); -var FillRenderer_1 = __webpack_require__(57); -var TimeGridFillRenderer = /** @class */ (function (_super) { - tslib_1.__extends(TimeGridFillRenderer, _super); - function TimeGridFillRenderer() { - return _super !== null && _super.apply(this, arguments) || this; - } - TimeGridFillRenderer.prototype.attachSegEls = function (type, segs) { - var timeGrid = this.component; - var containerEls; - // TODO: more efficient lookup - if (type === 'bgEvent') { - containerEls = timeGrid.bgContainerEls; - } - else if (type === 'businessHours') { - containerEls = timeGrid.businessContainerEls; - } - else if (type === 'highlight') { - containerEls = timeGrid.highlightContainerEls; - } - timeGrid.updateSegVerticals(segs); - timeGrid.attachSegsByCol(timeGrid.groupSegsByCol(segs), containerEls); - return segs.map(function (seg) { - return seg.el[0]; - }); - }; - return TimeGridFillRenderer; -}(FillRenderer_1.default)); -exports.default = TimeGridFillRenderer; - - -/***/ }), -/* 249 */ -/***/ (function(module, exports, __webpack_require__) { - -/* A rectangular panel that is absolutely positioned over other content ------------------------------------------------------------------------------------------------------------------------- -Options: - - className (string) - - content (HTML string or jQuery element set) - - parentEl - - top - - left - - right (the x coord of where the right edge should be. not a "CSS" right) - - autoHide (boolean) - - show (callback) - - hide (callback) -*/ -Object.defineProperty(exports, "__esModule", { value: true }); -var $ = __webpack_require__(3); -var util_1 = __webpack_require__(4); -var ListenerMixin_1 = __webpack_require__(7); -var Popover = /** @class */ (function () { - function Popover(options) { - this.isHidden = true; - this.margin = 10; // the space required between the popover and the edges of the scroll container - this.options = options || {}; - } - // Shows the popover on the specified position. Renders it if not already - Popover.prototype.show = function () { - if (this.isHidden) { - if (!this.el) { - this.render(); - } - this.el.show(); - this.position(); - this.isHidden = false; - this.trigger('show'); - } - }; - // Hides the popover, through CSS, but does not remove it from the DOM - Popover.prototype.hide = function () { - if (!this.isHidden) { - this.el.hide(); - this.isHidden = true; - this.trigger('hide'); - } - }; - // Creates `this.el` and renders content inside of it - Popover.prototype.render = function () { - var _this = this; - var options = this.options; - this.el = $('
    ') - .addClass(options.className || '') - .css({ - // position initially to the top left to avoid creating scrollbars - top: 0, - left: 0 - }) - .append(options.content) - .appendTo(options.parentEl); - // when a click happens on anything inside with a 'fc-close' className, hide the popover - this.el.on('click', '.fc-close', function () { - _this.hide(); - }); - if (options.autoHide) { - this.listenTo($(document), 'mousedown', this.documentMousedown); - } - }; - // Triggered when the user clicks *anywhere* in the document, for the autoHide feature - Popover.prototype.documentMousedown = function (ev) { - // only hide the popover if the click happened outside the popover - if (this.el && !$(ev.target).closest(this.el).length) { - this.hide(); - } - }; - // Hides and unregisters any handlers - Popover.prototype.removeElement = function () { - this.hide(); - if (this.el) { - this.el.remove(); - this.el = null; - } - this.stopListeningTo($(document), 'mousedown'); - }; - // Positions the popover optimally, using the top/left/right options - Popover.prototype.position = function () { - var options = this.options; - var origin = this.el.offsetParent().offset(); - var width = this.el.outerWidth(); - var height = this.el.outerHeight(); - var windowEl = $(window); - var viewportEl = util_1.getScrollParent(this.el); - var viewportTop; - var viewportLeft; - var viewportOffset; - var top; // the "position" (not "offset") values for the popover - var left; // - // compute top and left - top = options.top || 0; - if (options.left !== undefined) { - left = options.left; - } - else if (options.right !== undefined) { - left = options.right - width; // derive the left value from the right value - } - else { - left = 0; - } - if (viewportEl.is(window) || viewportEl.is(document)) { - viewportEl = windowEl; - viewportTop = 0; // the window is always at the top left - viewportLeft = 0; // (and .offset() won't work if called here) - } - else { - viewportOffset = viewportEl.offset(); - viewportTop = viewportOffset.top; - viewportLeft = viewportOffset.left; - } - // if the window is scrolled, it causes the visible area to be further down - viewportTop += windowEl.scrollTop(); - viewportLeft += windowEl.scrollLeft(); - // constrain to the view port. if constrained by two edges, give precedence to top/left - if (options.viewportConstrain !== false) { - top = Math.min(top, viewportTop + viewportEl.outerHeight() - height - this.margin); - top = Math.max(top, viewportTop + this.margin); - left = Math.min(left, viewportLeft + viewportEl.outerWidth() - width - this.margin); - left = Math.max(left, viewportLeft + this.margin); - } - this.el.css({ - top: top - origin.top, - left: left - origin.left - }); - }; - // Triggers a callback. Calls a function in the option hash of the same name. - // Arguments beyond the first `name` are forwarded on. - // TODO: better code reuse for this. Repeat code - Popover.prototype.trigger = function (name) { - if (this.options[name]) { - this.options[name].apply(this, Array.prototype.slice.call(arguments, 1)); - } - }; - return Popover; -}()); -exports.default = Popover; -ListenerMixin_1.default.mixInto(Popover); - - -/***/ }), -/* 250 */ -/***/ (function(module, exports, __webpack_require__) { - -Object.defineProperty(exports, "__esModule", { value: true }); -var tslib_1 = __webpack_require__(2); -var $ = __webpack_require__(3); -var util_1 = __webpack_require__(4); -var EventRenderer_1 = __webpack_require__(42); -/* Event-rendering methods for the DayGrid class -----------------------------------------------------------------------------------------------------------------------*/ -var DayGridEventRenderer = /** @class */ (function (_super) { - tslib_1.__extends(DayGridEventRenderer, _super); - function DayGridEventRenderer(dayGrid, fillRenderer) { - var _this = _super.call(this, dayGrid, fillRenderer) || this; - _this.dayGrid = dayGrid; - return _this; - } - DayGridEventRenderer.prototype.renderBgRanges = function (eventRanges) { - // don't render timed background events - eventRanges = $.grep(eventRanges, function (eventRange) { - return eventRange.eventDef.isAllDay(); - }); - _super.prototype.renderBgRanges.call(this, eventRanges); - }; - // Renders the given foreground event segments onto the grid - DayGridEventRenderer.prototype.renderFgSegs = function (segs) { - var rowStructs = this.rowStructs = this.renderSegRows(segs); - // append to each row's content skeleton - this.dayGrid.rowEls.each(function (i, rowNode) { - $(rowNode).find('.fc-content-skeleton > table').append(rowStructs[i].tbodyEl); - }); - }; - // Unrenders all currently rendered foreground event segments - DayGridEventRenderer.prototype.unrenderFgSegs = function () { - var rowStructs = this.rowStructs || []; - var rowStruct; - while ((rowStruct = rowStructs.pop())) { - rowStruct.tbodyEl.remove(); - } - this.rowStructs = null; - }; - // Uses the given events array to generate elements that should be appended to each row's content skeleton. - // Returns an array of rowStruct objects (see the bottom of `renderSegRow`). - // PRECONDITION: each segment shoud already have a rendered and assigned `.el` - DayGridEventRenderer.prototype.renderSegRows = function (segs) { - var rowStructs = []; - var segRows; - var row; - segRows = this.groupSegRows(segs); // group into nested arrays - // iterate each row of segment groupings - for (row = 0; row < segRows.length; row++) { - rowStructs.push(this.renderSegRow(row, segRows[row])); - } - return rowStructs; - }; - // Given a row # and an array of segments all in the same row, render a element, a skeleton that contains - // the segments. Returns object with a bunch of internal data about how the render was calculated. - // NOTE: modifies rowSegs - DayGridEventRenderer.prototype.renderSegRow = function (row, rowSegs) { - var colCnt = this.dayGrid.colCnt; - var segLevels = this.buildSegLevels(rowSegs); // group into sub-arrays of levels - var levelCnt = Math.max(1, segLevels.length); // ensure at least one level - var tbody = $(''); - var segMatrix = []; // lookup for which segments are rendered into which level+col cells - var cellMatrix = []; // lookup for all elements of the level+col matrix - var loneCellMatrix = []; // lookup for elements that only take up a single column - var i; - var levelSegs; - var col; - var tr; - var j; - var seg; - var td; - // populates empty cells from the current column (`col`) to `endCol` - function emptyCellsUntil(endCol) { - while (col < endCol) { - // try to grab a cell from the level above and extend its rowspan. otherwise, create a fresh cell - td = (loneCellMatrix[i - 1] || [])[col]; - if (td) { - td.attr('rowspan', parseInt(td.attr('rowspan') || 1, 10) + 1); - } - else { - td = $(''); - tr.append(td); - } - cellMatrix[i][col] = td; - loneCellMatrix[i][col] = td; - col++; - } - } - for (i = 0; i < levelCnt; i++) { - levelSegs = segLevels[i]; - col = 0; - tr = $(''); - segMatrix.push([]); - cellMatrix.push([]); - loneCellMatrix.push([]); - // levelCnt might be 1 even though there are no actual levels. protect against this. - // this single empty row is useful for styling. - if (levelSegs) { - for (j = 0; j < levelSegs.length; j++) { - seg = levelSegs[j]; - emptyCellsUntil(seg.leftCol); - // create a container that occupies or more columns. append the event element. - td = $('').append(seg.el); - if (seg.leftCol !== seg.rightCol) { - td.attr('colspan', seg.rightCol - seg.leftCol + 1); - } - else { - loneCellMatrix[i][col] = td; - } - while (col <= seg.rightCol) { - cellMatrix[i][col] = td; - segMatrix[i][col] = seg; - col++; - } - tr.append(td); - } - } - emptyCellsUntil(colCnt); // finish off the row - this.dayGrid.bookendCells(tr); - tbody.append(tr); - } - return { - row: row, - tbodyEl: tbody, - cellMatrix: cellMatrix, - segMatrix: segMatrix, - segLevels: segLevels, - segs: rowSegs - }; - }; - // Stacks a flat array of segments, which are all assumed to be in the same row, into subarrays of vertical levels. - // NOTE: modifies segs - DayGridEventRenderer.prototype.buildSegLevels = function (segs) { - var levels = []; - var i; - var seg; - var j; - // Give preference to elements with certain criteria, so they have - // a chance to be closer to the top. - this.sortEventSegs(segs); - for (i = 0; i < segs.length; i++) { - seg = segs[i]; - // loop through levels, starting with the topmost, until the segment doesn't collide with other segments - for (j = 0; j < levels.length; j++) { - if (!isDaySegCollision(seg, levels[j])) { - break; - } - } - // `j` now holds the desired subrow index - seg.level = j; - // create new level array if needed and append segment - (levels[j] || (levels[j] = [])).push(seg); - } - // order segments left-to-right. very important if calendar is RTL - for (j = 0; j < levels.length; j++) { - levels[j].sort(compareDaySegCols); - } - return levels; - }; - // Given a flat array of segments, return an array of sub-arrays, grouped by each segment's row - DayGridEventRenderer.prototype.groupSegRows = function (segs) { - var segRows = []; - var i; - for (i = 0; i < this.dayGrid.rowCnt; i++) { - segRows.push([]); - } - for (i = 0; i < segs.length; i++) { - segRows[segs[i].row].push(segs[i]); - } - return segRows; - }; - // Computes a default event time formatting string if `timeFormat` is not explicitly defined - DayGridEventRenderer.prototype.computeEventTimeFormat = function () { - return this.opt('extraSmallTimeFormat'); // like "6p" or "6:30p" - }; - // Computes a default `displayEventEnd` value if one is not expliclty defined - DayGridEventRenderer.prototype.computeDisplayEventEnd = function () { - return this.dayGrid.colCnt === 1; // we'll likely have space if there's only one day - }; - // Builds the HTML to be used for the default element for an individual segment - DayGridEventRenderer.prototype.fgSegHtml = function (seg, disableResizing) { - var view = this.view; - var eventDef = seg.footprint.eventDef; - var isAllDay = seg.footprint.componentFootprint.isAllDay; - var isDraggable = view.isEventDefDraggable(eventDef); - var isResizableFromStart = !disableResizing && isAllDay && - seg.isStart && view.isEventDefResizableFromStart(eventDef); - var isResizableFromEnd = !disableResizing && isAllDay && - seg.isEnd && view.isEventDefResizableFromEnd(eventDef); - var classes = this.getSegClasses(seg, isDraggable, isResizableFromStart || isResizableFromEnd); - var skinCss = util_1.cssToStr(this.getSkinCss(eventDef)); - var timeHtml = ''; - var timeText; - var titleHtml; - classes.unshift('fc-day-grid-event', 'fc-h-event'); - // Only display a timed events time if it is the starting segment - if (seg.isStart) { - timeText = this.getTimeText(seg.footprint); - if (timeText) { - timeHtml = '' + util_1.htmlEscape(timeText) + ''; - } - } - titleHtml = - '' + - (util_1.htmlEscape(eventDef.title || '') || ' ') + // we always want one line of height - ''; - return '' + - '
    ' + - (this.dayGrid.isRTL ? - titleHtml + ' ' + timeHtml : // put a natural space in between - timeHtml + ' ' + titleHtml // - ) + - '
    ' + - (isResizableFromStart ? - '
    ' : - '') + - (isResizableFromEnd ? - '
    ' : - '') + - ''; - }; - return DayGridEventRenderer; -}(EventRenderer_1.default)); -exports.default = DayGridEventRenderer; -// Computes whether two segments' columns collide. They are assumed to be in the same row. -function isDaySegCollision(seg, otherSegs) { - var i; - var otherSeg; - for (i = 0; i < otherSegs.length; i++) { - otherSeg = otherSegs[i]; - if (otherSeg.leftCol <= seg.rightCol && - otherSeg.rightCol >= seg.leftCol) { - return true; - } - } - return false; -} -// A cmp function for determining the leftmost event -function compareDaySegCols(a, b) { - return a.leftCol - b.leftCol; -} - - -/***/ }), -/* 251 */ -/***/ (function(module, exports, __webpack_require__) { - -Object.defineProperty(exports, "__esModule", { value: true }); -var tslib_1 = __webpack_require__(2); -var $ = __webpack_require__(3); -var HelperRenderer_1 = __webpack_require__(58); -var DayGridHelperRenderer = /** @class */ (function (_super) { - tslib_1.__extends(DayGridHelperRenderer, _super); - function DayGridHelperRenderer() { - return _super !== null && _super.apply(this, arguments) || this; - } - // Renders a mock "helper" event. `sourceSeg` is the associated internal segment object. It can be null. - DayGridHelperRenderer.prototype.renderSegs = function (segs, sourceSeg) { - var helperNodes = []; - var rowStructs; - // TODO: not good to call eventRenderer this way - rowStructs = this.eventRenderer.renderSegRows(segs); - // inject each new event skeleton into each associated row - this.component.rowEls.each(function (row, rowNode) { - var rowEl = $(rowNode); // the .fc-row - var skeletonEl = $('
    '); // will be absolutely positioned - var skeletonTopEl; - var skeletonTop; - // If there is an original segment, match the top position. Otherwise, put it at the row's top level - if (sourceSeg && sourceSeg.row === row) { - skeletonTop = sourceSeg.el.position().top; - } - else { - skeletonTopEl = rowEl.find('.fc-content-skeleton tbody'); - if (!skeletonTopEl.length) { - skeletonTopEl = rowEl.find('.fc-content-skeleton table'); - } - skeletonTop = skeletonTopEl.position().top; - } - skeletonEl.css('top', skeletonTop) - .find('table') - .append(rowStructs[row].tbodyEl); - rowEl.append(skeletonEl); - helperNodes.push(skeletonEl[0]); - }); - return $(helperNodes); // must return the elements rendered - }; - return DayGridHelperRenderer; -}(HelperRenderer_1.default)); -exports.default = DayGridHelperRenderer; - - -/***/ }), -/* 252 */ -/***/ (function(module, exports, __webpack_require__) { - -Object.defineProperty(exports, "__esModule", { value: true }); -var tslib_1 = __webpack_require__(2); -var $ = __webpack_require__(3); -var FillRenderer_1 = __webpack_require__(57); -var DayGridFillRenderer = /** @class */ (function (_super) { - tslib_1.__extends(DayGridFillRenderer, _super); - function DayGridFillRenderer() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.fillSegTag = 'td'; // override the default tag name - return _this; - } - DayGridFillRenderer.prototype.attachSegEls = function (type, segs) { - var nodes = []; - var i; - var seg; - var skeletonEl; - for (i = 0; i < segs.length; i++) { - seg = segs[i]; - skeletonEl = this.renderFillRow(type, seg); - this.component.rowEls.eq(seg.row).append(skeletonEl); - nodes.push(skeletonEl[0]); - } - return nodes; - }; - // Generates the HTML needed for one row of a fill. Requires the seg's el to be rendered. - DayGridFillRenderer.prototype.renderFillRow = function (type, seg) { - var colCnt = this.component.colCnt; - var startCol = seg.leftCol; - var endCol = seg.rightCol + 1; - var className; - var skeletonEl; - var trEl; - if (type === 'businessHours') { - className = 'bgevent'; - } - else { - className = type.toLowerCase(); - } - skeletonEl = $('
    ' + - '
    ' + - '
    '); - trEl = skeletonEl.find('tr'); - if (startCol > 0) { - trEl.append(''); - } - trEl.append(seg.el.attr('colspan', endCol - startCol)); - if (endCol < colCnt) { - trEl.append(''); - } - this.component.bookendCells(trEl); - return skeletonEl; - }; - return DayGridFillRenderer; -}(FillRenderer_1.default)); -exports.default = DayGridFillRenderer; - - -/***/ }), -/* 253 */ -/***/ (function(module, exports, __webpack_require__) { - -Object.defineProperty(exports, "__esModule", { value: true }); -var tslib_1 = __webpack_require__(2); -var BasicViewDateProfileGenerator_1 = __webpack_require__(228); -var UnzonedRange_1 = __webpack_require__(5); -var MonthViewDateProfileGenerator = /** @class */ (function (_super) { - tslib_1.__extends(MonthViewDateProfileGenerator, _super); - function MonthViewDateProfileGenerator() { - return _super !== null && _super.apply(this, arguments) || this; - } - // Computes the date range that will be rendered. - MonthViewDateProfileGenerator.prototype.buildRenderRange = function (currentUnzonedRange, currentRangeUnit, isRangeAllDay) { - var renderUnzonedRange = _super.prototype.buildRenderRange.call(this, currentUnzonedRange, currentRangeUnit, isRangeAllDay); - var start = this.msToUtcMoment(renderUnzonedRange.startMs, isRangeAllDay); - var end = this.msToUtcMoment(renderUnzonedRange.endMs, isRangeAllDay); - var rowCnt; - // ensure 6 weeks - if (this.opt('fixedWeekCount')) { - rowCnt = Math.ceil(// could be partial weeks due to hiddenDays - end.diff(start, 'weeks', true) // dontRound=true - ); - end.add(6 - rowCnt, 'weeks'); - } - return new UnzonedRange_1.default(start, end); - }; - return MonthViewDateProfileGenerator; -}(BasicViewDateProfileGenerator_1.default)); -exports.default = MonthViewDateProfileGenerator; - - -/***/ }), -/* 254 */ -/***/ (function(module, exports, __webpack_require__) { - -Object.defineProperty(exports, "__esModule", { value: true }); -var tslib_1 = __webpack_require__(2); -var util_1 = __webpack_require__(4); -var EventRenderer_1 = __webpack_require__(42); -var ListEventRenderer = /** @class */ (function (_super) { - tslib_1.__extends(ListEventRenderer, _super); - function ListEventRenderer() { - return _super !== null && _super.apply(this, arguments) || this; - } - ListEventRenderer.prototype.renderFgSegs = function (segs) { - if (!segs.length) { - this.component.renderEmptyMessage(); - } - else { - this.component.renderSegList(segs); - } - }; - // generates the HTML for a single event row - ListEventRenderer.prototype.fgSegHtml = function (seg) { - var view = this.view; - var calendar = view.calendar; - var theme = calendar.theme; - var eventFootprint = seg.footprint; - var eventDef = eventFootprint.eventDef; - var componentFootprint = eventFootprint.componentFootprint; - var url = eventDef.url; - var classes = ['fc-list-item'].concat(this.getClasses(eventDef)); - var bgColor = this.getBgColor(eventDef); - var timeHtml; - if (componentFootprint.isAllDay) { - timeHtml = view.getAllDayHtml(); - } - else if (view.isMultiDayRange(componentFootprint.unzonedRange)) { - if (seg.isStart || seg.isEnd) { - timeHtml = util_1.htmlEscape(this._getTimeText(calendar.msToMoment(seg.startMs), calendar.msToMoment(seg.endMs), componentFootprint.isAllDay)); - } - else { - timeHtml = view.getAllDayHtml(); - } - } - else { - // Display the normal time text for the *event's* times - timeHtml = util_1.htmlEscape(this.getTimeText(eventFootprint)); - } - if (url) { - classes.push('fc-has-url'); - } - return '' + - (this.displayEventTime ? - '' + - (timeHtml || '') + - '' : - '') + - '' + - '' + - '' + - '' + - '' + - util_1.htmlEscape(eventDef.title || '') + - '' + - '' + - ''; - }; - // like "4:00am" - ListEventRenderer.prototype.computeEventTimeFormat = function () { - return this.opt('mediumTimeFormat'); - }; - return ListEventRenderer; -}(EventRenderer_1.default)); -exports.default = ListEventRenderer; - - -/***/ }), -/* 255 */ -/***/ (function(module, exports, __webpack_require__) { - -Object.defineProperty(exports, "__esModule", { value: true }); -var tslib_1 = __webpack_require__(2); -var $ = __webpack_require__(3); -var EventPointing_1 = __webpack_require__(59); -var ListEventPointing = /** @class */ (function (_super) { - tslib_1.__extends(ListEventPointing, _super); - function ListEventPointing() { - return _super !== null && _super.apply(this, arguments) || this; - } - // for events with a url, the whole should be clickable, - // but it's impossible to wrap with an tag. simulate this. - ListEventPointing.prototype.handleClick = function (seg, ev) { - var url; - _super.prototype.handleClick.call(this, seg, ev); // might prevent the default action - // not clicking on or within an with an href - if (!$(ev.target).closest('a[href]').length) { - url = seg.footprint.eventDef.url; - if (url && !ev.isDefaultPrevented()) { - window.location.href = url; // simulate link click - } - } - }; - return ListEventPointing; -}(EventPointing_1.default)); -exports.default = ListEventPointing; - - -/***/ }), -/* 256 */ -/***/ (function(module, exports, __webpack_require__) { - -Object.defineProperty(exports, "__esModule", { value: true }); -var EventSourceParser_1 = __webpack_require__(38); -var ArrayEventSource_1 = __webpack_require__(52); -var FuncEventSource_1 = __webpack_require__(215); -var JsonFeedEventSource_1 = __webpack_require__(216); -EventSourceParser_1.default.registerClass(ArrayEventSource_1.default); -EventSourceParser_1.default.registerClass(FuncEventSource_1.default); -EventSourceParser_1.default.registerClass(JsonFeedEventSource_1.default); - - -/***/ }), -/* 257 */ -/***/ (function(module, exports, __webpack_require__) { - -Object.defineProperty(exports, "__esModule", { value: true }); -var ThemeRegistry_1 = __webpack_require__(51); -var StandardTheme_1 = __webpack_require__(213); -var JqueryUiTheme_1 = __webpack_require__(214); -var Bootstrap3Theme_1 = __webpack_require__(258); -var Bootstrap4Theme_1 = __webpack_require__(259); -ThemeRegistry_1.defineThemeSystem('standard', StandardTheme_1.default); -ThemeRegistry_1.defineThemeSystem('jquery-ui', JqueryUiTheme_1.default); -ThemeRegistry_1.defineThemeSystem('bootstrap3', Bootstrap3Theme_1.default); -ThemeRegistry_1.defineThemeSystem('bootstrap4', Bootstrap4Theme_1.default); - - -/***/ }), -/* 258 */ -/***/ (function(module, exports, __webpack_require__) { - -Object.defineProperty(exports, "__esModule", { value: true }); -var tslib_1 = __webpack_require__(2); -var Theme_1 = __webpack_require__(19); -var Bootstrap3Theme = /** @class */ (function (_super) { - tslib_1.__extends(Bootstrap3Theme, _super); - function Bootstrap3Theme() { - return _super !== null && _super.apply(this, arguments) || this; - } - return Bootstrap3Theme; -}(Theme_1.default)); -exports.default = Bootstrap3Theme; -Bootstrap3Theme.prototype.classes = { - widget: 'fc-bootstrap3', - tableGrid: 'table-bordered', - tableList: 'table', - tableListHeading: 'active', - buttonGroup: 'btn-group', - button: 'btn btn-default', - stateActive: 'active', - stateDisabled: 'disabled', - today: 'alert alert-info', - popover: 'panel panel-default', - popoverHeader: 'panel-heading', - popoverContent: 'panel-body', - // day grid - // for left/right border color when border is inset from edges (all-day in agenda view) - // avoid `panel` class b/c don't want margins/radius. only border color. - headerRow: 'panel-default', - dayRow: 'panel-default', - // list view - listView: 'panel panel-default' -}; -Bootstrap3Theme.prototype.baseIconClass = 'glyphicon'; -Bootstrap3Theme.prototype.iconClasses = { - close: 'glyphicon-remove', - prev: 'glyphicon-chevron-left', - next: 'glyphicon-chevron-right', - prevYear: 'glyphicon-backward', - nextYear: 'glyphicon-forward' -}; -Bootstrap3Theme.prototype.iconOverrideOption = 'bootstrapGlyphicons'; -Bootstrap3Theme.prototype.iconOverrideCustomButtonOption = 'bootstrapGlyphicon'; -Bootstrap3Theme.prototype.iconOverridePrefix = 'glyphicon-'; - - -/***/ }), -/* 259 */ -/***/ (function(module, exports, __webpack_require__) { - -Object.defineProperty(exports, "__esModule", { value: true }); -var tslib_1 = __webpack_require__(2); -var Theme_1 = __webpack_require__(19); -var Bootstrap4Theme = /** @class */ (function (_super) { - tslib_1.__extends(Bootstrap4Theme, _super); - function Bootstrap4Theme() { - return _super !== null && _super.apply(this, arguments) || this; - } - return Bootstrap4Theme; -}(Theme_1.default)); -exports.default = Bootstrap4Theme; -Bootstrap4Theme.prototype.classes = { - widget: 'fc-bootstrap4', - tableGrid: 'table-bordered', - tableList: 'table', - tableListHeading: 'table-active', - buttonGroup: 'btn-group', - button: 'btn btn-primary', - stateActive: 'active', - stateDisabled: 'disabled', - today: 'alert alert-info', - popover: 'card card-primary', - popoverHeader: 'card-header', - popoverContent: 'card-body', - // day grid - // for left/right border color when border is inset from edges (all-day in agenda view) - // avoid `table` class b/c don't want margins/padding/structure. only border color. - headerRow: 'table-bordered', - dayRow: 'table-bordered', - // list view - listView: 'card card-primary' -}; -Bootstrap4Theme.prototype.baseIconClass = 'fa'; -Bootstrap4Theme.prototype.iconClasses = { - close: 'fa-times', - prev: 'fa-chevron-left', - next: 'fa-chevron-right', - prevYear: 'fa-angle-double-left', - nextYear: 'fa-angle-double-right' -}; -Bootstrap4Theme.prototype.iconOverrideOption = 'bootstrapFontAwesome'; -Bootstrap4Theme.prototype.iconOverrideCustomButtonOption = 'bootstrapFontAwesome'; -Bootstrap4Theme.prototype.iconOverridePrefix = 'fa-'; - - -/***/ }), -/* 260 */ -/***/ (function(module, exports, __webpack_require__) { - -Object.defineProperty(exports, "__esModule", { value: true }); -var ViewRegistry_1 = __webpack_require__(22); -var BasicView_1 = __webpack_require__(62); -var MonthView_1 = __webpack_require__(229); -ViewRegistry_1.defineView('basic', { - 'class': BasicView_1.default -}); -ViewRegistry_1.defineView('basicDay', { - type: 'basic', - duration: { days: 1 } -}); -ViewRegistry_1.defineView('basicWeek', { - type: 'basic', - duration: { weeks: 1 } -}); -ViewRegistry_1.defineView('month', { - 'class': MonthView_1.default, - duration: { months: 1 }, - defaults: { - fixedWeekCount: true - } -}); - - -/***/ }), -/* 261 */ -/***/ (function(module, exports, __webpack_require__) { - -Object.defineProperty(exports, "__esModule", { value: true }); -var ViewRegistry_1 = __webpack_require__(22); -var AgendaView_1 = __webpack_require__(226); -ViewRegistry_1.defineView('agenda', { - 'class': AgendaView_1.default, - defaults: { - allDaySlot: true, - slotDuration: '00:30:00', - slotEventOverlap: true // a bad name. confused with overlap/constraint system - } -}); -ViewRegistry_1.defineView('agendaDay', { - type: 'agenda', - duration: { days: 1 } -}); -ViewRegistry_1.defineView('agendaWeek', { - type: 'agenda', - duration: { weeks: 1 } -}); - - -/***/ }), -/* 262 */ -/***/ (function(module, exports, __webpack_require__) { - -Object.defineProperty(exports, "__esModule", { value: true }); -var ViewRegistry_1 = __webpack_require__(22); -var ListView_1 = __webpack_require__(230); -ViewRegistry_1.defineView('list', { - 'class': ListView_1.default, - buttonTextKey: 'list', - defaults: { - buttonText: 'list', - listDayFormat: 'LL', - noEventsMessage: 'No events to display' - } -}); -ViewRegistry_1.defineView('listDay', { - type: 'list', - duration: { days: 1 }, - defaults: { - listDayFormat: 'dddd' // day-of-week is all we need. full date is probably in header - } -}); -ViewRegistry_1.defineView('listWeek', { - type: 'list', - duration: { weeks: 1 }, - defaults: { - listDayFormat: 'dddd', - listDayAltFormat: 'LL' - } -}); -ViewRegistry_1.defineView('listMonth', { - type: 'list', - duration: { month: 1 }, - defaults: { - listDayAltFormat: 'dddd' // day-of-week is nice-to-have - } -}); -ViewRegistry_1.defineView('listYear', { - type: 'list', - duration: { year: 1 }, - defaults: { - listDayAltFormat: 'dddd' // day-of-week is nice-to-have - } -}); - - -/***/ }), -/* 263 */ -/***/ (function(module, exports) { - -Object.defineProperty(exports, "__esModule", { value: true }); - - -/***/ }) -/******/ ]); -}); - -/***/ }), - -/***/ "./node_modules/fullcalendar/dist/fullcalendar.min.css": -/*!*************************************************************!*\ - !*** ./node_modules/fullcalendar/dist/fullcalendar.min.css ***! - \*************************************************************/ -/*! dynamic exports provided */ -/*! all exports used */ -/***/ (function(module, exports) { - -// removed by extract-text-webpack-plugin - -/***/ }), - -/***/ "./node_modules/fullcalendar/dist/gcal.min.js": -/*!****************************************************!*\ - !*** ./node_modules/fullcalendar/dist/gcal.min.js ***! - \****************************************************/ -/*! dynamic exports provided */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -/*! - * FullCalendar v3.9.0 - * Docs & License: https://fullcalendar.io/ - * (c) 2018 Adam Shaw - */ -!function(e,t){ true?module.exports=t(__webpack_require__(/*! fullcalendar */ "./node_modules/fullcalendar/dist/fullcalendar.js"),__webpack_require__(/*! jquery */ "./node_modules/jquery/dist/jquery.js")):"function"==typeof define&&define.amd?define(["fullcalendar","jquery"],t):"object"==typeof exports?t(require("fullcalendar"),require("jquery")):t(e.FullCalendar,e.jQuery)}("undefined"!=typeof self?self:this,function(e,t){return function(e){function t(o){if(r[o])return r[o].exports;var n=r[o]={i:o,l:!1,exports:{}};return e[o].call(n.exports,n,n.exports,t),n.l=!0,n.exports}var r={};return t.m=e,t.c=r,t.d=function(e,r,o){t.o(e,r)||Object.defineProperty(e,r,{configurable:!1,enumerable:!0,get:o})},t.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(r,"a",r),r},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="",t(t.s=266)}({1:function(t,r){t.exports=e},2:function(e,t){var r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])};t.__extends=function(e,t){function o(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(o.prototype=t.prototype,new o)}},266:function(e,t,r){Object.defineProperty(t,"__esModule",{value:!0});var o=r(1),n=r(267);o.EventSourceParser.registerClass(n.default),o.GcalEventSource=n.default},267:function(e,t,r){function o(e){var t;return/^[^\/]+@([^\/\.]+\.)*(google|googlemail|gmail)\.com$/.test(e)?e:(t=/^https:\/\/www.googleapis.com\/calendar\/v3\/calendars\/([^\/]*)/.exec(e))||(t=/^https?:\/\/www.google.com\/calendar\/feeds\/([^\/]*)/.exec(e))?decodeURIComponent(t[1]):void 0}function n(e,t){return e.replace(/(\?.*?)?(#|$)/,function(e,r,o){return(r?r+"&":"?")+t+o})}Object.defineProperty(t,"__esModule",{value:!0});var a=r(2),l=r(3),i=r(1),u=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return a.__extends(t,e),t.parse=function(e,t){var r;return"object"==typeof e?r=e:"string"==typeof e&&(r={url:e}),!!r&&i.EventSource.parse.call(this,r,t)},t.prototype.fetch=function(e,t,r){var o=this,n=this.buildUrl(),a=this.buildRequestParams(e,t,r),u=this.ajaxSettings||{},c=u.success;return a?(this.calendar.pushLoading(),i.Promise.construct(function(e,t){l.ajax(l.extend({},i.JsonFeedEventSource.AJAX_DEFAULTS,u,{url:n,data:a,success:function(r,n,u){var s,p;o.calendar.popLoading(),r.error?(o.reportError("Google Calendar API: "+r.error.message,r.error.errors),t()):r.items&&(s=o.gcalItemsToRawEventDefs(r.items,a.timeZone),p=i.applyAll(c,o,[r,n,u]),l.isArray(p)&&(s=p),e(o.parseEventDefs(s)))},error:function(e,r,n){o.reportError("Google Calendar network failure: "+r,[e,n]),o.calendar.popLoading(),t()}}))})):i.Promise.reject()},t.prototype.gcalItemsToRawEventDefs=function(e,t){var r=this;return e.map(function(e){return r.gcalItemToRawEventDef(e,t)})},t.prototype.gcalItemToRawEventDef=function(e,t){var r=e.htmlLink||null;return r&&t&&(r=n(r,"ctz="+t)),{id:e.id,title:e.summary,start:e.start.dateTime||e.start.date,end:e.end.dateTime||e.end.date,url:r,location:e.location,description:e.description}},t.prototype.buildUrl=function(){return t.API_BASE+"/"+encodeURIComponent(this.googleCalendarId)+"/events?callback=?"},t.prototype.buildRequestParams=function(e,t,r){var o,n=this.googleCalendarApiKey||this.calendar.opt("googleCalendarApiKey");return n?(e.hasZone()||(e=e.clone().utc().add(-1,"day")),t.hasZone()||(t=t.clone().utc().add(1,"day")),o=l.extend(this.ajaxSettings.data||{},{key:n,timeMin:e.format(),timeMax:t.format(),singleEvents:!0,maxResults:9999}),r&&"local"!==r&&(o.timeZone=r.replace(" ","_")),o):(this.reportError("Specify a googleCalendarApiKey. See http://fullcalendar.io/docs/google_calendar/"),null)},t.prototype.reportError=function(e,t){var r=this.calendar,o=r.opt("googleCalendarError"),n=t||[{message:e}];this.googleCalendarError&&this.googleCalendarError.apply(r,n),o&&o.apply(r,n),i.warn.apply(null,[e].concat(t||[]))},t.prototype.getPrimitive=function(){return this.googleCalendarId},t.prototype.applyManualStandardProps=function(e){var t=i.EventSource.prototype.applyManualStandardProps.apply(this,arguments),r=e.googleCalendarId;return null==r&&e.url&&(r=o(e.url)),null!=r&&(this.googleCalendarId=r,t)},t.prototype.applyMiscProps=function(e){this.ajaxSettings||(this.ajaxSettings={}),l.extend(this.ajaxSettings,e)},t.API_BASE="https://www.googleapis.com/calendar/v3/calendars",t}(i.EventSource);t.default=u,u.defineStandardProps({url:!1,googleCalendarId:!1,googleCalendarApiKey:!0,googleCalendarError:!0})},3:function(e,r){e.exports=t}})}); - -/***/ }), - -/***/ "./node_modules/fullcalendar/dist/locale-all.js": -/*!******************************************************!*\ - !*** ./node_modules/fullcalendar/dist/locale-all.js ***! - \******************************************************/ -/*! dynamic exports provided */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -/* WEBPACK VAR INJECTION */(function(__webpack_provided_window_dot_jQuery) {!function(e,a){ true?module.exports=a(__webpack_require__(/*! moment */ "./node_modules/moment/moment.js"),__webpack_require__(/*! fullcalendar */ "./node_modules/fullcalendar/dist/fullcalendar.js")):"function"==typeof define&&define.amd?define(["moment","fullcalendar"],a):"object"==typeof exports?a(require("moment"),require("fullcalendar")):a(e.moment,e.FullCalendar)}("undefined"!=typeof self?self:this,function(e,a){return function(e){function a(n){if(t[n])return t[n].exports;var r=t[n]={i:n,l:!1,exports:{}};return e[n].call(r.exports,r,r.exports,a),r.l=!0,r.exports}var t={};return a.m=e,a.c=t,a.d=function(e,t,n){a.o(e,t)||Object.defineProperty(e,t,{configurable:!1,enumerable:!0,get:n})},a.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return a.d(t,"a",t),t},a.o=function(e,a){return Object.prototype.hasOwnProperty.call(e,a)},a.p="",a(a.s=434)}([function(a,t){a.exports=e},function(e,t){e.exports=a},,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,function(e,a,t){Object.defineProperty(a,"__esModule",{value:!0}),t(66);var n=t(1);n.datepickerLocale("af","af",{closeText:"Selekteer",prevText:"Vorige",nextText:"Volgende",currentText:"Vandag",monthNames:["Januarie","Februarie","Maart","April","Mei","Junie","Julie","Augustus","September","Oktober","November","Desember"],monthNamesShort:["Jan","Feb","Mrt","Apr","Mei","Jun","Jul","Aug","Sep","Okt","Nov","Des"],dayNames:["Sondag","Maandag","Dinsdag","Woensdag","Donderdag","Vrydag","Saterdag"],dayNamesShort:["Son","Maa","Din","Woe","Don","Vry","Sat"],dayNamesMin:["So","Ma","Di","Wo","Do","Vr","Sa"],weekHeader:"Wk",dateFormat:"dd/mm/yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),n.locale("af",{buttonText:{year:"Jaar",month:"Maand",week:"Week",day:"Dag",list:"Agenda"},allDayHtml:"Heeldag",eventLimitText:"Addisionele",noEventsMessage:"Daar is geen gebeurtenisse nie"})},function(e,a,t){!function(e,a){a(t(0))}(0,function(e){return e.defineLocale("af",{months:"Januarie_Februarie_Maart_April_Mei_Junie_Julie_Augustus_September_Oktober_November_Desember".split("_"),monthsShort:"Jan_Feb_Mrt_Apr_Mei_Jun_Jul_Aug_Sep_Okt_Nov_Des".split("_"),weekdays:"Sondag_Maandag_Dinsdag_Woensdag_Donderdag_Vrydag_Saterdag".split("_"),weekdaysShort:"Son_Maa_Din_Woe_Don_Vry_Sat".split("_"),weekdaysMin:"So_Ma_Di_Wo_Do_Vr_Sa".split("_"),meridiemParse:/vm|nm/i,isPM:function(e){return/^nm$/i.test(e)},meridiem:function(e,a,t){return e<12?t?"vm":"VM":t?"nm":"NM"},longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Vandag om] LT",nextDay:"[Môre om] LT",nextWeek:"dddd [om] LT",lastDay:"[Gister om] LT",lastWeek:"[Laas] dddd [om] LT",sameElse:"L"},relativeTime:{future:"oor %s",past:"%s gelede",s:"'n paar sekondes",ss:"%d sekondes",m:"'n minuut",mm:"%d minute",h:"'n uur",hh:"%d ure",d:"'n dag",dd:"%d dae",M:"'n maand",MM:"%d maande",y:"'n jaar",yy:"%d jaar"},dayOfMonthOrdinalParse:/\d{1,2}(ste|de)/,ordinal:function(e){return e+(1===e||8===e||e>=20?"ste":"de")},week:{dow:1,doy:4}})})},function(e,a,t){Object.defineProperty(a,"__esModule",{value:!0}),t(68);var n=t(1);n.datepickerLocale("ar-dz","ar-DZ",{closeText:"إغلاق",prevText:"<السابق",nextText:"التالي>",currentText:"اليوم",monthNames:["جانفي","فيفري","مارس","أفريل","ماي","جوان","جويلية","أوت","سبتمبر","أكتوبر","نوفمبر","ديسمبر"],monthNamesShort:["1","2","3","4","5","6","7","8","9","10","11","12"],dayNames:["الأحد","الاثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"],dayNamesShort:["الأحد","الاثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"],dayNamesMin:["ح","ن","ث","ر","خ","ج","س"],weekHeader:"أسبوع",dateFormat:"dd/mm/yy",firstDay:6,isRTL:!0,showMonthAfterYear:!1,yearSuffix:""}),n.locale("ar-dz",{buttonText:{month:"شهر",week:"أسبوع",day:"يوم",list:"أجندة"},allDayText:"اليوم كله",eventLimitText:"أخرى",noEventsMessage:"أي أحداث لعرض"})},function(e,a,t){!function(e,a){a(t(0))}(0,function(e){return e.defineLocale("ar-dz",{months:"جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),monthsShort:"جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"احد_اثنين_ثلاثاء_اربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"أح_إث_ثلا_أر_خم_جم_سب".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[اليوم على الساعة] LT",nextDay:"[غدا على الساعة] LT",nextWeek:"dddd [على الساعة] LT",lastDay:"[أمس على الساعة] LT",lastWeek:"dddd [على الساعة] LT",sameElse:"L"},relativeTime:{future:"في %s",past:"منذ %s",s:"ثوان",ss:"%d ثانية",m:"دقيقة",mm:"%d دقائق",h:"ساعة",hh:"%d ساعات",d:"يوم",dd:"%d أيام",M:"شهر",MM:"%d أشهر",y:"سنة",yy:"%d سنوات"},week:{dow:0,doy:4}})})},function(e,a,t){Object.defineProperty(a,"__esModule",{value:!0}),t(70);var n=t(1);n.datepickerLocale("ar-kw","ar",{closeText:"إغلاق",prevText:"<السابق",nextText:"التالي>",currentText:"اليوم",monthNames:["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر"],monthNamesShort:["1","2","3","4","5","6","7","8","9","10","11","12"],dayNames:["الأحد","الاثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"],dayNamesShort:["أحد","اثنين","ثلاثاء","أربعاء","خميس","جمعة","سبت"],dayNamesMin:["ح","ن","ث","ر","خ","ج","س"],weekHeader:"أسبوع",dateFormat:"dd/mm/yy",firstDay:0,isRTL:!0,showMonthAfterYear:!1,yearSuffix:""}),n.locale("ar-kw",{buttonText:{month:"شهر",week:"أسبوع",day:"يوم",list:"أجندة"},allDayText:"اليوم كله",eventLimitText:"أخرى",noEventsMessage:"أي أحداث لعرض"})},function(e,a,t){!function(e,a){a(t(0))}(0,function(e){return e.defineLocale("ar-kw",{months:"يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر".split("_"),monthsShort:"يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر".split("_"),weekdays:"الأحد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"احد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[اليوم على الساعة] LT",nextDay:"[غدا على الساعة] LT",nextWeek:"dddd [على الساعة] LT",lastDay:"[أمس على الساعة] LT",lastWeek:"dddd [على الساعة] LT",sameElse:"L"},relativeTime:{future:"في %s",past:"منذ %s",s:"ثوان",ss:"%d ثانية",m:"دقيقة",mm:"%d دقائق",h:"ساعة",hh:"%d ساعات",d:"يوم",dd:"%d أيام",M:"شهر",MM:"%d أشهر",y:"سنة",yy:"%d سنوات"},week:{dow:0,doy:12}})})},function(e,a,t){Object.defineProperty(a,"__esModule",{value:!0}),t(72);var n=t(1);n.datepickerLocale("ar-ly","ar",{closeText:"إغلاق",prevText:"<السابق",nextText:"التالي>",currentText:"اليوم",monthNames:["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر"],monthNamesShort:["1","2","3","4","5","6","7","8","9","10","11","12"],dayNames:["الأحد","الاثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"],dayNamesShort:["أحد","اثنين","ثلاثاء","أربعاء","خميس","جمعة","سبت"],dayNamesMin:["ح","ن","ث","ر","خ","ج","س"],weekHeader:"أسبوع",dateFormat:"dd/mm/yy",firstDay:0,isRTL:!0,showMonthAfterYear:!1,yearSuffix:""}),n.locale("ar-ly",{buttonText:{month:"شهر",week:"أسبوع",day:"يوم",list:"أجندة"},allDayText:"اليوم كله",eventLimitText:"أخرى",noEventsMessage:"أي أحداث لعرض"})},function(e,a,t){!function(e,a){a(t(0))}(0,function(e){var a={1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9",0:"0"},t=function(e){return 0===e?0:1===e?1:2===e?2:e%100>=3&&e%100<=10?3:e%100>=11?4:5},n={s:["أقل من ثانية","ثانية واحدة",["ثانيتان","ثانيتين"],"%d ثوان","%d ثانية","%d ثانية"],m:["أقل من دقيقة","دقيقة واحدة",["دقيقتان","دقيقتين"],"%d دقائق","%d دقيقة","%d دقيقة"],h:["أقل من ساعة","ساعة واحدة",["ساعتان","ساعتين"],"%d ساعات","%d ساعة","%d ساعة"],d:["أقل من يوم","يوم واحد",["يومان","يومين"],"%d أيام","%d يومًا","%d يوم"],M:["أقل من شهر","شهر واحد",["شهران","شهرين"],"%d أشهر","%d شهرا","%d شهر"],y:["أقل من عام","عام واحد",["عامان","عامين"],"%d أعوام","%d عامًا","%d عام"]},r=function(e){return function(a,r,s,d){var i=t(a),o=n[e][t(a)];return 2===i&&(o=o[r?0:1]),o.replace(/%d/i,a)}},s=["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر"];return e.defineLocale("ar-ly",{months:s,monthsShort:s,weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"D/‏M/‏YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/ص|م/,isPM:function(e){return"م"===e},meridiem:function(e,a,t){return e<12?"ص":"م"},calendar:{sameDay:"[اليوم عند الساعة] LT",nextDay:"[غدًا عند الساعة] LT",nextWeek:"dddd [عند الساعة] LT",lastDay:"[أمس عند الساعة] LT",lastWeek:"dddd [عند الساعة] LT",sameElse:"L"},relativeTime:{future:"بعد %s",past:"منذ %s",s:r("s"),ss:r("s"),m:r("m"),mm:r("m"),h:r("h"),hh:r("h"),d:r("d"),dd:r("d"),M:r("M"),MM:r("M"),y:r("y"),yy:r("y")},preparse:function(e){return e.replace(/،/g,",")},postformat:function(e){return e.replace(/\d/g,function(e){return a[e]}).replace(/,/g,"،")},week:{dow:6,doy:12}})})},function(e,a,t){Object.defineProperty(a,"__esModule",{value:!0}),t(74);var n=t(1);n.datepickerLocale("ar-ma","ar",{closeText:"إغلاق",prevText:"<السابق",nextText:"التالي>",currentText:"اليوم",monthNames:["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر"],monthNamesShort:["1","2","3","4","5","6","7","8","9","10","11","12"],dayNames:["الأحد","الاثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"],dayNamesShort:["أحد","اثنين","ثلاثاء","أربعاء","خميس","جمعة","سبت"],dayNamesMin:["ح","ن","ث","ر","خ","ج","س"],weekHeader:"أسبوع",dateFormat:"dd/mm/yy",firstDay:0,isRTL:!0,showMonthAfterYear:!1,yearSuffix:""}),n.locale("ar-ma",{buttonText:{month:"شهر",week:"أسبوع",day:"يوم",list:"أجندة"},allDayText:"اليوم كله",eventLimitText:"أخرى",noEventsMessage:"أي أحداث لعرض"})},function(e,a,t){!function(e,a){a(t(0))}(0,function(e){return e.defineLocale("ar-ma",{months:"يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر".split("_"),monthsShort:"يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر".split("_"),weekdays:"الأحد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"احد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[اليوم على الساعة] LT",nextDay:"[غدا على الساعة] LT",nextWeek:"dddd [على الساعة] LT",lastDay:"[أمس على الساعة] LT",lastWeek:"dddd [على الساعة] LT",sameElse:"L"},relativeTime:{future:"في %s",past:"منذ %s",s:"ثوان",ss:"%d ثانية",m:"دقيقة",mm:"%d دقائق",h:"ساعة",hh:"%d ساعات",d:"يوم",dd:"%d أيام",M:"شهر",MM:"%d أشهر",y:"سنة",yy:"%d سنوات"},week:{dow:6,doy:12}})})},function(e,a,t){Object.defineProperty(a,"__esModule",{value:!0}),t(76);var n=t(1);n.datepickerLocale("ar-sa","ar",{closeText:"إغلاق",prevText:"<السابق",nextText:"التالي>",currentText:"اليوم",monthNames:["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر"],monthNamesShort:["1","2","3","4","5","6","7","8","9","10","11","12"],dayNames:["الأحد","الاثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"],dayNamesShort:["أحد","اثنين","ثلاثاء","أربعاء","خميس","جمعة","سبت"],dayNamesMin:["ح","ن","ث","ر","خ","ج","س"],weekHeader:"أسبوع",dateFormat:"dd/mm/yy",firstDay:0,isRTL:!0,showMonthAfterYear:!1,yearSuffix:""}),n.locale("ar-sa",{buttonText:{month:"شهر",week:"أسبوع",day:"يوم",list:"أجندة"},allDayText:"اليوم كله",eventLimitText:"أخرى",noEventsMessage:"أي أحداث لعرض"})},function(e,a,t){!function(e,a){a(t(0))}(0,function(e){var a={1:"١",2:"٢",3:"٣",4:"٤",5:"٥",6:"٦",7:"٧",8:"٨",9:"٩",0:"٠"},t={"١":"1","٢":"2","٣":"3","٤":"4","٥":"5","٦":"6","٧":"7","٨":"8","٩":"9","٠":"0"};return e.defineLocale("ar-sa",{months:"يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),monthsShort:"يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/ص|م/,isPM:function(e){return"م"===e},meridiem:function(e,a,t){return e<12?"ص":"م"},calendar:{sameDay:"[اليوم على الساعة] LT",nextDay:"[غدا على الساعة] LT",nextWeek:"dddd [على الساعة] LT",lastDay:"[أمس على الساعة] LT",lastWeek:"dddd [على الساعة] LT",sameElse:"L"},relativeTime:{future:"في %s",past:"منذ %s",s:"ثوان",ss:"%d ثانية",m:"دقيقة",mm:"%d دقائق",h:"ساعة",hh:"%d ساعات",d:"يوم",dd:"%d أيام",M:"شهر",MM:"%d أشهر",y:"سنة",yy:"%d سنوات"},preparse:function(e){return e.replace(/[١٢٣٤٥٦٧٨٩٠]/g,function(e){return t[e]}).replace(/،/g,",")},postformat:function(e){return e.replace(/\d/g,function(e){return a[e]}).replace(/,/g,"،")},week:{dow:0,doy:6}})})},function(e,a,t){Object.defineProperty(a,"__esModule",{value:!0}),t(78);var n=t(1);n.datepickerLocale("ar-tn","ar",{closeText:"إغلاق",prevText:"<السابق",nextText:"التالي>",currentText:"اليوم",monthNames:["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر"],monthNamesShort:["1","2","3","4","5","6","7","8","9","10","11","12"],dayNames:["الأحد","الاثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"],dayNamesShort:["أحد","اثنين","ثلاثاء","أربعاء","خميس","جمعة","سبت"],dayNamesMin:["ح","ن","ث","ر","خ","ج","س"],weekHeader:"أسبوع",dateFormat:"dd/mm/yy",firstDay:0,isRTL:!0,showMonthAfterYear:!1,yearSuffix:""}),n.locale("ar-tn",{buttonText:{month:"شهر",week:"أسبوع",day:"يوم",list:"أجندة"},allDayText:"اليوم كله",eventLimitText:"أخرى",noEventsMessage:"أي أحداث لعرض"})},function(e,a,t){!function(e,a){a(t(0))}(0,function(e){return e.defineLocale("ar-tn",{months:"جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),monthsShort:"جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[اليوم على الساعة] LT",nextDay:"[غدا على الساعة] LT",nextWeek:"dddd [على الساعة] LT",lastDay:"[أمس على الساعة] LT",lastWeek:"dddd [على الساعة] LT",sameElse:"L"},relativeTime:{future:"في %s",past:"منذ %s",s:"ثوان",ss:"%d ثانية",m:"دقيقة",mm:"%d دقائق",h:"ساعة",hh:"%d ساعات",d:"يوم",dd:"%d أيام",M:"شهر",MM:"%d أشهر",y:"سنة",yy:"%d سنوات"},week:{dow:1,doy:4}})})},function(e,a,t){Object.defineProperty(a,"__esModule",{value:!0}),t(80);var n=t(1);n.datepickerLocale("ar","ar",{closeText:"إغلاق",prevText:"<السابق",nextText:"التالي>",currentText:"اليوم",monthNames:["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر"],monthNamesShort:["1","2","3","4","5","6","7","8","9","10","11","12"],dayNames:["الأحد","الاثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"],dayNamesShort:["أحد","اثنين","ثلاثاء","أربعاء","خميس","جمعة","سبت"],dayNamesMin:["ح","ن","ث","ر","خ","ج","س"],weekHeader:"أسبوع",dateFormat:"dd/mm/yy",firstDay:0,isRTL:!0,showMonthAfterYear:!1,yearSuffix:""}),n.locale("ar",{buttonText:{month:"شهر",week:"أسبوع",day:"يوم",list:"أجندة"},allDayText:"اليوم كله",eventLimitText:"أخرى",noEventsMessage:"أي أحداث لعرض"})},function(e,a,t){!function(e,a){a(t(0))}(0,function(e){var a={1:"١",2:"٢",3:"٣",4:"٤",5:"٥",6:"٦",7:"٧",8:"٨",9:"٩",0:"٠"},t={"١":"1","٢":"2","٣":"3","٤":"4","٥":"5","٦":"6","٧":"7","٨":"8","٩":"9","٠":"0"},n=function(e){return 0===e?0:1===e?1:2===e?2:e%100>=3&&e%100<=10?3:e%100>=11?4:5},r={s:["أقل من ثانية","ثانية واحدة",["ثانيتان","ثانيتين"],"%d ثوان","%d ثانية","%d ثانية"],m:["أقل من دقيقة","دقيقة واحدة",["دقيقتان","دقيقتين"],"%d دقائق","%d دقيقة","%d دقيقة"],h:["أقل من ساعة","ساعة واحدة",["ساعتان","ساعتين"],"%d ساعات","%d ساعة","%d ساعة"],d:["أقل من يوم","يوم واحد",["يومان","يومين"],"%d أيام","%d يومًا","%d يوم"],M:["أقل من شهر","شهر واحد",["شهران","شهرين"],"%d أشهر","%d شهرا","%d شهر"],y:["أقل من عام","عام واحد",["عامان","عامين"],"%d أعوام","%d عامًا","%d عام"]},s=function(e){return function(a,t,s,d){var i=n(a),o=r[e][n(a)];return 2===i&&(o=o[t?0:1]),o.replace(/%d/i,a)}},d=["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر"];return e.defineLocale("ar",{months:d,monthsShort:d,weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"D/‏M/‏YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/ص|م/,isPM:function(e){return"م"===e},meridiem:function(e,a,t){return e<12?"ص":"م"},calendar:{sameDay:"[اليوم عند الساعة] LT",nextDay:"[غدًا عند الساعة] LT",nextWeek:"dddd [عند الساعة] LT",lastDay:"[أمس عند الساعة] LT",lastWeek:"dddd [عند الساعة] LT",sameElse:"L"},relativeTime:{future:"بعد %s",past:"منذ %s",s:s("s"),ss:s("s"),m:s("m"),mm:s("m"),h:s("h"),hh:s("h"),d:s("d"),dd:s("d"),M:s("M"),MM:s("M"),y:s("y"),yy:s("y")},preparse:function(e){return e.replace(/[١٢٣٤٥٦٧٨٩٠]/g,function(e){return t[e]}).replace(/،/g,",")},postformat:function(e){return e.replace(/\d/g,function(e){return a[e]}).replace(/,/g,"،")},week:{dow:6,doy:12}})})},function(e,a,t){Object.defineProperty(a,"__esModule",{value:!0}),t(82);var n=t(1);n.datepickerLocale("bg","bg",{closeText:"затвори",prevText:"<назад",nextText:"напред>",nextBigText:">>",currentText:"днес",monthNames:["Януари","Февруари","Март","Април","Май","Юни","Юли","Август","Септември","Октомври","Ноември","Декември"],monthNamesShort:["Яну","Фев","Мар","Апр","Май","Юни","Юли","Авг","Сеп","Окт","Нов","Дек"],dayNames:["Неделя","Понеделник","Вторник","Сряда","Четвъртък","Петък","Събота"],dayNamesShort:["Нед","Пон","Вто","Сря","Чет","Пет","Съб"],dayNamesMin:["Не","По","Вт","Ср","Че","Пе","Съ"],weekHeader:"Wk",dateFormat:"dd.mm.yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),n.locale("bg",{buttonText:{month:"Месец",week:"Седмица",day:"Ден",list:"График"},allDayText:"Цял ден",eventLimitText:function(e){return"+още "+e},noEventsMessage:"Няма събития за показване"})},function(e,a,t){!function(e,a){a(t(0))}(0,function(e){return e.defineLocale("bg",{months:"януари_февруари_март_април_май_юни_юли_август_септември_октомври_ноември_декември".split("_"),monthsShort:"янр_фев_мар_апр_май_юни_юли_авг_сеп_окт_ное_дек".split("_"),weekdays:"неделя_понеделник_вторник_сряда_четвъртък_петък_събота".split("_"),weekdaysShort:"нед_пон_вто_сря_чет_пет_съб".split("_"),weekdaysMin:"нд_пн_вт_ср_чт_пт_сб".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"D.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY H:mm",LLLL:"dddd, D MMMM YYYY H:mm"},calendar:{sameDay:"[Днес в] LT",nextDay:"[Утре в] LT",nextWeek:"dddd [в] LT",lastDay:"[Вчера в] LT",lastWeek:function(){switch(this.day()){case 0:case 3:case 6:return"[В изминалата] dddd [в] LT";case 1:case 2:case 4:case 5:return"[В изминалия] dddd [в] LT"}},sameElse:"L"},relativeTime:{future:"след %s",past:"преди %s",s:"няколко секунди",ss:"%d секунди",m:"минута",mm:"%d минути",h:"час",hh:"%d часа",d:"ден",dd:"%d дни",M:"месец",MM:"%d месеца",y:"година",yy:"%d години"},dayOfMonthOrdinalParse:/\d{1,2}-(ев|ен|ти|ви|ри|ми)/,ordinal:function(e){var a=e%10,t=e%100;return 0===e?e+"-ев":0===t?e+"-ен":t>10&&t<20?e+"-ти":1===a?e+"-ви":2===a?e+"-ри":7===a||8===a?e+"-ми":e+"-ти"},week:{dow:1,doy:7}})})},function(e,a,t){Object.defineProperty(a,"__esModule",{value:!0}),t(84);var n=t(1);n.datepickerLocale("bs","bs",{closeText:"Zatvori",prevText:"<",nextText:">",currentText:"Danas",monthNames:["Januar","Februar","Mart","April","Maj","Juni","Juli","August","Septembar","Oktobar","Novmbar","Decembar"],monthNamesShort:["Jan","Feb","Mar","Apr","Maj","Jun","Jul","Aug","Sep","Okt","Nov","Dec"],dayNames:["Nedjelja","Ponedjeljak","Utorak","Srijeda","Četvrtak","Petak","Subota"],dayNamesShort:["Ned","Pon","Uto","Sri","Čet","Pet","Sub"],dayNamesMin:["Ne","Po","Ut","Sr","Če","Pe","Su"],weekHeader:"Sed",dateFormat:"dd.mm.yy.",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),n.locale("bs",{buttonText:{prev:"Prošli",next:"Sljedeći",month:"Mjesec",week:"Sedmica",day:"Dan",list:"Raspored"},allDayText:"Cijeli dan",eventLimitText:function(e){return"+ još "+e},noEventsMessage:"Nema događaja za prikazivanje"})},function(e,a,t){!function(e,a){a(t(0))}(0,function(e){function a(e,a,t){var n=e+" ";switch(t){case"ss":return n+=1===e?"sekunda":2===e||3===e||4===e?"sekunde":"sekundi";case"m":return a?"jedna minuta":"jedne minute";case"mm":return n+=1===e?"minuta":2===e||3===e||4===e?"minute":"minuta";case"h":return a?"jedan sat":"jednog sata";case"hh":return n+=1===e?"sat":2===e||3===e||4===e?"sata":"sati";case"dd":return n+=1===e?"dan":"dana";case"MM":return n+=1===e?"mjesec":2===e||3===e||4===e?"mjeseca":"mjeseci";case"yy":return n+=1===e?"godina":2===e||3===e||4===e?"godine":"godina"}}return e.defineLocale("bs",{months:"januar_februar_mart_april_maj_juni_juli_august_septembar_oktobar_novembar_decembar".split("_"),monthsShort:"jan._feb._mar._apr._maj._jun._jul._aug._sep._okt._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sri._čet._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_če_pe_su".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danas u] LT",nextDay:"[sutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedjelju] [u] LT";case 3:return"[u] [srijedu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[jučer u] LT",lastWeek:function(){switch(this.day()){case 0:case 3:return"[prošlu] dddd [u] LT";case 6:return"[prošle] [subote] [u] LT";case 1:case 2:case 4:case 5:return"[prošli] dddd [u] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"prije %s",s:"par sekundi",ss:a,m:a,mm:a,h:a,hh:a,d:"dan",dd:a,M:"mjesec",MM:a,y:"godinu",yy:a},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})})},function(e,a,t){Object.defineProperty(a,"__esModule",{value:!0}),t(86);var n=t(1);n.datepickerLocale("ca","ca",{closeText:"Tanca",prevText:"Anterior",nextText:"Següent",currentText:"Avui",monthNames:["gener","febrer","març","abril","maig","juny","juliol","agost","setembre","octubre","novembre","desembre"],monthNamesShort:["gen","feb","març","abr","maig","juny","jul","ag","set","oct","nov","des"],dayNames:["diumenge","dilluns","dimarts","dimecres","dijous","divendres","dissabte"],dayNamesShort:["dg","dl","dt","dc","dj","dv","ds"],dayNamesMin:["dg","dl","dt","dc","dj","dv","ds"],weekHeader:"Set",dateFormat:"dd/mm/yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),n.locale("ca",{buttonText:{month:"Mes",week:"Setmana",day:"Dia",list:"Agenda"},allDayText:"Tot el dia",eventLimitText:"més",noEventsMessage:"No hi ha esdeveniments per mostrar"})},function(e,a,t){!function(e,a){a(t(0))}(0,function(e){return e.defineLocale("ca",{months:{standalone:"gener_febrer_març_abril_maig_juny_juliol_agost_setembre_octubre_novembre_desembre".split("_"),format:"de gener_de febrer_de març_d'abril_de maig_de juny_de juliol_d'agost_de setembre_d'octubre_de novembre_de desembre".split("_"),isFormat:/D[oD]?(\s)+MMMM/},monthsShort:"gen._febr._març_abr._maig_juny_jul._ag._set._oct._nov._des.".split("_"),monthsParseExact:!0,weekdays:"diumenge_dilluns_dimarts_dimecres_dijous_divendres_dissabte".split("_"),weekdaysShort:"dg._dl._dt._dc._dj._dv._ds.".split("_"),weekdaysMin:"dg_dl_dt_dc_dj_dv_ds".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM [de] YYYY",ll:"D MMM YYYY",LLL:"D MMMM [de] YYYY [a les] H:mm",lll:"D MMM YYYY, H:mm",LLLL:"dddd D MMMM [de] YYYY [a les] H:mm",llll:"ddd D MMM YYYY, H:mm"},calendar:{sameDay:function(){return"[avui a "+(1!==this.hours()?"les":"la")+"] LT"},nextDay:function(){return"[demà a "+(1!==this.hours()?"les":"la")+"] LT"},nextWeek:function(){return"dddd [a "+(1!==this.hours()?"les":"la")+"] LT"},lastDay:function(){return"[ahir a "+(1!==this.hours()?"les":"la")+"] LT"},lastWeek:function(){return"[el] dddd [passat a "+(1!==this.hours()?"les":"la")+"] LT"},sameElse:"L"},relativeTime:{future:"d'aquí %s",past:"fa %s",s:"uns segons",ss:"%d segons",m:"un minut",mm:"%d minuts",h:"una hora",hh:"%d hores",d:"un dia",dd:"%d dies",M:"un mes",MM:"%d mesos",y:"un any",yy:"%d anys"},dayOfMonthOrdinalParse:/\d{1,2}(r|n|t|è|a)/,ordinal:function(e,a){var t=1===e?"r":2===e?"n":3===e?"r":4===e?"t":"è";return"w"!==a&&"W"!==a||(t="a"),e+t},week:{dow:1,doy:4}})})},function(e,a,t){Object.defineProperty(a,"__esModule",{value:!0}),t(88);var n=t(1);n.datepickerLocale("cs","cs",{closeText:"Zavřít",prevText:"<Dříve",nextText:"Později>",currentText:"Nyní",monthNames:["leden","únor","březen","duben","květen","červen","červenec","srpen","září","říjen","listopad","prosinec"],monthNamesShort:["led","úno","bře","dub","kvě","čer","čvc","srp","zář","říj","lis","pro"],dayNames:["neděle","pondělí","úterý","středa","čtvrtek","pátek","sobota"],dayNamesShort:["ne","po","út","st","čt","pá","so"],dayNamesMin:["ne","po","út","st","čt","pá","so"],weekHeader:"Týd",dateFormat:"dd.mm.yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),n.locale("cs",{buttonText:{month:"Měsíc",week:"Týden",day:"Den",list:"Agenda"},allDayText:"Celý den",eventLimitText:function(e){return"+další: "+e},noEventsMessage:"Žádné akce k zobrazení"})},function(e,a,t){!function(e,a){a(t(0))}(0,function(e){function a(e){return e>1&&e<5&&1!=~~(e/10)}function t(e,t,n,r){var s=e+" ";switch(n){case"s":return t||r?"pár sekund":"pár sekundami";case"ss":return t||r?s+(a(e)?"sekundy":"sekund"):s+"sekundami";case"m":return t?"minuta":r?"minutu":"minutou";case"mm":return t||r?s+(a(e)?"minuty":"minut"):s+"minutami";case"h":return t?"hodina":r?"hodinu":"hodinou";case"hh":return t||r?s+(a(e)?"hodiny":"hodin"):s+"hodinami";case"d":return t||r?"den":"dnem";case"dd":return t||r?s+(a(e)?"dny":"dní"):s+"dny";case"M":return t||r?"měsíc":"měsícem";case"MM":return t||r?s+(a(e)?"měsíce":"měsíců"):s+"měsíci";case"y":return t||r?"rok":"rokem";case"yy":return t||r?s+(a(e)?"roky":"let"):s+"lety"}}var n="leden_únor_březen_duben_květen_červen_červenec_srpen_září_říjen_listopad_prosinec".split("_"),r="led_úno_bře_dub_kvě_čvn_čvc_srp_zář_říj_lis_pro".split("_");return e.defineLocale("cs",{months:n,monthsShort:r,monthsParse:function(e,a){var t,n=[];for(t=0;t<12;t++)n[t]=new RegExp("^"+e[t]+"$|^"+a[t]+"$","i");return n}(n,r),shortMonthsParse:function(e){var a,t=[];for(a=0;a<12;a++)t[a]=new RegExp("^"+e[a]+"$","i");return t}(r),longMonthsParse:function(e){var a,t=[];for(a=0;a<12;a++)t[a]=new RegExp("^"+e[a]+"$","i");return t}(n),weekdays:"neděle_pondělí_úterý_středa_čtvrtek_pátek_sobota".split("_"),weekdaysShort:"ne_po_út_st_čt_pá_so".split("_"),weekdaysMin:"ne_po_út_st_čt_pá_so".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd D. MMMM YYYY H:mm",l:"D. M. YYYY"},calendar:{sameDay:"[dnes v] LT",nextDay:"[zítra v] LT",nextWeek:function(){switch(this.day()){case 0:return"[v neděli v] LT";case 1:case 2:return"[v] dddd [v] LT";case 3:return"[ve středu v] LT";case 4:return"[ve čtvrtek v] LT";case 5:return"[v pátek v] LT";case 6:return"[v sobotu v] LT"}},lastDay:"[včera v] LT",lastWeek:function(){switch(this.day()){case 0:return"[minulou neděli v] LT";case 1:case 2:return"[minulé] dddd [v] LT";case 3:return"[minulou středu v] LT";case 4:case 5:return"[minulý] dddd [v] LT";case 6:return"[minulou sobotu v] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"před %s",s:t,ss:t,m:t,mm:t,h:t,hh:t,d:t,dd:t,M:t,MM:t,y:t,yy:t},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})})},function(e,a,t){Object.defineProperty(a,"__esModule",{value:!0}),t(90);var n=t(1);n.datepickerLocale("da","da",{closeText:"Luk",prevText:"<Forrige",nextText:"Næste>",currentText:"Idag",monthNames:["Januar","Februar","Marts","April","Maj","Juni","Juli","August","September","Oktober","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","Maj","Jun","Jul","Aug","Sep","Okt","Nov","Dec"],dayNames:["Søndag","Mandag","Tirsdag","Onsdag","Torsdag","Fredag","Lørdag"],dayNamesShort:["Søn","Man","Tir","Ons","Tor","Fre","Lør"],dayNamesMin:["Sø","Ma","Ti","On","To","Fr","Lø"],weekHeader:"Uge",dateFormat:"dd-mm-yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),n.locale("da",{buttonText:{month:"Måned",week:"Uge",day:"Dag",list:"Agenda"},allDayText:"Hele dagen",eventLimitText:"flere",noEventsMessage:"Ingen arrangementer at vise"})},function(e,a,t){!function(e,a){a(t(0))}(0,function(e){return e.defineLocale("da",{months:"januar_februar_marts_april_maj_juni_juli_august_september_oktober_november_december".split("_"),monthsShort:"jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec".split("_"),weekdays:"søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag".split("_"),weekdaysShort:"søn_man_tir_ons_tor_fre_lør".split("_"),weekdaysMin:"sø_ma_ti_on_to_fr_lø".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd [d.] D. MMMM YYYY [kl.] HH:mm"},calendar:{sameDay:"[i dag kl.] LT",nextDay:"[i morgen kl.] LT",nextWeek:"på dddd [kl.] LT",lastDay:"[i går kl.] LT",lastWeek:"[i] dddd[s kl.] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"%s siden",s:"få sekunder",ss:"%d sekunder",m:"et minut",mm:"%d minutter",h:"en time",hh:"%d timer",d:"en dag",dd:"%d dage",M:"en måned",MM:"%d måneder",y:"et år",yy:"%d år"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})})},function(e,a,t){Object.defineProperty(a,"__esModule",{value:!0}),t(92);var n=t(1);n.datepickerLocale("de-at","de",{closeText:"Schließen",prevText:"<Zurück",nextText:"Vor>",currentText:"Heute",monthNames:["Januar","Februar","März","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember"],monthNamesShort:["Jan","Feb","Mär","Apr","Mai","Jun","Jul","Aug","Sep","Okt","Nov","Dez"],dayNames:["Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag"],dayNamesShort:["So","Mo","Di","Mi","Do","Fr","Sa"],dayNamesMin:["So","Mo","Di","Mi","Do","Fr","Sa"],weekHeader:"KW",dateFormat:"dd.mm.yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),n.locale("de-at",{buttonText:{month:"Monat",week:"Woche",day:"Tag",list:"Terminübersicht"},allDayText:"Ganztägig",eventLimitText:function(e){return"+ weitere "+e},noEventsMessage:"Keine Ereignisse anzuzeigen"})},function(e,a,t){!function(e,a){a(t(0))}(0,function(e){function a(e,a,t,n){var r={m:["eine Minute","einer Minute"],h:["eine Stunde","einer Stunde"],d:["ein Tag","einem Tag"],dd:[e+" Tage",e+" Tagen"],M:["ein Monat","einem Monat"],MM:[e+" Monate",e+" Monaten"],y:["ein Jahr","einem Jahr"],yy:[e+" Jahre",e+" Jahren"]};return a?r[t][0]:r[t][1]}return e.defineLocale("de-at",{ -months:"Jänner_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jän._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag".split("_"),weekdaysShort:"So._Mo._Di._Mi._Do._Fr._Sa.".split("_"),weekdaysMin:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd, D. MMMM YYYY HH:mm"},calendar:{sameDay:"[heute um] LT [Uhr]",sameElse:"L",nextDay:"[morgen um] LT [Uhr]",nextWeek:"dddd [um] LT [Uhr]",lastDay:"[gestern um] LT [Uhr]",lastWeek:"[letzten] dddd [um] LT [Uhr]"},relativeTime:{future:"in %s",past:"vor %s",s:"ein paar Sekunden",ss:"%d Sekunden",m:a,mm:"%d Minuten",h:a,hh:"%d Stunden",d:a,dd:a,M:a,MM:a,y:a,yy:a},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})})},function(e,a,t){Object.defineProperty(a,"__esModule",{value:!0}),t(94);var n=t(1);n.datepickerLocale("de-ch","de",{closeText:"Schließen",prevText:"<Zurück",nextText:"Vor>",currentText:"Heute",monthNames:["Januar","Februar","März","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember"],monthNamesShort:["Jan","Feb","Mär","Apr","Mai","Jun","Jul","Aug","Sep","Okt","Nov","Dez"],dayNames:["Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag"],dayNamesShort:["So","Mo","Di","Mi","Do","Fr","Sa"],dayNamesMin:["So","Mo","Di","Mi","Do","Fr","Sa"],weekHeader:"KW",dateFormat:"dd.mm.yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),n.locale("de-ch",{buttonText:{month:"Monat",week:"Woche",day:"Tag",list:"Terminübersicht"},allDayText:"Ganztägig",eventLimitText:function(e){return"+ weitere "+e},noEventsMessage:"Keine Ereignisse anzuzeigen"})},function(e,a,t){!function(e,a){a(t(0))}(0,function(e){function a(e,a,t,n){var r={m:["eine Minute","einer Minute"],h:["eine Stunde","einer Stunde"],d:["ein Tag","einem Tag"],dd:[e+" Tage",e+" Tagen"],M:["ein Monat","einem Monat"],MM:[e+" Monate",e+" Monaten"],y:["ein Jahr","einem Jahr"],yy:[e+" Jahre",e+" Jahren"]};return a?r[t][0]:r[t][1]}return e.defineLocale("de-ch",{months:"Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag".split("_"),weekdaysShort:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),weekdaysMin:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd, D. MMMM YYYY HH:mm"},calendar:{sameDay:"[heute um] LT [Uhr]",sameElse:"L",nextDay:"[morgen um] LT [Uhr]",nextWeek:"dddd [um] LT [Uhr]",lastDay:"[gestern um] LT [Uhr]",lastWeek:"[letzten] dddd [um] LT [Uhr]"},relativeTime:{future:"in %s",past:"vor %s",s:"ein paar Sekunden",ss:"%d Sekunden",m:a,mm:"%d Minuten",h:a,hh:"%d Stunden",d:a,dd:a,M:a,MM:a,y:a,yy:a},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})})},function(e,a,t){Object.defineProperty(a,"__esModule",{value:!0}),t(96);var n=t(1);n.datepickerLocale("de","de",{closeText:"Schließen",prevText:"<Zurück",nextText:"Vor>",currentText:"Heute",monthNames:["Januar","Februar","März","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember"],monthNamesShort:["Jan","Feb","Mär","Apr","Mai","Jun","Jul","Aug","Sep","Okt","Nov","Dez"],dayNames:["Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag"],dayNamesShort:["So","Mo","Di","Mi","Do","Fr","Sa"],dayNamesMin:["So","Mo","Di","Mi","Do","Fr","Sa"],weekHeader:"KW",dateFormat:"dd.mm.yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),n.locale("de",{buttonText:{month:"Monat",week:"Woche",day:"Tag",list:"Terminübersicht"},allDayText:"Ganztägig",eventLimitText:function(e){return"+ weitere "+e},noEventsMessage:"Keine Ereignisse anzuzeigen"})},function(e,a,t){!function(e,a){a(t(0))}(0,function(e){function a(e,a,t,n){var r={m:["eine Minute","einer Minute"],h:["eine Stunde","einer Stunde"],d:["ein Tag","einem Tag"],dd:[e+" Tage",e+" Tagen"],M:["ein Monat","einem Monat"],MM:[e+" Monate",e+" Monaten"],y:["ein Jahr","einem Jahr"],yy:[e+" Jahre",e+" Jahren"]};return a?r[t][0]:r[t][1]}return e.defineLocale("de",{months:"Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag".split("_"),weekdaysShort:"So._Mo._Di._Mi._Do._Fr._Sa.".split("_"),weekdaysMin:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd, D. MMMM YYYY HH:mm"},calendar:{sameDay:"[heute um] LT [Uhr]",sameElse:"L",nextDay:"[morgen um] LT [Uhr]",nextWeek:"dddd [um] LT [Uhr]",lastDay:"[gestern um] LT [Uhr]",lastWeek:"[letzten] dddd [um] LT [Uhr]"},relativeTime:{future:"in %s",past:"vor %s",s:"ein paar Sekunden",ss:"%d Sekunden",m:a,mm:"%d Minuten",h:a,hh:"%d Stunden",d:a,dd:a,M:a,MM:a,y:a,yy:a},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})})},function(e,a,t){Object.defineProperty(a,"__esModule",{value:!0}),t(98);var n=t(1);n.datepickerLocale("el","el",{closeText:"Κλείσιμο",prevText:"Προηγούμενος",nextText:"Επόμενος",currentText:"Σήμερα",monthNames:["Ιανουάριος","Φεβρουάριος","Μάρτιος","Απρίλιος","Μάιος","Ιούνιος","Ιούλιος","Αύγουστος","Σεπτέμβριος","Οκτώβριος","Νοέμβριος","Δεκέμβριος"],monthNamesShort:["Ιαν","Φεβ","Μαρ","Απρ","Μαι","Ιουν","Ιουλ","Αυγ","Σεπ","Οκτ","Νοε","Δεκ"],dayNames:["Κυριακή","Δευτέρα","Τρίτη","Τετάρτη","Πέμπτη","Παρασκευή","Σάββατο"],dayNamesShort:["Κυρ","Δευ","Τρι","Τετ","Πεμ","Παρ","Σαβ"],dayNamesMin:["Κυ","Δε","Τρ","Τε","Πε","Πα","Σα"],weekHeader:"Εβδ",dateFormat:"dd/mm/yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),n.locale("el",{buttonText:{month:"Μήνας",week:"Εβδομάδα",day:"Ημέρα",list:"Ατζέντα"},allDayText:"Ολοήμερο",eventLimitText:"περισσότερα",noEventsMessage:"Δεν υπάρχουν γεγονότα για να εμφανιστεί"})},function(e,a,t){!function(e,a){a(t(0))}(0,function(e){function a(e){return e instanceof Function||"[object Function]"===Object.prototype.toString.call(e)}return e.defineLocale("el",{monthsNominativeEl:"Ιανουάριος_Φεβρουάριος_Μάρτιος_Απρίλιος_Μάιος_Ιούνιος_Ιούλιος_Αύγουστος_Σεπτέμβριος_Οκτώβριος_Νοέμβριος_Δεκέμβριος".split("_"),monthsGenitiveEl:"Ιανουαρίου_Φεβρουαρίου_Μαρτίου_Απριλίου_Μαΐου_Ιουνίου_Ιουλίου_Αυγούστου_Σεπτεμβρίου_Οκτωβρίου_Νοεμβρίου_Δεκεμβρίου".split("_"),months:function(e,a){return e?"string"==typeof a&&/D/.test(a.substring(0,a.indexOf("MMMM")))?this._monthsGenitiveEl[e.month()]:this._monthsNominativeEl[e.month()]:this._monthsNominativeEl},monthsShort:"Ιαν_Φεβ_Μαρ_Απρ_Μαϊ_Ιουν_Ιουλ_Αυγ_Σεπ_Οκτ_Νοε_Δεκ".split("_"),weekdays:"Κυριακή_Δευτέρα_Τρίτη_Τετάρτη_Πέμπτη_Παρασκευή_Σάββατο".split("_"),weekdaysShort:"Κυρ_Δευ_Τρι_Τετ_Πεμ_Παρ_Σαβ".split("_"),weekdaysMin:"Κυ_Δε_Τρ_Τε_Πε_Πα_Σα".split("_"),meridiem:function(e,a,t){return e>11?t?"μμ":"ΜΜ":t?"πμ":"ΠΜ"},isPM:function(e){return"μ"===(e+"").toLowerCase()[0]},meridiemParse:/[ΠΜ]\.?Μ?\.?/i,longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendarEl:{sameDay:"[Σήμερα {}] LT",nextDay:"[Αύριο {}] LT",nextWeek:"dddd [{}] LT",lastDay:"[Χθες {}] LT",lastWeek:function(){switch(this.day()){case 6:return"[το προηγούμενο] dddd [{}] LT";default:return"[την προηγούμενη] dddd [{}] LT"}},sameElse:"L"},calendar:function(e,t){var n=this._calendarEl[e],r=t&&t.hours();return a(n)&&(n=n.apply(t)),n.replace("{}",r%12==1?"στη":"στις")},relativeTime:{future:"σε %s",past:"%s πριν",s:"λίγα δευτερόλεπτα",ss:"%d δευτερόλεπτα",m:"ένα λεπτό",mm:"%d λεπτά",h:"μία ώρα",hh:"%d ώρες",d:"μία μέρα",dd:"%d μέρες",M:"ένας μήνας",MM:"%d μήνες",y:"ένας χρόνος",yy:"%d χρόνια"},dayOfMonthOrdinalParse:/\d{1,2}η/,ordinal:"%dη",week:{dow:1,doy:4}})})},function(e,a,t){Object.defineProperty(a,"__esModule",{value:!0}),t(100);var n=t(1);n.datepickerLocale("en-au","en-AU",{closeText:"Done",prevText:"Prev",nextText:"Next",currentText:"Today",monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayNamesMin:["Su","Mo","Tu","We","Th","Fr","Sa"],weekHeader:"Wk",dateFormat:"dd/mm/yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),n.locale("en-au")},function(e,a,t){!function(e,a){a(t(0))}(0,function(e){return e.defineLocale("en-au",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var a=e%10;return e+(1==~~(e%100/10)?"th":1===a?"st":2===a?"nd":3===a?"rd":"th")},week:{dow:1,doy:4}})})},function(e,a,t){Object.defineProperty(a,"__esModule",{value:!0}),t(102),t(1).locale("en-ca")},function(e,a,t){!function(e,a){a(t(0))}(0,function(e){return e.defineLocale("en-ca",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"YYYY-MM-DD",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var a=e%10;return e+(1==~~(e%100/10)?"th":1===a?"st":2===a?"nd":3===a?"rd":"th")}})})},function(e,a,t){Object.defineProperty(a,"__esModule",{value:!0}),t(104);var n=t(1);n.datepickerLocale("en-gb","en-GB",{closeText:"Done",prevText:"Prev",nextText:"Next",currentText:"Today",monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayNamesMin:["Su","Mo","Tu","We","Th","Fr","Sa"],weekHeader:"Wk",dateFormat:"dd/mm/yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),n.locale("en-gb")},function(e,a,t){!function(e,a){a(t(0))}(0,function(e){return e.defineLocale("en-gb",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var a=e%10;return e+(1==~~(e%100/10)?"th":1===a?"st":2===a?"nd":3===a?"rd":"th")},week:{dow:1,doy:4}})})},function(e,a,t){Object.defineProperty(a,"__esModule",{value:!0}),t(106),t(1).locale("en-ie")},function(e,a,t){!function(e,a){a(t(0))}(0,function(e){return e.defineLocale("en-ie",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var a=e%10;return e+(1==~~(e%100/10)?"th":1===a?"st":2===a?"nd":3===a?"rd":"th")},week:{dow:1,doy:4}})})},function(e,a,t){Object.defineProperty(a,"__esModule",{value:!0}),t(108);var n=t(1);n.datepickerLocale("en-nz","en-NZ",{closeText:"Done",prevText:"Prev",nextText:"Next",currentText:"Today",monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayNamesMin:["Su","Mo","Tu","We","Th","Fr","Sa"],weekHeader:"Wk",dateFormat:"dd/mm/yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),n.locale("en-nz")},function(e,a,t){!function(e,a){a(t(0))}(0,function(e){return e.defineLocale("en-nz",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var a=e%10;return e+(1==~~(e%100/10)?"th":1===a?"st":2===a?"nd":3===a?"rd":"th")},week:{dow:1,doy:4}})})},function(e,a,t){Object.defineProperty(a,"__esModule",{value:!0}),t(110);var n=t(1);n.datepickerLocale("es-do","es",{closeText:"Cerrar",prevText:"<Ant",nextText:"Sig>",currentText:"Hoy",monthNames:["enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre"],monthNamesShort:["ene","feb","mar","abr","may","jun","jul","ago","sep","oct","nov","dic"],dayNames:["domingo","lunes","martes","miércoles","jueves","viernes","sábado"],dayNamesShort:["dom","lun","mar","mié","jue","vie","sáb"],dayNamesMin:["D","L","M","X","J","V","S"],weekHeader:"Sm",dateFormat:"dd/mm/yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),n.locale("es-do",{buttonText:{month:"Mes",week:"Semana",day:"Día",list:"Agenda"},allDayHtml:"Todo
    el día",eventLimitText:"más",noEventsMessage:"No hay eventos para mostrar"})},function(e,a,t){!function(e,a){a(t(0))}(0,function(e){var a="ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.".split("_"),t="ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic".split("_"),n=[/^ene/i,/^feb/i,/^mar/i,/^abr/i,/^may/i,/^jun/i,/^jul/i,/^ago/i,/^sep/i,/^oct/i,/^nov/i,/^dic/i],r=/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i;return e.defineLocale("es-do",{months:"enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre".split("_"),monthsShort:function(e,n){return e?/-MMM-/.test(n)?t[e.month()]:a[e.month()]:a},monthsRegex:r,monthsShortRegex:r,monthsStrictRegex:/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,monthsShortStrictRegex:/^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i,monthsParse:n,longMonthsParse:n,shortMonthsParse:n,weekdays:"domingo_lunes_martes_miércoles_jueves_viernes_sábado".split("_"),weekdaysShort:"dom._lun._mar._mié._jue._vie._sáb.".split("_"),weekdaysMin:"do_lu_ma_mi_ju_vi_sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY h:mm A",LLLL:"dddd, D [de] MMMM [de] YYYY h:mm A"},calendar:{sameDay:function(){return"[hoy a la"+(1!==this.hours()?"s":"")+"] LT"},nextDay:function(){return"[mañana a la"+(1!==this.hours()?"s":"")+"] LT"},nextWeek:function(){return"dddd [a la"+(1!==this.hours()?"s":"")+"] LT"},lastDay:function(){return"[ayer a la"+(1!==this.hours()?"s":"")+"] LT"},lastWeek:function(){return"[el] dddd [pasado a la"+(1!==this.hours()?"s":"")+"] LT"},sameElse:"L"},relativeTime:{future:"en %s",past:"hace %s",s:"unos segundos",ss:"%d segundos",m:"un minuto",mm:"%d minutos",h:"una hora",hh:"%d horas",d:"un día",dd:"%d días",M:"un mes",MM:"%d meses",y:"un año",yy:"%d años"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}})})},function(e,a,t){Object.defineProperty(a,"__esModule",{value:!0}),t(112);var n=t(1);n.datepickerLocale("es-us","es",{closeText:"Cerrar",prevText:"<Ant",nextText:"Sig>",currentText:"Hoy",monthNames:["enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre"],monthNamesShort:["ene","feb","mar","abr","may","jun","jul","ago","sep","oct","nov","dic"],dayNames:["domingo","lunes","martes","miércoles","jueves","viernes","sábado"],dayNamesShort:["dom","lun","mar","mié","jue","vie","sáb"],dayNamesMin:["D","L","M","X","J","V","S"],weekHeader:"Sm",dateFormat:"dd/mm/yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),n.locale("es-us",{buttonText:{month:"Mes",week:"Semana",day:"Día",list:"Agenda"},allDayHtml:"Todo
    el día",eventLimitText:"más",noEventsMessage:"No hay eventos para mostrar"})},function(e,a,t){!function(e,a){a(t(0))}(0,function(e){var a="ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.".split("_"),t="ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic".split("_");return e.defineLocale("es-us",{months:"enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre".split("_"),monthsShort:function(e,n){return e?/-MMM-/.test(n)?t[e.month()]:a[e.month()]:a},monthsParseExact:!0,weekdays:"domingo_lunes_martes_miércoles_jueves_viernes_sábado".split("_"),weekdaysShort:"dom._lun._mar._mié._jue._vie._sáb.".split("_"),weekdaysMin:"do_lu_ma_mi_ju_vi_sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"MM/DD/YYYY",LL:"MMMM [de] D [de] YYYY",LLL:"MMMM [de] D [de] YYYY h:mm A",LLLL:"dddd, MMMM [de] D [de] YYYY h:mm A"},calendar:{sameDay:function(){return"[hoy a la"+(1!==this.hours()?"s":"")+"] LT"},nextDay:function(){return"[mañana a la"+(1!==this.hours()?"s":"")+"] LT"},nextWeek:function(){return"dddd [a la"+(1!==this.hours()?"s":"")+"] LT"},lastDay:function(){return"[ayer a la"+(1!==this.hours()?"s":"")+"] LT"},lastWeek:function(){return"[el] dddd [pasado a la"+(1!==this.hours()?"s":"")+"] LT"},sameElse:"L"},relativeTime:{future:"en %s",past:"hace %s",s:"unos segundos",ss:"%d segundos",m:"un minuto",mm:"%d minutos",h:"una hora",hh:"%d horas",d:"un día",dd:"%d días",M:"un mes",MM:"%d meses",y:"un año",yy:"%d años"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:0,doy:6}})})},function(e,a,t){Object.defineProperty(a,"__esModule",{value:!0}),t(114);var n=t(1);n.datepickerLocale("es","es",{closeText:"Cerrar",prevText:"<Ant",nextText:"Sig>",currentText:"Hoy",monthNames:["enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre"],monthNamesShort:["ene","feb","mar","abr","may","jun","jul","ago","sep","oct","nov","dic"],dayNames:["domingo","lunes","martes","miércoles","jueves","viernes","sábado"],dayNamesShort:["dom","lun","mar","mié","jue","vie","sáb"],dayNamesMin:["D","L","M","X","J","V","S"],weekHeader:"Sm",dateFormat:"dd/mm/yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),n.locale("es",{buttonText:{month:"Mes",week:"Semana",day:"Día",list:"Agenda"},allDayHtml:"Todo
    el día",eventLimitText:"más",noEventsMessage:"No hay eventos para mostrar"})},function(e,a,t){!function(e,a){a(t(0))}(0,function(e){var a="ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.".split("_"),t="ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic".split("_"),n=[/^ene/i,/^feb/i,/^mar/i,/^abr/i,/^may/i,/^jun/i,/^jul/i,/^ago/i,/^sep/i,/^oct/i,/^nov/i,/^dic/i],r=/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i;return e.defineLocale("es",{months:"enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre".split("_"),monthsShort:function(e,n){return e?/-MMM-/.test(n)?t[e.month()]:a[e.month()]:a},monthsRegex:r,monthsShortRegex:r,monthsStrictRegex:/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,monthsShortStrictRegex:/^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i,monthsParse:n,longMonthsParse:n,shortMonthsParse:n,weekdays:"domingo_lunes_martes_miércoles_jueves_viernes_sábado".split("_"),weekdaysShort:"dom._lun._mar._mié._jue._vie._sáb.".split("_"),weekdaysMin:"do_lu_ma_mi_ju_vi_sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY H:mm",LLLL:"dddd, D [de] MMMM [de] YYYY H:mm"},calendar:{sameDay:function(){return"[hoy a la"+(1!==this.hours()?"s":"")+"] LT"},nextDay:function(){return"[mañana a la"+(1!==this.hours()?"s":"")+"] LT"},nextWeek:function(){return"dddd [a la"+(1!==this.hours()?"s":"")+"] LT"},lastDay:function(){return"[ayer a la"+(1!==this.hours()?"s":"")+"] LT"},lastWeek:function(){return"[el] dddd [pasado a la"+(1!==this.hours()?"s":"")+"] LT"},sameElse:"L"},relativeTime:{future:"en %s",past:"hace %s",s:"unos segundos",ss:"%d segundos",m:"un minuto",mm:"%d minutos",h:"una hora",hh:"%d horas",d:"un día",dd:"%d días",M:"un mes",MM:"%d meses",y:"un año",yy:"%d años"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}})})},function(e,a,t){Object.defineProperty(a,"__esModule",{value:!0}),t(116);var n=t(1);n.datepickerLocale("et","et",{closeText:"Sulge",prevText:"Eelnev",nextText:"Järgnev",currentText:"Täna",monthNames:["Jaanuar","Veebruar","Märts","Aprill","Mai","Juuni","Juuli","August","September","Oktoober","November","Detsember"],monthNamesShort:["Jaan","Veebr","Märts","Apr","Mai","Juuni","Juuli","Aug","Sept","Okt","Nov","Dets"],dayNames:["Pühapäev","Esmaspäev","Teisipäev","Kolmapäev","Neljapäev","Reede","Laupäev"],dayNamesShort:["Pühap","Esmasp","Teisip","Kolmap","Neljap","Reede","Laup"],dayNamesMin:["P","E","T","K","N","R","L"],weekHeader:"näd",dateFormat:"dd.mm.yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),n.locale("et",{buttonText:{month:"Kuu",week:"Nädal",day:"Päev",list:"Päevakord"},allDayText:"Kogu päev",eventLimitText:function(e){return"+ veel "+e},noEventsMessage:"Kuvamiseks puuduvad sündmused"})},function(e,a,t){!function(e,a){a(t(0))}(0,function(e){function a(e,a,t,n){var r={s:["mõne sekundi","mõni sekund","paar sekundit"],ss:[e+"sekundi",e+"sekundit"],m:["ühe minuti","üks minut"],mm:[e+" minuti",e+" minutit"],h:["ühe tunni","tund aega","üks tund"],hh:[e+" tunni",e+" tundi"],d:["ühe päeva","üks päev"],M:["kuu aja","kuu aega","üks kuu"],MM:[e+" kuu",e+" kuud"],y:["ühe aasta","aasta","üks aasta"],yy:[e+" aasta",e+" aastat"]};return a?r[t][2]?r[t][2]:r[t][1]:n?r[t][0]:r[t][1]}return e.defineLocale("et",{months:"jaanuar_veebruar_märts_aprill_mai_juuni_juuli_august_september_oktoober_november_detsember".split("_"),monthsShort:"jaan_veebr_märts_apr_mai_juuni_juuli_aug_sept_okt_nov_dets".split("_"),weekdays:"pühapäev_esmaspäev_teisipäev_kolmapäev_neljapäev_reede_laupäev".split("_"),weekdaysShort:"P_E_T_K_N_R_L".split("_"),weekdaysMin:"P_E_T_K_N_R_L".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[Täna,] LT",nextDay:"[Homme,] LT",nextWeek:"[Järgmine] dddd LT",lastDay:"[Eile,] LT",lastWeek:"[Eelmine] dddd LT",sameElse:"L"},relativeTime:{future:"%s pärast",past:"%s tagasi",s:a,ss:a,m:a,mm:a,h:a,hh:a,d:a,dd:"%d päeva",M:a,MM:a,y:a,yy:a},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})})},function(e,a,t){Object.defineProperty(a,"__esModule",{value:!0}),t(118);var n=t(1);n.datepickerLocale("eu","eu",{closeText:"Egina",prevText:"<Aur",nextText:"Hur>",currentText:"Gaur",monthNames:["urtarrila","otsaila","martxoa","apirila","maiatza","ekaina","uztaila","abuztua","iraila","urria","azaroa","abendua"],monthNamesShort:["urt.","ots.","mar.","api.","mai.","eka.","uzt.","abu.","ira.","urr.","aza.","abe."],dayNames:["igandea","astelehena","asteartea","asteazkena","osteguna","ostirala","larunbata"],dayNamesShort:["ig.","al.","ar.","az.","og.","ol.","lr."],dayNamesMin:["ig","al","ar","az","og","ol","lr"],weekHeader:"As",dateFormat:"yy-mm-dd",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),n.locale("eu",{buttonText:{month:"Hilabetea",week:"Astea",day:"Eguna",list:"Agenda"},allDayHtml:"Egun
    osoa",eventLimitText:"gehiago",noEventsMessage:"Ez dago ekitaldirik erakusteko"})},function(e,a,t){!function(e,a){a(t(0))}(0,function(e){return e.defineLocale("eu",{months:"urtarrila_otsaila_martxoa_apirila_maiatza_ekaina_uztaila_abuztua_iraila_urria_azaroa_abendua".split("_"),monthsShort:"urt._ots._mar._api._mai._eka._uzt._abu._ira._urr._aza._abe.".split("_"),monthsParseExact:!0,weekdays:"igandea_astelehena_asteartea_asteazkena_osteguna_ostirala_larunbata".split("_"),weekdaysShort:"ig._al._ar._az._og._ol._lr.".split("_"),weekdaysMin:"ig_al_ar_az_og_ol_lr".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"YYYY[ko] MMMM[ren] D[a]",LLL:"YYYY[ko] MMMM[ren] D[a] HH:mm",LLLL:"dddd, YYYY[ko] MMMM[ren] D[a] HH:mm",l:"YYYY-M-D",ll:"YYYY[ko] MMM D[a]",lll:"YYYY[ko] MMM D[a] HH:mm",llll:"ddd, YYYY[ko] MMM D[a] HH:mm"},calendar:{sameDay:"[gaur] LT[etan]",nextDay:"[bihar] LT[etan]",nextWeek:"dddd LT[etan]",lastDay:"[atzo] LT[etan]",lastWeek:"[aurreko] dddd LT[etan]",sameElse:"L"},relativeTime:{future:"%s barru",past:"duela %s",s:"segundo batzuk",ss:"%d segundo",m:"minutu bat",mm:"%d minutu",h:"ordu bat",hh:"%d ordu",d:"egun bat",dd:"%d egun",M:"hilabete bat",MM:"%d hilabete",y:"urte bat",yy:"%d urte"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})})},function(e,a,t){Object.defineProperty(a,"__esModule",{value:!0}),t(120);var n=t(1);n.datepickerLocale("fa","fa",{closeText:"بستن",prevText:"<قبلی",nextText:"بعدی>",currentText:"امروز",monthNames:["ژانویه","فوریه","مارس","آوریل","مه","ژوئن","ژوئیه","اوت","سپتامبر","اکتبر","نوامبر","دسامبر"],monthNamesShort:["1","2","3","4","5","6","7","8","9","10","11","12"],dayNames:["يکشنبه","دوشنبه","سه‌شنبه","چهارشنبه","پنجشنبه","جمعه","شنبه"],dayNamesShort:["ی","د","س","چ","پ","ج","ش"],dayNamesMin:["ی","د","س","چ","پ","ج","ش"],weekHeader:"هف",dateFormat:"yy/mm/dd",firstDay:6,isRTL:!0,showMonthAfterYear:!1,yearSuffix:""}),n.locale("fa",{buttonText:{month:"ماه",week:"هفته",day:"روز",list:"برنامه"},allDayText:"تمام روز",eventLimitText:function(e){return"بیش از "+e},noEventsMessage:"هیچ رویدادی به نمایش"})},function(e,a,t){!function(e,a){a(t(0))}(0,function(e){var a={1:"۱",2:"۲",3:"۳",4:"۴",5:"۵",6:"۶",7:"۷",8:"۸",9:"۹",0:"۰"},t={"۱":"1","۲":"2","۳":"3","۴":"4","۵":"5","۶":"6","۷":"7","۸":"8","۹":"9","۰":"0"};return e.defineLocale("fa",{months:"ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر".split("_"),monthsShort:"ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر".split("_"),weekdays:"یک‌شنبه_دوشنبه_سه‌شنبه_چهارشنبه_پنج‌شنبه_جمعه_شنبه".split("_"),weekdaysShort:"یک‌شنبه_دوشنبه_سه‌شنبه_چهارشنبه_پنج‌شنبه_جمعه_شنبه".split("_"),weekdaysMin:"ی_د_س_چ_پ_ج_ش".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},meridiemParse:/قبل از ظهر|بعد از ظهر/,isPM:function(e){return/بعد از ظهر/.test(e)},meridiem:function(e,a,t){return e<12?"قبل از ظهر":"بعد از ظهر"},calendar:{sameDay:"[امروز ساعت] LT",nextDay:"[فردا ساعت] LT",nextWeek:"dddd [ساعت] LT",lastDay:"[دیروز ساعت] LT",lastWeek:"dddd [پیش] [ساعت] LT",sameElse:"L"},relativeTime:{future:"در %s",past:"%s پیش",s:"چند ثانیه",ss:"ثانیه d%",m:"یک دقیقه",mm:"%d دقیقه",h:"یک ساعت",hh:"%d ساعت",d:"یک روز",dd:"%d روز",M:"یک ماه",MM:"%d ماه",y:"یک سال",yy:"%d سال"},preparse:function(e){return e.replace(/[۰-۹]/g,function(e){return t[e]}).replace(/،/g,",")},postformat:function(e){return e.replace(/\d/g,function(e){return a[e]}).replace(/,/g,"،")},dayOfMonthOrdinalParse:/\d{1,2}م/,ordinal:"%dم",week:{dow:6,doy:12}})})},function(e,a,t){Object.defineProperty(a,"__esModule",{value:!0}),t(122);var n=t(1);n.datepickerLocale("fi","fi",{closeText:"Sulje",prevText:"«Edellinen",nextText:"Seuraava»",currentText:"Tänään",monthNames:["Tammikuu","Helmikuu","Maaliskuu","Huhtikuu","Toukokuu","Kesäkuu","Heinäkuu","Elokuu","Syyskuu","Lokakuu","Marraskuu","Joulukuu"],monthNamesShort:["Tammi","Helmi","Maalis","Huhti","Touko","Kesä","Heinä","Elo","Syys","Loka","Marras","Joulu"],dayNamesShort:["Su","Ma","Ti","Ke","To","Pe","La"],dayNames:["Sunnuntai","Maanantai","Tiistai","Keskiviikko","Torstai","Perjantai","Lauantai"],dayNamesMin:["Su","Ma","Ti","Ke","To","Pe","La"],weekHeader:"Vk",dateFormat:"d.m.yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),n.locale("fi",{buttonText:{month:"Kuukausi",week:"Viikko",day:"Päivä",list:"Tapahtumat"},allDayText:"Koko päivä",eventLimitText:"lisää",noEventsMessage:"Ei näytettäviä tapahtumia"})},function(e,a,t){!function(e,a){a(t(0))}(0,function(e){function a(e,a,n,r){var s="";switch(n){ -case"s":return r?"muutaman sekunnin":"muutama sekunti";case"ss":return r?"sekunnin":"sekuntia";case"m":return r?"minuutin":"minuutti";case"mm":s=r?"minuutin":"minuuttia";break;case"h":return r?"tunnin":"tunti";case"hh":s=r?"tunnin":"tuntia";break;case"d":return r?"päivän":"päivä";case"dd":s=r?"päivän":"päivää";break;case"M":return r?"kuukauden":"kuukausi";case"MM":s=r?"kuukauden":"kuukautta";break;case"y":return r?"vuoden":"vuosi";case"yy":s=r?"vuoden":"vuotta"}return s=t(e,r)+" "+s}function t(e,a){return e<10?a?r[e]:n[e]:e}var n="nolla yksi kaksi kolme neljä viisi kuusi seitsemän kahdeksan yhdeksän".split(" "),r=["nolla","yhden","kahden","kolmen","neljän","viiden","kuuden",n[7],n[8],n[9]];return e.defineLocale("fi",{months:"tammikuu_helmikuu_maaliskuu_huhtikuu_toukokuu_kesäkuu_heinäkuu_elokuu_syyskuu_lokakuu_marraskuu_joulukuu".split("_"),monthsShort:"tammi_helmi_maalis_huhti_touko_kesä_heinä_elo_syys_loka_marras_joulu".split("_"),weekdays:"sunnuntai_maanantai_tiistai_keskiviikko_torstai_perjantai_lauantai".split("_"),weekdaysShort:"su_ma_ti_ke_to_pe_la".split("_"),weekdaysMin:"su_ma_ti_ke_to_pe_la".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD.MM.YYYY",LL:"Do MMMM[ta] YYYY",LLL:"Do MMMM[ta] YYYY, [klo] HH.mm",LLLL:"dddd, Do MMMM[ta] YYYY, [klo] HH.mm",l:"D.M.YYYY",ll:"Do MMM YYYY",lll:"Do MMM YYYY, [klo] HH.mm",llll:"ddd, Do MMM YYYY, [klo] HH.mm"},calendar:{sameDay:"[tänään] [klo] LT",nextDay:"[huomenna] [klo] LT",nextWeek:"dddd [klo] LT",lastDay:"[eilen] [klo] LT",lastWeek:"[viime] dddd[na] [klo] LT",sameElse:"L"},relativeTime:{future:"%s päästä",past:"%s sitten",s:a,ss:a,m:a,mm:a,h:a,hh:a,d:a,dd:a,M:a,MM:a,y:a,yy:a},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})})},function(e,a,t){Object.defineProperty(a,"__esModule",{value:!0}),t(124);var n=t(1);n.datepickerLocale("fr-ca","fr-CA",{closeText:"Fermer",prevText:"Précédent",nextText:"Suivant",currentText:"Aujourd'hui",monthNames:["janvier","février","mars","avril","mai","juin","juillet","août","septembre","octobre","novembre","décembre"],monthNamesShort:["janv.","févr.","mars","avril","mai","juin","juil.","août","sept.","oct.","nov.","déc."],dayNames:["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"],dayNamesShort:["dim.","lun.","mar.","mer.","jeu.","ven.","sam."],dayNamesMin:["D","L","M","M","J","V","S"],weekHeader:"Sem.",dateFormat:"yy-mm-dd",firstDay:0,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),n.locale("fr-ca",{buttonText:{year:"Année",month:"Mois",week:"Semaine",day:"Jour",list:"Mon planning"},allDayHtml:"Toute la
    journée",eventLimitText:"en plus",noEventsMessage:"Aucun événement à afficher"})},function(e,a,t){!function(e,a){a(t(0))}(0,function(e){return e.defineLocale("fr-ca",{months:"janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre".split("_"),monthsShort:"janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.".split("_"),monthsParseExact:!0,weekdays:"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi".split("_"),weekdaysShort:"dim._lun._mar._mer._jeu._ven._sam.".split("_"),weekdaysMin:"di_lu_ma_me_je_ve_sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Aujourd’hui à] LT",nextDay:"[Demain à] LT",nextWeek:"dddd [à] LT",lastDay:"[Hier à] LT",lastWeek:"dddd [dernier à] LT",sameElse:"L"},relativeTime:{future:"dans %s",past:"il y a %s",s:"quelques secondes",ss:"%d secondes",m:"une minute",mm:"%d minutes",h:"une heure",hh:"%d heures",d:"un jour",dd:"%d jours",M:"un mois",MM:"%d mois",y:"un an",yy:"%d ans"},dayOfMonthOrdinalParse:/\d{1,2}(er|e)/,ordinal:function(e,a){switch(a){default:case"M":case"Q":case"D":case"DDD":case"d":return e+(1===e?"er":"e");case"w":case"W":return e+(1===e?"re":"e")}}})})},function(e,a,t){Object.defineProperty(a,"__esModule",{value:!0}),t(126);var n=t(1);n.datepickerLocale("fr-ch","fr-CH",{closeText:"Fermer",prevText:"<Préc",nextText:"Suiv>",currentText:"Courant",monthNames:["janvier","février","mars","avril","mai","juin","juillet","août","septembre","octobre","novembre","décembre"],monthNamesShort:["janv.","févr.","mars","avril","mai","juin","juil.","août","sept.","oct.","nov.","déc."],dayNames:["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"],dayNamesShort:["dim.","lun.","mar.","mer.","jeu.","ven.","sam."],dayNamesMin:["D","L","M","M","J","V","S"],weekHeader:"Sm",dateFormat:"dd.mm.yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),n.locale("fr-ch",{buttonText:{year:"Année",month:"Mois",week:"Semaine",day:"Jour",list:"Mon planning"},allDayHtml:"Toute la
    journée",eventLimitText:"en plus",noEventsMessage:"Aucun événement à afficher"})},function(e,a,t){!function(e,a){a(t(0))}(0,function(e){return e.defineLocale("fr-ch",{months:"janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre".split("_"),monthsShort:"janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.".split("_"),monthsParseExact:!0,weekdays:"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi".split("_"),weekdaysShort:"dim._lun._mar._mer._jeu._ven._sam.".split("_"),weekdaysMin:"di_lu_ma_me_je_ve_sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Aujourd’hui à] LT",nextDay:"[Demain à] LT",nextWeek:"dddd [à] LT",lastDay:"[Hier à] LT",lastWeek:"dddd [dernier à] LT",sameElse:"L"},relativeTime:{future:"dans %s",past:"il y a %s",s:"quelques secondes",ss:"%d secondes",m:"une minute",mm:"%d minutes",h:"une heure",hh:"%d heures",d:"un jour",dd:"%d jours",M:"un mois",MM:"%d mois",y:"un an",yy:"%d ans"},dayOfMonthOrdinalParse:/\d{1,2}(er|e)/,ordinal:function(e,a){switch(a){default:case"M":case"Q":case"D":case"DDD":case"d":return e+(1===e?"er":"e");case"w":case"W":return e+(1===e?"re":"e")}},week:{dow:1,doy:4}})})},function(e,a,t){Object.defineProperty(a,"__esModule",{value:!0}),t(128);var n=t(1);n.datepickerLocale("fr","fr",{closeText:"Fermer",prevText:"Précédent",nextText:"Suivant",currentText:"Aujourd'hui",monthNames:["janvier","février","mars","avril","mai","juin","juillet","août","septembre","octobre","novembre","décembre"],monthNamesShort:["janv.","févr.","mars","avr.","mai","juin","juil.","août","sept.","oct.","nov.","déc."],dayNames:["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"],dayNamesShort:["dim.","lun.","mar.","mer.","jeu.","ven.","sam."],dayNamesMin:["D","L","M","M","J","V","S"],weekHeader:"Sem.",dateFormat:"dd/mm/yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),n.locale("fr",{buttonText:{year:"Année",month:"Mois",week:"Semaine",day:"Jour",list:"Mon planning"},allDayHtml:"Toute la
    journée",eventLimitText:"en plus",noEventsMessage:"Aucun événement à afficher"})},function(e,a,t){!function(e,a){a(t(0))}(0,function(e){return e.defineLocale("fr",{months:"janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre".split("_"),monthsShort:"janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.".split("_"),monthsParseExact:!0,weekdays:"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi".split("_"),weekdaysShort:"dim._lun._mar._mer._jeu._ven._sam.".split("_"),weekdaysMin:"di_lu_ma_me_je_ve_sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Aujourd’hui à] LT",nextDay:"[Demain à] LT",nextWeek:"dddd [à] LT",lastDay:"[Hier à] LT",lastWeek:"dddd [dernier à] LT",sameElse:"L"},relativeTime:{future:"dans %s",past:"il y a %s",s:"quelques secondes",ss:"%d secondes",m:"une minute",mm:"%d minutes",h:"une heure",hh:"%d heures",d:"un jour",dd:"%d jours",M:"un mois",MM:"%d mois",y:"un an",yy:"%d ans"},dayOfMonthOrdinalParse:/\d{1,2}(er|)/,ordinal:function(e,a){switch(a){case"D":return e+(1===e?"er":"");default:case"M":case"Q":case"DDD":case"d":return e+(1===e?"er":"e");case"w":case"W":return e+(1===e?"re":"e")}},week:{dow:1,doy:4}})})},function(e,a,t){Object.defineProperty(a,"__esModule",{value:!0}),t(130);var n=t(1);n.datepickerLocale("gl","gl",{closeText:"Pechar",prevText:"<Ant",nextText:"Seg>",currentText:"Hoxe",monthNames:["Xaneiro","Febreiro","Marzo","Abril","Maio","Xuño","Xullo","Agosto","Setembro","Outubro","Novembro","Decembro"],monthNamesShort:["Xan","Feb","Mar","Abr","Mai","Xuñ","Xul","Ago","Set","Out","Nov","Dec"],dayNames:["Domingo","Luns","Martes","Mércores","Xoves","Venres","Sábado"],dayNamesShort:["Dom","Lun","Mar","Mér","Xov","Ven","Sáb"],dayNamesMin:["Do","Lu","Ma","Mé","Xo","Ve","Sá"],weekHeader:"Sm",dateFormat:"dd/mm/yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),n.locale("gl",{buttonText:{month:"Mes",week:"Semana",day:"Día",list:"Axenda"},allDayHtml:"Todo
    o día",eventLimitText:"máis",noEventsMessage:"Non hai eventos para amosar"})},function(e,a,t){!function(e,a){a(t(0))}(0,function(e){return e.defineLocale("gl",{months:"xaneiro_febreiro_marzo_abril_maio_xuño_xullo_agosto_setembro_outubro_novembro_decembro".split("_"),monthsShort:"xan._feb._mar._abr._mai._xuñ._xul._ago._set._out._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"domingo_luns_martes_mércores_xoves_venres_sábado".split("_"),weekdaysShort:"dom._lun._mar._mér._xov._ven._sáb.".split("_"),weekdaysMin:"do_lu_ma_mé_xo_ve_sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY H:mm",LLLL:"dddd, D [de] MMMM [de] YYYY H:mm"},calendar:{sameDay:function(){return"[hoxe "+(1!==this.hours()?"ás":"á")+"] LT"},nextDay:function(){return"[mañá "+(1!==this.hours()?"ás":"á")+"] LT"},nextWeek:function(){return"dddd ["+(1!==this.hours()?"ás":"a")+"] LT"},lastDay:function(){return"[onte "+(1!==this.hours()?"á":"a")+"] LT"},lastWeek:function(){return"[o] dddd [pasado "+(1!==this.hours()?"ás":"a")+"] LT"},sameElse:"L"},relativeTime:{future:function(e){return 0===e.indexOf("un")?"n"+e:"en "+e},past:"hai %s",s:"uns segundos",ss:"%d segundos",m:"un minuto",mm:"%d minutos",h:"unha hora",hh:"%d horas",d:"un día",dd:"%d días",M:"un mes",MM:"%d meses",y:"un ano",yy:"%d anos"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}})})},function(e,a,t){Object.defineProperty(a,"__esModule",{value:!0}),t(132);var n=t(1);n.datepickerLocale("he","he",{closeText:"סגור",prevText:"<הקודם",nextText:"הבא>",currentText:"היום",monthNames:["ינואר","פברואר","מרץ","אפריל","מאי","יוני","יולי","אוגוסט","ספטמבר","אוקטובר","נובמבר","דצמבר"],monthNamesShort:["ינו","פבר","מרץ","אפר","מאי","יוני","יולי","אוג","ספט","אוק","נוב","דצמ"],dayNames:["ראשון","שני","שלישי","רביעי","חמישי","שישי","שבת"],dayNamesShort:["א'","ב'","ג'","ד'","ה'","ו'","שבת"],dayNamesMin:["א'","ב'","ג'","ד'","ה'","ו'","שבת"],weekHeader:"Wk",dateFormat:"dd/mm/yy",firstDay:0,isRTL:!0,showMonthAfterYear:!1,yearSuffix:""}),n.locale("he",{buttonText:{month:"חודש",week:"שבוע",day:"יום",list:"סדר יום"},allDayText:"כל היום",eventLimitText:"אחר",noEventsMessage:"אין אירועים להצגה",weekNumberTitle:"שבוע"})},function(e,a,t){!function(e,a){a(t(0))}(0,function(e){return e.defineLocale("he",{months:"ינואר_פברואר_מרץ_אפריל_מאי_יוני_יולי_אוגוסט_ספטמבר_אוקטובר_נובמבר_דצמבר".split("_"),monthsShort:"ינו׳_פבר׳_מרץ_אפר׳_מאי_יוני_יולי_אוג׳_ספט׳_אוק׳_נוב׳_דצמ׳".split("_"),weekdays:"ראשון_שני_שלישי_רביעי_חמישי_שישי_שבת".split("_"),weekdaysShort:"א׳_ב׳_ג׳_ד׳_ה׳_ו׳_ש׳".split("_"),weekdaysMin:"א_ב_ג_ד_ה_ו_ש".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D [ב]MMMM YYYY",LLL:"D [ב]MMMM YYYY HH:mm",LLLL:"dddd, D [ב]MMMM YYYY HH:mm",l:"D/M/YYYY",ll:"D MMM YYYY",lll:"D MMM YYYY HH:mm",llll:"ddd, D MMM YYYY HH:mm"},calendar:{sameDay:"[היום ב־]LT",nextDay:"[מחר ב־]LT",nextWeek:"dddd [בשעה] LT",lastDay:"[אתמול ב־]LT",lastWeek:"[ביום] dddd [האחרון בשעה] LT",sameElse:"L"},relativeTime:{future:"בעוד %s",past:"לפני %s",s:"מספר שניות",ss:"%d שניות",m:"דקה",mm:"%d דקות",h:"שעה",hh:function(e){return 2===e?"שעתיים":e+" שעות"},d:"יום",dd:function(e){return 2===e?"יומיים":e+" ימים"},M:"חודש",MM:function(e){return 2===e?"חודשיים":e+" חודשים"},y:"שנה",yy:function(e){return 2===e?"שנתיים":e%10==0&&10!==e?e+" שנה":e+" שנים"}},meridiemParse:/אחה"צ|לפנה"צ|אחרי הצהריים|לפני הצהריים|לפנות בוקר|בבוקר|בערב/i,isPM:function(e){return/^(אחה"צ|אחרי הצהריים|בערב)$/.test(e)},meridiem:function(e,a,t){return e<5?"לפנות בוקר":e<10?"בבוקר":e<12?t?'לפנה"צ':"לפני הצהריים":e<18?t?'אחה"צ':"אחרי הצהריים":"בערב"}})})},function(e,a,t){Object.defineProperty(a,"__esModule",{value:!0}),t(134);var n=t(1);n.datepickerLocale("hi","hi",{closeText:"बंद",prevText:"पिछला",nextText:"अगला",currentText:"आज",monthNames:["जनवरी ","फरवरी","मार्च","अप्रेल","मई","जून","जूलाई","अगस्त ","सितम्बर","अक्टूबर","नवम्बर","दिसम्बर"],monthNamesShort:["जन","फर","मार्च","अप्रेल","मई","जून","जूलाई","अग","सित","अक्ट","नव","दि"],dayNames:["रविवार","सोमवार","मंगलवार","बुधवार","गुरुवार","शुक्रवार","शनिवार"],dayNamesShort:["रवि","सोम","मंगल","बुध","गुरु","शुक्र","शनि"],dayNamesMin:["रवि","सोम","मंगल","बुध","गुरु","शुक्र","शनि"],weekHeader:"हफ्ता",dateFormat:"dd/mm/yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),n.locale("hi",{buttonText:{month:"महीना",week:"सप्ताह",day:"दिन",list:"कार्यसूची"},allDayText:"सभी दिन",eventLimitText:function(e){return"+अधिक "+e},noEventsMessage:"कोई घटनाओं को प्रदर्शित करने के लिए"})},function(e,a,t){!function(e,a){a(t(0))}(0,function(e){var a={1:"१",2:"२",3:"३",4:"४",5:"५",6:"६",7:"७",8:"८",9:"९",0:"०"},t={"१":"1","२":"2","३":"3","४":"4","५":"5","६":"6","७":"7","८":"8","९":"9","०":"0"};return e.defineLocale("hi",{months:"जनवरी_फ़रवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितम्बर_अक्टूबर_नवम्बर_दिसम्बर".split("_"),monthsShort:"जन._फ़र._मार्च_अप्रै._मई_जून_जुल._अग._सित._अक्टू._नव._दिस.".split("_"),monthsParseExact:!0,weekdays:"रविवार_सोमवार_मंगलवार_बुधवार_गुरूवार_शुक्रवार_शनिवार".split("_"),weekdaysShort:"रवि_सोम_मंगल_बुध_गुरू_शुक्र_शनि".split("_"),weekdaysMin:"र_सो_मं_बु_गु_शु_श".split("_"),longDateFormat:{LT:"A h:mm बजे",LTS:"A h:mm:ss बजे",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm बजे",LLLL:"dddd, D MMMM YYYY, A h:mm बजे"},calendar:{sameDay:"[आज] LT",nextDay:"[कल] LT",nextWeek:"dddd, LT",lastDay:"[कल] LT",lastWeek:"[पिछले] dddd, LT",sameElse:"L"},relativeTime:{future:"%s में",past:"%s पहले",s:"कुछ ही क्षण",ss:"%d सेकंड",m:"एक मिनट",mm:"%d मिनट",h:"एक घंटा",hh:"%d घंटे",d:"एक दिन",dd:"%d दिन",M:"एक महीने",MM:"%d महीने",y:"एक वर्ष",yy:"%d वर्ष"},preparse:function(e){return e.replace(/[१२३४५६७८९०]/g,function(e){return t[e]})},postformat:function(e){return e.replace(/\d/g,function(e){return a[e]})},meridiemParse:/रात|सुबह|दोपहर|शाम/,meridiemHour:function(e,a){return 12===e&&(e=0),"रात"===a?e<4?e:e+12:"सुबह"===a?e:"दोपहर"===a?e>=10?e:e+12:"शाम"===a?e+12:void 0},meridiem:function(e,a,t){return e<4?"रात":e<10?"सुबह":e<17?"दोपहर":e<20?"शाम":"रात"},week:{dow:0,doy:6}})})},function(e,a,t){Object.defineProperty(a,"__esModule",{value:!0}),t(136);var n=t(1);n.datepickerLocale("hr","hr",{closeText:"Zatvori",prevText:"<",nextText:">",currentText:"Danas",monthNames:["Siječanj","Veljača","Ožujak","Travanj","Svibanj","Lipanj","Srpanj","Kolovoz","Rujan","Listopad","Studeni","Prosinac"],monthNamesShort:["Sij","Velj","Ožu","Tra","Svi","Lip","Srp","Kol","Ruj","Lis","Stu","Pro"],dayNames:["Nedjelja","Ponedjeljak","Utorak","Srijeda","Četvrtak","Petak","Subota"],dayNamesShort:["Ned","Pon","Uto","Sri","Čet","Pet","Sub"],dayNamesMin:["Ne","Po","Ut","Sr","Če","Pe","Su"],weekHeader:"Tje",dateFormat:"dd.mm.yy.",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),n.locale("hr",{buttonText:{prev:"Prijašnji",next:"Sljedeći",month:"Mjesec",week:"Tjedan",day:"Dan",list:"Raspored"},allDayText:"Cijeli dan",eventLimitText:function(e){return"+ još "+e},noEventsMessage:"Nema događaja za prikaz"})},function(e,a,t){!function(e,a){a(t(0))}(0,function(e){function a(e,a,t){var n=e+" ";switch(t){case"ss":return n+=1===e?"sekunda":2===e||3===e||4===e?"sekunde":"sekundi";case"m":return a?"jedna minuta":"jedne minute";case"mm":return n+=1===e?"minuta":2===e||3===e||4===e?"minute":"minuta";case"h":return a?"jedan sat":"jednog sata";case"hh":return n+=1===e?"sat":2===e||3===e||4===e?"sata":"sati";case"dd":return n+=1===e?"dan":"dana";case"MM":return n+=1===e?"mjesec":2===e||3===e||4===e?"mjeseca":"mjeseci";case"yy":return n+=1===e?"godina":2===e||3===e||4===e?"godine":"godina"}}return e.defineLocale("hr",{months:{format:"siječnja_veljače_ožujka_travnja_svibnja_lipnja_srpnja_kolovoza_rujna_listopada_studenoga_prosinca".split("_"),standalone:"siječanj_veljača_ožujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac".split("_")},monthsShort:"sij._velj._ožu._tra._svi._lip._srp._kol._ruj._lis._stu._pro.".split("_"),monthsParseExact:!0,weekdays:"nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sri._čet._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_če_pe_su".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danas u] LT",nextDay:"[sutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedjelju] [u] LT";case 3:return"[u] [srijedu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[jučer u] LT",lastWeek:function(){switch(this.day()){case 0:case 3:return"[prošlu] dddd [u] LT";case 6:return"[prošle] [subote] [u] LT";case 1:case 2:case 4:case 5:return"[prošli] dddd [u] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"prije %s",s:"par sekundi",ss:a,m:a,mm:a,h:a,hh:a,d:"dan",dd:a,M:"mjesec",MM:a,y:"godinu",yy:a},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})})},function(e,a,t){Object.defineProperty(a,"__esModule",{value:!0}),t(138);var n=t(1);n.datepickerLocale("hu","hu",{closeText:"bezár",prevText:"vissza",nextText:"előre",currentText:"ma",monthNames:["Január","Február","Március","Április","Május","Június","Július","Augusztus","Szeptember","Október","November","December"],monthNamesShort:["Jan","Feb","Már","Ápr","Máj","Jún","Júl","Aug","Szep","Okt","Nov","Dec"],dayNames:["Vasárnap","Hétfő","Kedd","Szerda","Csütörtök","Péntek","Szombat"],dayNamesShort:["Vas","Hét","Ked","Sze","Csü","Pén","Szo"],dayNamesMin:["V","H","K","Sze","Cs","P","Szo"],weekHeader:"Hét",dateFormat:"yy.mm.dd.",firstDay:1,isRTL:!1,showMonthAfterYear:!0,yearSuffix:""}),n.locale("hu",{buttonText:{month:"Hónap",week:"Hét",day:"Nap",list:"Napló"},allDayText:"Egész nap",eventLimitText:"további",noEventsMessage:"Nincs megjeleníthető események"})},function(e,a,t){!function(e,a){a(t(0))}(0,function(e){function a(e,a,t,n){var r=e;switch(t){case"s":return n||a?"néhány másodperc":"néhány másodperce";case"ss":return r+(n||a)?" másodperc":" másodperce";case"m":return"egy"+(n||a?" perc":" perce");case"mm":return r+(n||a?" perc":" perce");case"h":return"egy"+(n||a?" óra":" órája");case"hh":return r+(n||a?" óra":" órája");case"d":return"egy"+(n||a?" nap":" napja");case"dd":return r+(n||a?" nap":" napja");case"M":return"egy"+(n||a?" hónap":" hónapja");case"MM":return r+(n||a?" hónap":" hónapja");case"y":return"egy"+(n||a?" év":" éve");case"yy":return r+(n||a?" év":" éve")}return""}function t(e){return(e?"":"[múlt] ")+"["+n[this.day()]+"] LT[-kor]"}var n="vasárnap hétfőn kedden szerdán csütörtökön pénteken szombaton".split(" ");return e.defineLocale("hu",{months:"január_február_március_április_május_június_július_augusztus_szeptember_október_november_december".split("_"),monthsShort:"jan_feb_márc_ápr_máj_jún_júl_aug_szept_okt_nov_dec".split("_"),weekdays:"vasárnap_hétfő_kedd_szerda_csütörtök_péntek_szombat".split("_"),weekdaysShort:"vas_hét_kedd_sze_csüt_pén_szo".split("_"),weekdaysMin:"v_h_k_sze_cs_p_szo".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"YYYY.MM.DD.",LL:"YYYY. MMMM D.",LLL:"YYYY. MMMM D. H:mm",LLLL:"YYYY. MMMM D., dddd H:mm"},meridiemParse:/de|du/i,isPM:function(e){return"u"===e.charAt(1).toLowerCase()},meridiem:function(e,a,t){return e<12?!0===t?"de":"DE":!0===t?"du":"DU"},calendar:{sameDay:"[ma] LT[-kor]",nextDay:"[holnap] LT[-kor]",nextWeek:function(){return t.call(this,!0)},lastDay:"[tegnap] LT[-kor]",lastWeek:function(){return t.call(this,!1)},sameElse:"L"},relativeTime:{future:"%s múlva",past:"%s",s:a,ss:a,m:a,mm:a,h:a,hh:a,d:a,dd:a,M:a,MM:a,y:a,yy:a},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})})},function(e,a,t){Object.defineProperty(a,"__esModule",{value:!0}),t(140);var n=t(1);n.datepickerLocale("id","id",{closeText:"Tutup",prevText:"<mundur",nextText:"maju>",currentText:"hari ini",monthNames:["Januari","Februari","Maret","April","Mei","Juni","Juli","Agustus","September","Oktober","Nopember","Desember"],monthNamesShort:["Jan","Feb","Mar","Apr","Mei","Jun","Jul","Agus","Sep","Okt","Nop","Des"],dayNames:["Minggu","Senin","Selasa","Rabu","Kamis","Jumat","Sabtu"],dayNamesShort:["Min","Sen","Sel","Rab","kam","Jum","Sab"],dayNamesMin:["Mg","Sn","Sl","Rb","Km","jm","Sb"],weekHeader:"Mg",dateFormat:"dd/mm/yy",firstDay:0,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),n.locale("id",{buttonText:{month:"Bulan",week:"Minggu",day:"Hari",list:"Agenda"},allDayHtml:"Sehari
    penuh",eventLimitText:"lebih",noEventsMessage:"Tidak ada acara untuk ditampilkan"})},function(e,a,t){!function(e,a){a(t(0))}(0,function(e){return e.defineLocale("id",{months:"Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember".split("_"),monthsShort:"Jan_Feb_Mar_Apr_Mei_Jun_Jul_Agt_Sep_Okt_Nov_Des".split("_"),weekdays:"Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu".split("_"),weekdaysShort:"Min_Sen_Sel_Rab_Kam_Jum_Sab".split("_"),weekdaysMin:"Mg_Sn_Sl_Rb_Km_Jm_Sb".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] HH.mm",LLLL:"dddd, D MMMM YYYY [pukul] HH.mm"},meridiemParse:/pagi|siang|sore|malam/,meridiemHour:function(e,a){return 12===e&&(e=0),"pagi"===a?e:"siang"===a?e>=11?e:e+12:"sore"===a||"malam"===a?e+12:void 0},meridiem:function(e,a,t){return e<11?"pagi":e<15?"siang":e<19?"sore":"malam"},calendar:{sameDay:"[Hari ini pukul] LT",nextDay:"[Besok pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kemarin pukul] LT",lastWeek:"dddd [lalu pukul] LT",sameElse:"L"},relativeTime:{future:"dalam %s",past:"%s yang lalu",s:"beberapa detik",ss:"%d detik",m:"semenit",mm:"%d menit",h:"sejam",hh:"%d jam",d:"sehari",dd:"%d hari",M:"sebulan",MM:"%d bulan",y:"setahun",yy:"%d tahun"},week:{dow:1,doy:7}})})},function(e,a,t){Object.defineProperty(a,"__esModule",{value:!0}),t(142);var n=t(1);n.datepickerLocale("is","is",{closeText:"Loka",prevText:"< Fyrri",nextText:"Næsti >",currentText:"Í dag",monthNames:["Janúar","Febrúar","Mars","Apríl","Maí","Júní","Júlí","Ágúst","September","Október","Nóvember","Desember"],monthNamesShort:["Jan","Feb","Mar","Apr","Maí","Jún","Júl","Ágú","Sep","Okt","Nóv","Des"],dayNames:["Sunnudagur","Mánudagur","Þriðjudagur","Miðvikudagur","Fimmtudagur","Föstudagur","Laugardagur"],dayNamesShort:["Sun","Mán","Þri","Mið","Fim","Fös","Lau"],dayNamesMin:["Su","Má","Þr","Mi","Fi","Fö","La"],weekHeader:"Vika",dateFormat:"dd.mm.yy",firstDay:0,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),n.locale("is",{buttonText:{month:"Mánuður",week:"Vika",day:"Dagur",list:"Dagskrá"},allDayHtml:"Allan
    daginn",eventLimitText:"meira",noEventsMessage:"Engir viðburðir til að sýna"})},function(e,a,t){!function(e,a){a(t(0))}(0,function(e){function a(e){return e%100==11||e%10!=1}function t(e,t,n,r){var s=e+" ";switch(n){case"s":return t||r?"nokkrar sekúndur":"nokkrum sekúndum";case"ss":return a(e)?s+(t||r?"sekúndur":"sekúndum"):s+"sekúnda";case"m":return t?"mínúta":"mínútu";case"mm":return a(e)?s+(t||r?"mínútur":"mínútum"):t?s+"mínúta":s+"mínútu";case"hh":return a(e)?s+(t||r?"klukkustundir":"klukkustundum"):s+"klukkustund";case"d":return t?"dagur":r?"dag":"degi";case"dd":return a(e)?t?s+"dagar":s+(r?"daga":"dögum"):t?s+"dagur":s+(r?"dag":"degi");case"M":return t?"mánuður":r?"mánuð":"mánuði";case"MM":return a(e)?t?s+"mánuðir":s+(r?"mánuði":"mánuðum"):t?s+"mánuður":s+(r?"mánuð":"mánuði");case"y":return t||r?"ár":"ári";case"yy":return a(e)?s+(t||r?"ár":"árum"):s+(t||r?"ár":"ári")}}return e.defineLocale("is",{months:"janúar_febrúar_mars_apríl_maí_júní_júlí_ágúst_september_október_nóvember_desember".split("_"),monthsShort:"jan_feb_mar_apr_maí_jún_júl_ágú_sep_okt_nóv_des".split("_"),weekdays:"sunnudagur_mánudagur_þriðjudagur_miðvikudagur_fimmtudagur_föstudagur_laugardagur".split("_"),weekdaysShort:"sun_mán_þri_mið_fim_fös_lau".split("_"),weekdaysMin:"Su_Má_Þr_Mi_Fi_Fö_La".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY [kl.] H:mm",LLLL:"dddd, D. MMMM YYYY [kl.] H:mm"},calendar:{sameDay:"[í dag kl.] LT",nextDay:"[á morgun kl.] LT",nextWeek:"dddd [kl.] LT",lastDay:"[í gær kl.] LT",lastWeek:"[síðasta] dddd [kl.] LT",sameElse:"L"},relativeTime:{future:"eftir %s",past:"fyrir %s síðan",s:t,ss:t,m:t,mm:t,h:"klukkustund",hh:t,d:t,dd:t,M:t,MM:t,y:t,yy:t},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})})},function(e,a,t){Object.defineProperty(a,"__esModule",{value:!0}),t(144);var n=t(1);n.datepickerLocale("it","it",{closeText:"Chiudi",prevText:"<Prec",nextText:"Succ>",currentText:"Oggi",monthNames:["Gennaio","Febbraio","Marzo","Aprile","Maggio","Giugno","Luglio","Agosto","Settembre","Ottobre","Novembre","Dicembre"],monthNamesShort:["Gen","Feb","Mar","Apr","Mag","Giu","Lug","Ago","Set","Ott","Nov","Dic"],dayNames:["Domenica","Lunedì","Martedì","Mercoledì","Giovedì","Venerdì","Sabato"],dayNamesShort:["Dom","Lun","Mar","Mer","Gio","Ven","Sab"],dayNamesMin:["Do","Lu","Ma","Me","Gi","Ve","Sa"],weekHeader:"Sm",dateFormat:"dd/mm/yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),n.locale("it",{buttonText:{month:"Mese",week:"Settimana",day:"Giorno",list:"Agenda"},allDayHtml:"Tutto il
    giorno",eventLimitText:function(e){return"+altri "+e},noEventsMessage:"Non ci sono eventi da visualizzare"})},function(e,a,t){!function(e,a){a(t(0))}(0,function(e){return e.defineLocale("it",{months:"gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre".split("_"),monthsShort:"gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic".split("_"),weekdays:"domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato".split("_"),weekdaysShort:"dom_lun_mar_mer_gio_ven_sab".split("_"),weekdaysMin:"do_lu_ma_me_gi_ve_sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Oggi alle] LT",nextDay:"[Domani alle] LT",nextWeek:"dddd [alle] LT",lastDay:"[Ieri alle] LT",lastWeek:function(){switch(this.day()){case 0:return"[la scorsa] dddd [alle] LT";default:return"[lo scorso] dddd [alle] LT"}},sameElse:"L"},relativeTime:{future:function(e){return(/^[0-9].+$/.test(e)?"tra":"in")+" "+e},past:"%s fa",s:"alcuni secondi",ss:"%d secondi",m:"un minuto",mm:"%d minuti",h:"un'ora",hh:"%d ore",d:"un giorno",dd:"%d giorni",M:"un mese",MM:"%d mesi",y:"un anno",yy:"%d anni"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}})})},function(e,a,t){Object.defineProperty(a,"__esModule",{value:!0}),t(146);var n=t(1);n.datepickerLocale("ja","ja",{closeText:"閉じる",prevText:"<前",nextText:"次>",currentText:"今日",monthNames:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],monthNamesShort:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],dayNames:["日曜日","月曜日","火曜日","水曜日","木曜日","金曜日","土曜日"],dayNamesShort:["日","月","火","水","木","金","土"],dayNamesMin:["日","月","火","水","木","金","土"],weekHeader:"週",dateFormat:"yy/mm/dd",firstDay:0,isRTL:!1,showMonthAfterYear:!0,yearSuffix:"年"}),n.locale("ja",{buttonText:{month:"月",week:"週",day:"日",list:"予定リスト"},allDayText:"終日",eventLimitText:function(e){return"他 "+e+" 件"},noEventsMessage:"イベントが表示されないように"})},function(e,a,t){!function(e,a){a(t(0))}(0,function(e){return e.defineLocale("ja",{months:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),weekdays:"日曜日_月曜日_火曜日_水曜日_木曜日_金曜日_土曜日".split("_"),weekdaysShort:"日_月_火_水_木_金_土".split("_"),weekdaysMin:"日_月_火_水_木_金_土".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY年M月D日",LLL:"YYYY年M月D日 HH:mm",LLLL:"YYYY年M月D日 HH:mm dddd",l:"YYYY/MM/DD",ll:"YYYY年M月D日",lll:"YYYY年M月D日 HH:mm",llll:"YYYY年M月D日 HH:mm dddd"},meridiemParse:/午前|午後/i,isPM:function(e){return"午後"===e},meridiem:function(e,a,t){return e<12?"午前":"午後"},calendar:{sameDay:"[今日] LT",nextDay:"[明日] LT",nextWeek:"[来週]dddd LT",lastDay:"[昨日] LT",lastWeek:"[前週]dddd LT",sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}日/,ordinal:function(e,a){switch(a){case"d":case"D":case"DDD":return e+"日";default:return e}},relativeTime:{future:"%s後",past:"%s前",s:"数秒",ss:"%d秒",m:"1分",mm:"%d分",h:"1時間",hh:"%d時間",d:"1日",dd:"%d日",M:"1ヶ月",MM:"%dヶ月",y:"1年",yy:"%d年"}})})},function(e,a,t){Object.defineProperty(a,"__esModule",{value:!0}),t(148);var n=t(1);n.datepickerLocale("ka","ka",{closeText:"დახურვა",prevText:"წინა",nextText:"შემდეგი",currentText:"დღეს",monthNames:["იანვარი","თებერვალი","მარტი","აპრილი","მაისი","ივნისი","ივლისი","აგვისტო","სექტემბერი","ოქტომბერი","ნოემბერი","დეკემბერი"],monthNamesShort:["იან","თებ","მარ","აპრ","მაი","ივნ","ივლ","აგვ","სექ","ოქტ","ნოე","დეკ"],dayNames:["კვირა","ორშაბათი","სამშაბათი","ოთხშაბათი","ხუთშაბათი","პარასკევი","შაბათი"],dayNamesShort:["კვი","ორშ","სამ","ოთხ","ხუთ","პარ","შაბ"],dayNamesMin:["კვ","ორ","სა","ოთ","ხუ","პა","შა"],weekHeader:"კვ",dateFormat:"dd.mm.yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),n.locale("ka",{buttonText:{month:"თვე",week:"კვირა",day:"დღე",list:"დღის წესრიგი"},allDayText:"მთელი დღე",eventLimitText:function(e){return"+ კიდევ "+e},noEventsMessage:"ღონისძიებები არ არის"})},function(e,a,t){!function(e,a){a(t(0))}(0,function(e){return e.defineLocale("ka",{months:{standalone:"იანვარი_თებერვალი_მარტი_აპრილი_მაისი_ივნისი_ივლისი_აგვისტო_სექტემბერი_ოქტომბერი_ნოემბერი_დეკემბერი".split("_"),format:"იანვარს_თებერვალს_მარტს_აპრილის_მაისს_ივნისს_ივლისს_აგვისტს_სექტემბერს_ოქტომბერს_ნოემბერს_დეკემბერს".split("_")},monthsShort:"იან_თებ_მარ_აპრ_მაი_ივნ_ივლ_აგვ_სექ_ოქტ_ნოე_დეკ".split("_"),weekdays:{standalone:"კვირა_ორშაბათი_სამშაბათი_ოთხშაბათი_ხუთშაბათი_პარასკევი_შაბათი".split("_"),format:"კვირას_ორშაბათს_სამშაბათს_ოთხშაბათს_ხუთშაბათს_პარასკევს_შაბათს".split("_"),isFormat:/(წინა|შემდეგ)/},weekdaysShort:"კვი_ორშ_სამ_ოთხ_ხუთ_პარ_შაბ".split("_"),weekdaysMin:"კვ_ორ_სა_ოთ_ხუ_პა_შა".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[დღეს] LT[-ზე]",nextDay:"[ხვალ] LT[-ზე]",lastDay:"[გუშინ] LT[-ზე]",nextWeek:"[შემდეგ] dddd LT[-ზე]",lastWeek:"[წინა] dddd LT-ზე",sameElse:"L"},relativeTime:{future:function(e){return/(წამი|წუთი|საათი|წელი)/.test(e)?e.replace(/ი$/,"ში"):e+"ში"},past:function(e){return/(წამი|წუთი|საათი|დღე|თვე)/.test(e)?e.replace(/(ი|ე)$/,"ის უკან"):/წელი/.test(e)?e.replace(/წელი$/,"წლის უკან"):void 0},s:"რამდენიმე წამი",ss:"%d წამი",m:"წუთი",mm:"%d წუთი",h:"საათი",hh:"%d საათი",d:"დღე",dd:"%d დღე",M:"თვე",MM:"%d თვე",y:"წელი",yy:"%d წელი"},dayOfMonthOrdinalParse:/0|1-ლი|მე-\d{1,2}|\d{1,2}-ე/,ordinal:function(e){return 0===e?e:1===e?e+"-ლი":e<20||e<=100&&e%20==0||e%100==0?"მე-"+e:e+"-ე"},week:{dow:1,doy:7}})})},function(e,a,t){Object.defineProperty(a,"__esModule",{value:!0}),t(150);var n=t(1);n.datepickerLocale("kk","kk",{closeText:"Жабу",prevText:"<Алдыңғы",nextText:"Келесі>",currentText:"Бүгін",monthNames:["Қаңтар","Ақпан","Наурыз","Сәуір","Мамыр","Маусым","Шілде","Тамыз","Қыркүйек","Қазан","Қараша","Желтоқсан"], -monthNamesShort:["Қаң","Ақп","Нау","Сәу","Мам","Мау","Шіл","Там","Қыр","Қаз","Қар","Жел"],dayNames:["Жексенбі","Дүйсенбі","Сейсенбі","Сәрсенбі","Бейсенбі","Жұма","Сенбі"],dayNamesShort:["жкс","дсн","ссн","срс","бсн","жма","снб"],dayNamesMin:["Жк","Дс","Сс","Ср","Бс","Жм","Сн"],weekHeader:"Не",dateFormat:"dd.mm.yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),n.locale("kk",{buttonText:{month:"Ай",week:"Апта",day:"Күн",list:"Күн тәртібі"},allDayText:"Күні бойы",eventLimitText:function(e){return"+ тағы "+e},noEventsMessage:"Көрсету үшін оқиғалар жоқ"})},function(e,a,t){!function(e,a){a(t(0))}(0,function(e){var a={0:"-ші",1:"-ші",2:"-ші",3:"-ші",4:"-ші",5:"-ші",6:"-шы",7:"-ші",8:"-ші",9:"-шы",10:"-шы",20:"-шы",30:"-шы",40:"-шы",50:"-ші",60:"-шы",70:"-ші",80:"-ші",90:"-шы",100:"-ші"};return e.defineLocale("kk",{months:"қаңтар_ақпан_наурыз_сәуір_мамыр_маусым_шілде_тамыз_қыркүйек_қазан_қараша_желтоқсан".split("_"),monthsShort:"қаң_ақп_нау_сәу_мам_мау_шіл_там_қыр_қаз_қар_жел".split("_"),weekdays:"жексенбі_дүйсенбі_сейсенбі_сәрсенбі_бейсенбі_жұма_сенбі".split("_"),weekdaysShort:"жек_дүй_сей_сәр_бей_жұм_сен".split("_"),weekdaysMin:"жк_дй_сй_ср_бй_жм_сн".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Бүгін сағат] LT",nextDay:"[Ертең сағат] LT",nextWeek:"dddd [сағат] LT",lastDay:"[Кеше сағат] LT",lastWeek:"[Өткен аптаның] dddd [сағат] LT",sameElse:"L"},relativeTime:{future:"%s ішінде",past:"%s бұрын",s:"бірнеше секунд",ss:"%d секунд",m:"бір минут",mm:"%d минут",h:"бір сағат",hh:"%d сағат",d:"бір күн",dd:"%d күн",M:"бір ай",MM:"%d ай",y:"бір жыл",yy:"%d жыл"},dayOfMonthOrdinalParse:/\d{1,2}-(ші|шы)/,ordinal:function(e){var t=e%10,n=e>=100?100:null;return e+(a[e]||a[t]||a[n])},week:{dow:1,doy:7}})})},function(e,a,t){Object.defineProperty(a,"__esModule",{value:!0}),t(152);var n=t(1);n.datepickerLocale("ko","ko",{closeText:"닫기",prevText:"이전달",nextText:"다음달",currentText:"오늘",monthNames:["1월","2월","3월","4월","5월","6월","7월","8월","9월","10월","11월","12월"],monthNamesShort:["1월","2월","3월","4월","5월","6월","7월","8월","9월","10월","11월","12월"],dayNames:["일요일","월요일","화요일","수요일","목요일","금요일","토요일"],dayNamesShort:["일","월","화","수","목","금","토"],dayNamesMin:["일","월","화","수","목","금","토"],weekHeader:"주",dateFormat:"yy. m. d.",firstDay:0,isRTL:!1,showMonthAfterYear:!0,yearSuffix:"년"}),n.locale("ko",{buttonText:{month:"월",week:"주",day:"일",list:"일정목록"},allDayText:"종일",eventLimitText:"개",noEventsMessage:"일정이 없습니다"})},function(e,a,t){!function(e,a){a(t(0))}(0,function(e){return e.defineLocale("ko",{months:"1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월".split("_"),monthsShort:"1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월".split("_"),weekdays:"일요일_월요일_화요일_수요일_목요일_금요일_토요일".split("_"),weekdaysShort:"일_월_화_수_목_금_토".split("_"),weekdaysMin:"일_월_화_수_목_금_토".split("_"),longDateFormat:{LT:"A h:mm",LTS:"A h:mm:ss",L:"YYYY.MM.DD.",LL:"YYYY년 MMMM D일",LLL:"YYYY년 MMMM D일 A h:mm",LLLL:"YYYY년 MMMM D일 dddd A h:mm",l:"YYYY.MM.DD.",ll:"YYYY년 MMMM D일",lll:"YYYY년 MMMM D일 A h:mm",llll:"YYYY년 MMMM D일 dddd A h:mm"},calendar:{sameDay:"오늘 LT",nextDay:"내일 LT",nextWeek:"dddd LT",lastDay:"어제 LT",lastWeek:"지난주 dddd LT",sameElse:"L"},relativeTime:{future:"%s 후",past:"%s 전",s:"몇 초",ss:"%d초",m:"1분",mm:"%d분",h:"한 시간",hh:"%d시간",d:"하루",dd:"%d일",M:"한 달",MM:"%d달",y:"일 년",yy:"%d년"},dayOfMonthOrdinalParse:/\d{1,2}(일|월|주)/,ordinal:function(e,a){switch(a){case"d":case"D":case"DDD":return e+"일";case"M":return e+"월";case"w":case"W":return e+"주";default:return e}},meridiemParse:/오전|오후/,isPM:function(e){return"오후"===e},meridiem:function(e,a,t){return e<12?"오전":"오후"}})})},function(e,a,t){Object.defineProperty(a,"__esModule",{value:!0}),t(154);var n=t(1);n.datepickerLocale("lb","lb",{closeText:"Fäerdeg",prevText:"Zréck",nextText:"Weider",currentText:"Haut",monthNames:["Januar","Februar","Mäerz","Abrëll","Mee","Juni","Juli","August","September","Oktober","November","Dezember"],monthNamesShort:["Jan","Feb","Mäe","Abr","Mee","Jun","Jul","Aug","Sep","Okt","Nov","Dez"],dayNames:["Sonndeg","Méindeg","Dënschdeg","Mëttwoch","Donneschdeg","Freideg","Samschdeg"],dayNamesShort:["Son","Méi","Dën","Mët","Don","Fre","Sam"],dayNamesMin:["So","Mé","Dë","Më","Do","Fr","Sa"],weekHeader:"W",dateFormat:"dd.mm.yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),n.locale("lb",{buttonText:{month:"Mount",week:"Woch",day:"Dag",list:"Terminiwwersiicht"},allDayText:"Ganzen Dag",eventLimitText:"méi",noEventsMessage:"Nee Evenementer ze affichéieren"})},function(e,a,t){!function(e,a){a(t(0))}(0,function(e){function a(e,a,t,n){var r={m:["eng Minutt","enger Minutt"],h:["eng Stonn","enger Stonn"],d:["een Dag","engem Dag"],M:["ee Mount","engem Mount"],y:["ee Joer","engem Joer"]};return a?r[t][0]:r[t][1]}function t(e){return r(e.substr(0,e.indexOf(" ")))?"a "+e:"an "+e}function n(e){return r(e.substr(0,e.indexOf(" ")))?"viru "+e:"virun "+e}function r(e){if(e=parseInt(e,10),isNaN(e))return!1;if(e<0)return!0;if(e<10)return 4<=e&&e<=7;if(e<100){var a=e%10,t=e/10;return r(0===a?t:a)}if(e<1e4){for(;e>=10;)e/=10;return r(e)}return e/=1e3,r(e)}return e.defineLocale("lb",{months:"Januar_Februar_Mäerz_Abrëll_Mee_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jan._Febr._Mrz._Abr._Mee_Jun._Jul._Aug._Sept._Okt._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Sonndeg_Méindeg_Dënschdeg_Mëttwoch_Donneschdeg_Freideg_Samschdeg".split("_"),weekdaysShort:"So._Mé._Dë._Më._Do._Fr._Sa.".split("_"),weekdaysMin:"So_Mé_Dë_Më_Do_Fr_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm [Auer]",LTS:"H:mm:ss [Auer]",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm [Auer]",LLLL:"dddd, D. MMMM YYYY H:mm [Auer]"},calendar:{sameDay:"[Haut um] LT",sameElse:"L",nextDay:"[Muer um] LT",nextWeek:"dddd [um] LT",lastDay:"[Gëschter um] LT",lastWeek:function(){switch(this.day()){case 2:case 4:return"[Leschten] dddd [um] LT";default:return"[Leschte] dddd [um] LT"}}},relativeTime:{future:t,past:n,s:"e puer Sekonnen",ss:"%d Sekonnen",m:a,mm:"%d Minutten",h:a,hh:"%d Stonnen",d:a,dd:"%d Deeg",M:a,MM:"%d Méint",y:a,yy:"%d Joer"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})})},function(e,a,t){Object.defineProperty(a,"__esModule",{value:!0}),t(156);var n=t(1);n.datepickerLocale("lt","lt",{closeText:"Uždaryti",prevText:"<Atgal",nextText:"Pirmyn>",currentText:"Šiandien",monthNames:["Sausis","Vasaris","Kovas","Balandis","Gegužė","Birželis","Liepa","Rugpjūtis","Rugsėjis","Spalis","Lapkritis","Gruodis"],monthNamesShort:["Sau","Vas","Kov","Bal","Geg","Bir","Lie","Rugp","Rugs","Spa","Lap","Gru"],dayNames:["sekmadienis","pirmadienis","antradienis","trečiadienis","ketvirtadienis","penktadienis","šeštadienis"],dayNamesShort:["sek","pir","ant","tre","ket","pen","šeš"],dayNamesMin:["Se","Pr","An","Tr","Ke","Pe","Še"],weekHeader:"SAV",dateFormat:"yy-mm-dd",firstDay:1,isRTL:!1,showMonthAfterYear:!0,yearSuffix:""}),n.locale("lt",{buttonText:{month:"Mėnuo",week:"Savaitė",day:"Diena",list:"Darbotvarkė"},allDayText:"Visą dieną",eventLimitText:"daugiau",noEventsMessage:"Nėra įvykių rodyti"})},function(e,a,t){!function(e,a){a(t(0))}(0,function(e){function a(e,a,t,n){return a?"kelios sekundės":n?"kelių sekundžių":"kelias sekundes"}function t(e,a,t,n){return a?r(t)[0]:n?r(t)[1]:r(t)[2]}function n(e){return e%10==0||e>10&&e<20}function r(e){return d[e].split("_")}function s(e,a,s,d){var i=e+" ";return 1===e?i+t(e,a,s[0],d):a?i+(n(e)?r(s)[1]:r(s)[0]):d?i+r(s)[1]:i+(n(e)?r(s)[1]:r(s)[2])}var d={ss:"sekundė_sekundžių_sekundes",m:"minutė_minutės_minutę",mm:"minutės_minučių_minutes",h:"valanda_valandos_valandą",hh:"valandos_valandų_valandas",d:"diena_dienos_dieną",dd:"dienos_dienų_dienas",M:"mėnuo_mėnesio_mėnesį",MM:"mėnesiai_mėnesių_mėnesius",y:"metai_metų_metus",yy:"metai_metų_metus"};return e.defineLocale("lt",{months:{format:"sausio_vasario_kovo_balandžio_gegužės_birželio_liepos_rugpjūčio_rugsėjo_spalio_lapkričio_gruodžio".split("_"),standalone:"sausis_vasaris_kovas_balandis_gegužė_birželis_liepa_rugpjūtis_rugsėjis_spalis_lapkritis_gruodis".split("_"),isFormat:/D[oD]?(\[[^\[\]]*\]|\s)+MMMM?|MMMM?(\[[^\[\]]*\]|\s)+D[oD]?/},monthsShort:"sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd".split("_"),weekdays:{format:"sekmadienį_pirmadienį_antradienį_trečiadienį_ketvirtadienį_penktadienį_šeštadienį".split("_"),standalone:"sekmadienis_pirmadienis_antradienis_trečiadienis_ketvirtadienis_penktadienis_šeštadienis".split("_"),isFormat:/dddd HH:mm/},weekdaysShort:"Sek_Pir_Ant_Tre_Ket_Pen_Šeš".split("_"),weekdaysMin:"S_P_A_T_K_Pn_Š".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"YYYY [m.] MMMM D [d.]",LLL:"YYYY [m.] MMMM D [d.], HH:mm [val.]",LLLL:"YYYY [m.] MMMM D [d.], dddd, HH:mm [val.]",l:"YYYY-MM-DD",ll:"YYYY [m.] MMMM D [d.]",lll:"YYYY [m.] MMMM D [d.], HH:mm [val.]",llll:"YYYY [m.] MMMM D [d.], ddd, HH:mm [val.]"},calendar:{sameDay:"[Šiandien] LT",nextDay:"[Rytoj] LT",nextWeek:"dddd LT",lastDay:"[Vakar] LT",lastWeek:"[Praėjusį] dddd LT",sameElse:"L"},relativeTime:{future:"po %s",past:"prieš %s",s:a,ss:s,m:t,mm:s,h:t,hh:s,d:t,dd:s,M:t,MM:s,y:t,yy:s},dayOfMonthOrdinalParse:/\d{1,2}-oji/,ordinal:function(e){return e+"-oji"},week:{dow:1,doy:4}})})},function(e,a,t){Object.defineProperty(a,"__esModule",{value:!0}),t(158);var n=t(1);n.datepickerLocale("lv","lv",{closeText:"Aizvērt",prevText:"Iepr.",nextText:"Nāk.",currentText:"Šodien",monthNames:["Janvāris","Februāris","Marts","Aprīlis","Maijs","Jūnijs","Jūlijs","Augusts","Septembris","Oktobris","Novembris","Decembris"],monthNamesShort:["Jan","Feb","Mar","Apr","Mai","Jūn","Jūl","Aug","Sep","Okt","Nov","Dec"],dayNames:["svētdiena","pirmdiena","otrdiena","trešdiena","ceturtdiena","piektdiena","sestdiena"],dayNamesShort:["svt","prm","otr","tre","ctr","pkt","sst"],dayNamesMin:["Sv","Pr","Ot","Tr","Ct","Pk","Ss"],weekHeader:"Ned.",dateFormat:"dd.mm.yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),n.locale("lv",{buttonText:{month:"Mēnesis",week:"Nedēļa",day:"Diena",list:"Dienas kārtība"},allDayText:"Visu dienu",eventLimitText:function(e){return"+vēl "+e},noEventsMessage:"Nav notikumu"})},function(e,a,t){!function(e,a){a(t(0))}(0,function(e){function a(e,a,t){return t?a%10==1&&a%100!=11?e[2]:e[3]:a%10==1&&a%100!=11?e[0]:e[1]}function t(e,t,n){return e+" "+a(s[n],e,t)}function n(e,t,n){return a(s[n],e,t)}function r(e,a){return a?"dažas sekundes":"dažām sekundēm"}var s={ss:"sekundes_sekundēm_sekunde_sekundes".split("_"),m:"minūtes_minūtēm_minūte_minūtes".split("_"),mm:"minūtes_minūtēm_minūte_minūtes".split("_"),h:"stundas_stundām_stunda_stundas".split("_"),hh:"stundas_stundām_stunda_stundas".split("_"),d:"dienas_dienām_diena_dienas".split("_"),dd:"dienas_dienām_diena_dienas".split("_"),M:"mēneša_mēnešiem_mēnesis_mēneši".split("_"),MM:"mēneša_mēnešiem_mēnesis_mēneši".split("_"),y:"gada_gadiem_gads_gadi".split("_"),yy:"gada_gadiem_gads_gadi".split("_")};return e.defineLocale("lv",{months:"janvāris_februāris_marts_aprīlis_maijs_jūnijs_jūlijs_augusts_septembris_oktobris_novembris_decembris".split("_"),monthsShort:"jan_feb_mar_apr_mai_jūn_jūl_aug_sep_okt_nov_dec".split("_"),weekdays:"svētdiena_pirmdiena_otrdiena_trešdiena_ceturtdiena_piektdiena_sestdiena".split("_"),weekdaysShort:"Sv_P_O_T_C_Pk_S".split("_"),weekdaysMin:"Sv_P_O_T_C_Pk_S".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY.",LL:"YYYY. [gada] D. MMMM",LLL:"YYYY. [gada] D. MMMM, HH:mm",LLLL:"YYYY. [gada] D. MMMM, dddd, HH:mm"},calendar:{sameDay:"[Šodien pulksten] LT",nextDay:"[Rīt pulksten] LT",nextWeek:"dddd [pulksten] LT",lastDay:"[Vakar pulksten] LT",lastWeek:"[Pagājušā] dddd [pulksten] LT",sameElse:"L"},relativeTime:{future:"pēc %s",past:"pirms %s",s:r,ss:t,m:n,mm:t,h:n,hh:t,d:n,dd:t,M:n,MM:t,y:n,yy:t},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})})},function(e,a,t){Object.defineProperty(a,"__esModule",{value:!0}),t(160);var n=t(1);n.datepickerLocale("mk","mk",{closeText:"Затвори",prevText:"<",nextText:">",currentText:"Денес",monthNames:["Јануари","Февруари","Март","Април","Мај","Јуни","Јули","Август","Септември","Октомври","Ноември","Декември"],monthNamesShort:["Јан","Фев","Мар","Апр","Мај","Јун","Јул","Авг","Сеп","Окт","Ное","Дек"],dayNames:["Недела","Понеделник","Вторник","Среда","Четврток","Петок","Сабота"],dayNamesShort:["Нед","Пон","Вто","Сре","Чет","Пет","Саб"],dayNamesMin:["Не","По","Вт","Ср","Че","Пе","Са"],weekHeader:"Сед",dateFormat:"dd.mm.yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),n.locale("mk",{buttonText:{month:"Месец",week:"Недела",day:"Ден",list:"График"},allDayText:"Цел ден",eventLimitText:function(e){return"+повеќе "+e},noEventsMessage:"Нема настани за прикажување"})},function(e,a,t){!function(e,a){a(t(0))}(0,function(e){return e.defineLocale("mk",{months:"јануари_февруари_март_април_мај_јуни_јули_август_септември_октомври_ноември_декември".split("_"),monthsShort:"јан_фев_мар_апр_мај_јун_јул_авг_сеп_окт_ное_дек".split("_"),weekdays:"недела_понеделник_вторник_среда_четврток_петок_сабота".split("_"),weekdaysShort:"нед_пон_вто_сре_чет_пет_саб".split("_"),weekdaysMin:"нe_пo_вт_ср_че_пе_сa".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"D.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY H:mm",LLLL:"dddd, D MMMM YYYY H:mm"},calendar:{sameDay:"[Денес во] LT",nextDay:"[Утре во] LT",nextWeek:"[Во] dddd [во] LT",lastDay:"[Вчера во] LT",lastWeek:function(){switch(this.day()){case 0:case 3:case 6:return"[Изминатата] dddd [во] LT";case 1:case 2:case 4:case 5:return"[Изминатиот] dddd [во] LT"}},sameElse:"L"},relativeTime:{future:"после %s",past:"пред %s",s:"неколку секунди",ss:"%d секунди",m:"минута",mm:"%d минути",h:"час",hh:"%d часа",d:"ден",dd:"%d дена",M:"месец",MM:"%d месеци",y:"година",yy:"%d години"},dayOfMonthOrdinalParse:/\d{1,2}-(ев|ен|ти|ви|ри|ми)/,ordinal:function(e){var a=e%10,t=e%100;return 0===e?e+"-ев":0===t?e+"-ен":t>10&&t<20?e+"-ти":1===a?e+"-ви":2===a?e+"-ри":7===a||8===a?e+"-ми":e+"-ти"},week:{dow:1,doy:7}})})},function(e,a,t){Object.defineProperty(a,"__esModule",{value:!0}),t(162);var n=t(1);n.datepickerLocale("ms-my","ms",{closeText:"Tutup",prevText:"<Sebelum",nextText:"Selepas>",currentText:"hari ini",monthNames:["Januari","Februari","Mac","April","Mei","Jun","Julai","Ogos","September","Oktober","November","Disember"],monthNamesShort:["Jan","Feb","Mac","Apr","Mei","Jun","Jul","Ogo","Sep","Okt","Nov","Dis"],dayNames:["Ahad","Isnin","Selasa","Rabu","Khamis","Jumaat","Sabtu"],dayNamesShort:["Aha","Isn","Sel","Rab","kha","Jum","Sab"],dayNamesMin:["Ah","Is","Se","Ra","Kh","Ju","Sa"],weekHeader:"Mg",dateFormat:"dd/mm/yy",firstDay:0,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),n.locale("ms-my",{buttonText:{month:"Bulan",week:"Minggu",day:"Hari",list:"Agenda"},allDayText:"Sepanjang hari",eventLimitText:function(e){return"masih ada "+e+" acara"},noEventsMessage:"Tiada peristiwa untuk dipaparkan"})},function(e,a,t){!function(e,a){a(t(0))}(0,function(e){return e.defineLocale("ms-my",{months:"Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember".split("_"),monthsShort:"Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis".split("_"),weekdays:"Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu".split("_"),weekdaysShort:"Ahd_Isn_Sel_Rab_Kha_Jum_Sab".split("_"),weekdaysMin:"Ah_Is_Sl_Rb_Km_Jm_Sb".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] HH.mm",LLLL:"dddd, D MMMM YYYY [pukul] HH.mm"},meridiemParse:/pagi|tengahari|petang|malam/,meridiemHour:function(e,a){return 12===e&&(e=0),"pagi"===a?e:"tengahari"===a?e>=11?e:e+12:"petang"===a||"malam"===a?e+12:void 0},meridiem:function(e,a,t){return e<11?"pagi":e<15?"tengahari":e<19?"petang":"malam"},calendar:{sameDay:"[Hari ini pukul] LT",nextDay:"[Esok pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kelmarin pukul] LT",lastWeek:"dddd [lepas pukul] LT",sameElse:"L"},relativeTime:{future:"dalam %s",past:"%s yang lepas",s:"beberapa saat",ss:"%d saat",m:"seminit",mm:"%d minit",h:"sejam",hh:"%d jam",d:"sehari",dd:"%d hari",M:"sebulan",MM:"%d bulan",y:"setahun",yy:"%d tahun"},week:{dow:1,doy:7}})})},function(e,a,t){Object.defineProperty(a,"__esModule",{value:!0}),t(164);var n=t(1);n.datepickerLocale("ms","ms",{closeText:"Tutup",prevText:"<Sebelum",nextText:"Selepas>",currentText:"hari ini",monthNames:["Januari","Februari","Mac","April","Mei","Jun","Julai","Ogos","September","Oktober","November","Disember"],monthNamesShort:["Jan","Feb","Mac","Apr","Mei","Jun","Jul","Ogo","Sep","Okt","Nov","Dis"],dayNames:["Ahad","Isnin","Selasa","Rabu","Khamis","Jumaat","Sabtu"],dayNamesShort:["Aha","Isn","Sel","Rab","kha","Jum","Sab"],dayNamesMin:["Ah","Is","Se","Ra","Kh","Ju","Sa"],weekHeader:"Mg",dateFormat:"dd/mm/yy",firstDay:0,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),n.locale("ms",{buttonText:{month:"Bulan",week:"Minggu",day:"Hari",list:"Agenda"},allDayText:"Sepanjang hari",eventLimitText:function(e){return"masih ada "+e+" acara"},noEventsMessage:"Tiada peristiwa untuk dipaparkan"})},function(e,a,t){!function(e,a){a(t(0))}(0,function(e){return e.defineLocale("ms",{months:"Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember".split("_"),monthsShort:"Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis".split("_"),weekdays:"Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu".split("_"),weekdaysShort:"Ahd_Isn_Sel_Rab_Kha_Jum_Sab".split("_"),weekdaysMin:"Ah_Is_Sl_Rb_Km_Jm_Sb".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] HH.mm",LLLL:"dddd, D MMMM YYYY [pukul] HH.mm"},meridiemParse:/pagi|tengahari|petang|malam/,meridiemHour:function(e,a){return 12===e&&(e=0),"pagi"===a?e:"tengahari"===a?e>=11?e:e+12:"petang"===a||"malam"===a?e+12:void 0},meridiem:function(e,a,t){return e<11?"pagi":e<15?"tengahari":e<19?"petang":"malam"},calendar:{sameDay:"[Hari ini pukul] LT",nextDay:"[Esok pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kelmarin pukul] LT",lastWeek:"dddd [lepas pukul] LT",sameElse:"L"},relativeTime:{future:"dalam %s",past:"%s yang lepas",s:"beberapa saat",ss:"%d saat",m:"seminit",mm:"%d minit",h:"sejam",hh:"%d jam",d:"sehari",dd:"%d hari",M:"sebulan",MM:"%d bulan",y:"setahun",yy:"%d tahun"},week:{dow:1,doy:7}})})},function(e,a,t){Object.defineProperty(a,"__esModule",{value:!0}),t(166);var n=t(1);n.datepickerLocale("nb","nb",{closeText:"Lukk",prevText:"«Forrige",nextText:"Neste»",currentText:"I dag",monthNames:["januar","februar","mars","april","mai","juni","juli","august","september","oktober","november","desember"],monthNamesShort:["jan","feb","mar","apr","mai","jun","jul","aug","sep","okt","nov","des"],dayNamesShort:["søn","man","tir","ons","tor","fre","lør"],dayNames:["søndag","mandag","tirsdag","onsdag","torsdag","fredag","lørdag"],dayNamesMin:["sø","ma","ti","on","to","fr","lø"],weekHeader:"Uke",dateFormat:"dd.mm.yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),n.locale("nb",{buttonText:{month:"Måned",week:"Uke",day:"Dag",list:"Agenda"},allDayText:"Hele dagen",eventLimitText:"til",noEventsMessage:"Ingen hendelser å vise"})},function(e,a,t){!function(e,a){a(t(0))}(0,function(e){return e.defineLocale("nb",{months:"januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember".split("_"),monthsShort:"jan._feb._mars_april_mai_juni_juli_aug._sep._okt._nov._des.".split("_"),monthsParseExact:!0,weekdays:"søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag".split("_"),weekdaysShort:"sø._ma._ti._on._to._fr._lø.".split("_"),weekdaysMin:"sø_ma_ti_on_to_fr_lø".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY [kl.] HH:mm",LLLL:"dddd D. MMMM YYYY [kl.] HH:mm"},calendar:{sameDay:"[i dag kl.] LT",nextDay:"[i morgen kl.] LT",nextWeek:"dddd [kl.] LT",lastDay:"[i går kl.] LT",lastWeek:"[forrige] dddd [kl.] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"%s siden",s:"noen sekunder",ss:"%d sekunder",m:"ett minutt",mm:"%d minutter",h:"en time",hh:"%d timer",d:"en dag",dd:"%d dager",M:"en måned",MM:"%d måneder",y:"ett år",yy:"%d år"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})})},function(e,a,t){Object.defineProperty(a,"__esModule",{value:!0}),t(168);var n=t(1);n.datepickerLocale("nl-be","nl-BE",{closeText:"Sluiten",prevText:"←",nextText:"→",currentText:"Vandaag",monthNames:["januari","februari","maart","april","mei","juni","juli","augustus","september","oktober","november","december"],monthNamesShort:["jan","feb","mrt","apr","mei","jun","jul","aug","sep","okt","nov","dec"],dayNames:["zondag","maandag","dinsdag","woensdag","donderdag","vrijdag","zaterdag"],dayNamesShort:["zon","maa","din","woe","don","vri","zat"],dayNamesMin:["zo","ma","di","wo","do","vr","za"],weekHeader:"Wk",dateFormat:"dd/mm/yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),n.locale("nl-be",{buttonText:{month:"Maand",week:"Week",day:"Dag",list:"Agenda"},allDayText:"Hele dag",eventLimitText:"extra",noEventsMessage:"Geen evenementen om te laten zien"})},function(e,a,t){!function(e,a){a(t(0))}(0,function(e){var a="jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.".split("_"),t="jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec".split("_"),n=[/^jan/i,/^feb/i,/^maart|mrt.?$/i,/^apr/i,/^mei$/i,/^jun[i.]?$/i,/^jul[i.]?$/i,/^aug/i,/^sep/i,/^okt/i,/^nov/i,/^dec/i],r=/^(januari|februari|maart|april|mei|april|ju[nl]i|augustus|september|oktober|november|december|jan\.?|feb\.?|mrt\.?|apr\.?|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i;return e.defineLocale("nl-be",{months:"januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december".split("_"),monthsShort:function(e,n){return e?/-MMM-/.test(n)?t[e.month()]:a[e.month()]:a},monthsRegex:r,monthsShortRegex:r,monthsStrictRegex:/^(januari|februari|maart|mei|ju[nl]i|april|augustus|september|oktober|november|december)/i,monthsShortStrictRegex:/^(jan\.?|feb\.?|mrt\.?|apr\.?|mei|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i,monthsParse:n,longMonthsParse:n,shortMonthsParse:n,weekdays:"zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag".split("_"),weekdaysShort:"zo._ma._di._wo._do._vr._za.".split("_"),weekdaysMin:"zo_ma_di_wo_do_vr_za".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[vandaag om] LT",nextDay:"[morgen om] LT",nextWeek:"dddd [om] LT",lastDay:"[gisteren om] LT",lastWeek:"[afgelopen] dddd [om] LT",sameElse:"L"},relativeTime:{future:"over %s",past:"%s geleden",s:"een paar seconden",ss:"%d seconden",m:"één minuut",mm:"%d minuten",h:"één uur",hh:"%d uur",d:"één dag",dd:"%d dagen",M:"één maand",MM:"%d maanden",y:"één jaar",yy:"%d jaar"},dayOfMonthOrdinalParse:/\d{1,2}(ste|de)/,ordinal:function(e){return e+(1===e||8===e||e>=20?"ste":"de")},week:{dow:1,doy:4}})})},function(e,a,t){Object.defineProperty(a,"__esModule",{value:!0}),t(170);var n=t(1);n.datepickerLocale("nl","nl",{closeText:"Sluiten",prevText:"←",nextText:"→",currentText:"Vandaag",monthNames:["januari","februari","maart","april","mei","juni","juli","augustus","september","oktober","november","december"],monthNamesShort:["jan","feb","mrt","apr","mei","jun","jul","aug","sep","okt","nov","dec"],dayNames:["zondag","maandag","dinsdag","woensdag","donderdag","vrijdag","zaterdag"],dayNamesShort:["zon","maa","din","woe","don","vri","zat"],dayNamesMin:["zo","ma","di","wo","do","vr","za"],weekHeader:"Wk",dateFormat:"dd-mm-yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),n.locale("nl",{buttonText:{year:"Jaar",month:"Maand",week:"Week",day:"Dag",list:"Agenda"},allDayText:"Hele dag",eventLimitText:"extra",noEventsMessage:"Geen evenementen om te laten zien"})},function(e,a,t){!function(e,a){a(t(0))}(0,function(e){var a="jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.".split("_"),t="jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec".split("_"),n=[/^jan/i,/^feb/i,/^maart|mrt.?$/i,/^apr/i,/^mei$/i,/^jun[i.]?$/i,/^jul[i.]?$/i,/^aug/i,/^sep/i,/^okt/i,/^nov/i,/^dec/i],r=/^(januari|februari|maart|april|mei|april|ju[nl]i|augustus|september|oktober|november|december|jan\.?|feb\.?|mrt\.?|apr\.?|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i;return e.defineLocale("nl",{months:"januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december".split("_"),monthsShort:function(e,n){return e?/-MMM-/.test(n)?t[e.month()]:a[e.month()]:a},monthsRegex:r,monthsShortRegex:r,monthsStrictRegex:/^(januari|februari|maart|mei|ju[nl]i|april|augustus|september|oktober|november|december)/i,monthsShortStrictRegex:/^(jan\.?|feb\.?|mrt\.?|apr\.?|mei|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i,monthsParse:n,longMonthsParse:n,shortMonthsParse:n,weekdays:"zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag".split("_"),weekdaysShort:"zo._ma._di._wo._do._vr._za.".split("_"),weekdaysMin:"zo_ma_di_wo_do_vr_za".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[vandaag om] LT",nextDay:"[morgen om] LT",nextWeek:"dddd [om] LT",lastDay:"[gisteren om] LT",lastWeek:"[afgelopen] dddd [om] LT",sameElse:"L"},relativeTime:{future:"over %s",past:"%s geleden",s:"een paar seconden",ss:"%d seconden",m:"één minuut",mm:"%d minuten",h:"één uur",hh:"%d uur",d:"één dag",dd:"%d dagen",M:"één maand",MM:"%d maanden",y:"één jaar",yy:"%d jaar"},dayOfMonthOrdinalParse:/\d{1,2}(ste|de)/,ordinal:function(e){return e+(1===e||8===e||e>=20?"ste":"de")},week:{dow:1,doy:4}})})},function(e,a,t){Object.defineProperty(a,"__esModule",{value:!0}),t(172);var n=t(1);n.datepickerLocale("nn","nn",{closeText:"Lukk",prevText:"«Førre",nextText:"Neste»",currentText:"I dag",monthNames:["januar","februar","mars","april","mai","juni","juli","august","september","oktober","november","desember"],monthNamesShort:["jan","feb","mar","apr","mai","jun","jul","aug","sep","okt","nov","des"],dayNamesShort:["sun","mån","tys","ons","tor","fre","lau"],dayNames:["sundag","måndag","tysdag","onsdag","torsdag","fredag","laurdag"],dayNamesMin:["su","må","ty","on","to","fr","la"],weekHeader:"Veke",dateFormat:"dd.mm.yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),n.locale("nn",{buttonText:{month:"Månad",week:"Veke",day:"Dag",list:"Agenda"},allDayText:"Heile dagen",eventLimitText:"til",noEventsMessage:"Ingen hendelser å vise"})},function(e,a,t){!function(e,a){a(t(0))}(0,function(e){return e.defineLocale("nn",{months:"januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember".split("_"),monthsShort:"jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des".split("_"),weekdays:"sundag_måndag_tysdag_onsdag_torsdag_fredag_laurdag".split("_"),weekdaysShort:"sun_mån_tys_ons_tor_fre_lau".split("_"),weekdaysMin:"su_må_ty_on_to_fr_lø".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY [kl.] H:mm",LLLL:"dddd D. MMMM YYYY [kl.] HH:mm"},calendar:{sameDay:"[I dag klokka] LT",nextDay:"[I morgon klokka] LT",nextWeek:"dddd [klokka] LT",lastDay:"[I går klokka] LT",lastWeek:"[Føregåande] dddd [klokka] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"%s sidan",s:"nokre sekund",ss:"%d sekund",m:"eit minutt",mm:"%d minutt",h:"ein time",hh:"%d timar",d:"ein dag",dd:"%d dagar",M:"ein månad",MM:"%d månader",y:"eit år",yy:"%d år"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})})},function(e,a,t){Object.defineProperty(a,"__esModule",{value:!0}),t(174);var n=t(1);n.datepickerLocale("pl","pl",{closeText:"Zamknij",prevText:"<Poprzedni",nextText:"Następny>",currentText:"Dziś",monthNames:["Styczeń","Luty","Marzec","Kwiecień","Maj","Czerwiec","Lipiec","Sierpień","Wrzesień","Październik","Listopad","Grudzień"],monthNamesShort:["Sty","Lu","Mar","Kw","Maj","Cze","Lip","Sie","Wrz","Pa","Lis","Gru"],dayNames:["Niedziela","Poniedziałek","Wtorek","Środa","Czwartek","Piątek","Sobota"],dayNamesShort:["Nie","Pn","Wt","Śr","Czw","Pt","So"],dayNamesMin:["N","Pn","Wt","Śr","Cz","Pt","So"],weekHeader:"Tydz",dateFormat:"dd.mm.yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),n.locale("pl",{buttonText:{month:"Miesiąc",week:"Tydzień",day:"Dzień",list:"Plan dnia"},allDayText:"Cały dzień",eventLimitText:"więcej",noEventsMessage:"Brak wydarzeń do wyświetlenia"})},function(e,a,t){!function(e,a){a(t(0))}(0,function(e){function a(e){return e%10<5&&e%10>1&&~~(e/10)%10!=1}function t(e,t,n){var r=e+" ";switch(n){case"ss":return r+(a(e)?"sekundy":"sekund");case"m":return t?"minuta":"minutę";case"mm":return r+(a(e)?"minuty":"minut");case"h":return t?"godzina":"godzinę";case"hh":return r+(a(e)?"godziny":"godzin");case"MM":return r+(a(e)?"miesiące":"miesięcy");case"yy":return r+(a(e)?"lata":"lat")}}var n="styczeń_luty_marzec_kwiecień_maj_czerwiec_lipiec_sierpień_wrzesień_październik_listopad_grudzień".split("_"),r="stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_września_października_listopada_grudnia".split("_");return e.defineLocale("pl",{months:function(e,a){return e?""===a?"("+r[e.month()]+"|"+n[e.month()]+")":/D MMMM/.test(a)?r[e.month()]:n[e.month()]:n},monthsShort:"sty_lut_mar_kwi_maj_cze_lip_sie_wrz_paź_lis_gru".split("_"),weekdays:"niedziela_poniedziałek_wtorek_środa_czwartek_piątek_sobota".split("_"),weekdaysShort:"ndz_pon_wt_śr_czw_pt_sob".split("_"),weekdaysMin:"Nd_Pn_Wt_Śr_Cz_Pt_So".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Dziś o] LT",nextDay:"[Jutro o] LT",nextWeek:function(){switch(this.day()){case 0:return"[W niedzielę o] LT";case 2:return"[We wtorek o] LT";case 3:return"[W środę o] LT";case 6:return"[W sobotę o] LT";default:return"[W] dddd [o] LT"}},lastDay:"[Wczoraj o] LT",lastWeek:function(){switch(this.day()){case 0:return"[W zeszłą niedzielę o] LT";case 3:return"[W zeszłą środę o] LT";case 6:return"[W zeszłą sobotę o] LT";default:return"[W zeszły] dddd [o] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"%s temu",s:"kilka sekund",ss:t,m:t,mm:t,h:t,hh:t,d:"1 dzień",dd:"%d dni",M:"miesiąc",MM:t,y:"rok",yy:t},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})})},function(e,a,t){Object.defineProperty(a,"__esModule",{value:!0}),t(176);var n=t(1);n.datepickerLocale("pt-br","pt-BR",{closeText:"Fechar",prevText:"<Anterior",nextText:"Próximo>",currentText:"Hoje",monthNames:["Janeiro","Fevereiro","Março","Abril","Maio","Junho","Julho","Agosto","Setembro","Outubro","Novembro","Dezembro"],monthNamesShort:["Jan","Fev","Mar","Abr","Mai","Jun","Jul","Ago","Set","Out","Nov","Dez"],dayNames:["Domingo","Segunda-feira","Terça-feira","Quarta-feira","Quinta-feira","Sexta-feira","Sábado"],dayNamesShort:["Dom","Seg","Ter","Qua","Qui","Sex","Sáb"],dayNamesMin:["Dom","Seg","Ter","Qua","Qui","Sex","Sáb"],weekHeader:"Sm",dateFormat:"dd/mm/yy",firstDay:0,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),n.locale("pt-br",{buttonText:{month:"Mês",week:"Semana",day:"Dia",list:"Compromissos"},allDayText:"dia inteiro",eventLimitText:function(e){return"mais +"+e},noEventsMessage:"Não há eventos para mostrar"})},function(e,a,t){!function(e,a){a(t(0))}(0,function(e){return e.defineLocale("pt-br",{months:"janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro".split("_"),monthsShort:"jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez".split("_"),weekdays:"Domingo_Segunda-feira_Terça-feira_Quarta-feira_Quinta-feira_Sexta-feira_Sábado".split("_"),weekdaysShort:"Dom_Seg_Ter_Qua_Qui_Sex_Sáb".split("_"),weekdaysMin:"Do_2ª_3ª_4ª_5ª_6ª_Sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY [às] HH:mm", -LLLL:"dddd, D [de] MMMM [de] YYYY [às] HH:mm"},calendar:{sameDay:"[Hoje às] LT",nextDay:"[Amanhã às] LT",nextWeek:"dddd [às] LT",lastDay:"[Ontem às] LT",lastWeek:function(){return 0===this.day()||6===this.day()?"[Último] dddd [às] LT":"[Última] dddd [às] LT"},sameElse:"L"},relativeTime:{future:"em %s",past:"há %s",s:"poucos segundos",ss:"%d segundos",m:"um minuto",mm:"%d minutos",h:"uma hora",hh:"%d horas",d:"um dia",dd:"%d dias",M:"um mês",MM:"%d meses",y:"um ano",yy:"%d anos"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº"})})},function(e,a,t){Object.defineProperty(a,"__esModule",{value:!0}),t(178);var n=t(1);n.datepickerLocale("pt","pt",{closeText:"Fechar",prevText:"Anterior",nextText:"Seguinte",currentText:"Hoje",monthNames:["Janeiro","Fevereiro","Março","Abril","Maio","Junho","Julho","Agosto","Setembro","Outubro","Novembro","Dezembro"],monthNamesShort:["Jan","Fev","Mar","Abr","Mai","Jun","Jul","Ago","Set","Out","Nov","Dez"],dayNames:["Domingo","Segunda-feira","Terça-feira","Quarta-feira","Quinta-feira","Sexta-feira","Sábado"],dayNamesShort:["Dom","Seg","Ter","Qua","Qui","Sex","Sáb"],dayNamesMin:["Dom","Seg","Ter","Qua","Qui","Sex","Sáb"],weekHeader:"Sem",dateFormat:"dd/mm/yy",firstDay:0,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),n.locale("pt",{buttonText:{month:"Mês",week:"Semana",day:"Dia",list:"Agenda"},allDayText:"Todo o dia",eventLimitText:"mais",noEventsMessage:"Não há eventos para mostrar"})},function(e,a,t){!function(e,a){a(t(0))}(0,function(e){return e.defineLocale("pt",{months:"janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro".split("_"),monthsShort:"jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez".split("_"),weekdays:"Domingo_Segunda-feira_Terça-feira_Quarta-feira_Quinta-feira_Sexta-feira_Sábado".split("_"),weekdaysShort:"Dom_Seg_Ter_Qua_Qui_Sex_Sáb".split("_"),weekdaysMin:"Do_2ª_3ª_4ª_5ª_6ª_Sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY HH:mm",LLLL:"dddd, D [de] MMMM [de] YYYY HH:mm"},calendar:{sameDay:"[Hoje às] LT",nextDay:"[Amanhã às] LT",nextWeek:"dddd [às] LT",lastDay:"[Ontem às] LT",lastWeek:function(){return 0===this.day()||6===this.day()?"[Último] dddd [às] LT":"[Última] dddd [às] LT"},sameElse:"L"},relativeTime:{future:"em %s",past:"há %s",s:"segundos",ss:"%d segundos",m:"um minuto",mm:"%d minutos",h:"uma hora",hh:"%d horas",d:"um dia",dd:"%d dias",M:"um mês",MM:"%d meses",y:"um ano",yy:"%d anos"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}})})},function(e,a,t){Object.defineProperty(a,"__esModule",{value:!0}),t(180);var n=t(1);n.datepickerLocale("ro","ro",{closeText:"Închide",prevText:"« Luna precedentă",nextText:"Luna următoare »",currentText:"Azi",monthNames:["Ianuarie","Februarie","Martie","Aprilie","Mai","Iunie","Iulie","August","Septembrie","Octombrie","Noiembrie","Decembrie"],monthNamesShort:["Ian","Feb","Mar","Apr","Mai","Iun","Iul","Aug","Sep","Oct","Nov","Dec"],dayNames:["Duminică","Luni","Marţi","Miercuri","Joi","Vineri","Sâmbătă"],dayNamesShort:["Dum","Lun","Mar","Mie","Joi","Vin","Sâm"],dayNamesMin:["Du","Lu","Ma","Mi","Jo","Vi","Sâ"],weekHeader:"Săpt",dateFormat:"dd.mm.yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),n.locale("ro",{buttonText:{prev:"precedentă",next:"următoare",month:"Lună",week:"Săptămână",day:"Zi",list:"Agendă"},allDayText:"Toată ziua",eventLimitText:function(e){return"+alte "+e},noEventsMessage:"Nu există evenimente de afișat"})},function(e,a,t){!function(e,a){a(t(0))}(0,function(e){function a(e,a,t){var n={ss:"secunde",mm:"minute",hh:"ore",dd:"zile",MM:"luni",yy:"ani"},r=" ";return(e%100>=20||e>=100&&e%100==0)&&(r=" de "),e+r+n[t]}return e.defineLocale("ro",{months:"ianuarie_februarie_martie_aprilie_mai_iunie_iulie_august_septembrie_octombrie_noiembrie_decembrie".split("_"),monthsShort:"ian._febr._mart._apr._mai_iun._iul._aug._sept._oct._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"duminică_luni_marți_miercuri_joi_vineri_sâmbătă".split("_"),weekdaysShort:"Dum_Lun_Mar_Mie_Joi_Vin_Sâm".split("_"),weekdaysMin:"Du_Lu_Ma_Mi_Jo_Vi_Sâ".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY H:mm",LLLL:"dddd, D MMMM YYYY H:mm"},calendar:{sameDay:"[azi la] LT",nextDay:"[mâine la] LT",nextWeek:"dddd [la] LT",lastDay:"[ieri la] LT",lastWeek:"[fosta] dddd [la] LT",sameElse:"L"},relativeTime:{future:"peste %s",past:"%s în urmă",s:"câteva secunde",ss:a,m:"un minut",mm:a,h:"o oră",hh:a,d:"o zi",dd:a,M:"o lună",MM:a,y:"un an",yy:a},week:{dow:1,doy:7}})})},function(e,a,t){Object.defineProperty(a,"__esModule",{value:!0}),t(182);var n=t(1);n.datepickerLocale("ru","ru",{closeText:"Закрыть",prevText:"<Пред",nextText:"След>",currentText:"Сегодня",monthNames:["Январь","Февраль","Март","Апрель","Май","Июнь","Июль","Август","Сентябрь","Октябрь","Ноябрь","Декабрь"],monthNamesShort:["Янв","Фев","Мар","Апр","Май","Июн","Июл","Авг","Сен","Окт","Ноя","Дек"],dayNames:["воскресенье","понедельник","вторник","среда","четверг","пятница","суббота"],dayNamesShort:["вск","пнд","втр","срд","чтв","птн","сбт"],dayNamesMin:["Вс","Пн","Вт","Ср","Чт","Пт","Сб"],weekHeader:"Нед",dateFormat:"dd.mm.yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),n.locale("ru",{buttonText:{month:"Месяц",week:"Неделя",day:"День",list:"Повестка дня"},allDayText:"Весь день",eventLimitText:function(e){return"+ ещё "+e},noEventsMessage:"Нет событий для отображения"})},function(e,a,t){!function(e,a){a(t(0))}(0,function(e){function a(e,a){var t=e.split("_");return a%10==1&&a%100!=11?t[0]:a%10>=2&&a%10<=4&&(a%100<10||a%100>=20)?t[1]:t[2]}function t(e,t,n){var r={ss:t?"секунда_секунды_секунд":"секунду_секунды_секунд",mm:t?"минута_минуты_минут":"минуту_минуты_минут",hh:"час_часа_часов",dd:"день_дня_дней",MM:"месяц_месяца_месяцев",yy:"год_года_лет"};return"m"===n?t?"минута":"минуту":e+" "+a(r[n],+e)}var n=[/^янв/i,/^фев/i,/^мар/i,/^апр/i,/^ма[йя]/i,/^июн/i,/^июл/i,/^авг/i,/^сен/i,/^окт/i,/^ноя/i,/^дек/i];return e.defineLocale("ru",{months:{format:"января_февраля_марта_апреля_мая_июня_июля_августа_сентября_октября_ноября_декабря".split("_"),standalone:"январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь".split("_")},monthsShort:{format:"янв._февр._мар._апр._мая_июня_июля_авг._сент._окт._нояб._дек.".split("_"),standalone:"янв._февр._март_апр._май_июнь_июль_авг._сент._окт._нояб._дек.".split("_")},weekdays:{standalone:"воскресенье_понедельник_вторник_среда_четверг_пятница_суббота".split("_"),format:"воскресенье_понедельник_вторник_среду_четверг_пятницу_субботу".split("_"),isFormat:/\[ ?[Вв] ?(?:прошлую|следующую|эту)? ?\] ?dddd/},weekdaysShort:"вс_пн_вт_ср_чт_пт_сб".split("_"),weekdaysMin:"вс_пн_вт_ср_чт_пт_сб".split("_"),monthsParse:n,longMonthsParse:n,shortMonthsParse:n,monthsRegex:/^(январ[ья]|янв\.?|феврал[ья]|февр?\.?|марта?|мар\.?|апрел[ья]|апр\.?|ма[йя]|июн[ья]|июн\.?|июл[ья]|июл\.?|августа?|авг\.?|сентябр[ья]|сент?\.?|октябр[ья]|окт\.?|ноябр[ья]|нояб?\.?|декабр[ья]|дек\.?)/i,monthsShortRegex:/^(январ[ья]|янв\.?|феврал[ья]|февр?\.?|марта?|мар\.?|апрел[ья]|апр\.?|ма[йя]|июн[ья]|июн\.?|июл[ья]|июл\.?|августа?|авг\.?|сентябр[ья]|сент?\.?|октябр[ья]|окт\.?|ноябр[ья]|нояб?\.?|декабр[ья]|дек\.?)/i,monthsStrictRegex:/^(январ[яь]|феврал[яь]|марта?|апрел[яь]|ма[яй]|июн[яь]|июл[яь]|августа?|сентябр[яь]|октябр[яь]|ноябр[яь]|декабр[яь])/i,monthsShortStrictRegex:/^(янв\.|февр?\.|мар[т.]|апр\.|ма[яй]|июн[ья.]|июл[ья.]|авг\.|сент?\.|окт\.|нояб?\.|дек\.)/i,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY г.",LLL:"D MMMM YYYY г., H:mm",LLLL:"dddd, D MMMM YYYY г., H:mm"},calendar:{sameDay:"[Сегодня в] LT",nextDay:"[Завтра в] LT",lastDay:"[Вчера в] LT",nextWeek:function(e){if(e.week()===this.week())return 2===this.day()?"[Во] dddd [в] LT":"[В] dddd [в] LT";switch(this.day()){case 0:return"[В следующее] dddd [в] LT";case 1:case 2:case 4:return"[В следующий] dddd [в] LT";case 3:case 5:case 6:return"[В следующую] dddd [в] LT"}},lastWeek:function(e){if(e.week()===this.week())return 2===this.day()?"[Во] dddd [в] LT":"[В] dddd [в] LT";switch(this.day()){case 0:return"[В прошлое] dddd [в] LT";case 1:case 2:case 4:return"[В прошлый] dddd [в] LT";case 3:case 5:case 6:return"[В прошлую] dddd [в] LT"}},sameElse:"L"},relativeTime:{future:"через %s",past:"%s назад",s:"несколько секунд",ss:t,m:t,mm:t,h:"час",hh:t,d:"день",dd:t,M:"месяц",MM:t,y:"год",yy:t},meridiemParse:/ночи|утра|дня|вечера/i,isPM:function(e){return/^(дня|вечера)$/.test(e)},meridiem:function(e,a,t){return e<4?"ночи":e<12?"утра":e<17?"дня":"вечера"},dayOfMonthOrdinalParse:/\d{1,2}-(й|го|я)/,ordinal:function(e,a){switch(a){case"M":case"d":case"DDD":return e+"-й";case"D":return e+"-го";case"w":case"W":return e+"-я";default:return e}},week:{dow:1,doy:4}})})},function(e,a,t){Object.defineProperty(a,"__esModule",{value:!0}),t(184);var n=t(1);n.datepickerLocale("sk","sk",{closeText:"Zavrieť",prevText:"<Predchádzajúci",nextText:"Nasledujúci>",currentText:"Dnes",monthNames:["január","február","marec","apríl","máj","jún","júl","august","september","október","november","december"],monthNamesShort:["Jan","Feb","Mar","Apr","Máj","Jún","Júl","Aug","Sep","Okt","Nov","Dec"],dayNames:["nedeľa","pondelok","utorok","streda","štvrtok","piatok","sobota"],dayNamesShort:["Ned","Pon","Uto","Str","Štv","Pia","Sob"],dayNamesMin:["Ne","Po","Ut","St","Št","Pia","So"],weekHeader:"Ty",dateFormat:"dd.mm.yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),n.locale("sk",{buttonText:{month:"Mesiac",week:"Týždeň",day:"Deň",list:"Rozvrh"},allDayText:"Celý deň",eventLimitText:function(e){return"+ďalšie: "+e},noEventsMessage:"Žiadne akcie na zobrazenie"})},function(e,a,t){!function(e,a){a(t(0))}(0,function(e){function a(e){return e>1&&e<5}function t(e,t,n,r){var s=e+" ";switch(n){case"s":return t||r?"pár sekúnd":"pár sekundami";case"ss":return t||r?s+(a(e)?"sekundy":"sekúnd"):s+"sekundami";case"m":return t?"minúta":r?"minútu":"minútou";case"mm":return t||r?s+(a(e)?"minúty":"minút"):s+"minútami";case"h":return t?"hodina":r?"hodinu":"hodinou";case"hh":return t||r?s+(a(e)?"hodiny":"hodín"):s+"hodinami";case"d":return t||r?"deň":"dňom";case"dd":return t||r?s+(a(e)?"dni":"dní"):s+"dňami";case"M":return t||r?"mesiac":"mesiacom";case"MM":return t||r?s+(a(e)?"mesiace":"mesiacov"):s+"mesiacmi";case"y":return t||r?"rok":"rokom";case"yy":return t||r?s+(a(e)?"roky":"rokov"):s+"rokmi"}}var n="január_február_marec_apríl_máj_jún_júl_august_september_október_november_december".split("_"),r="jan_feb_mar_apr_máj_jún_júl_aug_sep_okt_nov_dec".split("_");return e.defineLocale("sk",{months:n,monthsShort:r,weekdays:"nedeľa_pondelok_utorok_streda_štvrtok_piatok_sobota".split("_"),weekdaysShort:"ne_po_ut_st_št_pi_so".split("_"),weekdaysMin:"ne_po_ut_st_št_pi_so".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd D. MMMM YYYY H:mm"},calendar:{sameDay:"[dnes o] LT",nextDay:"[zajtra o] LT",nextWeek:function(){switch(this.day()){case 0:return"[v nedeľu o] LT";case 1:case 2:return"[v] dddd [o] LT";case 3:return"[v stredu o] LT";case 4:return"[vo štvrtok o] LT";case 5:return"[v piatok o] LT";case 6:return"[v sobotu o] LT"}},lastDay:"[včera o] LT",lastWeek:function(){switch(this.day()){case 0:return"[minulú nedeľu o] LT";case 1:case 2:return"[minulý] dddd [o] LT";case 3:return"[minulú stredu o] LT";case 4:case 5:return"[minulý] dddd [o] LT";case 6:return"[minulú sobotu o] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"pred %s",s:t,ss:t,m:t,mm:t,h:t,hh:t,d:t,dd:t,M:t,MM:t,y:t,yy:t},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})})},function(e,a,t){Object.defineProperty(a,"__esModule",{value:!0}),t(186);var n=t(1);n.datepickerLocale("sl","sl",{closeText:"Zapri",prevText:"<Prejšnji",nextText:"Naslednji>",currentText:"Trenutni",monthNames:["Januar","Februar","Marec","April","Maj","Junij","Julij","Avgust","September","Oktober","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","Maj","Jun","Jul","Avg","Sep","Okt","Nov","Dec"],dayNames:["Nedelja","Ponedeljek","Torek","Sreda","Četrtek","Petek","Sobota"],dayNamesShort:["Ned","Pon","Tor","Sre","Čet","Pet","Sob"],dayNamesMin:["Ne","Po","To","Sr","Če","Pe","So"],weekHeader:"Teden",dateFormat:"dd.mm.yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),n.locale("sl",{buttonText:{month:"Mesec",week:"Teden",day:"Dan",list:"Dnevni red"},allDayText:"Ves dan",eventLimitText:"več",noEventsMessage:"Ni dogodkov za prikaz"})},function(e,a,t){!function(e,a){a(t(0))}(0,function(e){function a(e,a,t,n){var r=e+" ";switch(t){case"s":return a||n?"nekaj sekund":"nekaj sekundami";case"ss":return r+=1===e?a?"sekundo":"sekundi":2===e?a||n?"sekundi":"sekundah":e<5?a||n?"sekunde":"sekundah":"sekund";case"m":return a?"ena minuta":"eno minuto";case"mm":return r+=1===e?a?"minuta":"minuto":2===e?a||n?"minuti":"minutama":e<5?a||n?"minute":"minutami":a||n?"minut":"minutami";case"h":return a?"ena ura":"eno uro";case"hh":return r+=1===e?a?"ura":"uro":2===e?a||n?"uri":"urama":e<5?a||n?"ure":"urami":a||n?"ur":"urami";case"d":return a||n?"en dan":"enim dnem";case"dd":return r+=1===e?a||n?"dan":"dnem":2===e?a||n?"dni":"dnevoma":a||n?"dni":"dnevi";case"M":return a||n?"en mesec":"enim mesecem";case"MM":return r+=1===e?a||n?"mesec":"mesecem":2===e?a||n?"meseca":"mesecema":e<5?a||n?"mesece":"meseci":a||n?"mesecev":"meseci";case"y":return a||n?"eno leto":"enim letom";case"yy":return r+=1===e?a||n?"leto":"letom":2===e?a||n?"leti":"letoma":e<5?a||n?"leta":"leti":a||n?"let":"leti"}}return e.defineLocale("sl",{months:"januar_februar_marec_april_maj_junij_julij_avgust_september_oktober_november_december".split("_"),monthsShort:"jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"nedelja_ponedeljek_torek_sreda_četrtek_petek_sobota".split("_"),weekdaysShort:"ned._pon._tor._sre._čet._pet._sob.".split("_"),weekdaysMin:"ne_po_to_sr_če_pe_so".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danes ob] LT",nextDay:"[jutri ob] LT",nextWeek:function(){switch(this.day()){case 0:return"[v] [nedeljo] [ob] LT";case 3:return"[v] [sredo] [ob] LT";case 6:return"[v] [soboto] [ob] LT";case 1:case 2:case 4:case 5:return"[v] dddd [ob] LT"}},lastDay:"[včeraj ob] LT",lastWeek:function(){switch(this.day()){case 0:return"[prejšnjo] [nedeljo] [ob] LT";case 3:return"[prejšnjo] [sredo] [ob] LT";case 6:return"[prejšnjo] [soboto] [ob] LT";case 1:case 2:case 4:case 5:return"[prejšnji] dddd [ob] LT"}},sameElse:"L"},relativeTime:{future:"čez %s",past:"pred %s",s:a,ss:a,m:a,mm:a,h:a,hh:a,d:a,dd:a,M:a,MM:a,y:a,yy:a},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})})},function(e,a,t){Object.defineProperty(a,"__esModule",{value:!0}),t(188);var n=t(1);n.datepickerLocale("sq","sq",{closeText:"mbylle",prevText:"<mbrapa",nextText:"Përpara>",currentText:"sot",monthNames:["Janar","Shkurt","Mars","Prill","Maj","Qershor","Korrik","Gusht","Shtator","Tetor","Nëntor","Dhjetor"],monthNamesShort:["Jan","Shk","Mar","Pri","Maj","Qer","Kor","Gus","Sht","Tet","Nën","Dhj"],dayNames:["E Diel","E Hënë","E Martë","E Mërkurë","E Enjte","E Premte","E Shtune"],dayNamesShort:["Di","Hë","Ma","Më","En","Pr","Sh"],dayNamesMin:["Di","Hë","Ma","Më","En","Pr","Sh"],weekHeader:"Ja",dateFormat:"dd.mm.yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),n.locale("sq",{buttonText:{month:"Muaj",week:"Javë",day:"Ditë",list:"Listë"},allDayHtml:"Gjithë
    ditën",eventLimitText:function(e){return"+më tepër "+e},noEventsMessage:"Nuk ka evente për të shfaqur"})},function(e,a,t){!function(e,a){a(t(0))}(0,function(e){return e.defineLocale("sq",{months:"Janar_Shkurt_Mars_Prill_Maj_Qershor_Korrik_Gusht_Shtator_Tetor_Nëntor_Dhjetor".split("_"),monthsShort:"Jan_Shk_Mar_Pri_Maj_Qer_Kor_Gus_Sht_Tet_Nën_Dhj".split("_"),weekdays:"E Diel_E Hënë_E Martë_E Mërkurë_E Enjte_E Premte_E Shtunë".split("_"),weekdaysShort:"Die_Hën_Mar_Mër_Enj_Pre_Sht".split("_"),weekdaysMin:"D_H_Ma_Më_E_P_Sh".split("_"),weekdaysParseExact:!0,meridiemParse:/PD|MD/,isPM:function(e){return"M"===e.charAt(0)},meridiem:function(e,a,t){return e<12?"PD":"MD"},longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Sot në] LT",nextDay:"[Nesër në] LT",nextWeek:"dddd [në] LT",lastDay:"[Dje në] LT",lastWeek:"dddd [e kaluar në] LT",sameElse:"L"},relativeTime:{future:"në %s",past:"%s më parë",s:"disa sekonda",ss:"%d sekonda",m:"një minutë",mm:"%d minuta",h:"një orë",hh:"%d orë",d:"një ditë",dd:"%d ditë",M:"një muaj",MM:"%d muaj",y:"një vit",yy:"%d vite"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})})},function(e,a,t){Object.defineProperty(a,"__esModule",{value:!0}),t(190);var n=t(1);n.datepickerLocale("sr-cyrl","sr",{closeText:"Затвори",prevText:"<",nextText:">",currentText:"Данас",monthNames:["Јануар","Фебруар","Март","Април","Мај","Јун","Јул","Август","Септембар","Октобар","Новембар","Децембар"],monthNamesShort:["Јан","Феб","Мар","Апр","Мај","Јун","Јул","Авг","Сеп","Окт","Нов","Дец"],dayNames:["Недеља","Понедељак","Уторак","Среда","Четвртак","Петак","Субота"],dayNamesShort:["Нед","Пон","Уто","Сре","Чет","Пет","Суб"],dayNamesMin:["Не","По","Ут","Ср","Че","Пе","Су"],weekHeader:"Сед",dateFormat:"dd.mm.yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),n.locale("sr-cyrl",{buttonText:{prev:"Претходна",next:"следећи",month:"Месец",week:"Недеља",day:"Дан",list:"Планер"},allDayText:"Цео дан",eventLimitText:function(e){return"+ још "+e},noEventsMessage:"Нема догађаја за приказ"})},function(e,a,t){!function(e,a){a(t(0))}(0,function(e){var a={words:{ss:["секунда","секунде","секунди"],m:["један минут","једне минуте"],mm:["минут","минуте","минута"],h:["један сат","једног сата"],hh:["сат","сата","сати"],dd:["дан","дана","дана"],MM:["месец","месеца","месеци"],yy:["година","године","година"]},correctGrammaticalCase:function(e,a){return 1===e?a[0]:e>=2&&e<=4?a[1]:a[2]},translate:function(e,t,n){var r=a.words[n];return 1===n.length?t?r[0]:r[1]:e+" "+a.correctGrammaticalCase(e,r)}};return e.defineLocale("sr-cyrl",{months:"јануар_фебруар_март_април_мај_јун_јул_август_септембар_октобар_новембар_децембар".split("_"),monthsShort:"јан._феб._мар._апр._мај_јун_јул_авг._сеп._окт._нов._дец.".split("_"),monthsParseExact:!0,weekdays:"недеља_понедељак_уторак_среда_четвртак_петак_субота".split("_"),weekdaysShort:"нед._пон._уто._сре._чет._пет._суб.".split("_"),weekdaysMin:"не_по_ут_ср_че_пе_су".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[данас у] LT",nextDay:"[сутра у] LT",nextWeek:function(){switch(this.day()){case 0:return"[у] [недељу] [у] LT";case 3:return"[у] [среду] [у] LT";case 6:return"[у] [суботу] [у] LT";case 1:case 2:case 4:case 5:return"[у] dddd [у] LT"}},lastDay:"[јуче у] LT",lastWeek:function(){return["[прошле] [недеље] [у] LT","[прошлог] [понедељка] [у] LT","[прошлог] [уторка] [у] LT","[прошле] [среде] [у] LT","[прошлог] [четвртка] [у] LT","[прошлог] [петка] [у] LT","[прошле] [суботе] [у] LT"][this.day()]},sameElse:"L"},relativeTime:{future:"за %s",past:"пре %s",s:"неколико секунди",ss:a.translate,m:a.translate,mm:a.translate,h:a.translate,hh:a.translate,d:"дан",dd:a.translate,M:"месец",MM:a.translate,y:"годину",yy:a.translate},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})})},function(e,a,t){Object.defineProperty(a,"__esModule",{value:!0}),t(192);var n=t(1);n.datepickerLocale("sr","sr-SR",{closeText:"Zatvori",prevText:"<",nextText:">",currentText:"Danas",monthNames:["Januar","Februar","Mart","April","Maj","Jun","Jul","Avgust","Septembar","Oktobar","Novembar","Decembar"],monthNamesShort:["Jan","Feb","Mar","Apr","Maj","Jun","Jul","Avg","Sep","Okt","Nov","Dec"],dayNames:["Nedelja","Ponedeljak","Utorak","Sreda","Četvrtak","Petak","Subota"],dayNamesShort:["Ned","Pon","Uto","Sre","Čet","Pet","Sub"],dayNamesMin:["Ne","Po","Ut","Sr","Če","Pe","Su"],weekHeader:"Sed",dateFormat:"dd.mm.yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),n.locale("sr",{buttonText:{prev:"Prethodna",next:"Sledeći",month:"Mеsеc",week:"Nеdеlja",day:"Dan",list:"Planеr"},allDayText:"Cеo dan",eventLimitText:function(e){return"+ još "+e},noEventsMessage:"Nеma događaja za prikaz"})},function(e,a,t){!function(e,a){a(t(0))}(0,function(e){var a={words:{ss:["sekunda","sekunde","sekundi"],m:["jedan minut","jedne minute"],mm:["minut","minute","minuta"],h:["jedan sat","jednog sata"],hh:["sat","sata","sati"],dd:["dan","dana","dana"],MM:["mesec","meseca","meseci"],yy:["godina","godine","godina"]},correctGrammaticalCase:function(e,a){return 1===e?a[0]:e>=2&&e<=4?a[1]:a[2]},translate:function(e,t,n){var r=a.words[n];return 1===n.length?t?r[0]:r[1]:e+" "+a.correctGrammaticalCase(e,r)}};return e.defineLocale("sr",{months:"januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar".split("_"),monthsShort:"jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"nedelja_ponedeljak_utorak_sreda_četvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sre._čet._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_če_pe_su".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danas u] LT",nextDay:"[sutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedelju] [u] LT";case 3:return"[u] [sredu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[juče u] LT",lastWeek:function(){return["[prošle] [nedelje] [u] LT","[prošlog] [ponedeljka] [u] LT","[prošlog] [utorka] [u] LT","[prošle] [srede] [u] LT","[prošlog] [četvrtka] [u] LT","[prošlog] [petka] [u] LT","[prošle] [subote] [u] LT"][this.day()]},sameElse:"L"},relativeTime:{future:"za %s",past:"pre %s",s:"nekoliko sekundi",ss:a.translate,m:a.translate,mm:a.translate,h:a.translate,hh:a.translate,d:"dan",dd:a.translate,M:"mesec",MM:a.translate,y:"godinu",yy:a.translate},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})})},function(e,a,t){Object.defineProperty(a,"__esModule",{value:!0}),t(194);var n=t(1);n.datepickerLocale("sv","sv",{closeText:"Stäng",prevText:"«Förra",nextText:"Nästa»",currentText:"Idag",monthNames:["Januari","Februari","Mars","April","Maj","Juni","Juli","Augusti","September","Oktober","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","Maj","Jun","Jul","Aug","Sep","Okt","Nov","Dec"],dayNamesShort:["Sön","Mån","Tis","Ons","Tor","Fre","Lör"],dayNames:["Söndag","Måndag","Tisdag","Onsdag","Torsdag","Fredag","Lördag"],dayNamesMin:["Sö","Må","Ti","On","To","Fr","Lö"],weekHeader:"v. ",dateFormat:"yy-mm-dd",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),n.locale("sv",{buttonText:{month:"Månad",week:"Vecka",day:"Dag",list:"Program"},allDayText:"Heldag",eventLimitText:"till",noEventsMessage:"Inga händelser att visa"})},function(e,a,t){!function(e,a){a(t(0))}(0,function(e){return e.defineLocale("sv",{months:"januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december".split("_"),monthsShort:"jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec".split("_"),weekdays:"söndag_måndag_tisdag_onsdag_torsdag_fredag_lördag".split("_"),weekdaysShort:"sön_mån_tis_ons_tor_fre_lör".split("_"),weekdaysMin:"sö_må_ti_on_to_fr_lö".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [kl.] HH:mm",LLLL:"dddd D MMMM YYYY [kl.] HH:mm",lll:"D MMM YYYY HH:mm",llll:"ddd D MMM YYYY HH:mm"},calendar:{sameDay:"[Idag] LT",nextDay:"[Imorgon] LT",lastDay:"[Igår] LT",nextWeek:"[På] dddd LT",lastWeek:"[I] dddd[s] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"för %s sedan",s:"några sekunder",ss:"%d sekunder",m:"en minut",mm:"%d minuter",h:"en timme",hh:"%d timmar",d:"en dag",dd:"%d dagar",M:"en månad",MM:"%d månader",y:"ett år",yy:"%d år"},dayOfMonthOrdinalParse:/\d{1,2}(e|a)/,ordinal:function(e){var a=e%10;return e+(1==~~(e%100/10)?"e":1===a?"a":2===a?"a":"e")},week:{dow:1,doy:4}})})},function(e,a,t){Object.defineProperty(a,"__esModule",{value:!0}),t(196);var n=t(1);n.datepickerLocale("th","th",{closeText:"ปิด",prevText:"« ย้อน",nextText:"ถัดไป »",currentText:"วันนี้",monthNames:["มกราคม","กุมภาพันธ์","มีนาคม","เมษายน","พฤษภาคม","มิถุนายน","กรกฎาคม","สิงหาคม","กันยายน","ตุลาคม","พฤศจิกายน","ธันวาคม"],monthNamesShort:["ม.ค.","ก.พ.","มี.ค.","เม.ย.","พ.ค.","มิ.ย.","ก.ค.","ส.ค.","ก.ย.","ต.ค.","พ.ย.","ธ.ค."],dayNames:["อาทิตย์","จันทร์","อังคาร","พุธ","พฤหัสบดี","ศุกร์","เสาร์"],dayNamesShort:["อา.","จ.","อ.","พ.","พฤ.","ศ.","ส."],dayNamesMin:["อา.","จ.","อ.","พ.","พฤ.","ศ.","ส."],weekHeader:"Wk",dateFormat:"dd/mm/yy",firstDay:0,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),n.locale("th",{buttonText:{month:"เดือน",week:"สัปดาห์",day:"วัน",list:"แผนงาน"},allDayText:"ตลอดวัน",eventLimitText:"เพิ่มเติม",noEventsMessage:"ไม่มีกิจกรรมที่จะแสดง"})},function(e,a,t){!function(e,a){a(t(0))}(0,function(e){return e.defineLocale("th",{months:"มกราคม_กุมภาพันธ์_มีนาคม_เมษายน_พฤษภาคม_มิถุนายน_กรกฎาคม_สิงหาคม_กันยายน_ตุลาคม_พฤศจิกายน_ธันวาคม".split("_"),monthsShort:"ม.ค._ก.พ._มี.ค._เม.ย._พ.ค._มิ.ย._ก.ค._ส.ค._ก.ย._ต.ค._พ.ย._ธ.ค.".split("_"),monthsParseExact:!0,weekdays:"อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัสบดี_ศุกร์_เสาร์".split("_"),weekdaysShort:"อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัส_ศุกร์_เสาร์".split("_"),weekdaysMin:"อา._จ._อ._พ._พฤ._ศ._ส.".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY เวลา H:mm",LLLL:"วันddddที่ D MMMM YYYY เวลา H:mm"},meridiemParse:/ก่อนเที่ยง|หลังเที่ยง/,isPM:function(e){return"หลังเที่ยง"===e},meridiem:function(e,a,t){return e<12?"ก่อนเที่ยง":"หลังเที่ยง"},calendar:{sameDay:"[วันนี้ เวลา] LT",nextDay:"[พรุ่งนี้ เวลา] LT",nextWeek:"dddd[หน้า เวลา] LT",lastDay:"[เมื่อวานนี้ เวลา] LT",lastWeek:"[วัน]dddd[ที่แล้ว เวลา] LT",sameElse:"L"},relativeTime:{future:"อีก %s",past:"%sที่แล้ว",s:"ไม่กี่วินาที",ss:"%d วินาที",m:"1 นาที",mm:"%d นาที",h:"1 ชั่วโมง",hh:"%d ชั่วโมง",d:"1 วัน",dd:"%d วัน",M:"1 เดือน",MM:"%d เดือน",y:"1 ปี",yy:"%d ปี"}})})},function(e,a,t){Object.defineProperty(a,"__esModule",{value:!0}),t(198);var n=t(1);n.datepickerLocale("tr","tr",{closeText:"kapat",prevText:"<geri",nextText:"ileri>",currentText:"bugün",monthNames:["Ocak","Şubat","Mart","Nisan","Mayıs","Haziran","Temmuz","Ağustos","Eylül","Ekim","Kasım","Aralık"],monthNamesShort:["Oca","Şub","Mar","Nis","May","Haz","Tem","Ağu","Eyl","Eki","Kas","Ara"],dayNames:["Pazar","Pazartesi","Salı","Çarşamba","Perşembe","Cuma","Cumartesi"],dayNamesShort:["Pz","Pt","Sa","Ça","Pe","Cu","Ct"],dayNamesMin:["Pz","Pt","Sa","Ça","Pe","Cu","Ct"],weekHeader:"Hf",dateFormat:"dd.mm.yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),n.locale("tr",{buttonText:{next:"ileri",month:"Ay",week:"Hafta",day:"Gün",list:"Ajanda"},allDayText:"Tüm gün",eventLimitText:"daha fazla",noEventsMessage:"Herhangi bir etkinlik görüntülemek için"})},function(e,a,t){!function(e,a){a(t(0))}(0,function(e){var a={1:"'inci",5:"'inci",8:"'inci",70:"'inci",80:"'inci",2:"'nci",7:"'nci",20:"'nci",50:"'nci",3:"'üncü",4:"'üncü",100:"'üncü",6:"'ncı",9:"'uncu",10:"'uncu",30:"'uncu",60:"'ıncı",90:"'ıncı"};return e.defineLocale("tr",{months:"Ocak_Şubat_Mart_Nisan_Mayıs_Haziran_Temmuz_Ağustos_Eylül_Ekim_Kasım_Aralık".split("_"),monthsShort:"Oca_Şub_Mar_Nis_May_Haz_Tem_Ağu_Eyl_Eki_Kas_Ara".split("_"),weekdays:"Pazar_Pazartesi_Salı_Çarşamba_Perşembe_Cuma_Cumartesi".split("_"),weekdaysShort:"Paz_Pts_Sal_Çar_Per_Cum_Cts".split("_"),weekdaysMin:"Pz_Pt_Sa_Ça_Pe_Cu_Ct".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[bugün saat] LT",nextDay:"[yarın saat] LT",nextWeek:"[gelecek] dddd [saat] LT",lastDay:"[dün] LT",lastWeek:"[geçen] dddd [saat] LT",sameElse:"L"},relativeTime:{future:"%s sonra",past:"%s önce",s:"birkaç saniye",ss:"%d saniye",m:"bir dakika",mm:"%d dakika",h:"bir saat",hh:"%d saat",d:"bir gün",dd:"%d gün",M:"bir ay",MM:"%d ay",y:"bir yıl",yy:"%d yıl"},ordinal:function(e,t){switch(t){case"d":case"D":case"Do":case"DD":return e;default:if(0===e)return e+"'ıncı";var n=e%10,r=e%100-n,s=e>=100?100:null;return e+(a[n]||a[r]||a[s])}},week:{dow:1,doy:7}})})},function(e,a,t){Object.defineProperty(a,"__esModule",{value:!0}),t(200);var n=t(1);n.datepickerLocale("uk","uk",{closeText:"Закрити",prevText:"<",nextText:">",currentText:"Сьогодні",monthNames:["Січень","Лютий","Березень","Квітень","Травень","Червень","Липень","Серпень","Вересень","Жовтень","Листопад","Грудень"],monthNamesShort:["Січ","Лют","Бер","Кві","Тра","Чер","Лип","Сер","Вер","Жов","Лис","Гру"],dayNames:["неділя","понеділок","вівторок","середа","четвер","п’ятниця","субота"],dayNamesShort:["нед","пнд","вів","срд","чтв","птн","сбт"],dayNamesMin:["Нд","Пн","Вт","Ср","Чт","Пт","Сб"],weekHeader:"Тиж",dateFormat:"dd.mm.yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),n.locale("uk",{buttonText:{month:"Місяць",week:"Тиждень",day:"День",list:"Порядок денний"},allDayText:"Увесь день",eventLimitText:function(e){return"+ще "+e+"..."},noEventsMessage:"Немає подій для відображення"})},function(e,a,t){!function(e,a){a(t(0))}(0,function(e){function a(e,a){var t=e.split("_");return a%10==1&&a%100!=11?t[0]:a%10>=2&&a%10<=4&&(a%100<10||a%100>=20)?t[1]:t[2]}function t(e,t,n){var r={ss:t?"секунда_секунди_секунд":"секунду_секунди_секунд",mm:t?"хвилина_хвилини_хвилин":"хвилину_хвилини_хвилин",hh:t?"година_години_годин":"годину_години_годин",dd:"день_дні_днів",MM:"місяць_місяці_місяців",yy:"рік_роки_років"};return"m"===n?t?"хвилина":"хвилину":"h"===n?t?"година":"годину":e+" "+a(r[n],+e)}function n(e,a){var t={nominative:"неділя_понеділок_вівторок_середа_четвер_п’ятниця_субота".split("_"),accusative:"неділю_понеділок_вівторок_середу_четвер_п’ятницю_суботу".split("_"),genitive:"неділі_понеділка_вівторка_середи_четверга_п’ятниці_суботи".split("_")};return e?t[/(\[[ВвУу]\]) ?dddd/.test(a)?"accusative":/\[?(?:минулої|наступної)? ?\] ?dddd/.test(a)?"genitive":"nominative"][e.day()]:t.nominative}function r(e){return function(){return e+"о"+(11===this.hours()?"б":"")+"] LT"}}return e.defineLocale("uk",{months:{format:"січня_лютого_березня_квітня_травня_червня_липня_серпня_вересня_жовтня_листопада_грудня".split("_"),standalone:"січень_лютий_березень_квітень_травень_червень_липень_серпень_вересень_жовтень_листопад_грудень".split("_")},monthsShort:"січ_лют_бер_квіт_трав_черв_лип_серп_вер_жовт_лист_груд".split("_"),weekdays:n,weekdaysShort:"нд_пн_вт_ср_чт_пт_сб".split("_"),weekdaysMin:"нд_пн_вт_ср_чт_пт_сб".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY р.",LLL:"D MMMM YYYY р., HH:mm",LLLL:"dddd, D MMMM YYYY р., HH:mm"},calendar:{sameDay:r("[Сьогодні "),nextDay:r("[Завтра "),lastDay:r("[Вчора "),nextWeek:r("[У] dddd ["),lastWeek:function(){switch(this.day()){case 0:case 3:case 5:case 6:return r("[Минулої] dddd [").call(this);case 1:case 2:case 4:return r("[Минулого] dddd [").call(this)}},sameElse:"L"},relativeTime:{future:"за %s",past:"%s тому",s:"декілька секунд",ss:t,m:t,mm:t,h:"годину",hh:t,d:"день",dd:t,M:"місяць",MM:t,y:"рік",yy:t},meridiemParse:/ночі|ранку|дня|вечора/,isPM:function(e){return/^(дня|вечора)$/.test(e)},meridiem:function(e,a,t){return e<4?"ночі":e<12?"ранку":e<17?"дня":"вечора"},dayOfMonthOrdinalParse:/\d{1,2}-(й|го)/,ordinal:function(e,a){switch(a){case"M":case"d":case"DDD":case"w":case"W":return e+"-й" -;case"D":return e+"-го";default:return e}},week:{dow:1,doy:7}})})},function(e,a,t){Object.defineProperty(a,"__esModule",{value:!0}),t(202);var n=t(1);n.datepickerLocale("vi","vi",{closeText:"Đóng",prevText:"<Trước",nextText:"Tiếp>",currentText:"Hôm nay",monthNames:["Tháng Một","Tháng Hai","Tháng Ba","Tháng Tư","Tháng Năm","Tháng Sáu","Tháng Bảy","Tháng Tám","Tháng Chín","Tháng Mười","Tháng Mười Một","Tháng Mười Hai"],monthNamesShort:["Tháng 1","Tháng 2","Tháng 3","Tháng 4","Tháng 5","Tháng 6","Tháng 7","Tháng 8","Tháng 9","Tháng 10","Tháng 11","Tháng 12"],dayNames:["Chủ Nhật","Thứ Hai","Thứ Ba","Thứ Tư","Thứ Năm","Thứ Sáu","Thứ Bảy"],dayNamesShort:["CN","T2","T3","T4","T5","T6","T7"],dayNamesMin:["CN","T2","T3","T4","T5","T6","T7"],weekHeader:"Tu",dateFormat:"dd/mm/yy",firstDay:0,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),n.locale("vi",{buttonText:{month:"Tháng",week:"Tuần",day:"Ngày",list:"Lịch biểu"},allDayText:"Cả ngày",eventLimitText:function(e){return"+ thêm "+e},noEventsMessage:"Không có sự kiện để hiển thị"})},function(e,a,t){!function(e,a){a(t(0))}(0,function(e){return e.defineLocale("vi",{months:"tháng 1_tháng 2_tháng 3_tháng 4_tháng 5_tháng 6_tháng 7_tháng 8_tháng 9_tháng 10_tháng 11_tháng 12".split("_"),monthsShort:"Th01_Th02_Th03_Th04_Th05_Th06_Th07_Th08_Th09_Th10_Th11_Th12".split("_"),monthsParseExact:!0,weekdays:"chủ nhật_thứ hai_thứ ba_thứ tư_thứ năm_thứ sáu_thứ bảy".split("_"),weekdaysShort:"CN_T2_T3_T4_T5_T6_T7".split("_"),weekdaysMin:"CN_T2_T3_T4_T5_T6_T7".split("_"),weekdaysParseExact:!0,meridiemParse:/sa|ch/i,isPM:function(e){return/^ch$/i.test(e)},meridiem:function(e,a,t){return e<12?t?"sa":"SA":t?"ch":"CH"},longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM [năm] YYYY",LLL:"D MMMM [năm] YYYY HH:mm",LLLL:"dddd, D MMMM [năm] YYYY HH:mm",l:"DD/M/YYYY",ll:"D MMM YYYY",lll:"D MMM YYYY HH:mm",llll:"ddd, D MMM YYYY HH:mm"},calendar:{sameDay:"[Hôm nay lúc] LT",nextDay:"[Ngày mai lúc] LT",nextWeek:"dddd [tuần tới lúc] LT",lastDay:"[Hôm qua lúc] LT",lastWeek:"dddd [tuần rồi lúc] LT",sameElse:"L"},relativeTime:{future:"%s tới",past:"%s trước",s:"vài giây",ss:"%d giây",m:"một phút",mm:"%d phút",h:"một giờ",hh:"%d giờ",d:"một ngày",dd:"%d ngày",M:"một tháng",MM:"%d tháng",y:"một năm",yy:"%d năm"},dayOfMonthOrdinalParse:/\d{1,2}/,ordinal:function(e){return e},week:{dow:1,doy:4}})})},function(e,a,t){Object.defineProperty(a,"__esModule",{value:!0}),t(204);var n=t(1);n.datepickerLocale("zh-cn","zh-CN",{closeText:"关闭",prevText:"<上月",nextText:"下月>",currentText:"今天",monthNames:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],monthNamesShort:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],dayNames:["星期日","星期一","星期二","星期三","星期四","星期五","星期六"],dayNamesShort:["周日","周一","周二","周三","周四","周五","周六"],dayNamesMin:["日","一","二","三","四","五","六"],weekHeader:"周",dateFormat:"yy-mm-dd",firstDay:1,isRTL:!1,showMonthAfterYear:!0,yearSuffix:"年"}),n.locale("zh-cn",{buttonText:{month:"月",week:"周",day:"日",list:"日程"},allDayText:"全天",eventLimitText:function(e){return"另外 "+e+" 个"},noEventsMessage:"没有事件显示"})},function(e,a,t){!function(e,a){a(t(0))}(0,function(e){return e.defineLocale("zh-cn",{months:"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),weekdays:"星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"),weekdaysShort:"周日_周一_周二_周三_周四_周五_周六".split("_"),weekdaysMin:"日_一_二_三_四_五_六".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY年M月D日",LLL:"YYYY年M月D日Ah点mm分",LLLL:"YYYY年M月D日ddddAh点mm分",l:"YYYY/M/D",ll:"YYYY年M月D日",lll:"YYYY年M月D日 HH:mm",llll:"YYYY年M月D日dddd HH:mm"},meridiemParse:/凌晨|早上|上午|中午|下午|晚上/,meridiemHour:function(e,a){return 12===e&&(e=0),"凌晨"===a||"早上"===a||"上午"===a?e:"下午"===a||"晚上"===a?e+12:e>=11?e:e+12},meridiem:function(e,a,t){var n=100*e+a;return n<600?"凌晨":n<900?"早上":n<1130?"上午":n<1230?"中午":n<1800?"下午":"晚上"},calendar:{sameDay:"[今天]LT",nextDay:"[明天]LT",nextWeek:"[下]ddddLT",lastDay:"[昨天]LT",lastWeek:"[上]ddddLT",sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}(日|月|周)/,ordinal:function(e,a){switch(a){case"d":case"D":case"DDD":return e+"日";case"M":return e+"月";case"w":case"W":return e+"周";default:return e}},relativeTime:{future:"%s内",past:"%s前",s:"几秒",ss:"%d 秒",m:"1 分钟",mm:"%d 分钟",h:"1 小时",hh:"%d 小时",d:"1 天",dd:"%d 天",M:"1 个月",MM:"%d 个月",y:"1 年",yy:"%d 年"},week:{dow:1,doy:4}})})},function(e,a,t){Object.defineProperty(a,"__esModule",{value:!0}),t(206);var n=t(1);n.datepickerLocale("zh-tw","zh-TW",{closeText:"關閉",prevText:"<上月",nextText:"下月>",currentText:"今天",monthNames:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],monthNamesShort:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],dayNames:["星期日","星期一","星期二","星期三","星期四","星期五","星期六"],dayNamesShort:["周日","周一","周二","周三","周四","周五","周六"],dayNamesMin:["日","一","二","三","四","五","六"],weekHeader:"周",dateFormat:"yy/mm/dd",firstDay:1,isRTL:!1,showMonthAfterYear:!0,yearSuffix:"年"}),n.locale("zh-tw",{buttonText:{month:"月",week:"週",day:"天",list:"活動列表"},allDayText:"整天",eventLimitText:"顯示更多",noEventsMessage:"没有任何活動"})},function(e,a,t){!function(e,a){a(t(0))}(0,function(e){return e.defineLocale("zh-tw",{months:"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),weekdays:"星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"),weekdaysShort:"週日_週一_週二_週三_週四_週五_週六".split("_"),weekdaysMin:"日_一_二_三_四_五_六".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY年M月D日",LLL:"YYYY年M月D日 HH:mm",LLLL:"YYYY年M月D日dddd HH:mm",l:"YYYY/M/D",ll:"YYYY年M月D日",lll:"YYYY年M月D日 HH:mm",llll:"YYYY年M月D日dddd HH:mm"},meridiemParse:/凌晨|早上|上午|中午|下午|晚上/,meridiemHour:function(e,a){return 12===e&&(e=0),"凌晨"===a||"早上"===a||"上午"===a?e:"中午"===a?e>=11?e:e+12:"下午"===a||"晚上"===a?e+12:void 0},meridiem:function(e,a,t){var n=100*e+a;return n<600?"凌晨":n<900?"早上":n<1130?"上午":n<1230?"中午":n<1800?"下午":"晚上"},calendar:{sameDay:"[今天]LT",nextDay:"[明天]LT",nextWeek:"[下]ddddLT",lastDay:"[昨天]LT",lastWeek:"[上]ddddLT",sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}(日|月|週)/,ordinal:function(e,a){switch(a){case"d":case"D":case"DDD":return e+"日";case"M":return e+"月";case"w":case"W":return e+"週";default:return e}},relativeTime:{future:"%s內",past:"%s前",s:"幾秒",ss:"%d 秒",m:"1 分鐘",mm:"%d 分鐘",h:"1 小時",hh:"%d 小時",d:"1 天",dd:"%d 天",M:"1 個月",MM:"%d 個月",y:"1 年",yy:"%d 年"}})})},,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,function(e,a,t){t(65),t(67),t(69),t(71),t(73),t(75),t(77),t(79),t(81),t(83),t(85),t(87),t(89),t(91),t(93),t(95),t(97),t(99),t(101),t(103),t(105),t(107),t(109),t(111),t(113),t(115),t(117),t(119),t(121),t(123),t(125),t(127),t(129),t(131),t(133),t(135),t(137),t(139),t(141),t(143),t(145),t(147),t(149),t(151),t(153),t(155),t(157),t(159),t(161),t(163),t(165),t(167),t(169),t(171),t(173),t(175),t(177),t(179),t(181),t(183),t(185),t(187),t(189),t(191),t(193),t(195),t(197),t(199),t(201),t(203),t(205),e.exports=t(435)},function(e,a,t){Object.defineProperty(a,"__esModule",{value:!0});var n=t(0),r=t(1);n.locale("en"),r.locale("en"),__webpack_provided_window_dot_jQuery.datepicker&&__webpack_provided_window_dot_jQuery.datepicker.setDefaults(__webpack_provided_window_dot_jQuery.datepicker.regional[""])}])}); -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(/*! jquery */ "./node_modules/jquery/dist/jquery.js"))) - -/***/ }), - -/***/ "./node_modules/icheck/icheck.js": -/*!***************************************!*\ - !*** ./node_modules/icheck/icheck.js ***! - \***************************************/ -/*! dynamic exports provided */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -/* WEBPACK VAR INJECTION */(function(__webpack_provided_window_dot_jQuery) {/*! - * iCheck v1.0.2, http://git.io/arlzeA - * =================================== - * Powerful jQuery and Zepto plugin for checkboxes and radio buttons customization - * - * (c) 2013 Damir Sultanov, http://fronteed.com - * MIT Licensed - */ - -(function($) { - - // Cached vars - var _iCheck = 'iCheck', - _iCheckHelper = _iCheck + '-helper', - _checkbox = 'checkbox', - _radio = 'radio', - _checked = 'checked', - _unchecked = 'un' + _checked, - _disabled = 'disabled', - _determinate = 'determinate', - _indeterminate = 'in' + _determinate, - _update = 'update', - _type = 'type', - _click = 'click', - _touch = 'touchbegin.i touchend.i', - _add = 'addClass', - _remove = 'removeClass', - _callback = 'trigger', - _label = 'label', - _cursor = 'cursor', - _mobile = /ipad|iphone|ipod|android|blackberry|windows phone|opera mini|silk/i.test(navigator.userAgent); - - // Plugin init - $.fn[_iCheck] = function(options, fire) { - - // Walker - var handle = 'input[type="' + _checkbox + '"], input[type="' + _radio + '"]', - stack = $(), - walker = function(object) { - object.each(function() { - var self = $(this); - - if (self.is(handle)) { - stack = stack.add(self); - } else { - stack = stack.add(self.find(handle)); - } - }); - }; - - // Check if we should operate with some method - if (/^(check|uncheck|toggle|indeterminate|determinate|disable|enable|update|destroy)$/i.test(options)) { - - // Normalize method's name - options = options.toLowerCase(); - - // Find checkboxes and radio buttons - walker(this); - - return stack.each(function() { - var self = $(this); - - if (options == 'destroy') { - tidy(self, 'ifDestroyed'); - } else { - operate(self, true, options); - } - - // Fire method's callback - if ($.isFunction(fire)) { - fire(); - } - }); - - // Customization - } else if (typeof options == 'object' || !options) { - - // Check if any options were passed - var settings = $.extend({ - checkedClass: _checked, - disabledClass: _disabled, - indeterminateClass: _indeterminate, - labelHover: true - }, options), - - selector = settings.handle, - hoverClass = settings.hoverClass || 'hover', - focusClass = settings.focusClass || 'focus', - activeClass = settings.activeClass || 'active', - labelHover = !!settings.labelHover, - labelHoverClass = settings.labelHoverClass || 'hover', - - // Setup clickable area - area = ('' + settings.increaseArea).replace('%', '') | 0; - - // Selector limit - if (selector == _checkbox || selector == _radio) { - handle = 'input[type="' + selector + '"]'; - } - - // Clickable area limit - if (area < -50) { - area = -50; - } - - // Walk around the selector - walker(this); - - return stack.each(function() { - var self = $(this); - - // If already customized - tidy(self); - - var node = this, - id = node.id, - - // Layer styles - offset = -area + '%', - size = 100 + (area * 2) + '%', - layer = { - position: 'absolute', - top: offset, - left: offset, - display: 'block', - width: size, - height: size, - margin: 0, - padding: 0, - background: '#fff', - border: 0, - opacity: 0 - }, - - // Choose how to hide input - hide = _mobile ? { - position: 'absolute', - visibility: 'hidden' - } : area ? layer : { - position: 'absolute', - opacity: 0 - }, - - // Get proper class - className = node[_type] == _checkbox ? settings.checkboxClass || 'i' + _checkbox : settings.radioClass || 'i' + _radio, - - // Find assigned labels - label = $(_label + '[for="' + id + '"]').add(self.closest(_label)), - - // Check ARIA option - aria = !!settings.aria, - - // Set ARIA placeholder - ariaID = _iCheck + '-' + Math.random().toString(36).substr(2,6), - - // Parent & helper - parent = '
    ')[_callback]('ifCreated').parent().append(settings.insert); - - // Layer addition - helper = $('').css(layer).appendTo(parent); - - // Finalize customization - self.data(_iCheck, {o: settings, s: self.attr('style')}).css(hide); - !!settings.inheritClass && parent[_add](node.className || ''); - !!settings.inheritID && id && parent.attr('id', _iCheck + '-' + id); - parent.css('position') == 'static' && parent.css('position', 'relative'); - operate(self, true, _update); - - // Label events - if (label.length) { - label.on(_click + '.i mouseover.i mouseout.i ' + _touch, function(event) { - var type = event[_type], - item = $(this); - - // Do nothing if input is disabled - if (!node[_disabled]) { - - // Click - if (type == _click) { - if ($(event.target).is('a')) { - return; - } - operate(self, false, true); - - // Hover state - } else if (labelHover) { - - // mouseout|touchend - if (/ut|nd/.test(type)) { - parent[_remove](hoverClass); - item[_remove](labelHoverClass); - } else { - parent[_add](hoverClass); - item[_add](labelHoverClass); - } - } - - if (_mobile) { - event.stopPropagation(); - } else { - return false; - } - } - }); - } - - // Input events - self.on(_click + '.i focus.i blur.i keyup.i keydown.i keypress.i', function(event) { - var type = event[_type], - key = event.keyCode; - - // Click - if (type == _click) { - return false; - - // Keydown - } else if (type == 'keydown' && key == 32) { - if (!(node[_type] == _radio && node[_checked])) { - if (node[_checked]) { - off(self, _checked); - } else { - on(self, _checked); - } - } - - return false; - - // Keyup - } else if (type == 'keyup' && node[_type] == _radio) { - !node[_checked] && on(self, _checked); - - // Focus/blur - } else if (/us|ur/.test(type)) { - parent[type == 'blur' ? _remove : _add](focusClass); - } - }); - - // Helper events - helper.on(_click + ' mousedown mouseup mouseover mouseout ' + _touch, function(event) { - var type = event[_type], - - // mousedown|mouseup - toggle = /wn|up/.test(type) ? activeClass : hoverClass; - - // Do nothing if input is disabled - if (!node[_disabled]) { - - // Click - if (type == _click) { - operate(self, false, true); - - // Active and hover states - } else { - - // State is on - if (/wn|er|in/.test(type)) { - - // mousedown|mouseover|touchbegin - parent[_add](toggle); - - // State is off - } else { - parent[_remove](toggle + ' ' + activeClass); - } - - // Label hover - if (label.length && labelHover && toggle == hoverClass) { - - // mouseout|touchend - label[/ut|nd/.test(type) ? _remove : _add](labelHoverClass); - } - } - - if (_mobile) { - event.stopPropagation(); - } else { - return false; - } - } - }); - }); - } else { - return this; - } - }; - - // Do something with inputs - function operate(input, direct, method) { - var node = input[0], - state = /er/.test(method) ? _indeterminate : /bl/.test(method) ? _disabled : _checked, - active = method == _update ? { - checked: node[_checked], - disabled: node[_disabled], - indeterminate: input.attr(_indeterminate) == 'true' || input.attr(_determinate) == 'false' - } : node[state]; - - // Check, disable or indeterminate - if (/^(ch|di|in)/.test(method) && !active) { - on(input, state); - - // Uncheck, enable or determinate - } else if (/^(un|en|de)/.test(method) && active) { - off(input, state); - - // Update - } else if (method == _update) { - - // Handle states - for (var each in active) { - if (active[each]) { - on(input, each, true); - } else { - off(input, each, true); - } - } - - } else if (!direct || method == 'toggle') { - - // Helper or label was clicked - if (!direct) { - input[_callback]('ifClicked'); - } - - // Toggle checked state - if (active) { - if (node[_type] !== _radio) { - off(input, state); - } - } else { - on(input, state); - } - } - } - - // Add checked, disabled or indeterminate state - function on(input, state, keep) { - var node = input[0], - parent = input.parent(), - checked = state == _checked, - indeterminate = state == _indeterminate, - disabled = state == _disabled, - callback = indeterminate ? _determinate : checked ? _unchecked : 'enabled', - regular = option(input, callback + capitalize(node[_type])), - specific = option(input, state + capitalize(node[_type])); - - // Prevent unnecessary actions - if (node[state] !== true) { - - // Toggle assigned radio buttons - if (!keep && state == _checked && node[_type] == _radio && node.name) { - var form = input.closest('form'), - inputs = 'input[name="' + node.name + '"]'; - - inputs = form.length ? form.find(inputs) : $(inputs); - - inputs.each(function() { - if (this !== node && $(this).data(_iCheck)) { - off($(this), state); - } - }); - } - - // Indeterminate state - if (indeterminate) { - - // Add indeterminate state - node[state] = true; - - // Remove checked state - if (node[_checked]) { - off(input, _checked, 'force'); - } - - // Checked or disabled state - } else { - - // Add checked or disabled state - if (!keep) { - node[state] = true; - } - - // Remove indeterminate state - if (checked && node[_indeterminate]) { - off(input, _indeterminate, false); - } - } - - // Trigger callbacks - callbacks(input, checked, state, keep); - } - - // Add proper cursor - if (node[_disabled] && !!option(input, _cursor, true)) { - parent.find('.' + _iCheckHelper).css(_cursor, 'default'); - } - - // Add state class - parent[_add](specific || option(input, state) || ''); - - // Set ARIA attribute - if (!!parent.attr('role') && !indeterminate) { - parent.attr('aria-' + (disabled ? _disabled : _checked), 'true'); - } - - // Remove regular state class - parent[_remove](regular || option(input, callback) || ''); - } - - // Remove checked, disabled or indeterminate state - function off(input, state, keep) { - var node = input[0], - parent = input.parent(), - checked = state == _checked, - indeterminate = state == _indeterminate, - disabled = state == _disabled, - callback = indeterminate ? _determinate : checked ? _unchecked : 'enabled', - regular = option(input, callback + capitalize(node[_type])), - specific = option(input, state + capitalize(node[_type])); - - // Prevent unnecessary actions - if (node[state] !== false) { - - // Toggle state - if (indeterminate || !keep || keep == 'force') { - node[state] = false; - } - - // Trigger callbacks - callbacks(input, checked, callback, keep); - } - - // Add proper cursor - if (!node[_disabled] && !!option(input, _cursor, true)) { - parent.find('.' + _iCheckHelper).css(_cursor, 'pointer'); - } - - // Remove state class - parent[_remove](specific || option(input, state) || ''); - - // Set ARIA attribute - if (!!parent.attr('role') && !indeterminate) { - parent.attr('aria-' + (disabled ? _disabled : _checked), 'false'); - } - - // Add regular state class - parent[_add](regular || option(input, callback) || ''); - } - - // Remove all traces - function tidy(input, callback) { - if (input.data(_iCheck)) { - - // Remove everything except input - input.parent().html(input.attr('style', input.data(_iCheck).s || '')); - - // Callback - if (callback) { - input[_callback](callback); - } - - // Unbind events - input.off('.i').unwrap(); - $(_label + '[for="' + input[0].id + '"]').add(input.closest(_label)).off('.i'); - } - } - - // Get some option - function option(input, state, regular) { - if (input.data(_iCheck)) { - return input.data(_iCheck).o[state + (regular ? '' : 'Class')]; - } - } - - // Capitalize some string - function capitalize(string) { - return string.charAt(0).toUpperCase() + string.slice(1); - } - - // Executable handlers - function callbacks(input, checked, callback, keep) { - if (!keep) { - if (checked) { - input[_callback]('ifToggled'); - } - - input[_callback]('ifChanged')[_callback]('if' + capitalize(callback)); - } - } -})(__webpack_provided_window_dot_jQuery || window.Zepto); - -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(/*! jquery */ "./node_modules/jquery/dist/jquery.js"))) - -/***/ }), - -/***/ "./node_modules/icheck/skins/square/blue.css": -/*!***************************************************!*\ - !*** ./node_modules/icheck/skins/square/blue.css ***! - \***************************************************/ -/*! dynamic exports provided */ -/*! all exports used */ -/***/ (function(module, exports) { - -// removed by extract-text-webpack-plugin - -/***/ }), - -/***/ "./node_modules/jquery-slimscroll/jquery.slimscroll.js": -/*!*************************************************************!*\ - !*** ./node_modules/jquery-slimscroll/jquery.slimscroll.js ***! - \*************************************************************/ -/*! dynamic exports provided */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -/* WEBPACK VAR INJECTION */(function(jQuery) {/*! Copyright (c) 2011 Piotr Rochala (http://rocha.la) - * Dual licensed under the MIT (http://www.opensource.org/licenses/mit-license.php) - * and GPL (http://www.opensource.org/licenses/gpl-license.php) licenses. - * - * Version: 1.3.8 - * - */ -(function($) { - - $.fn.extend({ - slimScroll: function(options) { - - var defaults = { - - // width in pixels of the visible scroll area - width : 'auto', - - // height in pixels of the visible scroll area - height : '250px', - - // width in pixels of the scrollbar and rail - size : '7px', - - // scrollbar color, accepts any hex/color value - color: '#000', - - // scrollbar position - left/right - position : 'right', - - // distance in pixels between the side edge and the scrollbar - distance : '1px', - - // default scroll position on load - top / bottom / $('selector') - start : 'top', - - // sets scrollbar opacity - opacity : .4, - - // enables always-on mode for the scrollbar - alwaysVisible : false, - - // check if we should hide the scrollbar when user is hovering over - disableFadeOut : false, - - // sets visibility of the rail - railVisible : false, - - // sets rail color - railColor : '#333', - - // sets rail opacity - railOpacity : .2, - - // whether we should use jQuery UI Draggable to enable bar dragging - railDraggable : true, - - // defautlt CSS class of the slimscroll rail - railClass : 'slimScrollRail', - - // defautlt CSS class of the slimscroll bar - barClass : 'slimScrollBar', - - // defautlt CSS class of the slimscroll wrapper - wrapperClass : 'slimScrollDiv', - - // check if mousewheel should scroll the window if we reach top/bottom - allowPageScroll : false, - - // scroll amount applied to each mouse wheel step - wheelStep : 20, - - // scroll amount applied when user is using gestures - touchScrollStep : 200, - - // sets border radius - borderRadius: '7px', - - // sets border radius of the rail - railBorderRadius : '7px' - }; - - var o = $.extend(defaults, options); - - // do it for every element that matches selector - this.each(function(){ - - var isOverPanel, isOverBar, isDragg, queueHide, touchDif, - barHeight, percentScroll, lastScroll, - divS = '
    ', - minBarHeight = 30, - releaseScroll = false; - - // used in event handlers and for better minification - var me = $(this); - - // ensure we are not binding it again - if (me.parent().hasClass(o.wrapperClass)) - { - // start from last bar position - var offset = me.scrollTop(); - - // find bar and rail - bar = me.siblings('.' + o.barClass); - rail = me.siblings('.' + o.railClass); - - getBarHeight(); - - // check if we should scroll existing instance - if ($.isPlainObject(options)) - { - // Pass height: auto to an existing slimscroll object to force a resize after contents have changed - if ( 'height' in options && options.height == 'auto' ) { - me.parent().css('height', 'auto'); - me.css('height', 'auto'); - var height = me.parent().parent().height(); - me.parent().css('height', height); - me.css('height', height); - } else if ('height' in options) { - var h = options.height; - me.parent().css('height', h); - me.css('height', h); - } - - if ('scrollTo' in options) - { - // jump to a static point - offset = parseInt(o.scrollTo); - } - else if ('scrollBy' in options) - { - // jump by value pixels - offset += parseInt(o.scrollBy); - } - else if ('destroy' in options) - { - // remove slimscroll elements - bar.remove(); - rail.remove(); - me.unwrap(); - return; - } - - // scroll content by the given offset - scrollContent(offset, false, true); - } - - return; - } - else if ($.isPlainObject(options)) - { - if ('destroy' in options) - { - return; - } - } - - // optionally set height to the parent's height - o.height = (o.height == 'auto') ? me.parent().height() : o.height; - - // wrap content - var wrapper = $(divS) - .addClass(o.wrapperClass) - .css({ - position: 'relative', - overflow: 'hidden', - width: o.width, - height: o.height - }); - - // update style for the div - me.css({ - overflow: 'hidden', - width: o.width, - height: o.height - }); - - // create scrollbar rail - var rail = $(divS) - .addClass(o.railClass) - .css({ - width: o.size, - height: '100%', - position: 'absolute', - top: 0, - display: (o.alwaysVisible && o.railVisible) ? 'block' : 'none', - 'border-radius': o.railBorderRadius, - background: o.railColor, - opacity: o.railOpacity, - zIndex: 90 - }); - - // create scrollbar - var bar = $(divS) - .addClass(o.barClass) - .css({ - background: o.color, - width: o.size, - position: 'absolute', - top: 0, - opacity: o.opacity, - display: o.alwaysVisible ? 'block' : 'none', - 'border-radius' : o.borderRadius, - BorderRadius: o.borderRadius, - MozBorderRadius: o.borderRadius, - WebkitBorderRadius: o.borderRadius, - zIndex: 99 - }); - - // set position - var posCss = (o.position == 'right') ? { right: o.distance } : { left: o.distance }; - rail.css(posCss); - bar.css(posCss); - - // wrap it - me.wrap(wrapper); - - // append to parent div - me.parent().append(bar); - me.parent().append(rail); - - // make it draggable and no longer dependent on the jqueryUI - if (o.railDraggable){ - bar.bind("mousedown", function(e) { - var $doc = $(document); - isDragg = true; - t = parseFloat(bar.css('top')); - pageY = e.pageY; - - $doc.bind("mousemove.slimscroll", function(e){ - currTop = t + e.pageY - pageY; - bar.css('top', currTop); - scrollContent(0, bar.position().top, false);// scroll content - }); - - $doc.bind("mouseup.slimscroll", function(e) { - isDragg = false;hideBar(); - $doc.unbind('.slimscroll'); - }); - return false; - }).bind("selectstart.slimscroll", function(e){ - e.stopPropagation(); - e.preventDefault(); - return false; - }); - } - - // on rail over - rail.hover(function(){ - showBar(); - }, function(){ - hideBar(); - }); - - // on bar over - bar.hover(function(){ - isOverBar = true; - }, function(){ - isOverBar = false; - }); - - // show on parent mouseover - me.hover(function(){ - isOverPanel = true; - showBar(); - hideBar(); - }, function(){ - isOverPanel = false; - hideBar(); - }); - - // support for mobile - me.bind('touchstart', function(e,b){ - if (e.originalEvent.touches.length) - { - // record where touch started - touchDif = e.originalEvent.touches[0].pageY; - } - }); - - me.bind('touchmove', function(e){ - // prevent scrolling the page if necessary - if(!releaseScroll) - { - e.originalEvent.preventDefault(); - } - if (e.originalEvent.touches.length) - { - // see how far user swiped - var diff = (touchDif - e.originalEvent.touches[0].pageY) / o.touchScrollStep; - // scroll content - scrollContent(diff, true); - touchDif = e.originalEvent.touches[0].pageY; - } - }); - - // set up initial height - getBarHeight(); - - // check start position - if (o.start === 'bottom') - { - // scroll content to bottom - bar.css({ top: me.outerHeight() - bar.outerHeight() }); - scrollContent(0, true); - } - else if (o.start !== 'top') - { - // assume jQuery selector - scrollContent($(o.start).position().top, null, true); - - // make sure bar stays hidden - if (!o.alwaysVisible) { bar.hide(); } - } - - // attach scroll events - attachWheel(this); - - function _onWheel(e) - { - // use mouse wheel only when mouse is over - if (!isOverPanel) { return; } - - var e = e || window.event; - - var delta = 0; - if (e.wheelDelta) { delta = -e.wheelDelta/120; } - if (e.detail) { delta = e.detail / 3; } - - var target = e.target || e.srcTarget || e.srcElement; - if ($(target).closest('.' + o.wrapperClass).is(me.parent())) { - // scroll content - scrollContent(delta, true); - } - - // stop window scroll - if (e.preventDefault && !releaseScroll) { e.preventDefault(); } - if (!releaseScroll) { e.returnValue = false; } - } - - function scrollContent(y, isWheel, isJump) - { - releaseScroll = false; - var delta = y; - var maxTop = me.outerHeight() - bar.outerHeight(); - - if (isWheel) - { - // move bar with mouse wheel - delta = parseInt(bar.css('top')) + y * parseInt(o.wheelStep) / 100 * bar.outerHeight(); - - // move bar, make sure it doesn't go out - delta = Math.min(Math.max(delta, 0), maxTop); - - // if scrolling down, make sure a fractional change to the - // scroll position isn't rounded away when the scrollbar's CSS is set - // this flooring of delta would happened automatically when - // bar.css is set below, but we floor here for clarity - delta = (y > 0) ? Math.ceil(delta) : Math.floor(delta); - - // scroll the scrollbar - bar.css({ top: delta + 'px' }); - } - - // calculate actual scroll amount - percentScroll = parseInt(bar.css('top')) / (me.outerHeight() - bar.outerHeight()); - delta = percentScroll * (me[0].scrollHeight - me.outerHeight()); - - if (isJump) - { - delta = y; - var offsetTop = delta / me[0].scrollHeight * me.outerHeight(); - offsetTop = Math.min(Math.max(offsetTop, 0), maxTop); - bar.css({ top: offsetTop + 'px' }); - } - - // scroll content - me.scrollTop(delta); - - // fire scrolling event - me.trigger('slimscrolling', ~~delta); - - // ensure bar is visible - showBar(); - - // trigger hide when scroll is stopped - hideBar(); - } - - function attachWheel(target) - { - if (window.addEventListener) - { - target.addEventListener('DOMMouseScroll', _onWheel, false ); - target.addEventListener('mousewheel', _onWheel, false ); - } - else - { - document.attachEvent("onmousewheel", _onWheel) - } - } - - function getBarHeight() - { - // calculate scrollbar height and make sure it is not too small - barHeight = Math.max((me.outerHeight() / me[0].scrollHeight) * me.outerHeight(), minBarHeight); - bar.css({ height: barHeight + 'px' }); - - // hide scrollbar if content is not long enough - var display = barHeight == me.outerHeight() ? 'none' : 'block'; - bar.css({ display: display }); - } - - function showBar() - { - // recalculate bar height - getBarHeight(); - clearTimeout(queueHide); - - // when bar reached top or bottom - if (percentScroll == ~~percentScroll) - { - //release wheel - releaseScroll = o.allowPageScroll; - - // publish approporiate event - if (lastScroll != percentScroll) - { - var msg = (~~percentScroll == 0) ? 'top' : 'bottom'; - me.trigger('slimscroll', msg); - } - } - else - { - releaseScroll = false; - } - lastScroll = percentScroll; - - // show only when required - if(barHeight >= me.outerHeight()) { - //allow window scroll - releaseScroll = true; - return; - } - bar.stop(true,true).fadeIn('fast'); - if (o.railVisible) { rail.stop(true,true).fadeIn('fast'); } - } - - function hideBar() - { - // only hide when options allow it - if (!o.alwaysVisible) - { - queueHide = setTimeout(function(){ - if (!(o.disableFadeOut && isOverPanel) && !isOverBar && !isDragg) - { - bar.fadeOut('slow'); - rail.fadeOut('slow'); - } - }, 1000); - } - } - - }); - - // maintain chainability - return this; - } - }); - - $.fn.extend({ - slimscroll: $.fn.slimScroll - }); - -})(jQuery); - -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(/*! jquery */ "./node_modules/jquery/dist/jquery.js"))) - -/***/ }), - -/***/ "./node_modules/jquery-ui/ui/version.js": -/*!**********************************************!*\ - !*** ./node_modules/jquery-ui/ui/version.js ***! - \**********************************************/ -/*! dynamic exports provided */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;( function( factory ) { - if ( true ) { - - // AMD. Register as an anonymous module. - !(__WEBPACK_AMD_DEFINE_ARRAY__ = [ __webpack_require__(/*! jquery */ "./node_modules/jquery/dist/jquery.js") ], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), - __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? - (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), - __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); - } else { - - // Browser globals - factory( jQuery ); - } -} ( function( $ ) { - -$.ui = $.ui || {}; - -return $.ui.version = "1.12.1"; - -} ) ); - - -/***/ }), - -/***/ "./node_modules/jquery-ui/ui/widget.js": -/*!*********************************************!*\ - !*** ./node_modules/jquery-ui/ui/widget.js ***! - \*********************************************/ -/*! dynamic exports provided */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*! - * jQuery UI Widget 1.12.1 - * http://jqueryui.com - * - * Copyright jQuery Foundation and other contributors - * Released under the MIT license. - * http://jquery.org/license - */ - -//>>label: Widget -//>>group: Core -//>>description: Provides a factory for creating stateful widgets with a common API. -//>>docs: http://api.jqueryui.com/jQuery.widget/ -//>>demos: http://jqueryui.com/widget/ - -( function( factory ) { - if ( true ) { - - // AMD. Register as an anonymous module. - !(__WEBPACK_AMD_DEFINE_ARRAY__ = [ __webpack_require__(/*! jquery */ "./node_modules/jquery/dist/jquery.js"), __webpack_require__(/*! ./version */ "./node_modules/jquery-ui/ui/version.js") ], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), - __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? - (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), - __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); - } else { - - // Browser globals - factory( jQuery ); - } -}( function( $ ) { - -var widgetUuid = 0; -var widgetSlice = Array.prototype.slice; - -$.cleanData = ( function( orig ) { - return function( elems ) { - var events, elem, i; - for ( i = 0; ( elem = elems[ i ] ) != null; i++ ) { - try { - - // Only trigger remove when necessary to save time - events = $._data( elem, "events" ); - if ( events && events.remove ) { - $( elem ).triggerHandler( "remove" ); - } - - // Http://bugs.jquery.com/ticket/8235 - } catch ( e ) {} - } - orig( elems ); - }; -} )( $.cleanData ); - -$.widget = function( name, base, prototype ) { - var existingConstructor, constructor, basePrototype; - - // ProxiedPrototype allows the provided prototype to remain unmodified - // so that it can be used as a mixin for multiple widgets (#8876) - var proxiedPrototype = {}; - - var namespace = name.split( "." )[ 0 ]; - name = name.split( "." )[ 1 ]; - var fullName = namespace + "-" + name; - - if ( !prototype ) { - prototype = base; - base = $.Widget; - } - - if ( $.isArray( prototype ) ) { - prototype = $.extend.apply( null, [ {} ].concat( prototype ) ); - } - - // Create selector for plugin - $.expr[ ":" ][ fullName.toLowerCase() ] = function( elem ) { - return !!$.data( elem, fullName ); - }; - - $[ namespace ] = $[ namespace ] || {}; - existingConstructor = $[ namespace ][ name ]; - constructor = $[ namespace ][ name ] = function( options, element ) { - - // Allow instantiation without "new" keyword - if ( !this._createWidget ) { - return new constructor( options, element ); - } - - // Allow instantiation without initializing for simple inheritance - // must use "new" keyword (the code above always passes args) - if ( arguments.length ) { - this._createWidget( options, element ); - } - }; - - // Extend with the existing constructor to carry over any static properties - $.extend( constructor, existingConstructor, { - version: prototype.version, - - // Copy the object used to create the prototype in case we need to - // redefine the widget later - _proto: $.extend( {}, prototype ), - - // Track widgets that inherit from this widget in case this widget is - // redefined after a widget inherits from it - _childConstructors: [] - } ); - - basePrototype = new base(); - - // We need to make the options hash a property directly on the new instance - // otherwise we'll modify the options hash on the prototype that we're - // inheriting from - basePrototype.options = $.widget.extend( {}, basePrototype.options ); - $.each( prototype, function( prop, value ) { - if ( !$.isFunction( value ) ) { - proxiedPrototype[ prop ] = value; - return; - } - proxiedPrototype[ prop ] = ( function() { - function _super() { - return base.prototype[ prop ].apply( this, arguments ); - } - - function _superApply( args ) { - return base.prototype[ prop ].apply( this, args ); - } - - return function() { - var __super = this._super; - var __superApply = this._superApply; - var returnValue; - - this._super = _super; - this._superApply = _superApply; - - returnValue = value.apply( this, arguments ); - - this._super = __super; - this._superApply = __superApply; - - return returnValue; - }; - } )(); - } ); - constructor.prototype = $.widget.extend( basePrototype, { - - // TODO: remove support for widgetEventPrefix - // always use the name + a colon as the prefix, e.g., draggable:start - // don't prefix for widgets that aren't DOM-based - widgetEventPrefix: existingConstructor ? ( basePrototype.widgetEventPrefix || name ) : name - }, proxiedPrototype, { - constructor: constructor, - namespace: namespace, - widgetName: name, - widgetFullName: fullName - } ); - - // If this widget is being redefined then we need to find all widgets that - // are inheriting from it and redefine all of them so that they inherit from - // the new version of this widget. We're essentially trying to replace one - // level in the prototype chain. - if ( existingConstructor ) { - $.each( existingConstructor._childConstructors, function( i, child ) { - var childPrototype = child.prototype; - - // Redefine the child widget using the same prototype that was - // originally used, but inherit from the new version of the base - $.widget( childPrototype.namespace + "." + childPrototype.widgetName, constructor, - child._proto ); - } ); - - // Remove the list of existing child constructors from the old constructor - // so the old child constructors can be garbage collected - delete existingConstructor._childConstructors; - } else { - base._childConstructors.push( constructor ); - } - - $.widget.bridge( name, constructor ); - - return constructor; -}; - -$.widget.extend = function( target ) { - var input = widgetSlice.call( arguments, 1 ); - var inputIndex = 0; - var inputLength = input.length; - var key; - var value; - - for ( ; inputIndex < inputLength; inputIndex++ ) { - for ( key in input[ inputIndex ] ) { - value = input[ inputIndex ][ key ]; - if ( input[ inputIndex ].hasOwnProperty( key ) && value !== undefined ) { - - // Clone objects - if ( $.isPlainObject( value ) ) { - target[ key ] = $.isPlainObject( target[ key ] ) ? - $.widget.extend( {}, target[ key ], value ) : - - // Don't extend strings, arrays, etc. with objects - $.widget.extend( {}, value ); - - // Copy everything else by reference - } else { - target[ key ] = value; - } - } - } - } - return target; -}; - -$.widget.bridge = function( name, object ) { - var fullName = object.prototype.widgetFullName || name; - $.fn[ name ] = function( options ) { - var isMethodCall = typeof options === "string"; - var args = widgetSlice.call( arguments, 1 ); - var returnValue = this; - - if ( isMethodCall ) { - - // If this is an empty collection, we need to have the instance method - // return undefined instead of the jQuery instance - if ( !this.length && options === "instance" ) { - returnValue = undefined; - } else { - this.each( function() { - var methodValue; - var instance = $.data( this, fullName ); - - if ( options === "instance" ) { - returnValue = instance; - return false; - } - - if ( !instance ) { - return $.error( "cannot call methods on " + name + - " prior to initialization; " + - "attempted to call method '" + options + "'" ); - } - - if ( !$.isFunction( instance[ options ] ) || options.charAt( 0 ) === "_" ) { - return $.error( "no such method '" + options + "' for " + name + - " widget instance" ); - } - - methodValue = instance[ options ].apply( instance, args ); - - if ( methodValue !== instance && methodValue !== undefined ) { - returnValue = methodValue && methodValue.jquery ? - returnValue.pushStack( methodValue.get() ) : - methodValue; - return false; - } - } ); - } - } else { - - // Allow multiple hashes to be passed on init - if ( args.length ) { - options = $.widget.extend.apply( null, [ options ].concat( args ) ); - } - - this.each( function() { - var instance = $.data( this, fullName ); - if ( instance ) { - instance.option( options || {} ); - if ( instance._init ) { - instance._init(); - } - } else { - $.data( this, fullName, new object( options, this ) ); - } - } ); - } - - return returnValue; - }; -}; - -$.Widget = function( /* options, element */ ) {}; -$.Widget._childConstructors = []; - -$.Widget.prototype = { - widgetName: "widget", - widgetEventPrefix: "", - defaultElement: "
    ", - - options: { - classes: {}, - disabled: false, - - // Callbacks - create: null - }, - - _createWidget: function( options, element ) { - element = $( element || this.defaultElement || this )[ 0 ]; - this.element = $( element ); - this.uuid = widgetUuid++; - this.eventNamespace = "." + this.widgetName + this.uuid; - - this.bindings = $(); - this.hoverable = $(); - this.focusable = $(); - this.classesElementLookup = {}; - - if ( element !== this ) { - $.data( element, this.widgetFullName, this ); - this._on( true, this.element, { - remove: function( event ) { - if ( event.target === element ) { - this.destroy(); - } - } - } ); - this.document = $( element.style ? - - // Element within the document - element.ownerDocument : - - // Element is window or document - element.document || element ); - this.window = $( this.document[ 0 ].defaultView || this.document[ 0 ].parentWindow ); - } - - this.options = $.widget.extend( {}, - this.options, - this._getCreateOptions(), - options ); - - this._create(); - - if ( this.options.disabled ) { - this._setOptionDisabled( this.options.disabled ); - } - - this._trigger( "create", null, this._getCreateEventData() ); - this._init(); - }, - - _getCreateOptions: function() { - return {}; - }, - - _getCreateEventData: $.noop, - - _create: $.noop, - - _init: $.noop, - - destroy: function() { - var that = this; - - this._destroy(); - $.each( this.classesElementLookup, function( key, value ) { - that._removeClass( value, key ); - } ); - - // We can probably remove the unbind calls in 2.0 - // all event bindings should go through this._on() - this.element - .off( this.eventNamespace ) - .removeData( this.widgetFullName ); - this.widget() - .off( this.eventNamespace ) - .removeAttr( "aria-disabled" ); - - // Clean up events and states - this.bindings.off( this.eventNamespace ); - }, - - _destroy: $.noop, - - widget: function() { - return this.element; - }, - - option: function( key, value ) { - var options = key; - var parts; - var curOption; - var i; - - if ( arguments.length === 0 ) { - - // Don't return a reference to the internal hash - return $.widget.extend( {}, this.options ); - } - - if ( typeof key === "string" ) { - - // Handle nested keys, e.g., "foo.bar" => { foo: { bar: ___ } } - options = {}; - parts = key.split( "." ); - key = parts.shift(); - if ( parts.length ) { - curOption = options[ key ] = $.widget.extend( {}, this.options[ key ] ); - for ( i = 0; i < parts.length - 1; i++ ) { - curOption[ parts[ i ] ] = curOption[ parts[ i ] ] || {}; - curOption = curOption[ parts[ i ] ]; - } - key = parts.pop(); - if ( arguments.length === 1 ) { - return curOption[ key ] === undefined ? null : curOption[ key ]; - } - curOption[ key ] = value; - } else { - if ( arguments.length === 1 ) { - return this.options[ key ] === undefined ? null : this.options[ key ]; - } - options[ key ] = value; - } - } - - this._setOptions( options ); - - return this; - }, - - _setOptions: function( options ) { - var key; - - for ( key in options ) { - this._setOption( key, options[ key ] ); - } - - return this; - }, - - _setOption: function( key, value ) { - if ( key === "classes" ) { - this._setOptionClasses( value ); - } - - this.options[ key ] = value; - - if ( key === "disabled" ) { - this._setOptionDisabled( value ); - } - - return this; - }, - - _setOptionClasses: function( value ) { - var classKey, elements, currentElements; - - for ( classKey in value ) { - currentElements = this.classesElementLookup[ classKey ]; - if ( value[ classKey ] === this.options.classes[ classKey ] || - !currentElements || - !currentElements.length ) { - continue; - } - - // We are doing this to create a new jQuery object because the _removeClass() call - // on the next line is going to destroy the reference to the current elements being - // tracked. We need to save a copy of this collection so that we can add the new classes - // below. - elements = $( currentElements.get() ); - this._removeClass( currentElements, classKey ); - - // We don't use _addClass() here, because that uses this.options.classes - // for generating the string of classes. We want to use the value passed in from - // _setOption(), this is the new value of the classes option which was passed to - // _setOption(). We pass this value directly to _classes(). - elements.addClass( this._classes( { - element: elements, - keys: classKey, - classes: value, - add: true - } ) ); - } - }, - - _setOptionDisabled: function( value ) { - this._toggleClass( this.widget(), this.widgetFullName + "-disabled", null, !!value ); - - // If the widget is becoming disabled, then nothing is interactive - if ( value ) { - this._removeClass( this.hoverable, null, "ui-state-hover" ); - this._removeClass( this.focusable, null, "ui-state-focus" ); - } - }, - - enable: function() { - return this._setOptions( { disabled: false } ); - }, - - disable: function() { - return this._setOptions( { disabled: true } ); - }, - - _classes: function( options ) { - var full = []; - var that = this; - - options = $.extend( { - element: this.element, - classes: this.options.classes || {} - }, options ); - - function processClassString( classes, checkOption ) { - var current, i; - for ( i = 0; i < classes.length; i++ ) { - current = that.classesElementLookup[ classes[ i ] ] || $(); - if ( options.add ) { - current = $( $.unique( current.get().concat( options.element.get() ) ) ); - } else { - current = $( current.not( options.element ).get() ); - } - that.classesElementLookup[ classes[ i ] ] = current; - full.push( classes[ i ] ); - if ( checkOption && options.classes[ classes[ i ] ] ) { - full.push( options.classes[ classes[ i ] ] ); - } - } - } - - this._on( options.element, { - "remove": "_untrackClassesElement" - } ); - - if ( options.keys ) { - processClassString( options.keys.match( /\S+/g ) || [], true ); - } - if ( options.extra ) { - processClassString( options.extra.match( /\S+/g ) || [] ); - } - - return full.join( " " ); - }, - - _untrackClassesElement: function( event ) { - var that = this; - $.each( that.classesElementLookup, function( key, value ) { - if ( $.inArray( event.target, value ) !== -1 ) { - that.classesElementLookup[ key ] = $( value.not( event.target ).get() ); - } - } ); - }, - - _removeClass: function( element, keys, extra ) { - return this._toggleClass( element, keys, extra, false ); - }, - - _addClass: function( element, keys, extra ) { - return this._toggleClass( element, keys, extra, true ); - }, - - _toggleClass: function( element, keys, extra, add ) { - add = ( typeof add === "boolean" ) ? add : extra; - var shift = ( typeof element === "string" || element === null ), - options = { - extra: shift ? keys : extra, - keys: shift ? element : keys, - element: shift ? this.element : element, - add: add - }; - options.element.toggleClass( this._classes( options ), add ); - return this; - }, - - _on: function( suppressDisabledCheck, element, handlers ) { - var delegateElement; - var instance = this; - - // No suppressDisabledCheck flag, shuffle arguments - if ( typeof suppressDisabledCheck !== "boolean" ) { - handlers = element; - element = suppressDisabledCheck; - suppressDisabledCheck = false; - } - - // No element argument, shuffle and use this.element - if ( !handlers ) { - handlers = element; - element = this.element; - delegateElement = this.widget(); - } else { - element = delegateElement = $( element ); - this.bindings = this.bindings.add( element ); - } - - $.each( handlers, function( event, handler ) { - function handlerProxy() { - - // Allow widgets to customize the disabled handling - // - disabled as an array instead of boolean - // - disabled class as method for disabling individual parts - if ( !suppressDisabledCheck && - ( instance.options.disabled === true || - $( this ).hasClass( "ui-state-disabled" ) ) ) { - return; - } - return ( typeof handler === "string" ? instance[ handler ] : handler ) - .apply( instance, arguments ); - } - - // Copy the guid so direct unbinding works - if ( typeof handler !== "string" ) { - handlerProxy.guid = handler.guid = - handler.guid || handlerProxy.guid || $.guid++; - } - - var match = event.match( /^([\w:-]*)\s*(.*)$/ ); - var eventName = match[ 1 ] + instance.eventNamespace; - var selector = match[ 2 ]; - - if ( selector ) { - delegateElement.on( eventName, selector, handlerProxy ); - } else { - element.on( eventName, handlerProxy ); - } - } ); - }, - - _off: function( element, eventName ) { - eventName = ( eventName || "" ).split( " " ).join( this.eventNamespace + " " ) + - this.eventNamespace; - element.off( eventName ).off( eventName ); - - // Clear the stack to avoid memory leaks (#10056) - this.bindings = $( this.bindings.not( element ).get() ); - this.focusable = $( this.focusable.not( element ).get() ); - this.hoverable = $( this.hoverable.not( element ).get() ); - }, - - _delay: function( handler, delay ) { - function handlerProxy() { - return ( typeof handler === "string" ? instance[ handler ] : handler ) - .apply( instance, arguments ); - } - var instance = this; - return setTimeout( handlerProxy, delay || 0 ); - }, - - _hoverable: function( element ) { - this.hoverable = this.hoverable.add( element ); - this._on( element, { - mouseenter: function( event ) { - this._addClass( $( event.currentTarget ), null, "ui-state-hover" ); - }, - mouseleave: function( event ) { - this._removeClass( $( event.currentTarget ), null, "ui-state-hover" ); - } - } ); - }, - - _focusable: function( element ) { - this.focusable = this.focusable.add( element ); - this._on( element, { - focusin: function( event ) { - this._addClass( $( event.currentTarget ), null, "ui-state-focus" ); - }, - focusout: function( event ) { - this._removeClass( $( event.currentTarget ), null, "ui-state-focus" ); - } - } ); - }, - - _trigger: function( type, event, data ) { - var prop, orig; - var callback = this.options[ type ]; - - data = data || {}; - event = $.Event( event ); - event.type = ( type === this.widgetEventPrefix ? - type : - this.widgetEventPrefix + type ).toLowerCase(); - - // The original event may come from any element - // so we need to reset the target on the new event - event.target = this.element[ 0 ]; - - // Copy original event properties over to the new event - orig = event.originalEvent; - if ( orig ) { - for ( prop in orig ) { - if ( !( prop in event ) ) { - event[ prop ] = orig[ prop ]; - } - } - } - - this.element.trigger( event, data ); - return !( $.isFunction( callback ) && - callback.apply( this.element[ 0 ], [ event ].concat( data ) ) === false || - event.isDefaultPrevented() ); - } -}; - -$.each( { show: "fadeIn", hide: "fadeOut" }, function( method, defaultEffect ) { - $.Widget.prototype[ "_" + method ] = function( element, options, callback ) { - if ( typeof options === "string" ) { - options = { effect: options }; - } - - var hasOptions; - var effectName = !options ? - method : - options === true || typeof options === "number" ? - defaultEffect : - options.effect || defaultEffect; - - options = options || {}; - if ( typeof options === "number" ) { - options = { duration: options }; - } - - hasOptions = !$.isEmptyObject( options ); - options.complete = callback; - - if ( options.delay ) { - element.delay( options.delay ); - } - - if ( hasOptions && $.effects && $.effects.effect[ effectName ] ) { - element[ method ]( options ); - } else if ( effectName !== method && element[ effectName ] ) { - element[ effectName ]( options.duration, options.easing, callback ); - } else { - element.queue( function( next ) { - $( this )[ method ](); - if ( callback ) { - callback.call( element[ 0 ] ); - } - next(); - } ); - } - }; -} ); - -return $.widget; - -} ) ); - - -/***/ }), - -/***/ "./node_modules/jquery/dist/jquery.js": -/*!********************************************!*\ - !*** ./node_modules/jquery/dist/jquery.js ***! - \********************************************/ -/*! dynamic exports provided */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*! +!function(t){e.exports=t()}(function(){return function e(t,n,a){function r(s,d){if(!n[s]){if(!t[s]){var l="function"==typeof i&&i;if(!d&&l)return i(s,!0);if(o)return o(s,!0);var u=new Error("Cannot find module '"+s+"'");throw u.code="MODULE_NOT_FOUND",u}var c=n[s]={exports:{}};t[s][0].call(c.exports,function(e){return r(t[s][1][e]||e)},c,c.exports,e,t,n,a)}return n[s].exports}for(var o="function"==typeof i&&i,s=0;sn?(t+.05)/(n+.05):(n+.05)/(t+.05)},level:function(e){var t=this.contrast(e);return t>=7.1?"AAA":t>=4.5?"AA":""},dark:function(){var e=this.values.rgb;return(299*e[0]+587*e[1]+114*e[2])/1e3<128},light:function(){return!this.dark()},negate:function(){for(var e=[],t=0;t<3;t++)e[t]=255-this.values.rgb[t];return this.setValues("rgb",e),this},lighten:function(e){var t=this.values.hsl;return t[2]+=t[2]*e,this.setValues("hsl",t),this},darken:function(e){var t=this.values.hsl;return t[2]-=t[2]*e,this.setValues("hsl",t),this},saturate:function(e){var t=this.values.hsl;return t[1]+=t[1]*e,this.setValues("hsl",t),this},desaturate:function(e){var t=this.values.hsl;return t[1]-=t[1]*e,this.setValues("hsl",t),this},whiten:function(e){var t=this.values.hwb;return t[1]+=t[1]*e,this.setValues("hwb",t),this},blacken:function(e){var t=this.values.hwb;return t[2]+=t[2]*e,this.setValues("hwb",t),this},greyscale:function(){var e=this.values.rgb,t=.3*e[0]+.59*e[1]+.11*e[2];return this.setValues("rgb",[t,t,t]),this},clearer:function(e){var t=this.values.alpha;return this.setValues("alpha",t-t*e),this},opaquer:function(e){var t=this.values.alpha;return this.setValues("alpha",t+t*e),this},rotate:function(e){var t=this.values.hsl,n=(t[0]+e)%360;return t[0]=n<0?360+n:n,this.setValues("hsl",t),this},mix:function(e,t){var n=this,i=e,a=void 0===t?.5:t,r=2*a-1,o=n.alpha()-i.alpha(),s=((r*o==-1?r:(r+o)/(1+r*o))+1)/2,d=1-s;return this.rgb(s*n.red()+d*i.red(),s*n.green()+d*i.green(),s*n.blue()+d*i.blue()).alpha(n.alpha()*a+i.alpha()*(1-a))},toJSON:function(){return this.rgb()},clone:function(){var e,t,n=new r,i=this.values,a=n.values;for(var o in i)i.hasOwnProperty(o)&&(e=i[o],"[object Array]"===(t={}.toString.call(e))?a[o]=e.slice(0):"[object Number]"===t?a[o]=e:console.error("unexpected color value:",e));return n}},r.prototype.spaces={rgb:["red","green","blue"],hsl:["hue","saturation","lightness"],hsv:["hue","saturation","value"],hwb:["hue","whiteness","blackness"],cmyk:["cyan","magenta","yellow","black"]},r.prototype.maxes={rgb:[255,255,255],hsl:[360,100,100],hsv:[360,100,100],hwb:[360,100,100],cmyk:[100,100,100,100]},r.prototype.getValues=function(e){for(var t=this.values,n={},i=0;i.04045?Math.pow((t+.055)/1.055,2.4):t/12.92)+.3576*(n=n>.04045?Math.pow((n+.055)/1.055,2.4):n/12.92)+.1805*(i=i>.04045?Math.pow((i+.055)/1.055,2.4):i/12.92)),100*(.2126*t+.7152*n+.0722*i),100*(.0193*t+.1192*n+.9505*i)]}function u(e){var t=l(e),n=t[0],i=t[1],a=t[2];return i/=100,a/=108.883,n=(n/=95.047)>.008856?Math.pow(n,1/3):7.787*n+16/116,[116*(i=i>.008856?Math.pow(i,1/3):7.787*i+16/116)-16,500*(n-i),200*(i-(a=a>.008856?Math.pow(a,1/3):7.787*a+16/116))]}function c(e){var t,n,i,a,r,o=e[0]/360,s=e[1]/100,d=e[2]/100;if(0==s)return[r=255*d,r,r];t=2*d-(n=d<.5?d*(1+s):d+s-d*s),a=[0,0,0];for(var l=0;l<3;l++)(i=o+1/3*-(l-1))<0&&i++,i>1&&i--,r=6*i<1?t+6*(n-t)*i:2*i<1?n:3*i<2?t+(n-t)*(2/3-i)*6:t,a[l]=255*r;return a}function h(e){var t=e[0]/60,n=e[1]/100,i=e[2]/100,a=Math.floor(t)%6,r=t-Math.floor(t),o=255*i*(1-n),s=255*i*(1-n*r),d=255*i*(1-n*(1-r));switch(i*=255,a){case 0:return[i,d,o];case 1:return[s,i,o];case 2:return[o,i,d];case 3:return[o,s,i];case 4:return[d,o,i];case 5:return[i,o,s]}}function m(e){var t,n,i,a,o=e[0]/360,s=e[1]/100,d=e[2]/100,l=s+d;switch(l>1&&(s/=l,d/=l),i=6*o-(t=Math.floor(6*o)),0!=(1&t)&&(i=1-i),a=s+i*((n=1-d)-s),t){default:case 6:case 0:r=n,g=a,b=s;break;case 1:r=a,g=n,b=s;break;case 2:r=s,g=n,b=a;break;case 3:r=s,g=a,b=n;break;case 4:r=a,g=s,b=n;break;case 5:r=n,g=s,b=a}return[255*r,255*g,255*b]}function p(e){var t=e[0]/100,n=e[1]/100,i=e[2]/100,a=e[3]/100;return[255*(1-Math.min(1,t*(1-a)+a)),255*(1-Math.min(1,n*(1-a)+a)),255*(1-Math.min(1,i*(1-a)+a))]}function f(e){var t,n,i,a=e[0]/100,r=e[1]/100,o=e[2]/100;return n=-.9689*a+1.8758*r+.0415*o,i=.0557*a+-.204*r+1.057*o,t=(t=3.2406*a+-1.5372*r+-.4986*o)>.0031308?1.055*Math.pow(t,1/2.4)-.055:t*=12.92,n=n>.0031308?1.055*Math.pow(n,1/2.4)-.055:n*=12.92,i=i>.0031308?1.055*Math.pow(i,1/2.4)-.055:i*=12.92,[255*(t=Math.min(Math.max(0,t),1)),255*(n=Math.min(Math.max(0,n),1)),255*(i=Math.min(Math.max(0,i),1))]}function _(e){var t=e[0],n=e[1],i=e[2];return n/=100,i/=108.883,t=(t/=95.047)>.008856?Math.pow(t,1/3):7.787*t+16/116,[116*(n=n>.008856?Math.pow(n,1/3):7.787*n+16/116)-16,500*(t-n),200*(n-(i=i>.008856?Math.pow(i,1/3):7.787*i+16/116))]}function y(e){var t,n,i,a,r=e[0],o=e[1],s=e[2];return r<=8?a=(n=100*r/903.3)/100*7.787+16/116:(n=100*Math.pow((r+16)/116,3),a=Math.pow(n/100,1/3)),[t=t/95.047<=.008856?t=95.047*(o/500+a-16/116)/7.787:95.047*Math.pow(o/500+a,3),n,i=i/108.883<=.008859?i=108.883*(a-s/200-16/116)/7.787:108.883*Math.pow(a-s/200,3)]}function v(e){var t,n=e[0],i=e[1],a=e[2];return(t=360*Math.atan2(a,i)/2/Math.PI)<0&&(t+=360),[n,Math.sqrt(i*i+a*a),t]}function M(e){return f(y(e))}function L(e){var t,n=e[0],i=e[1];return t=e[2]/360*2*Math.PI,[n,i*Math.cos(t),i*Math.sin(t)]}function D(e){return k[e]}t.exports={rgb2hsl:i,rgb2hsv:a,rgb2hwb:o,rgb2cmyk:s,rgb2keyword:d,rgb2xyz:l,rgb2lab:u,rgb2lch:function(e){return v(u(e))},hsl2rgb:c,hsl2hsv:function(e){var t=e[0],n=e[1]/100,i=e[2]/100;return 0===i?[0,0,0]:[t,2*(n*=(i*=2)<=1?i:2-i)/(i+n)*100,(i+n)/2*100]},hsl2hwb:function(e){return o(c(e))},hsl2cmyk:function(e){return s(c(e))},hsl2keyword:function(e){return d(c(e))},hsv2rgb:h,hsv2hsl:function(e){var t,n,i=e[0],a=e[1]/100,r=e[2]/100;return t=a*r,[i,100*(t=(t/=(n=(2-a)*r)<=1?n:2-n)||0),100*(n/=2)]},hsv2hwb:function(e){return o(h(e))},hsv2cmyk:function(e){return s(h(e))},hsv2keyword:function(e){return d(h(e))},hwb2rgb:m,hwb2hsl:function(e){return i(m(e))},hwb2hsv:function(e){return a(m(e))},hwb2cmyk:function(e){return s(m(e))},hwb2keyword:function(e){return d(m(e))},cmyk2rgb:p,cmyk2hsl:function(e){return i(p(e))},cmyk2hsv:function(e){return a(p(e))},cmyk2hwb:function(e){return o(p(e))},cmyk2keyword:function(e){return d(p(e))},keyword2rgb:D,keyword2hsl:function(e){return i(D(e))},keyword2hsv:function(e){return a(D(e))},keyword2hwb:function(e){return o(D(e))},keyword2cmyk:function(e){return s(D(e))},keyword2lab:function(e){return u(D(e))},keyword2xyz:function(e){return l(D(e))},xyz2rgb:f,xyz2lab:_,xyz2lch:function(e){return v(_(e))},lab2xyz:y,lab2rgb:M,lab2lch:v,lch2lab:L,lch2xyz:function(e){return y(L(e))},lch2rgb:function(e){return M(L(e))}};var k={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]},w={};for(var T in k)w[JSON.stringify(k[T])]=T},{}],5:[function(e,t,n){var i=e(4),a=function(){return new l};for(var r in i){a[r+"Raw"]=function(e){return function(t){return"number"==typeof t&&(t=Array.prototype.slice.call(arguments)),i[e](t)}}(r);var o=/(\w+)2(\w+)/.exec(r),s=o[1],d=o[2];(a[s]=a[s]||{})[d]=a[r]=function(e){return function(t){"number"==typeof t&&(t=Array.prototype.slice.call(arguments));var n=i[e](t);if("string"==typeof n||void 0===n)return n;for(var a=0;a0&&(e[0].yLabel?n=e[0].yLabel:t.labels.length>0&&e[0].index0?Math.min(o,i-n):o,n=i;return o}(n,l):-1,pixels:l,start:s,end:d,stackCount:i,scale:n}},calculateBarValuePixels:function(e,t){var n,i,a,r,o,s,d=this.chart,l=this.getMeta(),u=this.getValueScale(),c=d.data.datasets,h=u.getRightValue(c[e].data[t]),m=u.options.stacked,p=l.stack,f=0;if(m||void 0===m&&void 0!==p)for(n=0;n=0&&a>0)&&(f+=a));return r=u.getPixelForValue(f),{size:s=((o=u.getPixelForValue(f+h))-r)/2,base:r,head:o,center:o+s/2}},calculateBarIndexPixels:function(e,t,n){var i,a,o,s,d,l,u,c,h,m,p,f,_,g,y,v,M,b=n.scale.options,L="flex"===b.barThickness?(h=t,p=b,_=(m=n).pixels,g=_[h],y=h>0?_[h-1]:null,v=h<_.length-1?_[h+1]:null,M=p.categoryPercentage,null===y&&(y=g-(null===v?m.end-g:v-g)),null===v&&(v=g+g-y),f=g-(g-y)/2*M,{chunk:(v-y)/2*M/m.stackCount,ratio:p.barPercentage,start:f}):(i=t,a=n,l=(o=b).barThickness,u=a.stackCount,c=a.pixels[i],r.isNullOrUndef(l)?(s=a.min*o.categoryPercentage,d=o.barPercentage):(s=l*u,d=1),{chunk:s/u,ratio:d,start:c-s/2}),D=this.getStackIndex(e,this.getMeta().stack),k=L.start+L.chunk*D+L.chunk/2,w=Math.min(r.valueOrDefault(b.maxBarThickness,1/0),L.chunk*L.ratio);return{base:k-w/2,head:k+w/2,center:k,size:w}},draw:function(){var e=this.chart,t=this.getValueScale(),n=this.getMeta().data,i=this.getDataset(),a=n.length,o=0;for(r.canvas.clipArea(e.ctx,e.chartArea);o');var n=e.data,i=n.datasets,a=n.labels;if(i.length)for(var r=0;r'),a[r]&&t.push(a[r]),t.push("");return t.push(""),t.join("")},legend:{labels:{generateLabels:function(e){var t=e.data;return t.labels.length&&t.datasets.length?t.labels.map(function(n,i){var a=e.getDatasetMeta(0),o=t.datasets[0],s=a.data[i],d=s&&s.custom||{},l=r.valueAtIndexOrDefault,u=e.options.elements.arc;return{text:n,fillStyle:d.backgroundColor?d.backgroundColor:l(o.backgroundColor,i,u.backgroundColor),strokeStyle:d.borderColor?d.borderColor:l(o.borderColor,i,u.borderColor),lineWidth:d.borderWidth?d.borderWidth:l(o.borderWidth,i,u.borderWidth),hidden:isNaN(o.data[i])||a.data[i].hidden,index:i}}):[]}},onClick:function(e,t){var n,i,a,r=t.index,o=this.chart;for(n=0,i=(o.data.datasets||[]).length;n=Math.PI?-1:p<-Math.PI?1:0))+m,_=Math.cos(p),g=Math.sin(p),y=Math.cos(f),v=Math.sin(f),M=p<=0&&f>=0||p<=2*Math.PI&&2*Math.PI<=f,b=p<=.5*Math.PI&&.5*Math.PI<=f||p<=2.5*Math.PI&&2.5*Math.PI<=f,L=p<=-Math.PI&&-Math.PI<=f||p<=Math.PI&&Math.PI<=f,D=p<=.5*-Math.PI&&.5*-Math.PI<=f||p<=1.5*Math.PI&&1.5*Math.PI<=f,k=h/100,w=L?-1:Math.min(_*(_<0?1:k),y*(y<0?1:k)),T=D?-1:Math.min(g*(g<0?1:k),v*(v<0?1:k)),x=M?1:Math.max(_*(_>0?1:k),y*(y>0?1:k)),Y=b?1:Math.max(g*(g>0?1:k),v*(v>0?1:k)),S=.5*(x-w),H=.5*(Y-T);l=Math.min(s/S,d/H),u={x:-.5*(x+w),y:-.5*(Y+T)}}n.borderWidth=t.getMaxBorderWidth(c.data),n.outerRadius=Math.max((l-n.borderWidth)/2,0),n.innerRadius=Math.max(h?n.outerRadius/100*h:0,0),n.radiusLength=(n.outerRadius-n.innerRadius)/n.getVisibleDatasetCount(),n.offsetX=u.x*n.outerRadius,n.offsetY=u.y*n.outerRadius,c.total=t.calculateTotal(),t.outerRadius=n.outerRadius-n.radiusLength*t.getRingIndex(t.index),t.innerRadius=Math.max(t.outerRadius-n.radiusLength,0),r.each(c.data,function(n,i){t.updateElement(n,i,e)})},updateElement:function(e,t,n){var i=this,a=i.chart,o=a.chartArea,s=a.options,d=s.animation,l=(o.left+o.right)/2,u=(o.top+o.bottom)/2,c=s.rotation,h=s.rotation,m=i.getDataset(),p=n&&d.animateRotate?0:e.hidden?0:i.calculateCircumference(m.data[t])*(s.circumference/(2*Math.PI)),f=n&&d.animateScale?0:i.innerRadius,_=n&&d.animateScale?0:i.outerRadius,g=r.valueAtIndexOrDefault;r.extend(e,{_datasetIndex:i.index,_index:t,_model:{x:l+a.offsetX,y:u+a.offsetY,startAngle:c,endAngle:h,circumference:p,outerRadius:_,innerRadius:f,label:g(m.label,t,a.data.labels[t])}});var y=e._model;this.removeHoverStyle(e),n&&d.animateRotate||(y.startAngle=0===t?s.rotation:i.getMeta().data[t-1]._model.endAngle,y.endAngle=y.startAngle+y.circumference),e.pivot()},removeHoverStyle:function(t){e.DatasetController.prototype.removeHoverStyle.call(this,t,this.chart.options.elements.arc)},calculateTotal:function(){var e,t=this.getDataset(),n=this.getMeta(),i=0;return r.each(n.data,function(n,a){e=t.data[a],isNaN(e)||n.hidden||(i+=Math.abs(e))}),i},calculateCircumference:function(e){var t=this.getMeta().total;return t>0&&!isNaN(e)?2*Math.PI*(Math.abs(e)/t):0},getMaxBorderWidth:function(e){for(var t,n,i=0,a=this.index,r=e.length,o=0;o(i=t>i?t:i)?n:i;return i}})}},{25:25,40:40,45:45}],18:[function(e,t,n){"use strict";var i=e(25),a=e(40),r=e(45);i._set("line",{showLines:!0,spanGaps:!1,hover:{mode:"label"},scales:{xAxes:[{type:"category",id:"x-axis-0"}],yAxes:[{type:"linear",id:"y-axis-0"}]}}),t.exports=function(e){function t(e,t){return r.valueOrDefault(e.showLine,t.showLines)}e.controllers.line=e.DatasetController.extend({datasetElementType:a.Line,dataElementType:a.Point,update:function(e){var n,i,a,o=this,s=o.getMeta(),d=s.dataset,l=s.data||[],u=o.chart.options,c=u.elements.line,h=o.getScaleForId(s.yAxisID),m=o.getDataset(),p=t(m,u);for(p&&(a=d.custom||{},void 0!==m.tension&&void 0===m.lineTension&&(m.lineTension=m.tension),d._scale=h,d._datasetIndex=o.index,d._children=l,d._model={spanGaps:m.spanGaps?m.spanGaps:u.spanGaps,tension:a.tension?a.tension:r.valueOrDefault(m.lineTension,c.tension),backgroundColor:a.backgroundColor?a.backgroundColor:m.backgroundColor||c.backgroundColor,borderWidth:a.borderWidth?a.borderWidth:m.borderWidth||c.borderWidth,borderColor:a.borderColor?a.borderColor:m.borderColor||c.borderColor,borderCapStyle:a.borderCapStyle?a.borderCapStyle:m.borderCapStyle||c.borderCapStyle,borderDash:a.borderDash?a.borderDash:m.borderDash||c.borderDash,borderDashOffset:a.borderDashOffset?a.borderDashOffset:m.borderDashOffset||c.borderDashOffset,borderJoinStyle:a.borderJoinStyle?a.borderJoinStyle:m.borderJoinStyle||c.borderJoinStyle,fill:a.fill?a.fill:void 0!==m.fill?m.fill:c.fill,steppedLine:a.steppedLine?a.steppedLine:r.valueOrDefault(m.steppedLine,c.stepped),cubicInterpolationMode:a.cubicInterpolationMode?a.cubicInterpolationMode:r.valueOrDefault(m.cubicInterpolationMode,c.cubicInterpolationMode)},d.pivot()),n=0,i=l.length;n');var n=e.data,i=n.datasets,a=n.labels;if(i.length)for(var r=0;r'),a[r]&&t.push(a[r]),t.push("");return t.push(""),t.join("")},legend:{labels:{generateLabels:function(e){var t=e.data;return t.labels.length&&t.datasets.length?t.labels.map(function(n,i){var a=e.getDatasetMeta(0),o=t.datasets[0],s=a.data[i].custom||{},d=r.valueAtIndexOrDefault,l=e.options.elements.arc;return{text:n,fillStyle:s.backgroundColor?s.backgroundColor:d(o.backgroundColor,i,l.backgroundColor),strokeStyle:s.borderColor?s.borderColor:d(o.borderColor,i,l.borderColor),lineWidth:s.borderWidth?s.borderWidth:d(o.borderWidth,i,l.borderWidth),hidden:isNaN(o.data[i])||a.data[i].hidden,index:i}}):[]}},onClick:function(e,t){var n,i,a,r=t.index,o=this.chart;for(n=0,i=(o.data.datasets||[]).length;n0&&!isNaN(e)?2*Math.PI/t:0}})}},{25:25,40:40,45:45}],20:[function(e,t,n){"use strict";var i=e(25),a=e(40),r=e(45);i._set("radar",{scale:{type:"radialLinear"},elements:{line:{tension:0}}}),t.exports=function(e){e.controllers.radar=e.DatasetController.extend({datasetElementType:a.Line,dataElementType:a.Point,linkScales:r.noop,update:function(e){var t=this,n=t.getMeta(),i=n.dataset,a=n.data,o=i.custom||{},s=t.getDataset(),d=t.chart.options.elements.line,l=t.chart.scale;void 0!==s.tension&&void 0===s.lineTension&&(s.lineTension=s.tension),r.extend(n.dataset,{_datasetIndex:t.index,_scale:l,_children:a,_loop:!0,_model:{tension:o.tension?o.tension:r.valueOrDefault(s.lineTension,d.tension),backgroundColor:o.backgroundColor?o.backgroundColor:s.backgroundColor||d.backgroundColor,borderWidth:o.borderWidth?o.borderWidth:s.borderWidth||d.borderWidth,borderColor:o.borderColor?o.borderColor:s.borderColor||d.borderColor,fill:o.fill?o.fill:void 0!==s.fill?s.fill:d.fill,borderCapStyle:o.borderCapStyle?o.borderCapStyle:s.borderCapStyle||d.borderCapStyle,borderDash:o.borderDash?o.borderDash:s.borderDash||d.borderDash,borderDashOffset:o.borderDashOffset?o.borderDashOffset:s.borderDashOffset||d.borderDashOffset,borderJoinStyle:o.borderJoinStyle?o.borderJoinStyle:s.borderJoinStyle||d.borderJoinStyle}}),n.dataset.pivot(),r.each(a,function(n,i){t.updateElement(n,i,e)},t),t.updateBezierControlPoints()},updateElement:function(e,t,n){var i=this,a=e.custom||{},o=i.getDataset(),s=i.chart.scale,d=i.chart.options.elements.point,l=s.getPointPositionForValue(t,o.data[t]);void 0!==o.radius&&void 0===o.pointRadius&&(o.pointRadius=o.radius),void 0!==o.hitRadius&&void 0===o.pointHitRadius&&(o.pointHitRadius=o.hitRadius),r.extend(e,{_datasetIndex:i.index,_index:t,_scale:s,_model:{x:n?s.xCenter:l.x,y:n?s.yCenter:l.y,tension:a.tension?a.tension:r.valueOrDefault(o.lineTension,i.chart.options.elements.line.tension),radius:a.radius?a.radius:r.valueAtIndexOrDefault(o.pointRadius,t,d.radius),backgroundColor:a.backgroundColor?a.backgroundColor:r.valueAtIndexOrDefault(o.pointBackgroundColor,t,d.backgroundColor),borderColor:a.borderColor?a.borderColor:r.valueAtIndexOrDefault(o.pointBorderColor,t,d.borderColor),borderWidth:a.borderWidth?a.borderWidth:r.valueAtIndexOrDefault(o.pointBorderWidth,t,d.borderWidth),pointStyle:a.pointStyle?a.pointStyle:r.valueAtIndexOrDefault(o.pointStyle,t,d.pointStyle),hitRadius:a.hitRadius?a.hitRadius:r.valueAtIndexOrDefault(o.pointHitRadius,t,d.hitRadius)}}),e._model.skip=a.skip?a.skip:isNaN(e._model.x)||isNaN(e._model.y)},updateBezierControlPoints:function(){var e=this.chart.chartArea,t=this.getMeta();r.each(t.data,function(n,i){var a=n._model,o=r.splineCurve(r.previousItem(t.data,i,!0)._model,a,r.nextItem(t.data,i,!0)._model,a.tension);a.controlPointPreviousX=Math.max(Math.min(o.previous.x,e.right),e.left),a.controlPointPreviousY=Math.max(Math.min(o.previous.y,e.bottom),e.top),a.controlPointNextX=Math.max(Math.min(o.next.x,e.right),e.left),a.controlPointNextY=Math.max(Math.min(o.next.y,e.bottom),e.top),n.pivot()})},setHoverStyle:function(e){var t=this.chart.data.datasets[e._datasetIndex],n=e.custom||{},i=e._index,a=e._model;a.radius=n.hoverRadius?n.hoverRadius:r.valueAtIndexOrDefault(t.pointHoverRadius,i,this.chart.options.elements.point.hoverRadius),a.backgroundColor=n.hoverBackgroundColor?n.hoverBackgroundColor:r.valueAtIndexOrDefault(t.pointHoverBackgroundColor,i,r.getHoverColor(a.backgroundColor)),a.borderColor=n.hoverBorderColor?n.hoverBorderColor:r.valueAtIndexOrDefault(t.pointHoverBorderColor,i,r.getHoverColor(a.borderColor)),a.borderWidth=n.hoverBorderWidth?n.hoverBorderWidth:r.valueAtIndexOrDefault(t.pointHoverBorderWidth,i,a.borderWidth)},removeHoverStyle:function(e){var t=this.chart.data.datasets[e._datasetIndex],n=e.custom||{},i=e._index,a=e._model,o=this.chart.options.elements.point;a.radius=n.radius?n.radius:r.valueAtIndexOrDefault(t.pointRadius,i,o.radius),a.backgroundColor=n.backgroundColor?n.backgroundColor:r.valueAtIndexOrDefault(t.pointBackgroundColor,i,o.backgroundColor),a.borderColor=n.borderColor?n.borderColor:r.valueAtIndexOrDefault(t.pointBorderColor,i,o.borderColor),a.borderWidth=n.borderWidth?n.borderWidth:r.valueAtIndexOrDefault(t.pointBorderWidth,i,o.borderWidth)}})}},{25:25,40:40,45:45}],21:[function(e,t,n){"use strict";e(25)._set("scatter",{hover:{mode:"single"},scales:{xAxes:[{id:"x-axis-1",type:"linear",position:"bottom"}],yAxes:[{id:"y-axis-1",type:"linear",position:"left"}]},showLines:!1,tooltips:{callbacks:{title:function(){return""},label:function(e){return"("+e.xLabel+", "+e.yLabel+")"}}}}),t.exports=function(e){e.controllers.scatter=e.controllers.line}},{25:25}],22:[function(e,t,n){"use strict";var i=e(25),a=e(26),r=e(45);i._set("global",{animation:{duration:1e3,easing:"easeOutQuart",onProgress:r.noop,onComplete:r.noop}}),t.exports=function(e){e.Animation=a.extend({chart:null,currentStep:0,numSteps:60,easing:"",render:null,onAnimationProgress:null,onAnimationComplete:null}),e.animationService={frameDuration:17,animations:[],dropFrames:0,request:null,addAnimation:function(e,t,n,i){var a,r,o=this.animations;for(t.chart=e,i||(e.animating=!0),a=0,r=o.length;a1&&(n=Math.floor(e.dropFrames),e.dropFrames=e.dropFrames%1),e.advance(1+n);var i=Date.now();e.dropFrames+=(i-t)/e.frameDuration,e.animations.length>0&&e.requestAnimationFrame()},advance:function(e){for(var t,n,i=this.animations,a=0;a=t.numSteps?(r.callback(t.onAnimationComplete,[t],n),n.animating=!1,i.splice(a,1)):++a}},Object.defineProperty(e.Animation.prototype,"animationObject",{get:function(){return this}}),Object.defineProperty(e.Animation.prototype,"chartInstance",{get:function(){return this.chart},set:function(e){this.chart=e}})}},{25:25,26:26,45:45}],23:[function(e,t,n){"use strict";var i=e(25),a=e(45),r=e(28),o=e(30),s=e(48),d=e(31);t.exports=function(e){function t(e){return"top"===e||"bottom"===e}e.types={},e.instances={},e.controllers={},a.extend(e.prototype,{construct:function(t,n){var r,o,d=this;(o=(r=(r=n)||{}).data=r.data||{}).datasets=o.datasets||[],o.labels=o.labels||[],r.options=a.configMerge(i.global,i[r.type],r.options||{}),n=r;var l=s.acquireContext(t,n),u=l&&l.canvas,c=u&&u.height,h=u&&u.width;d.id=a.uid(),d.ctx=l,d.canvas=u,d.config=n,d.width=h,d.height=c,d.aspectRatio=c?h/c:null,d.options=n.options,d._bufferedRender=!1,d.chart=d,d.controller=d,e.instances[d.id]=d,Object.defineProperty(d,"data",{get:function(){return d.config.data},set:function(e){d.config.data=e}}),l&&u?(d.initialize(),d.update()):console.error("Failed to create chart: can't acquire context from the given item")},initialize:function(){var e=this;return d.notify(e,"beforeInit"),a.retinaScale(e,e.options.devicePixelRatio),e.bindEvents(),e.options.responsive&&e.resize(!0),e.ensureScalesHaveIDs(),e.buildOrUpdateScales(),e.initToolTip(),d.notify(e,"afterInit"),e},clear:function(){return a.canvas.clear(this),this},stop:function(){return e.animationService.cancelAnimation(this),this},resize:function(e){var t=this,n=t.options,i=t.canvas,r=n.maintainAspectRatio&&t.aspectRatio||null,o=Math.max(0,Math.floor(a.getMaximumWidth(i))),s=Math.max(0,Math.floor(r?o/r:a.getMaximumHeight(i)));if((t.width!==o||t.height!==s)&&(i.width=t.width=o,i.height=t.height=s,i.style.width=o+"px",i.style.height=s+"px",a.retinaScale(t,n.devicePixelRatio),!e)){var l={width:o,height:s};d.notify(t,"resize",[l]),t.options.onResize&&t.options.onResize(t,l),t.stop(),t.update(t.options.responsiveAnimationDuration)}},ensureScalesHaveIDs:function(){var e=this.options,t=e.scales||{},n=e.scale;a.each(t.xAxes,function(e,t){e.id=e.id||"x-axis-"+t}),a.each(t.yAxes,function(e,t){e.id=e.id||"y-axis-"+t}),n&&(n.id=n.id||"scale")},buildOrUpdateScales:function(){var n=this,i=n.options,r=n.scales||{},o=[],s=Object.keys(r).reduce(function(e,t){return e[t]=!1,e},{});i.scales&&(o=o.concat((i.scales.xAxes||[]).map(function(e){return{options:e,dtype:"category",dposition:"bottom"}}),(i.scales.yAxes||[]).map(function(e){return{options:e,dtype:"linear",dposition:"left"}}))),i.scale&&o.push({options:i.scale,dtype:"radialLinear",isDefault:!0,dposition:"chartArea"}),a.each(o,function(i){var o=i.options,d=o.id,l=a.valueOrDefault(o.type,i.dtype);t(o.position)!==t(i.dposition)&&(o.position=i.dposition),s[d]=!0;var u=null;if(d in r&&r[d].type===l)(u=r[d]).options=o,u.ctx=n.ctx,u.chart=n;else{var c=e.scaleService.getScaleConstructor(l);if(!c)return;u=new c({id:d,type:l,options:o,ctx:n.ctx,chart:n}),r[u.id]=u}u.mergeTicksOptions(),i.isDefault&&(n.scale=u)}),a.each(s,function(e,t){e||delete r[t]}),n.scales=r,e.scaleService.addScalesToLayout(this)},buildOrUpdateControllers:function(){var t=this,n=[],i=[];return a.each(t.data.datasets,function(a,r){var o=t.getDatasetMeta(r),s=a.type||t.config.type;if(o.type&&o.type!==s&&(t.destroyDatasetMeta(r),o=t.getDatasetMeta(r)),o.type=s,n.push(o.type),o.controller)o.controller.updateIndex(r),o.controller.linkScales();else{var d=e.controllers[o.type];if(void 0===d)throw new Error('"'+o.type+'" is not a chart type.');o.controller=new d(t,r),i.push(o.controller)}},t),i},resetElements:function(){var e=this;a.each(e.data.datasets,function(t,n){e.getDatasetMeta(n).controller.reset()},e)},reset:function(){this.resetElements(),this.tooltip.initialize()},update:function(t){var n,i,r=this;if(t&&"object"==typeof t||(t={duration:t,lazy:arguments[1]}),i=(n=r).options,a.each(n.scales,function(e){o.removeBox(n,e)}),i=a.configMerge(e.defaults.global,e.defaults[n.config.type],i),n.options=n.config.options=i,n.ensureScalesHaveIDs(),n.buildOrUpdateScales(),n.tooltip._options=i.tooltips,n.tooltip.initialize(),d._invalidate(r),!1!==d.notify(r,"beforeUpdate")){r.tooltip._data=r.data;var s=r.buildOrUpdateControllers();a.each(r.data.datasets,function(e,t){r.getDatasetMeta(t).controller.buildOrUpdateElements()},r),r.updateLayout(),r.options.animation&&r.options.animation.duration&&a.each(s,function(e){e.reset()}),r.updateDatasets(),r.tooltip.initialize(),r.lastActive=[],d.notify(r,"afterUpdate"),r._bufferedRender?r._bufferedRequest={duration:t.duration,easing:t.easing,lazy:t.lazy}:r.render(t)}},updateLayout:function(){!1!==d.notify(this,"beforeLayout")&&(o.update(this,this.width,this.height),d.notify(this,"afterScaleUpdate"),d.notify(this,"afterLayout"))},updateDatasets:function(){if(!1!==d.notify(this,"beforeDatasetsUpdate")){for(var e=0,t=this.data.datasets.length;e=0;--n)t.isDatasetVisible(n)&&t.drawDataset(n,e);d.notify(t,"afterDatasetsDraw",[e])}},drawDataset:function(e,t){var n=this.getDatasetMeta(e),i={meta:n,index:e,easingValue:t};!1!==d.notify(this,"beforeDatasetDraw",[i])&&(n.controller.draw(t),d.notify(this,"afterDatasetDraw",[i]))},_drawTooltip:function(e){var t=this.tooltip,n={tooltip:t,easingValue:e};!1!==d.notify(this,"beforeTooltipDraw",[n])&&(t.draw(),d.notify(this,"afterTooltipDraw",[n]))},getElementAtEvent:function(e){return r.modes.single(this,e)},getElementsAtEvent:function(e){return r.modes.label(this,e,{intersect:!0})},getElementsAtXAxis:function(e){return r.modes["x-axis"](this,e,{intersect:!0})},getElementsAtEventForMode:function(e,t,n){var i=r.modes[t];return"function"==typeof i?i(this,e,n):[]},getDatasetAtEvent:function(e){return r.modes.dataset(this,e,{intersect:!0})},getDatasetMeta:function(e){var t=this.data.datasets[e];t._meta||(t._meta={});var n=t._meta[this.id];return n||(n=t._meta[this.id]={type:null,data:[],dataset:null,controller:null,hidden:null,xAxisID:null,yAxisID:null}),n},getVisibleDatasetCount:function(){for(var e=0,t=0,n=this.data.datasets.length;t0||(n.forEach(function(t){delete e[t]}),delete e._chartjs)}}var n=["push","pop","shift","splice","unshift"];e.DatasetController=function(e,t){this.initialize(e,t)},i.extend(e.DatasetController.prototype,{datasetElementType:null,dataElementType:null,initialize:function(e,t){this.chart=e,this.index=t,this.linkScales(),this.addElements()},updateIndex:function(e){this.index=e},linkScales:function(){var e=this,t=e.getMeta(),n=e.getDataset();null!==t.xAxisID&&t.xAxisID in e.chart.scales||(t.xAxisID=n.xAxisID||e.chart.options.scales.xAxes[0].id),null!==t.yAxisID&&t.yAxisID in e.chart.scales||(t.yAxisID=n.yAxisID||e.chart.options.scales.yAxes[0].id)},getDataset:function(){return this.chart.data.datasets[this.index]},getMeta:function(){return this.chart.getDatasetMeta(this.index)},getScaleForId:function(e){return this.chart.scales[e]},reset:function(){this.update(!0)},destroy:function(){this._data&&t(this._data,this)},createMetaDataset:function(){var e=this.datasetElementType;return e&&new e({_chart:this.chart,_datasetIndex:this.index})},createMetaData:function(e){var t=this.dataElementType;return t&&new t({_chart:this.chart,_datasetIndex:this.index,_index:e})},addElements:function(){var e,t,n=this.getMeta(),i=this.getDataset().data||[],a=n.data;for(e=0,t=i.length;en&&this.insertElements(n,i-n)},insertElements:function(e,t){for(var n=0;n=n[t].length&&n[t].push({}),!n[t][o].type||d.type&&d.type!==n[t][o].type?r.merge(n[t][o],[e.scaleService.getScaleDefaults(s),d]):r.merge(n[t][o],d)}else r._merger(t,n,i,a)}})},r.where=function(e,t){if(r.isArray(e)&&Array.prototype.filter)return e.filter(t);var n=[];return r.each(e,function(e){t(e)&&n.push(e)}),n},r.findIndex=Array.prototype.findIndex?function(e,t,n){return e.findIndex(t,n)}:function(e,t,n){n=void 0===n?e:n;for(var i=0,a=e.length;i=0;i--){var a=e[i];if(t(a))return a}},r.isNumber=function(e){return!isNaN(parseFloat(e))&&isFinite(e)},r.almostEquals=function(e,t,n){return Math.abs(e-t)e},r.max=function(e){return e.reduce(function(e,t){return isNaN(t)?e:Math.max(e,t)},Number.NEGATIVE_INFINITY)},r.min=function(e){return e.reduce(function(e,t){return isNaN(t)?e:Math.min(e,t)},Number.POSITIVE_INFINITY)},r.sign=Math.sign?function(e){return Math.sign(e)}:function(e){return 0==(e=+e)||isNaN(e)?e:e>0?1:-1},r.log10=Math.log10?function(e){return Math.log10(e)}:function(e){var t=Math.log(e)*Math.LOG10E,n=Math.round(t);return e===Math.pow(10,n)?n:t},r.toRadians=function(e){return e*(Math.PI/180)},r.toDegrees=function(e){return e*(180/Math.PI)},r.getAngleFromPoint=function(e,t){var n=t.x-e.x,i=t.y-e.y,a=Math.sqrt(n*n+i*i),r=Math.atan2(i,n);return r<-.5*Math.PI&&(r+=2*Math.PI),{angle:r,distance:a}},r.distanceBetweenPoints=function(e,t){return Math.sqrt(Math.pow(t.x-e.x,2)+Math.pow(t.y-e.y,2))},r.aliasPixel=function(e){return e%2==0?0:.5},r.splineCurve=function(e,t,n,i){var a=e.skip?t:e,r=t,o=n.skip?t:n,s=Math.sqrt(Math.pow(r.x-a.x,2)+Math.pow(r.y-a.y,2)),d=Math.sqrt(Math.pow(o.x-r.x,2)+Math.pow(o.y-r.y,2)),l=s/(s+d),u=d/(s+d),c=i*(l=isNaN(l)?0:l),h=i*(u=isNaN(u)?0:u);return{previous:{x:r.x-c*(o.x-a.x),y:r.y-c*(o.y-a.y)},next:{x:r.x+h*(o.x-a.x),y:r.y+h*(o.y-a.y)}}},r.EPSILON=Number.EPSILON||1e-14,r.splineCurveMonotone=function(e){var t,n,i,a,o,s,d,l,u,c=(e||[]).map(function(e){return{model:e._model,deltaK:0,mK:0}}),h=c.length;for(t=0;t0?c[t-1]:null,(a=t0?c[t-1]:null,a=t=e.length-1?e[0]:e[t+1]:t>=e.length-1?e[e.length-1]:e[t+1]},r.previousItem=function(e,t,n){return n?t<=0?e[e.length-1]:e[t-1]:t<=0?e[0]:e[t-1]},r.niceNum=function(e,t){var n=Math.floor(r.log10(e)),i=e/Math.pow(10,n);return(t?i<1.5?1:i<3?2:i<7?5:10:i<=1?1:i<=2?2:i<=5?5:10)*Math.pow(10,n)},r.requestAnimFrame="undefined"==typeof window?function(e){e()}:window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(e){return window.setTimeout(e,1e3/60)},r.getRelativePosition=function(e,t){var n,i,a=e.originalEvent||e,o=e.currentTarget||e.srcElement,s=o.getBoundingClientRect(),d=a.touches;d&&d.length>0?(n=d[0].clientX,i=d[0].clientY):(n=a.clientX,i=a.clientY);var l=parseFloat(r.getStyle(o,"padding-left")),u=parseFloat(r.getStyle(o,"padding-top")),c=parseFloat(r.getStyle(o,"padding-right")),h=parseFloat(r.getStyle(o,"padding-bottom")),m=s.right-s.left-l-c,p=s.bottom-s.top-u-h;return{x:n=Math.round((n-s.left-l)/m*o.width/t.currentDevicePixelRatio),y:i=Math.round((i-s.top-u)/p*o.height/t.currentDevicePixelRatio)}},r.getConstraintWidth=function(e){return o(e,"max-width","clientWidth")},r.getConstraintHeight=function(e){return o(e,"max-height","clientHeight")},r.getMaximumWidth=function(e){var t=e.parentNode;if(!t)return e.clientWidth;var n=parseInt(r.getStyle(t,"padding-left"),10),i=parseInt(r.getStyle(t,"padding-right"),10),a=t.clientWidth-n-i,o=r.getConstraintWidth(e);return isNaN(o)?a:Math.min(a,o)},r.getMaximumHeight=function(e){var t=e.parentNode;if(!t)return e.clientHeight;var n=parseInt(r.getStyle(t,"padding-top"),10),i=parseInt(r.getStyle(t,"padding-bottom"),10),a=t.clientHeight-n-i,o=r.getConstraintHeight(e);return isNaN(o)?a:Math.min(a,o)},r.getStyle=function(e,t){return e.currentStyle?e.currentStyle[t]:document.defaultView.getComputedStyle(e,null).getPropertyValue(t)},r.retinaScale=function(e,t){var n=e.currentDevicePixelRatio=t||window.devicePixelRatio||1;if(1!==n){var i=e.canvas,a=e.height,r=e.width;i.height=a*n,i.width=r*n,e.ctx.scale(n,n),i.style.height||i.style.width||(i.style.height=a+"px",i.style.width=r+"px")}},r.fontString=function(e,t,n){return t+" "+e+"px "+n},r.longestText=function(e,t,n,i){var a=(i=i||{}).data=i.data||{},o=i.garbageCollect=i.garbageCollect||[];i.font!==t&&(a=i.data={},o=i.garbageCollect=[],i.font=t),e.font=t;var s=0;r.each(n,function(t){null!=t&&!0!==r.isArray(t)?s=r.measureText(e,a,o,s,t):r.isArray(t)&&r.each(t,function(t){null==t||r.isArray(t)||(s=r.measureText(e,a,o,s,t))})});var d=o.length/2;if(d>n.length){for(var l=0;li&&(i=r),i},r.numberOfLabelLines=function(e){var t=1;return r.each(e,function(e){r.isArray(e)&&e.length>t&&(t=e.length)}),t},r.color=i?function(e){return e instanceof CanvasGradient&&(e=a.global.defaultColor),i(e)}:function(e){return console.error("Color.js not found!"),e},r.getHoverColor=function(e){return e instanceof CanvasPattern?e:r.color(e).saturate(.5).darken(.1).rgbString()}}},{25:25,3:3,45:45}],28:[function(e,t,n){"use strict";function i(e,t){return e.native?{x:e.x,y:e.y}:l.getRelativePosition(e,t)}function a(e,t){var n,i,a,r,o;for(i=0,r=e.data.datasets.length;i0&&(l=e.getDatasetMeta(l[0]._datasetIndex).data),l},"x-axis":function(e,t){return d(e,t,{intersect:!1})},point:function(e,t){return r(e,i(t,e))},nearest:function(e,t,n){var a=i(t,e);n.axis=n.axis||"xy";var r=s(n.axis),d=o(e,a,n.intersect,r);return d.length>1&&d.sort(function(e,t){var n=e.getArea()-t.getArea();return 0===n&&(n=e._datasetIndex-t._datasetIndex),n}),d.slice(0,1)},x:function(e,t,n){var r=i(t,e),o=[],s=!1;return a(e,function(e){e.inXRange(r.x)&&o.push(e),e.inRange(r.x,r.y)&&(s=!0)}),n.intersect&&!s&&(o=[]),o},y:function(e,t,n){var r=i(t,e),o=[],s=!1;return a(e,function(e){e.inYRange(r.y)&&o.push(e),e.inRange(r.x,r.y)&&(s=!0)}),n.intersect&&!s&&(o=[]),o}}}},{45:45}],29:[function(e,t,n){"use strict";e(25)._set("global",{responsive:!0,responsiveAnimationDuration:0,maintainAspectRatio:!0,events:["mousemove","mouseout","click","touchstart","touchmove"],hover:{onHover:null,mode:"nearest",intersect:!0,animationDuration:400},onClick:null,defaultColor:"rgba(0,0,0,0.1)",defaultFontColor:"#666",defaultFontFamily:"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif",defaultFontSize:12,defaultFontStyle:"normal",showLines:!0,elements:{},layout:{padding:{top:0,right:0,bottom:0,left:0}}}),t.exports=function(){var e=function(e,t){return this.construct(e,t),this};return e.Chart=e,e}},{25:25}],30:[function(e,t,n){"use strict";function i(e,t){return r.where(e,function(e){return e.position===t})}function a(e,t){e.forEach(function(e,t){return e._tmpIndex_=t,e}),e.sort(function(e,n){var i=t?n:e,a=t?e:n;return i.weight===a.weight?i._tmpIndex_-a._tmpIndex_:i.weight-a.weight}),e.forEach(function(e){delete e._tmpIndex_})}var r=e(45);t.exports={defaults:{},addBox:function(e,t){e.boxes||(e.boxes=[]),t.fullWidth=t.fullWidth||!1,t.position=t.position||"top",t.weight=t.weight||0,e.boxes.push(t)},removeBox:function(e,t){var n=e.boxes?e.boxes.indexOf(t):-1;-1!==n&&e.boxes.splice(n,1)},configure:function(e,t,n){for(var i,a=["fullWidth","position","weight"],r=a.length,o=0;oh&&de.maxHeight){d--;break}d++,c=l*u}e.labelRotation=d},afterCalculateTickRotation:function(){s.callback(this.options.afterCalculateTickRotation,[this])},beforeFit:function(){s.callback(this.options.beforeFit,[this])},fit:function(){var e=this,a=e.minSize={width:0,height:0},r=i(e._ticks),o=e.options,l=o.ticks,u=o.scaleLabel,c=o.gridLines,h=o.display,m=e.isHorizontal(),p=n(l),f=o.gridLines.tickMarkLength;if(a.width=m?e.isFullWidth()?e.maxWidth-e.margins.left-e.margins.right:e.maxWidth:h&&c.drawTicks?f:0,a.height=m?h&&c.drawTicks?f:0:e.maxHeight,u.display&&h){var _=d(u)+s.options.toPadding(u.padding).height;m?a.height+=_:a.width+=_}if(l.display&&h){var g=s.longestText(e.ctx,p.font,r,e.longestTextCache),y=s.numberOfLabelLines(r),v=.5*p.size,M=e.options.ticks.padding;if(m){e.longestLabelWidth=g;var b=s.toRadians(e.labelRotation),L=Math.cos(b),D=Math.sin(b)*g+p.size*y+v*(y-1)+v;a.height=Math.min(e.maxHeight,a.height+D+M),e.ctx.font=p.font;var k=t(e.ctx,r[0],p.font),w=t(e.ctx,r[r.length-1],p.font);0!==e.labelRotation?(e.paddingLeft="bottom"===o.position?L*k+3:L*v+3,e.paddingRight="bottom"===o.position?L*v+3:L*w+3):(e.paddingLeft=k/2+3,e.paddingRight=w/2+3)}else l.mirror?g=0:g+=M+v,a.width=Math.min(e.maxWidth,a.width+g),e.paddingTop=p.size/2,e.paddingBottom=p.size/2}e.handleMargins(),e.width=a.width,e.height=a.height},handleMargins:function(){var e=this;e.margins&&(e.paddingLeft=Math.max(e.paddingLeft-e.margins.left,0),e.paddingTop=Math.max(e.paddingTop-e.margins.top,0),e.paddingRight=Math.max(e.paddingRight-e.margins.right,0),e.paddingBottom=Math.max(e.paddingBottom-e.margins.bottom,0))},afterFit:function(){s.callback(this.options.afterFit,[this])},isHorizontal:function(){return"top"===this.options.position||"bottom"===this.options.position},isFullWidth:function(){return this.options.fullWidth},getRightValue:function(e){if(s.isNullOrUndef(e))return NaN;if("number"==typeof e&&!isFinite(e))return NaN;if(e)if(this.isHorizontal()){if(void 0!==e.x)return this.getRightValue(e.x)}else if(void 0!==e.y)return this.getRightValue(e.y);return e},getLabelForIndex:s.noop,getPixelForValue:s.noop,getValueForPixel:s.noop,getPixelForTick:function(e){var t=this,n=t.options.offset;if(t.isHorizontal()){var i=(t.width-(t.paddingLeft+t.paddingRight))/Math.max(t._ticks.length-(n?0:1),1),a=i*e+t.paddingLeft;n&&(a+=i/2);var r=t.left+Math.round(a);return r+=t.isFullWidth()?t.margins.left:0}var o=t.height-(t.paddingTop+t.paddingBottom);return t.top+e*(o/(t._ticks.length-1))},getPixelForDecimal:function(e){var t=this;if(t.isHorizontal()){var n=(t.width-(t.paddingLeft+t.paddingRight))*e+t.paddingLeft,i=t.left+Math.round(n);return i+=t.isFullWidth()?t.margins.left:0}return t.top+e*t.height},getBasePixel:function(){return this.getPixelForValue(this.getBaseValue())},getBaseValue:function(){var e=this.min,t=this.max;return this.beginAtZero?0:e<0&&t<0?t:e>0&&t>0?e:0},_autoSkip:function(e){var t,n,i,a,r=this,o=r.isHorizontal(),d=r.options.ticks.minor,l=e.length,u=s.toRadians(r.labelRotation),c=Math.cos(u),h=r.longestLabelWidth*c,m=[];for(d.maxTicksLimit&&(a=d.maxTicksLimit),o&&(t=!1,(h+d.autoSkipPadding)*l>r.width-(r.paddingLeft+r.paddingRight)&&(t=1+Math.floor((h+d.autoSkipPadding)*l/(r.width-(r.paddingLeft+r.paddingRight)))),a&&l>a&&(t=Math.max(t,Math.floor(l/a)))),n=0;n1&&n%t>0||n%t==0&&n+t>=l)&&n!==l-1&&delete i.label,m.push(i);return m},draw:function(e){var t=this,i=t.options;if(i.display){var o=t.ctx,l=r.global,u=i.ticks.minor,c=i.ticks.major||u,h=i.gridLines,m=i.scaleLabel,p=0!==t.labelRotation,f=t.isHorizontal(),_=u.autoSkip?t._autoSkip(t.getTicks()):t.getTicks(),g=s.valueOrDefault(u.fontColor,l.defaultFontColor),y=n(u),v=s.valueOrDefault(c.fontColor,l.defaultFontColor),M=n(c),b=h.drawTicks?h.tickMarkLength:0,L=s.valueOrDefault(m.fontColor,l.defaultFontColor),D=n(m),k=s.options.toPadding(m.padding),w=s.toRadians(t.labelRotation),T=[],x=t.options.gridLines.lineWidth,Y="right"===i.position?t.right:t.right-x-b,S="right"===i.position?t.right+b:t.right,H="bottom"===i.position?t.top+x:t.bottom-b-x,C="bottom"===i.position?t.top+x+b:t.bottom+x;if(s.each(_,function(n,r){if(!s.isNullOrUndef(n.label)){var o,d,c,m,g,y,v,M,L,D,k,E,P,j,O=n.label;r===t.zeroLineIndex&&i.offset===h.offsetGridLines?(o=h.zeroLineWidth,d=h.zeroLineColor,c=h.zeroLineBorderDash,m=h.zeroLineBorderDashOffset):(o=s.valueAtIndexOrDefault(h.lineWidth,r),d=s.valueAtIndexOrDefault(h.color,r),c=s.valueOrDefault(h.borderDash,l.borderDash),m=s.valueOrDefault(h.borderDashOffset,l.borderDashOffset));var A="middle",I="middle",R=u.padding;if(f){var N=b+R;"bottom"===i.position?(I=p?"middle":"top",A=p?"right":"center",j=t.top+N):(I=p?"middle":"bottom",A=p?"left":"center",j=t.bottom-N);var F=a(t,r,h.offsetGridLines&&_.length>1);F1);B3?n[2]-n[1]:n[1]-n[0];Math.abs(a)>1&&e!==Math.floor(e)&&(a=e-Math.floor(e));var r=i.log10(Math.abs(a)),o="";if(0!==e){var s=-1*Math.floor(r);s=Math.max(Math.min(s,20),0),o=e.toFixed(s)}else o="0";return o},logarithmic:function(e,t,n){var a=e/Math.pow(10,Math.floor(i.log10(e)));return 0===e?"0":1===a||2===a||5===a||0===t||t===n.length-1?e.toExponential():""}}}},{45:45}],35:[function(e,t,n){"use strict";var i=e(25),a=e(26),r=e(45);i._set("global",{tooltips:{enabled:!0,custom:null,mode:"nearest",position:"average",intersect:!0,backgroundColor:"rgba(0,0,0,0.8)",titleFontStyle:"bold",titleSpacing:2,titleMarginBottom:6,titleFontColor:"#fff",titleAlign:"left",bodySpacing:2,bodyFontColor:"#fff",bodyAlign:"left",footerFontStyle:"bold",footerSpacing:2,footerMarginTop:6,footerFontColor:"#fff",footerAlign:"left",yPadding:6,xPadding:6,caretPadding:2,caretSize:5,cornerRadius:6,multiKeyBackground:"#fff",displayColors:!0,borderColor:"rgba(0,0,0,0)",borderWidth:0,callbacks:{beforeTitle:r.noop,title:function(e,t){var n="",i=t.labels,a=i?i.length:0;if(e.length>0){var r=e[0];r.xLabel?n=r.xLabel:a>0&&r.indexd.height-t.height&&(c="bottom");var h=(l.left+l.right)/2,m=(l.top+l.bottom)/2;"center"===c?(n=function(e){return e<=h},i=function(e){return e>h}):(n=function(e){return e<=t.width/2},i=function(e){return e>=d.width-t.width/2}),a=function(e){return e+t.width+s.caretSize+s.caretPadding>d.width},r=function(e){return e-t.width-s.caretSize-s.caretPadding<0},o=function(e){return e<=m?"top":"bottom"},n(s.x)?(u="left",a(s.x)&&(u="center",c=o(s.y))):i(s.x)&&(u="right",r(s.x)&&(u="center",c=o(s.y)));var p=e._options;return{xAlign:p.xAlign?p.xAlign:u,yAlign:p.yAlign?p.yAlign:c}}(this,E=function(e,t){var n=e._chart.ctx,i=2*t.yPadding,a=0,o=t.body,s=o.reduce(function(e,t){return e+t.before.length+t.lines.length+t.after.length},0);s+=t.beforeBody.length+t.afterBody.length;var d=t.title.length,l=t.footer.length,u=t.titleFontSize,c=t.bodyFontSize,h=t.footerFontSize;i+=d*u,i+=d?(d-1)*t.titleSpacing:0,i+=d?t.titleMarginBottom:0,i+=s*c,i+=s?(s-1)*t.bodySpacing:0,i+=l?t.footerMarginTop:0,i+=l*h,i+=l?(l-1)*t.footerSpacing:0;var m=0,p=function(e){a=Math.max(a,n.measureText(e).width+m)};return n.font=r.fontString(u,t._titleFontStyle,t._titleFontFamily),r.each(t.title,p),n.font=r.fontString(c,t._bodyFontStyle,t._bodyFontFamily),r.each(t.beforeBody.concat(t.afterBody),p),m=t.displayColors?c+2:0,r.each(o,function(e){r.each(e.before,p),r.each(e.lines,p),r.each(e.after,p)}),m=0,n.font=r.fontString(h,t._footerFontStyle,t._footerFontFamily),r.each(t.footer,p),{width:a+=2*t.xPadding,height:i}}(this,x)),a=x,s=E,d=H,l=k._chart,u=a.x,c=a.y,h=a.caretSize,m=a.caretPadding,p=a.cornerRadius,f=d.xAlign,_=d.yAlign,g=h+m,y=p+m,"right"===f?u-=s.width:"center"===f&&((u-=s.width/2)+s.width>l.width&&(u=l.width-s.width),u<0&&(u=0)),"top"===_?c+=g:c-="bottom"===_?s.height+g:s.height/2,"center"===_?"left"===f?u+=g:"right"===f&&(u-=g):"left"===f?u-=y:"right"===f&&(u+=y),C={x:u,y:c}}else x.opacity=0;return x.xAlign=H.xAlign,x.yAlign=H.yAlign,x.x=C.x,x.y=C.y,x.width=E.width,x.height=E.height,x.caretX=P.x,x.caretY=P.y,k._model=x,t&&w.custom&&w.custom.call(k,x),k},drawCaret:function(e,t){var n=this._chart.ctx,i=this._view,a=this.getCaretPosition(e,t,i);n.lineTo(a.x1,a.y1),n.lineTo(a.x2,a.y2),n.lineTo(a.x3,a.y3)},getCaretPosition:function(e,t,n){var i,a,r,o,s,d,l=n.caretSize,u=n.cornerRadius,c=n.xAlign,h=n.yAlign,m=e.x,p=e.y,f=t.width,_=t.height;if("center"===h)s=p+_/2,"left"===c?(a=(i=m)-l,r=i,o=s+l,d=s-l):(a=(i=m+f)+l,r=i,o=s-l,d=s+l);else if("left"===c?(i=(a=m+u+l)-l,r=a+l):"right"===c?(i=(a=m+f-u-l)-l,r=a+l):(i=(a=n.caretX)-l,r=a+l),"top"===h)s=(o=p)-l,d=o;else{s=(o=p+_)+l,d=o;var g=r;r=i,i=g}return{x1:i,x2:a,x3:r,y1:o,y2:s,y3:d}},drawTitle:function(e,n,i,a){var o=n.title;if(o.length){i.textAlign=n._titleAlign,i.textBaseline="top";var s,d,l=n.titleFontSize,u=n.titleSpacing;for(i.fillStyle=t(n.titleFontColor,a),i.font=r.fontString(l,n._titleFontStyle,n._titleFontFamily),s=0,d=o.length;s0&&i.stroke()},draw:function(){var e=this._chart.ctx,t=this._view;if(0!==t.opacity){var n={width:t.width,height:t.height},i={x:t.x,y:t.y},a=Math.abs(t.opacity<.001)?0:t.opacity,r=t.title.length||t.beforeBody.length||t.body.length||t.afterBody.length||t.footer.length;this._options.enabled&&r&&(this.drawBackground(i,t,e,n,a),i.x+=t.xPadding,i.y+=t.yPadding,this.drawTitle(i,t,e,a),this.drawBody(i,t,e,a),this.drawFooter(i,t,e,a))}},handleEvent:function(e){var t,n=this,i=n._options;return n._lastActive=n._lastActive||[],"mouseout"===e.type?n._active=[]:n._active=n._chart.getElementsAtEventForMode(e,i.mode,i),(t=!r.arrayEquals(n._active,n._lastActive))&&(n._lastActive=n._active,(i.enabled||i.custom)&&(n._eventPosition={x:e.x,y:e.y},n.update(!0),n.pivot())),t}}),e.Tooltip.positioners={average:function(e){if(!e.length)return!1;var t,n,i=0,a=0,r=0;for(t=0,n=e.length;td;)a-=2*Math.PI;for(;a=s&&a<=d,u=o>=n.innerRadius&&o<=n.outerRadius;return l&&u}return!1},getCenterPoint:function(){var e=this._view,t=(e.startAngle+e.endAngle)/2,n=(e.innerRadius+e.outerRadius)/2;return{x:e.x+Math.cos(t)*n,y:e.y+Math.sin(t)*n}},getArea:function(){var e=this._view;return Math.PI*((e.endAngle-e.startAngle)/(2*Math.PI))*(Math.pow(e.outerRadius,2)-Math.pow(e.innerRadius,2))},tooltipPosition:function(){var e=this._view,t=e.startAngle+(e.endAngle-e.startAngle)/2,n=(e.outerRadius-e.innerRadius)/2+e.innerRadius;return{x:e.x+Math.cos(t)*n,y:e.y+Math.sin(t)*n}},draw:function(){var e=this._chart.ctx,t=this._view,n=t.startAngle,i=t.endAngle;e.beginPath(),e.arc(t.x,t.y,t.outerRadius,n,i),e.arc(t.x,t.y,t.innerRadius,i,n,!0),e.closePath(),e.strokeStyle=t.borderColor,e.lineWidth=t.borderWidth,e.fillStyle=t.backgroundColor,e.fill(),e.lineJoin="bevel",t.borderWidth&&e.stroke()}})},{25:25,26:26,45:45}],37:[function(e,t,n){"use strict";var i=e(25),a=e(26),r=e(45),o=i.global;i._set("global",{elements:{line:{tension:.4,backgroundColor:o.defaultColor,borderWidth:3,borderColor:o.defaultColor,borderCapStyle:"butt",borderDash:[],borderDashOffset:0,borderJoinStyle:"miter",capBezierPoints:!0,fill:!0}}}),t.exports=a.extend({draw:function(){var e,t,n,i,a=this._view,s=this._chart.ctx,d=a.spanGaps,l=this._children.slice(),u=o.elements.line,c=-1;for(this._loop&&l.length&&l.push(l[0]),s.save(),s.lineCap=a.borderCapStyle||u.borderCapStyle,s.setLineDash&&s.setLineDash(a.borderDash||u.borderDash),s.lineDashOffset=a.borderDashOffset||u.borderDashOffset,s.lineJoin=a.borderJoinStyle||u.borderJoinStyle,s.lineWidth=a.borderWidth||u.borderWidth,s.strokeStyle=a.borderColor||o.defaultColor,s.beginPath(),c=-1,e=0;et?1:-1,o=1,s=l.borderSkipped||"left"):(t=l.x-l.width/2,n=l.x+l.width/2,i=l.y,r=1,o=(a=l.base)>i?1:-1,s=l.borderSkipped||"bottom"),u){var c=Math.min(Math.abs(t-n),Math.abs(i-a)),h=(u=u>c?c:u)/2,m=t+("left"!==s?h*r:0),p=n+("right"!==s?-h*r:0),f=i+("top"!==s?h*o:0),_=a+("bottom"!==s?-h*o:0);m!==p&&(i=f,a=_),f!==_&&(t=m,n=p)}d.beginPath(),d.fillStyle=l.backgroundColor,d.strokeStyle=l.borderColor,d.lineWidth=u;var g=[[t,a],[t,i],[n,i],[n,a]],y=["bottom","left","top","right"].indexOf(s,0);-1===y&&(y=0);var v=e(0);d.moveTo(v[0],v[1]);for(var M=1;M<4;M++)v=e(M),d.lineTo(v[0],v[1]);d.fill(),u&&d.stroke()},height:function(){var e=this._view;return e.base-e.y},inRange:function(e,t){var n=!1;if(this._view){var i=a(this);n=e>=i.left&&e<=i.right&&t>=i.top&&t<=i.bottom}return n},inLabelRange:function(e,t){if(!this._view)return!1;var n=a(this);return i(this)?e>=n.left&&e<=n.right:t>=n.top&&t<=n.bottom},inXRange:function(e){var t=a(this);return e>=t.left&&e<=t.right},inYRange:function(e){var t=a(this);return e>=t.top&&e<=t.bottom},getCenterPoint:function(){var e,t,n=this._view;return i(this)?(e=n.x,t=(n.y+n.base)/2):(e=(n.x+n.base)/2,t=n.y),{x:e,y:t}},getArea:function(){var e=this._view;return e.width*Math.abs(e.y-e.base)},tooltipPosition:function(){var e=this._view;return{x:e.x,y:e.y}}})},{25:25,26:26}],40:[function(e,t,n){"use strict";t.exports={},t.exports.Arc=e(36),t.exports.Line=e(37),t.exports.Point=e(38),t.exports.Rectangle=e(39)},{36:36,37:37,38:38,39:39}],41:[function(e,t,n){"use strict";var i=e(42);n=t.exports={clear:function(e){e.ctx.clearRect(0,0,e.width,e.height)},roundedRect:function(e,t,n,i,a,r){if(r){var o=Math.min(r,i/2),s=Math.min(r,a/2);e.moveTo(t+o,n),e.lineTo(t+i-o,n),e.quadraticCurveTo(t+i,n,t+i,n+s),e.lineTo(t+i,n+a-s),e.quadraticCurveTo(t+i,n+a,t+i-o,n+a),e.lineTo(t+o,n+a),e.quadraticCurveTo(t,n+a,t,n+a-s),e.lineTo(t,n+s),e.quadraticCurveTo(t,n,t+o,n)}else e.rect(t,n,i,a)},drawPoint:function(e,t,n,i,a){var r,o,s,d,l,u;if(!t||"object"!=typeof t||"[object HTMLImageElement]"!==(r=t.toString())&&"[object HTMLCanvasElement]"!==r){if(!(isNaN(n)||n<=0)){switch(t){default:e.beginPath(),e.arc(i,a,n,0,2*Math.PI),e.closePath(),e.fill();break;case"triangle":e.beginPath(),l=(o=3*n/Math.sqrt(3))*Math.sqrt(3)/2,e.moveTo(i-o/2,a+l/3),e.lineTo(i+o/2,a+l/3),e.lineTo(i,a-2*l/3),e.closePath(),e.fill();break;case"rect":u=1/Math.SQRT2*n,e.beginPath(),e.fillRect(i-u,a-u,2*u,2*u),e.strokeRect(i-u,a-u,2*u,2*u);break;case"rectRounded":var c=n/Math.SQRT2,h=i-c,m=a-c,p=Math.SQRT2*n;e.beginPath(),this.roundedRect(e,h,m,p,p,n/2),e.closePath(),e.fill();break;case"rectRot":u=1/Math.SQRT2*n,e.beginPath(),e.moveTo(i-u,a),e.lineTo(i,a+u),e.lineTo(i+u,a),e.lineTo(i,a-u),e.closePath(),e.fill();break;case"cross":e.beginPath(),e.moveTo(i,a+n),e.lineTo(i,a-n),e.moveTo(i-n,a),e.lineTo(i+n,a),e.closePath();break;case"crossRot":e.beginPath(),s=Math.cos(Math.PI/4)*n,d=Math.sin(Math.PI/4)*n,e.moveTo(i-s,a-d),e.lineTo(i+s,a+d),e.moveTo(i-s,a+d),e.lineTo(i+s,a-d),e.closePath();break;case"star":e.beginPath(),e.moveTo(i,a+n),e.lineTo(i,a-n),e.moveTo(i-n,a),e.lineTo(i+n,a),s=Math.cos(Math.PI/4)*n,d=Math.sin(Math.PI/4)*n,e.moveTo(i-s,a-d),e.lineTo(i+s,a+d),e.moveTo(i-s,a+d),e.lineTo(i+s,a-d),e.closePath();break;case"line":e.beginPath(),e.moveTo(i-n,a),e.lineTo(i+n,a),e.closePath();break;case"dash":e.beginPath(),e.moveTo(i,a),e.lineTo(i+n,a),e.closePath()}e.stroke()}}else e.drawImage(t,i-t.width/2,a-t.height/2,t.width,t.height)},clipArea:function(e,t){e.save(),e.beginPath(),e.rect(t.left,t.top,t.right-t.left,t.bottom-t.top),e.clip()},unclipArea:function(e){e.restore()},lineTo:function(e,t,n,i){if(n.steppedLine)return"after"===n.steppedLine&&!i||"after"!==n.steppedLine&&i?e.lineTo(t.x,n.y):e.lineTo(n.x,t.y),void e.lineTo(n.x,n.y);n.tension?e.bezierCurveTo(i?t.controlPointPreviousX:t.controlPointNextX,i?t.controlPointPreviousY:t.controlPointNextY,i?n.controlPointNextX:n.controlPointPreviousX,i?n.controlPointNextY:n.controlPointPreviousY,n.x,n.y):e.lineTo(n.x,n.y)}},i.clear=n.clear,i.drawRoundedRectangle=function(e){e.beginPath(),n.roundedRect.apply(n,arguments),e.closePath()}},{42:42}],42:[function(e,t,n){"use strict";var i,a={noop:function(){},uid:(i=0,function(){return i++}),isNullOrUndef:function(e){return null==e},isArray:Array.isArray?Array.isArray:function(e){return"[object Array]"===Object.prototype.toString.call(e)},isObject:function(e){return null!==e&&"[object Object]"===Object.prototype.toString.call(e)},valueOrDefault:function(e,t){return void 0===e?t:e},valueAtIndexOrDefault:function(e,t,n){return a.valueOrDefault(a.isArray(e)?e[t]:e,n)},callback:function(e,t,n){if(e&&"function"==typeof e.call)return e.apply(n,t)},each:function(e,t,n,i){var r,o,s;if(a.isArray(e))if(o=e.length,i)for(r=o-1;r>=0;r--)t.call(n,e[r],r);else for(r=0;r=1?e:-(Math.sqrt(1-e*e)-1)},easeOutCirc:function(e){return Math.sqrt(1-(e-=1)*e)},easeInOutCirc:function(e){return(e/=.5)<1?-.5*(Math.sqrt(1-e*e)-1):.5*(Math.sqrt(1-(e-=2)*e)+1)},easeInElastic:function(e){var t=1.70158,n=0,i=1;return 0===e?0:1===e?1:(n||(n=.3),i<1?(i=1,t=n/4):t=n/(2*Math.PI)*Math.asin(1/i),-i*Math.pow(2,10*(e-=1))*Math.sin((e-t)*(2*Math.PI)/n))},easeOutElastic:function(e){var t=1.70158,n=0,i=1;return 0===e?0:1===e?1:(n||(n=.3),i<1?(i=1,t=n/4):t=n/(2*Math.PI)*Math.asin(1/i),i*Math.pow(2,-10*e)*Math.sin((e-t)*(2*Math.PI)/n)+1)},easeInOutElastic:function(e){var t=1.70158,n=0,i=1;return 0===e?0:2==(e/=.5)?1:(n||(n=.45),i<1?(i=1,t=n/4):t=n/(2*Math.PI)*Math.asin(1/i),e<1?i*Math.pow(2,10*(e-=1))*Math.sin((e-t)*(2*Math.PI)/n)*-.5:i*Math.pow(2,-10*(e-=1))*Math.sin((e-t)*(2*Math.PI)/n)*.5+1)},easeInBack:function(e){return e*e*(2.70158*e-1.70158)},easeOutBack:function(e){return(e-=1)*e*(2.70158*e+1.70158)+1},easeInOutBack:function(e){var t=1.70158;return(e/=.5)<1?e*e*((1+(t*=1.525))*e-t)*.5:.5*((e-=2)*e*((1+(t*=1.525))*e+t)+2)},easeInBounce:function(e){return 1-a.easeOutBounce(1-e)},easeOutBounce:function(e){return e<1/2.75?7.5625*e*e:e<2/2.75?7.5625*(e-=1.5/2.75)*e+.75:e<2.5/2.75?7.5625*(e-=2.25/2.75)*e+.9375:7.5625*(e-=2.625/2.75)*e+.984375},easeInOutBounce:function(e){return e<.5?.5*a.easeInBounce(2*e):.5*a.easeOutBounce(2*e-1)+.5}};t.exports={effects:a},i.easingEffects=a},{42:42}],44:[function(e,t,n){"use strict";var i=e(42);t.exports={toLineHeight:function(e,t){var n=(""+e).match(/^(normal|(\d+(?:\.\d+)?)(px|em|%)?)$/);if(!n||"normal"===n[1])return 1.2*t;switch(e=+n[2],n[3]){case"px":return e;case"%":e/=100}return t*e},toPadding:function(e){var t,n,a,r;return i.isObject(e)?(t=+e.top||0,n=+e.right||0,a=+e.bottom||0,r=+e.left||0):t=n=a=r=+e||0,{top:t,right:n,bottom:a,left:r,height:t+a,width:r+n}},resolve:function(e,t,n){var a,r,o;for(a=0,r=e.length;a
    ';var r=t.childNodes[0],o=t.childNodes[1];t._reset=function(){r.scrollLeft=1e6,r.scrollTop=1e6,o.scrollLeft=1e6,o.scrollTop=1e6};var s=function(){t._reset(),e()};return a(r,"scroll",s.bind(r,"expand")),a(o,"scroll",s.bind(o,"shrink")),t}((i=function(){if(v.resizer)return t(o("resize",n))},s=!1,d=[],function(){d=Array.prototype.slice.call(arguments),r=r||this,s||(s=!0,l.requestAnimFrame.call(window,function(){s=!1,i.apply(r,d)}))}));_=function(){if(v.resizer){var t=e.parentNode;t&&t!==M.parentNode&&t.insertBefore(M,t.firstChild),M._reset()}},g=(f=e)[u]||(f[u]={}),y=g.renderProxy=function(e){e.animationName===m&&_()},l.each(p,function(e){a(f,e,y)}),g.reflow=!!f.offsetParent,f.classList.add(h)}function d(e){var t,n,i,a=e[u]||{},o=a.resizer;delete a.resizer,n=(t=e)[u]||{},(i=n.renderProxy)&&(l.each(p,function(e){r(t,e,i)}),delete n.renderProxy),t.classList.remove(h),o&&o.parentNode&&o.parentNode.removeChild(o)}var l=e(45),u="$chartjs",c="chartjs-",h=c+"render-monitor",m=c+"render-animation",p=["animationstart","webkitAnimationStart"],f={touchstart:"mousedown",touchmove:"mousemove",touchend:"mouseup",pointerenter:"mouseenter",pointerdown:"mousedown",pointermove:"mousemove",pointerup:"mouseup",pointerleave:"mouseout",pointerout:"mouseout"},_=!!function(){var e=!1;try{var t=Object.defineProperty({},"passive",{get:function(){e=!0}});window.addEventListener("e",null,t)}catch(e){}return e}()&&{passive:!0};t.exports={_enabled:"undefined"!=typeof window&&"undefined"!=typeof document,initialize:function(){var e,t,n,i="from{opacity:0.99}to{opacity:1}";t="@-webkit-keyframes "+m+"{"+i+"}@keyframes "+m+"{"+i+"}."+h+"{-webkit-animation:"+m+" 0.001s;animation:"+m+" 0.001s;}",n=(e=this)._style||document.createElement("style"),e._style||(e._style=n,t="/* Chart.js */\n"+t,n.setAttribute("type","text/css"),document.getElementsByTagName("head")[0].appendChild(n)),n.appendChild(document.createTextNode(t))},acquireContext:function(e,t){"string"==typeof e?e=document.getElementById(e):e.length&&(e=e[0]),e&&e.canvas&&(e=e.canvas);var n=e&&e.getContext&&e.getContext("2d");return n&&n.canvas===e?(function(e,t){var n=e.style,a=e.getAttribute("height"),r=e.getAttribute("width");if(e[u]={initial:{height:a,width:r,style:{display:n.display,height:n.height,width:n.width}}},n.display=n.display||"block",null===r||""===r){var o=i(e,"width");void 0!==o&&(e.width=o)}if(null===a||""===a)if(""===e.style.height)e.height=e.width/(t.options.aspectRatio||2);else{var s=i(e,"height");void 0!==o&&(e.height=s)}}(e,t),n):null},releaseContext:function(e){var t=e.canvas;if(t[u]){var n=t[u].initial;["height","width"].forEach(function(e){var i=n[e];l.isNullOrUndef(i)?t.removeAttribute(e):t.setAttribute(e,i)}),l.each(n.style||{},function(e,n){t.style[n]=e}),t.width=t.width,delete t[u]}},addEventListener:function(e,t,n){var i=e.canvas;if("resize"!==t){var r=n[u]||(n[u]={});a(i,t,(r.proxies||(r.proxies={}))[e.id+"_"+t]=function(t){var i,a,r,s;n((a=e,r=f[(i=t).type]||i.type,s=l.getRelativePosition(i,a),o(r,a,s.x,s.y,i)))})}else s(i,n,e)},removeEventListener:function(e,t,n){var i=e.canvas;if("resize"!==t){var a=((n[u]||{}).proxies||{})[e.id+"_"+t];a&&r(i,t,a)}else d(i)}},l.addEvent=a,l.removeEvent=r},{45:45}],48:[function(e,t,n){"use strict";var i=e(45),a=e(46),r=e(47),o=r._enabled?r:a;t.exports=i.extend({initialize:function(){},acquireContext:function(){},releaseContext:function(){},addEventListener:function(){},removeEventListener:function(){}},o)},{45:45,46:46,47:47}],49:[function(e,t,n){"use strict";t.exports={},t.exports.filler=e(50),t.exports.legend=e(51),t.exports.title=e(52)},{50:50,51:51,52:52}],50:[function(e,t,n){"use strict";function i(e,t,n){var i,a=e._model||{},r=a.fill;if(void 0===r&&(r=!!a.backgroundColor),!1===r||null===r)return!1;if(!0===r)return"origin";if(i=parseFloat(r,10),isFinite(i)&&Math.floor(i)===i)return"-"!==r[0]&&"+"!==r[0]||(i=t+i),!(i===t||i<0||i>=n)&&i;switch(r){case"bottom":return"start";case"top":return"end";case"zero":return"origin";case"origin":case"start":case"end":return r;default:return!1}}function a(e){var t,n=e.el._model||{},i=e.el._scale||{},a=e.fill,r=null;if(isFinite(a))return null;if("start"===a?r=void 0===n.scaleBottom?i.bottom:n.scaleBottom:"end"===a?r=void 0===n.scaleTop?i.top:n.scaleTop:void 0!==n.scaleZero?r=n.scaleZero:i.getBasePosition?r=i.getBasePosition():i.getBasePixel&&(r=i.getBasePixel()),null!=r){if(void 0!==r.x&&void 0!==r.y)return r;if("number"==typeof r&&isFinite(r))return{x:(t=i.isHorizontal())?r:null,y:t?null:r}}return null}function r(e,t,n){var i,a=e[t].fill,r=[t];if(!n)return a;for(;!1!==a&&-1===r.indexOf(a);){if(!isFinite(a))return a;if(!(i=e[a]))return!1;if(i.visible)return a;r.push(a),a=i.fill}return!1}function o(e){return e&&!e.skip}function s(e,t,n,i,a){var r;if(i&&a){for(e.moveTo(t[0].x,t[0].y),r=1;r0;--r)u.canvas.lineTo(e,n[r],n[r-1],!0)}}var d=e(25),l=e(40),u=e(45);d._set("global",{plugins:{filler:{propagate:!0}}});var c={dataset:function(e){var t=e.fill,n=e.chart,i=n.getDatasetMeta(t),a=i&&n.isDatasetVisible(t)&&i.dataset._children||[],r=a.length||0;return r?function(e,t){return t');for(var n=0;n'),e.data.datasets[n].label&&t.push(e.data.datasets[n].label),t.push("");return t.push(""),t.join("")}});var u=o.extend({initialize:function(e){s.extend(this,e),this.legendHitBoxes=[],this.doughnutMode=!1},beforeUpdate:l,update:function(e,t,n){var i=this;return i.beforeUpdate(),i.maxWidth=e,i.maxHeight=t,i.margins=n,i.beforeSetDimensions(),i.setDimensions(),i.afterSetDimensions(),i.beforeBuildLabels(),i.buildLabels(),i.afterBuildLabels(),i.beforeFit(),i.fit(),i.afterFit(),i.afterUpdate(),i.minSize},afterUpdate:l,beforeSetDimensions:l,setDimensions:function(){var e=this;e.isHorizontal()?(e.width=e.maxWidth,e.left=0,e.right=e.width):(e.height=e.maxHeight,e.top=0,e.bottom=e.height),e.paddingLeft=0,e.paddingTop=0,e.paddingRight=0,e.paddingBottom=0,e.minSize={width:0,height:0}},afterSetDimensions:l,beforeBuildLabels:l,buildLabels:function(){var e=this,t=e.options.labels||{},n=s.callback(t.generateLabels,[e.chart],e)||[];t.filter&&(n=n.filter(function(n){return t.filter(n,e.chart.data)})),e.options.reverse&&n.reverse(),e.legendItems=n},afterBuildLabels:l,beforeFit:l,fit:function(){var e=this,t=e.options,n=t.labels,a=t.display,o=e.ctx,d=r.global,l=s.valueOrDefault,u=l(n.fontSize,d.defaultFontSize),c=l(n.fontStyle,d.defaultFontStyle),h=l(n.fontFamily,d.defaultFontFamily),m=s.fontString(u,c,h),p=e.legendHitBoxes=[],f=e.minSize,_=e.isHorizontal();if(_?(f.width=e.maxWidth,f.height=a?10:0):(f.width=a?10:0,f.height=e.maxHeight),a)if(o.font=m,_){var g=e.lineWidths=[0],y=e.legendItems.length?u+n.padding:0;o.textAlign="left",o.textBaseline="top",s.each(e.legendItems,function(t,a){var r=i(n,u)+u/2+o.measureText(t.text).width;g[g.length-1]+r+n.padding>=e.width&&(y+=u+n.padding,g[g.length]=e.left),p[a]={left:0,top:0,width:r,height:u},g[g.length-1]+=r+n.padding}),f.height+=y}else{var v=n.padding,M=e.columnWidths=[],b=n.padding,L=0,D=0,k=u+v;s.each(e.legendItems,function(e,t){var a=i(n,u)+u/2+o.measureText(e.text).width;D+k>f.height&&(b+=L+n.padding,M.push(L),L=0,D=0),L=Math.max(L,a),D+=k,p[t]={left:0,top:0,width:a,height:u}}),b+=L,M.push(L),f.width+=b}e.width=f.width,e.height=f.height},afterFit:l,isHorizontal:function(){return"top"===this.options.position||"bottom"===this.options.position},draw:function(){var e=this,t=e.options,n=t.labels,a=r.global,o=a.elements.line,d=e.width,l=e.lineWidths;if(t.display){var u,c=e.ctx,h=s.valueOrDefault,m=h(n.fontColor,a.defaultFontColor),p=h(n.fontSize,a.defaultFontSize),f=h(n.fontStyle,a.defaultFontStyle),_=h(n.fontFamily,a.defaultFontFamily),g=s.fontString(p,f,_);c.textAlign="left",c.textBaseline="middle",c.lineWidth=.5,c.strokeStyle=m,c.fillStyle=m,c.font=g;var y=i(n,p),v=e.legendHitBoxes,M=e.isHorizontal();u=M?{x:e.left+(d-l[0])/2,y:e.top+n.padding,line:0}:{x:e.left+n.padding,y:e.top+n.padding,line:0};var b=p+n.padding;s.each(e.legendItems,function(i,r){var m,f,_,g,L,D=c.measureText(i.text).width,k=y+p/2+D,w=u.x,T=u.y;M?w+k>=d&&(T=u.y+=b,u.line++,w=u.x=e.left+(d-l[u.line])/2):T+b>e.bottom&&(w=u.x=w+e.columnWidths[u.line]+n.padding,T=u.y=e.top+n.padding,u.line++),function(e,n,i){if(!(isNaN(y)||y<=0)){c.save(),c.fillStyle=h(i.fillStyle,a.defaultColor),c.lineCap=h(i.lineCap,o.borderCapStyle),c.lineDashOffset=h(i.lineDashOffset,o.borderDashOffset),c.lineJoin=h(i.lineJoin,o.borderJoinStyle),c.lineWidth=h(i.lineWidth,o.borderWidth),c.strokeStyle=h(i.strokeStyle,a.defaultColor);var r=0===h(i.lineWidth,o.borderWidth);if(c.setLineDash&&c.setLineDash(h(i.lineDash,o.borderDash)),t.labels&&t.labels.usePointStyle){var d=p*Math.SQRT2/2,l=d/Math.SQRT2,u=e+l,m=n+l;s.canvas.drawPoint(c,i.pointStyle,d,u,m)}else r||c.strokeRect(e,n,y,p),c.fillRect(e,n,y,p);c.restore()}}(w,T,i),v[r].left=w,v[r].top=T,m=i,f=D,g=y+(_=p/2)+w,L=T+_,c.fillText(m.text,g,L),m.hidden&&(c.beginPath(),c.lineWidth=2,c.moveTo(g,L),c.lineTo(g+f,L),c.stroke()),M?u.x+=k+n.padding:u.y+=b})}},handleEvent:function(e){var t=this,n=t.options,i="mouseup"===e.type?"click":e.type,a=!1;if("mousemove"===i){if(!n.onHover)return}else{if("click"!==i)return;if(!n.onClick)return}var r=e.x,o=e.y;if(r>=t.left&&r<=t.right&&o>=t.top&&o<=t.bottom)for(var s=t.legendHitBoxes,d=0;d=l.left&&r<=l.left+l.width&&o>=l.top&&o<=l.top+l.height){if("click"===i){n.onClick.call(t,e.native,t.legendItems[d]),a=!0;break}if("mousemove"===i){n.onHover.call(t,e.native,t.legendItems[d]),a=!0;break}}}return a}});t.exports={id:"legend",_element:u,beforeInit:function(e){var t=e.options.legend;t&&a(e,t)},beforeUpdate:function(e){var t=e.options.legend,n=e.legend;t?(s.mergeIf(t,r.global.legend),n?(d.configure(e,n,t),n.options=t):a(e,t)):n&&(d.removeBox(e,n),delete e.legend)},afterEvent:function(e,t){var n=e.legend;n&&n.handleEvent(t)}}},{25:25,26:26,30:30,45:45}],52:[function(e,t,n){"use strict";function i(e,t){var n=new l({ctx:e.ctx,options:t,chart:e});s.configure(e,n,t),s.addBox(e,n),e.titleBlock=n}var a=e(25),r=e(26),o=e(45),s=e(30),d=o.noop;a._set("global",{title:{display:!1,fontStyle:"bold",fullWidth:!0,lineHeight:1.2,padding:10,position:"top",text:"",weight:2e3}});var l=r.extend({initialize:function(e){o.extend(this,e),this.legendHitBoxes=[]},beforeUpdate:d,update:function(e,t,n){var i=this;return i.beforeUpdate(),i.maxWidth=e,i.maxHeight=t,i.margins=n,i.beforeSetDimensions(),i.setDimensions(),i.afterSetDimensions(),i.beforeBuildLabels(),i.buildLabels(),i.afterBuildLabels(),i.beforeFit(),i.fit(),i.afterFit(),i.afterUpdate(),i.minSize},afterUpdate:d,beforeSetDimensions:d,setDimensions:function(){var e=this;e.isHorizontal()?(e.width=e.maxWidth,e.left=0,e.right=e.width):(e.height=e.maxHeight,e.top=0,e.bottom=e.height),e.paddingLeft=0,e.paddingTop=0,e.paddingRight=0,e.paddingBottom=0,e.minSize={width:0,height:0}},afterSetDimensions:d,beforeBuildLabels:d,buildLabels:d,afterBuildLabels:d,beforeFit:d,fit:function(){var e=this,t=o.valueOrDefault,n=e.options,i=n.display,r=t(n.fontSize,a.global.defaultFontSize),s=e.minSize,d=o.isArray(n.text)?n.text.length:1,l=o.options.toLineHeight(n.lineHeight,r),u=i?d*l+2*n.padding:0;e.isHorizontal()?(s.width=e.maxWidth,s.height=u):(s.width=u,s.height=e.maxHeight),e.width=s.width,e.height=s.height},afterFit:d,isHorizontal:function(){var e=this.options.position;return"top"===e||"bottom"===e},draw:function(){var e=this,t=e.ctx,n=o.valueOrDefault,i=e.options,r=a.global;if(i.display){var s,d,l,u=n(i.fontSize,r.defaultFontSize),c=n(i.fontStyle,r.defaultFontStyle),h=n(i.fontFamily,r.defaultFontFamily),m=o.fontString(u,c,h),p=o.options.toLineHeight(i.lineHeight,u),f=p/2+i.padding,_=0,g=e.top,y=e.left,v=e.bottom,M=e.right;t.fillStyle=n(i.fontColor,r.defaultFontColor),t.font=m,e.isHorizontal()?(d=y+(M-y)/2,l=g+f,s=M-y):(d="left"===i.position?y+f:M-f,l=g+(v-g)/2,s=v-g,_=Math.PI*("left"===i.position?-.5:.5)),t.save(),t.translate(d,l),t.rotate(_),t.textAlign="center",t.textBaseline="middle";var b=i.text;if(o.isArray(b))for(var L=0,D=0;Dt.max&&(t.max=i))})});t.min=isFinite(t.min)&&!isNaN(t.min)?t.min:0,t.max=isFinite(t.max)&&!isNaN(t.max)?t.max:1,this.handleTickRangeOptions()},getTickLimit:function(){var e,t=this.options.ticks;if(this.isHorizontal())e=Math.min(t.maxTicksLimit?t.maxTicksLimit:11,Math.ceil(this.width/50));else{var n=a.valueOrDefault(t.fontSize,i.global.defaultFontSize);e=Math.min(t.maxTicksLimit?t.maxTicksLimit:11,Math.ceil(this.height/(2*n)))}return e},handleDirectionalChanges:function(){this.isHorizontal()||this.ticks.reverse()},getLabelForIndex:function(e,t){return+this.getRightValue(this.chart.data.datasets[t].data[e])},getPixelForValue:function(e){var t=this,n=t.start,i=+t.getRightValue(e),a=t.end-n;return t.isHorizontal()?t.left+t.width/a*(i-n):t.bottom-t.height/a*(i-n)},getValueForPixel:function(e){var t=this,n=t.isHorizontal(),i=n?t.width:t.height,a=(n?e-t.left:t.bottom-e)/i;return t.start+(t.end-t.start)*a},getPixelForTick:function(e){return this.getPixelForValue(this.ticksAsNumbers[e])}});e.scaleService.registerScaleType("linear",n,t)}},{25:25,34:34,45:45}],55:[function(e,t,n){"use strict";var i=e(45);t.exports=function(e){var t=i.noop;e.LinearScaleBase=e.Scale.extend({getRightValue:function(t){return"string"==typeof t?+t:e.Scale.prototype.getRightValue.call(this,t)},handleTickRangeOptions:function(){var e=this,t=e.options.ticks;if(t.beginAtZero){var n=i.sign(e.min),a=i.sign(e.max);n<0&&a<0?e.max=0:n>0&&a>0&&(e.min=0)}var r=void 0!==t.min||void 0!==t.suggestedMin,o=void 0!==t.max||void 0!==t.suggestedMax;void 0!==t.min?e.min=t.min:void 0!==t.suggestedMin&&(null===e.min?e.min=t.suggestedMin:e.min=Math.min(e.min,t.suggestedMin)),void 0!==t.max?e.max=t.max:void 0!==t.suggestedMax&&(null===e.max?e.max=t.suggestedMax:e.max=Math.max(e.max,t.suggestedMax)),r!==o&&e.min>=e.max&&(r?e.max=e.min+1:e.min=e.max-1),e.min===e.max&&(e.max++,t.beginAtZero||e.min--)},getTickLimit:t,handleDirectionalChanges:t,buildTicks:function(){var e=this,t=e.options.ticks,n=e.getTickLimit(),a={maxTicks:n=Math.max(2,n),min:t.min,max:t.max,stepSize:i.valueOrDefault(t.fixedStepSize,t.stepSize)},r=e.ticks=function(e,t){var n,a=[];if(e.stepSize&&e.stepSize>0)n=e.stepSize;else{var r=i.niceNum(t.max-t.min,!1);n=i.niceNum(r/(e.maxTicks-1),!0)}var o=Math.floor(t.min/n)*n,s=Math.ceil(t.max/n)*n;e.min&&e.max&&e.stepSize&&i.almostWhole((e.max-e.min)/e.stepSize,n/1e3)&&(o=e.min,s=e.max);var d=(s-o)/n;d=i.almostEquals(d,Math.round(d),n/1e3)?Math.round(d):Math.ceil(d);var l=1;n<1&&(l=Math.pow(10,n.toString().length-2),o=Math.round(o*l)/l,s=Math.round(s*l)/l),a.push(void 0!==e.min?e.min:o);for(var u=1;u0){var n=i.min(e),a=i.max(e);t.min=null===t.min?n:Math.min(t.min,n),t.max=null===t.max?a:Math.max(t.max,a)}})}else i.each(r,function(n,r){var o=a.getDatasetMeta(r);a.isDatasetVisible(r)&&e(o)&&i.each(n.data,function(e,n){var i=+t.getRightValue(e);isNaN(i)||o.data[n].hidden||i<0||(null===t.min?t.min=i:it.max&&(t.max=i),0!==i&&(null===t.minNotZero||i0?e.minNotZero=e.min:e.max<1?e.minNotZero=Math.pow(10,Math.floor(i.log10(e.max))):e.minNotZero=1)},buildTicks:function(){var e=this,t=e.options.ticks,n=!e.isHorizontal(),a={min:t.min,max:t.max},r=e.ticks=function(e,t){var n,a,r=[],o=i.valueOrDefault,s=o(e.min,Math.pow(10,Math.floor(i.log10(t.min)))),d=Math.floor(i.log10(t.max)),l=Math.ceil(t.max/Math.pow(10,d));0===s?(n=Math.floor(i.log10(t.minNotZero)),a=Math.floor(t.minNotZero/Math.pow(10,n)),r.push(s),s=a*Math.pow(10,n)):(n=Math.floor(i.log10(s)),a=Math.floor(s/Math.pow(10,n)));for(var u=n<0?Math.pow(10,Math.abs(n)):1;r.push(s),10==++a&&(a=1,u=++n>=0?1:u),s=Math.round(a*Math.pow(10,n)*u)/u,na?{start:t-n-5,end:t}:{start:t,end:t+n+5}}function s(e,t,n,i){if(a.isArray(t))for(var r=n.y,o=1.5*i,s=0;su.r&&(u.r=y.end,c.r=_),v.startu.b&&(u.b=v.end,c.b=_)}e.setReductions(l,u,c)}(this):(e=this,i=Math.min(e.height/2,e.width/2),e.drawingArea=Math.round(i),e.setCenterPoint(0,0,0,0))},setReductions:function(e,t,n){var i=t.l/Math.sin(n.l),a=Math.max(t.r-this.width,0)/Math.sin(n.r),r=-t.t/Math.cos(n.t),o=-Math.max(t.b-this.height,0)/Math.cos(n.b);i=d(i),a=d(a),r=d(r),o=d(o),this.drawingArea=Math.min(Math.round(e-(i+a)/2),Math.round(e-(r+o)/2)),this.setCenterPoint(i,a,r,o)},setCenterPoint:function(e,t,n,i){var a=this,r=a.width-t-a.drawingArea,o=e+a.drawingArea,s=n+a.drawingArea,d=a.height-i-a.drawingArea;a.xCenter=Math.round((o+r)/2+a.left),a.yCenter=Math.round((s+d)/2+a.top)},getIndexAngle:function(e){return e*(2*Math.PI/t(this))+(this.chart.options&&this.chart.options.startAngle?this.chart.options.startAngle:0)*Math.PI*2/360},getDistanceFromCenterForValue:function(e){var t=this;if(null===e)return 0;var n=t.drawingArea/(t.max-t.min);return t.options.ticks.reverse?(t.max-e)*n:(e-t.min)*n},getPointPosition:function(e,t){var n=this.getIndexAngle(e)-Math.PI/2;return{x:Math.round(Math.cos(n)*t)+this.xCenter,y:Math.round(Math.sin(n)*t)+this.yCenter}},getPointPositionForValue:function(e,t){return this.getPointPosition(e,this.getDistanceFromCenterForValue(t))},getBasePosition:function(){var e=this.min,t=this.max;return this.getPointPositionForValue(0,this.beginAtZero?0:e<0&&t<0?t:e>0&&t>0?e:0)},draw:function(){var e=this,i=e.options,r=i.gridLines,o=i.ticks,d=a.valueOrDefault;if(i.display){var u=e.ctx,c=this.getIndexAngle(0),h=d(o.fontSize,l.defaultFontSize),m=d(o.fontStyle,l.defaultFontStyle),p=d(o.fontFamily,l.defaultFontFamily),f=a.fontString(h,m,p);a.each(e.ticks,function(n,i){if(i>0||o.reverse){var s=e.getDistanceFromCenterForValue(e.ticksAsNumbers[i]);if(r.display&&0!==i&&function(e,n,i,r){var o=e.ctx;if(o.strokeStyle=a.valueAtIndexOrDefault(n.color,r-1),o.lineWidth=a.valueAtIndexOrDefault(n.lineWidth,r-1),e.options.gridLines.circular)o.beginPath(),o.arc(e.xCenter,e.yCenter,i,0,2*Math.PI),o.closePath(),o.stroke();else{var s=t(e);if(0===s)return;o.beginPath();var d=e.getPointPosition(0,i);o.moveTo(d.x,d.y);for(var l=1;l=0;_--){if(o.display){var g=e.getPointPosition(_,p);i.beginPath(),i.moveTo(e.xCenter,e.yCenter),i.lineTo(g.x,g.y),i.stroke(),i.closePath()}if(d.display){var y=e.getPointPosition(_,p+5),v=a.valueAtIndexOrDefault(d.fontColor,_,l.defaultFontColor);i.font=f.font,i.fillStyle=v;var M=e.getIndexAngle(_),b=a.toDegrees(M);i.textAlign=0===(m=b)||180===m?"center":m<180?"left":"right",u=b,c=e._pointLabelSizes[_],h=y,90===u||270===u?h.y-=c.h/2:(u>270||u<90)&&(h.y-=c.h),s(i,e.pointLabels[_]||"",y,f.size)}}}(e)}}});e.scaleService.registerScaleType("radialLinear",c,u)}},{25:25,34:34,45:45}],58:[function(e,t,n){"use strict";function i(e,t){return e-t}function a(e){var t,n,i,a={},r=[];for(t=0,n=e.length;t=0&&o<=s;){if(a=e[(i=o+s>>1)-1]||null,r=e[i],!a)return{lo:null,hi:r};if(r[t]n))return{lo:a,hi:r};s=i-1}}return{lo:r,hi:null}}(e,t,n),r=a.lo?a.hi?a.lo:e[e.length-2]:e[0],o=a.lo?a.hi?a.hi:e[e.length-1]:e[1],s=o[t]-r[t],d=s?(n-r[t])/s:0,l=(o[i]-r[i])*d;return r[i]+l}function o(e,t){var n=t.parser,i=t.parser||t.format;return"function"==typeof n?n(e):"string"==typeof e&&"string"==typeof i?u(e,i):(e instanceof u||(e=u(e)),e.isValid()?e:"function"==typeof i?i(e):e)}function s(e,t){if(h.isNullOrUndef(e))return null;var n=t.options.time,i=o(t.getRightValue(e),n);return i.isValid()?(n.round&&i.startOf(n.round),i.valueOf()):null}function d(e){for(var t=_.indexOf(e)+1,n=_.length;t=b&&n<=L&&T.push(n);return M.min=b,M.max=L,M._unit=k.unit||function(e,t,n,i){var a,r,o=u.duration(u(i).diff(u(n)));for(a=_.length-1;a>=_.indexOf(t);a--)if(r=_[a],f[r].common&&o.as(r)>=e.length)return r;return _[t?_.indexOf(t):0]}(T,k.minUnit,M.min,M.max),M._majorUnit=d(M._unit),M._table=function(e,t,n,i){if("linear"===i||!e.length)return[{time:t,pos:0},{time:n,pos:1}];var a,r,o,s,d,l=[],u=[t];for(a=0,r=e.length;at&&s1?a[1]:h,g=a[0],y=(r(i,"time",p,"pos")-r(i,"time",g,"pos"))/2),m.time.max||(p=a[a.length-1],g=a.length>1?a[a.length-2]:c,v=(r(i,"time",p,"pos")-r(i,"time",g,"pos"))/2)),{left:y,right:v}),M._labelFormat=function(e,t){var n,i,a,r=e.length;for(n=0;n=0&&e0?o:1}});e.scaleService.registerScaleType("time",t,{position:"bottom",distribution:"linear",bounds:"data",time:{parser:!1,format:!1,unit:!1,round:!1,displayFormat:!1,isoWeekday:!1,minUnit:"millisecond",displayFormats:{millisecond:"h:mm:ss.SSS a",second:"h:mm:ss a",minute:"h:mm a",hour:"hA",day:"MMM D",week:"ll",month:"MMM YYYY",quarter:"[Q]Q - YYYY",year:"YYYY"}},ticks:{autoSkip:!1,source:"auto",major:{enabled:!1}}})}},{1:1,25:25,45:45}]},{},[7])(7)})},"2pmY":function(e,t,n){!function(e,t){t(n("PJh5"))}(0,function(e){"use strict";var t={1:"۱",2:"۲",3:"۳",4:"۴",5:"۵",6:"۶",7:"۷",8:"۸",9:"۹",0:"۰"},n={"۱":"1","۲":"2","۳":"3","۴":"4","۵":"5","۶":"6","۷":"7","۸":"8","۹":"9","۰":"0"};return e.defineLocale("fa",{months:"ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر".split("_"),monthsShort:"ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر".split("_"),weekdays:"یک‌شنبه_دوشنبه_سه‌شنبه_چهارشنبه_پنج‌شنبه_جمعه_شنبه".split("_"),weekdaysShort:"یک‌شنبه_دوشنبه_سه‌شنبه_چهارشنبه_پنج‌شنبه_جمعه_شنبه".split("_"),weekdaysMin:"ی_د_س_چ_پ_ج_ش".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},meridiemParse:/قبل از ظهر|بعد از ظهر/,isPM:function(e){return/بعد از ظهر/.test(e)},meridiem:function(e,t,n){return e<12?"قبل از ظهر":"بعد از ظهر"},calendar:{sameDay:"[امروز ساعت] LT",nextDay:"[فردا ساعت] LT",nextWeek:"dddd [ساعت] LT",lastDay:"[دیروز ساعت] LT",lastWeek:"dddd [پیش] [ساعت] LT",sameElse:"L"},relativeTime:{future:"در %s",past:"%s پیش",s:"چند ثانیه",ss:"ثانیه d%",m:"یک دقیقه",mm:"%d دقیقه",h:"یک ساعت",hh:"%d ساعت",d:"یک روز",dd:"%d روز",M:"یک ماه",MM:"%d ماه",y:"یک سال",yy:"%d سال"},preparse:function(e){return e.replace(/[۰-۹]/g,function(e){return n[e]}).replace(/،/g,",")},postformat:function(e){return e.replace(/\d/g,function(e){return t[e]}).replace(/,/g,"،")},dayOfMonthOrdinalParse:/\d{1,2}م/,ordinal:"%dم",week:{dow:6,doy:12}})})},"2s1U":function(e,t,n){!function(e,t){t(n("PJh5"))}(0,function(e){"use strict";function t(e,t,n,i){var a=e+" ";switch(n){case"s":return t||i?"nekaj sekund":"nekaj sekundami";case"ss":return a+=1===e?t?"sekundo":"sekundi":2===e?t||i?"sekundi":"sekundah":e<5?t||i?"sekunde":"sekundah":"sekund";case"m":return t?"ena minuta":"eno minuto";case"mm":return a+=1===e?t?"minuta":"minuto":2===e?t||i?"minuti":"minutama":e<5?t||i?"minute":"minutami":t||i?"minut":"minutami";case"h":return t?"ena ura":"eno uro";case"hh":return a+=1===e?t?"ura":"uro":2===e?t||i?"uri":"urama":e<5?t||i?"ure":"urami":t||i?"ur":"urami";case"d":return t||i?"en dan":"enim dnem";case"dd":return a+=1===e?t||i?"dan":"dnem":2===e?t||i?"dni":"dnevoma":t||i?"dni":"dnevi";case"M":return t||i?"en mesec":"enim mesecem";case"MM":return a+=1===e?t||i?"mesec":"mesecem":2===e?t||i?"meseca":"mesecema":e<5?t||i?"mesece":"meseci":t||i?"mesecev":"meseci";case"y":return t||i?"eno leto":"enim letom";case"yy":return a+=1===e?t||i?"leto":"letom":2===e?t||i?"leti":"letoma":e<5?t||i?"leta":"leti":t||i?"let":"leti"}}return e.defineLocale("sl",{months:"januar_februar_marec_april_maj_junij_julij_avgust_september_oktober_november_december".split("_"),monthsShort:"jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"nedelja_ponedeljek_torek_sreda_četrtek_petek_sobota".split("_"),weekdaysShort:"ned._pon._tor._sre._čet._pet._sob.".split("_"),weekdaysMin:"ne_po_to_sr_če_pe_so".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danes ob] LT",nextDay:"[jutri ob] LT",nextWeek:function(){switch(this.day()){case 0:return"[v] [nedeljo] [ob] LT";case 3:return"[v] [sredo] [ob] LT";case 6:return"[v] [soboto] [ob] LT";case 1:case 2:case 4:case 5:return"[v] dddd [ob] LT"}},lastDay:"[včeraj ob] LT",lastWeek:function(){switch(this.day()){case 0:return"[prejšnjo] [nedeljo] [ob] LT";case 3:return"[prejšnjo] [sredo] [ob] LT";case 6:return"[prejšnjo] [soboto] [ob] LT";case 1:case 2:case 4:case 5:return"[prejšnji] dddd [ob] LT"}},sameElse:"L"},relativeTime:{future:"čez %s",past:"pred %s",s:t,ss:t,m:t,mm:t,h:t,hh:t,d:t,dd:t,M:t,MM:t,y:t,yy:t},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})})},"3CJN":function(e,t,n){!function(e,t){t(n("PJh5"))}(0,function(e){"use strict";return e.defineLocale("af",{months:"Januarie_Februarie_Maart_April_Mei_Junie_Julie_Augustus_September_Oktober_November_Desember".split("_"),monthsShort:"Jan_Feb_Mrt_Apr_Mei_Jun_Jul_Aug_Sep_Okt_Nov_Des".split("_"),weekdays:"Sondag_Maandag_Dinsdag_Woensdag_Donderdag_Vrydag_Saterdag".split("_"),weekdaysShort:"Son_Maa_Din_Woe_Don_Vry_Sat".split("_"),weekdaysMin:"So_Ma_Di_Wo_Do_Vr_Sa".split("_"),meridiemParse:/vm|nm/i,isPM:function(e){return/^nm$/i.test(e)},meridiem:function(e,t,n){return e<12?n?"vm":"VM":n?"nm":"NM"},longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Vandag om] LT",nextDay:"[Môre om] LT",nextWeek:"dddd [om] LT",lastDay:"[Gister om] LT",lastWeek:"[Laas] dddd [om] LT",sameElse:"L"},relativeTime:{future:"oor %s",past:"%s gelede",s:"'n paar sekondes",ss:"%d sekondes",m:"'n minuut",mm:"%d minute",h:"'n uur",hh:"%d ure",d:"'n dag",dd:"%d dae",M:"'n maand",MM:"%d maande",y:"'n jaar",yy:"%d jaar"},dayOfMonthOrdinalParse:/\d{1,2}(ste|de)/,ordinal:function(e){return e+(1===e||8===e||e>=20?"ste":"de")},week:{dow:1,doy:4}})})},"3EEf":function(e,t){},"3IRH":function(e,t){e.exports=function(e){return e.webpackPolyfill||(e.deprecate=function(){},e.paths=[],e.children||(e.children=[]),Object.defineProperty(e,"loaded",{enumerable:!0,get:function(){return e.l}}),Object.defineProperty(e,"id",{enumerable:!0,get:function(){return e.i}}),e.webpackPolyfill=1),e}},"3K28":function(e,t,n){!function(e,t){t(n("PJh5"))}(0,function(e){"use strict";var t="jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.".split("_"),n="jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec".split("_"),i=[/^jan/i,/^feb/i,/^maart|mrt.?$/i,/^apr/i,/^mei$/i,/^jun[i.]?$/i,/^jul[i.]?$/i,/^aug/i,/^sep/i,/^okt/i,/^nov/i,/^dec/i],a=/^(januari|februari|maart|april|mei|april|ju[nl]i|augustus|september|oktober|november|december|jan\.?|feb\.?|mrt\.?|apr\.?|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i;return e.defineLocale("nl",{months:"januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december".split("_"),monthsShort:function(e,i){return e?/-MMM-/.test(i)?n[e.month()]:t[e.month()]:t},monthsRegex:a,monthsShortRegex:a,monthsStrictRegex:/^(januari|februari|maart|mei|ju[nl]i|april|augustus|september|oktober|november|december)/i,monthsShortStrictRegex:/^(jan\.?|feb\.?|mrt\.?|apr\.?|mei|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i,monthsParse:i,longMonthsParse:i,shortMonthsParse:i,weekdays:"zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag".split("_"),weekdaysShort:"zo._ma._di._wo._do._vr._za.".split("_"),weekdaysMin:"zo_ma_di_wo_do_vr_za".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[vandaag om] LT",nextDay:"[morgen om] LT",nextWeek:"dddd [om] LT",lastDay:"[gisteren om] LT",lastWeek:"[afgelopen] dddd [om] LT",sameElse:"L"},relativeTime:{future:"over %s",past:"%s geleden",s:"een paar seconden",ss:"%d seconden",m:"één minuut",mm:"%d minuten",h:"één uur",hh:"%d uur",d:"één dag",dd:"%d dagen",M:"één maand",MM:"%d maanden",y:"één jaar",yy:"%d jaar"},dayOfMonthOrdinalParse:/\d{1,2}(ste|de)/,ordinal:function(e){return e+(1===e||8===e||e>=20?"ste":"de")},week:{dow:1,doy:4}})})},"3LKG":function(e,t,n){!function(e,t){t(n("PJh5"))}(0,function(e){"use strict";return e.defineLocale("tl-ph",{months:"Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre".split("_"),monthsShort:"Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis".split("_"),weekdays:"Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado".split("_"),weekdaysShort:"Lin_Lun_Mar_Miy_Huw_Biy_Sab".split("_"),weekdaysMin:"Li_Lu_Ma_Mi_Hu_Bi_Sab".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"MM/D/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY HH:mm",LLLL:"dddd, MMMM DD, YYYY HH:mm"},calendar:{sameDay:"LT [ngayong araw]",nextDay:"[Bukas ng] LT",nextWeek:"LT [sa susunod na] dddd",lastDay:"LT [kahapon]",lastWeek:"LT [noong nakaraang] dddd",sameElse:"L"},relativeTime:{future:"sa loob ng %s",past:"%s ang nakalipas",s:"ilang segundo",ss:"%d segundo",m:"isang minuto",mm:"%d minuto",h:"isang oras",hh:"%d oras",d:"isang araw",dd:"%d araw",M:"isang buwan",MM:"%d buwan",y:"isang taon",yy:"%d taon"},dayOfMonthOrdinalParse:/\d{1,2}/,ordinal:function(e){return e},week:{dow:1,doy:4}})})},"3MVc":function(e,t,n){!function(e,t){t(n("PJh5"))}(0,function(e){"use strict";var t={1:"١",2:"٢",3:"٣",4:"٤",5:"٥",6:"٦",7:"٧",8:"٨",9:"٩",0:"٠"},n={"١":"1","٢":"2","٣":"3","٤":"4","٥":"5","٦":"6","٧":"7","٨":"8","٩":"9","٠":"0"},i=function(e){return 0===e?0:1===e?1:2===e?2:e%100>=3&&e%100<=10?3:e%100>=11?4:5},a={s:["أقل من ثانية","ثانية واحدة",["ثانيتان","ثانيتين"],"%d ثوان","%d ثانية","%d ثانية"],m:["أقل من دقيقة","دقيقة واحدة",["دقيقتان","دقيقتين"],"%d دقائق","%d دقيقة","%d دقيقة"],h:["أقل من ساعة","ساعة واحدة",["ساعتان","ساعتين"],"%d ساعات","%d ساعة","%d ساعة"],d:["أقل من يوم","يوم واحد",["يومان","يومين"],"%d أيام","%d يومًا","%d يوم"],M:["أقل من شهر","شهر واحد",["شهران","شهرين"],"%d أشهر","%d شهرا","%d شهر"],y:["أقل من عام","عام واحد",["عامان","عامين"],"%d أعوام","%d عامًا","%d عام"]},r=function(e){return function(t,n,r,o){var s=i(t),d=a[e][i(t)];return 2===s&&(d=d[n?0:1]),d.replace(/%d/i,t)}},o=["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر"];return e.defineLocale("ar",{months:o,monthsShort:o,weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"D/‏M/‏YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/ص|م/,isPM:function(e){return"م"===e},meridiem:function(e,t,n){return e<12?"ص":"م"},calendar:{sameDay:"[اليوم عند الساعة] LT",nextDay:"[غدًا عند الساعة] LT",nextWeek:"dddd [عند الساعة] LT",lastDay:"[أمس عند الساعة] LT",lastWeek:"dddd [عند الساعة] LT",sameElse:"L"},relativeTime:{future:"بعد %s",past:"منذ %s",s:r("s"),ss:r("s"),m:r("m"),mm:r("m"),h:r("h"),hh:r("h"),d:r("d"),dd:r("d"),M:r("M"),MM:r("M"),y:r("y"),yy:r("y")},preparse:function(e){return e.replace(/[١٢٣٤٥٦٧٨٩٠]/g,function(e){return n[e]}).replace(/،/g,",")},postformat:function(e){return e.replace(/\d/g,function(e){return t[e]}).replace(/,/g,"،")},week:{dow:6,doy:12}})})},"3hfc":function(e,t,n){!function(e,t){t(n("PJh5"))}(0,function(e){"use strict";function t(e,t){var n=e.split("_");return t%10==1&&t%100!=11?n[0]:t%10>=2&&t%10<=4&&(t%100<10||t%100>=20)?n[1]:n[2]}function n(e,n,i){var a={ss:n?"секунда_секунды_секунд":"секунду_секунды_секунд",mm:n?"хвіліна_хвіліны_хвілін":"хвіліну_хвіліны_хвілін",hh:n?"гадзіна_гадзіны_гадзін":"гадзіну_гадзіны_гадзін",dd:"дзень_дні_дзён",MM:"месяц_месяцы_месяцаў",yy:"год_гады_гадоў"};return"m"===i?n?"хвіліна":"хвіліну":"h"===i?n?"гадзіна":"гадзіну":e+" "+t(a[i],+e)}return e.defineLocale("be",{months:{format:"студзеня_лютага_сакавіка_красавіка_траўня_чэрвеня_ліпеня_жніўня_верасня_кастрычніка_лістапада_снежня".split("_"),standalone:"студзень_люты_сакавік_красавік_травень_чэрвень_ліпень_жнівень_верасень_кастрычнік_лістапад_снежань".split("_")},monthsShort:"студ_лют_сак_крас_трав_чэрв_ліп_жнів_вер_каст_ліст_снеж".split("_"),weekdays:{format:"нядзелю_панядзелак_аўторак_сераду_чацвер_пятніцу_суботу".split("_"),standalone:"нядзеля_панядзелак_аўторак_серада_чацвер_пятніца_субота".split("_"),isFormat:/\[ ?[Ууў] ?(?:мінулую|наступную)? ?\] ?dddd/},weekdaysShort:"нд_пн_ат_ср_чц_пт_сб".split("_"),weekdaysMin:"нд_пн_ат_ср_чц_пт_сб".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY г.",LLL:"D MMMM YYYY г., HH:mm",LLLL:"dddd, D MMMM YYYY г., HH:mm"},calendar:{sameDay:"[Сёння ў] LT",nextDay:"[Заўтра ў] LT",lastDay:"[Учора ў] LT",nextWeek:function(){return"[У] dddd [ў] LT"},lastWeek:function(){switch(this.day()){case 0:case 3:case 5:case 6:return"[У мінулую] dddd [ў] LT";case 1:case 2:case 4:return"[У мінулы] dddd [ў] LT"}},sameElse:"L"},relativeTime:{future:"праз %s",past:"%s таму",s:"некалькі секунд",m:n,mm:n,h:n,hh:n,d:"дзень",dd:n,M:"месяц",MM:n,y:"год",yy:n},meridiemParse:/ночы|раніцы|дня|вечара/,isPM:function(e){return/^(дня|вечара)$/.test(e)},meridiem:function(e,t,n){return e<4?"ночы":e<12?"раніцы":e<17?"дня":"вечара"},dayOfMonthOrdinalParse:/\d{1,2}-(і|ы|га)/,ordinal:function(e,t){switch(t){case"M":case"d":case"DDD":case"w":case"W":return e%10!=2&&e%10!=3||e%100==12||e%100==13?e+"-ы":e+"-і";case"D":return e+"-га";default:return e}},week:{dow:1,doy:7}})})},"5Omq":function(e,t,n){!function(e,t){t(n("PJh5"))}(0,function(e){"use strict";return e.defineLocale("se",{months:"ođđajagemánnu_guovvamánnu_njukčamánnu_cuoŋománnu_miessemánnu_geassemánnu_suoidnemánnu_borgemánnu_čakčamánnu_golggotmánnu_skábmamánnu_juovlamánnu".split("_"),monthsShort:"ođđj_guov_njuk_cuo_mies_geas_suoi_borg_čakč_golg_skáb_juov".split("_"),weekdays:"sotnabeaivi_vuossárga_maŋŋebárga_gaskavahkku_duorastat_bearjadat_lávvardat".split("_"),weekdaysShort:"sotn_vuos_maŋ_gask_duor_bear_láv".split("_"),weekdaysMin:"s_v_m_g_d_b_L".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"MMMM D. [b.] YYYY",LLL:"MMMM D. [b.] YYYY [ti.] HH:mm",LLLL:"dddd, MMMM D. [b.] YYYY [ti.] HH:mm"},calendar:{sameDay:"[otne ti] LT",nextDay:"[ihttin ti] LT",nextWeek:"dddd [ti] LT",lastDay:"[ikte ti] LT",lastWeek:"[ovddit] dddd [ti] LT",sameElse:"L"},relativeTime:{future:"%s geažes",past:"maŋit %s",s:"moadde sekunddat",ss:"%d sekunddat",m:"okta minuhta",mm:"%d minuhtat",h:"okta diimmu",hh:"%d diimmut",d:"okta beaivi",dd:"%d beaivvit",M:"okta mánnu",MM:"%d mánut",y:"okta jahki",yy:"%d jagit"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})})},"5SNd":function(e,t,n){!function(e,t){t(n("PJh5"))}(0,function(e){"use strict";var t={0:"-ум",1:"-ум",2:"-юм",3:"-юм",4:"-ум",5:"-ум",6:"-ум",7:"-ум",8:"-ум",9:"-ум",10:"-ум",12:"-ум",13:"-ум",20:"-ум",30:"-юм",40:"-ум",50:"-ум",60:"-ум",70:"-ум",80:"-ум",90:"-ум",100:"-ум"};return e.defineLocale("tg",{months:"январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр".split("_"),monthsShort:"янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек".split("_"),weekdays:"якшанбе_душанбе_сешанбе_чоршанбе_панҷшанбе_ҷумъа_шанбе".split("_"),weekdaysShort:"яшб_дшб_сшб_чшб_пшб_ҷум_шнб".split("_"),weekdaysMin:"яш_дш_сш_чш_пш_ҷм_шб".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Имрӯз соати] LT",nextDay:"[Пагоҳ соати] LT",lastDay:"[Дирӯз соати] LT",nextWeek:"dddd[и] [ҳафтаи оянда соати] LT",lastWeek:"dddd[и] [ҳафтаи гузашта соати] LT",sameElse:"L"},relativeTime:{future:"баъди %s",past:"%s пеш",s:"якчанд сония",m:"як дақиқа",mm:"%d дақиқа",h:"як соат",hh:"%d соат",d:"як рӯз",dd:"%d рӯз",M:"як моҳ",MM:"%d моҳ",y:"як сол",yy:"%d сол"},meridiemParse:/шаб|субҳ|рӯз|бегоҳ/,meridiemHour:function(e,t){return 12===e&&(e=0),"шаб"===t?e<4?e:e+12:"субҳ"===t?e:"рӯз"===t?e>=11?e:e+12:"бегоҳ"===t?e+12:void 0},meridiem:function(e,t,n){return e<4?"шаб":e<11?"субҳ":e<16?"рӯз":e<19?"бегоҳ":"шаб"},dayOfMonthOrdinalParse:/\d{1,2}-(ум|юм)/,ordinal:function(e){var n=e%10,i=e>=100?100:null;return e+(t[e]||t[n]||t[i])},week:{dow:1,doy:7}})})},"5j66":function(e,t,n){!function(e,t){t(n("PJh5"))}(0,function(e){"use strict";var t={1:"១",2:"២",3:"៣",4:"៤",5:"៥",6:"៦",7:"៧",8:"៨",9:"៩",0:"០"},n={"១":"1","២":"2","៣":"3","៤":"4","៥":"5","៦":"6","៧":"7","៨":"8","៩":"9","០":"0"};return e.defineLocale("km",{months:"មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ".split("_"),monthsShort:"មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ".split("_"),weekdays:"អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍".split("_"),weekdaysShort:"អា_ច_អ_ព_ព្រ_សុ_ស".split("_"),weekdaysMin:"អា_ច_អ_ព_ព្រ_សុ_ស".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},meridiemParse:/ព្រឹក|ល្ងាច/,isPM:function(e){return"ល្ងាច"===e},meridiem:function(e,t,n){return e<12?"ព្រឹក":"ល្ងាច"},calendar:{sameDay:"[ថ្ងៃនេះ ម៉ោង] LT",nextDay:"[ស្អែក ម៉ោង] LT",nextWeek:"dddd [ម៉ោង] LT",lastDay:"[ម្សិលមិញ ម៉ោង] LT",lastWeek:"dddd [សប្តាហ៍មុន] [ម៉ោង] LT",sameElse:"L"},relativeTime:{future:"%sទៀត",past:"%sមុន",s:"ប៉ុន្មានវិនាទី",ss:"%d វិនាទី",m:"មួយនាទី",mm:"%d នាទី",h:"មួយម៉ោង",hh:"%d ម៉ោង",d:"មួយថ្ងៃ",dd:"%d ថ្ងៃ",M:"មួយខែ",MM:"%d ខែ",y:"មួយឆ្នាំ",yy:"%d ឆ្នាំ"},dayOfMonthOrdinalParse:/ទី\d{1,2}/,ordinal:"ទី%d",preparse:function(e){return e.replace(/[១២៣៤៥៦៧៨៩០]/g,function(e){return n[e]})},postformat:function(e){return e.replace(/\d/g,function(e){return t[e]})},week:{dow:1,doy:4}})})},"5vPg":function(e,t,n){!function(e,t){t(n("PJh5"))}(0,function(e){"use strict";function t(e,t,n,i){var a="";if(t)switch(n){case"s":a="काही सेकंद";break;case"ss":a="%d सेकंद";break;case"m":a="एक मिनिट";break;case"mm":a="%d मिनिटे";break;case"h":a="एक तास";break;case"hh":a="%d तास";break;case"d":a="एक दिवस";break;case"dd":a="%d दिवस";break;case"M":a="एक महिना";break;case"MM":a="%d महिने";break;case"y":a="एक वर्ष";break;case"yy":a="%d वर्षे"}else switch(n){case"s":a="काही सेकंदां";break;case"ss":a="%d सेकंदां";break;case"m":a="एका मिनिटा";break;case"mm":a="%d मिनिटां";break;case"h":a="एका तासा";break;case"hh":a="%d तासां";break;case"d":a="एका दिवसा";break;case"dd":a="%d दिवसां";break;case"M":a="एका महिन्या";break;case"MM":a="%d महिन्यां";break;case"y":a="एका वर्षा";break;case"yy":a="%d वर्षां"}return a.replace(/%d/i,e)}var n={1:"१",2:"२",3:"३",4:"४",5:"५",6:"६",7:"७",8:"८",9:"९",0:"०"},i={"१":"1","२":"2","३":"3","४":"4","५":"5","६":"6","७":"7","८":"8","९":"9","०":"0"};return e.defineLocale("mr",{months:"जानेवारी_फेब्रुवारी_मार्च_एप्रिल_मे_जून_जुलै_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर".split("_"),monthsShort:"जाने._फेब्रु._मार्च._एप्रि._मे._जून._जुलै._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.".split("_"),monthsParseExact:!0,weekdays:"रविवार_सोमवार_मंगळवार_बुधवार_गुरूवार_शुक्रवार_शनिवार".split("_"),weekdaysShort:"रवि_सोम_मंगळ_बुध_गुरू_शुक्र_शनि".split("_"),weekdaysMin:"र_सो_मं_बु_गु_शु_श".split("_"),longDateFormat:{LT:"A h:mm वाजता",LTS:"A h:mm:ss वाजता",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm वाजता",LLLL:"dddd, D MMMM YYYY, A h:mm वाजता"},calendar:{sameDay:"[आज] LT",nextDay:"[उद्या] LT",nextWeek:"dddd, LT",lastDay:"[काल] LT",lastWeek:"[मागील] dddd, LT",sameElse:"L"},relativeTime:{future:"%sमध्ये",past:"%sपूर्वी",s:t,ss:t,m:t,mm:t,h:t,hh:t,d:t,dd:t,M:t,MM:t,y:t,yy:t},preparse:function(e){return e.replace(/[१२३४५६७८९०]/g,function(e){return i[e]})},postformat:function(e){return e.replace(/\d/g,function(e){return n[e]})},meridiemParse:/रात्री|सकाळी|दुपारी|सायंकाळी/,meridiemHour:function(e,t){return 12===e&&(e=0),"रात्री"===t?e<4?e:e+12:"सकाळी"===t?e:"दुपारी"===t?e>=10?e:e+12:"सायंकाळी"===t?e+12:void 0},meridiem:function(e,t,n){return e<4?"रात्री":e<10?"सकाळी":e<17?"दुपारी":e<20?"सायंकाळी":"रात्री"},week:{dow:0,doy:6}})})},"6cf8":function(e,t,n){!function(e,t){t(n("PJh5"))}(0,function(e){"use strict";var t={0:"-чү",1:"-чи",2:"-чи",3:"-чү",4:"-чү",5:"-чи",6:"-чы",7:"-чи",8:"-чи",9:"-чу",10:"-чу",20:"-чы",30:"-чу",40:"-чы",50:"-чү",60:"-чы",70:"-чи",80:"-чи",90:"-чу",100:"-чү"};return e.defineLocale("ky",{months:"январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь".split("_"),monthsShort:"янв_фев_март_апр_май_июнь_июль_авг_сен_окт_ноя_дек".split("_"),weekdays:"Жекшемби_Дүйшөмбү_Шейшемби_Шаршемби_Бейшемби_Жума_Ишемби".split("_"),weekdaysShort:"Жек_Дүй_Шей_Шар_Бей_Жум_Ише".split("_"),weekdaysMin:"Жк_Дй_Шй_Шр_Бй_Жм_Иш".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Бүгүн саат] LT",nextDay:"[Эртең саат] LT",nextWeek:"dddd [саат] LT",lastDay:"[Кече саат] LT",lastWeek:"[Өткен аптанын] dddd [күнү] [саат] LT",sameElse:"L"},relativeTime:{future:"%s ичинде",past:"%s мурун",s:"бирнече секунд",ss:"%d секунд",m:"бир мүнөт",mm:"%d мүнөт",h:"бир саат",hh:"%d саат",d:"бир күн",dd:"%d күн",M:"бир ай",MM:"%d ай",y:"бир жыл",yy:"%d жыл"},dayOfMonthOrdinalParse:/\d{1,2}-(чи|чы|чү|чу)/,ordinal:function(e){var n=e%10,i=e>=100?100:null;return e+(t[e]||t[n]||t[i])},week:{dow:1,doy:7}})})},"7LV+":function(e,t,n){!function(e,t){t(n("PJh5"))}(0,function(e){"use strict";function t(e){return e%10<5&&e%10>1&&~~(e/10)%10!=1}function n(e,n,i){var a=e+" ";switch(i){case"ss":return a+(t(e)?"sekundy":"sekund");case"m":return n?"minuta":"minutę";case"mm":return a+(t(e)?"minuty":"minut");case"h":return n?"godzina":"godzinę";case"hh":return a+(t(e)?"godziny":"godzin");case"MM":return a+(t(e)?"miesiące":"miesięcy");case"yy":return a+(t(e)?"lata":"lat")}}var i="styczeń_luty_marzec_kwiecień_maj_czerwiec_lipiec_sierpień_wrzesień_październik_listopad_grudzień".split("_"),a="stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_września_października_listopada_grudnia".split("_");return e.defineLocale("pl",{months:function(e,t){return e?""===t?"("+a[e.month()]+"|"+i[e.month()]+")":/D MMMM/.test(t)?a[e.month()]:i[e.month()]:i},monthsShort:"sty_lut_mar_kwi_maj_cze_lip_sie_wrz_paź_lis_gru".split("_"),weekdays:"niedziela_poniedziałek_wtorek_środa_czwartek_piątek_sobota".split("_"),weekdaysShort:"ndz_pon_wt_śr_czw_pt_sob".split("_"),weekdaysMin:"Nd_Pn_Wt_Śr_Cz_Pt_So".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Dziś o] LT",nextDay:"[Jutro o] LT",nextWeek:function(){switch(this.day()){case 0:return"[W niedzielę o] LT";case 2:return"[We wtorek o] LT";case 3:return"[W środę o] LT";case 6:return"[W sobotę o] LT";default:return"[W] dddd [o] LT"}},lastDay:"[Wczoraj o] LT",lastWeek:function(){switch(this.day()){case 0:return"[W zeszłą niedzielę o] LT";case 3:return"[W zeszłą środę o] LT";case 6:return"[W zeszłą sobotę o] LT";default:return"[W zeszły] dddd [o] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"%s temu",s:"kilka sekund",ss:n,m:n,mm:n,h:n,hh:n,d:"1 dzień",dd:"%d dni",M:"miesiąc",MM:n,y:"rok",yy:n},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})})},"7MHZ":function(e,t,n){!function(e,t){t(n("PJh5"))}(0,function(e){"use strict";var t="ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.".split("_"),n="ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic".split("_"),i=[/^ene/i,/^feb/i,/^mar/i,/^abr/i,/^may/i,/^jun/i,/^jul/i,/^ago/i,/^sep/i,/^oct/i,/^nov/i,/^dic/i],a=/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i;return e.defineLocale("es-do",{months:"enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre".split("_"),monthsShort:function(e,i){return e?/-MMM-/.test(i)?n[e.month()]:t[e.month()]:t},monthsRegex:a,monthsShortRegex:a,monthsStrictRegex:/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,monthsShortStrictRegex:/^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i,monthsParse:i,longMonthsParse:i,shortMonthsParse:i,weekdays:"domingo_lunes_martes_miércoles_jueves_viernes_sábado".split("_"),weekdaysShort:"dom._lun._mar._mié._jue._vie._sáb.".split("_"),weekdaysMin:"do_lu_ma_mi_ju_vi_sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY h:mm A",LLLL:"dddd, D [de] MMMM [de] YYYY h:mm A"},calendar:{sameDay:function(){return"[hoy a la"+(1!==this.hours()?"s":"")+"] LT"},nextDay:function(){return"[mañana a la"+(1!==this.hours()?"s":"")+"] LT"},nextWeek:function(){return"dddd [a la"+(1!==this.hours()?"s":"")+"] LT"},lastDay:function(){return"[ayer a la"+(1!==this.hours()?"s":"")+"] LT"},lastWeek:function(){return"[el] dddd [pasado a la"+(1!==this.hours()?"s":"")+"] LT"},sameElse:"L"},relativeTime:{future:"en %s",past:"hace %s",s:"unos segundos",ss:"%d segundos",m:"un minuto",mm:"%d minutos",h:"una hora",hh:"%d horas",d:"un día",dd:"%d días",M:"un mes",MM:"%d meses",y:"un año",yy:"%d años"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}})})},"7OnE":function(e,t,n){!function(e,t){t(n("PJh5"))}(0,function(e){"use strict";var t={1:"١",2:"٢",3:"٣",4:"٤",5:"٥",6:"٦",7:"٧",8:"٨",9:"٩",0:"٠"},n={"١":"1","٢":"2","٣":"3","٤":"4","٥":"5","٦":"6","٧":"7","٨":"8","٩":"9","٠":"0"};return e.defineLocale("ar-sa",{months:"يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),monthsShort:"يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/ص|م/,isPM:function(e){return"م"===e},meridiem:function(e,t,n){return e<12?"ص":"م"},calendar:{sameDay:"[اليوم على الساعة] LT",nextDay:"[غدا على الساعة] LT",nextWeek:"dddd [على الساعة] LT",lastDay:"[أمس على الساعة] LT",lastWeek:"dddd [على الساعة] LT",sameElse:"L"},relativeTime:{future:"في %s",past:"منذ %s",s:"ثوان",ss:"%d ثانية",m:"دقيقة",mm:"%d دقائق",h:"ساعة",hh:"%d ساعات",d:"يوم",dd:"%d أيام",M:"شهر",MM:"%d أشهر",y:"سنة",yy:"%d سنوات"},preparse:function(e){return e.replace(/[١٢٣٤٥٦٧٨٩٠]/g,function(e){return n[e]}).replace(/،/g,",")},postformat:function(e){return e.replace(/\d/g,function(e){return t[e]}).replace(/,/g,"،")},week:{dow:0,doy:6}})})},"7Q8x":function(e,t,n){!function(e,t){t(n("PJh5"))}(0,function(e){"use strict";return e.defineLocale("ss",{months:"Bhimbidvwane_Indlovana_Indlov'lenkhulu_Mabasa_Inkhwekhweti_Inhlaba_Kholwane_Ingci_Inyoni_Imphala_Lweti_Ingongoni".split("_"),monthsShort:"Bhi_Ina_Inu_Mab_Ink_Inh_Kho_Igc_Iny_Imp_Lwe_Igo".split("_"),weekdays:"Lisontfo_Umsombuluko_Lesibili_Lesitsatfu_Lesine_Lesihlanu_Umgcibelo".split("_"),weekdaysShort:"Lis_Umb_Lsb_Les_Lsi_Lsh_Umg".split("_"),weekdaysMin:"Li_Us_Lb_Lt_Ls_Lh_Ug".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[Namuhla nga] LT",nextDay:"[Kusasa nga] LT",nextWeek:"dddd [nga] LT",lastDay:"[Itolo nga] LT",lastWeek:"dddd [leliphelile] [nga] LT",sameElse:"L"},relativeTime:{future:"nga %s",past:"wenteka nga %s",s:"emizuzwana lomcane",ss:"%d mzuzwana",m:"umzuzu",mm:"%d emizuzu",h:"lihora",hh:"%d emahora",d:"lilanga",dd:"%d emalanga",M:"inyanga",MM:"%d tinyanga",y:"umnyaka",yy:"%d iminyaka"},meridiemParse:/ekuseni|emini|entsambama|ebusuku/,meridiem:function(e,t,n){return e<11?"ekuseni":e<15?"emini":e<19?"entsambama":"ebusuku"},meridiemHour:function(e,t){return 12===e&&(e=0),"ekuseni"===t?e:"emini"===t?e>=11?e:e+12:"entsambama"===t||"ebusuku"===t?0===e?0:e+12:void 0},dayOfMonthOrdinalParse:/\d{1,2}/,ordinal:"%d",week:{dow:1,doy:4}})})},"7t+N":function(e,t,n){var i,a;/*! * jQuery JavaScript Library v3.3.1 * https://jquery.com/ * @@ -24176,493 +20,7 @@ var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*! * * Date: 2018-01-20T17:24Z */ -( function( global, factory ) { - - "use strict"; - - if ( typeof module === "object" && typeof module.exports === "object" ) { - - // For CommonJS and CommonJS-like environments where a proper `window` - // is present, execute the factory and get jQuery. - // For environments that do not have a `window` with a `document` - // (such as Node.js), expose a factory as module.exports. - // This accentuates the need for the creation of a real `window`. - // e.g. var jQuery = require("jquery")(window); - // See ticket #14549 for more info. - module.exports = global.document ? - factory( global, true ) : - function( w ) { - if ( !w.document ) { - throw new Error( "jQuery requires a window with a document" ); - } - return factory( w ); - }; - } else { - factory( global ); - } - -// Pass this if window is not defined yet -} )( typeof window !== "undefined" ? window : this, function( window, noGlobal ) { - -// Edge <= 12 - 13+, Firefox <=18 - 45+, IE 10 - 11, Safari 5.1 - 9+, iOS 6 - 9.1 -// throw exceptions when non-strict code (e.g., ASP.NET 4.5) accesses strict mode -// arguments.callee.caller (trac-13335). But as of jQuery 3.0 (2016), strict mode should be common -// enough that all such attempts are guarded in a try block. -"use strict"; - -var arr = []; - -var document = window.document; - -var getProto = Object.getPrototypeOf; - -var slice = arr.slice; - -var concat = arr.concat; - -var push = arr.push; - -var indexOf = arr.indexOf; - -var class2type = {}; - -var toString = class2type.toString; - -var hasOwn = class2type.hasOwnProperty; - -var fnToString = hasOwn.toString; - -var ObjectFunctionString = fnToString.call( Object ); - -var support = {}; - -var isFunction = function isFunction( obj ) { - - // Support: Chrome <=57, Firefox <=52 - // In some browsers, typeof returns "function" for HTML elements - // (i.e., `typeof document.createElement( "object" ) === "function"`). - // We don't want to classify *any* DOM node as a function. - return typeof obj === "function" && typeof obj.nodeType !== "number"; - }; - - -var isWindow = function isWindow( obj ) { - return obj != null && obj === obj.window; - }; - - - - - var preservedScriptAttributes = { - type: true, - src: true, - noModule: true - }; - - function DOMEval( code, doc, node ) { - doc = doc || document; - - var i, - script = doc.createElement( "script" ); - - script.text = code; - if ( node ) { - for ( i in preservedScriptAttributes ) { - if ( node[ i ] ) { - script[ i ] = node[ i ]; - } - } - } - doc.head.appendChild( script ).parentNode.removeChild( script ); - } - - -function toType( obj ) { - if ( obj == null ) { - return obj + ""; - } - - // Support: Android <=2.3 only (functionish RegExp) - return typeof obj === "object" || typeof obj === "function" ? - class2type[ toString.call( obj ) ] || "object" : - typeof obj; -} -/* global Symbol */ -// Defining this global in .eslintrc.json would create a danger of using the global -// unguarded in another place, it seems safer to define global only for this module - - - -var - version = "3.3.1", - - // Define a local copy of jQuery - jQuery = function( selector, context ) { - - // The jQuery object is actually just the init constructor 'enhanced' - // Need init if jQuery is called (just allow error to be thrown if not included) - return new jQuery.fn.init( selector, context ); - }, - - // Support: Android <=4.0 only - // Make sure we trim BOM and NBSP - rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g; - -jQuery.fn = jQuery.prototype = { - - // The current version of jQuery being used - jquery: version, - - constructor: jQuery, - - // The default length of a jQuery object is 0 - length: 0, - - toArray: function() { - return slice.call( this ); - }, - - // Get the Nth element in the matched element set OR - // Get the whole matched element set as a clean array - get: function( num ) { - - // Return all the elements in a clean array - if ( num == null ) { - return slice.call( this ); - } - - // Return just the one element from the set - return num < 0 ? this[ num + this.length ] : this[ num ]; - }, - - // Take an array of elements and push it onto the stack - // (returning the new matched element set) - pushStack: function( elems ) { - - // Build a new jQuery matched element set - var ret = jQuery.merge( this.constructor(), elems ); - - // Add the old object onto the stack (as a reference) - ret.prevObject = this; - - // Return the newly-formed element set - return ret; - }, - - // Execute a callback for every element in the matched set. - each: function( callback ) { - return jQuery.each( this, callback ); - }, - - map: function( callback ) { - return this.pushStack( jQuery.map( this, function( elem, i ) { - return callback.call( elem, i, elem ); - } ) ); - }, - - slice: function() { - return this.pushStack( slice.apply( this, arguments ) ); - }, - - first: function() { - return this.eq( 0 ); - }, - - last: function() { - return this.eq( -1 ); - }, - - eq: function( i ) { - var len = this.length, - j = +i + ( i < 0 ? len : 0 ); - return this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] ); - }, - - end: function() { - return this.prevObject || this.constructor(); - }, - - // For internal use only. - // Behaves like an Array's method, not like a jQuery method. - push: push, - sort: arr.sort, - splice: arr.splice -}; - -jQuery.extend = jQuery.fn.extend = function() { - var options, name, src, copy, copyIsArray, clone, - target = arguments[ 0 ] || {}, - i = 1, - length = arguments.length, - deep = false; - - // Handle a deep copy situation - if ( typeof target === "boolean" ) { - deep = target; - - // Skip the boolean and the target - target = arguments[ i ] || {}; - i++; - } - - // Handle case when target is a string or something (possible in deep copy) - if ( typeof target !== "object" && !isFunction( target ) ) { - target = {}; - } - - // Extend jQuery itself if only one argument is passed - if ( i === length ) { - target = this; - i--; - } - - for ( ; i < length; i++ ) { - - // Only deal with non-null/undefined values - if ( ( options = arguments[ i ] ) != null ) { - - // Extend the base object - for ( name in options ) { - src = target[ name ]; - copy = options[ name ]; - - // Prevent never-ending loop - if ( target === copy ) { - continue; - } - - // Recurse if we're merging plain objects or arrays - if ( deep && copy && ( jQuery.isPlainObject( copy ) || - ( copyIsArray = Array.isArray( copy ) ) ) ) { - - if ( copyIsArray ) { - copyIsArray = false; - clone = src && Array.isArray( src ) ? src : []; - - } else { - clone = src && jQuery.isPlainObject( src ) ? src : {}; - } - - // Never move original objects, clone them - target[ name ] = jQuery.extend( deep, clone, copy ); - - // Don't bring in undefined values - } else if ( copy !== undefined ) { - target[ name ] = copy; - } - } - } - } - - // Return the modified object - return target; -}; - -jQuery.extend( { - - // Unique for each copy of jQuery on the page - expando: "jQuery" + ( version + Math.random() ).replace( /\D/g, "" ), - - // Assume jQuery is ready without the ready module - isReady: true, - - error: function( msg ) { - throw new Error( msg ); - }, - - noop: function() {}, - - isPlainObject: function( obj ) { - var proto, Ctor; - - // Detect obvious negatives - // Use toString instead of jQuery.type to catch host objects - if ( !obj || toString.call( obj ) !== "[object Object]" ) { - return false; - } - - proto = getProto( obj ); - - // Objects with no prototype (e.g., `Object.create( null )`) are plain - if ( !proto ) { - return true; - } - - // Objects with prototype are plain iff they were constructed by a global Object function - Ctor = hasOwn.call( proto, "constructor" ) && proto.constructor; - return typeof Ctor === "function" && fnToString.call( Ctor ) === ObjectFunctionString; - }, - - isEmptyObject: function( obj ) { - - /* eslint-disable no-unused-vars */ - // See https://github.com/eslint/eslint/issues/6125 - var name; - - for ( name in obj ) { - return false; - } - return true; - }, - - // Evaluates a script in a global context - globalEval: function( code ) { - DOMEval( code ); - }, - - each: function( obj, callback ) { - var length, i = 0; - - if ( isArrayLike( obj ) ) { - length = obj.length; - for ( ; i < length; i++ ) { - if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) { - break; - } - } - } else { - for ( i in obj ) { - if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) { - break; - } - } - } - - return obj; - }, - - // Support: Android <=4.0 only - trim: function( text ) { - return text == null ? - "" : - ( text + "" ).replace( rtrim, "" ); - }, - - // results is for internal usage only - makeArray: function( arr, results ) { - var ret = results || []; - - if ( arr != null ) { - if ( isArrayLike( Object( arr ) ) ) { - jQuery.merge( ret, - typeof arr === "string" ? - [ arr ] : arr - ); - } else { - push.call( ret, arr ); - } - } - - return ret; - }, - - inArray: function( elem, arr, i ) { - return arr == null ? -1 : indexOf.call( arr, elem, i ); - }, - - // Support: Android <=4.0 only, PhantomJS 1 only - // push.apply(_, arraylike) throws on ancient WebKit - merge: function( first, second ) { - var len = +second.length, - j = 0, - i = first.length; - - for ( ; j < len; j++ ) { - first[ i++ ] = second[ j ]; - } - - first.length = i; - - return first; - }, - - grep: function( elems, callback, invert ) { - var callbackInverse, - matches = [], - i = 0, - length = elems.length, - callbackExpect = !invert; - - // Go through the array, only saving the items - // that pass the validator function - for ( ; i < length; i++ ) { - callbackInverse = !callback( elems[ i ], i ); - if ( callbackInverse !== callbackExpect ) { - matches.push( elems[ i ] ); - } - } - - return matches; - }, - - // arg is for internal usage only - map: function( elems, callback, arg ) { - var length, value, - i = 0, - ret = []; - - // Go through the array, translating each of the items to their new values - if ( isArrayLike( elems ) ) { - length = elems.length; - for ( ; i < length; i++ ) { - value = callback( elems[ i ], i, arg ); - - if ( value != null ) { - ret.push( value ); - } - } - - // Go through every key on the object, - } else { - for ( i in elems ) { - value = callback( elems[ i ], i, arg ); - - if ( value != null ) { - ret.push( value ); - } - } - } - - // Flatten any nested arrays - return concat.apply( [], ret ); - }, - - // A global GUID counter for objects - guid: 1, - - // jQuery.support is not used in Core but other projects attach their - // properties to it so it needs to exist. - support: support -} ); - -if ( typeof Symbol === "function" ) { - jQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ]; -} - -// Populate the class2type map -jQuery.each( "Boolean Number String Function Array Date RegExp Object Error Symbol".split( " " ), -function( i, name ) { - class2type[ "[object " + name + "]" ] = name.toLowerCase(); -} ); - -function isArrayLike( obj ) { - - // Support: real iOS 8.2 only (not reproducible in simulator) - // `in` check used to prevent JIT error (gh-2145) - // hasOwn isn't used here due to false negatives - // regarding Nodelist length in IE - var length = !!obj && "length" in obj && obj.length, - type = toType( obj ); - - if ( isFunction( obj ) || isWindow( obj ) ) { - return false; - } - - return type === "array" || length === 0 || - typeof length === "number" && length > 0 && ( length - 1 ) in obj; -} -var Sizzle = -/*! +!function(t,n){"use strict";"object"==typeof e&&"object"==typeof e.exports?e.exports=t.document?n(t,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return n(e)}:n(t)}("undefined"!=typeof window?window:this,function(n,r){"use strict";function o(e,t,n){t=t||ue;var i,a=t.createElement("script");if(a.text=e,n)for(i in ke)n[i]&&(a[i]=n[i]);t.head.appendChild(a).parentNode.removeChild(a)}function s(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?_e[ge.call(e)]||"object":typeof e}function d(e){var t=!!e&&"length"in e&&e.length,n=s(e);return!Le(e)&&!De(e)&&("array"===n||0===t||"number"==typeof t&&t>0&&t-1 in e)}function l(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}function u(e,t,n){return Le(t)?we.grep(e,function(e,i){return!!t.call(e,i,e)!==n}):t.nodeType?we.grep(e,function(e){return e===t!==n}):"string"!=typeof t?we.grep(e,function(e){return fe.call(t,e)>-1!==n}):we.filter(t,e,n)}function c(e,t){for(;(e=e[t])&&1!==e.nodeType;);return e}function h(e){var t={};return we.each(e.match(Ae)||[],function(e,n){t[n]=!0}),t}function m(e){return e}function p(e){throw e}function f(e,t,n,i){var a;try{e&&Le(a=e.promise)?a.call(e).done(t).fail(n):e&&Le(a=e.then)?a.call(e,t,n):t.apply(void 0,[e].slice(i))}catch(e){n.apply(void 0,[e])}}function _(){ue.removeEventListener("DOMContentLoaded",_),n.removeEventListener("load",_),we.ready()}function g(e,t){return t.toUpperCase()}function y(e){return e.replace(Fe,"ms-").replace(ze,g)}function v(){this.expando=we.expando+v.uid++}function M(e){return"true"===e||"false"!==e&&("null"===e?null:e===+e+""?+e:Ve.test(e)?JSON.parse(e):e)}function b(e,t,n){var i;if(void 0===n&&1===e.nodeType)if(i="data-"+t.replace($e,"-$&").toLowerCase(),"string"==typeof(n=e.getAttribute(i))){try{n=M(n)}catch(e){}Je.set(e,t,n)}else n=void 0;return n}function L(e,t,n,i){var a,r,o=20,s=i?function(){return i.cur()}:function(){return we.css(e,t,"")},d=s(),l=n&&n[3]||(we.cssNumber[t]?"":"px"),u=(we.cssNumber[t]||"px"!==l&&+d)&&Ge.exec(we.css(e,t));if(u&&u[3]!==l){for(d/=2,l=l||u[3],u=+d||1;o--;)we.style(e,t,u+l),(1-r)*(1-(r=s()/d||.5))<=0&&(o=0),u/=r;u*=2,we.style(e,t,u+l),n=n||[]}return n&&(u=+u||+d||0,a=n[1]?u+(n[1]+1)*n[2]:+n[2],i&&(i.unit=l,i.start=u,i.end=a)),a}function D(e){var t,n=e.ownerDocument,i=e.nodeName,a=Xe[i];return a||(t=n.body.appendChild(n.createElement(i)),a=we.css(t,"display"),t.parentNode.removeChild(t),"none"===a&&(a="block"),Xe[i]=a,a)}function k(e,t){for(var n,i,a=[],r=0,o=e.length;r-1)a&&a.push(r);else if(u=we.contains(r.ownerDocument,r),o=w(h.appendChild(r),"script"),u&&T(o),n)for(c=0;r=o[c++];)tt.test(r.type||"")&&n.push(r);return h}function Y(){return!0}function S(){return!1}function H(){try{return ue.activeElement}catch(e){}}function C(e,t,n,i,a,r){var o,s;if("object"==typeof t){"string"!=typeof n&&(i=i||n,n=void 0);for(s in t)C(e,s,n,i,t[s],r);return e}if(null==i&&null==a?(a=n,i=n=void 0):null==a&&("string"==typeof n?(a=i,i=void 0):(a=i,i=n,n=void 0)),!1===a)a=S;else if(!a)return e;return 1===r&&(o=a,a=function(e){return we().off(e),o.apply(this,arguments)},a.guid=o.guid||(o.guid=we.guid++)),e.each(function(){we.event.add(this,t,a,i,n)})}function E(e,t){return l(e,"table")&&l(11!==t.nodeType?t:t.firstChild,"tr")?we(e).children("tbody")[0]||e:e}function P(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function j(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function O(e,t){var n,i,a,r,o,s,d,l;if(1===t.nodeType){if(Be.hasData(e)&&(r=Be.access(e),o=Be.set(t,r),l=r.events)){delete o.handle,o.events={};for(a in l)for(n=0,i=l[a].length;n1&&"string"==typeof p&&!be.checkClone&&ut.test(p))return e.each(function(a){var r=e.eq(a);f&&(t[0]=p.call(this,a,r.html())),I(r,t,n,i)});if(h&&(a=x(t,e[0].ownerDocument,!1,e,i),r=a.firstChild,1===a.childNodes.length&&(a=r),r||i)){for(s=we.map(w(a,"script"),P),d=s.length;c=0&&(d+=Math.max(0,Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-r-d-s-.5))),d}function V(e,t,n){var i=mt(e),a=N(e,t,i),r="border-box"===we.css(e,"boxSizing",!1,i),o=r;if(ht.test(a)){if(!n)return a;a="auto"}return o=o&&(be.boxSizingReliable()||a===e.style[t]),("auto"===a||!parseFloat(a)&&"inline"===we.css(e,"display",!1,i))&&(a=e["offset"+t[0].toUpperCase()+t.slice(1)],o=!0),(a=parseFloat(a)||0)+J(e,t,n||(r?"border":"content"),o,i,a)+"px"}function $(e,t,n,i,a){return new $.prototype.init(e,t,n,i,a)}function U(){Lt&&(!1===ue.hidden&&n.requestAnimationFrame?n.requestAnimationFrame(U):n.setTimeout(U,we.fx.interval),we.fx.tick())}function G(){return n.setTimeout(function(){bt=void 0}),bt=Date.now()}function q(e,t){var n,i=0,a={height:e};for(t=t?1:0;i<4;i+=2-t)n=qe[i],a["margin"+n]=a["padding"+n]=e;return t&&(a.opacity=a.width=e),a}function K(e,t,n){for(var i,a=(Q.tweeners[t]||[]).concat(Q.tweeners["*"]),r=0,o=a.length;r=0&&n+~]|" + whitespace + ")" + whitespace + "*" ), - - rattributeQuotes = new RegExp( "=" + whitespace + "*([^\\]'\"]*?)" + whitespace + "*\\]", "g" ), - - rpseudo = new RegExp( pseudos ), - ridentifier = new RegExp( "^" + identifier + "$" ), - - matchExpr = { - "ID": new RegExp( "^#(" + identifier + ")" ), - "CLASS": new RegExp( "^\\.(" + identifier + ")" ), - "TAG": new RegExp( "^(" + identifier + "|[*])" ), - "ATTR": new RegExp( "^" + attributes ), - "PSEUDO": new RegExp( "^" + pseudos ), - "CHILD": new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + whitespace + - "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + whitespace + - "*(\\d+)|))" + whitespace + "*\\)|)", "i" ), - "bool": new RegExp( "^(?:" + booleans + ")$", "i" ), - // For use in libraries implementing .is() - // We use this for POS matching in `select` - "needsContext": new RegExp( "^" + whitespace + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + - whitespace + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" ) - }, - - rinputs = /^(?:input|select|textarea|button)$/i, - rheader = /^h\d$/i, - - rnative = /^[^{]+\{\s*\[native \w/, - - // Easily-parseable/retrievable ID or TAG or CLASS selectors - rquickExpr = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, - - rsibling = /[+~]/, - - // CSS escapes - // http://www.w3.org/TR/CSS21/syndata.html#escaped-characters - runescape = new RegExp( "\\\\([\\da-f]{1,6}" + whitespace + "?|(" + whitespace + ")|.)", "ig" ), - funescape = function( _, escaped, escapedWhitespace ) { - var high = "0x" + escaped - 0x10000; - // NaN means non-codepoint - // Support: Firefox<24 - // Workaround erroneous numeric interpretation of +"0x" - return high !== high || escapedWhitespace ? - escaped : - high < 0 ? - // BMP codepoint - String.fromCharCode( high + 0x10000 ) : - // Supplemental Plane codepoint (surrogate pair) - String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 ); - }, - - // CSS string/identifier serialization - // https://drafts.csswg.org/cssom/#common-serializing-idioms - rcssescape = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g, - fcssescape = function( ch, asCodePoint ) { - if ( asCodePoint ) { - - // U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER - if ( ch === "\0" ) { - return "\uFFFD"; - } - - // Control characters and (dependent upon position) numbers get escaped as code points - return ch.slice( 0, -1 ) + "\\" + ch.charCodeAt( ch.length - 1 ).toString( 16 ) + " "; - } - - // Other potentially-special ASCII characters get backslash-escaped - return "\\" + ch; - }, - - // Used for iframes - // See setDocument() - // Removing the function wrapper causes a "Permission Denied" - // error in IE - unloadHandler = function() { - setDocument(); - }, - - disabledAncestor = addCombinator( - function( elem ) { - return elem.disabled === true && ("form" in elem || "label" in elem); - }, - { dir: "parentNode", next: "legend" } - ); - -// Optimize for push.apply( _, NodeList ) -try { - push.apply( - (arr = slice.call( preferredDoc.childNodes )), - preferredDoc.childNodes - ); - // Support: Android<4.0 - // Detect silently failing push.apply - arr[ preferredDoc.childNodes.length ].nodeType; -} catch ( e ) { - push = { apply: arr.length ? - - // Leverage slice if possible - function( target, els ) { - push_native.apply( target, slice.call(els) ); - } : - - // Support: IE<9 - // Otherwise append directly - function( target, els ) { - var j = target.length, - i = 0; - // Can't trust NodeList.length - while ( (target[j++] = els[i++]) ) {} - target.length = j - 1; - } - }; -} - -function Sizzle( selector, context, results, seed ) { - var m, i, elem, nid, match, groups, newSelector, - newContext = context && context.ownerDocument, - - // nodeType defaults to 9, since context defaults to document - nodeType = context ? context.nodeType : 9; - - results = results || []; - - // Return early from calls with invalid selector or context - if ( typeof selector !== "string" || !selector || - nodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) { - - return results; - } - - // Try to shortcut find operations (as opposed to filters) in HTML documents - if ( !seed ) { - - if ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) { - setDocument( context ); - } - context = context || document; - - if ( documentIsHTML ) { - - // If the selector is sufficiently simple, try using a "get*By*" DOM method - // (excepting DocumentFragment context, where the methods don't exist) - if ( nodeType !== 11 && (match = rquickExpr.exec( selector )) ) { - - // ID selector - if ( (m = match[1]) ) { - - // Document context - if ( nodeType === 9 ) { - if ( (elem = context.getElementById( m )) ) { - - // Support: IE, Opera, Webkit - // TODO: identify versions - // getElementById can match elements by name instead of ID - if ( elem.id === m ) { - results.push( elem ); - return results; - } - } else { - return results; - } - - // Element context - } else { - - // Support: IE, Opera, Webkit - // TODO: identify versions - // getElementById can match elements by name instead of ID - if ( newContext && (elem = newContext.getElementById( m )) && - contains( context, elem ) && - elem.id === m ) { - - results.push( elem ); - return results; - } - } - - // Type selector - } else if ( match[2] ) { - push.apply( results, context.getElementsByTagName( selector ) ); - return results; - - // Class selector - } else if ( (m = match[3]) && support.getElementsByClassName && - context.getElementsByClassName ) { - - push.apply( results, context.getElementsByClassName( m ) ); - return results; - } - } - - // Take advantage of querySelectorAll - if ( support.qsa && - !compilerCache[ selector + " " ] && - (!rbuggyQSA || !rbuggyQSA.test( selector )) ) { - - if ( nodeType !== 1 ) { - newContext = context; - newSelector = selector; - - // qSA looks outside Element context, which is not what we want - // Thanks to Andrew Dupont for this workaround technique - // Support: IE <=8 - // Exclude object elements - } else if ( context.nodeName.toLowerCase() !== "object" ) { - - // Capture the context ID, setting it first if necessary - if ( (nid = context.getAttribute( "id" )) ) { - nid = nid.replace( rcssescape, fcssescape ); - } else { - context.setAttribute( "id", (nid = expando) ); - } - - // Prefix every selector in the list - groups = tokenize( selector ); - i = groups.length; - while ( i-- ) { - groups[i] = "#" + nid + " " + toSelector( groups[i] ); - } - newSelector = groups.join( "," ); - - // Expand context for sibling selectors - newContext = rsibling.test( selector ) && testContext( context.parentNode ) || - context; - } - - if ( newSelector ) { - try { - push.apply( results, - newContext.querySelectorAll( newSelector ) - ); - return results; - } catch ( qsaError ) { - } finally { - if ( nid === expando ) { - context.removeAttribute( "id" ); - } - } - } - } - } - } - - // All others - return select( selector.replace( rtrim, "$1" ), context, results, seed ); -} - -/** - * Create key-value caches of limited size - * @returns {function(string, object)} Returns the Object data after storing it on itself with - * property name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength) - * deleting the oldest entry - */ -function createCache() { - var keys = []; - - function cache( key, value ) { - // Use (key + " ") to avoid collision with native prototype properties (see Issue #157) - if ( keys.push( key + " " ) > Expr.cacheLength ) { - // Only keep the most recent entries - delete cache[ keys.shift() ]; - } - return (cache[ key + " " ] = value); - } - return cache; -} - -/** - * Mark a function for special use by Sizzle - * @param {Function} fn The function to mark - */ -function markFunction( fn ) { - fn[ expando ] = true; - return fn; -} - -/** - * Support testing using an element - * @param {Function} fn Passed the created element and returns a boolean result - */ -function assert( fn ) { - var el = document.createElement("fieldset"); - - try { - return !!fn( el ); - } catch (e) { - return false; - } finally { - // Remove from its parent by default - if ( el.parentNode ) { - el.parentNode.removeChild( el ); - } - // release memory in IE - el = null; - } -} - -/** - * Adds the same handler for all of the specified attrs - * @param {String} attrs Pipe-separated list of attributes - * @param {Function} handler The method that will be applied - */ -function addHandle( attrs, handler ) { - var arr = attrs.split("|"), - i = arr.length; - - while ( i-- ) { - Expr.attrHandle[ arr[i] ] = handler; - } -} - -/** - * Checks document order of two siblings - * @param {Element} a - * @param {Element} b - * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b - */ -function siblingCheck( a, b ) { - var cur = b && a, - diff = cur && a.nodeType === 1 && b.nodeType === 1 && - a.sourceIndex - b.sourceIndex; - - // Use IE sourceIndex if available on both nodes - if ( diff ) { - return diff; - } - - // Check if b follows a - if ( cur ) { - while ( (cur = cur.nextSibling) ) { - if ( cur === b ) { - return -1; - } - } - } - - return a ? 1 : -1; -} - -/** - * Returns a function to use in pseudos for input types - * @param {String} type - */ -function createInputPseudo( type ) { - return function( elem ) { - var name = elem.nodeName.toLowerCase(); - return name === "input" && elem.type === type; - }; -} - -/** - * Returns a function to use in pseudos for buttons - * @param {String} type - */ -function createButtonPseudo( type ) { - return function( elem ) { - var name = elem.nodeName.toLowerCase(); - return (name === "input" || name === "button") && elem.type === type; - }; -} - -/** - * Returns a function to use in pseudos for :enabled/:disabled - * @param {Boolean} disabled true for :disabled; false for :enabled - */ -function createDisabledPseudo( disabled ) { - - // Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable - return function( elem ) { - - // Only certain elements can match :enabled or :disabled - // https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled - // https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled - if ( "form" in elem ) { - - // Check for inherited disabledness on relevant non-disabled elements: - // * listed form-associated elements in a disabled fieldset - // https://html.spec.whatwg.org/multipage/forms.html#category-listed - // https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled - // * option elements in a disabled optgroup - // https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled - // All such elements have a "form" property. - if ( elem.parentNode && elem.disabled === false ) { - - // Option elements defer to a parent optgroup if present - if ( "label" in elem ) { - if ( "label" in elem.parentNode ) { - return elem.parentNode.disabled === disabled; - } else { - return elem.disabled === disabled; - } - } - - // Support: IE 6 - 11 - // Use the isDisabled shortcut property to check for disabled fieldset ancestors - return elem.isDisabled === disabled || - - // Where there is no isDisabled, check manually - /* jshint -W018 */ - elem.isDisabled !== !disabled && - disabledAncestor( elem ) === disabled; - } - - return elem.disabled === disabled; - - // Try to winnow out elements that can't be disabled before trusting the disabled property. - // Some victims get caught in our net (label, legend, menu, track), but it shouldn't - // even exist on them, let alone have a boolean value. - } else if ( "label" in elem ) { - return elem.disabled === disabled; - } - - // Remaining elements are neither :enabled nor :disabled - return false; - }; -} - -/** - * Returns a function to use in pseudos for positionals - * @param {Function} fn - */ -function createPositionalPseudo( fn ) { - return markFunction(function( argument ) { - argument = +argument; - return markFunction(function( seed, matches ) { - var j, - matchIndexes = fn( [], seed.length, argument ), - i = matchIndexes.length; - - // Match elements found at the specified indexes - while ( i-- ) { - if ( seed[ (j = matchIndexes[i]) ] ) { - seed[j] = !(matches[j] = seed[j]); - } - } - }); - }); -} - -/** - * Checks a node for validity as a Sizzle context - * @param {Element|Object=} context - * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value - */ -function testContext( context ) { - return context && typeof context.getElementsByTagName !== "undefined" && context; -} - -// Expose support vars for convenience -support = Sizzle.support = {}; - -/** - * Detects XML nodes - * @param {Element|Object} elem An element or a document - * @returns {Boolean} True iff elem is a non-HTML XML node - */ -isXML = Sizzle.isXML = function( elem ) { - // documentElement is verified for cases where it doesn't yet exist - // (such as loading iframes in IE - #4833) - var documentElement = elem && (elem.ownerDocument || elem).documentElement; - return documentElement ? documentElement.nodeName !== "HTML" : false; -}; - -/** - * Sets document-related variables once based on the current document - * @param {Element|Object} [doc] An element or document object to use to set the document - * @returns {Object} Returns the current document - */ -setDocument = Sizzle.setDocument = function( node ) { - var hasCompare, subWindow, - doc = node ? node.ownerDocument || node : preferredDoc; - - // Return early if doc is invalid or already selected - if ( doc === document || doc.nodeType !== 9 || !doc.documentElement ) { - return document; - } - - // Update global variables - document = doc; - docElem = document.documentElement; - documentIsHTML = !isXML( document ); - - // Support: IE 9-11, Edge - // Accessing iframe documents after unload throws "permission denied" errors (jQuery #13936) - if ( preferredDoc !== document && - (subWindow = document.defaultView) && subWindow.top !== subWindow ) { - - // Support: IE 11, Edge - if ( subWindow.addEventListener ) { - subWindow.addEventListener( "unload", unloadHandler, false ); - - // Support: IE 9 - 10 only - } else if ( subWindow.attachEvent ) { - subWindow.attachEvent( "onunload", unloadHandler ); - } - } - - /* Attributes - ---------------------------------------------------------------------- */ - - // Support: IE<8 - // Verify that getAttribute really returns attributes and not properties - // (excepting IE8 booleans) - support.attributes = assert(function( el ) { - el.className = "i"; - return !el.getAttribute("className"); - }); - - /* getElement(s)By* - ---------------------------------------------------------------------- */ - - // Check if getElementsByTagName("*") returns only elements - support.getElementsByTagName = assert(function( el ) { - el.appendChild( document.createComment("") ); - return !el.getElementsByTagName("*").length; - }); - - // Support: IE<9 - support.getElementsByClassName = rnative.test( document.getElementsByClassName ); - - // Support: IE<10 - // Check if getElementById returns elements by name - // The broken getElementById methods don't pick up programmatically-set names, - // so use a roundabout getElementsByName test - support.getById = assert(function( el ) { - docElem.appendChild( el ).id = expando; - return !document.getElementsByName || !document.getElementsByName( expando ).length; - }); - - // ID filter and find - if ( support.getById ) { - Expr.filter["ID"] = function( id ) { - var attrId = id.replace( runescape, funescape ); - return function( elem ) { - return elem.getAttribute("id") === attrId; - }; - }; - Expr.find["ID"] = function( id, context ) { - if ( typeof context.getElementById !== "undefined" && documentIsHTML ) { - var elem = context.getElementById( id ); - return elem ? [ elem ] : []; - } - }; - } else { - Expr.filter["ID"] = function( id ) { - var attrId = id.replace( runescape, funescape ); - return function( elem ) { - var node = typeof elem.getAttributeNode !== "undefined" && - elem.getAttributeNode("id"); - return node && node.value === attrId; - }; - }; - - // Support: IE 6 - 7 only - // getElementById is not reliable as a find shortcut - Expr.find["ID"] = function( id, context ) { - if ( typeof context.getElementById !== "undefined" && documentIsHTML ) { - var node, i, elems, - elem = context.getElementById( id ); - - if ( elem ) { - - // Verify the id attribute - node = elem.getAttributeNode("id"); - if ( node && node.value === id ) { - return [ elem ]; - } - - // Fall back on getElementsByName - elems = context.getElementsByName( id ); - i = 0; - while ( (elem = elems[i++]) ) { - node = elem.getAttributeNode("id"); - if ( node && node.value === id ) { - return [ elem ]; - } - } - } - - return []; - } - }; - } - - // Tag - Expr.find["TAG"] = support.getElementsByTagName ? - function( tag, context ) { - if ( typeof context.getElementsByTagName !== "undefined" ) { - return context.getElementsByTagName( tag ); - - // DocumentFragment nodes don't have gEBTN - } else if ( support.qsa ) { - return context.querySelectorAll( tag ); - } - } : - - function( tag, context ) { - var elem, - tmp = [], - i = 0, - // By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too - results = context.getElementsByTagName( tag ); - - // Filter out possible comments - if ( tag === "*" ) { - while ( (elem = results[i++]) ) { - if ( elem.nodeType === 1 ) { - tmp.push( elem ); - } - } - - return tmp; - } - return results; - }; - - // Class - Expr.find["CLASS"] = support.getElementsByClassName && function( className, context ) { - if ( typeof context.getElementsByClassName !== "undefined" && documentIsHTML ) { - return context.getElementsByClassName( className ); - } - }; - - /* QSA/matchesSelector - ---------------------------------------------------------------------- */ - - // QSA and matchesSelector support - - // matchesSelector(:active) reports false when true (IE9/Opera 11.5) - rbuggyMatches = []; - - // qSa(:focus) reports false when true (Chrome 21) - // We allow this because of a bug in IE8/9 that throws an error - // whenever `document.activeElement` is accessed on an iframe - // So, we allow :focus to pass through QSA all the time to avoid the IE error - // See https://bugs.jquery.com/ticket/13378 - rbuggyQSA = []; - - if ( (support.qsa = rnative.test( document.querySelectorAll )) ) { - // Build QSA regex - // Regex strategy adopted from Diego Perini - assert(function( el ) { - // Select is set to empty string on purpose - // This is to test IE's treatment of not explicitly - // setting a boolean content attribute, - // since its presence should be enough - // https://bugs.jquery.com/ticket/12359 - docElem.appendChild( el ).innerHTML = "" + - ""; - - // Support: IE8, Opera 11-12.16 - // Nothing should be selected when empty strings follow ^= or $= or *= - // The test attribute must be unknown in Opera but "safe" for WinRT - // https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section - if ( el.querySelectorAll("[msallowcapture^='']").length ) { - rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:''|\"\")" ); - } - - // Support: IE8 - // Boolean attributes and "value" are not treated correctly - if ( !el.querySelectorAll("[selected]").length ) { - rbuggyQSA.push( "\\[" + whitespace + "*(?:value|" + booleans + ")" ); - } - - // Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+ - if ( !el.querySelectorAll( "[id~=" + expando + "-]" ).length ) { - rbuggyQSA.push("~="); - } - - // Webkit/Opera - :checked should return selected option elements - // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked - // IE8 throws error here and will not see later tests - if ( !el.querySelectorAll(":checked").length ) { - rbuggyQSA.push(":checked"); - } - - // Support: Safari 8+, iOS 8+ - // https://bugs.webkit.org/show_bug.cgi?id=136851 - // In-page `selector#id sibling-combinator selector` fails - if ( !el.querySelectorAll( "a#" + expando + "+*" ).length ) { - rbuggyQSA.push(".#.+[+~]"); - } - }); - - assert(function( el ) { - el.innerHTML = "" + - ""; - - // Support: Windows 8 Native Apps - // The type and name attributes are restricted during .innerHTML assignment - var input = document.createElement("input"); - input.setAttribute( "type", "hidden" ); - el.appendChild( input ).setAttribute( "name", "D" ); - - // Support: IE8 - // Enforce case-sensitivity of name attribute - if ( el.querySelectorAll("[name=d]").length ) { - rbuggyQSA.push( "name" + whitespace + "*[*^$|!~]?=" ); - } - - // FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled) - // IE8 throws error here and will not see later tests - if ( el.querySelectorAll(":enabled").length !== 2 ) { - rbuggyQSA.push( ":enabled", ":disabled" ); - } - - // Support: IE9-11+ - // IE's :disabled selector does not pick up the children of disabled fieldsets - docElem.appendChild( el ).disabled = true; - if ( el.querySelectorAll(":disabled").length !== 2 ) { - rbuggyQSA.push( ":enabled", ":disabled" ); - } - - // Opera 10-11 does not throw on post-comma invalid pseudos - el.querySelectorAll("*,:x"); - rbuggyQSA.push(",.*:"); - }); - } - - if ( (support.matchesSelector = rnative.test( (matches = docElem.matches || - docElem.webkitMatchesSelector || - docElem.mozMatchesSelector || - docElem.oMatchesSelector || - docElem.msMatchesSelector) )) ) { - - assert(function( el ) { - // Check to see if it's possible to do matchesSelector - // on a disconnected node (IE 9) - support.disconnectedMatch = matches.call( el, "*" ); - - // This should fail with an exception - // Gecko does not error, returns false instead - matches.call( el, "[s!='']:x" ); - rbuggyMatches.push( "!=", pseudos ); - }); - } - - rbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join("|") ); - rbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join("|") ); - - /* Contains - ---------------------------------------------------------------------- */ - hasCompare = rnative.test( docElem.compareDocumentPosition ); - - // Element contains another - // Purposefully self-exclusive - // As in, an element does not contain itself - contains = hasCompare || rnative.test( docElem.contains ) ? - function( a, b ) { - var adown = a.nodeType === 9 ? a.documentElement : a, - bup = b && b.parentNode; - return a === bup || !!( bup && bup.nodeType === 1 && ( - adown.contains ? - adown.contains( bup ) : - a.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16 - )); - } : - function( a, b ) { - if ( b ) { - while ( (b = b.parentNode) ) { - if ( b === a ) { - return true; - } - } - } - return false; - }; - - /* Sorting - ---------------------------------------------------------------------- */ - - // Document order sorting - sortOrder = hasCompare ? - function( a, b ) { - - // Flag for duplicate removal - if ( a === b ) { - hasDuplicate = true; - return 0; - } - - // Sort on method existence if only one input has compareDocumentPosition - var compare = !a.compareDocumentPosition - !b.compareDocumentPosition; - if ( compare ) { - return compare; - } - - // Calculate position if both inputs belong to the same document - compare = ( a.ownerDocument || a ) === ( b.ownerDocument || b ) ? - a.compareDocumentPosition( b ) : - - // Otherwise we know they are disconnected - 1; - - // Disconnected nodes - if ( compare & 1 || - (!support.sortDetached && b.compareDocumentPosition( a ) === compare) ) { - - // Choose the first element that is related to our preferred document - if ( a === document || a.ownerDocument === preferredDoc && contains(preferredDoc, a) ) { - return -1; - } - if ( b === document || b.ownerDocument === preferredDoc && contains(preferredDoc, b) ) { - return 1; - } - - // Maintain original order - return sortInput ? - ( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) : - 0; - } - - return compare & 4 ? -1 : 1; - } : - function( a, b ) { - // Exit early if the nodes are identical - if ( a === b ) { - hasDuplicate = true; - return 0; - } - - var cur, - i = 0, - aup = a.parentNode, - bup = b.parentNode, - ap = [ a ], - bp = [ b ]; - - // Parentless nodes are either documents or disconnected - if ( !aup || !bup ) { - return a === document ? -1 : - b === document ? 1 : - aup ? -1 : - bup ? 1 : - sortInput ? - ( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) : - 0; - - // If the nodes are siblings, we can do a quick check - } else if ( aup === bup ) { - return siblingCheck( a, b ); - } - - // Otherwise we need full lists of their ancestors for comparison - cur = a; - while ( (cur = cur.parentNode) ) { - ap.unshift( cur ); - } - cur = b; - while ( (cur = cur.parentNode) ) { - bp.unshift( cur ); - } - - // Walk down the tree looking for a discrepancy - while ( ap[i] === bp[i] ) { - i++; - } - - return i ? - // Do a sibling check if the nodes have a common ancestor - siblingCheck( ap[i], bp[i] ) : - - // Otherwise nodes in our document sort first - ap[i] === preferredDoc ? -1 : - bp[i] === preferredDoc ? 1 : - 0; - }; - - return document; -}; - -Sizzle.matches = function( expr, elements ) { - return Sizzle( expr, null, null, elements ); -}; - -Sizzle.matchesSelector = function( elem, expr ) { - // Set document vars if needed - if ( ( elem.ownerDocument || elem ) !== document ) { - setDocument( elem ); - } - - // Make sure that attribute selectors are quoted - expr = expr.replace( rattributeQuotes, "='$1']" ); - - if ( support.matchesSelector && documentIsHTML && - !compilerCache[ expr + " " ] && - ( !rbuggyMatches || !rbuggyMatches.test( expr ) ) && - ( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) { - - try { - var ret = matches.call( elem, expr ); - - // IE 9's matchesSelector returns false on disconnected nodes - if ( ret || support.disconnectedMatch || - // As well, disconnected nodes are said to be in a document - // fragment in IE 9 - elem.document && elem.document.nodeType !== 11 ) { - return ret; - } - } catch (e) {} - } - - return Sizzle( expr, document, null, [ elem ] ).length > 0; -}; - -Sizzle.contains = function( context, elem ) { - // Set document vars if needed - if ( ( context.ownerDocument || context ) !== document ) { - setDocument( context ); - } - return contains( context, elem ); -}; - -Sizzle.attr = function( elem, name ) { - // Set document vars if needed - if ( ( elem.ownerDocument || elem ) !== document ) { - setDocument( elem ); - } - - var fn = Expr.attrHandle[ name.toLowerCase() ], - // Don't get fooled by Object.prototype properties (jQuery #13807) - val = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ? - fn( elem, name, !documentIsHTML ) : - undefined; - - return val !== undefined ? - val : - support.attributes || !documentIsHTML ? - elem.getAttribute( name ) : - (val = elem.getAttributeNode(name)) && val.specified ? - val.value : - null; -}; - -Sizzle.escape = function( sel ) { - return (sel + "").replace( rcssescape, fcssescape ); -}; - -Sizzle.error = function( msg ) { - throw new Error( "Syntax error, unrecognized expression: " + msg ); -}; - -/** - * Document sorting and removing duplicates - * @param {ArrayLike} results - */ -Sizzle.uniqueSort = function( results ) { - var elem, - duplicates = [], - j = 0, - i = 0; - - // Unless we *know* we can detect duplicates, assume their presence - hasDuplicate = !support.detectDuplicates; - sortInput = !support.sortStable && results.slice( 0 ); - results.sort( sortOrder ); - - if ( hasDuplicate ) { - while ( (elem = results[i++]) ) { - if ( elem === results[ i ] ) { - j = duplicates.push( i ); - } - } - while ( j-- ) { - results.splice( duplicates[ j ], 1 ); - } - } - - // Clear input after sorting to release objects - // See https://github.com/jquery/sizzle/pull/225 - sortInput = null; - - return results; -}; - -/** - * Utility function for retrieving the text value of an array of DOM nodes - * @param {Array|Element} elem - */ -getText = Sizzle.getText = function( elem ) { - var node, - ret = "", - i = 0, - nodeType = elem.nodeType; - - if ( !nodeType ) { - // If no nodeType, this is expected to be an array - while ( (node = elem[i++]) ) { - // Do not traverse comment nodes - ret += getText( node ); - } - } else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) { - // Use textContent for elements - // innerText usage removed for consistency of new lines (jQuery #11153) - if ( typeof elem.textContent === "string" ) { - return elem.textContent; - } else { - // Traverse its children - for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { - ret += getText( elem ); - } - } - } else if ( nodeType === 3 || nodeType === 4 ) { - return elem.nodeValue; - } - // Do not include comment or processing instruction nodes - - return ret; -}; - -Expr = Sizzle.selectors = { - - // Can be adjusted by the user - cacheLength: 50, - - createPseudo: markFunction, - - match: matchExpr, - - attrHandle: {}, - - find: {}, - - relative: { - ">": { dir: "parentNode", first: true }, - " ": { dir: "parentNode" }, - "+": { dir: "previousSibling", first: true }, - "~": { dir: "previousSibling" } - }, - - preFilter: { - "ATTR": function( match ) { - match[1] = match[1].replace( runescape, funescape ); - - // Move the given value to match[3] whether quoted or unquoted - match[3] = ( match[3] || match[4] || match[5] || "" ).replace( runescape, funescape ); - - if ( match[2] === "~=" ) { - match[3] = " " + match[3] + " "; - } - - return match.slice( 0, 4 ); - }, - - "CHILD": function( match ) { - /* matches from matchExpr["CHILD"] - 1 type (only|nth|...) - 2 what (child|of-type) - 3 argument (even|odd|\d*|\d*n([+-]\d+)?|...) - 4 xn-component of xn+y argument ([+-]?\d*n|) - 5 sign of xn-component - 6 x of xn-component - 7 sign of y-component - 8 y of y-component - */ - match[1] = match[1].toLowerCase(); - - if ( match[1].slice( 0, 3 ) === "nth" ) { - // nth-* requires argument - if ( !match[3] ) { - Sizzle.error( match[0] ); - } - - // numeric x and y parameters for Expr.filter.CHILD - // remember that false/true cast respectively to 0/1 - match[4] = +( match[4] ? match[5] + (match[6] || 1) : 2 * ( match[3] === "even" || match[3] === "odd" ) ); - match[5] = +( ( match[7] + match[8] ) || match[3] === "odd" ); - - // other types prohibit arguments - } else if ( match[3] ) { - Sizzle.error( match[0] ); - } - - return match; - }, - - "PSEUDO": function( match ) { - var excess, - unquoted = !match[6] && match[2]; - - if ( matchExpr["CHILD"].test( match[0] ) ) { - return null; - } - - // Accept quoted arguments as-is - if ( match[3] ) { - match[2] = match[4] || match[5] || ""; - - // Strip excess characters from unquoted arguments - } else if ( unquoted && rpseudo.test( unquoted ) && - // Get excess from tokenize (recursively) - (excess = tokenize( unquoted, true )) && - // advance to the next closing parenthesis - (excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length) ) { - - // excess is a negative index - match[0] = match[0].slice( 0, excess ); - match[2] = unquoted.slice( 0, excess ); - } - - // Return only captures needed by the pseudo filter method (type and argument) - return match.slice( 0, 3 ); - } - }, - - filter: { - - "TAG": function( nodeNameSelector ) { - var nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase(); - return nodeNameSelector === "*" ? - function() { return true; } : - function( elem ) { - return elem.nodeName && elem.nodeName.toLowerCase() === nodeName; - }; - }, - - "CLASS": function( className ) { - var pattern = classCache[ className + " " ]; - - return pattern || - (pattern = new RegExp( "(^|" + whitespace + ")" + className + "(" + whitespace + "|$)" )) && - classCache( className, function( elem ) { - return pattern.test( typeof elem.className === "string" && elem.className || typeof elem.getAttribute !== "undefined" && elem.getAttribute("class") || "" ); - }); - }, - - "ATTR": function( name, operator, check ) { - return function( elem ) { - var result = Sizzle.attr( elem, name ); - - if ( result == null ) { - return operator === "!="; - } - if ( !operator ) { - return true; - } - - result += ""; - - return operator === "=" ? result === check : - operator === "!=" ? result !== check : - operator === "^=" ? check && result.indexOf( check ) === 0 : - operator === "*=" ? check && result.indexOf( check ) > -1 : - operator === "$=" ? check && result.slice( -check.length ) === check : - operator === "~=" ? ( " " + result.replace( rwhitespace, " " ) + " " ).indexOf( check ) > -1 : - operator === "|=" ? result === check || result.slice( 0, check.length + 1 ) === check + "-" : - false; - }; - }, - - "CHILD": function( type, what, argument, first, last ) { - var simple = type.slice( 0, 3 ) !== "nth", - forward = type.slice( -4 ) !== "last", - ofType = what === "of-type"; - - return first === 1 && last === 0 ? - - // Shortcut for :nth-*(n) - function( elem ) { - return !!elem.parentNode; - } : - - function( elem, context, xml ) { - var cache, uniqueCache, outerCache, node, nodeIndex, start, - dir = simple !== forward ? "nextSibling" : "previousSibling", - parent = elem.parentNode, - name = ofType && elem.nodeName.toLowerCase(), - useCache = !xml && !ofType, - diff = false; - - if ( parent ) { - - // :(first|last|only)-(child|of-type) - if ( simple ) { - while ( dir ) { - node = elem; - while ( (node = node[ dir ]) ) { - if ( ofType ? - node.nodeName.toLowerCase() === name : - node.nodeType === 1 ) { - - return false; - } - } - // Reverse direction for :only-* (if we haven't yet done so) - start = dir = type === "only" && !start && "nextSibling"; - } - return true; - } - - start = [ forward ? parent.firstChild : parent.lastChild ]; - - // non-xml :nth-child(...) stores cache data on `parent` - if ( forward && useCache ) { - - // Seek `elem` from a previously-cached index - - // ...in a gzip-friendly way - node = parent; - outerCache = node[ expando ] || (node[ expando ] = {}); - - // Support: IE <9 only - // Defend against cloned attroperties (jQuery gh-1709) - uniqueCache = outerCache[ node.uniqueID ] || - (outerCache[ node.uniqueID ] = {}); - - cache = uniqueCache[ type ] || []; - nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ]; - diff = nodeIndex && cache[ 2 ]; - node = nodeIndex && parent.childNodes[ nodeIndex ]; - - while ( (node = ++nodeIndex && node && node[ dir ] || - - // Fallback to seeking `elem` from the start - (diff = nodeIndex = 0) || start.pop()) ) { - - // When found, cache indexes on `parent` and break - if ( node.nodeType === 1 && ++diff && node === elem ) { - uniqueCache[ type ] = [ dirruns, nodeIndex, diff ]; - break; - } - } - - } else { - // Use previously-cached element index if available - if ( useCache ) { - // ...in a gzip-friendly way - node = elem; - outerCache = node[ expando ] || (node[ expando ] = {}); - - // Support: IE <9 only - // Defend against cloned attroperties (jQuery gh-1709) - uniqueCache = outerCache[ node.uniqueID ] || - (outerCache[ node.uniqueID ] = {}); - - cache = uniqueCache[ type ] || []; - nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ]; - diff = nodeIndex; - } - - // xml :nth-child(...) - // or :nth-last-child(...) or :nth(-last)?-of-type(...) - if ( diff === false ) { - // Use the same loop as above to seek `elem` from the start - while ( (node = ++nodeIndex && node && node[ dir ] || - (diff = nodeIndex = 0) || start.pop()) ) { - - if ( ( ofType ? - node.nodeName.toLowerCase() === name : - node.nodeType === 1 ) && - ++diff ) { - - // Cache the index of each encountered element - if ( useCache ) { - outerCache = node[ expando ] || (node[ expando ] = {}); - - // Support: IE <9 only - // Defend against cloned attroperties (jQuery gh-1709) - uniqueCache = outerCache[ node.uniqueID ] || - (outerCache[ node.uniqueID ] = {}); - - uniqueCache[ type ] = [ dirruns, diff ]; - } - - if ( node === elem ) { - break; - } - } - } - } - } - - // Incorporate the offset, then check against cycle size - diff -= last; - return diff === first || ( diff % first === 0 && diff / first >= 0 ); - } - }; - }, - - "PSEUDO": function( pseudo, argument ) { - // pseudo-class names are case-insensitive - // http://www.w3.org/TR/selectors/#pseudo-classes - // Prioritize by case sensitivity in case custom pseudos are added with uppercase letters - // Remember that setFilters inherits from pseudos - var args, - fn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] || - Sizzle.error( "unsupported pseudo: " + pseudo ); - - // The user may use createPseudo to indicate that - // arguments are needed to create the filter function - // just as Sizzle does - if ( fn[ expando ] ) { - return fn( argument ); - } - - // But maintain support for old signatures - if ( fn.length > 1 ) { - args = [ pseudo, pseudo, "", argument ]; - return Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ? - markFunction(function( seed, matches ) { - var idx, - matched = fn( seed, argument ), - i = matched.length; - while ( i-- ) { - idx = indexOf( seed, matched[i] ); - seed[ idx ] = !( matches[ idx ] = matched[i] ); - } - }) : - function( elem ) { - return fn( elem, 0, args ); - }; - } - - return fn; - } - }, - - pseudos: { - // Potentially complex pseudos - "not": markFunction(function( selector ) { - // Trim the selector passed to compile - // to avoid treating leading and trailing - // spaces as combinators - var input = [], - results = [], - matcher = compile( selector.replace( rtrim, "$1" ) ); - - return matcher[ expando ] ? - markFunction(function( seed, matches, context, xml ) { - var elem, - unmatched = matcher( seed, null, xml, [] ), - i = seed.length; - - // Match elements unmatched by `matcher` - while ( i-- ) { - if ( (elem = unmatched[i]) ) { - seed[i] = !(matches[i] = elem); - } - } - }) : - function( elem, context, xml ) { - input[0] = elem; - matcher( input, null, xml, results ); - // Don't keep the element (issue #299) - input[0] = null; - return !results.pop(); - }; - }), - - "has": markFunction(function( selector ) { - return function( elem ) { - return Sizzle( selector, elem ).length > 0; - }; - }), - - "contains": markFunction(function( text ) { - text = text.replace( runescape, funescape ); - return function( elem ) { - return ( elem.textContent || elem.innerText || getText( elem ) ).indexOf( text ) > -1; - }; - }), - - // "Whether an element is represented by a :lang() selector - // is based solely on the element's language value - // being equal to the identifier C, - // or beginning with the identifier C immediately followed by "-". - // The matching of C against the element's language value is performed case-insensitively. - // The identifier C does not have to be a valid language name." - // http://www.w3.org/TR/selectors/#lang-pseudo - "lang": markFunction( function( lang ) { - // lang value must be a valid identifier - if ( !ridentifier.test(lang || "") ) { - Sizzle.error( "unsupported lang: " + lang ); - } - lang = lang.replace( runescape, funescape ).toLowerCase(); - return function( elem ) { - var elemLang; - do { - if ( (elemLang = documentIsHTML ? - elem.lang : - elem.getAttribute("xml:lang") || elem.getAttribute("lang")) ) { - - elemLang = elemLang.toLowerCase(); - return elemLang === lang || elemLang.indexOf( lang + "-" ) === 0; - } - } while ( (elem = elem.parentNode) && elem.nodeType === 1 ); - return false; - }; - }), - - // Miscellaneous - "target": function( elem ) { - var hash = window.location && window.location.hash; - return hash && hash.slice( 1 ) === elem.id; - }, - - "root": function( elem ) { - return elem === docElem; - }, - - "focus": function( elem ) { - return elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex); - }, - - // Boolean properties - "enabled": createDisabledPseudo( false ), - "disabled": createDisabledPseudo( true ), - - "checked": function( elem ) { - // In CSS3, :checked should return both checked and selected elements - // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked - var nodeName = elem.nodeName.toLowerCase(); - return (nodeName === "input" && !!elem.checked) || (nodeName === "option" && !!elem.selected); - }, - - "selected": function( elem ) { - // Accessing this property makes selected-by-default - // options in Safari work properly - if ( elem.parentNode ) { - elem.parentNode.selectedIndex; - } - - return elem.selected === true; - }, - - // Contents - "empty": function( elem ) { - // http://www.w3.org/TR/selectors/#empty-pseudo - // :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5), - // but not by others (comment: 8; processing instruction: 7; etc.) - // nodeType < 6 works because attributes (2) do not appear as children - for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { - if ( elem.nodeType < 6 ) { - return false; - } - } - return true; - }, - - "parent": function( elem ) { - return !Expr.pseudos["empty"]( elem ); - }, - - // Element/input types - "header": function( elem ) { - return rheader.test( elem.nodeName ); - }, - - "input": function( elem ) { - return rinputs.test( elem.nodeName ); - }, - - "button": function( elem ) { - var name = elem.nodeName.toLowerCase(); - return name === "input" && elem.type === "button" || name === "button"; - }, - - "text": function( elem ) { - var attr; - return elem.nodeName.toLowerCase() === "input" && - elem.type === "text" && - - // Support: IE<8 - // New HTML5 attribute values (e.g., "search") appear with elem.type === "text" - ( (attr = elem.getAttribute("type")) == null || attr.toLowerCase() === "text" ); - }, - - // Position-in-collection - "first": createPositionalPseudo(function() { - return [ 0 ]; - }), - - "last": createPositionalPseudo(function( matchIndexes, length ) { - return [ length - 1 ]; - }), - - "eq": createPositionalPseudo(function( matchIndexes, length, argument ) { - return [ argument < 0 ? argument + length : argument ]; - }), - - "even": createPositionalPseudo(function( matchIndexes, length ) { - var i = 0; - for ( ; i < length; i += 2 ) { - matchIndexes.push( i ); - } - return matchIndexes; - }), - - "odd": createPositionalPseudo(function( matchIndexes, length ) { - var i = 1; - for ( ; i < length; i += 2 ) { - matchIndexes.push( i ); - } - return matchIndexes; - }), - - "lt": createPositionalPseudo(function( matchIndexes, length, argument ) { - var i = argument < 0 ? argument + length : argument; - for ( ; --i >= 0; ) { - matchIndexes.push( i ); - } - return matchIndexes; - }), - - "gt": createPositionalPseudo(function( matchIndexes, length, argument ) { - var i = argument < 0 ? argument + length : argument; - for ( ; ++i < length; ) { - matchIndexes.push( i ); - } - return matchIndexes; - }) - } -}; - -Expr.pseudos["nth"] = Expr.pseudos["eq"]; - -// Add button/input type pseudos -for ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) { - Expr.pseudos[ i ] = createInputPseudo( i ); -} -for ( i in { submit: true, reset: true } ) { - Expr.pseudos[ i ] = createButtonPseudo( i ); -} - -// Easy API for creating new setFilters -function setFilters() {} -setFilters.prototype = Expr.filters = Expr.pseudos; -Expr.setFilters = new setFilters(); - -tokenize = Sizzle.tokenize = function( selector, parseOnly ) { - var matched, match, tokens, type, - soFar, groups, preFilters, - cached = tokenCache[ selector + " " ]; - - if ( cached ) { - return parseOnly ? 0 : cached.slice( 0 ); - } - - soFar = selector; - groups = []; - preFilters = Expr.preFilter; - - while ( soFar ) { - - // Comma and first run - if ( !matched || (match = rcomma.exec( soFar )) ) { - if ( match ) { - // Don't consume trailing commas as valid - soFar = soFar.slice( match[0].length ) || soFar; - } - groups.push( (tokens = []) ); - } - - matched = false; - - // Combinators - if ( (match = rcombinators.exec( soFar )) ) { - matched = match.shift(); - tokens.push({ - value: matched, - // Cast descendant combinators to space - type: match[0].replace( rtrim, " " ) - }); - soFar = soFar.slice( matched.length ); - } - - // Filters - for ( type in Expr.filter ) { - if ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] || - (match = preFilters[ type ]( match ))) ) { - matched = match.shift(); - tokens.push({ - value: matched, - type: type, - matches: match - }); - soFar = soFar.slice( matched.length ); - } - } - - if ( !matched ) { - break; - } - } - - // Return the length of the invalid excess - // if we're just parsing - // Otherwise, throw an error or return tokens - return parseOnly ? - soFar.length : - soFar ? - Sizzle.error( selector ) : - // Cache the tokens - tokenCache( selector, groups ).slice( 0 ); -}; - -function toSelector( tokens ) { - var i = 0, - len = tokens.length, - selector = ""; - for ( ; i < len; i++ ) { - selector += tokens[i].value; - } - return selector; -} - -function addCombinator( matcher, combinator, base ) { - var dir = combinator.dir, - skip = combinator.next, - key = skip || dir, - checkNonElements = base && key === "parentNode", - doneName = done++; - - return combinator.first ? - // Check against closest ancestor/preceding element - function( elem, context, xml ) { - while ( (elem = elem[ dir ]) ) { - if ( elem.nodeType === 1 || checkNonElements ) { - return matcher( elem, context, xml ); - } - } - return false; - } : - - // Check against all ancestor/preceding elements - function( elem, context, xml ) { - var oldCache, uniqueCache, outerCache, - newCache = [ dirruns, doneName ]; - - // We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching - if ( xml ) { - while ( (elem = elem[ dir ]) ) { - if ( elem.nodeType === 1 || checkNonElements ) { - if ( matcher( elem, context, xml ) ) { - return true; - } - } - } - } else { - while ( (elem = elem[ dir ]) ) { - if ( elem.nodeType === 1 || checkNonElements ) { - outerCache = elem[ expando ] || (elem[ expando ] = {}); - - // Support: IE <9 only - // Defend against cloned attroperties (jQuery gh-1709) - uniqueCache = outerCache[ elem.uniqueID ] || (outerCache[ elem.uniqueID ] = {}); - - if ( skip && skip === elem.nodeName.toLowerCase() ) { - elem = elem[ dir ] || elem; - } else if ( (oldCache = uniqueCache[ key ]) && - oldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) { - - // Assign to newCache so results back-propagate to previous elements - return (newCache[ 2 ] = oldCache[ 2 ]); - } else { - // Reuse newcache so results back-propagate to previous elements - uniqueCache[ key ] = newCache; - - // A match means we're done; a fail means we have to keep checking - if ( (newCache[ 2 ] = matcher( elem, context, xml )) ) { - return true; - } - } - } - } - } - return false; - }; -} - -function elementMatcher( matchers ) { - return matchers.length > 1 ? - function( elem, context, xml ) { - var i = matchers.length; - while ( i-- ) { - if ( !matchers[i]( elem, context, xml ) ) { - return false; - } - } - return true; - } : - matchers[0]; -} - -function multipleContexts( selector, contexts, results ) { - var i = 0, - len = contexts.length; - for ( ; i < len; i++ ) { - Sizzle( selector, contexts[i], results ); - } - return results; -} - -function condense( unmatched, map, filter, context, xml ) { - var elem, - newUnmatched = [], - i = 0, - len = unmatched.length, - mapped = map != null; - - for ( ; i < len; i++ ) { - if ( (elem = unmatched[i]) ) { - if ( !filter || filter( elem, context, xml ) ) { - newUnmatched.push( elem ); - if ( mapped ) { - map.push( i ); - } - } - } - } - - return newUnmatched; -} - -function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) { - if ( postFilter && !postFilter[ expando ] ) { - postFilter = setMatcher( postFilter ); - } - if ( postFinder && !postFinder[ expando ] ) { - postFinder = setMatcher( postFinder, postSelector ); - } - return markFunction(function( seed, results, context, xml ) { - var temp, i, elem, - preMap = [], - postMap = [], - preexisting = results.length, - - // Get initial elements from seed or context - elems = seed || multipleContexts( selector || "*", context.nodeType ? [ context ] : context, [] ), - - // Prefilter to get matcher input, preserving a map for seed-results synchronization - matcherIn = preFilter && ( seed || !selector ) ? - condense( elems, preMap, preFilter, context, xml ) : - elems, - - matcherOut = matcher ? - // If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results, - postFinder || ( seed ? preFilter : preexisting || postFilter ) ? - - // ...intermediate processing is necessary - [] : - - // ...otherwise use results directly - results : - matcherIn; - - // Find primary matches - if ( matcher ) { - matcher( matcherIn, matcherOut, context, xml ); - } - - // Apply postFilter - if ( postFilter ) { - temp = condense( matcherOut, postMap ); - postFilter( temp, [], context, xml ); - - // Un-match failing elements by moving them back to matcherIn - i = temp.length; - while ( i-- ) { - if ( (elem = temp[i]) ) { - matcherOut[ postMap[i] ] = !(matcherIn[ postMap[i] ] = elem); - } - } - } - - if ( seed ) { - if ( postFinder || preFilter ) { - if ( postFinder ) { - // Get the final matcherOut by condensing this intermediate into postFinder contexts - temp = []; - i = matcherOut.length; - while ( i-- ) { - if ( (elem = matcherOut[i]) ) { - // Restore matcherIn since elem is not yet a final match - temp.push( (matcherIn[i] = elem) ); - } - } - postFinder( null, (matcherOut = []), temp, xml ); - } - - // Move matched elements from seed to results to keep them synchronized - i = matcherOut.length; - while ( i-- ) { - if ( (elem = matcherOut[i]) && - (temp = postFinder ? indexOf( seed, elem ) : preMap[i]) > -1 ) { - - seed[temp] = !(results[temp] = elem); - } - } - } - - // Add elements to results, through postFinder if defined - } else { - matcherOut = condense( - matcherOut === results ? - matcherOut.splice( preexisting, matcherOut.length ) : - matcherOut - ); - if ( postFinder ) { - postFinder( null, results, matcherOut, xml ); - } else { - push.apply( results, matcherOut ); - } - } - }); -} - -function matcherFromTokens( tokens ) { - var checkContext, matcher, j, - len = tokens.length, - leadingRelative = Expr.relative[ tokens[0].type ], - implicitRelative = leadingRelative || Expr.relative[" "], - i = leadingRelative ? 1 : 0, - - // The foundational matcher ensures that elements are reachable from top-level context(s) - matchContext = addCombinator( function( elem ) { - return elem === checkContext; - }, implicitRelative, true ), - matchAnyContext = addCombinator( function( elem ) { - return indexOf( checkContext, elem ) > -1; - }, implicitRelative, true ), - matchers = [ function( elem, context, xml ) { - var ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || ( - (checkContext = context).nodeType ? - matchContext( elem, context, xml ) : - matchAnyContext( elem, context, xml ) ); - // Avoid hanging onto element (issue #299) - checkContext = null; - return ret; - } ]; - - for ( ; i < len; i++ ) { - if ( (matcher = Expr.relative[ tokens[i].type ]) ) { - matchers = [ addCombinator(elementMatcher( matchers ), matcher) ]; - } else { - matcher = Expr.filter[ tokens[i].type ].apply( null, tokens[i].matches ); - - // Return special upon seeing a positional matcher - if ( matcher[ expando ] ) { - // Find the next relative operator (if any) for proper handling - j = ++i; - for ( ; j < len; j++ ) { - if ( Expr.relative[ tokens[j].type ] ) { - break; - } - } - return setMatcher( - i > 1 && elementMatcher( matchers ), - i > 1 && toSelector( - // If the preceding token was a descendant combinator, insert an implicit any-element `*` - tokens.slice( 0, i - 1 ).concat({ value: tokens[ i - 2 ].type === " " ? "*" : "" }) - ).replace( rtrim, "$1" ), - matcher, - i < j && matcherFromTokens( tokens.slice( i, j ) ), - j < len && matcherFromTokens( (tokens = tokens.slice( j )) ), - j < len && toSelector( tokens ) - ); - } - matchers.push( matcher ); - } - } - - return elementMatcher( matchers ); -} - -function matcherFromGroupMatchers( elementMatchers, setMatchers ) { - var bySet = setMatchers.length > 0, - byElement = elementMatchers.length > 0, - superMatcher = function( seed, context, xml, results, outermost ) { - var elem, j, matcher, - matchedCount = 0, - i = "0", - unmatched = seed && [], - setMatched = [], - contextBackup = outermostContext, - // We must always have either seed elements or outermost context - elems = seed || byElement && Expr.find["TAG"]( "*", outermost ), - // Use integer dirruns iff this is the outermost matcher - dirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.random() || 0.1), - len = elems.length; - - if ( outermost ) { - outermostContext = context === document || context || outermost; - } - - // Add elements passing elementMatchers directly to results - // Support: IE<9, Safari - // Tolerate NodeList properties (IE: "length"; Safari: ) matching elements by id - for ( ; i !== len && (elem = elems[i]) != null; i++ ) { - if ( byElement && elem ) { - j = 0; - if ( !context && elem.ownerDocument !== document ) { - setDocument( elem ); - xml = !documentIsHTML; - } - while ( (matcher = elementMatchers[j++]) ) { - if ( matcher( elem, context || document, xml) ) { - results.push( elem ); - break; - } - } - if ( outermost ) { - dirruns = dirrunsUnique; - } - } - - // Track unmatched elements for set filters - if ( bySet ) { - // They will have gone through all possible matchers - if ( (elem = !matcher && elem) ) { - matchedCount--; - } - - // Lengthen the array for every element, matched or not - if ( seed ) { - unmatched.push( elem ); - } - } - } - - // `i` is now the count of elements visited above, and adding it to `matchedCount` - // makes the latter nonnegative. - matchedCount += i; - - // Apply set filters to unmatched elements - // NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount` - // equals `i`), unless we didn't visit _any_ elements in the above loop because we have - // no element matchers and no seed. - // Incrementing an initially-string "0" `i` allows `i` to remain a string only in that - // case, which will result in a "00" `matchedCount` that differs from `i` but is also - // numerically zero. - if ( bySet && i !== matchedCount ) { - j = 0; - while ( (matcher = setMatchers[j++]) ) { - matcher( unmatched, setMatched, context, xml ); - } - - if ( seed ) { - // Reintegrate element matches to eliminate the need for sorting - if ( matchedCount > 0 ) { - while ( i-- ) { - if ( !(unmatched[i] || setMatched[i]) ) { - setMatched[i] = pop.call( results ); - } - } - } - - // Discard index placeholder values to get only actual matches - setMatched = condense( setMatched ); - } - - // Add matches to results - push.apply( results, setMatched ); - - // Seedless set matches succeeding multiple successful matchers stipulate sorting - if ( outermost && !seed && setMatched.length > 0 && - ( matchedCount + setMatchers.length ) > 1 ) { - - Sizzle.uniqueSort( results ); - } - } - - // Override manipulation of globals by nested matchers - if ( outermost ) { - dirruns = dirrunsUnique; - outermostContext = contextBackup; - } - - return unmatched; - }; - - return bySet ? - markFunction( superMatcher ) : - superMatcher; -} - -compile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) { - var i, - setMatchers = [], - elementMatchers = [], - cached = compilerCache[ selector + " " ]; - - if ( !cached ) { - // Generate a function of recursive functions that can be used to check each element - if ( !match ) { - match = tokenize( selector ); - } - i = match.length; - while ( i-- ) { - cached = matcherFromTokens( match[i] ); - if ( cached[ expando ] ) { - setMatchers.push( cached ); - } else { - elementMatchers.push( cached ); - } - } - - // Cache the compiled function - cached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) ); - - // Save selector and tokenization - cached.selector = selector; - } - return cached; -}; - -/** - * A low-level selection function that works with Sizzle's compiled - * selector functions - * @param {String|Function} selector A selector or a pre-compiled - * selector function built with Sizzle.compile - * @param {Element} context - * @param {Array} [results] - * @param {Array} [seed] A set of elements to match against - */ -select = Sizzle.select = function( selector, context, results, seed ) { - var i, tokens, token, type, find, - compiled = typeof selector === "function" && selector, - match = !seed && tokenize( (selector = compiled.selector || selector) ); - - results = results || []; - - // Try to minimize operations if there is only one selector in the list and no seed - // (the latter of which guarantees us context) - if ( match.length === 1 ) { - - // Reduce context if the leading compound selector is an ID - tokens = match[0] = match[0].slice( 0 ); - if ( tokens.length > 2 && (token = tokens[0]).type === "ID" && - context.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[1].type ] ) { - - context = ( Expr.find["ID"]( token.matches[0].replace(runescape, funescape), context ) || [] )[0]; - if ( !context ) { - return results; - - // Precompiled matchers will still verify ancestry, so step up a level - } else if ( compiled ) { - context = context.parentNode; - } - - selector = selector.slice( tokens.shift().value.length ); - } - - // Fetch a seed set for right-to-left matching - i = matchExpr["needsContext"].test( selector ) ? 0 : tokens.length; - while ( i-- ) { - token = tokens[i]; - - // Abort if we hit a combinator - if ( Expr.relative[ (type = token.type) ] ) { - break; - } - if ( (find = Expr.find[ type ]) ) { - // Search, expanding context for leading sibling combinators - if ( (seed = find( - token.matches[0].replace( runescape, funescape ), - rsibling.test( tokens[0].type ) && testContext( context.parentNode ) || context - )) ) { - - // If seed is empty or no tokens remain, we can return early - tokens.splice( i, 1 ); - selector = seed.length && toSelector( tokens ); - if ( !selector ) { - push.apply( results, seed ); - return results; - } - - break; - } - } - } - } - - // Compile and execute a filtering function if one is not provided - // Provide `match` to avoid retokenization if we modified the selector above - ( compiled || compile( selector, match ) )( - seed, - context, - !documentIsHTML, - results, - !context || rsibling.test( selector ) && testContext( context.parentNode ) || context - ); - return results; -}; - -// One-time assignments - -// Sort stability -support.sortStable = expando.split("").sort( sortOrder ).join("") === expando; - -// Support: Chrome 14-35+ -// Always assume duplicates if they aren't passed to the comparison function -support.detectDuplicates = !!hasDuplicate; - -// Initialize against the default document -setDocument(); - -// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27) -// Detached nodes confoundingly follow *each other* -support.sortDetached = assert(function( el ) { - // Should return 1, but returns 4 (following) - return el.compareDocumentPosition( document.createElement("fieldset") ) & 1; -}); - -// Support: IE<8 -// Prevent attribute/property "interpolation" -// https://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx -if ( !assert(function( el ) { - el.innerHTML = ""; - return el.firstChild.getAttribute("href") === "#" ; -}) ) { - addHandle( "type|href|height|width", function( elem, name, isXML ) { - if ( !isXML ) { - return elem.getAttribute( name, name.toLowerCase() === "type" ? 1 : 2 ); - } - }); -} - -// Support: IE<9 -// Use defaultValue in place of getAttribute("value") -if ( !support.attributes || !assert(function( el ) { - el.innerHTML = ""; - el.firstChild.setAttribute( "value", "" ); - return el.firstChild.getAttribute( "value" ) === ""; -}) ) { - addHandle( "value", function( elem, name, isXML ) { - if ( !isXML && elem.nodeName.toLowerCase() === "input" ) { - return elem.defaultValue; - } - }); -} - -// Support: IE<9 -// Use getAttributeNode to fetch booleans when getAttribute lies -if ( !assert(function( el ) { - return el.getAttribute("disabled") == null; -}) ) { - addHandle( booleans, function( elem, name, isXML ) { - var val; - if ( !isXML ) { - return elem[ name ] === true ? name.toLowerCase() : - (val = elem.getAttributeNode( name )) && val.specified ? - val.value : - null; - } - }); -} - -return Sizzle; - -})( window ); - - - -jQuery.find = Sizzle; -jQuery.expr = Sizzle.selectors; - -// Deprecated -jQuery.expr[ ":" ] = jQuery.expr.pseudos; -jQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort; -jQuery.text = Sizzle.getText; -jQuery.isXMLDoc = Sizzle.isXML; -jQuery.contains = Sizzle.contains; -jQuery.escapeSelector = Sizzle.escape; - - - - -var dir = function( elem, dir, until ) { - var matched = [], - truncate = until !== undefined; - - while ( ( elem = elem[ dir ] ) && elem.nodeType !== 9 ) { - if ( elem.nodeType === 1 ) { - if ( truncate && jQuery( elem ).is( until ) ) { - break; - } - matched.push( elem ); - } - } - return matched; -}; - - -var siblings = function( n, elem ) { - var matched = []; - - for ( ; n; n = n.nextSibling ) { - if ( n.nodeType === 1 && n !== elem ) { - matched.push( n ); - } - } - - return matched; -}; - - -var rneedsContext = jQuery.expr.match.needsContext; - - - -function nodeName( elem, name ) { - - return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase(); - -}; -var rsingleTag = ( /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i ); - - - -// Implement the identical functionality for filter and not -function winnow( elements, qualifier, not ) { - if ( isFunction( qualifier ) ) { - return jQuery.grep( elements, function( elem, i ) { - return !!qualifier.call( elem, i, elem ) !== not; - } ); - } - - // Single element - if ( qualifier.nodeType ) { - return jQuery.grep( elements, function( elem ) { - return ( elem === qualifier ) !== not; - } ); - } - - // Arraylike of elements (jQuery, arguments, Array) - if ( typeof qualifier !== "string" ) { - return jQuery.grep( elements, function( elem ) { - return ( indexOf.call( qualifier, elem ) > -1 ) !== not; - } ); - } - - // Filtered directly for both simple and complex selectors - return jQuery.filter( qualifier, elements, not ); -} - -jQuery.filter = function( expr, elems, not ) { - var elem = elems[ 0 ]; - - if ( not ) { - expr = ":not(" + expr + ")"; - } - - if ( elems.length === 1 && elem.nodeType === 1 ) { - return jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : []; - } - - return jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) { - return elem.nodeType === 1; - } ) ); -}; - -jQuery.fn.extend( { - find: function( selector ) { - var i, ret, - len = this.length, - self = this; - - if ( typeof selector !== "string" ) { - return this.pushStack( jQuery( selector ).filter( function() { - for ( i = 0; i < len; i++ ) { - if ( jQuery.contains( self[ i ], this ) ) { - return true; - } - } - } ) ); - } - - ret = this.pushStack( [] ); - - for ( i = 0; i < len; i++ ) { - jQuery.find( selector, self[ i ], ret ); - } - - return len > 1 ? jQuery.uniqueSort( ret ) : ret; - }, - filter: function( selector ) { - return this.pushStack( winnow( this, selector || [], false ) ); - }, - not: function( selector ) { - return this.pushStack( winnow( this, selector || [], true ) ); - }, - is: function( selector ) { - return !!winnow( - this, - - // If this is a positional/relative selector, check membership in the returned set - // so $("p:first").is("p:last") won't return true for a doc with two "p". - typeof selector === "string" && rneedsContext.test( selector ) ? - jQuery( selector ) : - selector || [], - false - ).length; - } -} ); - - -// Initialize a jQuery object - - -// A central reference to the root jQuery(document) -var rootjQuery, - - // A simple way to check for HTML strings - // Prioritize #id over to avoid XSS via location.hash (#9521) - // Strict HTML recognition (#11290: must start with <) - // Shortcut simple #id case for speed - rquickExpr = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/, - - init = jQuery.fn.init = function( selector, context, root ) { - var match, elem; - - // HANDLE: $(""), $(null), $(undefined), $(false) - if ( !selector ) { - return this; - } - - // Method init() accepts an alternate rootjQuery - // so migrate can support jQuery.sub (gh-2101) - root = root || rootjQuery; - - // Handle HTML strings - if ( typeof selector === "string" ) { - if ( selector[ 0 ] === "<" && - selector[ selector.length - 1 ] === ">" && - selector.length >= 3 ) { - - // Assume that strings that start and end with <> are HTML and skip the regex check - match = [ null, selector, null ]; - - } else { - match = rquickExpr.exec( selector ); - } - - // Match html or make sure no context is specified for #id - if ( match && ( match[ 1 ] || !context ) ) { - - // HANDLE: $(html) -> $(array) - if ( match[ 1 ] ) { - context = context instanceof jQuery ? context[ 0 ] : context; - - // Option to run scripts is true for back-compat - // Intentionally let the error be thrown if parseHTML is not present - jQuery.merge( this, jQuery.parseHTML( - match[ 1 ], - context && context.nodeType ? context.ownerDocument || context : document, - true - ) ); - - // HANDLE: $(html, props) - if ( rsingleTag.test( match[ 1 ] ) && jQuery.isPlainObject( context ) ) { - for ( match in context ) { - - // Properties of context are called as methods if possible - if ( isFunction( this[ match ] ) ) { - this[ match ]( context[ match ] ); - - // ...and otherwise set as attributes - } else { - this.attr( match, context[ match ] ); - } - } - } - - return this; - - // HANDLE: $(#id) - } else { - elem = document.getElementById( match[ 2 ] ); - - if ( elem ) { - - // Inject the element directly into the jQuery object - this[ 0 ] = elem; - this.length = 1; - } - return this; - } - - // HANDLE: $(expr, $(...)) - } else if ( !context || context.jquery ) { - return ( context || root ).find( selector ); - - // HANDLE: $(expr, context) - // (which is just equivalent to: $(context).find(expr) - } else { - return this.constructor( context ).find( selector ); - } - - // HANDLE: $(DOMElement) - } else if ( selector.nodeType ) { - this[ 0 ] = selector; - this.length = 1; - return this; - - // HANDLE: $(function) - // Shortcut for document ready - } else if ( isFunction( selector ) ) { - return root.ready !== undefined ? - root.ready( selector ) : - - // Execute immediately if ready is not present - selector( jQuery ); - } - - return jQuery.makeArray( selector, this ); - }; - -// Give the init function the jQuery prototype for later instantiation -init.prototype = jQuery.fn; - -// Initialize central reference -rootjQuery = jQuery( document ); - - -var rparentsprev = /^(?:parents|prev(?:Until|All))/, - - // Methods guaranteed to produce a unique set when starting from a unique set - guaranteedUnique = { - children: true, - contents: true, - next: true, - prev: true - }; - -jQuery.fn.extend( { - has: function( target ) { - var targets = jQuery( target, this ), - l = targets.length; - - return this.filter( function() { - var i = 0; - for ( ; i < l; i++ ) { - if ( jQuery.contains( this, targets[ i ] ) ) { - return true; - } - } - } ); - }, - - closest: function( selectors, context ) { - var cur, - i = 0, - l = this.length, - matched = [], - targets = typeof selectors !== "string" && jQuery( selectors ); - - // Positional selectors never match, since there's no _selection_ context - if ( !rneedsContext.test( selectors ) ) { - for ( ; i < l; i++ ) { - for ( cur = this[ i ]; cur && cur !== context; cur = cur.parentNode ) { - - // Always skip document fragments - if ( cur.nodeType < 11 && ( targets ? - targets.index( cur ) > -1 : - - // Don't pass non-elements to Sizzle - cur.nodeType === 1 && - jQuery.find.matchesSelector( cur, selectors ) ) ) { - - matched.push( cur ); - break; - } - } - } - } - - return this.pushStack( matched.length > 1 ? jQuery.uniqueSort( matched ) : matched ); - }, - - // Determine the position of an element within the set - index: function( elem ) { - - // No argument, return index in parent - if ( !elem ) { - return ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1; - } - - // Index in selector - if ( typeof elem === "string" ) { - return indexOf.call( jQuery( elem ), this[ 0 ] ); - } - - // Locate the position of the desired element - return indexOf.call( this, - - // If it receives a jQuery object, the first element is used - elem.jquery ? elem[ 0 ] : elem - ); - }, - - add: function( selector, context ) { - return this.pushStack( - jQuery.uniqueSort( - jQuery.merge( this.get(), jQuery( selector, context ) ) - ) - ); - }, - - addBack: function( selector ) { - return this.add( selector == null ? - this.prevObject : this.prevObject.filter( selector ) - ); - } -} ); - -function sibling( cur, dir ) { - while ( ( cur = cur[ dir ] ) && cur.nodeType !== 1 ) {} - return cur; -} - -jQuery.each( { - parent: function( elem ) { - var parent = elem.parentNode; - return parent && parent.nodeType !== 11 ? parent : null; - }, - parents: function( elem ) { - return dir( elem, "parentNode" ); - }, - parentsUntil: function( elem, i, until ) { - return dir( elem, "parentNode", until ); - }, - next: function( elem ) { - return sibling( elem, "nextSibling" ); - }, - prev: function( elem ) { - return sibling( elem, "previousSibling" ); - }, - nextAll: function( elem ) { - return dir( elem, "nextSibling" ); - }, - prevAll: function( elem ) { - return dir( elem, "previousSibling" ); - }, - nextUntil: function( elem, i, until ) { - return dir( elem, "nextSibling", until ); - }, - prevUntil: function( elem, i, until ) { - return dir( elem, "previousSibling", until ); - }, - siblings: function( elem ) { - return siblings( ( elem.parentNode || {} ).firstChild, elem ); - }, - children: function( elem ) { - return siblings( elem.firstChild ); - }, - contents: function( elem ) { - if ( nodeName( elem, "iframe" ) ) { - return elem.contentDocument; - } - - // Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only - // Treat the template element as a regular one in browsers that - // don't support it. - if ( nodeName( elem, "template" ) ) { - elem = elem.content || elem; - } - - return jQuery.merge( [], elem.childNodes ); - } -}, function( name, fn ) { - jQuery.fn[ name ] = function( until, selector ) { - var matched = jQuery.map( this, fn, until ); - - if ( name.slice( -5 ) !== "Until" ) { - selector = until; - } - - if ( selector && typeof selector === "string" ) { - matched = jQuery.filter( selector, matched ); - } - - if ( this.length > 1 ) { - - // Remove duplicates - if ( !guaranteedUnique[ name ] ) { - jQuery.uniqueSort( matched ); - } - - // Reverse order for parents* and prev-derivatives - if ( rparentsprev.test( name ) ) { - matched.reverse(); - } - } - - return this.pushStack( matched ); - }; -} ); -var rnothtmlwhite = ( /[^\x20\t\r\n\f]+/g ); - - - -// Convert String-formatted options into Object-formatted ones -function createOptions( options ) { - var object = {}; - jQuery.each( options.match( rnothtmlwhite ) || [], function( _, flag ) { - object[ flag ] = true; - } ); - return object; -} - -/* - * Create a callback list using the following parameters: +function(e){function t(e,t,n,i){var a,r,o,s,d,u,h,m=t&&t.ownerDocument,p=t?t.nodeType:9;if(n=n||[],"string"!=typeof e||!e||1!==p&&9!==p&&11!==p)return n;if(!i&&((t?t.ownerDocument||t:N)!==C&&H(t),t=t||C,P)){if(11!==p&&(d=fe.exec(e)))if(a=d[1]){if(9===p){if(!(o=t.getElementById(a)))return n;if(o.id===a)return n.push(o),n}else if(m&&(o=m.getElementById(a))&&I(t,o)&&o.id===a)return n.push(o),n}else{if(d[2])return K.apply(n,t.getElementsByTagName(e)),n;if((a=d[3])&&M.getElementsByClassName&&t.getElementsByClassName)return K.apply(n,t.getElementsByClassName(a)),n}if(M.qsa&&!J[e+" "]&&(!j||!j.test(e))){if(1!==p)m=t,h=e;else if("object"!==t.nodeName.toLowerCase()){for((s=t.getAttribute("id"))?s=s.replace(ve,Me):t.setAttribute("id",s=R),u=k(e),r=u.length;r--;)u[r]="#"+s+" "+c(u[r]);h=u.join(","),m=_e.test(e)&&l(t.parentNode)||t}if(h)try{return K.apply(n,m.querySelectorAll(h)),n}catch(e){}finally{s===R&&t.removeAttribute("id")}}}return T(e.replace(re,"$1"),t,n,i)}function n(){function e(n,i){return t.push(n+" ")>b.cacheLength&&delete e[t.shift()],e[n+" "]=i}var t=[];return e}function i(e){return e[R]=!0,e}function a(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function r(e,t){for(var n=e.split("|"),i=n.length;i--;)b.attrHandle[n[i]]=t}function o(e,t){var n=t&&e,i=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(i)return i;if(n)for(;n=n.nextSibling;)if(n===t)return-1;return e?1:-1}function s(e){return function(t){return"form"in t?t.parentNode&&!1===t.disabled?"label"in t?"label"in t.parentNode?t.parentNode.disabled===e:t.disabled===e:t.isDisabled===e||t.isDisabled!==!e&&Le(t)===e:t.disabled===e:"label"in t&&t.disabled===e}}function d(e){return i(function(t){return t=+t,i(function(n,i){for(var a,r=e([],n.length,t),o=r.length;o--;)n[a=r[o]]&&(n[a]=!(i[a]=n[a]))})})}function l(e){return e&&void 0!==e.getElementsByTagName&&e}function u(){}function c(e){for(var t=0,n=e.length,i="";t1?function(t,n,i){for(var a=e.length;a--;)if(!e[a](t,n,i))return!1;return!0}:e[0]}function p(e,n,i){for(var a=0,r=n.length;a-1&&(i[l]=!(o[l]=c))}}else v=f(v===o?v.splice(_,v.length):v),r?r(null,o,v,d):K.apply(o,v)})}function g(e){for(var t,n,i,a=e.length,r=b.relative[e[0].type],o=r||b.relative[" "],s=r?1:0,d=h(function(e){return e===t},o,!0),l=h(function(e){return X(t,e)>-1},o,!0),u=[function(e,n,i){var a=!r&&(i||n!==x)||((t=n).nodeType?d(e,n,i):l(e,n,i));return t=null,a}];s1&&m(u),s>1&&c(e.slice(0,s-1).concat({value:" "===e[s-2].type?"*":""})).replace(re,"$1"),n,s0,r=e.length>0,o=function(i,o,s,d,l){var u,c,h,m=0,p="0",_=i&&[],g=[],y=x,v=i||r&&b.find.TAG("*",l),M=F+=null==y?1:Math.random()||.1,L=v.length;for(l&&(x=o===C||o||l);p!==L&&null!=(u=v[p]);p++){if(r&&u){for(c=0,o||u.ownerDocument===C||(H(u),s=!P);h=e[c++];)if(h(u,o||C,s)){d.push(u);break}l&&(F=M)}a&&((u=!h&&u)&&m--,i&&_.push(u))}if(m+=p,a&&p!==m){for(c=0;h=n[c++];)h(_,g,o,s);if(i){if(m>0)for(;p--;)_[p]||g[p]||(g[p]=G.call(d));g=f(g)}K.apply(d,g),l&&!i&&g.length>0&&m+n.length>1&&t.uniqueSort(d)}return l&&(F=M,x=y),_};return a?i(o):o}var v,M,b,L,D,k,w,T,x,Y,S,H,C,E,P,j,O,A,I,R="sizzle"+1*new Date,N=e.document,F=0,z=0,W=n(),B=n(),J=n(),V=function(e,t){return e===t&&(S=!0),0},$={}.hasOwnProperty,U=[],G=U.pop,q=U.push,K=U.push,Z=U.slice,X=function(e,t){for(var n=0,i=e.length;n+~]|"+ee+")"+ee+"*"),de=new RegExp("="+ee+"*([^\\]'\"]*?)"+ee+"*\\]","g"),le=new RegExp(ie),ue=new RegExp("^"+te+"$"),ce={ID:new RegExp("^#("+te+")"),CLASS:new RegExp("^\\.("+te+")"),TAG:new RegExp("^("+te+"|[*])"),ATTR:new RegExp("^"+ne),PSEUDO:new RegExp("^"+ie),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+ee+"*(even|odd|(([+-]|)(\\d*)n|)"+ee+"*(?:([+-]|)"+ee+"*(\\d+)|))"+ee+"*\\)|)","i"),bool:new RegExp("^(?:"+Q+")$","i"),needsContext:new RegExp("^"+ee+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+ee+"*((?:-\\d)?\\d*)"+ee+"*\\)|)(?=[^-]|$)","i")},he=/^(?:input|select|textarea|button)$/i,me=/^h\d$/i,pe=/^[^{]+\{\s*\[native \w/,fe=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,_e=/[+~]/,ge=new RegExp("\\\\([\\da-f]{1,6}"+ee+"?|("+ee+")|.)","ig"),ye=function(e,t,n){var i="0x"+t-65536;return i!==i||n?t:i<0?String.fromCharCode(i+65536):String.fromCharCode(i>>10|55296,1023&i|56320)},ve=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,Me=function(e,t){return t?"\0"===e?"�":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},be=function(){H()},Le=h(function(e){return!0===e.disabled&&("form"in e||"label"in e)},{dir:"parentNode",next:"legend"});try{K.apply(U=Z.call(N.childNodes),N.childNodes),U[N.childNodes.length].nodeType}catch(e){K={apply:U.length?function(e,t){q.apply(e,Z.call(t))}:function(e,t){for(var n=e.length,i=0;e[n++]=t[i++];);e.length=n-1}}}M=t.support={},D=t.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return!!t&&"HTML"!==t.nodeName},H=t.setDocument=function(e){var t,n,i=e?e.ownerDocument||e:N;return i!==C&&9===i.nodeType&&i.documentElement?(C=i,E=C.documentElement,P=!D(C),N!==C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",be,!1):n.attachEvent&&n.attachEvent("onunload",be)),M.attributes=a(function(e){return e.className="i",!e.getAttribute("className")}),M.getElementsByTagName=a(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),M.getElementsByClassName=pe.test(C.getElementsByClassName),M.getById=a(function(e){return E.appendChild(e).id=R,!C.getElementsByName||!C.getElementsByName(R).length}),M.getById?(b.filter.ID=function(e){var t=e.replace(ge,ye);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if(void 0!==t.getElementById&&P){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var t=e.replace(ge,ye);return function(e){var n=void 0!==e.getAttributeNode&&e.getAttributeNode("id");return n&&n.value===t}},b.find.ID=function(e,t){if(void 0!==t.getElementById&&P){var n,i,a,r=t.getElementById(e);if(r){if((n=r.getAttributeNode("id"))&&n.value===e)return[r];for(a=t.getElementsByName(e),i=0;r=a[i++];)if((n=r.getAttributeNode("id"))&&n.value===e)return[r]}return[]}}),b.find.TAG=M.getElementsByTagName?function(e,t){return void 0!==t.getElementsByTagName?t.getElementsByTagName(e):M.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,i=[],a=0,r=t.getElementsByTagName(e);if("*"===e){for(;n=r[a++];)1===n.nodeType&&i.push(n);return i}return r},b.find.CLASS=M.getElementsByClassName&&function(e,t){if(void 0!==t.getElementsByClassName&&P)return t.getElementsByClassName(e)},O=[],j=[],(M.qsa=pe.test(C.querySelectorAll))&&(a(function(e){E.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&j.push("[*^$]="+ee+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||j.push("\\["+ee+"*(?:value|"+Q+")"),e.querySelectorAll("[id~="+R+"-]").length||j.push("~="),e.querySelectorAll(":checked").length||j.push(":checked"),e.querySelectorAll("a#"+R+"+*").length||j.push(".#.+[+~]")}),a(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&j.push("name"+ee+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&j.push(":enabled",":disabled"),E.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&j.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),j.push(",.*:")})),(M.matchesSelector=pe.test(A=E.matches||E.webkitMatchesSelector||E.mozMatchesSelector||E.oMatchesSelector||E.msMatchesSelector))&&a(function(e){M.disconnectedMatch=A.call(e,"*"),A.call(e,"[s!='']:x"),O.push("!=",ie)}),j=j.length&&new RegExp(j.join("|")),O=O.length&&new RegExp(O.join("|")),t=pe.test(E.compareDocumentPosition),I=t||pe.test(E.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,i=t&&t.parentNode;return e===i||!(!i||1!==i.nodeType||!(n.contains?n.contains(i):e.compareDocumentPosition&&16&e.compareDocumentPosition(i)))}:function(e,t){if(t)for(;t=t.parentNode;)if(t===e)return!0;return!1},V=t?function(e,t){if(e===t)return S=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(n=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1,1&n||!M.sortDetached&&t.compareDocumentPosition(e)===n?e===C||e.ownerDocument===N&&I(N,e)?-1:t===C||t.ownerDocument===N&&I(N,t)?1:Y?X(Y,e)-X(Y,t):0:4&n?-1:1)}:function(e,t){if(e===t)return S=!0,0;var n,i=0,a=e.parentNode,r=t.parentNode,s=[e],d=[t];if(!a||!r)return e===C?-1:t===C?1:a?-1:r?1:Y?X(Y,e)-X(Y,t):0;if(a===r)return o(e,t);for(n=e;n=n.parentNode;)s.unshift(n);for(n=t;n=n.parentNode;)d.unshift(n);for(;s[i]===d[i];)i++;return i?o(s[i],d[i]):s[i]===N?-1:d[i]===N?1:0},C):C},t.matches=function(e,n){return t(e,null,null,n)},t.matchesSelector=function(e,n){if((e.ownerDocument||e)!==C&&H(e),n=n.replace(de,"='$1']"),M.matchesSelector&&P&&!J[n+" "]&&(!O||!O.test(n))&&(!j||!j.test(n)))try{var i=A.call(e,n);if(i||M.disconnectedMatch||e.document&&11!==e.document.nodeType)return i}catch(e){}return t(n,C,null,[e]).length>0},t.contains=function(e,t){return(e.ownerDocument||e)!==C&&H(e),I(e,t)},t.attr=function(e,t){(e.ownerDocument||e)!==C&&H(e);var n=b.attrHandle[t.toLowerCase()],i=n&&$.call(b.attrHandle,t.toLowerCase())?n(e,t,!P):void 0;return void 0!==i?i:M.attributes||!P?e.getAttribute(t):(i=e.getAttributeNode(t))&&i.specified?i.value:null},t.escape=function(e){return(e+"").replace(ve,Me)},t.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},t.uniqueSort=function(e){var t,n=[],i=0,a=0;if(S=!M.detectDuplicates,Y=!M.sortStable&&e.slice(0),e.sort(V),S){for(;t=e[a++];)t===e[a]&&(i=n.push(a));for(;i--;)e.splice(n[i],1)}return Y=null,e},L=t.getText=function(e){var t,n="",i=0,a=e.nodeType;if(a){if(1===a||9===a||11===a){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=L(e)}else if(3===a||4===a)return e.nodeValue}else for(;t=e[i++];)n+=L(t);return n},b=t.selectors={cacheLength:50,createPseudo:i,match:ce,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(ge,ye),e[3]=(e[3]||e[4]||e[5]||"").replace(ge,ye),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||t.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&t.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return ce.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&le.test(n)&&(t=k(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(ge,ye).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=W[e+" "];return t||(t=new RegExp("(^|"+ee+")"+e+"("+ee+"|$)"))&&W(e,function(e){return t.test("string"==typeof e.className&&e.className||void 0!==e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(e,n,i){return function(a){var r=t.attr(a,e);return null==r?"!="===n:!n||(r+="","="===n?r===i:"!="===n?r!==i:"^="===n?i&&0===r.indexOf(i):"*="===n?i&&r.indexOf(i)>-1:"$="===n?i&&r.slice(-i.length)===i:"~="===n?(" "+r.replace(ae," ")+" ").indexOf(i)>-1:"|="===n&&(r===i||r.slice(0,i.length+1)===i+"-"))}},CHILD:function(e,t,n,i,a){var r="nth"!==e.slice(0,3),o="last"!==e.slice(-4),s="of-type"===t;return 1===i&&0===a?function(e){return!!e.parentNode}:function(t,n,d){var l,u,c,h,m,p,f=r!==o?"nextSibling":"previousSibling",_=t.parentNode,g=s&&t.nodeName.toLowerCase(),y=!d&&!s,v=!1;if(_){if(r){for(;f;){for(h=t;h=h[f];)if(s?h.nodeName.toLowerCase()===g:1===h.nodeType)return!1;p=f="only"===e&&!p&&"nextSibling"}return!0}if(p=[o?_.firstChild:_.lastChild],o&&y){for(h=_,c=h[R]||(h[R]={}),u=c[h.uniqueID]||(c[h.uniqueID]={}),l=u[e]||[],m=l[0]===F&&l[1],v=m&&l[2],h=m&&_.childNodes[m];h=++m&&h&&h[f]||(v=m=0)||p.pop();)if(1===h.nodeType&&++v&&h===t){u[e]=[F,m,v];break}}else if(y&&(h=t,c=h[R]||(h[R]={}),u=c[h.uniqueID]||(c[h.uniqueID]={}),l=u[e]||[],m=l[0]===F&&l[1],v=m),!1===v)for(;(h=++m&&h&&h[f]||(v=m=0)||p.pop())&&((s?h.nodeName.toLowerCase()!==g:1!==h.nodeType)||!++v||(y&&(c=h[R]||(h[R]={}),u=c[h.uniqueID]||(c[h.uniqueID]={}),u[e]=[F,v]),h!==t)););return(v-=a)===i||v%i==0&&v/i>=0}}},PSEUDO:function(e,n){var a,r=b.pseudos[e]||b.setFilters[e.toLowerCase()]||t.error("unsupported pseudo: "+e);return r[R]?r(n):r.length>1?(a=[e,e,"",n],b.setFilters.hasOwnProperty(e.toLowerCase())?i(function(e,t){for(var i,a=r(e,n),o=a.length;o--;)i=X(e,a[o]),e[i]=!(t[i]=a[o])}):function(e){return r(e,0,a)}):r}},pseudos:{not:i(function(e){var t=[],n=[],a=w(e.replace(re,"$1"));return a[R]?i(function(e,t,n,i){for(var r,o=a(e,null,i,[]),s=e.length;s--;)(r=o[s])&&(e[s]=!(t[s]=r))}):function(e,i,r){return t[0]=e,a(t,null,r,n),t[0]=null,!n.pop()}}),has:i(function(e){return function(n){return t(e,n).length>0}}),contains:i(function(e){return e=e.replace(ge,ye),function(t){return(t.textContent||t.innerText||L(t)).indexOf(e)>-1}}),lang:i(function(e){return ue.test(e||"")||t.error("unsupported lang: "+e),e=e.replace(ge,ye).toLowerCase(),function(t){var n;do{if(n=P?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return(n=n.toLowerCase())===e||0===n.indexOf(e+"-")}while((t=t.parentNode)&&1===t.nodeType);return!1}}),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===E},focus:function(e){return e===C.activeElement&&(!C.hasFocus||C.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:s(!1),disabled:s(!0),checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!b.pseudos.empty(e)},header:function(e){return me.test(e.nodeName)},input:function(e){return he.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:d(function(){return[0]}),last:d(function(e,t){return[t-1]}),eq:d(function(e,t,n){return[n<0?n+t:n]}),even:d(function(e,t){for(var n=0;n=0;)e.push(i);return e}),gt:d(function(e,t,n){for(var i=n<0?n+t:n;++i2&&"ID"===(o=r[0]).type&&9===t.nodeType&&P&&b.relative[r[1].type]){if(!(t=(b.find.ID(o.matches[0].replace(ge,ye),t)||[])[0]))return n;u&&(t=t.parentNode),e=e.slice(r.shift().value.length)}for(a=ce.needsContext.test(e)?0:r.length;a--&&(o=r[a],!b.relative[s=o.type]);)if((d=b.find[s])&&(i=d(o.matches[0].replace(ge,ye),_e.test(r[0].type)&&l(t.parentNode)||t))){if(r.splice(a,1),!(e=i.length&&c(r)))return K.apply(n,i),n;break}}return(u||w(e,h))(i,t,!P,n,!t||_e.test(e)&&l(t.parentNode)||t),n},M.sortStable=R.split("").sort(V).join("")===R,M.detectDuplicates=!!S,H(),M.sortDetached=a(function(e){return 1&e.compareDocumentPosition(C.createElement("fieldset"))}),a(function(e){return e.innerHTML="","#"===e.firstChild.getAttribute("href")})||r("type|href|height|width",function(e,t,n){if(!n)return e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),M.attributes&&a(function(e){return e.innerHTML="",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||r("value",function(e,t,n){if(!n&&"input"===e.nodeName.toLowerCase())return e.defaultValue}),a(function(e){return null==e.getAttribute("disabled")})||r(Q,function(e,t,n){var i;if(!n)return!0===e[t]?t.toLowerCase():(i=e.getAttributeNode(t))&&i.specified?i.value:null}),t}(n);we.find=xe,we.expr=xe.selectors,we.expr[":"]=we.expr.pseudos,we.uniqueSort=we.unique=xe.uniqueSort,we.text=xe.getText,we.isXMLDoc=xe.isXML,we.contains=xe.contains,we.escapeSelector=xe.escape;var Ye=function(e,t,n){for(var i=[],a=void 0!==n;(e=e[t])&&9!==e.nodeType;)if(1===e.nodeType){if(a&&we(e).is(n))break;i.push(e)}return i},Se=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},He=we.expr.match.needsContext,Ce=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;we.filter=function(e,t,n){var i=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===i.nodeType?we.find.matchesSelector(i,e)?[i]:[]:we.find.matches(e,we.grep(t,function(e){return 1===e.nodeType}))},we.fn.extend({find:function(e){var t,n,i=this.length,a=this;if("string"!=typeof e)return this.pushStack(we(e).filter(function(){for(t=0;t1?we.uniqueSort(n):n},filter:function(e){return this.pushStack(u(this,e||[],!1))},not:function(e){return this.pushStack(u(this,e||[],!0))},is:function(e){return!!u(this,"string"==typeof e&&He.test(e)?we(e):e||[],!1).length}});var Ee,Pe=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(we.fn.init=function(e,t,n){var i,a;if(!e)return this;if(n=n||Ee,"string"==typeof e){if(!(i="<"===e[0]&&">"===e[e.length-1]&&e.length>=3?[null,e,null]:Pe.exec(e))||!i[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(i[1]){if(t=t instanceof we?t[0]:t,we.merge(this,we.parseHTML(i[1],t&&t.nodeType?t.ownerDocument||t:ue,!0)),Ce.test(i[1])&&we.isPlainObject(t))for(i in t)Le(this[i])?this[i](t[i]):this.attr(i,t[i]);return this}return a=ue.getElementById(i[2]),a&&(this[0]=a,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):Le(e)?void 0!==n.ready?n.ready(e):e(we):we.makeArray(e,this)}).prototype=we.fn,Ee=we(ue);var je=/^(?:parents|prev(?:Until|All))/,Oe={children:!0,contents:!0,next:!0,prev:!0};we.fn.extend({has:function(e){var t=we(e,this),n=t.length;return this.filter(function(){for(var e=0;e-1:1===n.nodeType&&we.find.matchesSelector(n,e))){r.push(n);break}return this.pushStack(r.length>1?we.uniqueSort(r):r)},index:function(e){return e?"string"==typeof e?fe.call(we(e),this[0]):fe.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(we.uniqueSort(we.merge(this.get(),we(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),we.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return Ye(e,"parentNode")},parentsUntil:function(e,t,n){return Ye(e,"parentNode",n)},next:function(e){return c(e,"nextSibling")},prev:function(e){return c(e,"previousSibling")},nextAll:function(e){return Ye(e,"nextSibling")},prevAll:function(e){return Ye(e,"previousSibling")},nextUntil:function(e,t,n){return Ye(e,"nextSibling",n)},prevUntil:function(e,t,n){return Ye(e,"previousSibling",n)},siblings:function(e){return Se((e.parentNode||{}).firstChild,e)},children:function(e){return Se(e.firstChild)},contents:function(e){return l(e,"iframe")?e.contentDocument:(l(e,"template")&&(e=e.content||e),we.merge([],e.childNodes))}},function(e,t){we.fn[e]=function(n,i){var a=we.map(this,t,n);return"Until"!==e.slice(-5)&&(i=n),i&&"string"==typeof i&&(a=we.filter(i,a)),this.length>1&&(Oe[e]||we.uniqueSort(a),je.test(e)&&a.reverse()),this.pushStack(a)}});var Ae=/[^\x20\t\r\n\f]+/g;we.Callbacks=function(e){e="string"==typeof e?h(e):we.extend({},e);var t,n,i,a,r=[],o=[],d=-1,l=function(){for(a=a||e.once,i=t=!0;o.length;d=-1)for(n=o.shift();++d-1;)r.splice(n,1),n<=d&&d--}),this},has:function(e){return e?we.inArray(e,r)>-1:r.length>0},empty:function(){return r&&(r=[]),this},disable:function(){return a=o=[],r=n="",this},disabled:function(){return!r},lock:function(){return a=o=[],n||t||(r=n=""),this},locked:function(){return!!a},fireWith:function(e,n){return a||(n=n||[],n=[e,n.slice?n.slice():n],o.push(n),t||l()),this},fire:function(){return u.fireWith(this,arguments),this},fired:function(){return!!i}};return u},we.extend({Deferred:function(e){var t=[["notify","progress",we.Callbacks("memory"),we.Callbacks("memory"),2],["resolve","done",we.Callbacks("once memory"),we.Callbacks("once memory"),0,"resolved"],["reject","fail",we.Callbacks("once memory"),we.Callbacks("once memory"),1,"rejected"]],i="pending",a={state:function(){return i},always:function(){return r.done(arguments).fail(arguments),this},catch:function(e){return a.then(null,e)},pipe:function(){var e=arguments;return we.Deferred(function(n){we.each(t,function(t,i){var a=Le(e[i[4]])&&e[i[4]];r[i[1]](function(){var e=a&&a.apply(this,arguments);e&&Le(e.promise)?e.promise().progress(n.notify).done(n.resolve).fail(n.reject):n[i[0]+"With"](this,a?[e]:arguments)})}),e=null}).promise()},then:function(e,i,a){function r(e,t,i,a){return function(){var s=this,d=arguments,l=function(){var n,l;if(!(e=o&&(i!==p&&(s=void 0,d=[n]),t.rejectWith(s,d))}};e?u():(we.Deferred.getStackHook&&(u.stackTrace=we.Deferred.getStackHook()),n.setTimeout(u))}}var o=0;return we.Deferred(function(n){t[0][3].add(r(0,n,Le(a)?a:m,n.notifyWith)),t[1][3].add(r(0,n,Le(e)?e:m)),t[2][3].add(r(0,n,Le(i)?i:p))}).promise()},promise:function(e){return null!=e?we.extend(e,a):a}},r={};return we.each(t,function(e,n){var o=n[2],s=n[5];a[n[1]]=o.add,s&&o.add(function(){i=s},t[3-e][2].disable,t[3-e][3].disable,t[0][2].lock,t[0][3].lock),o.add(n[3].fire),r[n[0]]=function(){return r[n[0]+"With"](this===r?void 0:this,arguments),this},r[n[0]+"With"]=o.fireWith}),a.promise(r),e&&e.call(r,r),r},when:function(e){var t=arguments.length,n=t,i=Array(n),a=he.call(arguments),r=we.Deferred(),o=function(e){return function(n){i[e]=this,a[e]=arguments.length>1?he.call(arguments):n,--t||r.resolveWith(i,a)}};if(t<=1&&(f(e,r.done(o(n)).resolve,r.reject,!t),"pending"===r.state()||Le(a[n]&&a[n].then)))return r.then();for(;n--;)f(a[n],o(n),r.reject);return r.promise()}});var Ie=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;we.Deferred.exceptionHook=function(e,t){n.console&&n.console.warn&&e&&Ie.test(e.name)&&n.console.warn("jQuery.Deferred exception: "+e.message,e.stack,t)},we.readyException=function(e){n.setTimeout(function(){throw e})};var Re=we.Deferred();we.fn.ready=function(e){return Re.then(e).catch(function(e){we.readyException(e)}),this},we.extend({isReady:!1,readyWait:1,ready:function(e){(!0===e?--we.readyWait:we.isReady)||(we.isReady=!0,!0!==e&&--we.readyWait>0||Re.resolveWith(ue,[we]))}}),we.ready.then=Re.then,"complete"===ue.readyState||"loading"!==ue.readyState&&!ue.documentElement.doScroll?n.setTimeout(we.ready):(ue.addEventListener("DOMContentLoaded",_),n.addEventListener("load",_));var Ne=function(e,t,n,i,a,r,o){var d=0,l=e.length,u=null==n;if("object"===s(n)){a=!0;for(d in n)Ne(e,t,d,n[d],!0,r,o)}else if(void 0!==i&&(a=!0,Le(i)||(o=!0),u&&(o?(t.call(e,i),t=null):(u=t,t=function(e,t,n){return u.call(we(e),n)})),t))for(;d1,null,!0)},removeData:function(e){return this.each(function(){Je.remove(this,e)})}}),we.extend({queue:function(e,t,n){var i;if(e)return t=(t||"fx")+"queue",i=Be.get(e,t),n&&(!i||Array.isArray(n)?i=Be.access(e,t,we.makeArray(n)):i.push(n)),i||[]},dequeue:function(e,t){t=t||"fx";var n=we.queue(e,t),i=n.length,a=n.shift(),r=we._queueHooks(e,t),o=function(){we.dequeue(e,t)};"inprogress"===a&&(a=n.shift(),i--),a&&("fx"===t&&n.unshift("inprogress"),delete r.stop,a.call(e,o,r)),!i&&r&&r.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return Be.get(e,n)||Be.access(e,n,{empty:we.Callbacks("once memory").add(function(){Be.remove(e,[t+"queue",n])})})}}),we.fn.extend({queue:function(e,t){var n=2;return"string"!=typeof e&&(t=e,e="fx",n--),arguments.length\x20\t\r\n\f]+)/i,tt=/^$|^module$|\/(?:java|ecma)script/i,nt={option:[1,""],thead:[1,"","
    "],col:[2,"","
    "],tr:[2,"","
    "],td:[3,"","
    "],_default:[0,"",""]};nt.optgroup=nt.option,nt.tbody=nt.tfoot=nt.colgroup=nt.caption=nt.thead,nt.th=nt.td;var it=/<|&#?\w+;/;!function(){var e=ue.createDocumentFragment(),t=e.appendChild(ue.createElement("div")),n=ue.createElement("input");n.setAttribute("type","radio"),n.setAttribute("checked","checked"),n.setAttribute("name","t"),t.appendChild(n),be.checkClone=t.cloneNode(!0).cloneNode(!0).lastChild.checked,t.innerHTML="",be.noCloneChecked=!!t.cloneNode(!0).lastChild.defaultValue}();var at=ue.documentElement,rt=/^key/,ot=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,st=/^([^.]*)(?:\.(.+)|)/;we.event={global:{},add:function(e,t,n,i,a){var r,o,s,d,l,u,c,h,m,p,f,_=Be.get(e);if(_)for(n.handler&&(r=n,n=r.handler,a=r.selector),a&&we.find.matchesSelector(at,a),n.guid||(n.guid=we.guid++),(d=_.events)||(d=_.events={}),(o=_.handle)||(o=_.handle=function(t){return void 0!==we&&we.event.triggered!==t.type?we.event.dispatch.apply(e,arguments):void 0}),t=(t||"").match(Ae)||[""],l=t.length;l--;)s=st.exec(t[l])||[],m=f=s[1],p=(s[2]||"").split(".").sort(),m&&(c=we.event.special[m]||{},m=(a?c.delegateType:c.bindType)||m,c=we.event.special[m]||{},u=we.extend({type:m,origType:f,data:i,handler:n,guid:n.guid,selector:a,needsContext:a&&we.expr.match.needsContext.test(a),namespace:p.join(".")},r),(h=d[m])||(h=d[m]=[],h.delegateCount=0,c.setup&&!1!==c.setup.call(e,i,p,o)||e.addEventListener&&e.addEventListener(m,o)),c.add&&(c.add.call(e,u),u.handler.guid||(u.handler.guid=n.guid)),a?h.splice(h.delegateCount++,0,u):h.push(u),we.event.global[m]=!0)},remove:function(e,t,n,i,a){var r,o,s,d,l,u,c,h,m,p,f,_=Be.hasData(e)&&Be.get(e);if(_&&(d=_.events)){for(t=(t||"").match(Ae)||[""],l=t.length;l--;)if(s=st.exec(t[l])||[],m=f=s[1],p=(s[2]||"").split(".").sort(),m){for(c=we.event.special[m]||{},m=(i?c.delegateType:c.bindType)||m,h=d[m]||[],s=s[2]&&new RegExp("(^|\\.)"+p.join("\\.(?:.*\\.|)")+"(\\.|$)"),o=r=h.length;r--;)u=h[r],!a&&f!==u.origType||n&&n.guid!==u.guid||s&&!s.test(u.namespace)||i&&i!==u.selector&&("**"!==i||!u.selector)||(h.splice(r,1),u.selector&&h.delegateCount--,c.remove&&c.remove.call(e,u));o&&!h.length&&(c.teardown&&!1!==c.teardown.call(e,p,_.handle)||we.removeEvent(e,m,_.handle),delete d[m])}else for(m in d)we.event.remove(e,m+t[l],n,i,!0);we.isEmptyObject(d)&&Be.remove(e,"handle events")}},dispatch:function(e){var t,n,i,a,r,o,s=we.event.fix(e),d=new Array(arguments.length),l=(Be.get(this,"events")||{})[s.type]||[],u=we.event.special[s.type]||{};for(d[0]=s,t=1;t=1))for(;l!==this;l=l.parentNode||this)if(1===l.nodeType&&("click"!==e.type||!0!==l.disabled)){for(r=[],o={},n=0;n-1:we.find(a,this,null,[l]).length),o[a]&&r.push(i);r.length&&s.push({elem:l,handlers:r})}return l=this,d\x20\t\r\n\f]*)[^>]*)\/>/gi,lt=/\s*$/g;we.extend({htmlPrefilter:function(e){return e.replace(dt,"<$1>")},clone:function(e,t,n){var i,a,r,o,s=e.cloneNode(!0),d=we.contains(e.ownerDocument,e);if(!(be.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||we.isXMLDoc(e)))for(o=w(s),r=w(e),i=0,a=r.length;i0&&T(o,!d&&w(e,"script")),s},cleanData:function(e){for(var t,n,i,a=we.event.special,r=0;void 0!==(n=e[r]);r++)if(We(n)){if(t=n[Be.expando]){if(t.events)for(i in t.events)a[i]?we.event.remove(n,i):we.removeEvent(n,i,t.handle);n[Be.expando]=void 0}n[Je.expando]&&(n[Je.expando]=void 0)}}}),we.fn.extend({detach:function(e){return R(this,e,!0)},remove:function(e){return R(this,e)},text:function(e){return Ne(this,function(e){return void 0===e?we.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)})},null,e,arguments.length)},append:function(){return I(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){E(this,e).appendChild(e)}})},prepend:function(){return I(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=E(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return I(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return I(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(we.cleanData(w(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return we.clone(this,e,t)})},html:function(e){return Ne(this,function(e){var t=this[0]||{},n=0,i=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!lt.test(e)&&!nt[(et.exec(e)||["",""])[1].toLowerCase()]){e=we.htmlPrefilter(e);try{for(;n1)}}),we.Tween=$,$.prototype={constructor:$,init:function(e,t,n,i,a,r){this.elem=e,this.prop=n,this.easing=a||we.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=i,this.unit=r||(we.cssNumber[n]?"":"px")},cur:function(){var e=$.propHooks[this.prop];return e&&e.get?e.get(this):$.propHooks._default.get(this)},run:function(e){var t,n=$.propHooks[this.prop];return this.options.duration?this.pos=t=we.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):$.propHooks._default.set(this),this}},$.prototype.init.prototype=$.prototype,$.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=we.css(e.elem,e.prop,""),t&&"auto"!==t?t:0)},set:function(e){we.fx.step[e.prop]?we.fx.step[e.prop](e):1!==e.elem.nodeType||null==e.elem.style[we.cssProps[e.prop]]&&!we.cssHooks[e.prop]?e.elem[e.prop]=e.now:we.style(e.elem,e.prop,e.now+e.unit)}}},$.propHooks.scrollTop=$.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},we.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},we.fx=$.prototype.init,we.fx.step={};var bt,Lt,Dt=/^(?:toggle|show|hide)$/,kt=/queueHooks$/;we.Animation=we.extend(Q,{tweeners:{"*":[function(e,t){var n=this.createTween(e,t);return L(n.elem,e,Ge.exec(t),n),n}]},tweener:function(e,t){Le(e)?(t=e,e=["*"]):e=e.match(Ae);for(var n,i=0,a=e.length;i1)},removeAttr:function(e){return this.each(function(){we.removeAttr(this,e)})}}),we.extend({attr:function(e,t,n){var i,a,r=e.nodeType;if(3!==r&&8!==r&&2!==r)return void 0===e.getAttribute?we.prop(e,t,n):(1===r&&we.isXMLDoc(e)||(a=we.attrHooks[t.toLowerCase()]||(we.expr.match.bool.test(t)?wt:void 0)),void 0!==n?null===n?void we.removeAttr(e,t):a&&"set"in a&&void 0!==(i=a.set(e,n,t))?i:(e.setAttribute(t,n+""),n):a&&"get"in a&&null!==(i=a.get(e,t))?i:(i=we.find.attr(e,t),null==i?void 0:i))},attrHooks:{type:{set:function(e,t){if(!be.radioValue&&"radio"===t&&l(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,i=0,a=t&&t.match(Ae);if(a&&1===e.nodeType)for(;n=a[i++];)e.removeAttribute(n)}}),wt={set:function(e,t,n){return!1===t?we.removeAttr(e,n):e.setAttribute(n,n),n}},we.each(we.expr.match.bool.source.match(/\w+/g),function(e,t){var n=Tt[t]||we.find.attr;Tt[t]=function(e,t,i){var a,r,o=t.toLowerCase();return i||(r=Tt[o],Tt[o]=a,a=null!=n(e,t,i)?o:null,Tt[o]=r),a}});var xt=/^(?:input|select|textarea|button)$/i,Yt=/^(?:a|area)$/i;we.fn.extend({prop:function(e,t){return Ne(this,we.prop,e,t,arguments.length>1)},removeProp:function(e){return this.each(function(){delete this[we.propFix[e]||e]})}}),we.extend({prop:function(e,t,n){var i,a,r=e.nodeType;if(3!==r&&8!==r&&2!==r)return 1===r&&we.isXMLDoc(e)||(t=we.propFix[t]||t,a=we.propHooks[t]),void 0!==n?a&&"set"in a&&void 0!==(i=a.set(e,n,t))?i:e[t]=n:a&&"get"in a&&null!==(i=a.get(e,t))?i:e[t]},propHooks:{tabIndex:{get:function(e){var t=we.find.attr(e,"tabindex");return t?parseInt(t,10):xt.test(e.nodeName)||Yt.test(e.nodeName)&&e.href?0:-1}}},propFix:{for:"htmlFor",class:"className"}}),be.optSelected||(we.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),we.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){we.propFix[this.toLowerCase()]=this}),we.fn.extend({addClass:function(e){var t,n,i,a,r,o,s,d=0;if(Le(e))return this.each(function(t){we(this).addClass(e.call(this,t,te(this)))});if(t=ne(e),t.length)for(;n=this[d++];)if(a=te(n),i=1===n.nodeType&&" "+ee(a)+" "){for(o=0;r=t[o++];)i.indexOf(" "+r+" ")<0&&(i+=r+" ");s=ee(i),a!==s&&n.setAttribute("class",s)}return this},removeClass:function(e){var t,n,i,a,r,o,s,d=0;if(Le(e))return this.each(function(t){we(this).removeClass(e.call(this,t,te(this)))});if(!arguments.length)return this.attr("class","");if(t=ne(e),t.length)for(;n=this[d++];)if(a=te(n),i=1===n.nodeType&&" "+ee(a)+" "){for(o=0;r=t[o++];)for(;i.indexOf(" "+r+" ")>-1;)i=i.replace(" "+r+" "," ");s=ee(i),a!==s&&n.setAttribute("class",s)}return this},toggleClass:function(e,t){var n=typeof e,i="string"===n||Array.isArray(e);return"boolean"==typeof t&&i?t?this.addClass(e):this.removeClass(e):Le(e)?this.each(function(n){we(this).toggleClass(e.call(this,n,te(this),t),t)}):this.each(function(){var t,a,r,o;if(i)for(a=0,r=we(this),o=ne(e);t=o[a++];)r.hasClass(t)?r.removeClass(t):r.addClass(t);else void 0!==e&&"boolean"!==n||(t=te(this),t&&Be.set(this,"__className__",t),this.setAttribute&&this.setAttribute("class",t||!1===e?"":Be.get(this,"__className__")||""))})},hasClass:function(e){var t,n,i=0;for(t=" "+e+" ";n=this[i++];)if(1===n.nodeType&&(" "+ee(te(n))+" ").indexOf(t)>-1)return!0;return!1}});var St=/\r/g;we.fn.extend({val:function(e){var t,n,i,a=this[0];{if(arguments.length)return i=Le(e),this.each(function(n){var a;1===this.nodeType&&(a=i?e.call(this,n,we(this).val()):e,null==a?a="":"number"==typeof a?a+="":Array.isArray(a)&&(a=we.map(a,function(e){return null==e?"":e+""})),(t=we.valHooks[this.type]||we.valHooks[this.nodeName.toLowerCase()])&&"set"in t&&void 0!==t.set(this,a,"value")||(this.value=a))});if(a)return(t=we.valHooks[a.type]||we.valHooks[a.nodeName.toLowerCase()])&&"get"in t&&void 0!==(n=t.get(a,"value"))?n:(n=a.value,"string"==typeof n?n.replace(St,""):null==n?"":n)}}}),we.extend({valHooks:{option:{get:function(e){var t=we.find.attr(e,"value");return null!=t?t:ee(we.text(e))}},select:{get:function(e){var t,n,i,a=e.options,r=e.selectedIndex,o="select-one"===e.type,s=o?null:[],d=o?r+1:a.length;for(i=r<0?d:o?r:0;i-1)&&(n=!0);return n||(e.selectedIndex=-1),r}}}}),we.each(["radio","checkbox"],function(){we.valHooks[this]={set:function(e,t){if(Array.isArray(t))return e.checked=we.inArray(we(e).val(),t)>-1}},be.checkOn||(we.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})}),be.focusin="onfocusin"in n;var Ht=/^(?:focusinfocus|focusoutblur)$/,Ct=function(e){e.stopPropagation()};we.extend(we.event,{trigger:function(e,t,i,a){var r,o,s,d,l,u,c,h,m=[i||ue],p=ye.call(e,"type")?e.type:e,f=ye.call(e,"namespace")?e.namespace.split("."):[];if(o=h=s=i=i||ue,3!==i.nodeType&&8!==i.nodeType&&!Ht.test(p+we.event.triggered)&&(p.indexOf(".")>-1&&(f=p.split("."),p=f.shift(),f.sort()),l=p.indexOf(":")<0&&"on"+p,e=e[we.expando]?e:new we.Event(p,"object"==typeof e&&e),e.isTrigger=a?2:3,e.namespace=f.join("."),e.rnamespace=e.namespace?new RegExp("(^|\\.)"+f.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,e.result=void 0,e.target||(e.target=i),t=null==t?[e]:we.makeArray(t,[e]),c=we.event.special[p]||{},a||!c.trigger||!1!==c.trigger.apply(i,t))){if(!a&&!c.noBubble&&!De(i)){for(d=c.delegateType||p,Ht.test(d+p)||(o=o.parentNode);o;o=o.parentNode)m.push(o),s=o;s===(i.ownerDocument||ue)&&m.push(s.defaultView||s.parentWindow||n)}for(r=0;(o=m[r++])&&!e.isPropagationStopped();)h=o,e.type=r>1?d:c.bindType||p,u=(Be.get(o,"events")||{})[e.type]&&Be.get(o,"handle"),u&&u.apply(o,t),(u=l&&o[l])&&u.apply&&We(o)&&(e.result=u.apply(o,t),!1===e.result&&e.preventDefault());return e.type=p,a||e.isDefaultPrevented()||c._default&&!1!==c._default.apply(m.pop(),t)||!We(i)||l&&Le(i[p])&&!De(i)&&(s=i[l],s&&(i[l]=null),we.event.triggered=p,e.isPropagationStopped()&&h.addEventListener(p,Ct),i[p](),e.isPropagationStopped()&&h.removeEventListener(p,Ct),we.event.triggered=void 0,s&&(i[l]=s)),e.result}},simulate:function(e,t,n){var i=we.extend(new we.Event,n,{type:e,isSimulated:!0});we.event.trigger(i,null,t)}}),we.fn.extend({trigger:function(e,t){return this.each(function(){we.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];if(n)return we.event.trigger(e,t,n,!0)}}),be.focusin||we.each({focus:"focusin",blur:"focusout"},function(e,t){var n=function(e){we.event.simulate(t,e.target,we.event.fix(e))};we.event.special[t]={setup:function(){var i=this.ownerDocument||this,a=Be.access(i,t);a||i.addEventListener(e,n,!0),Be.access(i,t,(a||0)+1)},teardown:function(){var i=this.ownerDocument||this,a=Be.access(i,t)-1;a?Be.access(i,t,a):(i.removeEventListener(e,n,!0),Be.remove(i,t))}}});var Et=n.location,Pt=Date.now(),jt=/\?/;we.parseXML=function(e){var t;if(!e||"string"!=typeof e)return null;try{t=(new n.DOMParser).parseFromString(e,"text/xml")}catch(e){t=void 0}return t&&!t.getElementsByTagName("parsererror").length||we.error("Invalid XML: "+e),t};var Ot=/\[\]$/,At=/\r?\n/g,It=/^(?:submit|button|image|reset|file)$/i,Rt=/^(?:input|select|textarea|keygen)/i;we.param=function(e,t){var n,i=[],a=function(e,t){var n=Le(t)?t():t;i[i.length]=encodeURIComponent(e)+"="+encodeURIComponent(null==n?"":n)};if(Array.isArray(e)||e.jquery&&!we.isPlainObject(e))we.each(e,function(){a(this.name,this.value)});else for(n in e)ie(n,e[n],t,a);return i.join("&")},we.fn.extend({serialize:function(){return we.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=we.prop(this,"elements");return e?we.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!we(this).is(":disabled")&&Rt.test(this.nodeName)&&!It.test(e)&&(this.checked||!Qe.test(e))}).map(function(e,t){var n=we(this).val();return null==n?null:Array.isArray(n)?we.map(n,function(e){return{name:t.name,value:e.replace(At,"\r\n")}}):{name:t.name,value:n.replace(At,"\r\n")}}).get()}});var Nt=/%20/g,Ft=/#.*$/,zt=/([?&])_=[^&]*/,Wt=/^(.*?):[ \t]*([^\r\n]*)$/gm,Bt=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Jt=/^(?:GET|HEAD)$/,Vt=/^\/\//,$t={},Ut={},Gt="*/".concat("*"),qt=ue.createElement("a");qt.href=Et.href,we.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Et.href,type:"GET",isLocal:Bt.test(Et.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Gt,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":we.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?oe(oe(e,we.ajaxSettings),t):oe(we.ajaxSettings,e)},ajaxPrefilter:ae($t),ajaxTransport:ae(Ut),ajax:function(e,t){function i(e,t,i,s){var l,h,m,M,b,L=t;u||(u=!0,d&&n.clearTimeout(d),a=void 0,o=s||"",D.readyState=e>0?4:0,l=e>=200&&e<300||304===e,i&&(M=se(p,D,i)),M=de(p,M,D,l),l?(p.ifModified&&(b=D.getResponseHeader("Last-Modified"),b&&(we.lastModified[r]=b),(b=D.getResponseHeader("etag"))&&(we.etag[r]=b)),204===e||"HEAD"===p.type?L="nocontent":304===e?L="notmodified":(L=M.state,h=M.data,m=M.error,l=!m)):(m=L,!e&&L||(L="error",e<0&&(e=0))),D.status=e,D.statusText=(t||L)+"",l?g.resolveWith(f,[h,L,D]):g.rejectWith(f,[D,L,m]),D.statusCode(v),v=void 0,c&&_.trigger(l?"ajaxSuccess":"ajaxError",[D,p,l?h:m]),y.fireWith(f,[D,L]),c&&(_.trigger("ajaxComplete",[D,p]),--we.active||we.event.trigger("ajaxStop")))}"object"==typeof e&&(t=e,e=void 0),t=t||{};var a,r,o,s,d,l,u,c,h,m,p=we.ajaxSetup({},t),f=p.context||p,_=p.context&&(f.nodeType||f.jquery)?we(f):we.event,g=we.Deferred(),y=we.Callbacks("once memory"),v=p.statusCode||{},M={},b={},L="canceled",D={readyState:0,getResponseHeader:function(e){var t;if(u){if(!s)for(s={};t=Wt.exec(o);)s[t[1].toLowerCase()]=t[2];t=s[e.toLowerCase()]}return null==t?null:t},getAllResponseHeaders:function(){return u?o:null},setRequestHeader:function(e,t){return null==u&&(e=b[e.toLowerCase()]=b[e.toLowerCase()]||e,M[e]=t),this},overrideMimeType:function(e){return null==u&&(p.mimeType=e),this},statusCode:function(e){var t;if(e)if(u)D.always(e[D.status]);else for(t in e)v[t]=[v[t],e[t]];return this},abort:function(e){var t=e||L;return a&&a.abort(t),i(0,t),this}};if(g.promise(D),p.url=((e||p.url||Et.href)+"").replace(Vt,Et.protocol+"//"),p.type=t.method||t.type||p.method||p.type,p.dataTypes=(p.dataType||"*").toLowerCase().match(Ae)||[""],null==p.crossDomain){l=ue.createElement("a");try{l.href=p.url,l.href=l.href,p.crossDomain=qt.protocol+"//"+qt.host!=l.protocol+"//"+l.host}catch(e){p.crossDomain=!0}}if(p.data&&p.processData&&"string"!=typeof p.data&&(p.data=we.param(p.data,p.traditional)),re($t,p,t,D),u)return D;c=we.event&&p.global,c&&0==we.active++&&we.event.trigger("ajaxStart"),p.type=p.type.toUpperCase(),p.hasContent=!Jt.test(p.type),r=p.url.replace(Ft,""),p.hasContent?p.data&&p.processData&&0===(p.contentType||"").indexOf("application/x-www-form-urlencoded")&&(p.data=p.data.replace(Nt,"+")):(m=p.url.slice(r.length),p.data&&(p.processData||"string"==typeof p.data)&&(r+=(jt.test(r)?"&":"?")+p.data,delete p.data),!1===p.cache&&(r=r.replace(zt,"$1"),m=(jt.test(r)?"&":"?")+"_="+Pt+++m),p.url=r+m),p.ifModified&&(we.lastModified[r]&&D.setRequestHeader("If-Modified-Since",we.lastModified[r]),we.etag[r]&&D.setRequestHeader("If-None-Match",we.etag[r])),(p.data&&p.hasContent&&!1!==p.contentType||t.contentType)&&D.setRequestHeader("Content-Type",p.contentType),D.setRequestHeader("Accept",p.dataTypes[0]&&p.accepts[p.dataTypes[0]]?p.accepts[p.dataTypes[0]]+("*"!==p.dataTypes[0]?", "+Gt+"; q=0.01":""):p.accepts["*"]);for(h in p.headers)D.setRequestHeader(h,p.headers[h]);if(p.beforeSend&&(!1===p.beforeSend.call(f,D,p)||u))return D.abort();if(L="abort",y.add(p.complete),D.done(p.success),D.fail(p.error),a=re(Ut,p,t,D)){if(D.readyState=1,c&&_.trigger("ajaxSend",[D,p]),u)return D;p.async&&p.timeout>0&&(d=n.setTimeout(function(){D.abort("timeout")},p.timeout));try{u=!1,a.send(M,i)}catch(e){if(u)throw e;i(-1,e)}}else i(-1,"No Transport");return D},getJSON:function(e,t,n){return we.get(e,t,n,"json")},getScript:function(e,t){return we.get(e,void 0,t,"script")}}),we.each(["get","post"],function(e,t){we[t]=function(e,n,i,a){return Le(n)&&(a=a||i,i=n,n=void 0),we.ajax(we.extend({url:e,type:t,dataType:a,data:n,success:i},we.isPlainObject(e)&&e))}}),we._evalUrl=function(e){return we.ajax({url:e,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,throws:!0})},we.fn.extend({wrapAll:function(e){var t;return this[0]&&(Le(e)&&(e=e.call(this[0])),t=we(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){for(var e=this;e.firstElementChild;)e=e.firstElementChild;return e}).append(this)),this},wrapInner:function(e){return Le(e)?this.each(function(t){we(this).wrapInner(e.call(this,t))}):this.each(function(){var t=we(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=Le(e);return this.each(function(n){we(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(e){return this.parent(e).not("body").each(function(){we(this).replaceWith(this.childNodes)}),this}}),we.expr.pseudos.hidden=function(e){return!we.expr.pseudos.visible(e)},we.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},we.ajaxSettings.xhr=function(){try{return new n.XMLHttpRequest}catch(e){}};var Kt={0:200,1223:204},Zt=we.ajaxSettings.xhr();be.cors=!!Zt&&"withCredentials"in Zt,be.ajax=Zt=!!Zt,we.ajaxTransport(function(e){var t,i;if(be.cors||Zt&&!e.crossDomain)return{send:function(a,r){var o,s=e.xhr();if(s.open(e.type,e.url,e.async,e.username,e.password),e.xhrFields)for(o in e.xhrFields)s[o]=e.xhrFields[o];e.mimeType&&s.overrideMimeType&&s.overrideMimeType(e.mimeType),e.crossDomain||a["X-Requested-With"]||(a["X-Requested-With"]="XMLHttpRequest");for(o in a)s.setRequestHeader(o,a[o]);t=function(e){return function(){t&&(t=i=s.onload=s.onerror=s.onabort=s.ontimeout=s.onreadystatechange=null,"abort"===e?s.abort():"error"===e?"number"!=typeof s.status?r(0,"error"):r(s.status,s.statusText):r(Kt[s.status]||s.status,s.statusText,"text"!==(s.responseType||"text")||"string"!=typeof s.responseText?{binary:s.response}:{text:s.responseText},s.getAllResponseHeaders()))}},s.onload=t(),i=s.onerror=s.ontimeout=t("error"),void 0!==s.onabort?s.onabort=i:s.onreadystatechange=function(){4===s.readyState&&n.setTimeout(function(){t&&i()})},t=t("abort");try{s.send(e.hasContent&&e.data||null)}catch(e){if(t)throw e}},abort:function(){t&&t()}}}),we.ajaxPrefilter(function(e){e.crossDomain&&(e.contents.script=!1)}),we.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(e){return we.globalEval(e),e}}}),we.ajaxPrefilter("script",function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET")}),we.ajaxTransport("script",function(e){if(e.crossDomain){var t,n;return{send:function(i,a){t=we("