/*
* @section      Style for login wrapper
* @description  This section holds specific style redeclarations for
*               login content wrapper
*/
.dropdown-menu .jx-header-account-wrapper {
  width: 25rem;
  padding: 2.5rem; }

.jx-header-account-wrapper.is-logged h3 {
  overflow: hidden;
  text-overflow: ellipsis; }

@media (min-width: 768px) and (min-width: 576px) {
  .dropdown-menu .jx-header-account-wrapper.is-logged.twocolumns {
    width: 41.66667rem; } }

@media (min-width: 768px) {
  .jx-header-account-wrapper.is-logged.twocolumns .user-data {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    margin-bottom: 1.66667rem; }
    .jx-header-account-wrapper.is-logged.twocolumns .user-data img {
      -webkit-box-flex: 0;
          -ms-flex: 0 0 30%;
              flex: 0 0 30%;
      max-width: 30%;
      margin-right: 1.66667rem;
      border: 0.16667rem solid #f6f6f6; }
    .jx-header-account-wrapper.is-logged.twocolumns .user-data h3 {
      -webkit-box-ordinal-group: 2;
          -ms-flex-order: 1;
              order: 1; }
  .jx-header-account-wrapper.is-logged.twocolumns ul {
    -webkit-column-count: 2;
            column-count: 2;
    -webkit-column-gap: 1.66667rem;
            column-gap: 1.66667rem;
    list-style-position: inside; } }

.jx-header-account-wrapper .header-login-content {
  display: none; }
  .jx-header-account-wrapper .header-login-content.active {
    display: block;
    max-height: none;
    overflow: visible; }

.jx-header-account-wrapper footer {
  text-align: center; }
  .jx-header-account-wrapper footer .register-link {
    margin-top: 0.83333rem; }

.jx-header-account-wrapper .radio-inline {
  margin-right: 1.66667rem; }
  .jx-header-account-wrapper .radio-inline:last-child {
    margin-right: 0; }
  .jx-header-account-wrapper .radio-inline .custom-radio {
    margin-right: 0; }

/*
* @section      MODAL AS LEFT/RIGHT SIDEBAR
* @description  Add "left" or "right" in modal parent div, after class="modal".
*/
.jx-header-account {
  /*Left*/
  /*Right*/ }
  .jx-header-account .modal.left .modal-dialog,
  .jx-header-account .modal.right .modal-dialog {
    position: fixed;
    margin: auto;
    width: 26.66667rem;
    height: 100%;
    -webkit-transform: translate3d(0%, 0, 0);
            transform: translate3d(0%, 0, 0); }
    @media (min-width: 768px) {
      .jx-header-account .modal.left .modal-dialog,
      .jx-header-account .modal.right .modal-dialog {
        width: 41.66667rem; } }
  .jx-header-account .modal.left .modal-content,
  .jx-header-account .modal.right .modal-content {
    height: 100%;
    overflow-y: auto; }
  .jx-header-account .modal.left.fade .modal-dialog {
    left: -26.66667rem;
    -webkit-transition: opacity 0.3s linear, left 0.3s ease-out;
    transition: opacity 0.3s linear, left 0.3s ease-out; }
    @media (min-width: 768px) {
      .jx-header-account .modal.left.fade .modal-dialog {
        left: -41.66667rem; } }
  .jx-header-account .modal.left.fade.in .modal-dialog {
    left: 0; }
  .jx-header-account .modal.right.fade .modal-dialog {
    right: -26.66667rem;
    -webkit-transition: opacity 0.3s linear, right 0.3s ease-out;
    transition: opacity 0.3s linear, right 0.3s ease-out; }
    @media (min-width: 768px) {
      .jx-header-account .modal.right.fade .modal-dialog {
        right: -41.66667rem; } }
  .jx-header-account .modal.right.fade.in .modal-dialog {
    right: 0; }

/*
* @section      Style for login wrapper
* @description  This section holds specific style redeclarations for
*               login content wrapper
*/
#wrapper .jx-header-account-wrapper, #footer .jx-header-account-wrapper {
  padding: 1.66667rem;
  max-width: 100%;
  margin-bottom: 2.5rem;
  background: #ffffff;
  -webkit-box-shadow: 0.16667rem 0.16667rem 0.66667rem 0 rgba(0, 0, 0, 0.2);
          box-shadow: 0.16667rem 0.16667rem 0.66667rem 0 rgba(0, 0, 0, 0.2); }
  #wrapper .jx-header-account-wrapper [class^="col-"], #wrapper .jx-header-account-wrapper [class*=" col-"], #footer .jx-header-account-wrapper [class^="col-"], #footer .jx-header-account-wrapper [class*=" col-"] {
    width: 100%;
    -webkit-box-flex: 0;
        -ms-flex: 0 0 100%;
            flex: 0 0 100%;
    text-align: left; }

/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9tb2R1bGVzL2p4aGVhZGVyYWNjb3VudC92aWV3cy9jc3MvQzovT3BlblNlcnZlci9kb21haW5zL2xvY2FsaG9zdC90aGVtZTE0NTAvdGhlbWVzL3RoZW1lXzE0NTAvX2Rldi9tb2R1bGVzL2p4aGVhZGVyYWNjb3VudC92aWV3cy9jc3MvQzovT3BlblNlcnZlci9kb21haW5zL2xvY2FsaG9zdC90aGVtZTE0NTAvdGhlbWVzL3RoZW1lXzE0NTAvX2Rldi9tb2R1bGVzL2p4aGVhZGVyYWNjb3VudC92aWV3cy9jc3MvanhoZWFkZXJhY2NvdW50LnNjc3MiLCJ3ZWJwYWNrOi8vLy4vbW9kdWxlcy9qeGhlYWRlcmFjY291bnQvdmlld3MvY3NzL0M6L09wZW5TZXJ2ZXIvZG9tYWlucy9sb2NhbGhvc3QvdGhlbWUxNDUwL3RoZW1lcy90aGVtZV8xNDUwL19kZXYvbW9kdWxlcy9qeGhlYWRlcmFjY291bnQvdmlld3MvY3NzL0M6L09wZW5TZXJ2ZXIvZG9tYWlucy9sb2NhbGhvc3QvdGhlbWUxNDUwL3RoZW1lcy90aGVtZV8xNDUwL19kZXYvbm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC9zY3NzL21peGlucy9fYnJlYWtwb2ludHMuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQTs7OztFQUlFO0FBR0E7RUFDRSxhQUFZO0VBQ1osZ0JBQWEsRUFDZDs7QUFKSDtFQU9NLGlCQUFnQjtFQUNoQix3QkFBdUIsRUFDeEI7O0FDNENEO0VEeENNO0lBQ0UsbUJBQVksRUFDYjs7QUFMUDtFQVZKO0lBa0JVLHFCQUFhO0lBQWIscUJBQWE7SUFBYixjQUFhO0lBQ2IsMEJBQW1CO1FBQW5CLHVCQUFtQjtZQUFuQixvQkFBbUI7SUFDbkIsMEJBQW1CLEVBVXBCO0lBOUJUO01Bc0JZLG9CQUFhO1VBQWIsa0JBQWE7Y0FBYixjQUFhO01BQ2IsZUFBYztNQUNkLHlCQUFrQjtNQUNsQixpQ0FBeUIsRUFDMUI7SUExQlg7TUE0QlksNkJBQVE7VUFBUixrQkFBUTtjQUFSLFNBQVEsRUFDVDtFQTdCWDtJQWdDVSx3QkFBZTtZQUFmLGdCQUFlO0lBQ2YsK0JBQWdCO1lBQWhCLHVCQUFnQjtJQUNoQiw0QkFBMkIsRUFDNUI7O0FBbkNUO0VBd0NJLGNBQWEsRUFNZDtFQTlDSDtJQTBDTSxlQUFjO0lBQ2QsaUJBQWdCO0lBQ2hCLGtCQUFpQixFQUNsQjs7QUE3Q0w7RUFnREksbUJBQWtCLEVBSW5CO0VBcERIO0lBa0RNLHVCQUFnQixFQUNqQjs7QUFuREw7RUFzREkseUJBQWtCLEVBT25CO0VBN0RIO0lBd0RNLGdCQUFlLEVBQ2hCO0VBekRMO0lBMkRNLGdCQUFlLEVBQ2hCOztBQUlMOzs7RUFHRTtBQUNGO0VBbUJFLFFBQVE7RUFhUixTQUFTLEVBWVY7RUE1Q0Q7O0lBR0ksZ0JBQWU7SUFDZixhQUFZO0lBQ1osbUJBQVk7SUFDWixhQUFZO0lBQ1oseUNBQWdDO1lBQWhDLGlDQUFnQyxFQUlqQztJQUhDO01BUko7O1FBU00sbUJBQVksRUFFZjtFQVhIOztJQWVJLGFBQVk7SUFDWixpQkFBZ0IsRUFDakI7RUFqQkg7SUFxQkksbUJBQVk7SUFDWiw0REFBbUQ7SUFBbkQsb0RBQW1ELEVBSXBEO0lBSEM7TUF2Qko7UUF3Qk0sbUJBQVksRUFFZjtFQTFCSDtJQTZCSSxRQUFPLEVBQ1I7RUE5Qkg7SUFrQ0ksb0JBQWE7SUFDYiw2REFBb0Q7SUFBcEQscURBQW9ELEVBSXJEO0lBSEM7TUFwQ0o7UUFxQ00sb0JBQWEsRUFFaEI7RUF2Q0g7SUEwQ0ksU0FBUSxFQUNUOztBQUdIOzs7O0VBSUU7QUFFRjtFQUVJLG9CQUFhO0VBQ2IsZ0JBQWU7RUFDZixzQkFBbUI7RUFDbkIsb0JBQW1CO0VBQ25CLDBFQUF3QztVQUF4QyxrRUFBd0MsRUFNekM7RUFaSDtJQVFNLFlBQVc7SUFDWCxvQkFBYztRQUFkLG1CQUFjO1lBQWQsZUFBYztJQUNkLGlCQUFnQixFQUNqQiIsImZpbGUiOiIuLlxcbW9kdWxlc1xcanhoZWFkZXJhY2NvdW50XFx2aWV3c1xcY3NzXFxqeGhlYWRlcmFjY291bnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiQGltcG9ydCBcImNzcy9wYXJ0aWFscy9fdmFyaWFibGVzXCI7XHJcbi8qXHJcbiogQHNlY3Rpb24gICAgICBTdHlsZSBmb3IgbG9naW4gd3JhcHBlclxyXG4qIEBkZXNjcmlwdGlvbiAgVGhpcyBzZWN0aW9uIGhvbGRzIHNwZWNpZmljIHN0eWxlIHJlZGVjbGFyYXRpb25zIGZvclxyXG4qICAgICAgICAgICAgICAgbG9naW4gY29udGVudCB3cmFwcGVyXHJcbiovXHJcblxyXG4uangtaGVhZGVyLWFjY291bnQtd3JhcHBlciB7XHJcbiAgLmRyb3Bkb3duLW1lbnUgJiB7XHJcbiAgICB3aWR0aDogMzAwcHg7XHJcbiAgICBwYWRkaW5nOiAzMHB4O1xyXG4gIH1cclxuICAmLmlzLWxvZ2dlZCB7XHJcbiAgICBoMyB7XHJcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xyXG4gICAgfVxyXG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XHJcbiAgICAgICYudHdvY29sdW1ucyB7XHJcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cChzbSkge1xyXG4gICAgICAgICAgLmRyb3Bkb3duLW1lbnUgJiB7XHJcbiAgICAgICAgICAgIHdpZHRoOiA1MDBweDtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgLnVzZXItZGF0YSB7XHJcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XHJcbiAgICAgICAgICBpbWcge1xyXG4gICAgICAgICAgICBmbGV4OiAwIDAgMzAlO1xyXG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMwJTtcclxuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAyMHB4O1xyXG4gICAgICAgICAgICBib3JkZXI6IDJweCBzb2xpZCAjZjZmNmY2O1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaDMge1xyXG4gICAgICAgICAgICBvcmRlcjogMTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgdWwge1xyXG4gICAgICAgICAgY29sdW1uLWNvdW50OiAyO1xyXG4gICAgICAgICAgY29sdW1uLWdhcDogMjBweDtcclxuICAgICAgICAgIGxpc3Qtc3R5bGUtcG9zaXRpb246IGluc2lkZTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgLmhlYWRlci1sb2dpbi1jb250ZW50IHtcclxuICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICAmLmFjdGl2ZSB7XHJcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICBtYXgtaGVpZ2h0OiBub25lO1xyXG4gICAgICBvdmVyZmxvdzogdmlzaWJsZTtcclxuICAgIH1cclxuICB9XHJcbiAgZm9vdGVyIHtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIC5yZWdpc3Rlci1saW5rIHtcclxuICAgICAgbWFyZ2luLXRvcDogMTBweDtcclxuICAgIH1cclxuICB9XHJcbiAgLnJhZGlvLWlubGluZSB7XHJcbiAgICBtYXJnaW4tcmlnaHQ6IDIwcHg7XHJcbiAgICAmOmxhc3QtY2hpbGQge1xyXG4gICAgICBtYXJnaW4tcmlnaHQ6IDA7XHJcbiAgICB9XHJcbiAgICAuY3VzdG9tLXJhZGlvIHtcclxuICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLypcclxuKiBAc2VjdGlvbiAgICAgIE1PREFMIEFTIExFRlQvUklHSFQgU0lERUJBUlxyXG4qIEBkZXNjcmlwdGlvbiAgQWRkIFwibGVmdFwiIG9yIFwicmlnaHRcIiBpbiBtb2RhbCBwYXJlbnQgZGl2LCBhZnRlciBjbGFzcz1cIm1vZGFsXCIuXHJcbiovXHJcbi5qeC1oZWFkZXItYWNjb3VudCB7XHJcbiAgLm1vZGFsLmxlZnQgLm1vZGFsLWRpYWxvZyxcclxuICAubW9kYWwucmlnaHQgLm1vZGFsLWRpYWxvZyB7XHJcbiAgICBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgICBtYXJnaW46IGF1dG87XHJcbiAgICB3aWR0aDogMzIwcHg7XHJcbiAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAlLCAwLCAwKTtcclxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xyXG4gICAgICB3aWR0aDogNTAwcHg7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAubW9kYWwubGVmdCAubW9kYWwtY29udGVudCxcclxuICAubW9kYWwucmlnaHQgLm1vZGFsLWNvbnRlbnQge1xyXG4gICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgb3ZlcmZsb3cteTogYXV0bztcclxuICB9XHJcblxyXG4gIC8qTGVmdCovXHJcbiAgLm1vZGFsLmxlZnQuZmFkZSAubW9kYWwtZGlhbG9nIHtcclxuICAgIGxlZnQ6IC0zMjBweDtcclxuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcyBsaW5lYXIsIGxlZnQgMC4zcyBlYXNlLW91dDtcclxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xyXG4gICAgICBsZWZ0OiAtNTAwcHg7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAubW9kYWwubGVmdC5mYWRlLmluIC5tb2RhbC1kaWFsb2cge1xyXG4gICAgbGVmdDogMDtcclxuICB9XHJcblxyXG4gIC8qUmlnaHQqL1xyXG4gIC5tb2RhbC5yaWdodC5mYWRlIC5tb2RhbC1kaWFsb2cge1xyXG4gICAgcmlnaHQ6IC0zMjBweDtcclxuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcyBsaW5lYXIsIHJpZ2h0IDAuM3MgZWFzZS1vdXQ7XHJcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcclxuICAgICAgcmlnaHQ6IC01MDBweDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5tb2RhbC5yaWdodC5mYWRlLmluIC5tb2RhbC1kaWFsb2cge1xyXG4gICAgcmlnaHQ6IDA7XHJcbiAgfVxyXG59XHJcblxyXG4vKlxyXG4qIEBzZWN0aW9uICAgICAgU3R5bGUgZm9yIGxvZ2luIHdyYXBwZXJcclxuKiBAZGVzY3JpcHRpb24gIFRoaXMgc2VjdGlvbiBob2xkcyBzcGVjaWZpYyBzdHlsZSByZWRlY2xhcmF0aW9ucyBmb3JcclxuKiAgICAgICAgICAgICAgIGxvZ2luIGNvbnRlbnQgd3JhcHBlclxyXG4qL1xyXG5cclxuI3dyYXBwZXIsICNmb290ZXIge1xyXG4gIC5qeC1oZWFkZXItYWNjb3VudC13cmFwcGVyIHtcclxuICAgIHBhZGRpbmc6IDIwcHg7XHJcbiAgICBtYXgtd2lkdGg6IDEwMCU7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAzMHB4O1xyXG4gICAgYmFja2dyb3VuZDogI2ZmZmZmZjtcclxuICAgIGJveC1zaGFkb3c6IDJweCAycHggOHB4IDAgcmdiYSgwLDAsMCwuMik7XHJcbiAgICBbY2xhc3NePVwiY29sLVwiXSwgW2NsYXNzKj1cIiBjb2wtXCJdIHtcclxuICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgIGZsZXg6IDAgMCAxMDAlO1xyXG4gICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9tb2R1bGVzL2p4aGVhZGVyYWNjb3VudC92aWV3cy9jc3MvQzovT3BlblNlcnZlci9kb21haW5zL2xvY2FsaG9zdC90aGVtZTE0NTAvdGhlbWVzL3RoZW1lXzE0NTAvX2Rldi9tb2R1bGVzL2p4aGVhZGVyYWNjb3VudC92aWV3cy9jc3MvQzovT3BlblNlcnZlci9kb21haW5zL2xvY2FsaG9zdC90aGVtZTE0NTAvdGhlbWVzL3RoZW1lXzE0NTAvX2Rldi9tb2R1bGVzL2p4aGVhZGVyYWNjb3VudC92aWV3cy9jc3MvanhoZWFkZXJhY2NvdW50LnNjc3MiLCIvLyBCcmVha3BvaW50IHZpZXdwb3J0IHNpemVzIGFuZCBtZWRpYSBxdWVyaWVzLlxuLy9cbi8vIEJyZWFrcG9pbnRzIGFyZSBkZWZpbmVkIGFzIGEgbWFwIG9mIChuYW1lOiBtaW5pbXVtIHdpZHRoKSwgb3JkZXIgZnJvbSBzbWFsbCB0byBsYXJnZTpcbi8vXG4vLyAgICAoeHM6IDAsIHNtOiA1NzZweCwgbWQ6IDc2OHB4LCBsZzogOTkycHgsIHhsOiAxMjAwcHgpXG4vL1xuLy8gVGhlIG1hcCBkZWZpbmVkIGluIHRoZSBgJGdyaWQtYnJlYWtwb2ludHNgIGdsb2JhbCB2YXJpYWJsZSBpcyB1c2VkIGFzIHRoZSBgJGJyZWFrcG9pbnRzYCBhcmd1bWVudCBieSBkZWZhdWx0LlxuXG4vLyBOYW1lIG9mIHRoZSBuZXh0IGJyZWFrcG9pbnQsIG9yIG51bGwgZm9yIHRoZSBsYXN0IGJyZWFrcG9pbnQuXG4vL1xuLy8gICAgPj4gYnJlYWtwb2ludC1uZXh0KHNtKVxuLy8gICAgbWRcbi8vICAgID4+IGJyZWFrcG9pbnQtbmV4dChzbSwgKHhzOiAwLCBzbTogNTc2cHgsIG1kOiA3NjhweCwgbGc6IDk5MnB4LCB4bDogMTIwMHB4KSlcbi8vICAgIG1kXG4vLyAgICA+PiBicmVha3BvaW50LW5leHQoc20sICRicmVha3BvaW50LW5hbWVzOiAoeHMgc20gbWQgbGcgeGwpKVxuLy8gICAgbWRcbkBmdW5jdGlvbiBicmVha3BvaW50LW5leHQoJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMsICRicmVha3BvaW50LW5hbWVzOiBtYXAta2V5cygkYnJlYWtwb2ludHMpKSB7XG4gICRuOiBpbmRleCgkYnJlYWtwb2ludC1uYW1lcywgJG5hbWUpO1xuICBAcmV0dXJuIGlmKCRuIDwgbGVuZ3RoKCRicmVha3BvaW50LW5hbWVzKSwgbnRoKCRicmVha3BvaW50LW5hbWVzLCAkbiArIDEpLCBudWxsKTtcbn1cblxuLy8gTWluaW11bSBicmVha3BvaW50IHdpZHRoLiBOdWxsIGZvciB0aGUgc21hbGxlc3QgKGZpcnN0KSBicmVha3BvaW50LlxuLy9cbi8vICAgID4+IGJyZWFrcG9pbnQtbWluKHNtLCAoeHM6IDAsIHNtOiA1NzZweCwgbWQ6IDc2OHB4LCBsZzogOTkycHgsIHhsOiAxMjAwcHgpKVxuLy8gICAgNTc2cHhcbkBmdW5jdGlvbiBicmVha3BvaW50LW1pbigkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xuICAkbWluOiBtYXAtZ2V0KCRicmVha3BvaW50cywgJG5hbWUpO1xuICBAcmV0dXJuIGlmKCRtaW4gIT0gMCwgJG1pbiwgbnVsbCk7XG59XG5cbi8vIE1heGltdW0gYnJlYWtwb2ludCB3aWR0aC4gTnVsbCBmb3IgdGhlIGxhcmdlc3QgKGxhc3QpIGJyZWFrcG9pbnQuXG4vLyBUaGUgbWF4aW11bSB2YWx1ZSBpcyBjYWxjdWxhdGVkIGFzIHRoZSBtaW5pbXVtIG9mIHRoZSBuZXh0IG9uZSBsZXNzIDAuMDJweFxuLy8gdG8gd29yayBhcm91bmQgdGhlIGxpbWl0YXRpb25zIG9mIGBtaW4tYCBhbmQgYG1heC1gIHByZWZpeGVzIGFuZCB2aWV3cG9ydHMgd2l0aCBmcmFjdGlvbmFsIHdpZHRocy5cbi8vIFNlZSBodHRwczovL3d3dy53My5vcmcvVFIvbWVkaWFxdWVyaWVzLTQvI21xLW1pbi1tYXhcbi8vIFVzZXMgMC4wMnB4IHJhdGhlciB0aGFuIDAuMDFweCB0byB3b3JrIGFyb3VuZCBhIGN1cnJlbnQgcm91bmRpbmcgYnVnIGluIFNhZmFyaS5cbi8vIFNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc4MjYxXG4vL1xuLy8gICAgPj4gYnJlYWtwb2ludC1tYXgoc20sICh4czogMCwgc206IDU3NnB4LCBtZDogNzY4cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweCkpXG4vLyAgICA3NjcuOThweFxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtbWF4KCRuYW1lLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XG4gICRuZXh0OiBicmVha3BvaW50LW5leHQoJG5hbWUsICRicmVha3BvaW50cyk7XG4gIEByZXR1cm4gaWYoJG5leHQsIGJyZWFrcG9pbnQtbWluKCRuZXh0LCAkYnJlYWtwb2ludHMpIC0gLjAycHgsIG51bGwpO1xufVxuXG4vLyBSZXR1cm5zIGEgYmxhbmsgc3RyaW5nIGlmIHNtYWxsZXN0IGJyZWFrcG9pbnQsIG90aGVyd2lzZSByZXR1cm5zIHRoZSBuYW1lIHdpdGggYSBkYXNoIGluZnJvbnQuXG4vLyBVc2VmdWwgZm9yIG1ha2luZyByZXNwb25zaXZlIHV0aWxpdGllcy5cbi8vXG4vLyAgICA+PiBicmVha3BvaW50LWluZml4KHhzLCAoeHM6IDAsIHNtOiA1NzZweCwgbWQ6IDc2OHB4LCBsZzogOTkycHgsIHhsOiAxMjAwcHgpKVxuLy8gICAgXCJcIiAgKFJldHVybnMgYSBibGFuayBzdHJpbmcpXG4vLyAgICA+PiBicmVha3BvaW50LWluZml4KHNtLCAoeHM6IDAsIHNtOiA1NzZweCwgbWQ6IDc2OHB4LCBsZzogOTkycHgsIHhsOiAxMjAwcHgpKVxuLy8gICAgXCItc21cIlxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtaW5maXgoJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcbiAgQHJldHVybiBpZihicmVha3BvaW50LW1pbigkbmFtZSwgJGJyZWFrcG9pbnRzKSA9PSBudWxsLCBcIlwiLCBcIi0jeyRuYW1lfVwiKTtcbn1cblxuLy8gTWVkaWEgb2YgYXQgbGVhc3QgdGhlIG1pbmltdW0gYnJlYWtwb2ludCB3aWR0aC4gTm8gcXVlcnkgZm9yIHRoZSBzbWFsbGVzdCBicmVha3BvaW50LlxuLy8gTWFrZXMgdGhlIEBjb250ZW50IGFwcGx5IHRvIHRoZSBnaXZlbiBicmVha3BvaW50IGFuZCB3aWRlci5cbkBtaXhpbiBtZWRpYS1icmVha3BvaW50LXVwKCRuYW1lLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XG4gICRtaW46IGJyZWFrcG9pbnQtbWluKCRuYW1lLCAkYnJlYWtwb2ludHMpO1xuICBAaWYgJG1pbiB7XG4gICAgQG1lZGlhIChtaW4td2lkdGg6ICRtaW4pIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfSBAZWxzZSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8gTWVkaWEgb2YgYXQgbW9zdCB0aGUgbWF4aW11bSBicmVha3BvaW50IHdpZHRoLiBObyBxdWVyeSBmb3IgdGhlIGxhcmdlc3QgYnJlYWtwb2ludC5cbi8vIE1ha2VzIHRoZSBAY29udGVudCBhcHBseSB0byB0aGUgZ2l2ZW4gYnJlYWtwb2ludCBhbmQgbmFycm93ZXIuXG5AbWl4aW4gbWVkaWEtYnJlYWtwb2ludC1kb3duKCRuYW1lLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XG4gICRtYXg6IGJyZWFrcG9pbnQtbWF4KCRuYW1lLCAkYnJlYWtwb2ludHMpO1xuICBAaWYgJG1heCB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRtYXgpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfSBAZWxzZSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8gTWVkaWEgdGhhdCBzcGFucyBtdWx0aXBsZSBicmVha3BvaW50IHdpZHRocy5cbi8vIE1ha2VzIHRoZSBAY29udGVudCBhcHBseSBiZXR3ZWVuIHRoZSBtaW4gYW5kIG1heCBicmVha3BvaW50c1xuQG1peGluIG1lZGlhLWJyZWFrcG9pbnQtYmV0d2VlbigkbG93ZXIsICR1cHBlciwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xuICAkbWluOiBicmVha3BvaW50LW1pbigkbG93ZXIsICRicmVha3BvaW50cyk7XG4gICRtYXg6IGJyZWFrcG9pbnQtbWF4KCR1cHBlciwgJGJyZWFrcG9pbnRzKTtcblxuICBAaWYgJG1pbiAhPSBudWxsIGFuZCAkbWF4ICE9IG51bGwge1xuICAgIEBtZWRpYSAobWluLXdpZHRoOiAkbWluKSBhbmQgKG1heC13aWR0aDogJG1heCkge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9IEBlbHNlIGlmICRtYXggPT0gbnVsbCB7XG4gICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cCgkbG93ZXIsICRicmVha3BvaW50cykge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9IEBlbHNlIGlmICRtaW4gPT0gbnVsbCB7XG4gICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC1kb3duKCR1cHBlciwgJGJyZWFrcG9pbnRzKSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbn1cblxuLy8gTWVkaWEgYmV0d2VlbiB0aGUgYnJlYWtwb2ludCdzIG1pbmltdW0gYW5kIG1heGltdW0gd2lkdGhzLlxuLy8gTm8gbWluaW11bSBmb3IgdGhlIHNtYWxsZXN0IGJyZWFrcG9pbnQsIGFuZCBubyBtYXhpbXVtIGZvciB0aGUgbGFyZ2VzdCBvbmUuXG4vLyBNYWtlcyB0aGUgQGNvbnRlbnQgYXBwbHkgb25seSB0byB0aGUgZ2l2ZW4gYnJlYWtwb2ludCwgbm90IHZpZXdwb3J0cyBhbnkgd2lkZXIgb3IgbmFycm93ZXIuXG5AbWl4aW4gbWVkaWEtYnJlYWtwb2ludC1vbmx5KCRuYW1lLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XG4gICRtaW46IGJyZWFrcG9pbnQtbWluKCRuYW1lLCAkYnJlYWtwb2ludHMpO1xuICAkbWF4OiBicmVha3BvaW50LW1heCgkbmFtZSwgJGJyZWFrcG9pbnRzKTtcblxuICBAaWYgJG1pbiAhPSBudWxsIGFuZCAkbWF4ICE9IG51bGwge1xuICAgIEBtZWRpYSAobWluLXdpZHRoOiAkbWluKSBhbmQgKG1heC13aWR0aDogJG1heCkge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9IEBlbHNlIGlmICRtYXggPT0gbnVsbCB7XG4gICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cCgkbmFtZSwgJGJyZWFrcG9pbnRzKSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH0gQGVsc2UgaWYgJG1pbiA9PSBudWxsIHtcbiAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LWRvd24oJG5hbWUsICRicmVha3BvaW50cykge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9tb2R1bGVzL2p4aGVhZGVyYWNjb3VudC92aWV3cy9jc3MvQzovT3BlblNlcnZlci9kb21haW5zL2xvY2FsaG9zdC90aGVtZTE0NTAvdGhlbWVzL3RoZW1lXzE0NTAvX2Rldi9tb2R1bGVzL2p4aGVhZGVyYWNjb3VudC92aWV3cy9jc3MvQzovT3BlblNlcnZlci9kb21haW5zL2xvY2FsaG9zdC90aGVtZTE0NTAvdGhlbWVzL3RoZW1lXzE0NTAvX2Rldi9ub2RlX21vZHVsZXMvYm9vdHN0cmFwL3Njc3MvbWl4aW5zL19icmVha3BvaW50cy5zY3NzIl0sInNvdXJjZVJvb3QiOiIifQ==*/