WooCommerce Variation Swatches - Version 1.0.32

Version Description

  • Add: Out of stock product crossed also if "Hide out of stock items from the catalog" unchecked.
Download this release

Release Info

Developer EmranAhmed
Plugin Icon 128x128 WooCommerce Variation Swatches
Version 1.0.32
Comparing to
See all releases

Code changes from version 1.0.31 to 1.0.32

README.txt CHANGED
@@ -63,10 +63,11 @@ In the free WooCommerce attribute variation plugin, besides creating size, brand
63
  <blockquote>
64
  <ul>
65
  <li><a target="_blank" href="http://bit.ly/wvs-flatsome-01">muliomulio.com</a> | Built With: Flatsome Theme | Niche: Leather Bag Store </li>
66
- <li><a target="_blank" href="http://bit.ly/woovs-demo-04">gimp3d.com</a> | Built With: Flatsome Theme | Niche: 3D Printing Parts Store </li>
 
 
67
  <li><a target="_blank" href="http://bit.ly/woovs-demo-flatsome-02">makromass.pl</a> | Built With: Flatsome Theme | Niche: Supplements for athletes</li>
68
- <li><a target="_blank" href="http://bit.ly/woovs-flatsome-03">cellularizeme.com</a> | Built With: Flatsome Theme | Niche: Electronices Store </li>
69
- <li><a target="_blank" href="http://bit.ly/woovs-demo-avada">wonkybot.com</a> | Built With: Avada Theme | Niche: Clothing Store </li>
70
  <li><a target="_blank" href="http://bit.ly/woovs-demo-avada-01">luckyonebijoux.com</a> | Built With: Avada Theme | Niche: Jewelry Shop </li>
71
  <li><a target="_blank" href="http://bit.ly/woovs-avada-02">polymaker.metricdesign.net</a> | Built With: Avada Theme | Niche: 3d Parts Shop </li>
72
  <li><a target="_blank" href="http://bit.ly/woovs-demo-nitro">sethsoldtimes.com</a> | Built With: Nitro Theme | Niche: Dise Golf Store</li>
@@ -162,7 +163,16 @@ Yes, it is.
162
 
163
  = How to use it on ajax load more? =
164
 
165
- Just call this javascript function on ajax load event `$('.variations_form').wc_variation_form()`. And your are ready to go.
 
 
 
 
 
 
 
 
 
166
 
167
  == Screenshots ==
168
 
@@ -180,6 +190,10 @@ Just call this javascript function on ajax load event `$('.variations_form').wc_
180
 
181
  == Changelog ==
182
 
 
 
 
 
183
  = 1.0.31 =
184
 
185
  * Add: **Kalium** theme css fix
63
  <blockquote>
64
  <ul>
65
  <li><a target="_blank" href="http://bit.ly/wvs-flatsome-01">muliomulio.com</a> | Built With: Flatsome Theme | Niche: Leather Bag Store </li>
66
+ <li><a target="_blank" href="http://bit.ly/twentey-seventeen-demo">vollstedt-b2b.com</a> | Built With: Twenty Seventen Theme | Niche: Leather Wallets Store </li>
67
+ <li><a target="_blank" href="http://bit.ly/wvg-demo-kelium">qnoop.com</a> | Built With: Kalium Theme | Niche: Clothing Store </li>
68
+ <li><a target="_blank" href="http://bit.ly/wvs-client-demo-01">designchess.com</a> | Built With: Flatsome Theme | Niche: Chess Design Store </li>
69
  <li><a target="_blank" href="http://bit.ly/woovs-demo-flatsome-02">makromass.pl</a> | Built With: Flatsome Theme | Niche: Supplements for athletes</li>
70
+ <li><a target="_blank" href="http://bit.ly/wvs-demo-client-2">delampjesfabriek.nl</a> | Built With: Flatsome Theme | Niche: Supplements for athletes</li>
 
71
  <li><a target="_blank" href="http://bit.ly/woovs-demo-avada-01">luckyonebijoux.com</a> | Built With: Avada Theme | Niche: Jewelry Shop </li>
72
  <li><a target="_blank" href="http://bit.ly/woovs-avada-02">polymaker.metricdesign.net</a> | Built With: Avada Theme | Niche: 3d Parts Shop </li>
73
  <li><a target="_blank" href="http://bit.ly/woovs-demo-nitro">sethsoldtimes.com</a> | Built With: Nitro Theme | Niche: Dise Golf Store</li>
163
 
164
  = How to use it on ajax load more? =
165
 
166
+ If your theme follow wordpress 'post-load' event with `document` then you don't have to do anything.
167
+ Here is the details about it: https://codex.wordpress.org/AJAX_in_Plugins#The_post-load_JavaScript_Event
168
+
169
+ But if you don't then just call this javascript function on ajax load event
170
+ ```
171
+ $('.variations_form').each(function(){
172
+ $(this).wc_variation_form();
173
+ });
174
+ ```
175
+ And your are ready to go.
176
 
177
  == Screenshots ==
178
 
190
 
191
  == Changelog ==
192
 
193
+ = 1.0.32 =
194
+
195
+ * Add: Out of stock product crossed also if "Hide out of stock items from the catalog" unchecked.
196
+
197
  = 1.0.31 =
198
 
199
  * Add: **Kalium** theme css fix
assets/css/admin.css CHANGED
@@ -1,8 +1,8 @@
1
  /*!
2
- * WooCommerce Variation Swatches v1.0.31
3
  *
4
  * Author: Emran Ahmed ( emran.bd.08@gmail.com )
5
- * Date: 2018-7-16 20:51:28
6
  * Released under the GPLv3 license.
7
  */
8
  .button.button-danger {
1
  /*!
2
+ * WooCommerce Variation Swatches v1.0.32
3
  *
4
  * Author: Emran Ahmed ( emran.bd.08@gmail.com )
5
+ * Date: 2018-8-5 20:35:04
6
  * Released under the GPLv3 license.
7
  */
8
  .button.button-danger {
assets/css/admin.min.css CHANGED
@@ -1,8 +1,8 @@
1
  /*!
2
- * WooCommerce Variation Swatches v1.0.31
3
  *
4
  * Author: Emran Ahmed ( emran.bd.08@gmail.com )
5
- * Date: 2018-7-16 20:51:32
6
  * Released under the GPLv3 license.
7
  */
8
  .button.button-danger{color:#fff;background-color:#af2d2b;border-color:#a62d2b;-webkit-box-shadow:0 1px 0 #a72d2b;box-shadow:0 1px 0 #a72d2b;vertical-align:top}.button.button-danger.active,.button.button-danger:active,.button.button-danger:focus,.button.button-danger:hover{color:#fff;background:#c9302c}[data-depends]{display:none}.meta-image-field-wrapper{display:table}.meta-image-field-wrapper .button{margin:5px 0;display:block}.meta-image-field-wrapper .image-preview{display:table-cell;width:60px;padding-right:10px}.meta-image-field-wrapper .button-wrapper{display:table-cell;vertical-align:top}.gwp-rate-stars{display:inline-block;color:#ffb900;position:relative;top:3px}.gwp-rate-stars svg,.gwp-rate-stars svg a{fill:#ffb900;stroke:#ffb900;cursor:pointer}.gwp-rate-stars svg:hover,.gwp-rate-stars svg a:hover{fill:#ffb900}.gwp-rate-stars svg:hover~svg,.gwp-rate-stars svg:hover~svg a,.gwp-rate-stars svg a:hover~svg,.gwp-rate-stars svg a:hover~svg a{fill:none}#wvs-meta-preview{width:30px}.wvs-preview{width:30px;height:30px;border:1px solid #000}
1
  /*!
2
+ * WooCommerce Variation Swatches v1.0.32
3
  *
4
  * Author: Emran Ahmed ( emran.bd.08@gmail.com )
5
+ * Date: 2018-8-5 20:35:09
6
  * Released under the GPLv3 license.
7
  */
8
  .button.button-danger{color:#fff;background-color:#af2d2b;border-color:#a62d2b;-webkit-box-shadow:0 1px 0 #a72d2b;box-shadow:0 1px 0 #a72d2b;vertical-align:top}.button.button-danger.active,.button.button-danger:active,.button.button-danger:focus,.button.button-danger:hover{color:#fff;background:#c9302c}[data-depends]{display:none}.meta-image-field-wrapper{display:table}.meta-image-field-wrapper .button{margin:5px 0;display:block}.meta-image-field-wrapper .image-preview{display:table-cell;width:60px;padding-right:10px}.meta-image-field-wrapper .button-wrapper{display:table-cell;vertical-align:top}.gwp-rate-stars{display:inline-block;color:#ffb900;position:relative;top:3px}.gwp-rate-stars svg,.gwp-rate-stars svg a{fill:#ffb900;stroke:#ffb900;cursor:pointer}.gwp-rate-stars svg:hover,.gwp-rate-stars svg a:hover{fill:#ffb900}.gwp-rate-stars svg:hover~svg,.gwp-rate-stars svg:hover~svg a,.gwp-rate-stars svg a:hover~svg,.gwp-rate-stars svg a:hover~svg a{fill:none}#wvs-meta-preview{width:30px}.wvs-preview{width:30px;height:30px;border:1px solid #000}
assets/css/frontend-tooltip.css CHANGED
@@ -1,8 +1,8 @@
1
  /*!
2
- * WooCommerce Variation Swatches v1.0.31
3
  *
4
  * Author: Emran Ahmed ( emran.bd.08@gmail.com )
5
- * Date: 2018-7-16 20:51:28
6
  * Released under the GPLv3 license.
7
  */
8
  .variable-items-wrapper [data-wvstooltip] {
1
  /*!
2
+ * WooCommerce Variation Swatches v1.0.32
3
  *
4
  * Author: Emran Ahmed ( emran.bd.08@gmail.com )
5
+ * Date: 2018-8-5 20:35:04
6
  * Released under the GPLv3 license.
7
  */
8
  .variable-items-wrapper [data-wvstooltip] {
assets/css/frontend-tooltip.min.css CHANGED
@@ -1,8 +1,8 @@
1
  /*!
2
- * WooCommerce Variation Swatches v1.0.31
3
  *
4
  * Author: Emran Ahmed ( emran.bd.08@gmail.com )
5
- * Date: 2018-7-16 20:51:32
6
  * Released under the GPLv3 license.
7
  */
8
  .variable-items-wrapper [data-wvstooltip]{position:relative;cursor:pointer;outline:none}.variable-items-wrapper [data-wvstooltip]:after,.variable-items-wrapper [data-wvstooltip]:before{visibility:hidden;opacity:0;pointer-events:none;-webkit-box-sizing:inherit;box-sizing:inherit;position:absolute;bottom:130%;left:50%;z-index:999;-webkit-transform:translateZ(0);transform:translateZ(0)}.variable-items-wrapper [data-wvstooltip]:before{margin-bottom:5px;margin-left:-50px;padding:7px;min-width:100px;border-radius:3px;background-color:#000;background-color:rgba(51,51,51,.9);color:#fff;content:attr(data-wvstooltip);text-align:center;font-size:14px;line-height:1.2}.variable-items-wrapper [data-wvstooltip]:after{margin-left:-5px;width:0;border-top:5px solid #000;border-top:5px solid rgba(51,51,51,.9);border-right:5px solid transparent;border-left:5px solid transparent;content:" ";font-size:0;line-height:0}.variable-items-wrapper [data-wvstooltip]:active:after,.variable-items-wrapper [data-wvstooltip]:active:before,.variable-items-wrapper [data-wvstooltip]:focus:after,.variable-items-wrapper [data-wvstooltip]:focus:before,.variable-items-wrapper [data-wvstooltip]:hover:after,.variable-items-wrapper [data-wvstooltip]:hover:before{bottom:120%;visibility:visible;opacity:1}.variable-items-wrapper .image-tooltip-wrapper{position:absolute;bottom:140%;border-width:2px;border-style:solid;-webkit-box-shadow:0 7px 15px rgba(0,0,0,.3);box-shadow:0 7px 15px rgba(0,0,0,.3);line-height:0;visibility:hidden;opacity:0;pointer-events:none;-webkit-transition:all .2s linear;transition:all .2s linear;z-index:999}.variable-items-wrapper .image-tooltip-wrapper img{border-radius:0!important}.variable-items-wrapper .image-tooltip-wrapper:after{content:"";bottom:-16px;display:block;position:absolute;border-radius:0!important;left:50%;-webkit-transform:translateX(-50%);transform:translateX(-50%);border:8px solid transparent}.variable-items-wrapper .variable-item:active .image-tooltip-wrapper,.variable-items-wrapper .variable-item:focus .image-tooltip-wrapper,.variable-items-wrapper .variable-item:hover .image-tooltip-wrapper{bottom:130%;visibility:visible;opacity:1}
1
  /*!
2
+ * WooCommerce Variation Swatches v1.0.32
3
  *
4
  * Author: Emran Ahmed ( emran.bd.08@gmail.com )
5
+ * Date: 2018-8-5 20:35:09
6
  * Released under the GPLv3 license.
7
  */
8
  .variable-items-wrapper [data-wvstooltip]{position:relative;cursor:pointer;outline:none}.variable-items-wrapper [data-wvstooltip]:after,.variable-items-wrapper [data-wvstooltip]:before{visibility:hidden;opacity:0;pointer-events:none;-webkit-box-sizing:inherit;box-sizing:inherit;position:absolute;bottom:130%;left:50%;z-index:999;-webkit-transform:translateZ(0);transform:translateZ(0)}.variable-items-wrapper [data-wvstooltip]:before{margin-bottom:5px;margin-left:-50px;padding:7px;min-width:100px;border-radius:3px;background-color:#000;background-color:rgba(51,51,51,.9);color:#fff;content:attr(data-wvstooltip);text-align:center;font-size:14px;line-height:1.2}.variable-items-wrapper [data-wvstooltip]:after{margin-left:-5px;width:0;border-top:5px solid #000;border-top:5px solid rgba(51,51,51,.9);border-right:5px solid transparent;border-left:5px solid transparent;content:" ";font-size:0;line-height:0}.variable-items-wrapper [data-wvstooltip]:active:after,.variable-items-wrapper [data-wvstooltip]:active:before,.variable-items-wrapper [data-wvstooltip]:focus:after,.variable-items-wrapper [data-wvstooltip]:focus:before,.variable-items-wrapper [data-wvstooltip]:hover:after,.variable-items-wrapper [data-wvstooltip]:hover:before{bottom:120%;visibility:visible;opacity:1}.variable-items-wrapper .image-tooltip-wrapper{position:absolute;bottom:140%;border-width:2px;border-style:solid;-webkit-box-shadow:0 7px 15px rgba(0,0,0,.3);box-shadow:0 7px 15px rgba(0,0,0,.3);line-height:0;visibility:hidden;opacity:0;pointer-events:none;-webkit-transition:all .2s linear;transition:all .2s linear;z-index:999}.variable-items-wrapper .image-tooltip-wrapper img{border-radius:0!important}.variable-items-wrapper .image-tooltip-wrapper:after{content:"";bottom:-16px;display:block;position:absolute;border-radius:0!important;left:50%;-webkit-transform:translateX(-50%);transform:translateX(-50%);border:8px solid transparent}.variable-items-wrapper .variable-item:active .image-tooltip-wrapper,.variable-items-wrapper .variable-item:focus .image-tooltip-wrapper,.variable-items-wrapper .variable-item:hover .image-tooltip-wrapper{bottom:130%;visibility:visible;opacity:1}
assets/css/frontend.css CHANGED
@@ -1,8 +1,8 @@
1
  /*!
2
- * WooCommerce Variation Swatches v1.0.31
3
  *
4
  * Author: Emran Ahmed ( emran.bd.08@gmail.com )
5
- * Date: 2018-7-16 20:51:28
6
  * Released under the GPLv3 license.
7
  */
8
  .woo-variation-swatches-stylesheet-enabled .woo-variation-raw-select,
@@ -135,7 +135,7 @@
135
  }
136
 
137
  .woo-variation-swatches-stylesheet-enabled.woo-variation-swatches-style-squared .variable-items-wrapper .variable-item.button-variable-item {
138
- width: auto;
139
  }
140
 
141
  .woo-variation-swatches-stylesheet-enabled.woo-variation-swatches-style-squared .variable-items-wrapper .variable-item.button-variable-item .variable-item-span {
@@ -215,6 +215,35 @@
215
  display: none;
216
  }
217
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
218
  .woo-variation-swatches-stylesheet-enabled.woo-variation-swatches-attribute-behavior-hide .variable-item.disabled {
219
  opacity: 0;
220
  visibility: hidden;
@@ -273,4 +302,4 @@
273
  }
274
 
275
 
276
- /*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXRzL2Nzcy9mcm9udGVuZC5jc3MiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvc2Nzcy9zcmMvc2Nzcy9mcm9udGVuZC5zY3NzIiwid2VicGFjazovLy8uL2Zyb250ZW5kLnNjc3MiXSwic291cmNlc0NvbnRlbnQiOlsiLndvby12YXJpYXRpb24tc3dhdGNoZXMtc3R5bGVzaGVldC1lbmFibGVkIHtcblxuICAud29vLXZhcmlhdGlvbi1yYXctc2VsZWN0LCAud29vLXZhcmlhdGlvbi1yYXctc2VsZWN0ICsgLnNlbGVjdDIge1xuICAgIGRpc3BsYXkgOiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gIC8vIFN3YXRjaGVzIGdsb2JhbCBzdHlsZVxuICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgLnZhcmlhYmxlLWl0ZW1zLXdyYXBwZXIge1xuICAgIGRpc3BsYXkgICAgOiBmbGV4O1xuICAgIGZsZXgtd3JhcCAgOiB3cmFwO1xuICAgIG1hcmdpbiAgICAgOiAwO1xuICAgIHBhZGRpbmcgICAgOiAwO1xuICAgIGxpc3Qtc3R5bGUgOiBub25lO1xuXG4gICAgLnZhcmlhYmxlLWl0ZW0ge1xuICAgICAgbWFyZ2luICAgICA6IDA7XG4gICAgICBwYWRkaW5nICAgIDogMDtcbiAgICAgIGxpc3Qtc3R5bGUgOiBub25lO1xuICAgICAgdHJhbnNpdGlvbiA6IGFsbCAyMDBtcyBlYXNlO1xuICAgICAgcG9zaXRpb24gICA6IHJlbGF0aXZlO1xuICAgICAgaW1nIHtcbiAgICAgICAgbWFyZ2luIDogMDsgLyoqIFN0b3JlZnJvbnQgRklYICovXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICYucmFkaW8tdmFyaWFibGUtd3JhcHBlciB7XG4gICAgICBkaXNwbGF5IDogYmxvY2s7XG5cbiAgICAgIC5yYWRpby12YXJpYWJsZS1pdGVtIHtcbiAgICAgICAgYm94LXNpemluZyA6IGJvcmRlci1ib3g7XG4gICAgICAgIGRpc3BsYXkgICAgOiBibG9jaztcbiAgICAgICAgbGlzdC1zdHlsZSA6IG5vbmU7XG4gICAgICAgIGN1cnNvciAgICAgOiBwb2ludGVyO1xuICAgICAgICBtYXJnaW4gICAgIDogMDtcbiAgICAgICAgbGFiZWwsIGlucHV0IHtcbiAgICAgICAgICBjdXJzb3IgOiBwb2ludGVyO1xuICAgICAgICAgIH1cblxuICAgICAgICBpbnB1dCB7XG4gICAgICAgICAgd2lkdGggICAgICAgIDogYXV0bztcbiAgICAgICAgICBtYXJnaW4tcmlnaHQgOiA1cHg7XG4gICAgICAgICAgfVxuXG4gICAgICAgIGxhYmVsIHtcbiAgICAgICAgICBmb250LXdlaWdodCA6IG5vcm1hbDtcbiAgICAgICAgICBmb250LXNpemUgICA6IDE0cHg7XG4gICAgICAgICAgZGlzcGxheSAgICAgOiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAudmFyaWFibGUtaXRlbTpub3QoLnJhZGlvLXZhcmlhYmxlLWl0ZW0pIHtcbiAgICAgIGJveC1zaXppbmcgICAgICAgOiBib3JkZXItYm94O1xuICAgICAgY3Vyc29yICAgICAgICAgICA6IHBvaW50ZXI7XG4gICAgICBkaXNwbGF5ICAgICAgICAgIDogZmxleDtcbiAgICAgIGp1c3RpZnktY29udGVudCAgOiBjZW50ZXI7XG4gICAgICBhbGlnbi1pdGVtcyAgICAgIDogY2VudGVyO1xuICAgICAgYmFja2dyb3VuZC1jb2xvciA6ICNGRkZGRkY7XG4gICAgICBib3gtc2hhZG93ICAgICAgIDogMCAwIDAgMXB4IHJnYmEoIzAwMCwgLjMwJSk7XG4gICAgICBwYWRkaW5nICAgICAgICAgIDogMnB4O1xuICAgICAgbWFyZ2luICAgICAgICAgICA6IDRweCA4cHggNHB4IDA7XG5cbiAgICAgIC8vIGxhc3QgaXRlbSBtYXJnaW4gcmVzZXRcbiAgICAgICY6bGFzdC1vZi10eXBlIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0IDogMDtcbiAgICAgICAgfVxuXG4gICAgICAvL3ZhcmlhYmxlIGhvdmVyIHN0eWxlXG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgYm94LXNoYWRvdyA6IDAgMCAwIDNweCByZ2JhKCMwMDAsIC4xMCUpO1xuICAgICAgICB9XG5cbiAgICAgIC8vdmFyaWFibGUgc2VsZWN0ZWQgaXRlbVxuICAgICAgJi5zZWxlY3RlZCxcbiAgICAgICYuc2VsZWN0ZWQ6aG92ZXIge1xuICAgICAgICBib3gtc2hhZG93IDogMCAwIDAgMnB4IHJnYmEoIzAwMCwgLjkwJSk7XG4gICAgICAgIH1cblxuICAgICAgLy8gY29sb3IgdmFyaWFibGUgaXRlbSBzdHlsZVxuICAgICAgJi5jb2xvci12YXJpYWJsZS1pdGVtIHtcbiAgICAgICAgLnZhcmlhYmxlLWl0ZW0tc3Bhbi1jb2xvciB7XG4gICAgICAgICAgd2lkdGggICAgOiAxMDAlO1xuICAgICAgICAgIGhlaWdodCAgIDogMTAwJTtcbiAgICAgICAgICBwb3NpdGlvbiA6IHJlbGF0aXZlO1xuXG4gICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgcG9zaXRpb24gICA6IGFic29sdXRlO1xuICAgICAgICAgICAgY29udGVudCAgICA6IFwiXCI7XG4gICAgICAgICAgICB3aWR0aCAgICAgIDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodCAgICAgOiAxMDAlO1xuICAgICAgICAgICAgdG9wICAgICAgICA6IDA7XG4gICAgICAgICAgICBsZWZ0ICAgICAgIDogMDtcbiAgICAgICAgICAgIGJveC1zaGFkb3cgOiBpbnNldCAwIDAgMXB4IDAgcmdiYSgwLCAwLCAwLCAwLjUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAvLyBCdXR0b24gdmFyaWFibGUgaXRlbSBzdHlsZVxuICAgICAgJi5idXR0b24tdmFyaWFibGUtaXRlbSB7XG4gICAgICAgIHRleHQtYWxpZ24gOiBjZW50ZXI7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgLy8gU3dhdGNoZXMgc3F1YXJlIGFuZCByb3VuZGVkIHNoYXBlIHN0eWxlXG4gIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAmLndvby12YXJpYXRpb24tc3dhdGNoZXMtc3R5bGUge1xuICAgICYtcm91bmRlZCAudmFyaWFibGUtaXRlbXMtd3JhcHBlciB7XG4gICAgICAudmFyaWFibGUtaXRlbSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXMgOiAxMDAlO1xuICAgICAgICAudmFyaWFibGUtaXRlbS1zcGFuLFxuICAgICAgICBpbWcsXG4gICAgICAgIC52YXJpYWJsZS1pdGVtLXNwYW46OmFmdGVyIHtcbiAgICAgICAgICBib3JkZXItcmFkaXVzIDogMTAwJTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAmLXNxdWFyZWQgLnZhcmlhYmxlLWl0ZW1zLXdyYXBwZXIge1xuICAgICAgLnZhcmlhYmxlLWl0ZW0ge1xuICAgICAgICBib3JkZXItcmFkaXVzIDogMnB4O1xuICAgICAgICAmLmJ1dHRvbi12YXJpYWJsZS1pdGVtIHtcbiAgICAgICAgICB3aWR0aCA6IGF1dG87XG4gICAgICAgICAgLnZhcmlhYmxlLWl0ZW0tc3BhbiB7XG4gICAgICAgICAgICBwYWRkaW5nIDogMCA1cHg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAmLmNvbG9yLXZhcmlhYmxlLWl0ZW0gc3BhbiB7XG4gICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1cyA6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gIC8vIFN3YXRjaGVzIHZhcmlhdGlvbiBiZWhhdmlvclxuICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICYud29vLXZhcmlhdGlvbi1zd2F0Y2hlcy1hdHRyaWJ1dGUtYmVoYXZpb3Ige1xuICAgICYtYmx1ciB7XG4gICAgICAudmFyaWFibGUtaXRlbTpub3QoLnJhZGlvLXZhcmlhYmxlLWl0ZW0pIHtcbiAgICAgICAgJi5kaXNhYmxlZCxcbiAgICAgICAgJi5kaXNhYmxlZDpob3ZlciB7XG4gICAgICAgICAgY3Vyc29yICAgICAgICAgOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICBib3gtc2hhZG93ICAgICA6IDAgMCAwIDFweCByZ2JhKCMwMDAsIC4wNSUpO1xuICAgICAgICAgIHBvaW50ZXItZXZlbnRzIDogbm9uZTtcbiAgICAgICAgICBwb3NpdGlvbiAgICAgICA6IHJlbGF0aXZlO1xuICAgICAgICAgIG92ZXJmbG93ICAgICAgIDogaGlkZGVuO1xuXG4gICAgICAgICAgaW1nLCBzcGFuIHtcbiAgICAgICAgICAgIG9wYWNpdHkgOiAuMztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBwb3NpdGlvbiAgICAgICAgIDogYWJzb2x1dGU7XG4gICAgICAgICAgICBjb250ZW50ICAgICAgICAgIDogXCIgXCIgIWltcG9ydGFudDtcbiAgICAgICAgICAgIHdpZHRoICAgICAgICAgICAgOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0ICAgICAgICAgICA6IDFweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQgICAgICAgOiAjRkYwMDAwICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBsZWZ0ICAgICAgICAgICAgIDogMDtcbiAgICAgICAgICAgIHJpZ2h0ICAgICAgICAgICAgOiAwO1xuICAgICAgICAgICAgYm90dG9tICAgICAgICAgICA6IDA7XG4gICAgICAgICAgICB0b3AgICAgICAgICAgICAgIDogNTAlO1xuICAgICAgICAgICAgdmlzaWJpbGl0eSAgICAgICA6IHZpc2libGU7XG4gICAgICAgICAgICBvcGFjaXR5ICAgICAgICAgIDogMTtcbiAgICAgICAgICAgIGJvcmRlciAgICAgICAgICAgOiAwO1xuICAgICAgICAgICAgbWFyZ2luICAgICAgICAgICA6IDAgIWltcG9ydGFudDtcbiAgICAgICAgICAgIHBhZGRpbmcgICAgICAgICAgOiAwICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBtaW4td2lkdGggICAgICAgIDogYXV0bztcbiAgICAgICAgICAgIHRyYW5zZm9ybS1vcmlnaW4gOiBjZW50ZXI7XG4gICAgICAgICAgICB6LWluZGV4ICAgICAgICAgIDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm0gOiByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgdHJhbnNmb3JtIDogcm90YXRlKC00NWRlZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgLnJhZGlvLXZhcmlhYmxlLWl0ZW0ge1xuICAgICAgICAmLmRpc2FibGVkLFxuICAgICAgICAmLmRpc2FibGVkOmhvdmVyIHtcbiAgICAgICAgICBsYWJlbCwgaW5wdXQge1xuICAgICAgICAgICAgY3Vyc29yICAgICAgICAgIDogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb24gOiBsaW5lLXRocm91Z2g7XG4gICAgICAgICAgICBvcGFjaXR5ICAgICAgICAgOiAuNTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBkaXNwbGF5IDogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAmLWhpZGUge1xuICAgICAgLnZhcmlhYmxlLWl0ZW0ge1xuICAgICAgICAmLmRpc2FibGVkIHtcbiAgICAgICAgICAmLnJhZGlvLXZhcmlhYmxlLWl0ZW0ge1xuICAgICAgICAgICAgd2lkdGggOiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICBvcGFjaXR5ICAgICAgICAgIDogMDtcbiAgICAgICAgICB2aXNpYmlsaXR5ICAgICAgIDogaGlkZGVuO1xuICAgICAgICAgIHRyYW5zZm9ybSAgICAgICAgOiBzY2FsZSgwKTtcbiAgICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luIDogY2VudGVyO1xuICAgICAgICAgIHdpZHRoICAgICAgICAgICAgOiAwICFpbXBvcnRhbnQ7XG4gICAgICAgICAgaGVpZ2h0ICAgICAgICAgICA6IDAgIWltcG9ydGFudDtcbiAgICAgICAgICBwYWRkaW5nICAgICAgICAgIDogMCAhaW1wb3J0YW50O1xuICAgICAgICAgIG1hcmdpbiAgICAgICAgICAgOiAwICFpbXBvcnRhbnQ7XG4gICAgICAgICAgbWluLXdpZHRoICAgICAgICA6IDAgIWltcG9ydGFudDtcbiAgICAgICAgICBtaW4taGVpZ2h0ICAgICAgIDogMCAhaW1wb3J0YW50O1xuICAgICAgICAgIC8vZGlzcGxheSA6IG5vbmU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gIC8vIHRvb2wgdGlwc1xuICAmLndvby12YXJpYXRpb24tc3dhdGNoZXMtdG9vbHRpcC1lbmFibGVkIHtcblxuICAgIC8vIERlZmF1bHRcbiAgICAucmFkaW8tdmFyaWFibGUtaXRlbVtkYXRhLXd2c3Rvb2x0aXBdIHtcbiAgICAgIHBvc2l0aW9uIDogcmVsYXRpdmU7XG4gICAgICAmOjpiZWZvcmUsXG4gICAgICAmOjphZnRlciB7XG4gICAgICAgIGxlZnQgICA6IDhweDtcbiAgICAgICAgYm90dG9tIDogMTAwJTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgLy8gaW1hZ2UgdmFyaWFibGUgdG9vbHRpcHNcbiAgICAucmFkaW8tdmFyaWFibGUtaXRlbSAuaW1hZ2UtdG9vbHRpcC13cmFwcGVyIHtcbiAgICAgIHRyYW5zZm9ybSA6IHRyYW5zbGF0ZVgoLTUwJSk7XG4gICAgICBsZWZ0ICAgICAgOiA4cHg7XG4gICAgICB9XG5cbiAgICAmLndvby12YXJpYXRpb24tc3dhdGNoZXMtYXJjaGl2ZS1hbGlnbi1jZW50ZXIgLnd2cy1hcmNoaXZlLXZhcmlhdGlvbi13cmFwcGVyIC5yYWRpby12YXJpYWJsZS1pdGVtIHtcbiAgICAgICZbZGF0YS13dnN0b29sdGlwXTo6YmVmb3JlLFxuICAgICAgJltkYXRhLXd2c3Rvb2x0aXBdOjphZnRlciB7XG4gICAgICAgIGxlZnQgOiA1MCU7XG4gICAgICAgIH1cblxuICAgICAgLmltYWdlLXRvb2x0aXAtd3JhcHBlciB7XG4gICAgICAgIHRyYW5zZm9ybSA6IHRyYW5zbGF0ZVgoLTUwJSk7XG4gICAgICAgIGxlZnQgICAgICA6IDUwJTtcbiAgICAgICAgfVxuXG4gICAgICB9XG5cbiAgICAmLndvby12YXJpYXRpb24tc3dhdGNoZXMtYXJjaGl2ZS1hbGlnbi1yaWdodCAud3ZzLWFyY2hpdmUtdmFyaWF0aW9uLXdyYXBwZXIgLnJhZGlvLXZhcmlhYmxlLWl0ZW0ge1xuICAgICAgJltkYXRhLXd2c3Rvb2x0aXBdOjpiZWZvcmUsXG4gICAgICAmW2RhdGEtd3ZzdG9vbHRpcF06OmFmdGVyIHtcbiAgICAgICAgbGVmdCA6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgLmltYWdlLXRvb2x0aXAtd3JhcHBlciB7XG4gICAgICAgIHRyYW5zZm9ybSA6IHRyYW5zbGF0ZVgoLTUwJSk7XG4gICAgICAgIGxlZnQgICAgICA6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgfVxuXG4gICAgfVxuICB9XG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vc3JjL3Njc3Mvc3JjL3Njc3MvZnJvbnRlbmQuc2NzcyIsIi53b28tdmFyaWF0aW9uLXN3YXRjaGVzLXN0eWxlc2hlZXQtZW5hYmxlZCAud29vLXZhcmlhdGlvbi1yYXctc2VsZWN0LFxuLndvby12YXJpYXRpb24tc3dhdGNoZXMtc3R5bGVzaGVldC1lbmFibGVkIC53b28tdmFyaWF0aW9uLXJhdy1zZWxlY3QgKyAuc2VsZWN0MiB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuLndvby12YXJpYXRpb24tc3dhdGNoZXMtc3R5bGVzaGVldC1lbmFibGVkIC52YXJpYWJsZS1pdGVtcy13cmFwcGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG59XG5cbi53b28tdmFyaWF0aW9uLXN3YXRjaGVzLXN0eWxlc2hlZXQtZW5hYmxlZCAudmFyaWFibGUtaXRlbXMtd3JhcHBlciAudmFyaWFibGUtaXRlbSB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgdHJhbnNpdGlvbjogYWxsIDIwMG1zIGVhc2U7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLndvby12YXJpYXRpb24tc3dhdGNoZXMtc3R5bGVzaGVldC1lbmFibGVkIC52YXJpYWJsZS1pdGVtcy13cmFwcGVyIC52YXJpYWJsZS1pdGVtIGltZyB7XG4gIG1hcmdpbjogMDtcbiAgLyoqIFN0b3JlZnJvbnQgRklYICovXG59XG5cbi53b28tdmFyaWF0aW9uLXN3YXRjaGVzLXN0eWxlc2hlZXQtZW5hYmxlZCAudmFyaWFibGUtaXRlbXMtd3JhcHBlci5yYWRpby12YXJpYWJsZS13cmFwcGVyIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi53b28tdmFyaWF0aW9uLXN3YXRjaGVzLXN0eWxlc2hlZXQtZW5hYmxlZCAudmFyaWFibGUtaXRlbXMtd3JhcHBlci5yYWRpby12YXJpYWJsZS13cmFwcGVyIC5yYWRpby12YXJpYWJsZS1pdGVtIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgbWFyZ2luOiAwO1xufVxuXG4ud29vLXZhcmlhdGlvbi1zd2F0Y2hlcy1zdHlsZXNoZWV0LWVuYWJsZWQgLnZhcmlhYmxlLWl0ZW1zLXdyYXBwZXIucmFkaW8tdmFyaWFibGUtd3JhcHBlciAucmFkaW8tdmFyaWFibGUtaXRlbSBsYWJlbCxcbi53b28tdmFyaWF0aW9uLXN3YXRjaGVzLXN0eWxlc2hlZXQtZW5hYmxlZCAudmFyaWFibGUtaXRlbXMtd3JhcHBlci5yYWRpby12YXJpYWJsZS13cmFwcGVyIC5yYWRpby12YXJpYWJsZS1pdGVtIGlucHV0IHtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4ud29vLXZhcmlhdGlvbi1zd2F0Y2hlcy1zdHlsZXNoZWV0LWVuYWJsZWQgLnZhcmlhYmxlLWl0ZW1zLXdyYXBwZXIucmFkaW8tdmFyaWFibGUtd3JhcHBlciAucmFkaW8tdmFyaWFibGUtaXRlbSBpbnB1dCB7XG4gIHdpZHRoOiBhdXRvO1xuICBtYXJnaW4tcmlnaHQ6IDVweDtcbn1cblxuLndvby12YXJpYXRpb24tc3dhdGNoZXMtc3R5bGVzaGVldC1lbmFibGVkIC52YXJpYWJsZS1pdGVtcy13cmFwcGVyLnJhZGlvLXZhcmlhYmxlLXdyYXBwZXIgLnJhZGlvLXZhcmlhYmxlLWl0ZW0gbGFiZWwge1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXNpemU6IDE0cHg7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cblxuLndvby12YXJpYXRpb24tc3dhdGNoZXMtc3R5bGVzaGVldC1lbmFibGVkIC52YXJpYWJsZS1pdGVtcy13cmFwcGVyIC52YXJpYWJsZS1pdGVtOm5vdCgucmFkaW8tdmFyaWFibGUtaXRlbSkge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZGRkZGO1xuICBib3gtc2hhZG93OiAwIDAgMCAxcHggcmdiYSgwLCAwLCAwLCAwLjMpO1xuICBwYWRkaW5nOiAycHg7XG4gIG1hcmdpbjogNHB4IDhweCA0cHggMDtcbn1cblxuLndvby12YXJpYXRpb24tc3dhdGNoZXMtc3R5bGVzaGVldC1lbmFibGVkIC52YXJpYWJsZS1pdGVtcy13cmFwcGVyIC52YXJpYWJsZS1pdGVtOm5vdCgucmFkaW8tdmFyaWFibGUtaXRlbSk6bGFzdC1vZi10eXBlIHtcbiAgbWFyZ2luLXJpZ2h0OiAwO1xufVxuXG4ud29vLXZhcmlhdGlvbi1zd2F0Y2hlcy1zdHlsZXNoZWV0LWVuYWJsZWQgLnZhcmlhYmxlLWl0ZW1zLXdyYXBwZXIgLnZhcmlhYmxlLWl0ZW06bm90KC5yYWRpby12YXJpYWJsZS1pdGVtKTpob3ZlciB7XG4gIGJveC1zaGFkb3c6IDAgMCAwIDNweCByZ2JhKDAsIDAsIDAsIDAuMSk7XG59XG5cbi53b28tdmFyaWF0aW9uLXN3YXRjaGVzLXN0eWxlc2hlZXQtZW5hYmxlZCAudmFyaWFibGUtaXRlbXMtd3JhcHBlciAudmFyaWFibGUtaXRlbTpub3QoLnJhZGlvLXZhcmlhYmxlLWl0ZW0pLnNlbGVjdGVkLFxuLndvby12YXJpYXRpb24tc3dhdGNoZXMtc3R5bGVzaGVldC1lbmFibGVkIC52YXJpYWJsZS1pdGVtcy13cmFwcGVyIC52YXJpYWJsZS1pdGVtOm5vdCgucmFkaW8tdmFyaWFibGUtaXRlbSkuc2VsZWN0ZWQ6aG92ZXIge1xuICBib3gtc2hhZG93OiAwIDAgMCAycHggcmdiYSgwLCAwLCAwLCAwLjkpO1xufVxuXG4ud29vLXZhcmlhdGlvbi1zd2F0Y2hlcy1zdHlsZXNoZWV0LWVuYWJsZWQgLnZhcmlhYmxlLWl0ZW1zLXdyYXBwZXIgLnZhcmlhYmxlLWl0ZW06bm90KC5yYWRpby12YXJpYWJsZS1pdGVtKS5jb2xvci12YXJpYWJsZS1pdGVtIC52YXJpYWJsZS1pdGVtLXNwYW4tY29sb3Ige1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi53b28tdmFyaWF0aW9uLXN3YXRjaGVzLXN0eWxlc2hlZXQtZW5hYmxlZCAudmFyaWFibGUtaXRlbXMtd3JhcHBlciAudmFyaWFibGUtaXRlbTpub3QoLnJhZGlvLXZhcmlhYmxlLWl0ZW0pLmNvbG9yLXZhcmlhYmxlLWl0ZW0gLnZhcmlhYmxlLWl0ZW0tc3Bhbi1jb2xvcjo6YWZ0ZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDFweCAwIHJnYmEoMCwgMCwgMCwgMC41KTtcbn1cblxuLndvby12YXJpYXRpb24tc3dhdGNoZXMtc3R5bGVzaGVldC1lbmFibGVkIC52YXJpYWJsZS1pdGVtcy13cmFwcGVyIC52YXJpYWJsZS1pdGVtOm5vdCgucmFkaW8tdmFyaWFibGUtaXRlbSkuYnV0dG9uLXZhcmlhYmxlLWl0ZW0ge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi53b28tdmFyaWF0aW9uLXN3YXRjaGVzLXN0eWxlc2hlZXQtZW5hYmxlZC53b28tdmFyaWF0aW9uLXN3YXRjaGVzLXN0eWxlLXJvdW5kZWQgLnZhcmlhYmxlLWl0ZW1zLXdyYXBwZXIgLnZhcmlhYmxlLWl0ZW0ge1xuICBib3JkZXItcmFkaXVzOiAxMDAlO1xufVxuXG4ud29vLXZhcmlhdGlvbi1zd2F0Y2hlcy1zdHlsZXNoZWV0LWVuYWJsZWQud29vLXZhcmlhdGlvbi1zd2F0Y2hlcy1zdHlsZS1yb3VuZGVkIC52YXJpYWJsZS1pdGVtcy13cmFwcGVyIC52YXJpYWJsZS1pdGVtIC52YXJpYWJsZS1pdGVtLXNwYW4sXG4ud29vLXZhcmlhdGlvbi1zd2F0Y2hlcy1zdHlsZXNoZWV0LWVuYWJsZWQud29vLXZhcmlhdGlvbi1zd2F0Y2hlcy1zdHlsZS1yb3VuZGVkIC52YXJpYWJsZS1pdGVtcy13cmFwcGVyIC52YXJpYWJsZS1pdGVtIGltZyxcbi53b28tdmFyaWF0aW9uLXN3YXRjaGVzLXN0eWxlc2hlZXQtZW5hYmxlZC53b28tdmFyaWF0aW9uLXN3YXRjaGVzLXN0eWxlLXJvdW5kZWQgLnZhcmlhYmxlLWl0ZW1zLXdyYXBwZXIgLnZhcmlhYmxlLWl0ZW0gLnZhcmlhYmxlLWl0ZW0tc3Bhbjo6YWZ0ZXIge1xuICBib3JkZXItcmFkaXVzOiAxMDAlO1xufVxuXG4ud29vLXZhcmlhdGlvbi1zd2F0Y2hlcy1zdHlsZXNoZWV0LWVuYWJsZWQud29vLXZhcmlhdGlvbi1zd2F0Y2hlcy1zdHlsZS1zcXVhcmVkIC52YXJpYWJsZS1pdGVtcy13cmFwcGVyIC52YXJpYWJsZS1pdGVtIHtcbiAgYm9yZGVyLXJhZGl1czogMnB4O1xufVxuXG4ud29vLXZhcmlhdGlvbi1zd2F0Y2hlcy1zdHlsZXNoZWV0LWVuYWJsZWQud29vLXZhcmlhdGlvbi1zd2F0Y2hlcy1zdHlsZS1zcXVhcmVkIC52YXJpYWJsZS1pdGVtcy13cmFwcGVyIC52YXJpYWJsZS1pdGVtLmJ1dHRvbi12YXJpYWJsZS1pdGVtIHtcbiAgd2lkdGg6IGF1dG87XG59XG5cbi53b28tdmFyaWF0aW9uLXN3YXRjaGVzLXN0eWxlc2hlZXQtZW5hYmxlZC53b28tdmFyaWF0aW9uLXN3YXRjaGVzLXN0eWxlLXNxdWFyZWQgLnZhcmlhYmxlLWl0ZW1zLXdyYXBwZXIgLnZhcmlhYmxlLWl0ZW0uYnV0dG9uLXZhcmlhYmxlLWl0ZW0gLnZhcmlhYmxlLWl0ZW0tc3BhbiB7XG4gIHBhZGRpbmc6IDAgNXB4O1xufVxuXG4ud29vLXZhcmlhdGlvbi1zd2F0Y2hlcy1zdHlsZXNoZWV0LWVuYWJsZWQud29vLXZhcmlhdGlvbi1zd2F0Y2hlcy1zdHlsZS1zcXVhcmVkIC52YXJpYWJsZS1pdGVtcy13cmFwcGVyIC52YXJpYWJsZS1pdGVtLmNvbG9yLXZhcmlhYmxlLWl0ZW0gc3Bhbjo6YWZ0ZXIge1xuICBib3JkZXItcmFkaXVzOiAwO1xufVxuXG4ud29vLXZhcmlhdGlvbi1zd2F0Y2hlcy1zdHlsZXNoZWV0LWVuYWJsZWQud29vLXZhcmlhdGlvbi1zd2F0Y2hlcy1hdHRyaWJ1dGUtYmVoYXZpb3ItYmx1ciAudmFyaWFibGUtaXRlbTpub3QoLnJhZGlvLXZhcmlhYmxlLWl0ZW0pLmRpc2FibGVkLFxuLndvby12YXJpYXRpb24tc3dhdGNoZXMtc3R5bGVzaGVldC1lbmFibGVkLndvby12YXJpYXRpb24tc3dhdGNoZXMtYXR0cmlidXRlLWJlaGF2aW9yLWJsdXIgLnZhcmlhYmxlLWl0ZW06bm90KC5yYWRpby12YXJpYWJsZS1pdGVtKS5kaXNhYmxlZDpob3ZlciB7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gIGJveC1zaGFkb3c6IDAgMCAwIDFweCByZ2JhKDAsIDAsIDAsIDAuMDUpO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4ud29vLXZhcmlhdGlvbi1zd2F0Y2hlcy1zdHlsZXNoZWV0LWVuYWJsZWQud29vLXZhcmlhdGlvbi1zd2F0Y2hlcy1hdHRyaWJ1dGUtYmVoYXZpb3ItYmx1ciAudmFyaWFibGUtaXRlbTpub3QoLnJhZGlvLXZhcmlhYmxlLWl0ZW0pLmRpc2FibGVkIGltZyxcbi53b28tdmFyaWF0aW9uLXN3YXRjaGVzLXN0eWxlc2hlZXQtZW5hYmxlZC53b28tdmFyaWF0aW9uLXN3YXRjaGVzLWF0dHJpYnV0ZS1iZWhhdmlvci1ibHVyIC52YXJpYWJsZS1pdGVtOm5vdCgucmFkaW8tdmFyaWFibGUtaXRlbSkuZGlzYWJsZWQgc3Bhbixcbi53b28tdmFyaWF0aW9uLXN3YXRjaGVzLXN0eWxlc2hlZXQtZW5hYmxlZC53b28tdmFyaWF0aW9uLXN3YXRjaGVzLWF0dHJpYnV0ZS1iZWhhdmlvci1ibHVyIC52YXJpYWJsZS1pdGVtOm5vdCgucmFkaW8tdmFyaWFibGUtaXRlbSkuZGlzYWJsZWQ6aG92ZXIgaW1nLFxuLndvby12YXJpYXRpb24tc3dhdGNoZXMtc3R5bGVzaGVldC1lbmFibGVkLndvby12YXJpYXRpb24tc3dhdGNoZXMtYXR0cmlidXRlLWJlaGF2aW9yLWJsdXIgLnZhcmlhYmxlLWl0ZW06bm90KC5yYWRpby12YXJpYWJsZS1pdGVtKS5kaXNhYmxlZDpob3ZlciBzcGFuIHtcbiAgb3BhY2l0eTogLjM7XG59XG5cbi53b28tdmFyaWF0aW9uLXN3YXRjaGVzLXN0eWxlc2hlZXQtZW5hYmxlZC53b28tdmFyaWF0aW9uLXN3YXRjaGVzLWF0dHJpYnV0ZS1iZWhhdmlvci1ibHVyIC52YXJpYWJsZS1pdGVtOm5vdCgucmFkaW8tdmFyaWFibGUtaXRlbSkuZGlzYWJsZWQ6OmJlZm9yZSxcbi53b28tdmFyaWF0aW9uLXN3YXRjaGVzLXN0eWxlc2hlZXQtZW5hYmxlZC53b28tdmFyaWF0aW9uLXN3YXRjaGVzLWF0dHJpYnV0ZS1iZWhhdmlvci1ibHVyIC52YXJpYWJsZS1pdGVtOm5vdCgucmFkaW8tdmFyaWFibGUtaXRlbSkuZGlzYWJsZWQ6OmFmdGVyLFxuLndvby12YXJpYXRpb24tc3dhdGNoZXMtc3R5bGVzaGVldC1lbmFibGVkLndvby12YXJpYXRpb24tc3dhdGNoZXMtYXR0cmlidXRlLWJlaGF2aW9yLWJsdXIgLnZhcmlhYmxlLWl0ZW06bm90KC5yYWRpby12YXJpYWJsZS1pdGVtKS5kaXNhYmxlZDpob3Zlcjo6YmVmb3JlLFxuLndvby12YXJpYXRpb24tc3dhdGNoZXMtc3R5bGVzaGVldC1lbmFibGVkLndvby12YXJpYXRpb24tc3dhdGNoZXMtYXR0cmlidXRlLWJlaGF2aW9yLWJsdXIgLnZhcmlhYmxlLWl0ZW06bm90KC5yYWRpby12YXJpYWJsZS1pdGVtKS5kaXNhYmxlZDpob3Zlcjo6YWZ0ZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGNvbnRlbnQ6IFwiIFwiICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDFweDtcbiAgYmFja2dyb3VuZDogI0ZGMDAwMCAhaW1wb3J0YW50O1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xuICB0b3A6IDUwJTtcbiAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgb3BhY2l0eTogMTtcbiAgYm9yZGVyOiAwO1xuICBtYXJnaW46IDAgIWltcG9ydGFudDtcbiAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICBtaW4td2lkdGg6IGF1dG87XG4gIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlcjtcbiAgei1pbmRleDogMDtcbn1cblxuLndvby12YXJpYXRpb24tc3dhdGNoZXMtc3R5bGVzaGVldC1lbmFibGVkLndvby12YXJpYXRpb24tc3dhdGNoZXMtYXR0cmlidXRlLWJlaGF2aW9yLWJsdXIgLnZhcmlhYmxlLWl0ZW06bm90KC5yYWRpby12YXJpYWJsZS1pdGVtKS5kaXNhYmxlZDo6YmVmb3JlLFxuLndvby12YXJpYXRpb24tc3dhdGNoZXMtc3R5bGVzaGVldC1lbmFibGVkLndvby12YXJpYXRpb24tc3dhdGNoZXMtYXR0cmlidXRlLWJlaGF2aW9yLWJsdXIgLnZhcmlhYmxlLWl0ZW06bm90KC5yYWRpby12YXJpYWJsZS1pdGVtKS5kaXNhYmxlZDpob3Zlcjo6YmVmb3JlIHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xufVxuXG4ud29vLXZhcmlhdGlvbi1zd2F0Y2hlcy1zdHlsZXNoZWV0LWVuYWJsZWQud29vLXZhcmlhdGlvbi1zd2F0Y2hlcy1hdHRyaWJ1dGUtYmVoYXZpb3ItYmx1ciAudmFyaWFibGUtaXRlbTpub3QoLnJhZGlvLXZhcmlhYmxlLWl0ZW0pLmRpc2FibGVkOjphZnRlcixcbi53b28tdmFyaWF0aW9uLXN3YXRjaGVzLXN0eWxlc2hlZXQtZW5hYmxlZC53b28tdmFyaWF0aW9uLXN3YXRjaGVzLWF0dHJpYnV0ZS1iZWhhdmlvci1ibHVyIC52YXJpYWJsZS1pdGVtOm5vdCgucmFkaW8tdmFyaWFibGUtaXRlbSkuZGlzYWJsZWQ6aG92ZXI6OmFmdGVyIHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKTtcbn1cblxuLndvby12YXJpYXRpb24tc3dhdGNoZXMtc3R5bGVzaGVldC1lbmFibGVkLndvby12YXJpYXRpb24tc3dhdGNoZXMtYXR0cmlidXRlLWJlaGF2aW9yLWJsdXIgLnJhZGlvLXZhcmlhYmxlLWl0ZW0uZGlzYWJsZWQgbGFiZWwsXG4ud29vLXZhcmlhdGlvbi1zd2F0Y2hlcy1zdHlsZXNoZWV0LWVuYWJsZWQud29vLXZhcmlhdGlvbi1zd2F0Y2hlcy1hdHRyaWJ1dGUtYmVoYXZpb3ItYmx1ciAucmFkaW8tdmFyaWFibGUtaXRlbS5kaXNhYmxlZCBpbnB1dCxcbi53b28tdmFyaWF0aW9uLXN3YXRjaGVzLXN0eWxlc2hlZXQtZW5hYmxlZC53b28tdmFyaWF0aW9uLXN3YXRjaGVzLWF0dHJpYnV0ZS1iZWhhdmlvci1ibHVyIC5yYWRpby12YXJpYWJsZS1pdGVtLmRpc2FibGVkOmhvdmVyIGxhYmVsLFxuLndvby12YXJpYXRpb24tc3dhdGNoZXMtc3R5bGVzaGVldC1lbmFibGVkLndvby12YXJpYXRpb24tc3dhdGNoZXMtYXR0cmlidXRlLWJlaGF2aW9yLWJsdXIgLnJhZGlvLXZhcmlhYmxlLWl0ZW0uZGlzYWJsZWQ6aG92ZXIgaW5wdXQge1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgb3BhY2l0eTogLjU7XG59XG5cbi53b28tdmFyaWF0aW9uLXN3YXRjaGVzLXN0eWxlc2hlZXQtZW5hYmxlZC53b28tdmFyaWF0aW9uLXN3YXRjaGVzLWF0dHJpYnV0ZS1iZWhhdmlvci1ibHVyIC5yYWRpby12YXJpYWJsZS1pdGVtLmRpc2FibGVkOjpiZWZvcmUsXG4ud29vLXZhcmlhdGlvbi1zd2F0Y2hlcy1zdHlsZXNoZWV0LWVuYWJsZWQud29vLXZhcmlhdGlvbi1zd2F0Y2hlcy1hdHRyaWJ1dGUtYmVoYXZpb3ItYmx1ciAucmFkaW8tdmFyaWFibGUtaXRlbS5kaXNhYmxlZDo6YWZ0ZXIsXG4ud29vLXZhcmlhdGlvbi1zd2F0Y2hlcy1zdHlsZXNoZWV0LWVuYWJsZWQud29vLXZhcmlhdGlvbi1zd2F0Y2hlcy1hdHRyaWJ1dGUtYmVoYXZpb3ItYmx1ciAucmFkaW8tdmFyaWFibGUtaXRlbS5kaXNhYmxlZDpob3Zlcjo6YmVmb3JlLFxuLndvby12YXJpYXRpb24tc3dhdGNoZXMtc3R5bGVzaGVldC1lbmFibGVkLndvby12YXJpYXRpb24tc3dhdGNoZXMtYXR0cmlidXRlLWJlaGF2aW9yLWJsdXIgLnJhZGlvLXZhcmlhYmxlLWl0ZW0uZGlzYWJsZWQ6aG92ZXI6OmFmdGVyIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLndvby12YXJpYXRpb24tc3dhdGNoZXMtc3R5bGVzaGVldC1lbmFibGVkLndvby12YXJpYXRpb24tc3dhdGNoZXMtYXR0cmlidXRlLWJlaGF2aW9yLWhpZGUgLnZhcmlhYmxlLWl0ZW0uZGlzYWJsZWQge1xuICBvcGFjaXR5OiAwO1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIHRyYW5zZm9ybTogc2NhbGUoMCk7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlcjtcbiAgd2lkdGg6IDAgIWltcG9ydGFudDtcbiAgaGVpZ2h0OiAwICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcbiAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7XG4gIG1pbi13aWR0aDogMCAhaW1wb3J0YW50O1xuICBtaW4taGVpZ2h0OiAwICFpbXBvcnRhbnQ7XG59XG5cbi53b28tdmFyaWF0aW9uLXN3YXRjaGVzLXN0eWxlc2hlZXQtZW5hYmxlZC53b28tdmFyaWF0aW9uLXN3YXRjaGVzLWF0dHJpYnV0ZS1iZWhhdmlvci1oaWRlIC52YXJpYWJsZS1pdGVtLmRpc2FibGVkLnJhZGlvLXZhcmlhYmxlLWl0ZW0ge1xuICB3aWR0aDogYXV0byAhaW1wb3J0YW50O1xufVxuXG4ud29vLXZhcmlhdGlvbi1zd2F0Y2hlcy1zdHlsZXNoZWV0LWVuYWJsZWQud29vLXZhcmlhdGlvbi1zd2F0Y2hlcy10b29sdGlwLWVuYWJsZWQgLnJhZGlvLXZhcmlhYmxlLWl0ZW1bZGF0YS13dnN0b29sdGlwXSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLndvby12YXJpYXRpb24tc3dhdGNoZXMtc3R5bGVzaGVldC1lbmFibGVkLndvby12YXJpYXRpb24tc3dhdGNoZXMtdG9vbHRpcC1lbmFibGVkIC5yYWRpby12YXJpYWJsZS1pdGVtW2RhdGEtd3ZzdG9vbHRpcF06OmJlZm9yZSxcbi53b28tdmFyaWF0aW9uLXN3YXRjaGVzLXN0eWxlc2hlZXQtZW5hYmxlZC53b28tdmFyaWF0aW9uLXN3YXRjaGVzLXRvb2x0aXAtZW5hYmxlZCAucmFkaW8tdmFyaWFibGUtaXRlbVtkYXRhLXd2c3Rvb2x0aXBdOjphZnRlciB7XG4gIGxlZnQ6IDhweDtcbiAgYm90dG9tOiAxMDAlO1xufVxuXG4ud29vLXZhcmlhdGlvbi1zd2F0Y2hlcy1zdHlsZXNoZWV0LWVuYWJsZWQud29vLXZhcmlhdGlvbi1zd2F0Y2hlcy10b29sdGlwLWVuYWJsZWQgLnJhZGlvLXZhcmlhYmxlLWl0ZW0gLmltYWdlLXRvb2x0aXAtd3JhcHBlciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgbGVmdDogOHB4O1xufVxuXG4ud29vLXZhcmlhdGlvbi1zd2F0Y2hlcy1zdHlsZXNoZWV0LWVuYWJsZWQud29vLXZhcmlhdGlvbi1zd2F0Y2hlcy10b29sdGlwLWVuYWJsZWQud29vLXZhcmlhdGlvbi1zd2F0Y2hlcy1hcmNoaXZlLWFsaWduLWNlbnRlciAud3ZzLWFyY2hpdmUtdmFyaWF0aW9uLXdyYXBwZXIgLnJhZGlvLXZhcmlhYmxlLWl0ZW1bZGF0YS13dnN0b29sdGlwXTo6YmVmb3JlLFxuLndvby12YXJpYXRpb24tc3dhdGNoZXMtc3R5bGVzaGVldC1lbmFibGVkLndvby12YXJpYXRpb24tc3dhdGNoZXMtdG9vbHRpcC1lbmFibGVkLndvby12YXJpYXRpb24tc3dhdGNoZXMtYXJjaGl2ZS1hbGlnbi1jZW50ZXIgLnd2cy1hcmNoaXZlLXZhcmlhdGlvbi13cmFwcGVyIC5yYWRpby12YXJpYWJsZS1pdGVtW2RhdGEtd3ZzdG9vbHRpcF06OmFmdGVyIHtcbiAgbGVmdDogNTAlO1xufVxuXG4ud29vLXZhcmlhdGlvbi1zd2F0Y2hlcy1zdHlsZXNoZWV0LWVuYWJsZWQud29vLXZhcmlhdGlvbi1zd2F0Y2hlcy10b29sdGlwLWVuYWJsZWQud29vLXZhcmlhdGlvbi1zd2F0Y2hlcy1hcmNoaXZlLWFsaWduLWNlbnRlciAud3ZzLWFyY2hpdmUtdmFyaWF0aW9uLXdyYXBwZXIgLnJhZGlvLXZhcmlhYmxlLWl0ZW0gLmltYWdlLXRvb2x0aXAtd3JhcHBlciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgbGVmdDogNTAlO1xufVxuXG4ud29vLXZhcmlhdGlvbi1zd2F0Y2hlcy1zdHlsZXNoZWV0LWVuYWJsZWQud29vLXZhcmlhdGlvbi1zd2F0Y2hlcy10b29sdGlwLWVuYWJsZWQud29vLXZhcmlhdGlvbi1zd2F0Y2hlcy1hcmNoaXZlLWFsaWduLXJpZ2h0IC53dnMtYXJjaGl2ZS12YXJpYXRpb24td3JhcHBlciAucmFkaW8tdmFyaWFibGUtaXRlbVtkYXRhLXd2c3Rvb2x0aXBdOjpiZWZvcmUsXG4ud29vLXZhcmlhdGlvbi1zd2F0Y2hlcy1zdHlsZXNoZWV0LWVuYWJsZWQud29vLXZhcmlhdGlvbi1zd2F0Y2hlcy10b29sdGlwLWVuYWJsZWQud29vLXZhcmlhdGlvbi1zd2F0Y2hlcy1hcmNoaXZlLWFsaWduLXJpZ2h0IC53dnMtYXJjaGl2ZS12YXJpYXRpb24td3JhcHBlciAucmFkaW8tdmFyaWFibGUtaXRlbVtkYXRhLXd2c3Rvb2x0aXBdOjphZnRlciB7XG4gIGxlZnQ6IDEwMCU7XG59XG5cbi53b28tdmFyaWF0aW9uLXN3YXRjaGVzLXN0eWxlc2hlZXQtZW5hYmxlZC53b28tdmFyaWF0aW9uLXN3YXRjaGVzLXRvb2x0aXAtZW5hYmxlZC53b28tdmFyaWF0aW9uLXN3YXRjaGVzLWFyY2hpdmUtYWxpZ24tcmlnaHQgLnd2cy1hcmNoaXZlLXZhcmlhdGlvbi13cmFwcGVyIC5yYWRpby12YXJpYWJsZS1pdGVtIC5pbWFnZS10b29sdGlwLXdyYXBwZXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gIGxlZnQ6IDEwMCU7XG59XG5cblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL2Zyb250ZW5kLnNjc3MiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFFQTs7QUFDQTtBQ0FBO0FBQ0E7QURJQTtBQUNBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUNGQTtBQUNBO0FEWkE7QUFnQkE7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FDREE7QUFDQTtBRHBCQTtBQXNCQTtBQUFBO0FDRUE7QUFDQTtBRGpCQTtBQW1CQTtBQ0NBO0FBQ0E7QUQ3QkE7QUE4QkE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FDRUE7QUFDQTtBRHJDQTs7QUFvQ0E7QUNLQTtBQUNBO0FEMUNBO0FBd0NBO0FBQ0E7QUNLQTtBQUNBO0FESEE7QUFDQTtBQUNBO0FBQ0E7QUNLQTtBQUNBO0FEckRBO0FBcURBO0FBQUE7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUNHQTtBQUNBO0FEYkE7QUFhQTtBQ0dBO0FBQ0E7QURyRUE7QUFzRUE7QUFBQTtBQ0VBO0FBQ0E7QUR6RUE7O0FBNEVBO0FBQUE7QUNDQTtBQUNBO0FEOUVBO0FBa0ZBO0FBQ0E7QUFDQTtBQ0RBO0FBQ0E7QURIQTtBQU1BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUNBQTtBQUNBO0FEOUZBO0FBb0dBO0FDSEE7QUFDQTtBRGxHQTtBQThHQTtBQ1RBO0FBQ0E7QURTQTs7O0FBR0E7QUNQQTtBQUNBO0FEV0E7QUFDQTtBQ1RBO0FBQ0E7QURoSEE7QUEwSEE7QUNQQTtBQUNBO0FET0E7QUFDQTtBQ0xBO0FBQ0E7QUR4SEE7QUFpSUE7QUNOQTtBQUNBO0FENUhBOztBQStJQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUNmQTtBQUNBO0FEcklBOzs7O0FBc0pBO0FDWEE7QUFDQTtBRDVJQTs7OztBQTJKQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUNUQTtBQUNBO0FEdkJBOztBQW1DQTtBQUFBO0FDUkE7QUFDQTtBRHhLQTs7QUFtTEE7QUFBQTtBQ1BBO0FBQ0E7QURlQTs7OztBQUNBO0FBQ0E7QUFDQTtBQ1ZBO0FBQ0E7QUR0TEE7Ozs7QUFvTUE7QUNSQTtBQUNBO0FEN0xBO0FBZ05BO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQ2hCQTtBQUNBO0FEMU1BO0FBNk1BO0FDQUE7QUFDQTtBRHNCQTtBQUNBO0FDcEJBO0FBQ0E7QURsTkE7O0FBd09BO0FBQ0E7QUNsQkE7QUFDQTtBRHhOQTtBQStPQTtBQUFBO0FBQ0E7QUNwQkE7QUFDQTtBRDdOQTs7QUFzUEE7QUNyQkE7QUFDQTtBRGxPQTtBQTBQQTtBQUFBO0FBQ0E7QUNyQkE7QUFDQTtBRHZPQTs7QUFtUUE7QUN4QkE7QUFDQTtBRDVPQTtBQXVRQTtBQUFBO0FBQ0E7QUN4QkE7QUFDQTsiLCJzb3VyY2VSb290IjoiIn0=*/
1
  /*!
2
+ * WooCommerce Variation Swatches v1.0.32
3
  *
4
  * Author: Emran Ahmed ( emran.bd.08@gmail.com )
5
+ * Date: 2018-8-5 20:35:04
6
  * Released under the GPLv3 license.
7
  */
8
  .woo-variation-swatches-stylesheet-enabled .woo-variation-raw-select,
135
  }
136
 
137
  .woo-variation-swatches-stylesheet-enabled.woo-variation-swatches-style-squared .variable-items-wrapper .variable-item.button-variable-item {
138
+ /*width : auto;*/
139
  }
140
 
141
  .woo-variation-swatches-stylesheet-enabled.woo-variation-swatches-style-squared .variable-items-wrapper .variable-item.button-variable-item .variable-item-span {
215
  display: none;
216
  }
217
 
218
+ .woo-variation-swatches-stylesheet-enabled.woo-variation-swatches-attribute-behavior-blur-no-cross .variable-item:not(.radio-variable-item).disabled,
219
+ .woo-variation-swatches-stylesheet-enabled.woo-variation-swatches-attribute-behavior-blur-no-cross .variable-item:not(.radio-variable-item).disabled:hover {
220
+ pointer-events: none;
221
+ -webkit-box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.05);
222
+ box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.05);
223
+ position: relative;
224
+ overflow: hidden;
225
+ }
226
+
227
+ .woo-variation-swatches-stylesheet-enabled.woo-variation-swatches-attribute-behavior-blur-no-cross .variable-item:not(.radio-variable-item).disabled img,
228
+ .woo-variation-swatches-stylesheet-enabled.woo-variation-swatches-attribute-behavior-blur-no-cross .variable-item:not(.radio-variable-item).disabled span,
229
+ .woo-variation-swatches-stylesheet-enabled.woo-variation-swatches-attribute-behavior-blur-no-cross .variable-item:not(.radio-variable-item).disabled:hover img,
230
+ .woo-variation-swatches-stylesheet-enabled.woo-variation-swatches-attribute-behavior-blur-no-cross .variable-item:not(.radio-variable-item).disabled:hover span {
231
+ opacity: .3;
232
+ }
233
+
234
+ .woo-variation-swatches-stylesheet-enabled.woo-variation-swatches-attribute-behavior-blur-no-cross .radio-variable-item.disabled,
235
+ .woo-variation-swatches-stylesheet-enabled.woo-variation-swatches-attribute-behavior-blur-no-cross .radio-variable-item.disabled:hover {
236
+ overflow: hidden;
237
+ }
238
+
239
+ .woo-variation-swatches-stylesheet-enabled.woo-variation-swatches-attribute-behavior-blur-no-cross .radio-variable-item.disabled label,
240
+ .woo-variation-swatches-stylesheet-enabled.woo-variation-swatches-attribute-behavior-blur-no-cross .radio-variable-item.disabled input,
241
+ .woo-variation-swatches-stylesheet-enabled.woo-variation-swatches-attribute-behavior-blur-no-cross .radio-variable-item.disabled:hover label,
242
+ .woo-variation-swatches-stylesheet-enabled.woo-variation-swatches-attribute-behavior-blur-no-cross .radio-variable-item.disabled:hover input {
243
+ pointer-events: none;
244
+ opacity: .3;
245
+ }
246
+
247
  .woo-variation-swatches-stylesheet-enabled.woo-variation-swatches-attribute-behavior-hide .variable-item.disabled {
248
  opacity: 0;
249
  visibility: hidden;
302
  }
303
 
304
 
305
+ /*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXRzL2Nzcy9mcm9udGVuZC5jc3MiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvc2Nzcy9zcmMvc2Nzcy9mcm9udGVuZC5zY3NzIiwid2VicGFjazovLy8uL2Zyb250ZW5kLnNjc3MiXSwic291cmNlc0NvbnRlbnQiOlsiLndvby12YXJpYXRpb24tc3dhdGNoZXMtc3R5bGVzaGVldC1lbmFibGVkIHtcblxuICAud29vLXZhcmlhdGlvbi1yYXctc2VsZWN0LCAud29vLXZhcmlhdGlvbi1yYXctc2VsZWN0ICsgLnNlbGVjdDIge1xuICAgIGRpc3BsYXkgOiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gIC8vIFN3YXRjaGVzIGdsb2JhbCBzdHlsZVxuICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgLnZhcmlhYmxlLWl0ZW1zLXdyYXBwZXIge1xuICAgIGRpc3BsYXkgICAgOiBmbGV4O1xuICAgIGZsZXgtd3JhcCAgOiB3cmFwO1xuICAgIG1hcmdpbiAgICAgOiAwO1xuICAgIHBhZGRpbmcgICAgOiAwO1xuICAgIGxpc3Qtc3R5bGUgOiBub25lO1xuXG4gICAgLnZhcmlhYmxlLWl0ZW0ge1xuICAgICAgbWFyZ2luICAgICA6IDA7XG4gICAgICBwYWRkaW5nICAgIDogMDtcbiAgICAgIGxpc3Qtc3R5bGUgOiBub25lO1xuICAgICAgdHJhbnNpdGlvbiA6IGFsbCAyMDBtcyBlYXNlO1xuICAgICAgcG9zaXRpb24gICA6IHJlbGF0aXZlO1xuICAgICAgaW1nIHtcbiAgICAgICAgbWFyZ2luIDogMDsgLyoqIFN0b3JlZnJvbnQgRklYICovXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICYucmFkaW8tdmFyaWFibGUtd3JhcHBlciB7XG4gICAgICBkaXNwbGF5IDogYmxvY2s7XG5cbiAgICAgIC5yYWRpby12YXJpYWJsZS1pdGVtIHtcbiAgICAgICAgYm94LXNpemluZyA6IGJvcmRlci1ib3g7XG4gICAgICAgIGRpc3BsYXkgICAgOiBibG9jaztcbiAgICAgICAgbGlzdC1zdHlsZSA6IG5vbmU7XG4gICAgICAgIGN1cnNvciAgICAgOiBwb2ludGVyO1xuICAgICAgICBtYXJnaW4gICAgIDogMDtcbiAgICAgICAgbGFiZWwsIGlucHV0IHtcbiAgICAgICAgICBjdXJzb3IgOiBwb2ludGVyO1xuICAgICAgICAgIH1cblxuICAgICAgICBpbnB1dCB7XG4gICAgICAgICAgd2lkdGggICAgICAgIDogYXV0bztcbiAgICAgICAgICBtYXJnaW4tcmlnaHQgOiA1cHg7XG4gICAgICAgICAgfVxuXG4gICAgICAgIGxhYmVsIHtcbiAgICAgICAgICBmb250LXdlaWdodCA6IG5vcm1hbDtcbiAgICAgICAgICBmb250LXNpemUgICA6IDE0cHg7XG4gICAgICAgICAgZGlzcGxheSAgICAgOiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAudmFyaWFibGUtaXRlbTpub3QoLnJhZGlvLXZhcmlhYmxlLWl0ZW0pIHtcbiAgICAgIGJveC1zaXppbmcgICAgICAgOiBib3JkZXItYm94O1xuICAgICAgY3Vyc29yICAgICAgICAgICA6IHBvaW50ZXI7XG4gICAgICBkaXNwbGF5ICAgICAgICAgIDogZmxleDtcbiAgICAgIGp1c3RpZnktY29udGVudCAgOiBjZW50ZXI7XG4gICAgICBhbGlnbi1pdGVtcyAgICAgIDogY2VudGVyO1xuICAgICAgYmFja2dyb3VuZC1jb2xvciA6ICNGRkZGRkY7XG4gICAgICBib3gtc2hhZG93ICAgICAgIDogMCAwIDAgMXB4IHJnYmEoIzAwMCwgLjMwJSk7XG4gICAgICBwYWRkaW5nICAgICAgICAgIDogMnB4O1xuICAgICAgbWFyZ2luICAgICAgICAgICA6IDRweCA4cHggNHB4IDA7XG5cbiAgICAgIC8vIGxhc3QgaXRlbSBtYXJnaW4gcmVzZXRcbiAgICAgICY6bGFzdC1vZi10eXBlIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0IDogMDtcbiAgICAgICAgfVxuXG4gICAgICAvL3ZhcmlhYmxlIGhvdmVyIHN0eWxlXG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgYm94LXNoYWRvdyA6IDAgMCAwIDNweCByZ2JhKCMwMDAsIC4xMCUpO1xuICAgICAgICB9XG5cbiAgICAgIC8vdmFyaWFibGUgc2VsZWN0ZWQgaXRlbVxuICAgICAgJi5zZWxlY3RlZCxcbiAgICAgICYuc2VsZWN0ZWQ6aG92ZXIge1xuICAgICAgICBib3gtc2hhZG93IDogMCAwIDAgMnB4IHJnYmEoIzAwMCwgLjkwJSk7XG4gICAgICAgIH1cblxuICAgICAgLy8gY29sb3IgdmFyaWFibGUgaXRlbSBzdHlsZVxuICAgICAgJi5jb2xvci12YXJpYWJsZS1pdGVtIHtcbiAgICAgICAgLnZhcmlhYmxlLWl0ZW0tc3Bhbi1jb2xvciB7XG4gICAgICAgICAgd2lkdGggICAgOiAxMDAlO1xuICAgICAgICAgIGhlaWdodCAgIDogMTAwJTtcbiAgICAgICAgICBwb3NpdGlvbiA6IHJlbGF0aXZlO1xuXG4gICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgcG9zaXRpb24gICA6IGFic29sdXRlO1xuICAgICAgICAgICAgY29udGVudCAgICA6IFwiXCI7XG4gICAgICAgICAgICB3aWR0aCAgICAgIDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodCAgICAgOiAxMDAlO1xuICAgICAgICAgICAgdG9wICAgICAgICA6IDA7XG4gICAgICAgICAgICBsZWZ0ICAgICAgIDogMDtcbiAgICAgICAgICAgIGJveC1zaGFkb3cgOiBpbnNldCAwIDAgMXB4IDAgcmdiYSgwLCAwLCAwLCAwLjUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAvLyBCdXR0b24gdmFyaWFibGUgaXRlbSBzdHlsZVxuICAgICAgJi5idXR0b24tdmFyaWFibGUtaXRlbSB7XG4gICAgICAgIHRleHQtYWxpZ24gOiBjZW50ZXI7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgLy8gU3dhdGNoZXMgc3F1YXJlIGFuZCByb3VuZGVkIHNoYXBlIHN0eWxlXG4gIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAmLndvby12YXJpYXRpb24tc3dhdGNoZXMtc3R5bGUge1xuICAgICYtcm91bmRlZCAudmFyaWFibGUtaXRlbXMtd3JhcHBlciB7XG4gICAgICAudmFyaWFibGUtaXRlbSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXMgOiAxMDAlO1xuICAgICAgICAudmFyaWFibGUtaXRlbS1zcGFuLFxuICAgICAgICBpbWcsXG4gICAgICAgIC52YXJpYWJsZS1pdGVtLXNwYW46OmFmdGVyIHtcbiAgICAgICAgICBib3JkZXItcmFkaXVzIDogMTAwJTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAmLXNxdWFyZWQgLnZhcmlhYmxlLWl0ZW1zLXdyYXBwZXIge1xuICAgICAgLnZhcmlhYmxlLWl0ZW0ge1xuICAgICAgICBib3JkZXItcmFkaXVzIDogMnB4O1xuICAgICAgICAmLmJ1dHRvbi12YXJpYWJsZS1pdGVtIHtcbiAgICAgICAgICAvKndpZHRoIDogYXV0bzsqL1xuICAgICAgICAgIC52YXJpYWJsZS1pdGVtLXNwYW4ge1xuICAgICAgICAgICAgcGFkZGluZyA6IDAgNXB4O1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgJi5jb2xvci12YXJpYWJsZS1pdGVtIHNwYW4ge1xuICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXMgOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAvLyBTd2F0Y2hlcyB2YXJpYXRpb24gYmVoYXZpb3JcbiAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAmLndvby12YXJpYXRpb24tc3dhdGNoZXMtYXR0cmlidXRlLWJlaGF2aW9yIHtcbiAgICAmLWJsdXIge1xuICAgICAgLnZhcmlhYmxlLWl0ZW06bm90KC5yYWRpby12YXJpYWJsZS1pdGVtKSB7XG4gICAgICAgICYuZGlzYWJsZWQsXG4gICAgICAgICYuZGlzYWJsZWQ6aG92ZXIge1xuICAgICAgICAgIGN1cnNvciAgICAgICAgIDogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgYm94LXNoYWRvdyAgICAgOiAwIDAgMCAxcHggcmdiYSgjMDAwLCAuMDUlKTtcbiAgICAgICAgICBwb2ludGVyLWV2ZW50cyA6IG5vbmU7XG4gICAgICAgICAgcG9zaXRpb24gICAgICAgOiByZWxhdGl2ZTtcbiAgICAgICAgICBvdmVyZmxvdyAgICAgICA6IGhpZGRlbjtcblxuICAgICAgICAgIGltZywgc3BhbiB7XG4gICAgICAgICAgICBvcGFjaXR5IDogLjM7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgcG9zaXRpb24gICAgICAgICA6IGFic29sdXRlO1xuICAgICAgICAgICAgY29udGVudCAgICAgICAgICA6IFwiIFwiICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB3aWR0aCAgICAgICAgICAgIDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodCAgICAgICAgICAgOiAxcHg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kICAgICAgIDogI0ZGMDAwMCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgbGVmdCAgICAgICAgICAgICA6IDA7XG4gICAgICAgICAgICByaWdodCAgICAgICAgICAgIDogMDtcbiAgICAgICAgICAgIGJvdHRvbSAgICAgICAgICAgOiAwO1xuICAgICAgICAgICAgdG9wICAgICAgICAgICAgICA6IDUwJTtcbiAgICAgICAgICAgIHZpc2liaWxpdHkgICAgICAgOiB2aXNpYmxlO1xuICAgICAgICAgICAgb3BhY2l0eSAgICAgICAgICA6IDE7XG4gICAgICAgICAgICBib3JkZXIgICAgICAgICAgIDogMDtcbiAgICAgICAgICAgIG1hcmdpbiAgICAgICAgICAgOiAwICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBwYWRkaW5nICAgICAgICAgIDogMCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgbWluLXdpZHRoICAgICAgICA6IGF1dG87XG4gICAgICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luIDogY2VudGVyO1xuICAgICAgICAgICAgei1pbmRleCAgICAgICAgICA6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgdHJhbnNmb3JtIDogcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybSA6IHJvdGF0ZSgtNDVkZWcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgIC5yYWRpby12YXJpYWJsZS1pdGVtIHtcbiAgICAgICAgJi5kaXNhYmxlZCxcbiAgICAgICAgJi5kaXNhYmxlZDpob3ZlciB7XG4gICAgICAgICAgbGFiZWwsIGlucHV0IHtcbiAgICAgICAgICAgIGN1cnNvciAgICAgICAgICA6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uIDogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgb3BhY2l0eSAgICAgICAgIDogLjU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgZGlzcGxheSA6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgJi1ibHVyLW5vLWNyb3NzIHtcbiAgICAgIC52YXJpYWJsZS1pdGVtOm5vdCgucmFkaW8tdmFyaWFibGUtaXRlbSkge1xuICAgICAgICAmLmRpc2FibGVkLFxuICAgICAgICAmLmRpc2FibGVkOmhvdmVyIHtcbiAgICAgICAgICBwb2ludGVyLWV2ZW50cyA6IG5vbmU7XG4gICAgICAgICAgYm94LXNoYWRvdyAgICAgOiAwIDAgMCAxcHggcmdiYSgjMDAwLCAuMDUlKTtcbiAgICAgICAgICBwb3NpdGlvbiAgICAgICA6IHJlbGF0aXZlO1xuICAgICAgICAgIG92ZXJmbG93ICAgICAgIDogaGlkZGVuO1xuICAgICAgICAgIGltZywgc3BhbiB7XG4gICAgICAgICAgICBvcGFjaXR5IDogLjM7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgIC5yYWRpby12YXJpYWJsZS1pdGVtIHtcbiAgICAgICAgJi5kaXNhYmxlZCxcbiAgICAgICAgJi5kaXNhYmxlZDpob3ZlciB7XG4gICAgICAgICAgb3ZlcmZsb3cgOiBoaWRkZW47XG4gICAgICAgICAgbGFiZWwsIGlucHV0IHtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzIDogbm9uZTtcbiAgICAgICAgICAgIG9wYWNpdHkgICAgICAgIDogLjM7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgJi1oaWRlIHtcbiAgICAgIC52YXJpYWJsZS1pdGVtIHtcbiAgICAgICAgJi5kaXNhYmxlZCB7XG4gICAgICAgICAgJi5yYWRpby12YXJpYWJsZS1pdGVtIHtcbiAgICAgICAgICAgIHdpZHRoIDogYXV0byAhaW1wb3J0YW50O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgb3BhY2l0eSAgICAgICAgICA6IDA7XG4gICAgICAgICAgdmlzaWJpbGl0eSAgICAgICA6IGhpZGRlbjtcbiAgICAgICAgICB0cmFuc2Zvcm0gICAgICAgIDogc2NhbGUoMCk7XG4gICAgICAgICAgdHJhbnNmb3JtLW9yaWdpbiA6IGNlbnRlcjtcbiAgICAgICAgICB3aWR0aCAgICAgICAgICAgIDogMCAhaW1wb3J0YW50O1xuICAgICAgICAgIGhlaWdodCAgICAgICAgICAgOiAwICFpbXBvcnRhbnQ7XG4gICAgICAgICAgcGFkZGluZyAgICAgICAgICA6IDAgIWltcG9ydGFudDtcbiAgICAgICAgICBtYXJnaW4gICAgICAgICAgIDogMCAhaW1wb3J0YW50O1xuICAgICAgICAgIG1pbi13aWR0aCAgICAgICAgOiAwICFpbXBvcnRhbnQ7XG4gICAgICAgICAgbWluLWhlaWdodCAgICAgICA6IDAgIWltcG9ydGFudDtcbiAgICAgICAgICAvL2Rpc3BsYXkgOiBub25lO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAvLyB0b29sIHRpcHNcbiAgJi53b28tdmFyaWF0aW9uLXN3YXRjaGVzLXRvb2x0aXAtZW5hYmxlZCB7XG5cbiAgICAvLyBEZWZhdWx0XG4gICAgLnJhZGlvLXZhcmlhYmxlLWl0ZW1bZGF0YS13dnN0b29sdGlwXSB7XG4gICAgICBwb3NpdGlvbiA6IHJlbGF0aXZlO1xuICAgICAgJjo6YmVmb3JlLFxuICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICBsZWZ0ICAgOiA4cHg7XG4gICAgICAgIGJvdHRvbSA6IDEwMCU7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgIC8vIGltYWdlIHZhcmlhYmxlIHRvb2x0aXBzXG4gICAgLnJhZGlvLXZhcmlhYmxlLWl0ZW0gLmltYWdlLXRvb2x0aXAtd3JhcHBlciB7XG4gICAgICB0cmFuc2Zvcm0gOiB0cmFuc2xhdGVYKC01MCUpO1xuICAgICAgbGVmdCAgICAgIDogOHB4O1xuICAgICAgfVxuXG4gICAgJi53b28tdmFyaWF0aW9uLXN3YXRjaGVzLWFyY2hpdmUtYWxpZ24tY2VudGVyIC53dnMtYXJjaGl2ZS12YXJpYXRpb24td3JhcHBlciAucmFkaW8tdmFyaWFibGUtaXRlbSB7XG4gICAgICAmW2RhdGEtd3ZzdG9vbHRpcF06OmJlZm9yZSxcbiAgICAgICZbZGF0YS13dnN0b29sdGlwXTo6YWZ0ZXIge1xuICAgICAgICBsZWZ0IDogNTAlO1xuICAgICAgICB9XG5cbiAgICAgIC5pbWFnZS10b29sdGlwLXdyYXBwZXIge1xuICAgICAgICB0cmFuc2Zvcm0gOiB0cmFuc2xhdGVYKC01MCUpO1xuICAgICAgICBsZWZ0ICAgICAgOiA1MCU7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICYud29vLXZhcmlhdGlvbi1zd2F0Y2hlcy1hcmNoaXZlLWFsaWduLXJpZ2h0IC53dnMtYXJjaGl2ZS12YXJpYXRpb24td3JhcHBlciAucmFkaW8tdmFyaWFibGUtaXRlbSB7XG4gICAgICAmW2RhdGEtd3ZzdG9vbHRpcF06OmJlZm9yZSxcbiAgICAgICZbZGF0YS13dnN0b29sdGlwXTo6YWZ0ZXIge1xuICAgICAgICBsZWZ0IDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAuaW1hZ2UtdG9vbHRpcC13cmFwcGVyIHtcbiAgICAgICAgdHJhbnNmb3JtIDogdHJhbnNsYXRlWCgtNTAlKTtcbiAgICAgICAgbGVmdCAgICAgIDogMTAwJTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3NyYy9zY3NzL3NyYy9zY3NzL2Zyb250ZW5kLnNjc3MiLCIud29vLXZhcmlhdGlvbi1zd2F0Y2hlcy1zdHlsZXNoZWV0LWVuYWJsZWQgLndvby12YXJpYXRpb24tcmF3LXNlbGVjdCxcbi53b28tdmFyaWF0aW9uLXN3YXRjaGVzLXN0eWxlc2hlZXQtZW5hYmxlZCAud29vLXZhcmlhdGlvbi1yYXctc2VsZWN0ICsgLnNlbGVjdDIge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG59XG5cbi53b28tdmFyaWF0aW9uLXN3YXRjaGVzLXN0eWxlc2hlZXQtZW5hYmxlZCAudmFyaWFibGUtaXRlbXMtd3JhcHBlciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBsaXN0LXN0eWxlOiBub25lO1xufVxuXG4ud29vLXZhcmlhdGlvbi1zd2F0Y2hlcy1zdHlsZXNoZWV0LWVuYWJsZWQgLnZhcmlhYmxlLWl0ZW1zLXdyYXBwZXIgLnZhcmlhYmxlLWl0ZW0ge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIHRyYW5zaXRpb246IGFsbCAyMDBtcyBlYXNlO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi53b28tdmFyaWF0aW9uLXN3YXRjaGVzLXN0eWxlc2hlZXQtZW5hYmxlZCAudmFyaWFibGUtaXRlbXMtd3JhcHBlciAudmFyaWFibGUtaXRlbSBpbWcge1xuICBtYXJnaW46IDA7XG4gIC8qKiBTdG9yZWZyb250IEZJWCAqL1xufVxuXG4ud29vLXZhcmlhdGlvbi1zd2F0Y2hlcy1zdHlsZXNoZWV0LWVuYWJsZWQgLnZhcmlhYmxlLWl0ZW1zLXdyYXBwZXIucmFkaW8tdmFyaWFibGUtd3JhcHBlciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4ud29vLXZhcmlhdGlvbi1zd2F0Y2hlcy1zdHlsZXNoZWV0LWVuYWJsZWQgLnZhcmlhYmxlLWl0ZW1zLXdyYXBwZXIucmFkaW8tdmFyaWFibGUtd3JhcHBlciAucmFkaW8tdmFyaWFibGUtaXRlbSB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIG1hcmdpbjogMDtcbn1cblxuLndvby12YXJpYXRpb24tc3dhdGNoZXMtc3R5bGVzaGVldC1lbmFibGVkIC52YXJpYWJsZS1pdGVtcy13cmFwcGVyLnJhZGlvLXZhcmlhYmxlLXdyYXBwZXIgLnJhZGlvLXZhcmlhYmxlLWl0ZW0gbGFiZWwsXG4ud29vLXZhcmlhdGlvbi1zd2F0Y2hlcy1zdHlsZXNoZWV0LWVuYWJsZWQgLnZhcmlhYmxlLWl0ZW1zLXdyYXBwZXIucmFkaW8tdmFyaWFibGUtd3JhcHBlciAucmFkaW8tdmFyaWFibGUtaXRlbSBpbnB1dCB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLndvby12YXJpYXRpb24tc3dhdGNoZXMtc3R5bGVzaGVldC1lbmFibGVkIC52YXJpYWJsZS1pdGVtcy13cmFwcGVyLnJhZGlvLXZhcmlhYmxlLXdyYXBwZXIgLnJhZGlvLXZhcmlhYmxlLWl0ZW0gaW5wdXQge1xuICB3aWR0aDogYXV0bztcbiAgbWFyZ2luLXJpZ2h0OiA1cHg7XG59XG5cbi53b28tdmFyaWF0aW9uLXN3YXRjaGVzLXN0eWxlc2hlZXQtZW5hYmxlZCAudmFyaWFibGUtaXRlbXMtd3JhcHBlci5yYWRpby12YXJpYWJsZS13cmFwcGVyIC5yYWRpby12YXJpYWJsZS1pdGVtIGxhYmVsIHtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG5cbi53b28tdmFyaWF0aW9uLXN3YXRjaGVzLXN0eWxlc2hlZXQtZW5hYmxlZCAudmFyaWFibGUtaXRlbXMtd3JhcHBlciAudmFyaWFibGUtaXRlbTpub3QoLnJhZGlvLXZhcmlhYmxlLWl0ZW0pIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZGRkZGRjtcbiAgYm94LXNoYWRvdzogMCAwIDAgMXB4IHJnYmEoMCwgMCwgMCwgMC4zKTtcbiAgcGFkZGluZzogMnB4O1xuICBtYXJnaW46IDRweCA4cHggNHB4IDA7XG59XG5cbi53b28tdmFyaWF0aW9uLXN3YXRjaGVzLXN0eWxlc2hlZXQtZW5hYmxlZCAudmFyaWFibGUtaXRlbXMtd3JhcHBlciAudmFyaWFibGUtaXRlbTpub3QoLnJhZGlvLXZhcmlhYmxlLWl0ZW0pOmxhc3Qtb2YtdHlwZSB7XG4gIG1hcmdpbi1yaWdodDogMDtcbn1cblxuLndvby12YXJpYXRpb24tc3dhdGNoZXMtc3R5bGVzaGVldC1lbmFibGVkIC52YXJpYWJsZS1pdGVtcy13cmFwcGVyIC52YXJpYWJsZS1pdGVtOm5vdCgucmFkaW8tdmFyaWFibGUtaXRlbSk6aG92ZXIge1xuICBib3gtc2hhZG93OiAwIDAgMCAzcHggcmdiYSgwLCAwLCAwLCAwLjEpO1xufVxuXG4ud29vLXZhcmlhdGlvbi1zd2F0Y2hlcy1zdHlsZXNoZWV0LWVuYWJsZWQgLnZhcmlhYmxlLWl0ZW1zLXdyYXBwZXIgLnZhcmlhYmxlLWl0ZW06bm90KC5yYWRpby12YXJpYWJsZS1pdGVtKS5zZWxlY3RlZCxcbi53b28tdmFyaWF0aW9uLXN3YXRjaGVzLXN0eWxlc2hlZXQtZW5hYmxlZCAudmFyaWFibGUtaXRlbXMtd3JhcHBlciAudmFyaWFibGUtaXRlbTpub3QoLnJhZGlvLXZhcmlhYmxlLWl0ZW0pLnNlbGVjdGVkOmhvdmVyIHtcbiAgYm94LXNoYWRvdzogMCAwIDAgMnB4IHJnYmEoMCwgMCwgMCwgMC45KTtcbn1cblxuLndvby12YXJpYXRpb24tc3dhdGNoZXMtc3R5bGVzaGVldC1lbmFibGVkIC52YXJpYWJsZS1pdGVtcy13cmFwcGVyIC52YXJpYWJsZS1pdGVtOm5vdCgucmFkaW8tdmFyaWFibGUtaXRlbSkuY29sb3ItdmFyaWFibGUtaXRlbSAudmFyaWFibGUtaXRlbS1zcGFuLWNvbG9yIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4ud29vLXZhcmlhdGlvbi1zd2F0Y2hlcy1zdHlsZXNoZWV0LWVuYWJsZWQgLnZhcmlhYmxlLWl0ZW1zLXdyYXBwZXIgLnZhcmlhYmxlLWl0ZW06bm90KC5yYWRpby12YXJpYWJsZS1pdGVtKS5jb2xvci12YXJpYWJsZS1pdGVtIC52YXJpYWJsZS1pdGVtLXNwYW4tY29sb3I6OmFmdGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBjb250ZW50OiBcIlwiO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMCAxcHggMCByZ2JhKDAsIDAsIDAsIDAuNSk7XG59XG5cbi53b28tdmFyaWF0aW9uLXN3YXRjaGVzLXN0eWxlc2hlZXQtZW5hYmxlZCAudmFyaWFibGUtaXRlbXMtd3JhcHBlciAudmFyaWFibGUtaXRlbTpub3QoLnJhZGlvLXZhcmlhYmxlLWl0ZW0pLmJ1dHRvbi12YXJpYWJsZS1pdGVtIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4ud29vLXZhcmlhdGlvbi1zd2F0Y2hlcy1zdHlsZXNoZWV0LWVuYWJsZWQud29vLXZhcmlhdGlvbi1zd2F0Y2hlcy1zdHlsZS1yb3VuZGVkIC52YXJpYWJsZS1pdGVtcy13cmFwcGVyIC52YXJpYWJsZS1pdGVtIHtcbiAgYm9yZGVyLXJhZGl1czogMTAwJTtcbn1cblxuLndvby12YXJpYXRpb24tc3dhdGNoZXMtc3R5bGVzaGVldC1lbmFibGVkLndvby12YXJpYXRpb24tc3dhdGNoZXMtc3R5bGUtcm91bmRlZCAudmFyaWFibGUtaXRlbXMtd3JhcHBlciAudmFyaWFibGUtaXRlbSAudmFyaWFibGUtaXRlbS1zcGFuLFxuLndvby12YXJpYXRpb24tc3dhdGNoZXMtc3R5bGVzaGVldC1lbmFibGVkLndvby12YXJpYXRpb24tc3dhdGNoZXMtc3R5bGUtcm91bmRlZCAudmFyaWFibGUtaXRlbXMtd3JhcHBlciAudmFyaWFibGUtaXRlbSBpbWcsXG4ud29vLXZhcmlhdGlvbi1zd2F0Y2hlcy1zdHlsZXNoZWV0LWVuYWJsZWQud29vLXZhcmlhdGlvbi1zd2F0Y2hlcy1zdHlsZS1yb3VuZGVkIC52YXJpYWJsZS1pdGVtcy13cmFwcGVyIC52YXJpYWJsZS1pdGVtIC52YXJpYWJsZS1pdGVtLXNwYW46OmFmdGVyIHtcbiAgYm9yZGVyLXJhZGl1czogMTAwJTtcbn1cblxuLndvby12YXJpYXRpb24tc3dhdGNoZXMtc3R5bGVzaGVldC1lbmFibGVkLndvby12YXJpYXRpb24tc3dhdGNoZXMtc3R5bGUtc3F1YXJlZCAudmFyaWFibGUtaXRlbXMtd3JhcHBlciAudmFyaWFibGUtaXRlbSB7XG4gIGJvcmRlci1yYWRpdXM6IDJweDtcbn1cblxuLndvby12YXJpYXRpb24tc3dhdGNoZXMtc3R5bGVzaGVldC1lbmFibGVkLndvby12YXJpYXRpb24tc3dhdGNoZXMtc3R5bGUtc3F1YXJlZCAudmFyaWFibGUtaXRlbXMtd3JhcHBlciAudmFyaWFibGUtaXRlbS5idXR0b24tdmFyaWFibGUtaXRlbSB7XG4gIC8qd2lkdGggOiBhdXRvOyovXG59XG5cbi53b28tdmFyaWF0aW9uLXN3YXRjaGVzLXN0eWxlc2hlZXQtZW5hYmxlZC53b28tdmFyaWF0aW9uLXN3YXRjaGVzLXN0eWxlLXNxdWFyZWQgLnZhcmlhYmxlLWl0ZW1zLXdyYXBwZXIgLnZhcmlhYmxlLWl0ZW0uYnV0dG9uLXZhcmlhYmxlLWl0ZW0gLnZhcmlhYmxlLWl0ZW0tc3BhbiB7XG4gIHBhZGRpbmc6IDAgNXB4O1xufVxuXG4ud29vLXZhcmlhdGlvbi1zd2F0Y2hlcy1zdHlsZXNoZWV0LWVuYWJsZWQud29vLXZhcmlhdGlvbi1zd2F0Y2hlcy1zdHlsZS1zcXVhcmVkIC52YXJpYWJsZS1pdGVtcy13cmFwcGVyIC52YXJpYWJsZS1pdGVtLmNvbG9yLXZhcmlhYmxlLWl0ZW0gc3Bhbjo6YWZ0ZXIge1xuICBib3JkZXItcmFkaXVzOiAwO1xufVxuXG4ud29vLXZhcmlhdGlvbi1zd2F0Y2hlcy1zdHlsZXNoZWV0LWVuYWJsZWQud29vLXZhcmlhdGlvbi1zd2F0Y2hlcy1hdHRyaWJ1dGUtYmVoYXZpb3ItYmx1ciAudmFyaWFibGUtaXRlbTpub3QoLnJhZGlvLXZhcmlhYmxlLWl0ZW0pLmRpc2FibGVkLFxuLndvby12YXJpYXRpb24tc3dhdGNoZXMtc3R5bGVzaGVldC1lbmFibGVkLndvby12YXJpYXRpb24tc3dhdGNoZXMtYXR0cmlidXRlLWJlaGF2aW9yLWJsdXIgLnZhcmlhYmxlLWl0ZW06bm90KC5yYWRpby12YXJpYWJsZS1pdGVtKS5kaXNhYmxlZDpob3ZlciB7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gIGJveC1zaGFkb3c6IDAgMCAwIDFweCByZ2JhKDAsIDAsIDAsIDAuMDUpO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4ud29vLXZhcmlhdGlvbi1zd2F0Y2hlcy1zdHlsZXNoZWV0LWVuYWJsZWQud29vLXZhcmlhdGlvbi1zd2F0Y2hlcy1hdHRyaWJ1dGUtYmVoYXZpb3ItYmx1ciAudmFyaWFibGUtaXRlbTpub3QoLnJhZGlvLXZhcmlhYmxlLWl0ZW0pLmRpc2FibGVkIGltZyxcbi53b28tdmFyaWF0aW9uLXN3YXRjaGVzLXN0eWxlc2hlZXQtZW5hYmxlZC53b28tdmFyaWF0aW9uLXN3YXRjaGVzLWF0dHJpYnV0ZS1iZWhhdmlvci1ibHVyIC52YXJpYWJsZS1pdGVtOm5vdCgucmFkaW8tdmFyaWFibGUtaXRlbSkuZGlzYWJsZWQgc3Bhbixcbi53b28tdmFyaWF0aW9uLXN3YXRjaGVzLXN0eWxlc2hlZXQtZW5hYmxlZC53b28tdmFyaWF0aW9uLXN3YXRjaGVzLWF0dHJpYnV0ZS1iZWhhdmlvci1ibHVyIC52YXJpYWJsZS1pdGVtOm5vdCgucmFkaW8tdmFyaWFibGUtaXRlbSkuZGlzYWJsZWQ6aG92ZXIgaW1nLFxuLndvby12YXJpYXRpb24tc3dhdGNoZXMtc3R5bGVzaGVldC1lbmFibGVkLndvby12YXJpYXRpb24tc3dhdGNoZXMtYXR0cmlidXRlLWJlaGF2aW9yLWJsdXIgLnZhcmlhYmxlLWl0ZW06bm90KC5yYWRpby12YXJpYWJsZS1pdGVtKS5kaXNhYmxlZDpob3ZlciBzcGFuIHtcbiAgb3BhY2l0eTogLjM7XG59XG5cbi53b28tdmFyaWF0aW9uLXN3YXRjaGVzLXN0eWxlc2hlZXQtZW5hYmxlZC53b28tdmFyaWF0aW9uLXN3YXRjaGVzLWF0dHJpYnV0ZS1iZWhhdmlvci1ibHVyIC52YXJpYWJsZS1pdGVtOm5vdCgucmFkaW8tdmFyaWFibGUtaXRlbSkuZGlzYWJsZWQ6OmJlZm9yZSxcbi53b28tdmFyaWF0aW9uLXN3YXRjaGVzLXN0eWxlc2hlZXQtZW5hYmxlZC53b28tdmFyaWF0aW9uLXN3YXRjaGVzLWF0dHJpYnV0ZS1iZWhhdmlvci1ibHVyIC52YXJpYWJsZS1pdGVtOm5vdCgucmFkaW8tdmFyaWFibGUtaXRlbSkuZGlzYWJsZWQ6OmFmdGVyLFxuLndvby12YXJpYXRpb24tc3dhdGNoZXMtc3R5bGVzaGVldC1lbmFibGVkLndvby12YXJpYXRpb24tc3dhdGNoZXMtYXR0cmlidXRlLWJlaGF2aW9yLWJsdXIgLnZhcmlhYmxlLWl0ZW06bm90KC5yYWRpby12YXJpYWJsZS1pdGVtKS5kaXNhYmxlZDpob3Zlcjo6YmVmb3JlLFxuLndvby12YXJpYXRpb24tc3dhdGNoZXMtc3R5bGVzaGVldC1lbmFibGVkLndvby12YXJpYXRpb24tc3dhdGNoZXMtYXR0cmlidXRlLWJlaGF2aW9yLWJsdXIgLnZhcmlhYmxlLWl0ZW06bm90KC5yYWRpby12YXJpYWJsZS1pdGVtKS5kaXNhYmxlZDpob3Zlcjo6YWZ0ZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGNvbnRlbnQ6IFwiIFwiICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDFweDtcbiAgYmFja2dyb3VuZDogI0ZGMDAwMCAhaW1wb3J0YW50O1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xuICB0b3A6IDUwJTtcbiAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgb3BhY2l0eTogMTtcbiAgYm9yZGVyOiAwO1xuICBtYXJnaW46IDAgIWltcG9ydGFudDtcbiAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICBtaW4td2lkdGg6IGF1dG87XG4gIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlcjtcbiAgei1pbmRleDogMDtcbn1cblxuLndvby12YXJpYXRpb24tc3dhdGNoZXMtc3R5bGVzaGVldC1lbmFibGVkLndvby12YXJpYXRpb24tc3dhdGNoZXMtYXR0cmlidXRlLWJlaGF2aW9yLWJsdXIgLnZhcmlhYmxlLWl0ZW06bm90KC5yYWRpby12YXJpYWJsZS1pdGVtKS5kaXNhYmxlZDo6YmVmb3JlLFxuLndvby12YXJpYXRpb24tc3dhdGNoZXMtc3R5bGVzaGVldC1lbmFibGVkLndvby12YXJpYXRpb24tc3dhdGNoZXMtYXR0cmlidXRlLWJlaGF2aW9yLWJsdXIgLnZhcmlhYmxlLWl0ZW06bm90KC5yYWRpby12YXJpYWJsZS1pdGVtKS5kaXNhYmxlZDpob3Zlcjo6YmVmb3JlIHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xufVxuXG4ud29vLXZhcmlhdGlvbi1zd2F0Y2hlcy1zdHlsZXNoZWV0LWVuYWJsZWQud29vLXZhcmlhdGlvbi1zd2F0Y2hlcy1hdHRyaWJ1dGUtYmVoYXZpb3ItYmx1ciAudmFyaWFibGUtaXRlbTpub3QoLnJhZGlvLXZhcmlhYmxlLWl0ZW0pLmRpc2FibGVkOjphZnRlcixcbi53b28tdmFyaWF0aW9uLXN3YXRjaGVzLXN0eWxlc2hlZXQtZW5hYmxlZC53b28tdmFyaWF0aW9uLXN3YXRjaGVzLWF0dHJpYnV0ZS1iZWhhdmlvci1ibHVyIC52YXJpYWJsZS1pdGVtOm5vdCgucmFkaW8tdmFyaWFibGUtaXRlbSkuZGlzYWJsZWQ6aG92ZXI6OmFmdGVyIHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKTtcbn1cblxuLndvby12YXJpYXRpb24tc3dhdGNoZXMtc3R5bGVzaGVldC1lbmFibGVkLndvby12YXJpYXRpb24tc3dhdGNoZXMtYXR0cmlidXRlLWJlaGF2aW9yLWJsdXIgLnJhZGlvLXZhcmlhYmxlLWl0ZW0uZGlzYWJsZWQgbGFiZWwsXG4ud29vLXZhcmlhdGlvbi1zd2F0Y2hlcy1zdHlsZXNoZWV0LWVuYWJsZWQud29vLXZhcmlhdGlvbi1zd2F0Y2hlcy1hdHRyaWJ1dGUtYmVoYXZpb3ItYmx1ciAucmFkaW8tdmFyaWFibGUtaXRlbS5kaXNhYmxlZCBpbnB1dCxcbi53b28tdmFyaWF0aW9uLXN3YXRjaGVzLXN0eWxlc2hlZXQtZW5hYmxlZC53b28tdmFyaWF0aW9uLXN3YXRjaGVzLWF0dHJpYnV0ZS1iZWhhdmlvci1ibHVyIC5yYWRpby12YXJpYWJsZS1pdGVtLmRpc2FibGVkOmhvdmVyIGxhYmVsLFxuLndvby12YXJpYXRpb24tc3dhdGNoZXMtc3R5bGVzaGVldC1lbmFibGVkLndvby12YXJpYXRpb24tc3dhdGNoZXMtYXR0cmlidXRlLWJlaGF2aW9yLWJsdXIgLnJhZGlvLXZhcmlhYmxlLWl0ZW0uZGlzYWJsZWQ6aG92ZXIgaW5wdXQge1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgb3BhY2l0eTogLjU7XG59XG5cbi53b28tdmFyaWF0aW9uLXN3YXRjaGVzLXN0eWxlc2hlZXQtZW5hYmxlZC53b28tdmFyaWF0aW9uLXN3YXRjaGVzLWF0dHJpYnV0ZS1iZWhhdmlvci1ibHVyIC5yYWRpby12YXJpYWJsZS1pdGVtLmRpc2FibGVkOjpiZWZvcmUsXG4ud29vLXZhcmlhdGlvbi1zd2F0Y2hlcy1zdHlsZXNoZWV0LWVuYWJsZWQud29vLXZhcmlhdGlvbi1zd2F0Y2hlcy1hdHRyaWJ1dGUtYmVoYXZpb3ItYmx1ciAucmFkaW8tdmFyaWFibGUtaXRlbS5kaXNhYmxlZDo6YWZ0ZXIsXG4ud29vLXZhcmlhdGlvbi1zd2F0Y2hlcy1zdHlsZXNoZWV0LWVuYWJsZWQud29vLXZhcmlhdGlvbi1zd2F0Y2hlcy1hdHRyaWJ1dGUtYmVoYXZpb3ItYmx1ciAucmFkaW8tdmFyaWFibGUtaXRlbS5kaXNhYmxlZDpob3Zlcjo6YmVmb3JlLFxuLndvby12YXJpYXRpb24tc3dhdGNoZXMtc3R5bGVzaGVldC1lbmFibGVkLndvby12YXJpYXRpb24tc3dhdGNoZXMtYXR0cmlidXRlLWJlaGF2aW9yLWJsdXIgLnJhZGlvLXZhcmlhYmxlLWl0ZW0uZGlzYWJsZWQ6aG92ZXI6OmFmdGVyIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLndvby12YXJpYXRpb24tc3dhdGNoZXMtc3R5bGVzaGVldC1lbmFibGVkLndvby12YXJpYXRpb24tc3dhdGNoZXMtYXR0cmlidXRlLWJlaGF2aW9yLWJsdXItbm8tY3Jvc3MgLnZhcmlhYmxlLWl0ZW06bm90KC5yYWRpby12YXJpYWJsZS1pdGVtKS5kaXNhYmxlZCxcbi53b28tdmFyaWF0aW9uLXN3YXRjaGVzLXN0eWxlc2hlZXQtZW5hYmxlZC53b28tdmFyaWF0aW9uLXN3YXRjaGVzLWF0dHJpYnV0ZS1iZWhhdmlvci1ibHVyLW5vLWNyb3NzIC52YXJpYWJsZS1pdGVtOm5vdCgucmFkaW8tdmFyaWFibGUtaXRlbSkuZGlzYWJsZWQ6aG92ZXIge1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgYm94LXNoYWRvdzogMCAwIDAgMXB4IHJnYmEoMCwgMCwgMCwgMC4wNSk7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLndvby12YXJpYXRpb24tc3dhdGNoZXMtc3R5bGVzaGVldC1lbmFibGVkLndvby12YXJpYXRpb24tc3dhdGNoZXMtYXR0cmlidXRlLWJlaGF2aW9yLWJsdXItbm8tY3Jvc3MgLnZhcmlhYmxlLWl0ZW06bm90KC5yYWRpby12YXJpYWJsZS1pdGVtKS5kaXNhYmxlZCBpbWcsXG4ud29vLXZhcmlhdGlvbi1zd2F0Y2hlcy1zdHlsZXNoZWV0LWVuYWJsZWQud29vLXZhcmlhdGlvbi1zd2F0Y2hlcy1hdHRyaWJ1dGUtYmVoYXZpb3ItYmx1ci1uby1jcm9zcyAudmFyaWFibGUtaXRlbTpub3QoLnJhZGlvLXZhcmlhYmxlLWl0ZW0pLmRpc2FibGVkIHNwYW4sXG4ud29vLXZhcmlhdGlvbi1zd2F0Y2hlcy1zdHlsZXNoZWV0LWVuYWJsZWQud29vLXZhcmlhdGlvbi1zd2F0Y2hlcy1hdHRyaWJ1dGUtYmVoYXZpb3ItYmx1ci1uby1jcm9zcyAudmFyaWFibGUtaXRlbTpub3QoLnJhZGlvLXZhcmlhYmxlLWl0ZW0pLmRpc2FibGVkOmhvdmVyIGltZyxcbi53b28tdmFyaWF0aW9uLXN3YXRjaGVzLXN0eWxlc2hlZXQtZW5hYmxlZC53b28tdmFyaWF0aW9uLXN3YXRjaGVzLWF0dHJpYnV0ZS1iZWhhdmlvci1ibHVyLW5vLWNyb3NzIC52YXJpYWJsZS1pdGVtOm5vdCgucmFkaW8tdmFyaWFibGUtaXRlbSkuZGlzYWJsZWQ6aG92ZXIgc3BhbiB7XG4gIG9wYWNpdHk6IC4zO1xufVxuXG4ud29vLXZhcmlhdGlvbi1zd2F0Y2hlcy1zdHlsZXNoZWV0LWVuYWJsZWQud29vLXZhcmlhdGlvbi1zd2F0Y2hlcy1hdHRyaWJ1dGUtYmVoYXZpb3ItYmx1ci1uby1jcm9zcyAucmFkaW8tdmFyaWFibGUtaXRlbS5kaXNhYmxlZCxcbi53b28tdmFyaWF0aW9uLXN3YXRjaGVzLXN0eWxlc2hlZXQtZW5hYmxlZC53b28tdmFyaWF0aW9uLXN3YXRjaGVzLWF0dHJpYnV0ZS1iZWhhdmlvci1ibHVyLW5vLWNyb3NzIC5yYWRpby12YXJpYWJsZS1pdGVtLmRpc2FibGVkOmhvdmVyIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLndvby12YXJpYXRpb24tc3dhdGNoZXMtc3R5bGVzaGVldC1lbmFibGVkLndvby12YXJpYXRpb24tc3dhdGNoZXMtYXR0cmlidXRlLWJlaGF2aW9yLWJsdXItbm8tY3Jvc3MgLnJhZGlvLXZhcmlhYmxlLWl0ZW0uZGlzYWJsZWQgbGFiZWwsXG4ud29vLXZhcmlhdGlvbi1zd2F0Y2hlcy1zdHlsZXNoZWV0LWVuYWJsZWQud29vLXZhcmlhdGlvbi1zd2F0Y2hlcy1hdHRyaWJ1dGUtYmVoYXZpb3ItYmx1ci1uby1jcm9zcyAucmFkaW8tdmFyaWFibGUtaXRlbS5kaXNhYmxlZCBpbnB1dCxcbi53b28tdmFyaWF0aW9uLXN3YXRjaGVzLXN0eWxlc2hlZXQtZW5hYmxlZC53b28tdmFyaWF0aW9uLXN3YXRjaGVzLWF0dHJpYnV0ZS1iZWhhdmlvci1ibHVyLW5vLWNyb3NzIC5yYWRpby12YXJpYWJsZS1pdGVtLmRpc2FibGVkOmhvdmVyIGxhYmVsLFxuLndvby12YXJpYXRpb24tc3dhdGNoZXMtc3R5bGVzaGVldC1lbmFibGVkLndvby12YXJpYXRpb24tc3dhdGNoZXMtYXR0cmlidXRlLWJlaGF2aW9yLWJsdXItbm8tY3Jvc3MgLnJhZGlvLXZhcmlhYmxlLWl0ZW0uZGlzYWJsZWQ6aG92ZXIgaW5wdXQge1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgb3BhY2l0eTogLjM7XG59XG5cbi53b28tdmFyaWF0aW9uLXN3YXRjaGVzLXN0eWxlc2hlZXQtZW5hYmxlZC53b28tdmFyaWF0aW9uLXN3YXRjaGVzLWF0dHJpYnV0ZS1iZWhhdmlvci1oaWRlIC52YXJpYWJsZS1pdGVtLmRpc2FibGVkIHtcbiAgb3BhY2l0eTogMDtcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICB0cmFuc2Zvcm06IHNjYWxlKDApO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXI7XG4gIHdpZHRoOiAwICFpbXBvcnRhbnQ7XG4gIGhlaWdodDogMCAhaW1wb3J0YW50O1xuICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XG4gIG1hcmdpbjogMCAhaW1wb3J0YW50O1xuICBtaW4td2lkdGg6IDAgIWltcG9ydGFudDtcbiAgbWluLWhlaWdodDogMCAhaW1wb3J0YW50O1xufVxuXG4ud29vLXZhcmlhdGlvbi1zd2F0Y2hlcy1zdHlsZXNoZWV0LWVuYWJsZWQud29vLXZhcmlhdGlvbi1zd2F0Y2hlcy1hdHRyaWJ1dGUtYmVoYXZpb3ItaGlkZSAudmFyaWFibGUtaXRlbS5kaXNhYmxlZC5yYWRpby12YXJpYWJsZS1pdGVtIHtcbiAgd2lkdGg6IGF1dG8gIWltcG9ydGFudDtcbn1cblxuLndvby12YXJpYXRpb24tc3dhdGNoZXMtc3R5bGVzaGVldC1lbmFibGVkLndvby12YXJpYXRpb24tc3dhdGNoZXMtdG9vbHRpcC1lbmFibGVkIC5yYWRpby12YXJpYWJsZS1pdGVtW2RhdGEtd3ZzdG9vbHRpcF0ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi53b28tdmFyaWF0aW9uLXN3YXRjaGVzLXN0eWxlc2hlZXQtZW5hYmxlZC53b28tdmFyaWF0aW9uLXN3YXRjaGVzLXRvb2x0aXAtZW5hYmxlZCAucmFkaW8tdmFyaWFibGUtaXRlbVtkYXRhLXd2c3Rvb2x0aXBdOjpiZWZvcmUsXG4ud29vLXZhcmlhdGlvbi1zd2F0Y2hlcy1zdHlsZXNoZWV0LWVuYWJsZWQud29vLXZhcmlhdGlvbi1zd2F0Y2hlcy10b29sdGlwLWVuYWJsZWQgLnJhZGlvLXZhcmlhYmxlLWl0ZW1bZGF0YS13dnN0b29sdGlwXTo6YWZ0ZXIge1xuICBsZWZ0OiA4cHg7XG4gIGJvdHRvbTogMTAwJTtcbn1cblxuLndvby12YXJpYXRpb24tc3dhdGNoZXMtc3R5bGVzaGVldC1lbmFibGVkLndvby12YXJpYXRpb24tc3dhdGNoZXMtdG9vbHRpcC1lbmFibGVkIC5yYWRpby12YXJpYWJsZS1pdGVtIC5pbWFnZS10b29sdGlwLXdyYXBwZXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gIGxlZnQ6IDhweDtcbn1cblxuLndvby12YXJpYXRpb24tc3dhdGNoZXMtc3R5bGVzaGVldC1lbmFibGVkLndvby12YXJpYXRpb24tc3dhdGNoZXMtdG9vbHRpcC1lbmFibGVkLndvby12YXJpYXRpb24tc3dhdGNoZXMtYXJjaGl2ZS1hbGlnbi1jZW50ZXIgLnd2cy1hcmNoaXZlLXZhcmlhdGlvbi13cmFwcGVyIC5yYWRpby12YXJpYWJsZS1pdGVtW2RhdGEtd3ZzdG9vbHRpcF06OmJlZm9yZSxcbi53b28tdmFyaWF0aW9uLXN3YXRjaGVzLXN0eWxlc2hlZXQtZW5hYmxlZC53b28tdmFyaWF0aW9uLXN3YXRjaGVzLXRvb2x0aXAtZW5hYmxlZC53b28tdmFyaWF0aW9uLXN3YXRjaGVzLWFyY2hpdmUtYWxpZ24tY2VudGVyIC53dnMtYXJjaGl2ZS12YXJpYXRpb24td3JhcHBlciAucmFkaW8tdmFyaWFibGUtaXRlbVtkYXRhLXd2c3Rvb2x0aXBdOjphZnRlciB7XG4gIGxlZnQ6IDUwJTtcbn1cblxuLndvby12YXJpYXRpb24tc3dhdGNoZXMtc3R5bGVzaGVldC1lbmFibGVkLndvby12YXJpYXRpb24tc3dhdGNoZXMtdG9vbHRpcC1lbmFibGVkLndvby12YXJpYXRpb24tc3dhdGNoZXMtYXJjaGl2ZS1hbGlnbi1jZW50ZXIgLnd2cy1hcmNoaXZlLXZhcmlhdGlvbi13cmFwcGVyIC5yYWRpby12YXJpYWJsZS1pdGVtIC5pbWFnZS10b29sdGlwLXdyYXBwZXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gIGxlZnQ6IDUwJTtcbn1cblxuLndvby12YXJpYXRpb24tc3dhdGNoZXMtc3R5bGVzaGVldC1lbmFibGVkLndvby12YXJpYXRpb24tc3dhdGNoZXMtdG9vbHRpcC1lbmFibGVkLndvby12YXJpYXRpb24tc3dhdGNoZXMtYXJjaGl2ZS1hbGlnbi1yaWdodCAud3ZzLWFyY2hpdmUtdmFyaWF0aW9uLXdyYXBwZXIgLnJhZGlvLXZhcmlhYmxlLWl0ZW1bZGF0YS13dnN0b29sdGlwXTo6YmVmb3JlLFxuLndvby12YXJpYXRpb24tc3dhdGNoZXMtc3R5bGVzaGVldC1lbmFibGVkLndvby12YXJpYXRpb24tc3dhdGNoZXMtdG9vbHRpcC1lbmFibGVkLndvby12YXJpYXRpb24tc3dhdGNoZXMtYXJjaGl2ZS1hbGlnbi1yaWdodCAud3ZzLWFyY2hpdmUtdmFyaWF0aW9uLXdyYXBwZXIgLnJhZGlvLXZhcmlhYmxlLWl0ZW1bZGF0YS13dnN0b29sdGlwXTo6YWZ0ZXIge1xuICBsZWZ0OiAxMDAlO1xufVxuXG4ud29vLXZhcmlhdGlvbi1zd2F0Y2hlcy1zdHlsZXNoZWV0LWVuYWJsZWQud29vLXZhcmlhdGlvbi1zd2F0Y2hlcy10b29sdGlwLWVuYWJsZWQud29vLXZhcmlhdGlvbi1zd2F0Y2hlcy1hcmNoaXZlLWFsaWduLXJpZ2h0IC53dnMtYXJjaGl2ZS12YXJpYXRpb24td3JhcHBlciAucmFkaW8tdmFyaWFibGUtaXRlbSAuaW1hZ2UtdG9vbHRpcC13cmFwcGVyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICBsZWZ0OiAxMDAlO1xufVxuXG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9mcm9udGVuZC5zY3NzIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUE7O0FBR0E7QUNBQTtBQUNBO0FESkE7QUFTQTtBQUFBO0FBQUE7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FDRkE7QUFDQTtBRFpBO0FBZ0JBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQ0RBO0FBQ0E7QURwQkE7QUFzQkE7QUFBQTtBQ0VBO0FBQ0E7QURqQkE7QUFtQkE7QUNDQTtBQUNBO0FEN0JBO0FBOEJBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQ0VBO0FBQ0E7QURyQ0E7O0FBb0NBO0FDS0E7QUFDQTtBREhBO0FBQ0E7QUFDQTtBQ0tBO0FBQ0E7QURIQTtBQUNBO0FBQ0E7QUFDQTtBQ0tBO0FBQ0E7QURyREE7QUFxREE7QUFBQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQ0E7QUFBQTtBQUFBO0FBQ0E7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQ0dBO0FBQ0E7QURqRUE7QUFpRUE7QUNHQTtBQUNBO0FEckVBO0FBc0VBO0FBQUE7QUNFQTtBQUNBO0FEekVBOztBQTRFQTtBQUFBO0FDQ0E7QUFDQTtBRDlFQTtBQWtGQTtBQUNBO0FBQ0E7QUNEQTtBQUNBO0FESEE7QUFNQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FDQUE7QUFDQTtBRDlGQTtBQW9HQTtBQ0hBO0FBQ0E7QURXQTtBQUNBO0FDVEE7QUFDQTtBRFNBOzs7QUFHQTtBQ1BBO0FBQ0E7QUQ1R0E7QUF3SEE7QUNUQTtBQUNBO0FEaEhBO0FBMEhBO0FDUEE7QUFDQTtBRHBIQTtBQTRIQTtBQ0xBO0FBQ0E7QURPQTtBQUVBO0FDTkE7QUFDQTtBRDVIQTs7QUErSUE7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FDZkE7QUFDQTtBRHJJQTs7OztBQXNKQTtBQ1hBO0FBQ0E7QUQ1SUE7Ozs7QUEySkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FDVEE7QUFDQTtBRHZCQTs7QUFtQ0E7QUFBQTtBQ1JBO0FBQ0E7QUR4S0E7O0FBbUxBO0FBQUE7QUNQQTtBQUNBO0FEN0tBOzs7O0FBNkxBO0FBQ0E7QUFDQTtBQ1ZBO0FBQ0E7QUR0TEE7Ozs7QUFvTUE7QUNSQTtBQUNBO0FEN0xBOztBQTZNQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FDWkE7QUFDQTtBRFlBOzs7O0FBQ0E7QUNQQTtBQUNBO0FENU1BOztBQTBOQTtBQ1ZBO0FBQ0E7QURVQTs7OztBQUNBO0FBQ0E7QUNMQTtBQUNBO0FEek5BO0FBeU9BO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQ2JBO0FBQ0E7QUR0T0E7QUFzT0E7QUNHQTtBQUNBO0FEbUJBO0FBQ0E7QUNqQkE7QUFDQTtBRDlPQTs7QUFpUUE7QUFDQTtBQ2ZBO0FBQ0E7QURwUEE7QUF3UUE7QUFBQTtBQUNBO0FDakJBO0FBQ0E7QUR6UEE7O0FBK1FBO0FDbEJBO0FBQ0E7QURvQkE7QUFDQTtBQUFBO0FBQ0E7QUNsQkE7QUFDQTtBRG5RQTs7QUEyUkE7QUNwQkE7QUFDQTtBRHNCQTtBQUNBO0FBQUE7QUFDQTtBQ3BCQTtBQUNBOyIsInNvdXJjZVJvb3QiOiIifQ==*/
assets/css/frontend.min.css CHANGED
@@ -1,8 +1,8 @@
1
  /*!
2
- * WooCommerce Variation Swatches v1.0.31
3
  *
4
  * Author: Emran Ahmed ( emran.bd.08@gmail.com )
5
- * Date: 2018-7-16 20:51:32
6
  * Released under the GPLv3 license.
7
  */
8
- .woo-variation-swatches-stylesheet-enabled .woo-variation-raw-select,.woo-variation-swatches-stylesheet-enabled .woo-variation-raw-select+.select2{display:none!important}.woo-variation-swatches-stylesheet-enabled .variable-items-wrapper{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin:0;padding:0;list-style:none}.woo-variation-swatches-stylesheet-enabled .variable-items-wrapper .variable-item{margin:0;padding:0;list-style:none;-webkit-transition:all .2s ease;transition:all .2s ease;position:relative}.woo-variation-swatches-stylesheet-enabled .variable-items-wrapper .variable-item img{margin:0}.woo-variation-swatches-stylesheet-enabled .variable-items-wrapper.radio-variable-wrapper{display:block}.woo-variation-swatches-stylesheet-enabled .variable-items-wrapper.radio-variable-wrapper .radio-variable-item{-webkit-box-sizing:border-box;box-sizing:border-box;display:block;list-style:none;cursor:pointer;margin:0}.woo-variation-swatches-stylesheet-enabled .variable-items-wrapper.radio-variable-wrapper .radio-variable-item input,.woo-variation-swatches-stylesheet-enabled .variable-items-wrapper.radio-variable-wrapper .radio-variable-item label{cursor:pointer}.woo-variation-swatches-stylesheet-enabled .variable-items-wrapper.radio-variable-wrapper .radio-variable-item input{width:auto;margin-right:5px}.woo-variation-swatches-stylesheet-enabled .variable-items-wrapper.radio-variable-wrapper .radio-variable-item label{font-weight:400;font-size:14px;display:inline-block}.woo-variation-swatches-stylesheet-enabled .variable-items-wrapper .variable-item:not(.radio-variable-item){-webkit-box-sizing:border-box;box-sizing:border-box;cursor:pointer;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;background-color:#fff;-webkit-box-shadow:0 0 0 1px rgba(0,0,0,.3);box-shadow:0 0 0 1px rgba(0,0,0,.3);padding:2px;margin:4px 8px 4px 0}.woo-variation-swatches-stylesheet-enabled .variable-items-wrapper .variable-item:not(.radio-variable-item):last-of-type{margin-right:0}.woo-variation-swatches-stylesheet-enabled .variable-items-wrapper .variable-item:not(.radio-variable-item):hover{-webkit-box-shadow:0 0 0 3px rgba(0,0,0,.1);box-shadow:0 0 0 3px rgba(0,0,0,.1)}.woo-variation-swatches-stylesheet-enabled .variable-items-wrapper .variable-item:not(.radio-variable-item).selected,.woo-variation-swatches-stylesheet-enabled .variable-items-wrapper .variable-item:not(.radio-variable-item).selected:hover{-webkit-box-shadow:0 0 0 2px rgba(0,0,0,.9);box-shadow:0 0 0 2px rgba(0,0,0,.9)}.woo-variation-swatches-stylesheet-enabled .variable-items-wrapper .variable-item:not(.radio-variable-item).color-variable-item .variable-item-span-color{width:100%;height:100%;position:relative}.woo-variation-swatches-stylesheet-enabled .variable-items-wrapper .variable-item:not(.radio-variable-item).color-variable-item .variable-item-span-color:after{position:absolute;content:"";width:100%;height:100%;top:0;left:0;-webkit-box-shadow:inset 0 0 1px 0 rgba(0,0,0,.5);box-shadow:inset 0 0 1px 0 rgba(0,0,0,.5)}.woo-variation-swatches-stylesheet-enabled .variable-items-wrapper .variable-item:not(.radio-variable-item).button-variable-item{text-align:center}.woo-variation-swatches-stylesheet-enabled.woo-variation-swatches-style-rounded .variable-items-wrapper .variable-item,.woo-variation-swatches-stylesheet-enabled.woo-variation-swatches-style-rounded .variable-items-wrapper .variable-item .variable-item-span,.woo-variation-swatches-stylesheet-enabled.woo-variation-swatches-style-rounded .variable-items-wrapper .variable-item .variable-item-span:after,.woo-variation-swatches-stylesheet-enabled.woo-variation-swatches-style-rounded .variable-items-wrapper .variable-item img{border-radius:100%}.woo-variation-swatches-stylesheet-enabled.woo-variation-swatches-style-squared .variable-items-wrapper .variable-item{border-radius:2px}.woo-variation-swatches-stylesheet-enabled.woo-variation-swatches-style-squared .variable-items-wrapper .variable-item.button-variable-item{width:auto}.woo-variation-swatches-stylesheet-enabled.woo-variation-swatches-style-squared .variable-items-wrapper .variable-item.button-variable-item .variable-item-span{padding:0 5px}.woo-variation-swatches-stylesheet-enabled.woo-variation-swatches-style-squared .variable-items-wrapper .variable-item.color-variable-item span:after{border-radius:0}.woo-variation-swatches-stylesheet-enabled.woo-variation-swatches-attribute-behavior-blur .variable-item:not(.radio-variable-item).disabled,.woo-variation-swatches-stylesheet-enabled.woo-variation-swatches-attribute-behavior-blur .variable-item:not(.radio-variable-item).disabled:hover{cursor:not-allowed;-webkit-box-shadow:0 0 0 1px rgba(0,0,0,.05);box-shadow:0 0 0 1px rgba(0,0,0,.05);pointer-events:none;position:relative;overflow:hidden}.woo-variation-swatches-stylesheet-enabled.woo-variation-swatches-attribute-behavior-blur .variable-item:not(.radio-variable-item).disabled:hover img,.woo-variation-swatches-stylesheet-enabled.woo-variation-swatches-attribute-behavior-blur .variable-item:not(.radio-variable-item).disabled:hover span,.woo-variation-swatches-stylesheet-enabled.woo-variation-swatches-attribute-behavior-blur .variable-item:not(.radio-variable-item).disabled img,.woo-variation-swatches-stylesheet-enabled.woo-variation-swatches-attribute-behavior-blur .variable-item:not(.radio-variable-item).disabled span{opacity:.3}.woo-variation-swatches-stylesheet-enabled.woo-variation-swatches-attribute-behavior-blur .variable-item:not(.radio-variable-item).disabled:after,.woo-variation-swatches-stylesheet-enabled.woo-variation-swatches-attribute-behavior-blur .variable-item:not(.radio-variable-item).disabled:before,.woo-variation-swatches-stylesheet-enabled.woo-variation-swatches-attribute-behavior-blur .variable-item:not(.radio-variable-item).disabled:hover:after,.woo-variation-swatches-stylesheet-enabled.woo-variation-swatches-attribute-behavior-blur .variable-item:not(.radio-variable-item).disabled:hover:before{position:absolute;content:" "!important;width:100%;height:1px;background:red!important;left:0;right:0;bottom:0;top:50%;visibility:visible;opacity:1;border:0;margin:0!important;padding:0!important;min-width:auto;-webkit-transform-origin:center;transform-origin:center;z-index:0}.woo-variation-swatches-stylesheet-enabled.woo-variation-swatches-attribute-behavior-blur .variable-item:not(.radio-variable-item).disabled:before,.woo-variation-swatches-stylesheet-enabled.woo-variation-swatches-attribute-behavior-blur .variable-item:not(.radio-variable-item).disabled:hover:before{-webkit-transform:rotate(45deg);transform:rotate(45deg)}.woo-variation-swatches-stylesheet-enabled.woo-variation-swatches-attribute-behavior-blur .variable-item:not(.radio-variable-item).disabled:after,.woo-variation-swatches-stylesheet-enabled.woo-variation-swatches-attribute-behavior-blur .variable-item:not(.radio-variable-item).disabled:hover:after{-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}.woo-variation-swatches-stylesheet-enabled.woo-variation-swatches-attribute-behavior-blur .radio-variable-item.disabled:hover input,.woo-variation-swatches-stylesheet-enabled.woo-variation-swatches-attribute-behavior-blur .radio-variable-item.disabled:hover label,.woo-variation-swatches-stylesheet-enabled.woo-variation-swatches-attribute-behavior-blur .radio-variable-item.disabled input,.woo-variation-swatches-stylesheet-enabled.woo-variation-swatches-attribute-behavior-blur .radio-variable-item.disabled label{cursor:not-allowed;text-decoration:line-through;opacity:.5}.woo-variation-swatches-stylesheet-enabled.woo-variation-swatches-attribute-behavior-blur .radio-variable-item.disabled:after,.woo-variation-swatches-stylesheet-enabled.woo-variation-swatches-attribute-behavior-blur .radio-variable-item.disabled:before,.woo-variation-swatches-stylesheet-enabled.woo-variation-swatches-attribute-behavior-blur .radio-variable-item.disabled:hover:after,.woo-variation-swatches-stylesheet-enabled.woo-variation-swatches-attribute-behavior-blur .radio-variable-item.disabled:hover:before{display:none}.woo-variation-swatches-stylesheet-enabled.woo-variation-swatches-attribute-behavior-hide .variable-item.disabled{opacity:0;visibility:hidden;-webkit-transform:scale(0);transform:scale(0);-webkit-transform-origin:center;transform-origin:center;width:0!important;height:0!important;padding:0!important;margin:0!important;min-width:0!important;min-height:0!important}.woo-variation-swatches-stylesheet-enabled.woo-variation-swatches-attribute-behavior-hide .variable-item.disabled.radio-variable-item{width:auto!important}.woo-variation-swatches-stylesheet-enabled.woo-variation-swatches-tooltip-enabled .radio-variable-item[data-wvstooltip]{position:relative}.woo-variation-swatches-stylesheet-enabled.woo-variation-swatches-tooltip-enabled .radio-variable-item[data-wvstooltip]:after,.woo-variation-swatches-stylesheet-enabled.woo-variation-swatches-tooltip-enabled .radio-variable-item[data-wvstooltip]:before{left:8px;bottom:100%}.woo-variation-swatches-stylesheet-enabled.woo-variation-swatches-tooltip-enabled .radio-variable-item .image-tooltip-wrapper{-webkit-transform:translateX(-50%);transform:translateX(-50%);left:8px}.woo-variation-swatches-stylesheet-enabled.woo-variation-swatches-tooltip-enabled.woo-variation-swatches-archive-align-center .wvs-archive-variation-wrapper .radio-variable-item[data-wvstooltip]:after,.woo-variation-swatches-stylesheet-enabled.woo-variation-swatches-tooltip-enabled.woo-variation-swatches-archive-align-center .wvs-archive-variation-wrapper .radio-variable-item[data-wvstooltip]:before{left:50%}.woo-variation-swatches-stylesheet-enabled.woo-variation-swatches-tooltip-enabled.woo-variation-swatches-archive-align-center .wvs-archive-variation-wrapper .radio-variable-item .image-tooltip-wrapper{-webkit-transform:translateX(-50%);transform:translateX(-50%);left:50%}.woo-variation-swatches-stylesheet-enabled.woo-variation-swatches-tooltip-enabled.woo-variation-swatches-archive-align-right .wvs-archive-variation-wrapper .radio-variable-item[data-wvstooltip]:after,.woo-variation-swatches-stylesheet-enabled.woo-variation-swatches-tooltip-enabled.woo-variation-swatches-archive-align-right .wvs-archive-variation-wrapper .radio-variable-item[data-wvstooltip]:before{left:100%}.woo-variation-swatches-stylesheet-enabled.woo-variation-swatches-tooltip-enabled.woo-variation-swatches-archive-align-right .wvs-archive-variation-wrapper .radio-variable-item .image-tooltip-wrapper{-webkit-transform:translateX(-50%);transform:translateX(-50%);left:100%}
1
  /*!
2
+ * WooCommerce Variation Swatches v1.0.32
3
  *
4
  * Author: Emran Ahmed ( emran.bd.08@gmail.com )
5
+ * Date: 2018-8-5 20:35:09
6
  * Released under the GPLv3 license.
7
  */
8
+ .woo-variation-swatches-stylesheet-enabled .woo-variation-raw-select,.woo-variation-swatches-stylesheet-enabled .woo-variation-raw-select+.select2{display:none!important}.woo-variation-swatches-stylesheet-enabled .variable-items-wrapper{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin:0;padding:0;list-style:none}.woo-variation-swatches-stylesheet-enabled .variable-items-wrapper .variable-item{margin:0;padding:0;list-style:none;-webkit-transition:all .2s ease;transition:all .2s ease;position:relative}.woo-variation-swatches-stylesheet-enabled .variable-items-wrapper .variable-item img{margin:0}.woo-variation-swatches-stylesheet-enabled .variable-items-wrapper.radio-variable-wrapper{display:block}.woo-variation-swatches-stylesheet-enabled .variable-items-wrapper.radio-variable-wrapper .radio-variable-item{-webkit-box-sizing:border-box;box-sizing:border-box;display:block;list-style:none;cursor:pointer;margin:0}.woo-variation-swatches-stylesheet-enabled .variable-items-wrapper.radio-variable-wrapper .radio-variable-item input,.woo-variation-swatches-stylesheet-enabled .variable-items-wrapper.radio-variable-wrapper .radio-variable-item label{cursor:pointer}.woo-variation-swatches-stylesheet-enabled .variable-items-wrapper.radio-variable-wrapper .radio-variable-item input{width:auto;margin-right:5px}.woo-variation-swatches-stylesheet-enabled .variable-items-wrapper.radio-variable-wrapper .radio-variable-item label{font-weight:400;font-size:14px;display:inline-block}.woo-variation-swatches-stylesheet-enabled .variable-items-wrapper .variable-item:not(.radio-variable-item){-webkit-box-sizing:border-box;box-sizing:border-box;cursor:pointer;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;background-color:#fff;-webkit-box-shadow:0 0 0 1px rgba(0,0,0,.3);box-shadow:0 0 0 1px rgba(0,0,0,.3);padding:2px;margin:4px 8px 4px 0}.woo-variation-swatches-stylesheet-enabled .variable-items-wrapper .variable-item:not(.radio-variable-item):last-of-type{margin-right:0}.woo-variation-swatches-stylesheet-enabled .variable-items-wrapper .variable-item:not(.radio-variable-item):hover{-webkit-box-shadow:0 0 0 3px rgba(0,0,0,.1);box-shadow:0 0 0 3px rgba(0,0,0,.1)}.woo-variation-swatches-stylesheet-enabled .variable-items-wrapper .variable-item:not(.radio-variable-item).selected,.woo-variation-swatches-stylesheet-enabled .variable-items-wrapper .variable-item:not(.radio-variable-item).selected:hover{-webkit-box-shadow:0 0 0 2px rgba(0,0,0,.9);box-shadow:0 0 0 2px rgba(0,0,0,.9)}.woo-variation-swatches-stylesheet-enabled .variable-items-wrapper .variable-item:not(.radio-variable-item).color-variable-item .variable-item-span-color{width:100%;height:100%;position:relative}.woo-variation-swatches-stylesheet-enabled .variable-items-wrapper .variable-item:not(.radio-variable-item).color-variable-item .variable-item-span-color:after{position:absolute;content:"";width:100%;height:100%;top:0;left:0;-webkit-box-shadow:inset 0 0 1px 0 rgba(0,0,0,.5);box-shadow:inset 0 0 1px 0 rgba(0,0,0,.5)}.woo-variation-swatches-stylesheet-enabled .variable-items-wrapper .variable-item:not(.radio-variable-item).button-variable-item{text-align:center}.woo-variation-swatches-stylesheet-enabled.woo-variation-swatches-style-rounded .variable-items-wrapper .variable-item,.woo-variation-swatches-stylesheet-enabled.woo-variation-swatches-style-rounded .variable-items-wrapper .variable-item .variable-item-span,.woo-variation-swatches-stylesheet-enabled.woo-variation-swatches-style-rounded .variable-items-wrapper .variable-item .variable-item-span:after,.woo-variation-swatches-stylesheet-enabled.woo-variation-swatches-style-rounded .variable-items-wrapper .variable-item img{border-radius:100%}.woo-variation-swatches-stylesheet-enabled.woo-variation-swatches-style-squared .variable-items-wrapper .variable-item{border-radius:2px}.woo-variation-swatches-stylesheet-enabled.woo-variation-swatches-style-squared .variable-items-wrapper .variable-item.button-variable-item .variable-item-span{padding:0 5px}.woo-variation-swatches-stylesheet-enabled.woo-variation-swatches-style-squared .variable-items-wrapper .variable-item.color-variable-item span:after{border-radius:0}.woo-variation-swatches-stylesheet-enabled.woo-variation-swatches-attribute-behavior-blur .variable-item:not(.radio-variable-item).disabled,.woo-variation-swatches-stylesheet-enabled.woo-variation-swatches-attribute-behavior-blur .variable-item:not(.radio-variable-item).disabled:hover{cursor:not-allowed;-webkit-box-shadow:0 0 0 1px rgba(0,0,0,.05);box-shadow:0 0 0 1px rgba(0,0,0,.05);pointer-events:none;position:relative;overflow:hidden}.woo-variation-swatches-stylesheet-enabled.woo-variation-swatches-attribute-behavior-blur .variable-item:not(.radio-variable-item).disabled:hover img,.woo-variation-swatches-stylesheet-enabled.woo-variation-swatches-attribute-behavior-blur .variable-item:not(.radio-variable-item).disabled:hover span,.woo-variation-swatches-stylesheet-enabled.woo-variation-swatches-attribute-behavior-blur .variable-item:not(.radio-variable-item).disabled img,.woo-variation-swatches-stylesheet-enabled.woo-variation-swatches-attribute-behavior-blur .variable-item:not(.radio-variable-item).disabled span{opacity:.3}.woo-variation-swatches-stylesheet-enabled.woo-variation-swatches-attribute-behavior-blur .variable-item:not(.radio-variable-item).disabled:after,.woo-variation-swatches-stylesheet-enabled.woo-variation-swatches-attribute-behavior-blur .variable-item:not(.radio-variable-item).disabled:before,.woo-variation-swatches-stylesheet-enabled.woo-variation-swatches-attribute-behavior-blur .variable-item:not(.radio-variable-item).disabled:hover:after,.woo-variation-swatches-stylesheet-enabled.woo-variation-swatches-attribute-behavior-blur .variable-item:not(.radio-variable-item).disabled:hover:before{position:absolute;content:" "!important;width:100%;height:1px;background:red!important;left:0;right:0;bottom:0;top:50%;visibility:visible;opacity:1;border:0;margin:0!important;padding:0!important;min-width:auto;-webkit-transform-origin:center;transform-origin:center;z-index:0}.woo-variation-swatches-stylesheet-enabled.woo-variation-swatches-attribute-behavior-blur .variable-item:not(.radio-variable-item).disabled:before,.woo-variation-swatches-stylesheet-enabled.woo-variation-swatches-attribute-behavior-blur .variable-item:not(.radio-variable-item).disabled:hover:before{-webkit-transform:rotate(45deg);transform:rotate(45deg)}.woo-variation-swatches-stylesheet-enabled.woo-variation-swatches-attribute-behavior-blur .variable-item:not(.radio-variable-item).disabled:after,.woo-variation-swatches-stylesheet-enabled.woo-variation-swatches-attribute-behavior-blur .variable-item:not(.radio-variable-item).disabled:hover:after{-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}.woo-variation-swatches-stylesheet-enabled.woo-variation-swatches-attribute-behavior-blur .radio-variable-item.disabled:hover input,.woo-variation-swatches-stylesheet-enabled.woo-variation-swatches-attribute-behavior-blur .radio-variable-item.disabled:hover label,.woo-variation-swatches-stylesheet-enabled.woo-variation-swatches-attribute-behavior-blur .radio-variable-item.disabled input,.woo-variation-swatches-stylesheet-enabled.woo-variation-swatches-attribute-behavior-blur .radio-variable-item.disabled label{cursor:not-allowed;text-decoration:line-through;opacity:.5}.woo-variation-swatches-stylesheet-enabled.woo-variation-swatches-attribute-behavior-blur .radio-variable-item.disabled:after,.woo-variation-swatches-stylesheet-enabled.woo-variation-swatches-attribute-behavior-blur .radio-variable-item.disabled:before,.woo-variation-swatches-stylesheet-enabled.woo-variation-swatches-attribute-behavior-blur .radio-variable-item.disabled:hover:after,.woo-variation-swatches-stylesheet-enabled.woo-variation-swatches-attribute-behavior-blur .radio-variable-item.disabled:hover:before{display:none}.woo-variation-swatches-stylesheet-enabled.woo-variation-swatches-attribute-behavior-blur-no-cross .variable-item:not(.radio-variable-item).disabled,.woo-variation-swatches-stylesheet-enabled.woo-variation-swatches-attribute-behavior-blur-no-cross .variable-item:not(.radio-variable-item).disabled:hover{pointer-events:none;-webkit-box-shadow:0 0 0 1px rgba(0,0,0,.05);box-shadow:0 0 0 1px rgba(0,0,0,.05);position:relative;overflow:hidden}.woo-variation-swatches-stylesheet-enabled.woo-variation-swatches-attribute-behavior-blur-no-cross .variable-item:not(.radio-variable-item).disabled:hover img,.woo-variation-swatches-stylesheet-enabled.woo-variation-swatches-attribute-behavior-blur-no-cross .variable-item:not(.radio-variable-item).disabled:hover span,.woo-variation-swatches-stylesheet-enabled.woo-variation-swatches-attribute-behavior-blur-no-cross .variable-item:not(.radio-variable-item).disabled img,.woo-variation-swatches-stylesheet-enabled.woo-variation-swatches-attribute-behavior-blur-no-cross .variable-item:not(.radio-variable-item).disabled span{opacity:.3}.woo-variation-swatches-stylesheet-enabled.woo-variation-swatches-attribute-behavior-blur-no-cross .radio-variable-item.disabled,.woo-variation-swatches-stylesheet-enabled.woo-variation-swatches-attribute-behavior-blur-no-cross .radio-variable-item.disabled:hover{overflow:hidden}.woo-variation-swatches-stylesheet-enabled.woo-variation-swatches-attribute-behavior-blur-no-cross .radio-variable-item.disabled:hover input,.woo-variation-swatches-stylesheet-enabled.woo-variation-swatches-attribute-behavior-blur-no-cross .radio-variable-item.disabled:hover label,.woo-variation-swatches-stylesheet-enabled.woo-variation-swatches-attribute-behavior-blur-no-cross .radio-variable-item.disabled input,.woo-variation-swatches-stylesheet-enabled.woo-variation-swatches-attribute-behavior-blur-no-cross .radio-variable-item.disabled label{pointer-events:none;opacity:.3}.woo-variation-swatches-stylesheet-enabled.woo-variation-swatches-attribute-behavior-hide .variable-item.disabled{opacity:0;visibility:hidden;-webkit-transform:scale(0);transform:scale(0);-webkit-transform-origin:center;transform-origin:center;width:0!important;height:0!important;padding:0!important;margin:0!important;min-width:0!important;min-height:0!important}.woo-variation-swatches-stylesheet-enabled.woo-variation-swatches-attribute-behavior-hide .variable-item.disabled.radio-variable-item{width:auto!important}.woo-variation-swatches-stylesheet-enabled.woo-variation-swatches-tooltip-enabled .radio-variable-item[data-wvstooltip]{position:relative}.woo-variation-swatches-stylesheet-enabled.woo-variation-swatches-tooltip-enabled .radio-variable-item[data-wvstooltip]:after,.woo-variation-swatches-stylesheet-enabled.woo-variation-swatches-tooltip-enabled .radio-variable-item[data-wvstooltip]:before{left:8px;bottom:100%}.woo-variation-swatches-stylesheet-enabled.woo-variation-swatches-tooltip-enabled .radio-variable-item .image-tooltip-wrapper{-webkit-transform:translateX(-50%);transform:translateX(-50%);left:8px}.woo-variation-swatches-stylesheet-enabled.woo-variation-swatches-tooltip-enabled.woo-variation-swatches-archive-align-center .wvs-archive-variation-wrapper .radio-variable-item[data-wvstooltip]:after,.woo-variation-swatches-stylesheet-enabled.woo-variation-swatches-tooltip-enabled.woo-variation-swatches-archive-align-center .wvs-archive-variation-wrapper .radio-variable-item[data-wvstooltip]:before{left:50%}.woo-variation-swatches-stylesheet-enabled.woo-variation-swatches-tooltip-enabled.woo-variation-swatches-archive-align-center .wvs-archive-variation-wrapper .radio-variable-item .image-tooltip-wrapper{-webkit-transform:translateX(-50%);transform:translateX(-50%);left:50%}.woo-variation-swatches-stylesheet-enabled.woo-variation-swatches-tooltip-enabled.woo-variation-swatches-archive-align-right .wvs-archive-variation-wrapper .radio-variable-item[data-wvstooltip]:after,.woo-variation-swatches-stylesheet-enabled.woo-variation-swatches-tooltip-enabled.woo-variation-swatches-archive-align-right .wvs-archive-variation-wrapper .radio-variable-item[data-wvstooltip]:before{left:100%}.woo-variation-swatches-stylesheet-enabled.woo-variation-swatches-tooltip-enabled.woo-variation-swatches-archive-align-right .wvs-archive-variation-wrapper .radio-variable-item .image-tooltip-wrapper{-webkit-transform:translateX(-50%);transform:translateX(-50%);left:100%}
assets/css/wvs-customize-heading-control.css CHANGED
@@ -1,8 +1,8 @@
1
  /*!
2
- * WooCommerce Variation Swatches v1.0.31
3
  *
4
  * Author: Emran Ahmed ( emran.bd.08@gmail.com )
5
- * Date: 2018-7-16 20:51:28
6
  * Released under the GPLv3 license.
7
  */
8
  .accordion-section-content li:nth-child(2).customize-control-wvs-heading .wvs-customize-heading-control-title {
1
  /*!
2
+ * WooCommerce Variation Swatches v1.0.32
3
  *
4
  * Author: Emran Ahmed ( emran.bd.08@gmail.com )
5
+ * Date: 2018-8-5 20:35:04
6
  * Released under the GPLv3 license.
7
  */
8
  .accordion-section-content li:nth-child(2).customize-control-wvs-heading .wvs-customize-heading-control-title {
assets/css/wvs-customize-heading-control.min.css CHANGED
@@ -1,8 +1,8 @@
1
  /*!
2
- * WooCommerce Variation Swatches v1.0.31
3
  *
4
  * Author: Emran Ahmed ( emran.bd.08@gmail.com )
5
- * Date: 2018-7-16 20:51:32
6
  * Released under the GPLv3 license.
7
  */
8
  .accordion-section-content li:nth-child(2).customize-control-wvs-heading .wvs-customize-heading-control-title{margin-top:-15px;margin-bottom:0}.wvs-customize-heading-control-title{background-color:#191e23;padding:10px 15px;color:#fff;margin:5px -15px;font-size:1rem;font-weight:200;display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
1
  /*!
2
+ * WooCommerce Variation Swatches v1.0.32
3
  *
4
  * Author: Emran Ahmed ( emran.bd.08@gmail.com )
5
+ * Date: 2018-8-5 20:35:09
6
  * Released under the GPLv3 license.
7
  */
8
  .accordion-section-content li:nth-child(2).customize-control-wvs-heading .wvs-customize-heading-control-title{margin-top:-15px;margin-bottom:0}.wvs-customize-heading-control-title{background-color:#191e23;padding:10px 15px;color:#fff;margin:5px -15px;font-size:1rem;font-weight:200;display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
assets/css/wvs-theme-override.css CHANGED
@@ -1,8 +1,8 @@
1
  /*!
2
- * WooCommerce Variation Swatches v1.0.31
3
  *
4
  * Author: Emran Ahmed ( emran.bd.08@gmail.com )
5
- * Date: 2018-7-16 20:51:28
6
  * Released under the GPLv3 license.
7
  */
8
  .woo-variation-swatches-theme-sober .product form.cart .variations div {
@@ -108,18 +108,21 @@
108
  transform: none;
109
  }
110
 
111
- .woo-variation-swatches-theme-kalium .image-variable-item img {
 
112
  width: 100% !important;
113
  }
114
 
115
- .woo-variation-swatches-theme-kalium .radio-variable-item input {
 
116
  width: 16px !important;
117
  height: 16px !important;
118
  }
119
 
120
- .woo-variation-swatches-theme-kalium .woo-variation-items-wrapper .select-option-ui {
 
121
  display: none;
122
  }
123
 
124
 
125
- /*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXRzL2Nzcy93dnMtdGhlbWUtb3ZlcnJpZGUuY3NzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vc3JjL3Njc3Mvc3JjL3Njc3MvdGhlbWUtb3ZlcnJpZGUuc2NzcyIsIndlYnBhY2s6Ly8vLi90aGVtZS1vdmVycmlkZS5zY3NzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNvYmVyXG4vLz09PT09PT09PT09PVxuLndvby12YXJpYXRpb24tc3dhdGNoZXMtdGhlbWUtc29iZXIge1xuXG4gIC8vIEl0ZW0gcGFnZVxuICAvLz09PT09PT09PT09PT09PT1cbiAgLnByb2R1Y3QgZm9ybS5jYXJ0IHtcbiAgICAudmFyaWF0aW9ucyB7XG4gICAgICBkaXYge1xuICAgICAgICBtYXJnaW4tYm90dG9tICAgOiAyMHB4O1xuICAgICAgICBkaXNwbGF5ICAgICAgICAgOiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtcyAgICAgOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudCA6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAubGFiZWwge1xuICAgICAgICBkaXNwbGF5ICAgICAgOiBibG9jaztcbiAgICAgICAgdGV4dC1hbGlnbiAgIDogcmlnaHQ7XG4gICAgICAgIG1hcmdpbi1yaWdodCA6IDEwcHg7XG4gICAgICAgIH1cblxuICAgICAgLnZhbHVlIHtcbiAgICAgICAgZmxleC1ncm93IDogdW5zZXQ7XG4gICAgICAgIH1cblxuICAgICAgc2VsZWN0IHtcbiAgICAgICAgYm9yZGVyICAgICAgICAgICAgIDogMXB4IHNvbGlkICNlNGU2ZWI7XG4gICAgICAgIHBhZGRpbmcgICAgICAgICAgICA6IC41ZW0gMWVtO1xuICAgICAgICB0ZXh0LWFsaWduICAgICAgICAgOiBsZWZ0O1xuICAgICAgICB0ZXh0LWFsaWduLWxhc3QgICAgOiBsZWZ0O1xuICAgICAgICAtd2Via2l0LWFwcGVhcmFuY2UgOiBtZW51bGlzdC1idXR0b247XG4gICAgICAgIH1cblxuICAgICAgfVxuXG4gICAgLnJhZGlvLXZhcmlhYmxlLWl0ZW0ge1xuICAgICAgbWFyZ2luICAgICA6IDVweDtcbiAgICAgIHRleHQtYWxpZ24gOiBsZWZ0O1xuICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0IDogMDtcbiAgICAgICAgfVxuICAgICAgbGFiZWwge1xuICAgICAgICBwYWRkaW5nLWxlZnQgOiAzMHB4O1xuICAgICAgICBtYXJnaW4gICAgICAgOiAwO1xuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgIHRvcCAgICAgICAgICAgOiAwO1xuICAgICAgICAgIGJvcmRlci1yYWRpdXMgOiAxMDAlO1xuICAgICAgICAgIH1cblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgdG9wIDogOHB4O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgfVxuXG4gIC8vIEl0ZW0gc3R5bGUgNFxuICAmLnByb2R1Y3Qtc3R5bGUtNCAucHJvZHVjdCBmb3JtLmNhcnQge1xuICAgIC52YXJpYXRpb25zIHtcbiAgICAgIGRpdiB7XG4gICAgICAgIGRpc3BsYXkgOiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAubGFiZWwge1xuICAgICAgICBkaXNwbGF5ICAgICAgIDogYmxvY2s7XG4gICAgICAgIHRleHQtYWxpZ24gICAgOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbi1ib3R0b20gOiAxMHB4O1xuXG4gICAgICAgIGxhYmVsIHtcbiAgICAgICAgICBib3JkZXItYm90dG9tIDogMXB4IHNvbGlkICNlZWVlZWU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgIC52YXJpYWJsZS1pdGVtcy13cmFwcGVyIHtcbiAgICAgICAganVzdGlmeS1jb250ZW50IDogY2VudGVyO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbi8vIFNob3BoaXN0aWMgTGl0ZVxuLy89PT09PT09PT09PT09PT09PVxuLndvby12YXJpYXRpb24tc3dhdGNoZXMtdGhlbWUtc2hvcGhpc3RpYy1saXRlIHtcbiAgJi53b29jb21tZXJjZSAjbWFpbiAuZW50cnktc3VtbWFyeSAudmFyaWF0aW9ucyB7XG4gICAgZGlzcGxheSA6IGJsb2NrICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gIC5xbF9jdXN0b21fdmFyaWF0aW9ucyB7XG4gICAgZGlzcGxheSA6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgLnJhZGlvLXZhcmlhYmxlLWl0ZW0gaW5wdXRbdHlwZT1cInJhZGlvXCJdIHtcbiAgICBkaXNwbGF5IDogaW5saW5lLWJsb2NrO1xuICAgIG1hcmdpbiAgOiAwO1xuICAgIH1cbiAgfVxuXG4vL0ZsYXRzb21lXG4vLz09PT09PT09PT09PVxuLndvby12YXJpYXRpb24tc3dhdGNoZXMtdGhlbWUtZmxhdHNvbWUgLnZhcmlhdGlvbnMgLnJlc2V0X3ZhcmlhdGlvbnMge1xuICBwb3NpdGlvbiA6IHJlbGF0aXZlO1xuICBib3R0b20gICA6IDA7XG4gIGxlZnQgICAgIDogMDtcbiAgfVxuXG4vLyBTdG9ja2hvbG1cbi8vPT09PT09PT09PT09PT1cbi53b28tdmFyaWF0aW9uLXN3YXRjaGVzLXRoZW1lLXN0b2NraG9sbSAudmFyaWF0aW9ucyAucmVzZXRfdmFyaWF0aW9ucyB7XG4gIHBvc2l0aW9uICA6IHJlbGF0aXZlO1xuICBib3R0b20gICAgOiAwO1xuICBsZWZ0ICAgICAgOiAwO1xuICB0cmFuc2Zvcm0gOiBub25lO1xuICB9XG5cbi8vS2FsaXVtXG4vLz09PT09PT09PT09PVxuLndvby12YXJpYXRpb24tc3dhdGNoZXMtdGhlbWUta2FsaXVtIHtcbiAgLmltYWdlLXZhcmlhYmxlLWl0ZW0gaW1nIHtcbiAgICB3aWR0aCA6IDEwMCUgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgLnJhZGlvLXZhcmlhYmxlLWl0ZW0gaW5wdXR7XG4gICAgd2lkdGg6IDE2cHggIWltcG9ydGFudDtcbiAgICBoZWlnaHQ6IDE2cHggIWltcG9ydGFudDtcbiAgICB9XG5cbiAgLndvby12YXJpYXRpb24taXRlbXMtd3JhcHBlciAuc2VsZWN0LW9wdGlvbi11aXtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3NyYy9zY3NzL3NyYy9zY3NzL3RoZW1lLW92ZXJyaWRlLnNjc3MiLCIud29vLXZhcmlhdGlvbi1zd2F0Y2hlcy10aGVtZS1zb2JlciAucHJvZHVjdCBmb3JtLmNhcnQgLnZhcmlhdGlvbnMgZGl2IHtcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG5cbi53b28tdmFyaWF0aW9uLXN3YXRjaGVzLXRoZW1lLXNvYmVyIC5wcm9kdWN0IGZvcm0uY2FydCAudmFyaWF0aW9ucyAubGFiZWwge1xuICBkaXNwbGF5OiBibG9jaztcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gIG1hcmdpbi1yaWdodDogMTBweDtcbn1cblxuLndvby12YXJpYXRpb24tc3dhdGNoZXMtdGhlbWUtc29iZXIgLnByb2R1Y3QgZm9ybS5jYXJ0IC52YXJpYXRpb25zIC52YWx1ZSB7XG4gIGZsZXgtZ3JvdzogdW5zZXQ7XG59XG5cbi53b28tdmFyaWF0aW9uLXN3YXRjaGVzLXRoZW1lLXNvYmVyIC5wcm9kdWN0IGZvcm0uY2FydCAudmFyaWF0aW9ucyBzZWxlY3Qge1xuICBib3JkZXI6IDFweCBzb2xpZCAjZTRlNmViO1xuICBwYWRkaW5nOiAuNWVtIDFlbTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgdGV4dC1hbGlnbi1sYXN0OiBsZWZ0O1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG1lbnVsaXN0LWJ1dHRvbjtcbn1cblxuLndvby12YXJpYXRpb24tc3dhdGNoZXMtdGhlbWUtc29iZXIgLnByb2R1Y3QgZm9ybS5jYXJ0IC5yYWRpby12YXJpYWJsZS1pdGVtIHtcbiAgbWFyZ2luOiA1cHg7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG59XG5cbi53b28tdmFyaWF0aW9uLXN3YXRjaGVzLXRoZW1lLXNvYmVyIC5wcm9kdWN0IGZvcm0uY2FydCAucmFkaW8tdmFyaWFibGUtaXRlbTpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLXJpZ2h0OiAwO1xufVxuXG4ud29vLXZhcmlhdGlvbi1zd2F0Y2hlcy10aGVtZS1zb2JlciAucHJvZHVjdCBmb3JtLmNhcnQgLnJhZGlvLXZhcmlhYmxlLWl0ZW0gbGFiZWwge1xuICBwYWRkaW5nLWxlZnQ6IDMwcHg7XG4gIG1hcmdpbjogMDtcbn1cblxuLndvby12YXJpYXRpb24tc3dhdGNoZXMtdGhlbWUtc29iZXIgLnByb2R1Y3QgZm9ybS5jYXJ0IC5yYWRpby12YXJpYWJsZS1pdGVtIGxhYmVsOjpiZWZvcmUge1xuICB0b3A6IDA7XG4gIGJvcmRlci1yYWRpdXM6IDEwMCU7XG59XG5cbi53b28tdmFyaWF0aW9uLXN3YXRjaGVzLXRoZW1lLXNvYmVyIC5wcm9kdWN0IGZvcm0uY2FydCAucmFkaW8tdmFyaWFibGUtaXRlbSBsYWJlbDo6YWZ0ZXIge1xuICB0b3A6IDhweDtcbn1cblxuLndvby12YXJpYXRpb24tc3dhdGNoZXMtdGhlbWUtc29iZXIucHJvZHVjdC1zdHlsZS00IC5wcm9kdWN0IGZvcm0uY2FydCAudmFyaWF0aW9ucyBkaXYge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLndvby12YXJpYXRpb24tc3dhdGNoZXMtdGhlbWUtc29iZXIucHJvZHVjdC1zdHlsZS00IC5wcm9kdWN0IGZvcm0uY2FydCAudmFyaWF0aW9ucyAubGFiZWwge1xuICBkaXNwbGF5OiBibG9jaztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xufVxuXG4ud29vLXZhcmlhdGlvbi1zd2F0Y2hlcy10aGVtZS1zb2Jlci5wcm9kdWN0LXN0eWxlLTQgLnByb2R1Y3QgZm9ybS5jYXJ0IC52YXJpYXRpb25zIC5sYWJlbCBsYWJlbCB7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZWVlZWVlO1xufVxuXG4ud29vLXZhcmlhdGlvbi1zd2F0Y2hlcy10aGVtZS1zb2Jlci5wcm9kdWN0LXN0eWxlLTQgLnByb2R1Y3QgZm9ybS5jYXJ0IC52YXJpYXRpb25zIC52YXJpYWJsZS1pdGVtcy13cmFwcGVyIHtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG5cbi53b28tdmFyaWF0aW9uLXN3YXRjaGVzLXRoZW1lLXNob3BoaXN0aWMtbGl0ZS53b29jb21tZXJjZSAjbWFpbiAuZW50cnktc3VtbWFyeSAudmFyaWF0aW9ucyB7XG4gIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG59XG5cbi53b28tdmFyaWF0aW9uLXN3YXRjaGVzLXRoZW1lLXNob3BoaXN0aWMtbGl0ZSAucWxfY3VzdG9tX3ZhcmlhdGlvbnMge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG59XG5cbi53b28tdmFyaWF0aW9uLXN3YXRjaGVzLXRoZW1lLXNob3BoaXN0aWMtbGl0ZSAucmFkaW8tdmFyaWFibGUtaXRlbSBpbnB1dFt0eXBlPVwicmFkaW9cIl0ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1hcmdpbjogMDtcbn1cblxuLndvby12YXJpYXRpb24tc3dhdGNoZXMtdGhlbWUtZmxhdHNvbWUgLnZhcmlhdGlvbnMgLnJlc2V0X3ZhcmlhdGlvbnMge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcbn1cblxuLndvby12YXJpYXRpb24tc3dhdGNoZXMtdGhlbWUtc3RvY2tob2xtIC52YXJpYXRpb25zIC5yZXNldF92YXJpYXRpb25zIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7XG4gIHRyYW5zZm9ybTogbm9uZTtcbn1cblxuLndvby12YXJpYXRpb24tc3dhdGNoZXMtdGhlbWUta2FsaXVtIC5pbWFnZS12YXJpYWJsZS1pdGVtIGltZyB7XG4gIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG59XG5cbi53b28tdmFyaWF0aW9uLXN3YXRjaGVzLXRoZW1lLWthbGl1bSAucmFkaW8tdmFyaWFibGUtaXRlbSBpbnB1dCB7XG4gIHdpZHRoOiAxNnB4ICFpbXBvcnRhbnQ7XG4gIGhlaWdodDogMTZweCAhaW1wb3J0YW50O1xufVxuXG4ud29vLXZhcmlhdGlvbi1zd2F0Y2hlcy10aGVtZS1rYWxpdW0gLndvby12YXJpYXRpb24taXRlbXMtd3JhcHBlciAuc2VsZWN0LW9wdGlvbi11aSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3RoZW1lLW92ZXJyaWRlLnNjc3MiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFFQTtBQU9BO0FBQ0E7QUFBQTtBQUFBO0FBQ0E7QUFBQTtBQUFBO0FBQ0E7QUFBQTtBQUFBO0FDUEE7QUFDQTtBRFNBO0FBQ0E7QUFDQTtBQUNBO0FDUEE7QUFDQTtBRFNBO0FBQ0E7QUFBQTtBQUFBO0FDUEE7QUFDQTtBRGRBO0FBd0JBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUNQQTtBQUNBO0FEV0E7QUFDQTtBQUNBO0FDVEE7QUFDQTtBRE1BO0FBSUE7QUNQQTtBQUNBO0FEUUE7QUFDQTtBQUNBO0FDTkE7QUFDQTtBRHBDQTtBQTJDQTtBQUNBO0FDSkE7QUFDQTtBREZBO0FBU0E7QUNKQTtBQUNBO0FEN0NBO0FBMkRBO0FDWEE7QUFDQTtBRGpEQTtBQStEQTtBQUNBO0FBQ0E7QUNYQTtBQUNBO0FEWUE7QUFDQTtBQ1ZBO0FBQ0E7QUQzREE7QUF5RUE7QUFBQTtBQUFBO0FDWEE7QUFDQTtBRGtCQTtBQUVBO0FDakJBO0FBQ0E7QURtQkE7QUFDQTtBQ2pCQTtBQUNBO0FEbUJBO0FBQ0E7QUFDQTtBQ2pCQTtBQUNBO0FEc0JBO0FBQ0E7QUFDQTtBQUNBO0FDcEJBO0FBQ0E7QUR3QkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FDdEJBO0FBQ0E7QUQwQkE7QUFFQTtBQ3pCQTtBQUNBO0FEMkJBO0FBQ0E7QUFDQTtBQ3pCQTtBQUNBO0FEMkJBO0FBQ0E7QUN6QkE7QUFDQTsiLCJzb3VyY2VSb290IjoiIn0=*/
1
  /*!
2
+ * WooCommerce Variation Swatches v1.0.32
3
  *
4
  * Author: Emran Ahmed ( emran.bd.08@gmail.com )
5
+ * Date: 2018-8-5 20:35:04
6
  * Released under the GPLv3 license.
7
  */
8
  .woo-variation-swatches-theme-sober .product form.cart .variations div {
108
  transform: none;
109
  }
110
 
111
+ .woo-variation-swatches-theme-kalium .image-variable-item img,
112
+ .woo-variation-swatches-theme-kalium-child .image-variable-item img {
113
  width: 100% !important;
114
  }
115
 
116
+ .woo-variation-swatches-theme-kalium .radio-variable-item input,
117
+ .woo-variation-swatches-theme-kalium-child .radio-variable-item input {
118
  width: 16px !important;
119
  height: 16px !important;
120
  }
121
 
122
+ .woo-variation-swatches-theme-kalium .woo-variation-items-wrapper .select-option-ui,
123
+ .woo-variation-swatches-theme-kalium-child .woo-variation-items-wrapper .select-option-ui {
124
  display: none;
125
  }
126
 
127
 
128
+ /*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXRzL2Nzcy93dnMtdGhlbWUtb3ZlcnJpZGUuY3NzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vc3JjL3Njc3Mvc3JjL3Njc3MvdGhlbWUtb3ZlcnJpZGUuc2NzcyIsIndlYnBhY2s6Ly8vLi90aGVtZS1vdmVycmlkZS5zY3NzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNvYmVyXG4vLz09PT09PT09PT09PVxuLndvby12YXJpYXRpb24tc3dhdGNoZXMtdGhlbWUtc29iZXIge1xuXG4gIC8vIEl0ZW0gcGFnZVxuICAvLz09PT09PT09PT09PT09PT1cbiAgLnByb2R1Y3QgZm9ybS5jYXJ0IHtcbiAgICAudmFyaWF0aW9ucyB7XG4gICAgICBkaXYge1xuICAgICAgICBtYXJnaW4tYm90dG9tICAgOiAyMHB4O1xuICAgICAgICBkaXNwbGF5ICAgICAgICAgOiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtcyAgICAgOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudCA6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAubGFiZWwge1xuICAgICAgICBkaXNwbGF5ICAgICAgOiBibG9jaztcbiAgICAgICAgdGV4dC1hbGlnbiAgIDogcmlnaHQ7XG4gICAgICAgIG1hcmdpbi1yaWdodCA6IDEwcHg7XG4gICAgICAgIH1cblxuICAgICAgLnZhbHVlIHtcbiAgICAgICAgZmxleC1ncm93IDogdW5zZXQ7XG4gICAgICAgIH1cblxuICAgICAgc2VsZWN0IHtcbiAgICAgICAgYm9yZGVyICAgICAgICAgICAgIDogMXB4IHNvbGlkICNlNGU2ZWI7XG4gICAgICAgIHBhZGRpbmcgICAgICAgICAgICA6IC41ZW0gMWVtO1xuICAgICAgICB0ZXh0LWFsaWduICAgICAgICAgOiBsZWZ0O1xuICAgICAgICB0ZXh0LWFsaWduLWxhc3QgICAgOiBsZWZ0O1xuICAgICAgICAtd2Via2l0LWFwcGVhcmFuY2UgOiBtZW51bGlzdC1idXR0b247XG4gICAgICAgIH1cblxuICAgICAgfVxuXG4gICAgLnJhZGlvLXZhcmlhYmxlLWl0ZW0ge1xuICAgICAgbWFyZ2luICAgICA6IDVweDtcbiAgICAgIHRleHQtYWxpZ24gOiBsZWZ0O1xuICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0IDogMDtcbiAgICAgICAgfVxuICAgICAgbGFiZWwge1xuICAgICAgICBwYWRkaW5nLWxlZnQgOiAzMHB4O1xuICAgICAgICBtYXJnaW4gICAgICAgOiAwO1xuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgIHRvcCAgICAgICAgICAgOiAwO1xuICAgICAgICAgIGJvcmRlci1yYWRpdXMgOiAxMDAlO1xuICAgICAgICAgIH1cblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgdG9wIDogOHB4O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgfVxuXG4gIC8vIEl0ZW0gc3R5bGUgNFxuICAmLnByb2R1Y3Qtc3R5bGUtNCAucHJvZHVjdCBmb3JtLmNhcnQge1xuICAgIC52YXJpYXRpb25zIHtcbiAgICAgIGRpdiB7XG4gICAgICAgIGRpc3BsYXkgOiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAubGFiZWwge1xuICAgICAgICBkaXNwbGF5ICAgICAgIDogYmxvY2s7XG4gICAgICAgIHRleHQtYWxpZ24gICAgOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbi1ib3R0b20gOiAxMHB4O1xuXG4gICAgICAgIGxhYmVsIHtcbiAgICAgICAgICBib3JkZXItYm90dG9tIDogMXB4IHNvbGlkICNlZWVlZWU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgIC52YXJpYWJsZS1pdGVtcy13cmFwcGVyIHtcbiAgICAgICAganVzdGlmeS1jb250ZW50IDogY2VudGVyO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbi8vIFNob3BoaXN0aWMgTGl0ZVxuLy89PT09PT09PT09PT09PT09PVxuLndvby12YXJpYXRpb24tc3dhdGNoZXMtdGhlbWUtc2hvcGhpc3RpYy1saXRlIHtcbiAgJi53b29jb21tZXJjZSAjbWFpbiAuZW50cnktc3VtbWFyeSAudmFyaWF0aW9ucyB7XG4gICAgZGlzcGxheSA6IGJsb2NrICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gIC5xbF9jdXN0b21fdmFyaWF0aW9ucyB7XG4gICAgZGlzcGxheSA6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgLnJhZGlvLXZhcmlhYmxlLWl0ZW0gaW5wdXRbdHlwZT1cInJhZGlvXCJdIHtcbiAgICBkaXNwbGF5IDogaW5saW5lLWJsb2NrO1xuICAgIG1hcmdpbiAgOiAwO1xuICAgIH1cbiAgfVxuXG4vL0ZsYXRzb21lXG4vLz09PT09PT09PT09PVxuLndvby12YXJpYXRpb24tc3dhdGNoZXMtdGhlbWUtZmxhdHNvbWUgLnZhcmlhdGlvbnMgLnJlc2V0X3ZhcmlhdGlvbnMge1xuICBwb3NpdGlvbiA6IHJlbGF0aXZlO1xuICBib3R0b20gICA6IDA7XG4gIGxlZnQgICAgIDogMDtcbiAgfVxuXG4vLyBTdG9ja2hvbG1cbi8vPT09PT09PT09PT09PT1cbi53b28tdmFyaWF0aW9uLXN3YXRjaGVzLXRoZW1lLXN0b2NraG9sbSAudmFyaWF0aW9ucyAucmVzZXRfdmFyaWF0aW9ucyB7XG4gIHBvc2l0aW9uICA6IHJlbGF0aXZlO1xuICBib3R0b20gICAgOiAwO1xuICBsZWZ0ICAgICAgOiAwO1xuICB0cmFuc2Zvcm0gOiBub25lO1xuICB9XG5cbi8vS2FsaXVtXG4vLz09PT09PT09PT09PVxuLndvby12YXJpYXRpb24tc3dhdGNoZXMtdGhlbWUta2FsaXVtLFxuLndvby12YXJpYXRpb24tc3dhdGNoZXMtdGhlbWUta2FsaXVtLWNoaWxke1xuICAuaW1hZ2UtdmFyaWFibGUtaXRlbSBpbWcge1xuICAgIHdpZHRoIDogMTAwJSAhaW1wb3J0YW50O1xuICAgIH1cblxuICAucmFkaW8tdmFyaWFibGUtaXRlbSBpbnB1dHtcbiAgICB3aWR0aDogMTZweCAhaW1wb3J0YW50O1xuICAgIGhlaWdodDogMTZweCAhaW1wb3J0YW50O1xuICAgIH1cblxuICAud29vLXZhcmlhdGlvbi1pdGVtcy13cmFwcGVyIC5zZWxlY3Qtb3B0aW9uLXVpe1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vc3JjL3Njc3Mvc3JjL3Njc3MvdGhlbWUtb3ZlcnJpZGUuc2NzcyIsIi53b28tdmFyaWF0aW9uLXN3YXRjaGVzLXRoZW1lLXNvYmVyIC5wcm9kdWN0IGZvcm0uY2FydCAudmFyaWF0aW9ucyBkaXYge1xuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cblxuLndvby12YXJpYXRpb24tc3dhdGNoZXMtdGhlbWUtc29iZXIgLnByb2R1Y3QgZm9ybS5jYXJ0IC52YXJpYXRpb25zIC5sYWJlbCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB0ZXh0LWFsaWduOiByaWdodDtcbiAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xufVxuXG4ud29vLXZhcmlhdGlvbi1zd2F0Y2hlcy10aGVtZS1zb2JlciAucHJvZHVjdCBmb3JtLmNhcnQgLnZhcmlhdGlvbnMgLnZhbHVlIHtcbiAgZmxleC1ncm93OiB1bnNldDtcbn1cblxuLndvby12YXJpYXRpb24tc3dhdGNoZXMtdGhlbWUtc29iZXIgLnByb2R1Y3QgZm9ybS5jYXJ0IC52YXJpYXRpb25zIHNlbGVjdCB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNlNGU2ZWI7XG4gIHBhZGRpbmc6IC41ZW0gMWVtO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICB0ZXh0LWFsaWduLWxhc3Q6IGxlZnQ7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbWVudWxpc3QtYnV0dG9uO1xufVxuXG4ud29vLXZhcmlhdGlvbi1zd2F0Y2hlcy10aGVtZS1zb2JlciAucHJvZHVjdCBmb3JtLmNhcnQgLnJhZGlvLXZhcmlhYmxlLWl0ZW0ge1xuICBtYXJnaW46IDVweDtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbn1cblxuLndvby12YXJpYXRpb24tc3dhdGNoZXMtdGhlbWUtc29iZXIgLnByb2R1Y3QgZm9ybS5jYXJ0IC5yYWRpby12YXJpYWJsZS1pdGVtOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tcmlnaHQ6IDA7XG59XG5cbi53b28tdmFyaWF0aW9uLXN3YXRjaGVzLXRoZW1lLXNvYmVyIC5wcm9kdWN0IGZvcm0uY2FydCAucmFkaW8tdmFyaWFibGUtaXRlbSBsYWJlbCB7XG4gIHBhZGRpbmctbGVmdDogMzBweDtcbiAgbWFyZ2luOiAwO1xufVxuXG4ud29vLXZhcmlhdGlvbi1zd2F0Y2hlcy10aGVtZS1zb2JlciAucHJvZHVjdCBmb3JtLmNhcnQgLnJhZGlvLXZhcmlhYmxlLWl0ZW0gbGFiZWw6OmJlZm9yZSB7XG4gIHRvcDogMDtcbiAgYm9yZGVyLXJhZGl1czogMTAwJTtcbn1cblxuLndvby12YXJpYXRpb24tc3dhdGNoZXMtdGhlbWUtc29iZXIgLnByb2R1Y3QgZm9ybS5jYXJ0IC5yYWRpby12YXJpYWJsZS1pdGVtIGxhYmVsOjphZnRlciB7XG4gIHRvcDogOHB4O1xufVxuXG4ud29vLXZhcmlhdGlvbi1zd2F0Y2hlcy10aGVtZS1zb2Jlci5wcm9kdWN0LXN0eWxlLTQgLnByb2R1Y3QgZm9ybS5jYXJ0IC52YXJpYXRpb25zIGRpdiB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4ud29vLXZhcmlhdGlvbi1zd2F0Y2hlcy10aGVtZS1zb2Jlci5wcm9kdWN0LXN0eWxlLTQgLnByb2R1Y3QgZm9ybS5jYXJ0IC52YXJpYXRpb25zIC5sYWJlbCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG59XG5cbi53b28tdmFyaWF0aW9uLXN3YXRjaGVzLXRoZW1lLXNvYmVyLnByb2R1Y3Qtc3R5bGUtNCAucHJvZHVjdCBmb3JtLmNhcnQgLnZhcmlhdGlvbnMgLmxhYmVsIGxhYmVsIHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlZWVlZWU7XG59XG5cbi53b28tdmFyaWF0aW9uLXN3YXRjaGVzLXRoZW1lLXNvYmVyLnByb2R1Y3Qtc3R5bGUtNCAucHJvZHVjdCBmb3JtLmNhcnQgLnZhcmlhdGlvbnMgLnZhcmlhYmxlLWl0ZW1zLXdyYXBwZXIge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cblxuLndvby12YXJpYXRpb24tc3dhdGNoZXMtdGhlbWUtc2hvcGhpc3RpYy1saXRlLndvb2NvbW1lcmNlICNtYWluIC5lbnRyeS1zdW1tYXJ5IC52YXJpYXRpb25zIHtcbiAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbn1cblxuLndvby12YXJpYXRpb24tc3dhdGNoZXMtdGhlbWUtc2hvcGhpc3RpYy1saXRlIC5xbF9jdXN0b21fdmFyaWF0aW9ucyB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuLndvby12YXJpYXRpb24tc3dhdGNoZXMtdGhlbWUtc2hvcGhpc3RpYy1saXRlIC5yYWRpby12YXJpYWJsZS1pdGVtIGlucHV0W3R5cGU9XCJyYWRpb1wiXSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWFyZ2luOiAwO1xufVxuXG4ud29vLXZhcmlhdGlvbi1zd2F0Y2hlcy10aGVtZS1mbGF0c29tZSAudmFyaWF0aW9ucyAucmVzZXRfdmFyaWF0aW9ucyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAwO1xufVxuXG4ud29vLXZhcmlhdGlvbi1zd2F0Y2hlcy10aGVtZS1zdG9ja2hvbG0gLnZhcmlhdGlvbnMgLnJlc2V0X3ZhcmlhdGlvbnMge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcbiAgdHJhbnNmb3JtOiBub25lO1xufVxuXG4ud29vLXZhcmlhdGlvbi1zd2F0Y2hlcy10aGVtZS1rYWxpdW0gLmltYWdlLXZhcmlhYmxlLWl0ZW0gaW1nLFxuLndvby12YXJpYXRpb24tc3dhdGNoZXMtdGhlbWUta2FsaXVtLWNoaWxkIC5pbWFnZS12YXJpYWJsZS1pdGVtIGltZyB7XG4gIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG59XG5cbi53b28tdmFyaWF0aW9uLXN3YXRjaGVzLXRoZW1lLWthbGl1bSAucmFkaW8tdmFyaWFibGUtaXRlbSBpbnB1dCxcbi53b28tdmFyaWF0aW9uLXN3YXRjaGVzLXRoZW1lLWthbGl1bS1jaGlsZCAucmFkaW8tdmFyaWFibGUtaXRlbSBpbnB1dCB7XG4gIHdpZHRoOiAxNnB4ICFpbXBvcnRhbnQ7XG4gIGhlaWdodDogMTZweCAhaW1wb3J0YW50O1xufVxuXG4ud29vLXZhcmlhdGlvbi1zd2F0Y2hlcy10aGVtZS1rYWxpdW0gLndvby12YXJpYXRpb24taXRlbXMtd3JhcHBlciAuc2VsZWN0LW9wdGlvbi11aSxcbi53b28tdmFyaWF0aW9uLXN3YXRjaGVzLXRoZW1lLWthbGl1bS1jaGlsZCAud29vLXZhcmlhdGlvbi1pdGVtcy13cmFwcGVyIC5zZWxlY3Qtb3B0aW9uLXVpIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vdGhlbWUtb3ZlcnJpZGUuc2NzcyJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUVBO0FBT0E7QUFDQTtBQUFBO0FBQUE7QUFDQTtBQUFBO0FBQUE7QUFDQTtBQUFBO0FBQUE7QUNQQTtBQUNBO0FESkE7QUFjQTtBQUNBO0FBQ0E7QUNQQTtBQUNBO0FEVkE7QUFvQkE7QUFBQTtBQUFBO0FDUEE7QUFDQTtBRFNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQ1BBO0FBQ0E7QUR0QkE7QUFrQ0E7QUFDQTtBQ1RBO0FBQ0E7QUQzQkE7QUFxQ0E7QUNQQTtBQUNBO0FEL0JBO0FBd0NBO0FBQ0E7QUNOQTtBQUNBO0FEcENBO0FBMkNBO0FBQ0E7QUNKQTtBQUNBO0FERkE7QUFTQTtBQ0pBO0FBQ0E7QURhQTtBQUNBO0FDWEE7QUFDQTtBRGpEQTtBQStEQTtBQUNBO0FBQ0E7QUNYQTtBQUNBO0FEdkRBO0FBb0VBO0FDVkE7QUFDQTtBRDNEQTtBQXlFQTtBQUFBO0FBQUE7QUNYQTtBQUNBO0FEbUJBO0FBQ0E7QUNqQkE7QUFDQTtBRG1CQTtBQUNBO0FDakJBO0FBQ0E7QURtQkE7QUFDQTtBQUNBO0FDakJBO0FBQ0E7QURzQkE7QUFDQTtBQUNBO0FBQ0E7QUNwQkE7QUFDQTtBRHdCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUN0QkE7QUFDQTtBRDBCQTs7QUFHQTtBQ3pCQTtBQUNBO0FEcUJBOztBQU9BO0FBQ0E7QUN4QkE7QUFDQTtBRDBCQTs7QUFDQTtBQ3ZCQTtBQUNBOyIsInNvdXJjZVJvb3QiOiIifQ==*/
assets/css/wvs-theme-override.min.css CHANGED
@@ -1,8 +1,8 @@
1
  /*!
2
- * WooCommerce Variation Swatches v1.0.31
3
  *
4
  * Author: Emran Ahmed ( emran.bd.08@gmail.com )
5
- * Date: 2018-7-16 20:51:32
6
  * Released under the GPLv3 license.
7
  */
8
- .woo-variation-swatches-theme-sober .product form.cart .variations div{margin-bottom:20px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.woo-variation-swatches-theme-sober .product form.cart .variations .label{display:block;text-align:right;margin-right:10px}.woo-variation-swatches-theme-sober .product form.cart .variations .value{-webkit-box-flex:unset;-ms-flex-positive:unset;flex-grow:unset}.woo-variation-swatches-theme-sober .product form.cart .variations select{border:1px solid #e4e6eb;padding:.5em 1em;text-align:left;text-align-last:left;-webkit-appearance:menulist-button}.woo-variation-swatches-theme-sober .product form.cart .radio-variable-item{margin:5px;text-align:left}.woo-variation-swatches-theme-sober .product form.cart .radio-variable-item:last-child{margin-right:0}.woo-variation-swatches-theme-sober .product form.cart .radio-variable-item label{padding-left:30px;margin:0}.woo-variation-swatches-theme-sober .product form.cart .radio-variable-item label:before{top:0;border-radius:100%}.woo-variation-swatches-theme-sober .product form.cart .radio-variable-item label:after{top:8px}.woo-variation-swatches-theme-sober.product-style-4 .product form.cart .variations div{display:block}.woo-variation-swatches-theme-sober.product-style-4 .product form.cart .variations .label{display:block;text-align:center;margin-bottom:10px}.woo-variation-swatches-theme-sober.product-style-4 .product form.cart .variations .label label{border-bottom:1px solid #eee}.woo-variation-swatches-theme-sober.product-style-4 .product form.cart .variations .variable-items-wrapper{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.woo-variation-swatches-theme-shophistic-lite.woocommerce #main .entry-summary .variations{display:block!important}.woo-variation-swatches-theme-shophistic-lite .ql_custom_variations{display:none!important}.woo-variation-swatches-theme-shophistic-lite .radio-variable-item input[type=radio]{display:inline-block;margin:0}.woo-variation-swatches-theme-flatsome .variations .reset_variations{position:relative;bottom:0;left:0}.woo-variation-swatches-theme-stockholm .variations .reset_variations{position:relative;bottom:0;left:0;-webkit-transform:none;transform:none}.woo-variation-swatches-theme-kalium .image-variable-item img{width:100%!important}.woo-variation-swatches-theme-kalium .radio-variable-item input{width:16px!important;height:16px!important}.woo-variation-swatches-theme-kalium .woo-variation-items-wrapper .select-option-ui{display:none}
1
  /*!
2
+ * WooCommerce Variation Swatches v1.0.32
3
  *
4
  * Author: Emran Ahmed ( emran.bd.08@gmail.com )
5
+ * Date: 2018-8-5 20:35:09
6
  * Released under the GPLv3 license.
7
  */
8
+ .woo-variation-swatches-theme-sober .product form.cart .variations div{margin-bottom:20px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.woo-variation-swatches-theme-sober .product form.cart .variations .label{display:block;text-align:right;margin-right:10px}.woo-variation-swatches-theme-sober .product form.cart .variations .value{-webkit-box-flex:unset;-ms-flex-positive:unset;flex-grow:unset}.woo-variation-swatches-theme-sober .product form.cart .variations select{border:1px solid #e4e6eb;padding:.5em 1em;text-align:left;text-align-last:left;-webkit-appearance:menulist-button}.woo-variation-swatches-theme-sober .product form.cart .radio-variable-item{margin:5px;text-align:left}.woo-variation-swatches-theme-sober .product form.cart .radio-variable-item:last-child{margin-right:0}.woo-variation-swatches-theme-sober .product form.cart .radio-variable-item label{padding-left:30px;margin:0}.woo-variation-swatches-theme-sober .product form.cart .radio-variable-item label:before{top:0;border-radius:100%}.woo-variation-swatches-theme-sober .product form.cart .radio-variable-item label:after{top:8px}.woo-variation-swatches-theme-sober.product-style-4 .product form.cart .variations div{display:block}.woo-variation-swatches-theme-sober.product-style-4 .product form.cart .variations .label{display:block;text-align:center;margin-bottom:10px}.woo-variation-swatches-theme-sober.product-style-4 .product form.cart .variations .label label{border-bottom:1px solid #eee}.woo-variation-swatches-theme-sober.product-style-4 .product form.cart .variations .variable-items-wrapper{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.woo-variation-swatches-theme-shophistic-lite.woocommerce #main .entry-summary .variations{display:block!important}.woo-variation-swatches-theme-shophistic-lite .ql_custom_variations{display:none!important}.woo-variation-swatches-theme-shophistic-lite .radio-variable-item input[type=radio]{display:inline-block;margin:0}.woo-variation-swatches-theme-flatsome .variations .reset_variations{position:relative;bottom:0;left:0}.woo-variation-swatches-theme-stockholm .variations .reset_variations{position:relative;bottom:0;left:0;-webkit-transform:none;transform:none}.woo-variation-swatches-theme-kalium-child .image-variable-item img,.woo-variation-swatches-theme-kalium .image-variable-item img{width:100%!important}.woo-variation-swatches-theme-kalium-child .radio-variable-item input,.woo-variation-swatches-theme-kalium .radio-variable-item input{width:16px!important;height:16px!important}.woo-variation-swatches-theme-kalium-child .woo-variation-items-wrapper .select-option-ui,.woo-variation-swatches-theme-kalium .woo-variation-items-wrapper .select-option-ui{display:none}
assets/js/admin.js CHANGED
@@ -1,8 +1,8 @@
1
  /*!
2
- * WooCommerce Variation Swatches v1.0.31
3
  *
4
  * Author: Emran Ahmed ( emran.bd.08@gmail.com )
5
- * Date: 2018-7-16 20:51:28
6
  * Released under the GPLv3 license.
7
  */
8
  /******/ (function(modules) { // webpackBootstrap
@@ -401,4 +401,4 @@ var PluginHelper = function ($) {
401
 
402
  /***/ })
403
  /******/ ]);
404
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXRzL2pzL2FkbWluLmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vL3dlYnBhY2svYm9vdHN0cmFwIGJmMmI2N2M0ZThjOGIzYzBiNmQxIiwid2VicGFjazovLy9zcmMvanMvYmFja2VuZC5qcyIsIndlYnBhY2s6Ly8vc3JjL2pzL1BsdWdpbkhlbHBlci5qcyIsIndlYnBhY2s6Ly8vLi9zcmMvc2Nzcy9iYWNrZW5kLnNjc3M/YmU2MSIsIndlYnBhY2s6Ly8vLi9zcmMvc2Nzcy9mcm9udGVuZC5zY3NzIiwid2VicGFjazovLy8uL3NyYy9zY3NzL3Rvb2x0aXAuc2NzcyIsIndlYnBhY2s6Ly8vLi9zcmMvc2Nzcy90aGVtZS1vdmVycmlkZS5zY3NzIiwid2VicGFjazovLy8uL3NyYy9zY3NzL2N1c3RvbWl6ZS1oZWFkaW5nLWNvbnRyb2wuc2NzcyJdLCJzb3VyY2VzQ29udGVudCI6WyIgXHQvLyBUaGUgbW9kdWxlIGNhY2hlXG4gXHR2YXIgaW5zdGFsbGVkTW9kdWxlcyA9IHt9O1xuXG4gXHQvLyBUaGUgcmVxdWlyZSBmdW5jdGlvblxuIFx0ZnVuY3Rpb24gX193ZWJwYWNrX3JlcXVpcmVfXyhtb2R1bGVJZCkge1xuXG4gXHRcdC8vIENoZWNrIGlmIG1vZHVsZSBpcyBpbiBjYWNoZVxuIFx0XHRpZihpbnN0YWxsZWRNb2R1bGVzW21vZHVsZUlkXSkge1xuIFx0XHRcdHJldHVybiBpbnN0YWxsZWRNb2R1bGVzW21vZHVsZUlkXS5leHBvcnRzO1xuIFx0XHR9XG4gXHRcdC8vIENyZWF0ZSBhIG5ldyBtb2R1bGUgKGFuZCBwdXQgaXQgaW50byB0aGUgY2FjaGUpXG4gXHRcdHZhciBtb2R1bGUgPSBpbnN0YWxsZWRNb2R1bGVzW21vZHVsZUlkXSA9IHtcbiBcdFx0XHRpOiBtb2R1bGVJZCxcbiBcdFx0XHRsOiBmYWxzZSxcbiBcdFx0XHRleHBvcnRzOiB7fVxuIFx0XHR9O1xuXG4gXHRcdC8vIEV4ZWN1dGUgdGhlIG1vZHVsZSBmdW5jdGlvblxuIFx0XHRtb2R1bGVzW21vZHVsZUlkXS5jYWxsKG1vZHVsZS5leHBvcnRzLCBtb2R1bGUsIG1vZHVsZS5leHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKTtcblxuIFx0XHQvLyBGbGFnIHRoZSBtb2R1bGUgYXMgbG9hZGVkXG4gXHRcdG1vZHVsZS5sID0gdHJ1ZTtcblxuIFx0XHQvLyBSZXR1cm4gdGhlIGV4cG9ydHMgb2YgdGhlIG1vZHVsZVxuIFx0XHRyZXR1cm4gbW9kdWxlLmV4cG9ydHM7XG4gXHR9XG5cblxuIFx0Ly8gZXhwb3NlIHRoZSBtb2R1bGVzIG9iamVjdCAoX193ZWJwYWNrX21vZHVsZXNfXylcbiBcdF9fd2VicGFja19yZXF1aXJlX18ubSA9IG1vZHVsZXM7XG5cbiBcdC8vIGV4cG9zZSB0aGUgbW9kdWxlIGNhY2hlXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLmMgPSBpbnN0YWxsZWRNb2R1bGVzO1xuXG4gXHQvLyBkZWZpbmUgZ2V0dGVyIGZ1bmN0aW9uIGZvciBoYXJtb255IGV4cG9ydHNcbiBcdF9fd2VicGFja19yZXF1aXJlX18uZCA9IGZ1bmN0aW9uKGV4cG9ydHMsIG5hbWUsIGdldHRlcikge1xuIFx0XHRpZighX193ZWJwYWNrX3JlcXVpcmVfXy5vKGV4cG9ydHMsIG5hbWUpKSB7XG4gXHRcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIG5hbWUsIHtcbiBcdFx0XHRcdGNvbmZpZ3VyYWJsZTogZmFsc2UsXG4gXHRcdFx0XHRlbnVtZXJhYmxlOiB0cnVlLFxuIFx0XHRcdFx0Z2V0OiBnZXR0ZXJcbiBcdFx0XHR9KTtcbiBcdFx0fVxuIFx0fTtcblxuIFx0Ly8gZ2V0RGVmYXVsdEV4cG9ydCBmdW5jdGlvbiBmb3IgY29tcGF0aWJpbGl0eSB3aXRoIG5vbi1oYXJtb255IG1vZHVsZXNcbiBcdF9fd2VicGFja19yZXF1aXJlX18ubiA9IGZ1bmN0aW9uKG1vZHVsZSkge1xuIFx0XHR2YXIgZ2V0dGVyID0gbW9kdWxlICYmIG1vZHVsZS5fX2VzTW9kdWxlID9cbiBcdFx0XHRmdW5jdGlvbiBnZXREZWZhdWx0KCkgeyByZXR1cm4gbW9kdWxlWydkZWZhdWx0J107IH0gOlxuIFx0XHRcdGZ1bmN0aW9uIGdldE1vZHVsZUV4cG9ydHMoKSB7IHJldHVybiBtb2R1bGU7IH07XG4gXHRcdF9fd2VicGFja19yZXF1aXJlX18uZChnZXR0ZXIsICdhJywgZ2V0dGVyKTtcbiBcdFx0cmV0dXJuIGdldHRlcjtcbiBcdH07XG5cbiBcdC8vIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbFxuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5vID0gZnVuY3Rpb24ob2JqZWN0LCBwcm9wZXJ0eSkgeyByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iamVjdCwgcHJvcGVydHkpOyB9O1xuXG4gXHQvLyBfX3dlYnBhY2tfcHVibGljX3BhdGhfX1xuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5wID0gXCJcIjtcblxuIFx0Ly8gTG9hZCBlbnRyeSBtb2R1bGUgYW5kIHJldHVybiBleHBvcnRzXG4gXHRyZXR1cm4gX193ZWJwYWNrX3JlcXVpcmVfXyhfX3dlYnBhY2tfcmVxdWlyZV9fLnMgPSAwKTtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyB3ZWJwYWNrL2Jvb3RzdHJhcCBiZjJiNjdjNGU4YzhiM2MwYjZkMSIsImpRdWVyeSgkID0+IHtcbiAgICBpbXBvcnQoJy4vUGx1Z2luSGVscGVyJykudGhlbigoe1BsdWdpbkhlbHBlcn0pID0+IHtcbiAgICAgICAgUGx1Z2luSGVscGVyLlNlbGVjdFdvbygpO1xuICAgICAgICBQbHVnaW5IZWxwZXIuQ29sb3JQaWNrZXIoKTtcbiAgICAgICAgUGx1Z2luSGVscGVyLkZpZWxkRGVwZW5kZW5jeSgpO1xuICAgICAgICBQbHVnaW5IZWxwZXIuSW1hZ2VVcGxvYWRlcigpO1xuICAgICAgICBQbHVnaW5IZWxwZXIuQXR0cmlidXRlRGlhbG9nKCk7XG4gICAgICAgICQoZG9jdW1lbnQuYm9keSkub24oJ3dvb2NvbW1lcmNlX2FkZGVkX2F0dHJpYnV0ZScsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIFBsdWdpbkhlbHBlci5TZWxlY3RXb28oKTtcbiAgICAgICAgICAgIFBsdWdpbkhlbHBlci5Db2xvclBpY2tlcigpO1xuICAgICAgICAgICAgUGx1Z2luSGVscGVyLkltYWdlVXBsb2FkZXIoKTtcbiAgICAgICAgICAgIFBsdWdpbkhlbHBlci5BdHRyaWJ1dGVEaWFsb2coKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgJChkb2N1bWVudC5ib2R5KS5vbignd3ZzX3Byb19wcm9kdWN0X3N3YXRjaGVzX3ZhcmlhdGlvbl9sb2FkZWQnLCAoKSA9PiB7XG4gICAgICAgICAgICBQbHVnaW5IZWxwZXIuQ29sb3JQaWNrZXIoKTtcbiAgICAgICAgICAgIFBsdWdpbkhlbHBlci5JbWFnZVVwbG9hZGVyKCk7XG4gICAgICAgIH0pXG5cbiAgICAgICAgJCgnLmd3cC1saXZlLWZlZWQtY2xvc2UnKS5vbignY2xpY2snLCBmdW5jdGlvbiAoZSkge1xuICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgbGV0IGlkID0gJCh0aGlzKS5kYXRhKCdmZWVkX2lkJyk7XG4gICAgICAgICAgICB3cC5hamF4LnNlbmQoJ2d3cF9saXZlX2ZlZWRfY2xvc2UnLCB7XG4gICAgICAgICAgICAgICAgZGF0YSA6IHtpZH1cbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAkKHRoaXMpLnBhcmVudCgpLmZhZGVPdXQoJ2Zhc3QnLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgJCh0aGlzKS5yZW1vdmUoKVxuICAgICAgICAgICAgfSlcbiAgICAgICAgfSk7XG4gICAgfSk7XG59KTsgIC8vIGVuZCBvZiBqcXVlcnkgbWFpbiB3cmFwcGVyXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIHNyYy9qcy9iYWNrZW5kLmpzIiwiLypnbG9iYWwgV1ZTUGx1Z2luT2JqZWN0LCB3cCwgd29vY29tbWVyY2VfYWRtaW5fbWV0YV9ib3hlcyovXG5cbmNvbnN0IFBsdWdpbkhlbHBlciA9ICgoJCkgPT4ge1xuICAgIGNsYXNzIFBsdWdpbkhlbHBlciB7XG5cbiAgICAgICAgc3RhdGljIEltYWdlVXBsb2FkZXIoKSB7XG4gICAgICAgICAgICAkKGRvY3VtZW50KS5vZmYoJ2NsaWNrJywgJ2J1dHRvbi53dnNfdXBsb2FkX2ltYWdlX2J1dHRvbicpO1xuICAgICAgICAgICAgJChkb2N1bWVudCkub24oJ2NsaWNrJywgJ2J1dHRvbi53dnNfdXBsb2FkX2ltYWdlX2J1dHRvbicsIHRoaXMuQWRkSW1hZ2UpO1xuICAgICAgICAgICAgJChkb2N1bWVudCkub24oJ2NsaWNrJywgJ2J1dHRvbi53dnNfcmVtb3ZlX2ltYWdlX2J1dHRvbicsIHRoaXMuUmVtb3ZlSW1hZ2UpO1xuICAgICAgICB9XG5cbiAgICAgICAgc3RhdGljIEFkZEltYWdlKGV2ZW50KSB7XG5cbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcblxuICAgICAgICAgICAgbGV0IGZpbGVfZnJhbWU7XG5cbiAgICAgICAgICAgIGlmICh0eXBlb2Ygd3AgIT09ICd1bmRlZmluZWQnICYmIHdwLm1lZGlhICYmIHdwLm1lZGlhLmVkaXRvcikge1xuXG4gICAgICAgICAgICAgICAgLy8gSWYgdGhlIG1lZGlhIGZyYW1lIGFscmVhZHkgZXhpc3RzLCByZW9wZW4gaXQuXG4gICAgICAgICAgICAgICAgaWYgKGZpbGVfZnJhbWUpIHtcbiAgICAgICAgICAgICAgICAgICAgZmlsZV9mcmFtZS5vcGVuKCk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAvLyBDcmVhdGUgdGhlIG1lZGlhIGZyYW1lLlxuICAgICAgICAgICAgICAgIGZpbGVfZnJhbWUgPSB3cC5tZWRpYS5mcmFtZXMuc2VsZWN0X2ltYWdlID0gd3AubWVkaWEoe1xuICAgICAgICAgICAgICAgICAgICB0aXRsZSAgICA6IFdWU1BsdWdpbk9iamVjdC5tZWRpYV90aXRsZSxcbiAgICAgICAgICAgICAgICAgICAgYnV0dG9uICAgOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0ZXh0IDogV1ZTUGx1Z2luT2JqZWN0LmJ1dHRvbl90aXRsZVxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBtdWx0aXBsZSA6IGZhbHNlLFxuICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgLy8gV2hlbiBhbiBpbWFnZSBpcyBzZWxlY3RlZCwgcnVuIGEgY2FsbGJhY2suXG4gICAgICAgICAgICAgICAgZmlsZV9mcmFtZS5vbignc2VsZWN0JywgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBsZXQgYXR0YWNobWVudCA9IGZpbGVfZnJhbWUuc3RhdGUoKS5nZXQoJ3NlbGVjdGlvbicpLmZpcnN0KCkudG9KU09OKCk7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKCQudHJpbShhdHRhY2htZW50LmlkKSAhPT0gJycpIHtcblxuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHVybCA9ICh0eXBlb2YoYXR0YWNobWVudC5zaXplcy50aHVtYm5haWwpID09PSAndW5kZWZpbmVkJykgPyBhdHRhY2htZW50LnNpemVzLmZ1bGwudXJsIDogYXR0YWNobWVudC5zaXplcy50aHVtYm5haWwudXJsO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAkKHRoaXMpLnByZXYoKS52YWwoYXR0YWNobWVudC5pZCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAkKHRoaXMpLmNsb3Nlc3QoJy5tZXRhLWltYWdlLWZpZWxkLXdyYXBwZXInKS5maW5kKCdpbWcnKS5hdHRyKCdzcmMnLCB1cmwpO1xuICAgICAgICAgICAgICAgICAgICAgICAgJCh0aGlzKS5uZXh0KCkuc2hvdygpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIC8vZmlsZV9mcmFtZS5jbG9zZSgpO1xuICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgLy8gV2hlbiBvcGVuIHNlbGVjdCBzZWxlY3RlZFxuICAgICAgICAgICAgICAgIGZpbGVfZnJhbWUub24oJ29wZW4nLCAoKSA9PiB7XG5cbiAgICAgICAgICAgICAgICAgICAgLy8gR3JhYiBvdXIgYXR0YWNobWVudCBzZWxlY3Rpb24gYW5kIGNvbnN0cnVjdCBhIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsLlxuICAgICAgICAgICAgICAgICAgICBsZXQgc2VsZWN0aW9uICA9IGZpbGVfZnJhbWUuc3RhdGUoKS5nZXQoJ3NlbGVjdGlvbicpO1xuICAgICAgICAgICAgICAgICAgICBsZXQgY3VycmVudCAgICA9ICQodGhpcykucHJldigpLnZhbCgpO1xuICAgICAgICAgICAgICAgICAgICBsZXQgYXR0YWNobWVudCA9IHdwLm1lZGlhLmF0dGFjaG1lbnQoY3VycmVudCk7XG4gICAgICAgICAgICAgICAgICAgIGF0dGFjaG1lbnQuZmV0Y2goKTtcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0aW9uLmFkZChhdHRhY2htZW50ID8gW2F0dGFjaG1lbnRdIDogW10pO1xuICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgLy8gRmluYWxseSwgb3BlbiB0aGUgbW9kYWwuXG4gICAgICAgICAgICAgICAgZmlsZV9mcmFtZS5vcGVuKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBzdGF0aWMgUmVtb3ZlSW1hZ2UoZXZlbnQpIHtcblxuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuXG4gICAgICAgICAgICBsZXQgcGxhY2Vob2xkZXIgPSAkKHRoaXMpLmNsb3Nlc3QoJy5tZXRhLWltYWdlLWZpZWxkLXdyYXBwZXInKS5maW5kKCdpbWcnKS5kYXRhKCdwbGFjZWhvbGRlcicpO1xuICAgICAgICAgICAgJCh0aGlzKS5jbG9zZXN0KCcubWV0YS1pbWFnZS1maWVsZC13cmFwcGVyJykuZmluZCgnaW1nJykuYXR0cignc3JjJywgcGxhY2Vob2xkZXIpO1xuICAgICAgICAgICAgJCh0aGlzKS5wcmV2KCkucHJldigpLnZhbCgnJyk7XG4gICAgICAgICAgICAkKHRoaXMpLmhpZGUoKTtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHN0YXRpYyBTZWxlY3RXb28oc2VsZWN0b3IgPSAnc2VsZWN0Lnd2cy1zZWxlY3R3b28nKSB7XG4gICAgICAgICAgICBpZiAoJCgpLnNlbGVjdFdvbykge1xuICAgICAgICAgICAgICAgICQoc2VsZWN0b3IpLnNlbGVjdFdvbyh7XG4gICAgICAgICAgICAgICAgICAgIGFsbG93Q2xlYXIgOiB0cnVlXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBzdGF0aWMgQ29sb3JQaWNrZXIoc2VsZWN0b3IgPSAnaW5wdXQud3ZzLWNvbG9yLXBpY2tlcicpIHtcbiAgICAgICAgICAgIGlmICgkKCkud3BDb2xvclBpY2tlcikge1xuICAgICAgICAgICAgICAgICQoc2VsZWN0b3IpLndwQ29sb3JQaWNrZXIoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHN0YXRpYyBGaWVsZERlcGVuZGVuY3koc2VsZWN0b3IgPSAnW2RhdGEtZGVwZW5kc10nKSB7XG4gICAgICAgICAgICBpZiAoJCgpLkZvcm1GaWVsZERlcGVuZGVuY3kpIHtcbiAgICAgICAgICAgICAgICAkKHNlbGVjdG9yKS5Gb3JtRmllbGREZXBlbmRlbmN5KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBzdGF0aWMgc2F2aW5nRGlhbG9nKCR3cmFwcGVyLCAkZGlhbG9nLCB0YXhvbm9teSkge1xuXG4gICAgICAgICAgICBsZXQgZGF0YSA9IHt9O1xuICAgICAgICAgICAgbGV0IHRlcm0gPSAnJztcblxuICAgICAgICAgICAgLy8gQFRPRE86IFdlIHNob3VsZCB1c2UgZm9ybSBkYXRhLCBiZWNhdXNlIHdlIGhhdmUgdG8gcGljayBhcnJheSBiYXNlZCBkYXRhIGFsc28gOilcblxuICAgICAgICAgICAgJGRpYWxvZy5maW5kKGBpbnB1dCwgc2VsZWN0YCkuZWFjaChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgbGV0IGtleSAgID0gJCh0aGlzKS5hdHRyKCduYW1lJyk7XG4gICAgICAgICAgICAgICAgbGV0IHZhbHVlID0gJCh0aGlzKS52YWwoKTtcbiAgICAgICAgICAgICAgICBpZiAoa2V5KSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChrZXkgPT09ICd0YWdfbmFtZScpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRlcm0gPSB2YWx1ZVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGF0YVtrZXldID0gdmFsdWVcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAkKHRoaXMpLnZhbCgnJylcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgaWYgKHRlcm0pIHtcbiAgICAgICAgICAgICAgICAkKCcucHJvZHVjdF9hdHRyaWJ1dGVzJykuYmxvY2soe1xuICAgICAgICAgICAgICAgICAgICBtZXNzYWdlICAgIDogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgb3ZlcmxheUNTUyA6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQgOiAnI2ZmZicsXG4gICAgICAgICAgICAgICAgICAgICAgICBvcGFjaXR5ICAgIDogMC42XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgIGxldCBhamF4X2RhdGEgPSB7XG4gICAgICAgICAgICAgICAgICAgIGFjdGlvbiAgIDogJ3dvb2NvbW1lcmNlX2FkZF9uZXdfYXR0cmlidXRlJyxcbiAgICAgICAgICAgICAgICAgICAgdGF4b25vbXkgOiB0YXhvbm9teSxcbiAgICAgICAgICAgICAgICAgICAgdGVybSAgICAgOiB0ZXJtLFxuICAgICAgICAgICAgICAgICAgICBzZWN1cml0eSA6IHdvb2NvbW1lcmNlX2FkbWluX21ldGFfYm94ZXMuYWRkX2F0dHJpYnV0ZV9ub25jZSxcbiAgICAgICAgICAgICAgICAgICAgLi4uZGF0YVxuICAgICAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgICAgICAkLnBvc3Qod29vY29tbWVyY2VfYWRtaW5fbWV0YV9ib3hlcy5hamF4X3VybCwgYWpheF9kYXRhLCBmdW5jdGlvbiAocmVzcG9uc2UpIHtcblxuICAgICAgICAgICAgICAgICAgICBpZiAocmVzcG9uc2UuZXJyb3IpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIEVycm9yLlxuICAgICAgICAgICAgICAgICAgICAgICAgd2luZG93LmFsZXJ0KHJlc3BvbnNlLmVycm9yKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChyZXNwb25zZS5zbHVnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBTdWNjZXNzLlxuICAgICAgICAgICAgICAgICAgICAgICAgJHdyYXBwZXIuZmluZCgnc2VsZWN0LmF0dHJpYnV0ZV92YWx1ZXMnKS5hcHBlbmQoJzxvcHRpb24gdmFsdWU9XCInICsgcmVzcG9uc2UudGVybV9pZCArICdcIiBzZWxlY3RlZD1cInNlbGVjdGVkXCI+JyArIHJlc3BvbnNlLm5hbWUgKyAnPC9vcHRpb24+Jyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAkd3JhcHBlci5maW5kKCdzZWxlY3QuYXR0cmlidXRlX3ZhbHVlcycpLmNoYW5nZSgpO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJCgnLnByb2R1Y3RfYXR0cmlidXRlcycpLnVuYmxvY2soKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICQoJy5wcm9kdWN0X2F0dHJpYnV0ZXMnKS51bmJsb2NrKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBzdGF0aWMgQXR0cmlidXRlRGlhbG9nKCkge1xuXG4gICAgICAgICAgICBsZXQgc2VsZiA9IHRoaXM7XG4gICAgICAgICAgICAkKCcucHJvZHVjdF9hdHRyaWJ1dGVzJykub24oJ2NsaWNrJywgJ2J1dHRvbi53dnNfYWRkX25ld19hdHRyaWJ1dGUnLCBmdW5jdGlvbiAoZXZlbnQpIHtcblxuICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICAgICAgICAgICAgICBsZXQgJHdyYXBwZXIgID0gJCh0aGlzKS5jbG9zZXN0KCcud29vY29tbWVyY2VfYXR0cmlidXRlJyk7XG4gICAgICAgICAgICAgICAgbGV0IGF0dHJpYnV0ZSA9ICR3cmFwcGVyLmRhdGEoJ3RheG9ub215Jyk7XG4gICAgICAgICAgICAgICAgbGV0IHRpdGxlICAgICA9ICQodGhpcykuZGF0YSgnZGlhbG9nX3RpdGxlJyk7XG5cbiAgICAgICAgICAgICAgICAkKCcud3ZzLWF0dHJpYnV0ZS1kaWFsb2ctZm9yLScgKyBhdHRyaWJ1dGUpLmRpYWxvZyh7XG4gICAgICAgICAgICAgICAgICAgIHRpdGxlICAgICAgICAgOiAnJyxcbiAgICAgICAgICAgICAgICAgICAgZGlhbG9nQ2xhc3MgICA6ICd3cC1kaWFsb2cgd3ZzLWF0dHJpYnV0ZS1kaWFsb2cnLFxuICAgICAgICAgICAgICAgICAgICBjbGFzc2VzICAgICAgIDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJ1aS1kaWFsb2dcIiA6IFwid3AtZGlhbG9nIHd2cy1hdHRyaWJ1dGUtZGlhbG9nXCJcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgYXV0b09wZW4gICAgICA6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICBkcmFnZ2FibGUgICAgIDogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgd2lkdGggICAgICAgICA6ICdhdXRvJyxcbiAgICAgICAgICAgICAgICAgICAgbW9kYWwgICAgICAgICA6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIHJlc2l6YWJsZSAgICAgOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgY2xvc2VPbkVzY2FwZSA6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uICAgICAgOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBteSA6IFwiY2VudGVyXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBhdCA6IFwiY2VudGVyXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBvZiA6IHdpbmRvd1xuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBvcGVuICAgICAgICAgIDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gY2xvc2UgZGlhbG9nIGJ5IGNsaWNraW5nIHRoZSBvdmVybGF5IGJlaGluZCBpdFxuICAgICAgICAgICAgICAgICAgICAgICAgJCgnLnVpLXdpZGdldC1vdmVybGF5JykuYmluZCgnY2xpY2snLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJCgnI2F0dHJpYnV0ZS1kaWFsb2cnKS5kaWFsb2coJ2Nsb3NlJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBjcmVhdGUgICAgICAgIDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gc3R5bGUgZml4IGZvciBXb3JkUHJlc3MgYWRtaW5cbiAgICAgICAgICAgICAgICAgICAgICAgIC8vICQoJy51aS1kaWFsb2ctdGl0bGViYXItY2xvc2UnKS5hZGRDbGFzcygndWktYnV0dG9uJyk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAuZGlhbG9nKFwib3B0aW9uXCIsIFwidGl0bGVcIiwgdGl0bGUpXG4gICAgICAgICAgICAgICAgICAgIC5kaWFsb2coXCJvcHRpb25cIiwgXCJidXR0b25zXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0ICA6IFdWU1BsdWdpbk9iamVjdC5kaWFsb2dfc2F2ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xpY2sgOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNhdmluZ0RpYWxvZygkd3JhcHBlciwgJCh0aGlzKSwgYXR0cmlidXRlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQodGhpcykuZGlhbG9nKFwiY2xvc2VcIikuZGlhbG9nKFwiZGVzdHJveVwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0ICA6IFdWU1BsdWdpbk9iamVjdC5kaWFsb2dfY2FuY2VsLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGljayA6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQodGhpcykuZGlhbG9nKFwiY2xvc2VcIikuZGlhbG9nKFwiZGVzdHJveVwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAuZGlhbG9nKCdvcGVuJylcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIFBsdWdpbkhlbHBlcjtcbn0pKGpRdWVyeSk7XG5cbmV4cG9ydCB7IFBsdWdpbkhlbHBlciB9O1xuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyBzcmMvanMvUGx1Z2luSGVscGVyLmpzIiwiLy8gcmVtb3ZlZCBieSBleHRyYWN0LXRleHQtd2VicGFjay1wbHVnaW5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL3NyYy9zY3NzL2JhY2tlbmQuc2Nzc1xuLy8gbW9kdWxlIGlkID0gM1xuLy8gbW9kdWxlIGNodW5rcyA9IDAiLCIvLyByZW1vdmVkIGJ5IGV4dHJhY3QtdGV4dC13ZWJwYWNrLXBsdWdpblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vc3JjL3Njc3MvZnJvbnRlbmQuc2Nzc1xuLy8gbW9kdWxlIGlkID0gNFxuLy8gbW9kdWxlIGNodW5rcyA9IDAiLCIvLyByZW1vdmVkIGJ5IGV4dHJhY3QtdGV4dC13ZWJwYWNrLXBsdWdpblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vc3JjL3Njc3MvdG9vbHRpcC5zY3NzXG4vLyBtb2R1bGUgaWQgPSA1XG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsIi8vIHJlbW92ZWQgYnkgZXh0cmFjdC10ZXh0LXdlYnBhY2stcGx1Z2luXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9zcmMvc2Nzcy90aGVtZS1vdmVycmlkZS5zY3NzXG4vLyBtb2R1bGUgaWQgPSA2XG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsIi8vIHJlbW92ZWQgYnkgZXh0cmFjdC10ZXh0LXdlYnBhY2stcGx1Z2luXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9zcmMvc2Nzcy9jdXN0b21pemUtaGVhZGluZy1jb250cm9sLnNjc3Ncbi8vIG1vZHVsZSBpZCA9IDdcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUM3REE7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFEQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7Ozs7Ozs7Ozs7QUMvQkE7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQURBO0FBQUE7QUFBQTtBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBUEE7QUFBQTtBQUFBO0FBU0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQURBO0FBR0E7QUFMQTtBQUNBO0FBT0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBOURBO0FBQUE7QUFBQTtBQUNBO0FBaUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQTFFQTtBQUFBO0FBQUE7QUE0RUE7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQURBO0FBR0E7QUFDQTtBQWxGQTtBQUFBO0FBQUE7QUFvRkE7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBeEZBO0FBQUE7QUFBQTtBQTBGQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUE5RkE7QUFBQTtBQUFBO0FBQ0E7QUFpR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRkE7QUFGQTtBQUNBO0FBT0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUpBO0FBQ0E7QUFPQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBeEpBO0FBQUE7QUFBQTtBQUNBO0FBMkpBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFEQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBSEE7QUFLQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQTFCQTtBQWdDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBTEE7QUFRQTtBQUNBO0FBQ0E7QUFDQTtBQUpBO0FBU0E7QUFDQTtBQXJOQTtBQUNBO0FBREE7QUFBQTtBQUNBO0FBdU5BO0FBQ0E7QUFDQTs7Ozs7OztBQzVOQTs7Ozs7O0FDQUE7Ozs7OztBQ0FBOzs7Ozs7QUNBQTs7Ozs7O0FDQUE7OztBIiwic291cmNlUm9vdCI6IiJ9
1
  /*!
2
+ * WooCommerce Variation Swatches v1.0.32
3
  *
4
  * Author: Emran Ahmed ( emran.bd.08@gmail.com )
5
+ * Date: 2018-8-5 20:35:04
6
  * Released under the GPLv3 license.
7
  */
8
  /******/ (function(modules) { // webpackBootstrap
401
 
402
  /***/ })
403
  /******/ ]);
404
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXRzL2pzL2FkbWluLmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vL3dlYnBhY2svYm9vdHN0cmFwIDM1ZWNlNmJmMTY3YjJjZmU2ZTc3Iiwid2VicGFjazovLy9zcmMvanMvYmFja2VuZC5qcyIsIndlYnBhY2s6Ly8vc3JjL2pzL1BsdWdpbkhlbHBlci5qcyIsIndlYnBhY2s6Ly8vLi9zcmMvc2Nzcy9iYWNrZW5kLnNjc3M/YmU2MSIsIndlYnBhY2s6Ly8vLi9zcmMvc2Nzcy9mcm9udGVuZC5zY3NzIiwid2VicGFjazovLy8uL3NyYy9zY3NzL3Rvb2x0aXAuc2NzcyIsIndlYnBhY2s6Ly8vLi9zcmMvc2Nzcy90aGVtZS1vdmVycmlkZS5zY3NzIiwid2VicGFjazovLy8uL3NyYy9zY3NzL2N1c3RvbWl6ZS1oZWFkaW5nLWNvbnRyb2wuc2NzcyJdLCJzb3VyY2VzQ29udGVudCI6WyIgXHQvLyBUaGUgbW9kdWxlIGNhY2hlXG4gXHR2YXIgaW5zdGFsbGVkTW9kdWxlcyA9IHt9O1xuXG4gXHQvLyBUaGUgcmVxdWlyZSBmdW5jdGlvblxuIFx0ZnVuY3Rpb24gX193ZWJwYWNrX3JlcXVpcmVfXyhtb2R1bGVJZCkge1xuXG4gXHRcdC8vIENoZWNrIGlmIG1vZHVsZSBpcyBpbiBjYWNoZVxuIFx0XHRpZihpbnN0YWxsZWRNb2R1bGVzW21vZHVsZUlkXSkge1xuIFx0XHRcdHJldHVybiBpbnN0YWxsZWRNb2R1bGVzW21vZHVsZUlkXS5leHBvcnRzO1xuIFx0XHR9XG4gXHRcdC8vIENyZWF0ZSBhIG5ldyBtb2R1bGUgKGFuZCBwdXQgaXQgaW50byB0aGUgY2FjaGUpXG4gXHRcdHZhciBtb2R1bGUgPSBpbnN0YWxsZWRNb2R1bGVzW21vZHVsZUlkXSA9IHtcbiBcdFx0XHRpOiBtb2R1bGVJZCxcbiBcdFx0XHRsOiBmYWxzZSxcbiBcdFx0XHRleHBvcnRzOiB7fVxuIFx0XHR9O1xuXG4gXHRcdC8vIEV4ZWN1dGUgdGhlIG1vZHVsZSBmdW5jdGlvblxuIFx0XHRtb2R1bGVzW21vZHVsZUlkXS5jYWxsKG1vZHVsZS5leHBvcnRzLCBtb2R1bGUsIG1vZHVsZS5leHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKTtcblxuIFx0XHQvLyBGbGFnIHRoZSBtb2R1bGUgYXMgbG9hZGVkXG4gXHRcdG1vZHVsZS5sID0gdHJ1ZTtcblxuIFx0XHQvLyBSZXR1cm4gdGhlIGV4cG9ydHMgb2YgdGhlIG1vZHVsZVxuIFx0XHRyZXR1cm4gbW9kdWxlLmV4cG9ydHM7XG4gXHR9XG5cblxuIFx0Ly8gZXhwb3NlIHRoZSBtb2R1bGVzIG9iamVjdCAoX193ZWJwYWNrX21vZHVsZXNfXylcbiBcdF9fd2VicGFja19yZXF1aXJlX18ubSA9IG1vZHVsZXM7XG5cbiBcdC8vIGV4cG9zZSB0aGUgbW9kdWxlIGNhY2hlXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLmMgPSBpbnN0YWxsZWRNb2R1bGVzO1xuXG4gXHQvLyBkZWZpbmUgZ2V0dGVyIGZ1bmN0aW9uIGZvciBoYXJtb255IGV4cG9ydHNcbiBcdF9fd2VicGFja19yZXF1aXJlX18uZCA9IGZ1bmN0aW9uKGV4cG9ydHMsIG5hbWUsIGdldHRlcikge1xuIFx0XHRpZighX193ZWJwYWNrX3JlcXVpcmVfXy5vKGV4cG9ydHMsIG5hbWUpKSB7XG4gXHRcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIG5hbWUsIHtcbiBcdFx0XHRcdGNvbmZpZ3VyYWJsZTogZmFsc2UsXG4gXHRcdFx0XHRlbnVtZXJhYmxlOiB0cnVlLFxuIFx0XHRcdFx0Z2V0OiBnZXR0ZXJcbiBcdFx0XHR9KTtcbiBcdFx0fVxuIFx0fTtcblxuIFx0Ly8gZ2V0RGVmYXVsdEV4cG9ydCBmdW5jdGlvbiBmb3IgY29tcGF0aWJpbGl0eSB3aXRoIG5vbi1oYXJtb255IG1vZHVsZXNcbiBcdF9fd2VicGFja19yZXF1aXJlX18ubiA9IGZ1bmN0aW9uKG1vZHVsZSkge1xuIFx0XHR2YXIgZ2V0dGVyID0gbW9kdWxlICYmIG1vZHVsZS5fX2VzTW9kdWxlID9cbiBcdFx0XHRmdW5jdGlvbiBnZXREZWZhdWx0KCkgeyByZXR1cm4gbW9kdWxlWydkZWZhdWx0J107IH0gOlxuIFx0XHRcdGZ1bmN0aW9uIGdldE1vZHVsZUV4cG9ydHMoKSB7IHJldHVybiBtb2R1bGU7IH07XG4gXHRcdF9fd2VicGFja19yZXF1aXJlX18uZChnZXR0ZXIsICdhJywgZ2V0dGVyKTtcbiBcdFx0cmV0dXJuIGdldHRlcjtcbiBcdH07XG5cbiBcdC8vIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbFxuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5vID0gZnVuY3Rpb24ob2JqZWN0LCBwcm9wZXJ0eSkgeyByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iamVjdCwgcHJvcGVydHkpOyB9O1xuXG4gXHQvLyBfX3dlYnBhY2tfcHVibGljX3BhdGhfX1xuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5wID0gXCJcIjtcblxuIFx0Ly8gTG9hZCBlbnRyeSBtb2R1bGUgYW5kIHJldHVybiBleHBvcnRzXG4gXHRyZXR1cm4gX193ZWJwYWNrX3JlcXVpcmVfXyhfX3dlYnBhY2tfcmVxdWlyZV9fLnMgPSAwKTtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyB3ZWJwYWNrL2Jvb3RzdHJhcCAzNWVjZTZiZjE2N2IyY2ZlNmU3NyIsImpRdWVyeSgkID0+IHtcbiAgICBpbXBvcnQoJy4vUGx1Z2luSGVscGVyJykudGhlbigoe1BsdWdpbkhlbHBlcn0pID0+IHtcbiAgICAgICAgUGx1Z2luSGVscGVyLlNlbGVjdFdvbygpO1xuICAgICAgICBQbHVnaW5IZWxwZXIuQ29sb3JQaWNrZXIoKTtcbiAgICAgICAgUGx1Z2luSGVscGVyLkZpZWxkRGVwZW5kZW5jeSgpO1xuICAgICAgICBQbHVnaW5IZWxwZXIuSW1hZ2VVcGxvYWRlcigpO1xuICAgICAgICBQbHVnaW5IZWxwZXIuQXR0cmlidXRlRGlhbG9nKCk7XG4gICAgICAgICQoZG9jdW1lbnQuYm9keSkub24oJ3dvb2NvbW1lcmNlX2FkZGVkX2F0dHJpYnV0ZScsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIFBsdWdpbkhlbHBlci5TZWxlY3RXb28oKTtcbiAgICAgICAgICAgIFBsdWdpbkhlbHBlci5Db2xvclBpY2tlcigpO1xuICAgICAgICAgICAgUGx1Z2luSGVscGVyLkltYWdlVXBsb2FkZXIoKTtcbiAgICAgICAgICAgIFBsdWdpbkhlbHBlci5BdHRyaWJ1dGVEaWFsb2coKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgJChkb2N1bWVudC5ib2R5KS5vbignd3ZzX3Byb19wcm9kdWN0X3N3YXRjaGVzX3ZhcmlhdGlvbl9sb2FkZWQnLCAoKSA9PiB7XG4gICAgICAgICAgICBQbHVnaW5IZWxwZXIuQ29sb3JQaWNrZXIoKTtcbiAgICAgICAgICAgIFBsdWdpbkhlbHBlci5JbWFnZVVwbG9hZGVyKCk7XG4gICAgICAgIH0pXG5cbiAgICAgICAgJCgnLmd3cC1saXZlLWZlZWQtY2xvc2UnKS5vbignY2xpY2snLCBmdW5jdGlvbiAoZSkge1xuICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgbGV0IGlkID0gJCh0aGlzKS5kYXRhKCdmZWVkX2lkJyk7XG4gICAgICAgICAgICB3cC5hamF4LnNlbmQoJ2d3cF9saXZlX2ZlZWRfY2xvc2UnLCB7XG4gICAgICAgICAgICAgICAgZGF0YSA6IHtpZH1cbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAkKHRoaXMpLnBhcmVudCgpLmZhZGVPdXQoJ2Zhc3QnLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgJCh0aGlzKS5yZW1vdmUoKVxuICAgICAgICAgICAgfSlcbiAgICAgICAgfSk7XG4gICAgfSk7XG59KTsgIC8vIGVuZCBvZiBqcXVlcnkgbWFpbiB3cmFwcGVyXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIHNyYy9qcy9iYWNrZW5kLmpzIiwiLypnbG9iYWwgV1ZTUGx1Z2luT2JqZWN0LCB3cCwgd29vY29tbWVyY2VfYWRtaW5fbWV0YV9ib3hlcyovXG5cbmNvbnN0IFBsdWdpbkhlbHBlciA9ICgoJCkgPT4ge1xuICAgIGNsYXNzIFBsdWdpbkhlbHBlciB7XG5cbiAgICAgICAgc3RhdGljIEltYWdlVXBsb2FkZXIoKSB7XG4gICAgICAgICAgICAkKGRvY3VtZW50KS5vZmYoJ2NsaWNrJywgJ2J1dHRvbi53dnNfdXBsb2FkX2ltYWdlX2J1dHRvbicpO1xuICAgICAgICAgICAgJChkb2N1bWVudCkub24oJ2NsaWNrJywgJ2J1dHRvbi53dnNfdXBsb2FkX2ltYWdlX2J1dHRvbicsIHRoaXMuQWRkSW1hZ2UpO1xuICAgICAgICAgICAgJChkb2N1bWVudCkub24oJ2NsaWNrJywgJ2J1dHRvbi53dnNfcmVtb3ZlX2ltYWdlX2J1dHRvbicsIHRoaXMuUmVtb3ZlSW1hZ2UpO1xuICAgICAgICB9XG5cbiAgICAgICAgc3RhdGljIEFkZEltYWdlKGV2ZW50KSB7XG5cbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcblxuICAgICAgICAgICAgbGV0IGZpbGVfZnJhbWU7XG5cbiAgICAgICAgICAgIGlmICh0eXBlb2Ygd3AgIT09ICd1bmRlZmluZWQnICYmIHdwLm1lZGlhICYmIHdwLm1lZGlhLmVkaXRvcikge1xuXG4gICAgICAgICAgICAgICAgLy8gSWYgdGhlIG1lZGlhIGZyYW1lIGFscmVhZHkgZXhpc3RzLCByZW9wZW4gaXQuXG4gICAgICAgICAgICAgICAgaWYgKGZpbGVfZnJhbWUpIHtcbiAgICAgICAgICAgICAgICAgICAgZmlsZV9mcmFtZS5vcGVuKCk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAvLyBDcmVhdGUgdGhlIG1lZGlhIGZyYW1lLlxuICAgICAgICAgICAgICAgIGZpbGVfZnJhbWUgPSB3cC5tZWRpYS5mcmFtZXMuc2VsZWN0X2ltYWdlID0gd3AubWVkaWEoe1xuICAgICAgICAgICAgICAgICAgICB0aXRsZSAgICA6IFdWU1BsdWdpbk9iamVjdC5tZWRpYV90aXRsZSxcbiAgICAgICAgICAgICAgICAgICAgYnV0dG9uICAgOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0ZXh0IDogV1ZTUGx1Z2luT2JqZWN0LmJ1dHRvbl90aXRsZVxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBtdWx0aXBsZSA6IGZhbHNlLFxuICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgLy8gV2hlbiBhbiBpbWFnZSBpcyBzZWxlY3RlZCwgcnVuIGEgY2FsbGJhY2suXG4gICAgICAgICAgICAgICAgZmlsZV9mcmFtZS5vbignc2VsZWN0JywgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBsZXQgYXR0YWNobWVudCA9IGZpbGVfZnJhbWUuc3RhdGUoKS5nZXQoJ3NlbGVjdGlvbicpLmZpcnN0KCkudG9KU09OKCk7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKCQudHJpbShhdHRhY2htZW50LmlkKSAhPT0gJycpIHtcblxuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHVybCA9ICh0eXBlb2YoYXR0YWNobWVudC5zaXplcy50aHVtYm5haWwpID09PSAndW5kZWZpbmVkJykgPyBhdHRhY2htZW50LnNpemVzLmZ1bGwudXJsIDogYXR0YWNobWVudC5zaXplcy50aHVtYm5haWwudXJsO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAkKHRoaXMpLnByZXYoKS52YWwoYXR0YWNobWVudC5pZCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAkKHRoaXMpLmNsb3Nlc3QoJy5tZXRhLWltYWdlLWZpZWxkLXdyYXBwZXInKS5maW5kKCdpbWcnKS5hdHRyKCdzcmMnLCB1cmwpO1xuICAgICAgICAgICAgICAgICAgICAgICAgJCh0aGlzKS5uZXh0KCkuc2hvdygpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIC8vZmlsZV9mcmFtZS5jbG9zZSgpO1xuICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgLy8gV2hlbiBvcGVuIHNlbGVjdCBzZWxlY3RlZFxuICAgICAgICAgICAgICAgIGZpbGVfZnJhbWUub24oJ29wZW4nLCAoKSA9PiB7XG5cbiAgICAgICAgICAgICAgICAgICAgLy8gR3JhYiBvdXIgYXR0YWNobWVudCBzZWxlY3Rpb24gYW5kIGNvbnN0cnVjdCBhIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsLlxuICAgICAgICAgICAgICAgICAgICBsZXQgc2VsZWN0aW9uICA9IGZpbGVfZnJhbWUuc3RhdGUoKS5nZXQoJ3NlbGVjdGlvbicpO1xuICAgICAgICAgICAgICAgICAgICBsZXQgY3VycmVudCAgICA9ICQodGhpcykucHJldigpLnZhbCgpO1xuICAgICAgICAgICAgICAgICAgICBsZXQgYXR0YWNobWVudCA9IHdwLm1lZGlhLmF0dGFjaG1lbnQoY3VycmVudCk7XG4gICAgICAgICAgICAgICAgICAgIGF0dGFjaG1lbnQuZmV0Y2goKTtcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0aW9uLmFkZChhdHRhY2htZW50ID8gW2F0dGFjaG1lbnRdIDogW10pO1xuICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgLy8gRmluYWxseSwgb3BlbiB0aGUgbW9kYWwuXG4gICAgICAgICAgICAgICAgZmlsZV9mcmFtZS5vcGVuKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBzdGF0aWMgUmVtb3ZlSW1hZ2UoZXZlbnQpIHtcblxuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuXG4gICAgICAgICAgICBsZXQgcGxhY2Vob2xkZXIgPSAkKHRoaXMpLmNsb3Nlc3QoJy5tZXRhLWltYWdlLWZpZWxkLXdyYXBwZXInKS5maW5kKCdpbWcnKS5kYXRhKCdwbGFjZWhvbGRlcicpO1xuICAgICAgICAgICAgJCh0aGlzKS5jbG9zZXN0KCcubWV0YS1pbWFnZS1maWVsZC13cmFwcGVyJykuZmluZCgnaW1nJykuYXR0cignc3JjJywgcGxhY2Vob2xkZXIpO1xuICAgICAgICAgICAgJCh0aGlzKS5wcmV2KCkucHJldigpLnZhbCgnJyk7XG4gICAgICAgICAgICAkKHRoaXMpLmhpZGUoKTtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHN0YXRpYyBTZWxlY3RXb28oc2VsZWN0b3IgPSAnc2VsZWN0Lnd2cy1zZWxlY3R3b28nKSB7XG4gICAgICAgICAgICBpZiAoJCgpLnNlbGVjdFdvbykge1xuICAgICAgICAgICAgICAgICQoc2VsZWN0b3IpLnNlbGVjdFdvbyh7XG4gICAgICAgICAgICAgICAgICAgIGFsbG93Q2xlYXIgOiB0cnVlXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBzdGF0aWMgQ29sb3JQaWNrZXIoc2VsZWN0b3IgPSAnaW5wdXQud3ZzLWNvbG9yLXBpY2tlcicpIHtcbiAgICAgICAgICAgIGlmICgkKCkud3BDb2xvclBpY2tlcikge1xuICAgICAgICAgICAgICAgICQoc2VsZWN0b3IpLndwQ29sb3JQaWNrZXIoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHN0YXRpYyBGaWVsZERlcGVuZGVuY3koc2VsZWN0b3IgPSAnW2RhdGEtZGVwZW5kc10nKSB7XG4gICAgICAgICAgICBpZiAoJCgpLkZvcm1GaWVsZERlcGVuZGVuY3kpIHtcbiAgICAgICAgICAgICAgICAkKHNlbGVjdG9yKS5Gb3JtRmllbGREZXBlbmRlbmN5KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBzdGF0aWMgc2F2aW5nRGlhbG9nKCR3cmFwcGVyLCAkZGlhbG9nLCB0YXhvbm9teSkge1xuXG4gICAgICAgICAgICBsZXQgZGF0YSA9IHt9O1xuICAgICAgICAgICAgbGV0IHRlcm0gPSAnJztcblxuICAgICAgICAgICAgLy8gQFRPRE86IFdlIHNob3VsZCB1c2UgZm9ybSBkYXRhLCBiZWNhdXNlIHdlIGhhdmUgdG8gcGljayBhcnJheSBiYXNlZCBkYXRhIGFsc28gOilcblxuICAgICAgICAgICAgJGRpYWxvZy5maW5kKGBpbnB1dCwgc2VsZWN0YCkuZWFjaChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgbGV0IGtleSAgID0gJCh0aGlzKS5hdHRyKCduYW1lJyk7XG4gICAgICAgICAgICAgICAgbGV0IHZhbHVlID0gJCh0aGlzKS52YWwoKTtcbiAgICAgICAgICAgICAgICBpZiAoa2V5KSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChrZXkgPT09ICd0YWdfbmFtZScpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRlcm0gPSB2YWx1ZVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGF0YVtrZXldID0gdmFsdWVcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAkKHRoaXMpLnZhbCgnJylcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgaWYgKHRlcm0pIHtcbiAgICAgICAgICAgICAgICAkKCcucHJvZHVjdF9hdHRyaWJ1dGVzJykuYmxvY2soe1xuICAgICAgICAgICAgICAgICAgICBtZXNzYWdlICAgIDogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgb3ZlcmxheUNTUyA6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQgOiAnI2ZmZicsXG4gICAgICAgICAgICAgICAgICAgICAgICBvcGFjaXR5ICAgIDogMC42XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgIGxldCBhamF4X2RhdGEgPSB7XG4gICAgICAgICAgICAgICAgICAgIGFjdGlvbiAgIDogJ3dvb2NvbW1lcmNlX2FkZF9uZXdfYXR0cmlidXRlJyxcbiAgICAgICAgICAgICAgICAgICAgdGF4b25vbXkgOiB0YXhvbm9teSxcbiAgICAgICAgICAgICAgICAgICAgdGVybSAgICAgOiB0ZXJtLFxuICAgICAgICAgICAgICAgICAgICBzZWN1cml0eSA6IHdvb2NvbW1lcmNlX2FkbWluX21ldGFfYm94ZXMuYWRkX2F0dHJpYnV0ZV9ub25jZSxcbiAgICAgICAgICAgICAgICAgICAgLi4uZGF0YVxuICAgICAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgICAgICAkLnBvc3Qod29vY29tbWVyY2VfYWRtaW5fbWV0YV9ib3hlcy5hamF4X3VybCwgYWpheF9kYXRhLCBmdW5jdGlvbiAocmVzcG9uc2UpIHtcblxuICAgICAgICAgICAgICAgICAgICBpZiAocmVzcG9uc2UuZXJyb3IpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIEVycm9yLlxuICAgICAgICAgICAgICAgICAgICAgICAgd2luZG93LmFsZXJ0KHJlc3BvbnNlLmVycm9yKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChyZXNwb25zZS5zbHVnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBTdWNjZXNzLlxuICAgICAgICAgICAgICAgICAgICAgICAgJHdyYXBwZXIuZmluZCgnc2VsZWN0LmF0dHJpYnV0ZV92YWx1ZXMnKS5hcHBlbmQoJzxvcHRpb24gdmFsdWU9XCInICsgcmVzcG9uc2UudGVybV9pZCArICdcIiBzZWxlY3RlZD1cInNlbGVjdGVkXCI+JyArIHJlc3BvbnNlLm5hbWUgKyAnPC9vcHRpb24+Jyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAkd3JhcHBlci5maW5kKCdzZWxlY3QuYXR0cmlidXRlX3ZhbHVlcycpLmNoYW5nZSgpO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJCgnLnByb2R1Y3RfYXR0cmlidXRlcycpLnVuYmxvY2soKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICQoJy5wcm9kdWN0X2F0dHJpYnV0ZXMnKS51bmJsb2NrKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBzdGF0aWMgQXR0cmlidXRlRGlhbG9nKCkge1xuXG4gICAgICAgICAgICBsZXQgc2VsZiA9IHRoaXM7XG4gICAgICAgICAgICAkKCcucHJvZHVjdF9hdHRyaWJ1dGVzJykub24oJ2NsaWNrJywgJ2J1dHRvbi53dnNfYWRkX25ld19hdHRyaWJ1dGUnLCBmdW5jdGlvbiAoZXZlbnQpIHtcblxuICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICAgICAgICAgICAgICBsZXQgJHdyYXBwZXIgID0gJCh0aGlzKS5jbG9zZXN0KCcud29vY29tbWVyY2VfYXR0cmlidXRlJyk7XG4gICAgICAgICAgICAgICAgbGV0IGF0dHJpYnV0ZSA9ICR3cmFwcGVyLmRhdGEoJ3RheG9ub215Jyk7XG4gICAgICAgICAgICAgICAgbGV0IHRpdGxlICAgICA9ICQodGhpcykuZGF0YSgnZGlhbG9nX3RpdGxlJyk7XG5cbiAgICAgICAgICAgICAgICAkKCcud3ZzLWF0dHJpYnV0ZS1kaWFsb2ctZm9yLScgKyBhdHRyaWJ1dGUpLmRpYWxvZyh7XG4gICAgICAgICAgICAgICAgICAgIHRpdGxlICAgICAgICAgOiAnJyxcbiAgICAgICAgICAgICAgICAgICAgZGlhbG9nQ2xhc3MgICA6ICd3cC1kaWFsb2cgd3ZzLWF0dHJpYnV0ZS1kaWFsb2cnLFxuICAgICAgICAgICAgICAgICAgICBjbGFzc2VzICAgICAgIDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJ1aS1kaWFsb2dcIiA6IFwid3AtZGlhbG9nIHd2cy1hdHRyaWJ1dGUtZGlhbG9nXCJcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgYXV0b09wZW4gICAgICA6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICBkcmFnZ2FibGUgICAgIDogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgd2lkdGggICAgICAgICA6ICdhdXRvJyxcbiAgICAgICAgICAgICAgICAgICAgbW9kYWwgICAgICAgICA6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIHJlc2l6YWJsZSAgICAgOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgY2xvc2VPbkVzY2FwZSA6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uICAgICAgOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBteSA6IFwiY2VudGVyXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBhdCA6IFwiY2VudGVyXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBvZiA6IHdpbmRvd1xuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBvcGVuICAgICAgICAgIDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gY2xvc2UgZGlhbG9nIGJ5IGNsaWNraW5nIHRoZSBvdmVybGF5IGJlaGluZCBpdFxuICAgICAgICAgICAgICAgICAgICAgICAgJCgnLnVpLXdpZGdldC1vdmVybGF5JykuYmluZCgnY2xpY2snLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJCgnI2F0dHJpYnV0ZS1kaWFsb2cnKS5kaWFsb2coJ2Nsb3NlJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBjcmVhdGUgICAgICAgIDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gc3R5bGUgZml4IGZvciBXb3JkUHJlc3MgYWRtaW5cbiAgICAgICAgICAgICAgICAgICAgICAgIC8vICQoJy51aS1kaWFsb2ctdGl0bGViYXItY2xvc2UnKS5hZGRDbGFzcygndWktYnV0dG9uJyk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAuZGlhbG9nKFwib3B0aW9uXCIsIFwidGl0bGVcIiwgdGl0bGUpXG4gICAgICAgICAgICAgICAgICAgIC5kaWFsb2coXCJvcHRpb25cIiwgXCJidXR0b25zXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0ICA6IFdWU1BsdWdpbk9iamVjdC5kaWFsb2dfc2F2ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xpY2sgOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNhdmluZ0RpYWxvZygkd3JhcHBlciwgJCh0aGlzKSwgYXR0cmlidXRlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQodGhpcykuZGlhbG9nKFwiY2xvc2VcIikuZGlhbG9nKFwiZGVzdHJveVwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0ICA6IFdWU1BsdWdpbk9iamVjdC5kaWFsb2dfY2FuY2VsLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGljayA6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQodGhpcykuZGlhbG9nKFwiY2xvc2VcIikuZGlhbG9nKFwiZGVzdHJveVwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAuZGlhbG9nKCdvcGVuJylcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIFBsdWdpbkhlbHBlcjtcbn0pKGpRdWVyeSk7XG5cbmV4cG9ydCB7IFBsdWdpbkhlbHBlciB9O1xuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyBzcmMvanMvUGx1Z2luSGVscGVyLmpzIiwiLy8gcmVtb3ZlZCBieSBleHRyYWN0LXRleHQtd2VicGFjay1wbHVnaW5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL3NyYy9zY3NzL2JhY2tlbmQuc2Nzc1xuLy8gbW9kdWxlIGlkID0gM1xuLy8gbW9kdWxlIGNodW5rcyA9IDAiLCIvLyByZW1vdmVkIGJ5IGV4dHJhY3QtdGV4dC13ZWJwYWNrLXBsdWdpblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vc3JjL3Njc3MvZnJvbnRlbmQuc2Nzc1xuLy8gbW9kdWxlIGlkID0gNFxuLy8gbW9kdWxlIGNodW5rcyA9IDAiLCIvLyByZW1vdmVkIGJ5IGV4dHJhY3QtdGV4dC13ZWJwYWNrLXBsdWdpblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vc3JjL3Njc3MvdG9vbHRpcC5zY3NzXG4vLyBtb2R1bGUgaWQgPSA1XG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsIi8vIHJlbW92ZWQgYnkgZXh0cmFjdC10ZXh0LXdlYnBhY2stcGx1Z2luXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9zcmMvc2Nzcy90aGVtZS1vdmVycmlkZS5zY3NzXG4vLyBtb2R1bGUgaWQgPSA2XG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsIi8vIHJlbW92ZWQgYnkgZXh0cmFjdC10ZXh0LXdlYnBhY2stcGx1Z2luXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9zcmMvc2Nzcy9jdXN0b21pemUtaGVhZGluZy1jb250cm9sLnNjc3Ncbi8vIG1vZHVsZSBpZCA9IDdcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUM3REE7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFEQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7Ozs7Ozs7Ozs7QUMvQkE7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQURBO0FBQUE7QUFBQTtBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBUEE7QUFBQTtBQUFBO0FBU0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQURBO0FBR0E7QUFMQTtBQUNBO0FBT0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBOURBO0FBQUE7QUFBQTtBQUNBO0FBaUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQTFFQTtBQUFBO0FBQUE7QUE0RUE7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQURBO0FBR0E7QUFDQTtBQWxGQTtBQUFBO0FBQUE7QUFvRkE7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBeEZBO0FBQUE7QUFBQTtBQTBGQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUE5RkE7QUFBQTtBQUFBO0FBQ0E7QUFpR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRkE7QUFGQTtBQUNBO0FBT0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUpBO0FBQ0E7QUFPQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBeEpBO0FBQUE7QUFBQTtBQUNBO0FBMkpBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFEQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBSEE7QUFLQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQTFCQTtBQWdDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBTEE7QUFRQTtBQUNBO0FBQ0E7QUFDQTtBQUpBO0FBU0E7QUFDQTtBQXJOQTtBQUNBO0FBREE7QUFBQTtBQUNBO0FBdU5BO0FBQ0E7QUFDQTs7Ozs7OztBQzVOQTs7Ozs7O0FDQUE7Ozs7OztBQ0FBOzs7Ozs7QUNBQTs7Ozs7O0FDQUE7OztBIiwic291cmNlUm9vdCI6IiJ9
assets/js/frontend.js CHANGED
@@ -1,8 +1,8 @@
1
  /*!
2
- * WooCommerce Variation Swatches v1.0.31
3
  *
4
  * Author: Emran Ahmed ( emran.bd.08@gmail.com )
5
- * Date: 2018-7-16 20:51:28
6
  * Released under the GPLv3 license.
7
  */
8
  /******/ (function(modules) { // webpackBootstrap
@@ -116,8 +116,9 @@ var WooVariationSwatches = function ($) {
116
  _createClass(WooVariationSwatches, [{
117
  key: 'init',
118
  value: function init(is_ajax, hidden_behaviour) {
119
- var _this2 = this;
120
 
 
121
  this._element.find('ul.variable-items-wrapper').each(function (i, el) {
122
 
123
  var select = $(this).siblings('select.woo-variation-raw-select');
@@ -147,6 +148,7 @@ var WooVariationSwatches = function ($) {
147
  }
148
 
149
  $(this).trigger('focus'); // Mobile tooltip
 
150
  });
151
 
152
  $(this).on('touchstart click', 'li.selected:not(.radio-variable-item)', function (e) {
@@ -162,6 +164,8 @@ var WooVariationSwatches = function ($) {
162
  }
163
 
164
  $(this).trigger('focus'); // Mobile tooltip
 
 
165
  });
166
 
167
  // RADIO
@@ -172,20 +176,22 @@ var WooVariationSwatches = function ($) {
172
  });
173
 
174
  $(this).on('change', 'input.wvs-radio-variable-item:radio', function (e) {
175
- var _this = this;
176
 
177
  e.preventDefault();
178
  e.stopPropagation();
179
 
180
  var value = $(this).val();
181
 
182
- if ($(this).parent('.radio-variable-item').hasClass('selected')) {
183
  select.val('').trigger('change');
184
  _.delay(function () {
185
- $(_this).prop('checked', false);
 
186
  }, 1);
187
  } else {
188
  select.val(value).trigger('change');
 
189
  }
190
 
191
  select.trigger('click');
@@ -207,6 +213,8 @@ var WooVariationSwatches = function ($) {
207
  }
208
 
209
  $(this).trigger('focus'); // Mobile tooltip
 
 
210
  });
211
 
212
  // Radio
@@ -225,13 +233,14 @@ var WooVariationSwatches = function ($) {
225
 
226
  // Radio
227
  $(this).parent('li.radio-variable-item').removeClass('selected disabled').addClass('selected');
 
228
  });
229
  }
230
  });
231
 
232
  _.delay(function () {
233
- _this2._element.trigger('woo_variation_swatches_init', [_this2, _this2.product_variations]);
234
- $(document).trigger('woo_variation_swatches_loaded', [_this2._element, _this2.product_variations]);
235
  }, 2);
236
  }
237
  }, {
@@ -241,16 +250,15 @@ var WooVariationSwatches = function ($) {
241
  this._element.on('woo_variation_swatches_init', function (event, object, product_variations) {
242
 
243
  object._generated = product_variations.reduce(function (obj, variation) {
244
- Object.keys(variation.attributes).map(function (attribute_name) {
245
 
246
- if (!obj[attribute_name]) {
247
- obj[attribute_name] = [];
248
- }
249
 
250
- if (variation.attributes[attribute_name]) {
251
- obj[attribute_name].push(variation.attributes[attribute_name]);
252
- }
253
- });
 
254
 
255
  return obj;
256
  }, {});
@@ -283,6 +291,7 @@ var WooVariationSwatches = function ($) {
283
  }, {
284
  key: 'reset',
285
  value: function reset(is_ajax, hidden_behaviour) {
 
286
  this._element.on('reset_data', function (event) {
287
  $(this).find('ul.variable-items-wrapper').each(function () {
288
  var li = $(this).find('li');
@@ -300,6 +309,8 @@ var WooVariationSwatches = function ($) {
300
  // $(this).find('input.wvs-radio-variable-item:radio').prop('checked', false);
301
  }
302
  }
 
 
303
  });
304
  });
305
  });
@@ -310,6 +321,8 @@ var WooVariationSwatches = function ($) {
310
  this._element.on('woocommerce_variation_has_changed', function (event) {
311
  if (is_ajax) {
312
  $(this).find('ul.variable-items-wrapper').each(function () {
 
 
313
  var selected = '',
314
  options = $(this).siblings('select.woo-variation-raw-select').find('option'),
315
  current = $(this).siblings('select.woo-variation-raw-select').find('option:selected'),
@@ -345,6 +358,9 @@ var WooVariationSwatches = function ($) {
345
  }
346
  }
347
  });
 
 
 
348
  }, 1);
349
  });
350
  }
@@ -353,6 +369,7 @@ var WooVariationSwatches = function ($) {
353
  // WithOut Ajax Update
354
  this._element.on('woocommerce_update_variation_values', function (event) {
355
  $(this).find('ul.variable-items-wrapper').each(function () {
 
356
 
357
  var selected = '',
358
  options = $(this).siblings('select.woo-variation-raw-select').find('option'),
@@ -403,6 +420,9 @@ var WooVariationSwatches = function ($) {
403
  }
404
  }
405
  });
 
 
 
406
  }, 1);
407
  });
408
  });
@@ -471,4 +491,4 @@ jQuery(function ($) {
471
  /***/ })
472
 
473
  /******/ });
474
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXRzL2pzL2Zyb250ZW5kLmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vL3dlYnBhY2svYm9vdHN0cmFwIGJmMmI2N2M0ZThjOGIzYzBiNmQxIiwid2VicGFjazovLy9zcmMvanMvV29vVmFyaWF0aW9uU3dhdGNoZXMuanMiLCJ3ZWJwYWNrOi8vL3NyYy9qcy9mcm9udGVuZC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIgXHQvLyBUaGUgbW9kdWxlIGNhY2hlXG4gXHR2YXIgaW5zdGFsbGVkTW9kdWxlcyA9IHt9O1xuXG4gXHQvLyBUaGUgcmVxdWlyZSBmdW5jdGlvblxuIFx0ZnVuY3Rpb24gX193ZWJwYWNrX3JlcXVpcmVfXyhtb2R1bGVJZCkge1xuXG4gXHRcdC8vIENoZWNrIGlmIG1vZHVsZSBpcyBpbiBjYWNoZVxuIFx0XHRpZihpbnN0YWxsZWRNb2R1bGVzW21vZHVsZUlkXSkge1xuIFx0XHRcdHJldHVybiBpbnN0YWxsZWRNb2R1bGVzW21vZHVsZUlkXS5leHBvcnRzO1xuIFx0XHR9XG4gXHRcdC8vIENyZWF0ZSBhIG5ldyBtb2R1bGUgKGFuZCBwdXQgaXQgaW50byB0aGUgY2FjaGUpXG4gXHRcdHZhciBtb2R1bGUgPSBpbnN0YWxsZWRNb2R1bGVzW21vZHVsZUlkXSA9IHtcbiBcdFx0XHRpOiBtb2R1bGVJZCxcbiBcdFx0XHRsOiBmYWxzZSxcbiBcdFx0XHRleHBvcnRzOiB7fVxuIFx0XHR9O1xuXG4gXHRcdC8vIEV4ZWN1dGUgdGhlIG1vZHVsZSBmdW5jdGlvblxuIFx0XHRtb2R1bGVzW21vZHVsZUlkXS5jYWxsKG1vZHVsZS5leHBvcnRzLCBtb2R1bGUsIG1vZHVsZS5leHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKTtcblxuIFx0XHQvLyBGbGFnIHRoZSBtb2R1bGUgYXMgbG9hZGVkXG4gXHRcdG1vZHVsZS5sID0gdHJ1ZTtcblxuIFx0XHQvLyBSZXR1cm4gdGhlIGV4cG9ydHMgb2YgdGhlIG1vZHVsZVxuIFx0XHRyZXR1cm4gbW9kdWxlLmV4cG9ydHM7XG4gXHR9XG5cblxuIFx0Ly8gZXhwb3NlIHRoZSBtb2R1bGVzIG9iamVjdCAoX193ZWJwYWNrX21vZHVsZXNfXylcbiBcdF9fd2VicGFja19yZXF1aXJlX18ubSA9IG1vZHVsZXM7XG5cbiBcdC8vIGV4cG9zZSB0aGUgbW9kdWxlIGNhY2hlXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLmMgPSBpbnN0YWxsZWRNb2R1bGVzO1xuXG4gXHQvLyBkZWZpbmUgZ2V0dGVyIGZ1bmN0aW9uIGZvciBoYXJtb255IGV4cG9ydHNcbiBcdF9fd2VicGFja19yZXF1aXJlX18uZCA9IGZ1bmN0aW9uKGV4cG9ydHMsIG5hbWUsIGdldHRlcikge1xuIFx0XHRpZighX193ZWJwYWNrX3JlcXVpcmVfXy5vKGV4cG9ydHMsIG5hbWUpKSB7XG4gXHRcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIG5hbWUsIHtcbiBcdFx0XHRcdGNvbmZpZ3VyYWJsZTogZmFsc2UsXG4gXHRcdFx0XHRlbnVtZXJhYmxlOiB0cnVlLFxuIFx0XHRcdFx0Z2V0OiBnZXR0ZXJcbiBcdFx0XHR9KTtcbiBcdFx0fVxuIFx0fTtcblxuIFx0Ly8gZ2V0RGVmYXVsdEV4cG9ydCBmdW5jdGlvbiBmb3IgY29tcGF0aWJpbGl0eSB3aXRoIG5vbi1oYXJtb255IG1vZHVsZXNcbiBcdF9fd2VicGFja19yZXF1aXJlX18ubiA9IGZ1bmN0aW9uKG1vZHVsZSkge1xuIFx0XHR2YXIgZ2V0dGVyID0gbW9kdWxlICYmIG1vZHVsZS5fX2VzTW9kdWxlID9cbiBcdFx0XHRmdW5jdGlvbiBnZXREZWZhdWx0KCkgeyByZXR1cm4gbW9kdWxlWydkZWZhdWx0J107IH0gOlxuIFx0XHRcdGZ1bmN0aW9uIGdldE1vZHVsZUV4cG9ydHMoKSB7IHJldHVybiBtb2R1bGU7IH07XG4gXHRcdF9fd2VicGFja19yZXF1aXJlX18uZChnZXR0ZXIsICdhJywgZ2V0dGVyKTtcbiBcdFx0cmV0dXJuIGdldHRlcjtcbiBcdH07XG5cbiBcdC8vIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbFxuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5vID0gZnVuY3Rpb24ob2JqZWN0LCBwcm9wZXJ0eSkgeyByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iamVjdCwgcHJvcGVydHkpOyB9O1xuXG4gXHQvLyBfX3dlYnBhY2tfcHVibGljX3BhdGhfX1xuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5wID0gXCJcIjtcblxuIFx0Ly8gTG9hZCBlbnRyeSBtb2R1bGUgYW5kIHJldHVybiBleHBvcnRzXG4gXHRyZXR1cm4gX193ZWJwYWNrX3JlcXVpcmVfXyhfX3dlYnBhY2tfcmVxdWlyZV9fLnMgPSA4KTtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyB3ZWJwYWNrL2Jvb3RzdHJhcCBiZjJiNjdjNGU4YzhiM2MwYjZkMSIsIi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIFdvb0NvbW1lcmNlIFZhcmlhdGlvbiBDaGFuZ2Vcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuY29uc3QgV29vVmFyaWF0aW9uU3dhdGNoZXMgPSAoKCQpID0+IHtcblxuICAgIGNvbnN0IERlZmF1bHQgPSB7fTtcblxuICAgIGNsYXNzIFdvb1ZhcmlhdGlvblN3YXRjaGVzIHtcblxuICAgICAgICBjb25zdHJ1Y3RvcihlbGVtZW50LCBjb25maWcpIHtcblxuICAgICAgICAgICAgLy8gQXNzaWduXG4gICAgICAgICAgICB0aGlzLl9lbGVtZW50ICAgICAgICAgICA9ICQoZWxlbWVudCk7XG4gICAgICAgICAgICB0aGlzLl9jb25maWcgICAgICAgICAgICA9ICQuZXh0ZW5kKHt9LCBEZWZhdWx0LCBjb25maWcpO1xuICAgICAgICAgICAgdGhpcy5fZ2VuZXJhdGVkICAgICAgICAgPSB7fTtcbiAgICAgICAgICAgIHRoaXMucHJvZHVjdF92YXJpYXRpb25zID0gdGhpcy5fZWxlbWVudC5kYXRhKCdwcm9kdWN0X3ZhcmlhdGlvbnMnKTtcbiAgICAgICAgICAgIHRoaXMuaXNfYWpheF92YXJpYXRpb24gID0gIXRoaXMucHJvZHVjdF92YXJpYXRpb25zO1xuICAgICAgICAgICAgdGhpcy5wcm9kdWN0X2lkICAgICAgICAgPSB0aGlzLl9lbGVtZW50LmRhdGEoJ3Byb2R1Y3RfaWQnKTtcbiAgICAgICAgICAgIHRoaXMuaGlkZGVuX2JlaGF2aW91ciAgID0gJCgnYm9keScpLmhhc0NsYXNzKCd3b28tdmFyaWF0aW9uLXN3YXRjaGVzLWF0dHJpYnV0ZS1iZWhhdmlvci1oaWRlJyk7XG4gICAgICAgICAgICB0aGlzLmlzX21vYmlsZSAgICAgICAgICA9ICQoJ2JvZHknKS5oYXNDbGFzcygnd29vLXZhcmlhdGlvbi1zd2F0Y2hlcy1vbi1tb2JpbGUnKTtcblxuICAgICAgICAgICAgLy8gQ2FsbFxuICAgICAgICAgICAgdGhpcy5pbml0KHRoaXMuaXNfYWpheF92YXJpYXRpb24sIHRoaXMuaGlkZGVuX2JlaGF2aW91cik7XG4gICAgICAgICAgICB0aGlzLmxvYWRlZCh0aGlzLmlzX2FqYXhfdmFyaWF0aW9uLCB0aGlzLmhpZGRlbl9iZWhhdmlvdXIpO1xuICAgICAgICAgICAgdGhpcy51cGRhdGUodGhpcy5pc19hamF4X3ZhcmlhdGlvbiwgdGhpcy5oaWRkZW5fYmVoYXZpb3VyKTtcbiAgICAgICAgICAgIHRoaXMucmVzZXQodGhpcy5pc19hamF4X3ZhcmlhdGlvbiwgdGhpcy5oaWRkZW5fYmVoYXZpb3VyKTtcblxuICAgICAgICAgICAgLy8gVHJpZ2dlclxuICAgICAgICAgICAgJChkb2N1bWVudCkudHJpZ2dlcignd29vX3ZhcmlhdGlvbl9zd2F0Y2hlcycsIFt0aGlzLl9lbGVtZW50XSk7XG4gICAgICAgIH1cblxuICAgICAgICBzdGF0aWMgX2pRdWVyeUludGVyZmFjZShjb25maWcpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIG5ldyBXb29WYXJpYXRpb25Td2F0Y2hlcyh0aGlzLCBjb25maWcpXG4gICAgICAgICAgICB9KVxuICAgICAgICB9XG5cbiAgICAgICAgaW5pdChpc19hamF4LCBoaWRkZW5fYmVoYXZpb3VyKSB7XG5cbiAgICAgICAgICAgIHRoaXMuX2VsZW1lbnQuZmluZCgndWwudmFyaWFibGUtaXRlbXMtd3JhcHBlcicpLmVhY2goZnVuY3Rpb24gKGksIGVsKSB7XG5cbiAgICAgICAgICAgICAgICBsZXQgc2VsZWN0ICAgICAgICAgPSAkKHRoaXMpLnNpYmxpbmdzKCdzZWxlY3Qud29vLXZhcmlhdGlvbi1yYXctc2VsZWN0Jyk7XG4gICAgICAgICAgICAgICAgbGV0IGxpICAgICAgICAgICAgID0gJCh0aGlzKS5maW5kKCdsaScpO1xuICAgICAgICAgICAgICAgIGxldCByZXNlbGVjdF9jbGVhciA9ICQodGhpcykuaGFzQ2xhc3MoJ3Jlc2VsZWN0LWNsZWFyJyk7XG4gICAgICAgICAgICAgICAgbGV0IGlzX21vYmlsZSAgICAgID0gJCgnYm9keScpLmhhc0NsYXNzKCd3b28tdmFyaWF0aW9uLXN3YXRjaGVzLW9uLW1vYmlsZScpO1xuXG4gICAgICAgICAgICAgICAgJCh0aGlzKS5wYXJlbnQoKS5hZGRDbGFzcygnd29vLXZhcmlhdGlvbi1pdGVtcy13cmFwcGVyJyk7XG5cbiAgICAgICAgICAgICAgICAvLyBGb3IgQXZhZGEgRklYXG4gICAgICAgICAgICAgICAgaWYgKHNlbGVjdC5sZW5ndGggPCAxKSB7XG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdCA9ICQodGhpcykucGFyZW50KCkuZmluZCgnc2VsZWN0Lndvby12YXJpYXRpb24tcmF3LXNlbGVjdCcpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmIChyZXNlbGVjdF9jbGVhcikge1xuICAgICAgICAgICAgICAgICAgICAkKHRoaXMpLm9uKCd0b3VjaHN0YXJ0IGNsaWNrJywgJ2xpOm5vdCguc2VsZWN0ZWQpOm5vdCgucmFkaW8tdmFyaWFibGUtaXRlbSknLCBmdW5jdGlvbiAoZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2YWx1ZSA9ICQodGhpcykuZGF0YSgndmFsdWUnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdC52YWwodmFsdWUpLnRyaWdnZXIoJ2NoYW5nZScpO1xuICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0LnRyaWdnZXIoJ2NsaWNrJyk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdC50cmlnZ2VyKCdmb2N1c2luJyk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpc19tb2JpbGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3QudHJpZ2dlcigndG91Y2hzdGFydCcpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAkKHRoaXMpLnRyaWdnZXIoJ2ZvY3VzJyk7IC8vIE1vYmlsZSB0b29sdGlwXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgICAgICQodGhpcykub24oJ3RvdWNoc3RhcnQgY2xpY2snLCAnbGkuc2VsZWN0ZWQ6bm90KC5yYWRpby12YXJpYWJsZS1pdGVtKScsIGZ1bmN0aW9uIChlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0LnZhbCgnJykudHJpZ2dlcignY2hhbmdlJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3QudHJpZ2dlcignY2xpY2snKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0LnRyaWdnZXIoJ2ZvY3VzaW4nKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzX21vYmlsZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdC50cmlnZ2VyKCd0b3VjaHN0YXJ0Jyk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICQodGhpcykudHJpZ2dlcignZm9jdXMnKTsgLy8gTW9iaWxlIHRvb2x0aXBcbiAgICAgICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICAgICAgLy8gUkFESU9cbiAgICAgICAgICAgICAgICAgICAgJCh0aGlzKS5vbigndG91Y2hzdGFydCBjbGljaycsICdpbnB1dC53dnMtcmFkaW8tdmFyaWFibGUtaXRlbTpyYWRpbycsIGZ1bmN0aW9uIChlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICAgICAgICAgICAgJCh0aGlzKS50cmlnZ2VyKCdjaGFuZ2UnKTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICAgICAgJCh0aGlzKS5vbignY2hhbmdlJywgJ2lucHV0Lnd2cy1yYWRpby12YXJpYWJsZS1pdGVtOnJhZGlvJywgZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2YWx1ZSA9ICQodGhpcykudmFsKCk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkKHRoaXMpLnBhcmVudCgnLnJhZGlvLXZhcmlhYmxlLWl0ZW0nKS5oYXNDbGFzcygnc2VsZWN0ZWQnKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdC52YWwoJycpLnRyaWdnZXIoJ2NoYW5nZScpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIF8uZGVsYXkoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKHRoaXMpLnByb3AoJ2NoZWNrZWQnLCBmYWxzZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LCAxKVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0LnZhbCh2YWx1ZSkudHJpZ2dlcignY2hhbmdlJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdC50cmlnZ2VyKCdjbGljaycpO1xuICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0LnRyaWdnZXIoJ2ZvY3VzaW4nKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpc19tb2JpbGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3QudHJpZ2dlcigndG91Y2hzdGFydCcpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICQodGhpcykub24oJ3RvdWNoc3RhcnQgY2xpY2snLCAnbGk6bm90KC5yYWRpby12YXJpYWJsZS1pdGVtKScsIGZ1bmN0aW9uIChlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHZhbHVlID0gJCh0aGlzKS5kYXRhKCd2YWx1ZScpO1xuICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0LnZhbCh2YWx1ZSkudHJpZ2dlcignY2hhbmdlJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3QudHJpZ2dlcignY2xpY2snKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdC50cmlnZ2VyKCdmb2N1c2luJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNfbW9iaWxlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0LnRyaWdnZXIoJ3RvdWNoc3RhcnQnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgJCh0aGlzKS50cmlnZ2VyKCdmb2N1cycpOyAvLyBNb2JpbGUgdG9vbHRpcFxuICAgICAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgICAgICAvLyBSYWRpb1xuICAgICAgICAgICAgICAgICAgICAkKHRoaXMpLm9uKCdjaGFuZ2UnLCAnaW5wdXQud3ZzLXJhZGlvLXZhcmlhYmxlLWl0ZW06cmFkaW8nLCBmdW5jdGlvbiAoZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2YWx1ZSA9ICQodGhpcykudmFsKCk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdC52YWwodmFsdWUpLnRyaWdnZXIoJ2NoYW5nZScpO1xuICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0LnRyaWdnZXIoJ2NsaWNrJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3QudHJpZ2dlcignZm9jdXNpbicpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNfbW9iaWxlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0LnRyaWdnZXIoJ3RvdWNoc3RhcnQnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gUmFkaW9cbiAgICAgICAgICAgICAgICAgICAgICAgICQodGhpcykucGFyZW50KCdsaS5yYWRpby12YXJpYWJsZS1pdGVtJykucmVtb3ZlQ2xhc3MoJ3NlbGVjdGVkIGRpc2FibGVkJykuYWRkQ2xhc3MoJ3NlbGVjdGVkJylcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIF8uZGVsYXkoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VsZW1lbnQudHJpZ2dlcignd29vX3ZhcmlhdGlvbl9zd2F0Y2hlc19pbml0JywgW3RoaXMsIHRoaXMucHJvZHVjdF92YXJpYXRpb25zXSlcbiAgICAgICAgICAgICAgICAkKGRvY3VtZW50KS50cmlnZ2VyKCd3b29fdmFyaWF0aW9uX3N3YXRjaGVzX2xvYWRlZCcsIFt0aGlzLl9lbGVtZW50LCB0aGlzLnByb2R1Y3RfdmFyaWF0aW9uc10pXG4gICAgICAgICAgICB9LCAyKVxuICAgICAgICB9XG5cbiAgICAgICAgbG9hZGVkKGlzX2FqYXgsIGhpZGRlbl9iZWhhdmlvdXIpIHtcbiAgICAgICAgICAgIGlmICghaXNfYWpheCkge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VsZW1lbnQub24oJ3dvb192YXJpYXRpb25fc3dhdGNoZXNfaW5pdCcsIGZ1bmN0aW9uIChldmVudCwgb2JqZWN0LCBwcm9kdWN0X3ZhcmlhdGlvbnMpIHtcblxuICAgICAgICAgICAgICAgICAgICBvYmplY3QuX2dlbmVyYXRlZCA9IHByb2R1Y3RfdmFyaWF0aW9ucy5yZWR1Y2UoKG9iaiwgdmFyaWF0aW9uKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBPYmplY3Qua2V5cyh2YXJpYXRpb24uYXR0cmlidXRlcykubWFwKChhdHRyaWJ1dGVfbmFtZSkgPT4ge1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFvYmpbYXR0cmlidXRlX25hbWVdKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9ialthdHRyaWJ1dGVfbmFtZV0gPSBbXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh2YXJpYXRpb24uYXR0cmlidXRlc1thdHRyaWJ1dGVfbmFtZV0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2JqW2F0dHJpYnV0ZV9uYW1lXS5wdXNoKHZhcmlhdGlvbi5hdHRyaWJ1dGVzW2F0dHJpYnV0ZV9uYW1lXSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9iajtcbiAgICAgICAgICAgICAgICAgICAgfSwge30pO1xuXG4gICAgICAgICAgICAgICAgICAgICQodGhpcykuZmluZCgndWwudmFyaWFibGUtaXRlbXMtd3JhcHBlcicpLmVhY2goZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxpICAgICAgICAgICAgICAgPSAkKHRoaXMpLmZpbmQoJ2xpJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgYXR0cmlidXRlICAgICAgICA9ICQodGhpcykuZGF0YSgnYXR0cmlidXRlX25hbWUnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBhdHRyaWJ1dGVfdmFsdWVzID0gb2JqZWN0Ll9nZW5lcmF0ZWRbYXR0cmlidXRlXTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgbGkuZWFjaChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGF0dHJpYnV0ZV92YWx1ZSA9ICQodGhpcykuYXR0cignZGF0YS12YWx1ZScpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFfLmlzRW1wdHkoYXR0cmlidXRlX3ZhbHVlcykgJiYgIWF0dHJpYnV0ZV92YWx1ZXMuaW5jbHVkZXMoYXR0cmlidXRlX3ZhbHVlKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKHRoaXMpLnJlbW92ZUNsYXNzKCdzZWxlY3RlZCcpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKHRoaXMpLmFkZENsYXNzKCdkaXNhYmxlZCcpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChoaWRkZW5fYmVoYXZpb3VyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyQodGhpcykuc3RvcCgpLmZhZGVPdXQoJ2Zhc3QnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkKHRoaXMpLmhhc0NsYXNzKCdyYWRpby12YXJpYWJsZS1pdGVtJykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQodGhpcykuZmluZCgnaW5wdXQud3ZzLXJhZGlvLXZhcmlhYmxlLWl0ZW06cmFkaW8nKS5wcm9wKCdkaXNhYmxlZCcsIHRydWUpLnByb3AoJ2NoZWNrZWQnLCBmYWxzZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXNldChpc19hamF4LCBoaWRkZW5fYmVoYXZpb3VyKSB7XG4gICAgICAgICAgICB0aGlzLl9lbGVtZW50Lm9uKCdyZXNldF9kYXRhJywgZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgICAgICAgICAgJCh0aGlzKS5maW5kKCd1bC52YXJpYWJsZS1pdGVtcy13cmFwcGVyJykuZWFjaChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIGxldCBsaSA9ICQodGhpcykuZmluZCgnbGknKTtcbiAgICAgICAgICAgICAgICAgICAgbGkuZWFjaChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWlzX2FqYXgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKHRoaXMpLnJlbW92ZUNsYXNzKCdzZWxlY3RlZCBkaXNhYmxlZCcpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChoaWRkZW5fYmVoYXZpb3VyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vJCh0aGlzKS5zdG9wKCkuZmFkZUluKCdmYXN0Jyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkKHRoaXMpLmhhc0NsYXNzKCdyYWRpby12YXJpYWJsZS1pdGVtJykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCh0aGlzKS5maW5kKCdpbnB1dC53dnMtcmFkaW8tdmFyaWFibGUtaXRlbTpyYWRpbycpLnByb3AoJ2Rpc2FibGVkJywgZmFsc2UpLnByb3AoJ2NoZWNrZWQnLCBmYWxzZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCQodGhpcykuaGFzQ2xhc3MoJ3JhZGlvLXZhcmlhYmxlLWl0ZW0nKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgICAkKHRoaXMpLmZpbmQoJ2lucHV0Lnd2cy1yYWRpby12YXJpYWJsZS1pdGVtOnJhZGlvJykucHJvcCgnY2hlY2tlZCcsIGZhbHNlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICB1cGRhdGUoaXNfYWpheCwgaGlkZGVuX2JlaGF2aW91cikge1xuICAgICAgICAgICAgdGhpcy5fZWxlbWVudC5vbignd29vY29tbWVyY2VfdmFyaWF0aW9uX2hhc19jaGFuZ2VkJywgZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgICAgICAgICAgaWYgKGlzX2FqYXgpIHtcbiAgICAgICAgICAgICAgICAgICAgJCh0aGlzKS5maW5kKCd1bC52YXJpYWJsZS1pdGVtcy13cmFwcGVyJykuZWFjaChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgc2VsZWN0ZWQgPSAnJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zICA9ICQodGhpcykuc2libGluZ3MoJ3NlbGVjdC53b28tdmFyaWF0aW9uLXJhdy1zZWxlY3QnKS5maW5kKCdvcHRpb24nKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50ICA9ICQodGhpcykuc2libGluZ3MoJ3NlbGVjdC53b28tdmFyaWF0aW9uLXJhdy1zZWxlY3QnKS5maW5kKCdvcHRpb246c2VsZWN0ZWQnKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcSAgICAgICA9ICQodGhpcykuc2libGluZ3MoJ3NlbGVjdC53b28tdmFyaWF0aW9uLXJhdy1zZWxlY3QnKS5maW5kKCdvcHRpb24nKS5lcSgxKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaSAgICAgICA9ICQodGhpcykuZmluZCgnbGknKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RzICA9IFtdO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBGb3IgQXZhZGEgRklYXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAob3B0aW9ucy5sZW5ndGggPCAxKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9ucyA9ICQodGhpcykucGFyZW50KCkuZmluZCgnc2VsZWN0Lndvby12YXJpYXRpb24tcmF3LXNlbGVjdCcpLmZpbmQoJ29wdGlvbicpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnQgPSAkKHRoaXMpLnBhcmVudCgpLmZpbmQoJ3NlbGVjdC53b28tdmFyaWF0aW9uLXJhdy1zZWxlY3QnKS5maW5kKCdvcHRpb246c2VsZWN0ZWQnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcSAgICAgID0gJCh0aGlzKS5wYXJlbnQoKS5maW5kKCdzZWxlY3Qud29vLXZhcmlhdGlvbi1yYXctc2VsZWN0JykuZmluZCgnb3B0aW9uJykuZXEoMSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnMuZWFjaChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCQodGhpcykudmFsKCkgIT09ICcnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdHMucHVzaCgkKHRoaXMpLnZhbCgpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWQgPSBjdXJyZW50ID8gY3VycmVudC52YWwoKSA6IGVxLnZhbCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBfLmRlbGF5KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaS5lYWNoKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHZhbHVlID0gJCh0aGlzKS5hdHRyKCdkYXRhLXZhbHVlJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQodGhpcykucmVtb3ZlQ2xhc3MoJ3NlbGVjdGVkIGRpc2FibGVkJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChoaWRkZW5fYmVoYXZpb3VyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyQodGhpcykuc3RvcCgpLmZhZGVJbignZmFzdCcpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZSA9PT0gc2VsZWN0ZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQodGhpcykuYWRkQ2xhc3MoJ3NlbGVjdGVkJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJCh0aGlzKS5oYXNDbGFzcygncmFkaW8tdmFyaWFibGUtaXRlbScpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCh0aGlzKS5maW5kKCdpbnB1dC53dnMtcmFkaW8tdmFyaWFibGUtaXRlbTpyYWRpbycpLnByb3AoJ2Rpc2FibGVkJywgZmFsc2UpLnByb3AoJ2NoZWNrZWQnLCB0cnVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSwgMSk7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAvLyBXaXRoT3V0IEFqYXggVXBkYXRlXG4gICAgICAgICAgICB0aGlzLl9lbGVtZW50Lm9uKCd3b29jb21tZXJjZV91cGRhdGVfdmFyaWF0aW9uX3ZhbHVlcycsIGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICAgICAgICAgICQodGhpcykuZmluZCgndWwudmFyaWFibGUtaXRlbXMtd3JhcHBlcicpLmVhY2goZnVuY3Rpb24gKCkge1xuXG4gICAgICAgICAgICAgICAgICAgIGxldCBzZWxlY3RlZCA9ICcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9ucyAgPSAkKHRoaXMpLnNpYmxpbmdzKCdzZWxlY3Qud29vLXZhcmlhdGlvbi1yYXctc2VsZWN0JykuZmluZCgnb3B0aW9uJyksXG4gICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50ICA9ICQodGhpcykuc2libGluZ3MoJ3NlbGVjdC53b28tdmFyaWF0aW9uLXJhdy1zZWxlY3QnKS5maW5kKCdvcHRpb246c2VsZWN0ZWQnKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGVxICAgICAgID0gJCh0aGlzKS5zaWJsaW5ncygnc2VsZWN0Lndvby12YXJpYXRpb24tcmF3LXNlbGVjdCcpLmZpbmQoJ29wdGlvbicpLmVxKDEpLFxuICAgICAgICAgICAgICAgICAgICAgICAgbGkgICAgICAgPSAkKHRoaXMpLmZpbmQoJ2xpJyksXG4gICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RzICA9IFtdO1xuXG4gICAgICAgICAgICAgICAgICAgIC8vIEZvciBBdmFkYSBGSVhcbiAgICAgICAgICAgICAgICAgICAgaWYgKG9wdGlvbnMubGVuZ3RoIDwgMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9ucyA9ICQodGhpcykucGFyZW50KCkuZmluZCgnc2VsZWN0Lndvby12YXJpYXRpb24tcmF3LXNlbGVjdCcpLmZpbmQoJ29wdGlvbicpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudCA9ICQodGhpcykucGFyZW50KCkuZmluZCgnc2VsZWN0Lndvby12YXJpYXRpb24tcmF3LXNlbGVjdCcpLmZpbmQoJ29wdGlvbjpzZWxlY3RlZCcpO1xuICAgICAgICAgICAgICAgICAgICAgICAgZXEgICAgICA9ICQodGhpcykucGFyZW50KCkuZmluZCgnc2VsZWN0Lndvby12YXJpYXRpb24tcmF3LXNlbGVjdCcpLmZpbmQoJ29wdGlvbicpLmVxKDEpO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgb3B0aW9ucy5lYWNoKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkKHRoaXMpLnZhbCgpICE9PSAnJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdHMucHVzaCgkKHRoaXMpLnZhbCgpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZCA9IGN1cnJlbnQgPyBjdXJyZW50LnZhbCgpIDogZXEudmFsKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgICAgIF8uZGVsYXkoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGkuZWFjaChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHZhbHVlID0gJCh0aGlzKS5hdHRyKCdkYXRhLXZhbHVlJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJCh0aGlzKS5yZW1vdmVDbGFzcygnc2VsZWN0ZWQgZGlzYWJsZWQnKS5hZGRDbGFzcygnZGlzYWJsZWQnKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChoaWRkZW5fYmVoYXZpb3VyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vJCh0aGlzKS5zdG9wKCkuZmFkZUluKCdmYXN0Jyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKF8uY29udGFpbnMoc2VsZWN0cywgdmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQodGhpcykucmVtb3ZlQ2xhc3MoJ2Rpc2FibGVkJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQodGhpcykuZmluZCgnaW5wdXQud3ZzLXJhZGlvLXZhcmlhYmxlLWl0ZW06cmFkaW8nKS5wcm9wKCdkaXNhYmxlZCcsIGZhbHNlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlID09PSBzZWxlY3RlZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCh0aGlzKS5hZGRDbGFzcygnc2VsZWN0ZWQnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkKHRoaXMpLmhhc0NsYXNzKCdyYWRpby12YXJpYWJsZS1pdGVtJykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKHRoaXMpLmZpbmQoJ2lucHV0Lnd2cy1yYWRpby12YXJpYWJsZS1pdGVtOnJhZGlvJykucHJvcCgnY2hlY2tlZCcsIHRydWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChoaWRkZW5fYmVoYXZpb3VyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyQodGhpcykuc3RvcCgpLmZhZGVPdXQoJ2Zhc3QnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJCh0aGlzKS5oYXNDbGFzcygncmFkaW8tdmFyaWFibGUtaXRlbScpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKHRoaXMpLmZpbmQoJ2lucHV0Lnd2cy1yYWRpby12YXJpYWJsZS1pdGVtOnJhZGlvJykucHJvcCgnZGlzYWJsZWQnLCB0cnVlKS5wcm9wKCdjaGVja2VkJywgZmFsc2UpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH0sIDEpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgKiBqUXVlcnlcbiAgICAgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgKi9cblxuICAgICQuZm5bJ1dvb1ZhcmlhdGlvblN3YXRjaGVzJ10gPSBXb29WYXJpYXRpb25Td2F0Y2hlcy5falF1ZXJ5SW50ZXJmYWNlO1xuICAgICQuZm5bJ1dvb1ZhcmlhdGlvblN3YXRjaGVzJ10uQ29uc3RydWN0b3IgPSBXb29WYXJpYXRpb25Td2F0Y2hlcztcbiAgICAkLmZuWydXb29WYXJpYXRpb25Td2F0Y2hlcyddLm5vQ29uZmxpY3QgID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAkLmZuWydXb29WYXJpYXRpb25Td2F0Y2hlcyddID0gJC5mblsnV29vVmFyaWF0aW9uU3dhdGNoZXMnXTtcbiAgICAgICAgcmV0dXJuIFdvb1ZhcmlhdGlvblN3YXRjaGVzLl9qUXVlcnlJbnRlcmZhY2VcbiAgICB9XG5cbiAgICByZXR1cm4gV29vVmFyaWF0aW9uU3dhdGNoZXM7XG5cbn0pKGpRdWVyeSk7XG5cbmV4cG9ydCBkZWZhdWx0IFdvb1ZhcmlhdGlvblN3YXRjaGVzXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIHNyYy9qcy9Xb29WYXJpYXRpb25Td2F0Y2hlcy5qcyIsImpRdWVyeSgkID0+IHtcbiAgICBpbXBvcnQoJy4vV29vVmFyaWF0aW9uU3dhdGNoZXMnKS50aGVuKCgpID0+IHtcbiAgICAgICAgLy8gSW5pdCBvbiBBamF4IFBvcHVwIDopXG4gICAgICAgICQoZG9jdW1lbnQpLm9uKCd3Y192YXJpYXRpb25fZm9ybScsICcudmFyaWF0aW9uc19mb3JtJywgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgJCh0aGlzKS5Xb29WYXJpYXRpb25Td2F0Y2hlcygpO1xuICAgICAgICB9KTtcblxuICAgICAgICAvLyBTdXBwb3J0IGZvciBKZXRwYWNrJ3MgSW5maW5pdGUgU2Nyb2xsLFxuICAgICAgICAkKGRvY3VtZW50LmJvZHkpLm9uKCdwb3N0LWxvYWQnLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAkKCcudmFyaWF0aW9uc19mb3JtJykuZWFjaChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgJCh0aGlzKS53Y192YXJpYXRpb25fZm9ybSgpO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgfSk7XG5cbiAgICB9KTtcbn0pOyAgLy8gZW5kIG9mIGpxdWVyeSBtYWluIHdyYXBwZXJcblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gc3JjL2pzL2Zyb250ZW5kLmpzIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7Ozs7Ozs7Ozs7O0FDN0RBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFIQTtBQU1BO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUEzQkE7QUFBQTtBQUFBO0FBa0NBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBdkpBO0FBQUE7QUFBQTtBQTBKQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQXBNQTtBQUFBO0FBQUE7QUF1TUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBNU5BO0FBQUE7QUFBQTtBQStOQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQU1BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFNQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQW5VQTtBQUFBO0FBQUE7QUE2QkE7QUFDQTtBQUNBO0FBQ0E7QUFoQ0E7QUFDQTtBQURBO0FBQUE7QUFDQTtBQXFVQTs7Ozs7O0FBTUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTs7Ozs7Ozs7Ozs7Ozs7O0FDM1ZBO0FBQ0E7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7Ozs7QSIsInNvdXJjZVJvb3QiOiIifQ==
1
  /*!
2
+ * WooCommerce Variation Swatches v1.0.32
3
  *
4
  * Author: Emran Ahmed ( emran.bd.08@gmail.com )
5
+ * Date: 2018-8-5 20:35:04
6
  * Released under the GPLv3 license.
7
  */
8
  /******/ (function(modules) { // webpackBootstrap
116
  _createClass(WooVariationSwatches, [{
117
  key: 'init',
118
  value: function init(is_ajax, hidden_behaviour) {
119
+ var _this3 = this;
120
 
121
+ var _this = this;
122
  this._element.find('ul.variable-items-wrapper').each(function (i, el) {
123
 
124
  var select = $(this).siblings('select.woo-variation-raw-select');
148
  }
149
 
150
  $(this).trigger('focus'); // Mobile tooltip
151
+ $(this).trigger('wvs-selected-item', [value, select, _this._element]); // Custom Event for li
152
  });
153
 
154
  $(this).on('touchstart click', 'li.selected:not(.radio-variable-item)', function (e) {
164
  }
165
 
166
  $(this).trigger('focus'); // Mobile tooltip
167
+
168
+ $(this).trigger('wvs-unselected-item', [value, select, _this._element]); // Custom Event for li
169
  });
170
 
171
  // RADIO
176
  });
177
 
178
  $(this).on('change', 'input.wvs-radio-variable-item:radio', function (e) {
179
+ var _this2 = this;
180
 
181
  e.preventDefault();
182
  e.stopPropagation();
183
 
184
  var value = $(this).val();
185
 
186
+ if ($(this).parent('li.radio-variable-item').hasClass('selected')) {
187
  select.val('').trigger('change');
188
  _.delay(function () {
189
+ $(_this2).prop('checked', false);
190
+ $(_this2).parent('li.radio-variable-item').trigger('wvs-unselected-item', [value, select, _this._element]); // Custom Event for li
191
  }, 1);
192
  } else {
193
  select.val(value).trigger('change');
194
+ $(this).parent('.radio-variable-item').trigger('wvs-selected-item', [value, select, _this._element]); // Custom Event for li
195
  }
196
 
197
  select.trigger('click');
213
  }
214
 
215
  $(this).trigger('focus'); // Mobile tooltip
216
+
217
+ $(this).trigger('wvs-selected-item', [value, select, _this._element]); // Custom Event for li
218
  });
219
 
220
  // Radio
233
 
234
  // Radio
235
  $(this).parent('li.radio-variable-item').removeClass('selected disabled').addClass('selected');
236
+ $(this).parent('li.radio-variable-item').trigger('wvs-selected-item', [value, select, _this._element]); // Custom Event for li
237
  });
238
  }
239
  });
240
 
241
  _.delay(function () {
242
+ _this3._element.trigger('woo_variation_swatches_init', [_this3, _this3.product_variations]);
243
+ $(document).trigger('woo_variation_swatches_loaded', [_this3._element, _this3.product_variations]);
244
  }, 2);
245
  }
246
  }, {
250
  this._element.on('woo_variation_swatches_init', function (event, object, product_variations) {
251
 
252
  object._generated = product_variations.reduce(function (obj, variation) {
 
253
 
254
+ if (!_.isArray(variation)) {
255
+ Object.keys(variation.attributes).map(function (attribute_name) {
 
256
 
257
+ if (!obj[attribute_name]) {
258
+ obj[attribute_name] = [];
259
+ }
260
+ });
261
+ }
262
 
263
  return obj;
264
  }, {});
291
  }, {
292
  key: 'reset',
293
  value: function reset(is_ajax, hidden_behaviour) {
294
+ var _this = this;
295
  this._element.on('reset_data', function (event) {
296
  $(this).find('ul.variable-items-wrapper').each(function () {
297
  var li = $(this).find('li');
309
  // $(this).find('input.wvs-radio-variable-item:radio').prop('checked', false);
310
  }
311
  }
312
+
313
+ $(this).trigger('wvs-unselected-item', ['', '', _this._element]); // Custom Event for li
314
  });
315
  });
316
  });
321
  this._element.on('woocommerce_variation_has_changed', function (event) {
322
  if (is_ajax) {
323
  $(this).find('ul.variable-items-wrapper').each(function () {
324
+ var _this4 = this;
325
+
326
  var selected = '',
327
  options = $(this).siblings('select.woo-variation-raw-select').find('option'),
328
  current = $(this).siblings('select.woo-variation-raw-select').find('option:selected'),
358
  }
359
  }
360
  });
361
+
362
+ // Items Updated
363
+ $(_this4).trigger('wvs-items-updated');
364
  }, 1);
365
  });
366
  }
369
  // WithOut Ajax Update
370
  this._element.on('woocommerce_update_variation_values', function (event) {
371
  $(this).find('ul.variable-items-wrapper').each(function () {
372
+ var _this5 = this;
373
 
374
  var selected = '',
375
  options = $(this).siblings('select.woo-variation-raw-select').find('option'),
420
  }
421
  }
422
  });
423
+
424
+ // Items Updated
425
+ $(_this5).trigger('wvs-items-updated');
426
  }, 1);
427
  });
428
  });
491
  /***/ })
492
 
493
  /******/ });
494
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXRzL2pzL2Zyb250ZW5kLmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vL3dlYnBhY2svYm9vdHN0cmFwIDM1ZWNlNmJmMTY3YjJjZmU2ZTc3Iiwid2VicGFjazovLy9zcmMvanMvV29vVmFyaWF0aW9uU3dhdGNoZXMuanMiLCJ3ZWJwYWNrOi8vL3NyYy9qcy9mcm9udGVuZC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIgXHQvLyBUaGUgbW9kdWxlIGNhY2hlXG4gXHR2YXIgaW5zdGFsbGVkTW9kdWxlcyA9IHt9O1xuXG4gXHQvLyBUaGUgcmVxdWlyZSBmdW5jdGlvblxuIFx0ZnVuY3Rpb24gX193ZWJwYWNrX3JlcXVpcmVfXyhtb2R1bGVJZCkge1xuXG4gXHRcdC8vIENoZWNrIGlmIG1vZHVsZSBpcyBpbiBjYWNoZVxuIFx0XHRpZihpbnN0YWxsZWRNb2R1bGVzW21vZHVsZUlkXSkge1xuIFx0XHRcdHJldHVybiBpbnN0YWxsZWRNb2R1bGVzW21vZHVsZUlkXS5leHBvcnRzO1xuIFx0XHR9XG4gXHRcdC8vIENyZWF0ZSBhIG5ldyBtb2R1bGUgKGFuZCBwdXQgaXQgaW50byB0aGUgY2FjaGUpXG4gXHRcdHZhciBtb2R1bGUgPSBpbnN0YWxsZWRNb2R1bGVzW21vZHVsZUlkXSA9IHtcbiBcdFx0XHRpOiBtb2R1bGVJZCxcbiBcdFx0XHRsOiBmYWxzZSxcbiBcdFx0XHRleHBvcnRzOiB7fVxuIFx0XHR9O1xuXG4gXHRcdC8vIEV4ZWN1dGUgdGhlIG1vZHVsZSBmdW5jdGlvblxuIFx0XHRtb2R1bGVzW21vZHVsZUlkXS5jYWxsKG1vZHVsZS5leHBvcnRzLCBtb2R1bGUsIG1vZHVsZS5leHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKTtcblxuIFx0XHQvLyBGbGFnIHRoZSBtb2R1bGUgYXMgbG9hZGVkXG4gXHRcdG1vZHVsZS5sID0gdHJ1ZTtcblxuIFx0XHQvLyBSZXR1cm4gdGhlIGV4cG9ydHMgb2YgdGhlIG1vZHVsZVxuIFx0XHRyZXR1cm4gbW9kdWxlLmV4cG9ydHM7XG4gXHR9XG5cblxuIFx0Ly8gZXhwb3NlIHRoZSBtb2R1bGVzIG9iamVjdCAoX193ZWJwYWNrX21vZHVsZXNfXylcbiBcdF9fd2VicGFja19yZXF1aXJlX18ubSA9IG1vZHVsZXM7XG5cbiBcdC8vIGV4cG9zZSB0aGUgbW9kdWxlIGNhY2hlXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLmMgPSBpbnN0YWxsZWRNb2R1bGVzO1xuXG4gXHQvLyBkZWZpbmUgZ2V0dGVyIGZ1bmN0aW9uIGZvciBoYXJtb255IGV4cG9ydHNcbiBcdF9fd2VicGFja19yZXF1aXJlX18uZCA9IGZ1bmN0aW9uKGV4cG9ydHMsIG5hbWUsIGdldHRlcikge1xuIFx0XHRpZighX193ZWJwYWNrX3JlcXVpcmVfXy5vKGV4cG9ydHMsIG5hbWUpKSB7XG4gXHRcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIG5hbWUsIHtcbiBcdFx0XHRcdGNvbmZpZ3VyYWJsZTogZmFsc2UsXG4gXHRcdFx0XHRlbnVtZXJhYmxlOiB0cnVlLFxuIFx0XHRcdFx0Z2V0OiBnZXR0ZXJcbiBcdFx0XHR9KTtcbiBcdFx0fVxuIFx0fTtcblxuIFx0Ly8gZ2V0RGVmYXVsdEV4cG9ydCBmdW5jdGlvbiBmb3IgY29tcGF0aWJpbGl0eSB3aXRoIG5vbi1oYXJtb255IG1vZHVsZXNcbiBcdF9fd2VicGFja19yZXF1aXJlX18ubiA9IGZ1bmN0aW9uKG1vZHVsZSkge1xuIFx0XHR2YXIgZ2V0dGVyID0gbW9kdWxlICYmIG1vZHVsZS5fX2VzTW9kdWxlID9cbiBcdFx0XHRmdW5jdGlvbiBnZXREZWZhdWx0KCkgeyByZXR1cm4gbW9kdWxlWydkZWZhdWx0J107IH0gOlxuIFx0XHRcdGZ1bmN0aW9uIGdldE1vZHVsZUV4cG9ydHMoKSB7IHJldHVybiBtb2R1bGU7IH07XG4gXHRcdF9fd2VicGFja19yZXF1aXJlX18uZChnZXR0ZXIsICdhJywgZ2V0dGVyKTtcbiBcdFx0cmV0dXJuIGdldHRlcjtcbiBcdH07XG5cbiBcdC8vIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbFxuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5vID0gZnVuY3Rpb24ob2JqZWN0LCBwcm9wZXJ0eSkgeyByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iamVjdCwgcHJvcGVydHkpOyB9O1xuXG4gXHQvLyBfX3dlYnBhY2tfcHVibGljX3BhdGhfX1xuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5wID0gXCJcIjtcblxuIFx0Ly8gTG9hZCBlbnRyeSBtb2R1bGUgYW5kIHJldHVybiBleHBvcnRzXG4gXHRyZXR1cm4gX193ZWJwYWNrX3JlcXVpcmVfXyhfX3dlYnBhY2tfcmVxdWlyZV9fLnMgPSA4KTtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyB3ZWJwYWNrL2Jvb3RzdHJhcCAzNWVjZTZiZjE2N2IyY2ZlNmU3NyIsIi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIFdvb0NvbW1lcmNlIFZhcmlhdGlvbiBDaGFuZ2Vcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuY29uc3QgV29vVmFyaWF0aW9uU3dhdGNoZXMgPSAoKCQpID0+IHtcblxuICAgIGNvbnN0IERlZmF1bHQgPSB7fTtcblxuICAgIGNsYXNzIFdvb1ZhcmlhdGlvblN3YXRjaGVzIHtcblxuICAgICAgICBjb25zdHJ1Y3RvcihlbGVtZW50LCBjb25maWcpIHtcblxuICAgICAgICAgICAgLy8gQXNzaWduXG4gICAgICAgICAgICB0aGlzLl9lbGVtZW50ICAgICAgICAgICA9ICQoZWxlbWVudCk7XG4gICAgICAgICAgICB0aGlzLl9jb25maWcgICAgICAgICAgICA9ICQuZXh0ZW5kKHt9LCBEZWZhdWx0LCBjb25maWcpO1xuICAgICAgICAgICAgdGhpcy5fZ2VuZXJhdGVkICAgICAgICAgPSB7fTtcbiAgICAgICAgICAgIHRoaXMucHJvZHVjdF92YXJpYXRpb25zID0gdGhpcy5fZWxlbWVudC5kYXRhKCdwcm9kdWN0X3ZhcmlhdGlvbnMnKTtcbiAgICAgICAgICAgIHRoaXMuaXNfYWpheF92YXJpYXRpb24gID0gIXRoaXMucHJvZHVjdF92YXJpYXRpb25zO1xuICAgICAgICAgICAgdGhpcy5wcm9kdWN0X2lkICAgICAgICAgPSB0aGlzLl9lbGVtZW50LmRhdGEoJ3Byb2R1Y3RfaWQnKTtcbiAgICAgICAgICAgIHRoaXMuaGlkZGVuX2JlaGF2aW91ciAgID0gJCgnYm9keScpLmhhc0NsYXNzKCd3b28tdmFyaWF0aW9uLXN3YXRjaGVzLWF0dHJpYnV0ZS1iZWhhdmlvci1oaWRlJyk7XG4gICAgICAgICAgICB0aGlzLmlzX21vYmlsZSAgICAgICAgICA9ICQoJ2JvZHknKS5oYXNDbGFzcygnd29vLXZhcmlhdGlvbi1zd2F0Y2hlcy1vbi1tb2JpbGUnKTtcblxuICAgICAgICAgICAgLy8gQ2FsbFxuICAgICAgICAgICAgdGhpcy5pbml0KHRoaXMuaXNfYWpheF92YXJpYXRpb24sIHRoaXMuaGlkZGVuX2JlaGF2aW91cik7XG4gICAgICAgICAgICB0aGlzLmxvYWRlZCh0aGlzLmlzX2FqYXhfdmFyaWF0aW9uLCB0aGlzLmhpZGRlbl9iZWhhdmlvdXIpO1xuICAgICAgICAgICAgdGhpcy51cGRhdGUodGhpcy5pc19hamF4X3ZhcmlhdGlvbiwgdGhpcy5oaWRkZW5fYmVoYXZpb3VyKTtcbiAgICAgICAgICAgIHRoaXMucmVzZXQodGhpcy5pc19hamF4X3ZhcmlhdGlvbiwgdGhpcy5oaWRkZW5fYmVoYXZpb3VyKTtcblxuICAgICAgICAgICAgLy8gVHJpZ2dlclxuICAgICAgICAgICAgJChkb2N1bWVudCkudHJpZ2dlcignd29vX3ZhcmlhdGlvbl9zd2F0Y2hlcycsIFt0aGlzLl9lbGVtZW50XSk7XG4gICAgICAgIH1cblxuICAgICAgICBzdGF0aWMgX2pRdWVyeUludGVyZmFjZShjb25maWcpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIG5ldyBXb29WYXJpYXRpb25Td2F0Y2hlcyh0aGlzLCBjb25maWcpXG4gICAgICAgICAgICB9KVxuICAgICAgICB9XG5cbiAgICAgICAgaW5pdChpc19hamF4LCBoaWRkZW5fYmVoYXZpb3VyKSB7XG5cbiAgICAgICAgICAgIGxldCBfdGhpcyA9IHRoaXM7XG4gICAgICAgICAgICB0aGlzLl9lbGVtZW50LmZpbmQoJ3VsLnZhcmlhYmxlLWl0ZW1zLXdyYXBwZXInKS5lYWNoKGZ1bmN0aW9uIChpLCBlbCkge1xuXG4gICAgICAgICAgICAgICAgbGV0IHNlbGVjdCAgICAgICAgID0gJCh0aGlzKS5zaWJsaW5ncygnc2VsZWN0Lndvby12YXJpYXRpb24tcmF3LXNlbGVjdCcpO1xuICAgICAgICAgICAgICAgIGxldCBsaSAgICAgICAgICAgICA9ICQodGhpcykuZmluZCgnbGknKTtcbiAgICAgICAgICAgICAgICBsZXQgcmVzZWxlY3RfY2xlYXIgPSAkKHRoaXMpLmhhc0NsYXNzKCdyZXNlbGVjdC1jbGVhcicpO1xuICAgICAgICAgICAgICAgIGxldCBpc19tb2JpbGUgICAgICA9ICQoJ2JvZHknKS5oYXNDbGFzcygnd29vLXZhcmlhdGlvbi1zd2F0Y2hlcy1vbi1tb2JpbGUnKTtcblxuICAgICAgICAgICAgICAgICQodGhpcykucGFyZW50KCkuYWRkQ2xhc3MoJ3dvby12YXJpYXRpb24taXRlbXMtd3JhcHBlcicpO1xuXG4gICAgICAgICAgICAgICAgLy8gRm9yIEF2YWRhIEZJWFxuICAgICAgICAgICAgICAgIGlmIChzZWxlY3QubGVuZ3RoIDwgMSkge1xuICAgICAgICAgICAgICAgICAgICBzZWxlY3QgPSAkKHRoaXMpLnBhcmVudCgpLmZpbmQoJ3NlbGVjdC53b28tdmFyaWF0aW9uLXJhdy1zZWxlY3QnKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAocmVzZWxlY3RfY2xlYXIpIHtcbiAgICAgICAgICAgICAgICAgICAgJCh0aGlzKS5vbigndG91Y2hzdGFydCBjbGljaycsICdsaTpub3QoLnNlbGVjdGVkKTpub3QoLnJhZGlvLXZhcmlhYmxlLWl0ZW0pJywgZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdmFsdWUgPSAkKHRoaXMpLmRhdGEoJ3ZhbHVlJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3QudmFsKHZhbHVlKS50cmlnZ2VyKCdjaGFuZ2UnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdC50cmlnZ2VyKCdjbGljaycpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3QudHJpZ2dlcignZm9jdXNpbicpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNfbW9iaWxlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0LnRyaWdnZXIoJ3RvdWNoc3RhcnQnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgJCh0aGlzKS50cmlnZ2VyKCdmb2N1cycpOyAvLyBNb2JpbGUgdG9vbHRpcFxuICAgICAgICAgICAgICAgICAgICAgICAgJCh0aGlzKS50cmlnZ2VyKCd3dnMtc2VsZWN0ZWQtaXRlbScsIFt2YWx1ZSwgc2VsZWN0LCBfdGhpcy5fZWxlbWVudF0pOyAvLyBDdXN0b20gRXZlbnQgZm9yIGxpXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgICAgICQodGhpcykub24oJ3RvdWNoc3RhcnQgY2xpY2snLCAnbGkuc2VsZWN0ZWQ6bm90KC5yYWRpby12YXJpYWJsZS1pdGVtKScsIGZ1bmN0aW9uIChlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0LnZhbCgnJykudHJpZ2dlcignY2hhbmdlJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3QudHJpZ2dlcignY2xpY2snKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0LnRyaWdnZXIoJ2ZvY3VzaW4nKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzX21vYmlsZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdC50cmlnZ2VyKCd0b3VjaHN0YXJ0Jyk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICQodGhpcykudHJpZ2dlcignZm9jdXMnKTsgLy8gTW9iaWxlIHRvb2x0aXBcblxuICAgICAgICAgICAgICAgICAgICAgICAgJCh0aGlzKS50cmlnZ2VyKCd3dnMtdW5zZWxlY3RlZC1pdGVtJywgW3ZhbHVlLCBzZWxlY3QsIF90aGlzLl9lbGVtZW50XSk7IC8vIEN1c3RvbSBFdmVudCBmb3IgbGlcblxuICAgICAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgICAgICAvLyBSQURJT1xuICAgICAgICAgICAgICAgICAgICAkKHRoaXMpLm9uKCd0b3VjaHN0YXJ0IGNsaWNrJywgJ2lucHV0Lnd2cy1yYWRpby12YXJpYWJsZS1pdGVtOnJhZGlvJywgZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAkKHRoaXMpLnRyaWdnZXIoJ2NoYW5nZScpO1xuICAgICAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgICAgICAkKHRoaXMpLm9uKCdjaGFuZ2UnLCAnaW5wdXQud3ZzLXJhZGlvLXZhcmlhYmxlLWl0ZW06cmFkaW8nLCBmdW5jdGlvbiAoZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHZhbHVlID0gJCh0aGlzKS52YWwoKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCQodGhpcykucGFyZW50KCdsaS5yYWRpby12YXJpYWJsZS1pdGVtJykuaGFzQ2xhc3MoJ3NlbGVjdGVkJykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3QudmFsKCcnKS50cmlnZ2VyKCdjaGFuZ2UnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBfLmRlbGF5KCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCh0aGlzKS5wcm9wKCdjaGVja2VkJywgZmFsc2UpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKHRoaXMpLnBhcmVudCgnbGkucmFkaW8tdmFyaWFibGUtaXRlbScpLnRyaWdnZXIoJ3d2cy11bnNlbGVjdGVkLWl0ZW0nLCBbdmFsdWUsIHNlbGVjdCwgX3RoaXMuX2VsZW1lbnRdKTsgLy8gQ3VzdG9tIEV2ZW50IGZvciBsaVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sIDEpXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3QudmFsKHZhbHVlKS50cmlnZ2VyKCdjaGFuZ2UnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKHRoaXMpLnBhcmVudCgnLnJhZGlvLXZhcmlhYmxlLWl0ZW0nKS50cmlnZ2VyKCd3dnMtc2VsZWN0ZWQtaXRlbScsIFt2YWx1ZSwgc2VsZWN0LCBfdGhpcy5fZWxlbWVudF0pOyAvLyBDdXN0b20gRXZlbnQgZm9yIGxpXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdC50cmlnZ2VyKCdjbGljaycpO1xuICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0LnRyaWdnZXIoJ2ZvY3VzaW4nKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpc19tb2JpbGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3QudHJpZ2dlcigndG91Y2hzdGFydCcpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICQodGhpcykub24oJ3RvdWNoc3RhcnQgY2xpY2snLCAnbGk6bm90KC5yYWRpby12YXJpYWJsZS1pdGVtKScsIGZ1bmN0aW9uIChlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHZhbHVlID0gJCh0aGlzKS5kYXRhKCd2YWx1ZScpO1xuICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0LnZhbCh2YWx1ZSkudHJpZ2dlcignY2hhbmdlJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3QudHJpZ2dlcignY2xpY2snKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdC50cmlnZ2VyKCdmb2N1c2luJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNfbW9iaWxlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0LnRyaWdnZXIoJ3RvdWNoc3RhcnQnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgJCh0aGlzKS50cmlnZ2VyKCdmb2N1cycpOyAvLyBNb2JpbGUgdG9vbHRpcFxuXG4gICAgICAgICAgICAgICAgICAgICAgICAkKHRoaXMpLnRyaWdnZXIoJ3d2cy1zZWxlY3RlZC1pdGVtJywgW3ZhbHVlLCBzZWxlY3QsIF90aGlzLl9lbGVtZW50XSk7IC8vIEN1c3RvbSBFdmVudCBmb3IgbGlcbiAgICAgICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICAgICAgLy8gUmFkaW9cbiAgICAgICAgICAgICAgICAgICAgJCh0aGlzKS5vbignY2hhbmdlJywgJ2lucHV0Lnd2cy1yYWRpby12YXJpYWJsZS1pdGVtOnJhZGlvJywgZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdmFsdWUgPSAkKHRoaXMpLnZhbCgpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3QudmFsKHZhbHVlKS50cmlnZ2VyKCdjaGFuZ2UnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdC50cmlnZ2VyKCdjbGljaycpO1xuICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0LnRyaWdnZXIoJ2ZvY3VzaW4nKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzX21vYmlsZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdC50cmlnZ2VyKCd0b3VjaHN0YXJ0Jyk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFJhZGlvXG4gICAgICAgICAgICAgICAgICAgICAgICAkKHRoaXMpLnBhcmVudCgnbGkucmFkaW8tdmFyaWFibGUtaXRlbScpLnJlbW92ZUNsYXNzKCdzZWxlY3RlZCBkaXNhYmxlZCcpLmFkZENsYXNzKCdzZWxlY3RlZCcpO1xuICAgICAgICAgICAgICAgICAgICAgICAgJCh0aGlzKS5wYXJlbnQoJ2xpLnJhZGlvLXZhcmlhYmxlLWl0ZW0nKS50cmlnZ2VyKCd3dnMtc2VsZWN0ZWQtaXRlbScsIFt2YWx1ZSwgc2VsZWN0LCBfdGhpcy5fZWxlbWVudF0pOyAvLyBDdXN0b20gRXZlbnQgZm9yIGxpXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICBfLmRlbGF5KCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbGVtZW50LnRyaWdnZXIoJ3dvb192YXJpYXRpb25fc3dhdGNoZXNfaW5pdCcsIFt0aGlzLCB0aGlzLnByb2R1Y3RfdmFyaWF0aW9uc10pXG4gICAgICAgICAgICAgICAgJChkb2N1bWVudCkudHJpZ2dlcignd29vX3ZhcmlhdGlvbl9zd2F0Y2hlc19sb2FkZWQnLCBbdGhpcy5fZWxlbWVudCwgdGhpcy5wcm9kdWN0X3ZhcmlhdGlvbnNdKVxuICAgICAgICAgICAgfSwgMilcbiAgICAgICAgfVxuXG4gICAgICAgIGxvYWRlZChpc19hamF4LCBoaWRkZW5fYmVoYXZpb3VyKSB7XG4gICAgICAgICAgICBpZiAoIWlzX2FqYXgpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbGVtZW50Lm9uKCd3b29fdmFyaWF0aW9uX3N3YXRjaGVzX2luaXQnLCBmdW5jdGlvbiAoZXZlbnQsIG9iamVjdCwgcHJvZHVjdF92YXJpYXRpb25zKSB7XG5cbiAgICAgICAgICAgICAgICAgICAgb2JqZWN0Ll9nZW5lcmF0ZWQgPSBwcm9kdWN0X3ZhcmlhdGlvbnMucmVkdWNlKChvYmosIHZhcmlhdGlvbikgPT4ge1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIV8uaXNBcnJheSh2YXJpYXRpb24pKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgT2JqZWN0LmtleXModmFyaWF0aW9uLmF0dHJpYnV0ZXMpLm1hcCgoYXR0cmlidXRlX25hbWUpID0+IHtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIW9ialthdHRyaWJ1dGVfbmFtZV0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9ialthdHRyaWJ1dGVfbmFtZV0gPSBbXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBvYmo7XG5cbiAgICAgICAgICAgICAgICAgICAgfSwge30pO1xuXG4gICAgICAgICAgICAgICAgICAgICQodGhpcykuZmluZCgndWwudmFyaWFibGUtaXRlbXMtd3JhcHBlcicpLmVhY2goZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxpICAgICAgICAgICAgICAgPSAkKHRoaXMpLmZpbmQoJ2xpJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgYXR0cmlidXRlICAgICAgICA9ICQodGhpcykuZGF0YSgnYXR0cmlidXRlX25hbWUnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBhdHRyaWJ1dGVfdmFsdWVzID0gb2JqZWN0Ll9nZW5lcmF0ZWRbYXR0cmlidXRlXTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgbGkuZWFjaChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGF0dHJpYnV0ZV92YWx1ZSA9ICQodGhpcykuYXR0cignZGF0YS12YWx1ZScpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFfLmlzRW1wdHkoYXR0cmlidXRlX3ZhbHVlcykgJiYgIWF0dHJpYnV0ZV92YWx1ZXMuaW5jbHVkZXMoYXR0cmlidXRlX3ZhbHVlKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKHRoaXMpLnJlbW92ZUNsYXNzKCdzZWxlY3RlZCcpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKHRoaXMpLmFkZENsYXNzKCdkaXNhYmxlZCcpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChoaWRkZW5fYmVoYXZpb3VyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyQodGhpcykuc3RvcCgpLmZhZGVPdXQoJ2Zhc3QnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkKHRoaXMpLmhhc0NsYXNzKCdyYWRpby12YXJpYWJsZS1pdGVtJykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQodGhpcykuZmluZCgnaW5wdXQud3ZzLXJhZGlvLXZhcmlhYmxlLWl0ZW06cmFkaW8nKS5wcm9wKCdkaXNhYmxlZCcsIHRydWUpLnByb3AoJ2NoZWNrZWQnLCBmYWxzZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXNldChpc19hamF4LCBoaWRkZW5fYmVoYXZpb3VyKSB7XG4gICAgICAgICAgICBsZXQgX3RoaXMgPSB0aGlzO1xuICAgICAgICAgICAgdGhpcy5fZWxlbWVudC5vbigncmVzZXRfZGF0YScsIGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICAgICAgICAgICQodGhpcykuZmluZCgndWwudmFyaWFibGUtaXRlbXMtd3JhcHBlcicpLmVhY2goZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICBsZXQgbGkgPSAkKHRoaXMpLmZpbmQoJ2xpJyk7XG4gICAgICAgICAgICAgICAgICAgIGxpLmVhY2goZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFpc19hamF4KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJCh0aGlzKS5yZW1vdmVDbGFzcygnc2VsZWN0ZWQgZGlzYWJsZWQnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaGlkZGVuX2JlaGF2aW91cikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyQodGhpcykuc3RvcCgpLmZhZGVJbignZmFzdCcpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJCh0aGlzKS5oYXNDbGFzcygncmFkaW8tdmFyaWFibGUtaXRlbScpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQodGhpcykuZmluZCgnaW5wdXQud3ZzLXJhZGlvLXZhcmlhYmxlLWl0ZW06cmFkaW8nKS5wcm9wKCdkaXNhYmxlZCcsIGZhbHNlKS5wcm9wKCdjaGVja2VkJywgZmFsc2UpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkKHRoaXMpLmhhc0NsYXNzKCdyYWRpby12YXJpYWJsZS1pdGVtJykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gICAgJCh0aGlzKS5maW5kKCdpbnB1dC53dnMtcmFkaW8tdmFyaWFibGUtaXRlbTpyYWRpbycpLnByb3AoJ2NoZWNrZWQnLCBmYWxzZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAkKHRoaXMpLnRyaWdnZXIoJ3d2cy11bnNlbGVjdGVkLWl0ZW0nLCBbJycsICcnLCBfdGhpcy5fZWxlbWVudF0pOyAvLyBDdXN0b20gRXZlbnQgZm9yIGxpXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICB1cGRhdGUoaXNfYWpheCwgaGlkZGVuX2JlaGF2aW91cikge1xuICAgICAgICAgICAgdGhpcy5fZWxlbWVudC5vbignd29vY29tbWVyY2VfdmFyaWF0aW9uX2hhc19jaGFuZ2VkJywgZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgICAgICAgICAgaWYgKGlzX2FqYXgpIHtcbiAgICAgICAgICAgICAgICAgICAgJCh0aGlzKS5maW5kKCd1bC52YXJpYWJsZS1pdGVtcy13cmFwcGVyJykuZWFjaChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgc2VsZWN0ZWQgPSAnJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zICA9ICQodGhpcykuc2libGluZ3MoJ3NlbGVjdC53b28tdmFyaWF0aW9uLXJhdy1zZWxlY3QnKS5maW5kKCdvcHRpb24nKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50ICA9ICQodGhpcykuc2libGluZ3MoJ3NlbGVjdC53b28tdmFyaWF0aW9uLXJhdy1zZWxlY3QnKS5maW5kKCdvcHRpb246c2VsZWN0ZWQnKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcSAgICAgICA9ICQodGhpcykuc2libGluZ3MoJ3NlbGVjdC53b28tdmFyaWF0aW9uLXJhdy1zZWxlY3QnKS5maW5kKCdvcHRpb24nKS5lcSgxKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaSAgICAgICA9ICQodGhpcykuZmluZCgnbGknKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RzICA9IFtdO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBGb3IgQXZhZGEgRklYXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAob3B0aW9ucy5sZW5ndGggPCAxKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9ucyA9ICQodGhpcykucGFyZW50KCkuZmluZCgnc2VsZWN0Lndvby12YXJpYXRpb24tcmF3LXNlbGVjdCcpLmZpbmQoJ29wdGlvbicpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnQgPSAkKHRoaXMpLnBhcmVudCgpLmZpbmQoJ3NlbGVjdC53b28tdmFyaWF0aW9uLXJhdy1zZWxlY3QnKS5maW5kKCdvcHRpb246c2VsZWN0ZWQnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcSAgICAgID0gJCh0aGlzKS5wYXJlbnQoKS5maW5kKCdzZWxlY3Qud29vLXZhcmlhdGlvbi1yYXctc2VsZWN0JykuZmluZCgnb3B0aW9uJykuZXEoMSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnMuZWFjaChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCQodGhpcykudmFsKCkgIT09ICcnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdHMucHVzaCgkKHRoaXMpLnZhbCgpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWQgPSBjdXJyZW50ID8gY3VycmVudC52YWwoKSA6IGVxLnZhbCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBfLmRlbGF5KCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaS5lYWNoKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHZhbHVlID0gJCh0aGlzKS5hdHRyKCdkYXRhLXZhbHVlJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQodGhpcykucmVtb3ZlQ2xhc3MoJ3NlbGVjdGVkIGRpc2FibGVkJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChoaWRkZW5fYmVoYXZpb3VyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyQodGhpcykuc3RvcCgpLmZhZGVJbignZmFzdCcpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZSA9PT0gc2VsZWN0ZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQodGhpcykuYWRkQ2xhc3MoJ3NlbGVjdGVkJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJCh0aGlzKS5oYXNDbGFzcygncmFkaW8tdmFyaWFibGUtaXRlbScpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCh0aGlzKS5maW5kKCdpbnB1dC53dnMtcmFkaW8tdmFyaWFibGUtaXRlbTpyYWRpbycpLnByb3AoJ2Rpc2FibGVkJywgZmFsc2UpLnByb3AoJ2NoZWNrZWQnLCB0cnVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gSXRlbXMgVXBkYXRlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICQodGhpcykudHJpZ2dlcignd3ZzLWl0ZW1zLXVwZGF0ZWQnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sIDEpO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgLy8gV2l0aE91dCBBamF4IFVwZGF0ZVxuICAgICAgICAgICAgdGhpcy5fZWxlbWVudC5vbignd29vY29tbWVyY2VfdXBkYXRlX3ZhcmlhdGlvbl92YWx1ZXMnLCBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgICAgICAgICAkKHRoaXMpLmZpbmQoJ3VsLnZhcmlhYmxlLWl0ZW1zLXdyYXBwZXInKS5lYWNoKGZ1bmN0aW9uICgpIHtcblxuICAgICAgICAgICAgICAgICAgICBsZXQgc2VsZWN0ZWQgPSAnJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnMgID0gJCh0aGlzKS5zaWJsaW5ncygnc2VsZWN0Lndvby12YXJpYXRpb24tcmF3LXNlbGVjdCcpLmZpbmQoJ29wdGlvbicpLFxuICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudCAgPSAkKHRoaXMpLnNpYmxpbmdzKCdzZWxlY3Qud29vLXZhcmlhdGlvbi1yYXctc2VsZWN0JykuZmluZCgnb3B0aW9uOnNlbGVjdGVkJyksXG4gICAgICAgICAgICAgICAgICAgICAgICBlcSAgICAgICA9ICQodGhpcykuc2libGluZ3MoJ3NlbGVjdC53b28tdmFyaWF0aW9uLXJhdy1zZWxlY3QnKS5maW5kKCdvcHRpb24nKS5lcSgxKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGxpICAgICAgID0gJCh0aGlzKS5maW5kKCdsaScpLFxuICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0cyAgPSBbXTtcblxuICAgICAgICAgICAgICAgICAgICAvLyBGb3IgQXZhZGEgRklYXG4gICAgICAgICAgICAgICAgICAgIGlmIChvcHRpb25zLmxlbmd0aCA8IDEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnMgPSAkKHRoaXMpLnBhcmVudCgpLmZpbmQoJ3NlbGVjdC53b28tdmFyaWF0aW9uLXJhdy1zZWxlY3QnKS5maW5kKCdvcHRpb24nKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnQgPSAkKHRoaXMpLnBhcmVudCgpLmZpbmQoJ3NlbGVjdC53b28tdmFyaWF0aW9uLXJhdy1zZWxlY3QnKS5maW5kKCdvcHRpb246c2VsZWN0ZWQnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVxICAgICAgPSAkKHRoaXMpLnBhcmVudCgpLmZpbmQoJ3NlbGVjdC53b28tdmFyaWF0aW9uLXJhdy1zZWxlY3QnKS5maW5kKCdvcHRpb24nKS5lcSgxKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIG9wdGlvbnMuZWFjaChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoJCh0aGlzKS52YWwoKSAhPT0gJycpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RzLnB1c2goJCh0aGlzKS52YWwoKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWQgPSBjdXJyZW50ID8gY3VycmVudC52YWwoKSA6IGVxLnZhbCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgICAgICBfLmRlbGF5KCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxpLmVhY2goZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2YWx1ZSA9ICQodGhpcykuYXR0cignZGF0YS12YWx1ZScpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICQodGhpcykucmVtb3ZlQ2xhc3MoJ3NlbGVjdGVkIGRpc2FibGVkJykuYWRkQ2xhc3MoJ2Rpc2FibGVkJyk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaGlkZGVuX2JlaGF2aW91cikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyQodGhpcykuc3RvcCgpLmZhZGVJbignZmFzdCcpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChfLmNvbnRhaW5zKHNlbGVjdHMsIHZhbHVlKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKHRoaXMpLnJlbW92ZUNsYXNzKCdkaXNhYmxlZCcpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKHRoaXMpLmZpbmQoJ2lucHV0Lnd2cy1yYWRpby12YXJpYWJsZS1pdGVtOnJhZGlvJykucHJvcCgnZGlzYWJsZWQnLCBmYWxzZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZSA9PT0gc2VsZWN0ZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQodGhpcykuYWRkQ2xhc3MoJ3NlbGVjdGVkJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJCh0aGlzKS5oYXNDbGFzcygncmFkaW8tdmFyaWFibGUtaXRlbScpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCh0aGlzKS5maW5kKCdpbnB1dC53dnMtcmFkaW8tdmFyaWFibGUtaXRlbTpyYWRpbycpLnByb3AoJ2NoZWNrZWQnLCB0cnVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaGlkZGVuX2JlaGF2aW91cikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8kKHRoaXMpLnN0b3AoKS5mYWRlT3V0KCdmYXN0Jyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCQodGhpcykuaGFzQ2xhc3MoJ3JhZGlvLXZhcmlhYmxlLWl0ZW0nKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCh0aGlzKS5maW5kKCdpbnB1dC53dnMtcmFkaW8tdmFyaWFibGUtaXRlbTpyYWRpbycpLnByb3AoJ2Rpc2FibGVkJywgdHJ1ZSkucHJvcCgnY2hlY2tlZCcsIGZhbHNlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBJdGVtcyBVcGRhdGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAkKHRoaXMpLnRyaWdnZXIoJ3d2cy1pdGVtcy11cGRhdGVkJyk7XG4gICAgICAgICAgICAgICAgICAgIH0sIDEpO1xuXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAqIGpRdWVyeVxuICAgICAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAqL1xuXG4gICAgJC5mblsnV29vVmFyaWF0aW9uU3dhdGNoZXMnXSA9IFdvb1ZhcmlhdGlvblN3YXRjaGVzLl9qUXVlcnlJbnRlcmZhY2U7XG4gICAgJC5mblsnV29vVmFyaWF0aW9uU3dhdGNoZXMnXS5Db25zdHJ1Y3RvciA9IFdvb1ZhcmlhdGlvblN3YXRjaGVzO1xuICAgICQuZm5bJ1dvb1ZhcmlhdGlvblN3YXRjaGVzJ10ubm9Db25mbGljdCAgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICQuZm5bJ1dvb1ZhcmlhdGlvblN3YXRjaGVzJ10gPSAkLmZuWydXb29WYXJpYXRpb25Td2F0Y2hlcyddO1xuICAgICAgICByZXR1cm4gV29vVmFyaWF0aW9uU3dhdGNoZXMuX2pRdWVyeUludGVyZmFjZVxuICAgIH1cblxuICAgIHJldHVybiBXb29WYXJpYXRpb25Td2F0Y2hlcztcblxufSkoalF1ZXJ5KTtcblxuZXhwb3J0IGRlZmF1bHQgV29vVmFyaWF0aW9uU3dhdGNoZXNcblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gc3JjL2pzL1dvb1ZhcmlhdGlvblN3YXRjaGVzLmpzIiwialF1ZXJ5KCQgPT4ge1xuICAgIGltcG9ydCgnLi9Xb29WYXJpYXRpb25Td2F0Y2hlcycpLnRoZW4oKCkgPT4ge1xuICAgICAgICAvLyBJbml0IG9uIEFqYXggUG9wdXAgOilcbiAgICAgICAgJChkb2N1bWVudCkub24oJ3djX3ZhcmlhdGlvbl9mb3JtJywgJy52YXJpYXRpb25zX2Zvcm0nLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAkKHRoaXMpLldvb1ZhcmlhdGlvblN3YXRjaGVzKCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIFN1cHBvcnQgZm9yIEpldHBhY2sncyBJbmZpbml0ZSBTY3JvbGwsXG4gICAgICAgICQoZG9jdW1lbnQuYm9keSkub24oJ3Bvc3QtbG9hZCcsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICQoJy52YXJpYXRpb25zX2Zvcm0nKS5lYWNoKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAkKHRoaXMpLndjX3ZhcmlhdGlvbl9mb3JtKCk7XG4gICAgICAgICAgICB9KVxuICAgICAgICB9KTtcblxuICAgIH0pO1xufSk7ICAvLyBlbmQgb2YganF1ZXJ5IG1haW4gd3JhcHBlclxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyBzcmMvanMvZnJvbnRlbmQuanMiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7Ozs7Ozs7Ozs7QUM3REE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUhBO0FBTUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQTNCQTtBQUFBO0FBQUE7QUFrQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFqS0E7QUFBQTtBQUFBO0FBb0tBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQTlNQTtBQUFBO0FBQUE7QUFpTkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBek9BO0FBQUE7QUFBQTtBQTRPQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFNQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFNQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQXZWQTtBQUFBO0FBQUE7QUE2QkE7QUFDQTtBQUNBO0FBQ0E7QUFoQ0E7QUFDQTtBQURBO0FBQUE7QUFDQTtBQXlWQTs7Ozs7O0FBTUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTs7Ozs7Ozs7Ozs7Ozs7O0FDL1dBO0FBQ0E7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7Ozs7QSIsInNvdXJjZVJvb3QiOiIifQ==
assets/js/frontend.min.js CHANGED
@@ -1 +1 @@
1
- !function(t){function i(a){if(e[a])return e[a].exports;var n=e[a]={i:a,l:!1,exports:{}};return t[a].call(n.exports,n,n.exports,i),n.l=!0,n.exports}var e={};i.m=t,i.c=e,i.d=function(t,e,a){i.o(t,e)||Object.defineProperty(t,e,{configurable:!1,enumerable:!0,get:a})},i.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return i.d(e,"a",e),e},i.o=function(t,i){return Object.prototype.hasOwnProperty.call(t,i)},i.p="",i(i.s=8)}({10:function(t,i,e){"use strict";function a(t,i){if(!(t instanceof i))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(i,"__esModule",{value:!0});var n=function(){function t(t,i){for(var e=0;e<i.length;e++){var a=i[e];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(t,a.key,a)}}return function(i,e,a){return e&&t(i.prototype,e),a&&t(i,a),i}}(),o=function(t){var i={},e=function(){function e(n,o){a(this,e),this._element=t(n),this._config=t.extend({},i,o),this._generated={},this.product_variations=this._element.data("product_variations"),this.is_ajax_variation=!this.product_variations,this.product_id=this._element.data("product_id"),this.hidden_behaviour=t("body").hasClass("woo-variation-swatches-attribute-behavior-hide"),this.is_mobile=t("body").hasClass("woo-variation-swatches-on-mobile"),this.init(this.is_ajax_variation,this.hidden_behaviour),this.loaded(this.is_ajax_variation,this.hidden_behaviour),this.update(this.is_ajax_variation,this.hidden_behaviour),this.reset(this.is_ajax_variation,this.hidden_behaviour),t(document).trigger("woo_variation_swatches",[this._element])}return n(e,[{key:"init",value:function(i,e){var a=this;this._element.find("ul.variable-items-wrapper").each(function(i,e){var a=t(this).siblings("select.woo-variation-raw-select"),n=(t(this).find("li"),t(this).hasClass("reselect-clear")),o=t("body").hasClass("woo-variation-swatches-on-mobile");t(this).parent().addClass("woo-variation-items-wrapper"),a.length<1&&(a=t(this).parent().find("select.woo-variation-raw-select")),n?(t(this).on("touchstart click","li:not(.selected):not(.radio-variable-item)",function(i){i.preventDefault(),i.stopPropagation();var e=t(this).data("value");a.val(e).trigger("change"),a.trigger("click"),a.trigger("focusin"),o&&a.trigger("touchstart"),t(this).trigger("focus")}),t(this).on("touchstart click","li.selected:not(.radio-variable-item)",function(i){i.preventDefault(),i.stopPropagation(),a.val("").trigger("change"),a.trigger("click"),a.trigger("focusin"),o&&a.trigger("touchstart"),t(this).trigger("focus")}),t(this).on("touchstart click","input.wvs-radio-variable-item:radio",function(i){i.preventDefault(),i.stopPropagation(),t(this).trigger("change")}),t(this).on("change","input.wvs-radio-variable-item:radio",function(i){var e=this;i.preventDefault(),i.stopPropagation();var n=t(this).val();t(this).parent(".radio-variable-item").hasClass("selected")?(a.val("").trigger("change"),_.delay(function(){t(e).prop("checked",!1)},1)):a.val(n).trigger("change"),a.trigger("click"),a.trigger("focusin"),o&&a.trigger("touchstart")})):(t(this).on("touchstart click","li:not(.radio-variable-item)",function(i){i.preventDefault(),i.stopPropagation();var e=t(this).data("value");a.val(e).trigger("change"),a.trigger("click"),a.trigger("focusin"),o&&a.trigger("touchstart"),t(this).trigger("focus")}),t(this).on("change","input.wvs-radio-variable-item:radio",function(i){i.preventDefault(),i.stopPropagation();var e=t(this).val();a.val(e).trigger("change"),a.trigger("click"),a.trigger("focusin"),o&&a.trigger("touchstart"),t(this).parent("li.radio-variable-item").removeClass("selected disabled").addClass("selected")}))}),_.delay(function(){a._element.trigger("woo_variation_swatches_init",[a,a.product_variations]),t(document).trigger("woo_variation_swatches_loaded",[a._element,a.product_variations])},2)}},{key:"loaded",value:function(i,e){i||this._element.on("woo_variation_swatches_init",function(i,e,a){e._generated=a.reduce(function(t,i){return Object.keys(i.attributes).map(function(e){t[e]||(t[e]=[]),i.attributes[e]&&t[e].push(i.attributes[e])}),t},{}),t(this).find("ul.variable-items-wrapper").each(function(){var i=t(this).find("li"),a=t(this).data("attribute_name"),n=e._generated[a];i.each(function(){var i=t(this).attr("data-value");_.isEmpty(n)||n.includes(i)||(t(this).removeClass("selected"),t(this).addClass("disabled"),t(this).hasClass("radio-variable-item")&&t(this).find("input.wvs-radio-variable-item:radio").prop("disabled",!0).prop("checked",!1))})})})}},{key:"reset",value:function(i,e){this._element.on("reset_data",function(e){t(this).find("ul.variable-items-wrapper").each(function(){t(this).find("li").each(function(){i?t(this).hasClass("radio-variable-item"):(t(this).removeClass("selected disabled"),t(this).hasClass("radio-variable-item")&&t(this).find("input.wvs-radio-variable-item:radio").prop("disabled",!1).prop("checked",!1))})})})}},{key:"update",value:function(i,e){this._element.on("woocommerce_variation_has_changed",function(e){i&&t(this).find("ul.variable-items-wrapper").each(function(){var i="",e=t(this).siblings("select.woo-variation-raw-select").find("option"),a=t(this).siblings("select.woo-variation-raw-select").find("option:selected"),n=t(this).siblings("select.woo-variation-raw-select").find("option").eq(1),o=t(this).find("li"),r=[];e.length<1&&(e=t(this).parent().find("select.woo-variation-raw-select").find("option"),a=t(this).parent().find("select.woo-variation-raw-select").find("option:selected"),n=t(this).parent().find("select.woo-variation-raw-select").find("option").eq(1)),e.each(function(){""!==t(this).val()&&(r.push(t(this).val()),i=a?a.val():n.val())}),_.delay(function(){o.each(function(){var e=t(this).attr("data-value");t(this).removeClass("selected disabled"),e===i&&(t(this).addClass("selected"),t(this).hasClass("radio-variable-item")&&t(this).find("input.wvs-radio-variable-item:radio").prop("disabled",!1).prop("checked",!0))})},1)})}),this._element.on("woocommerce_update_variation_values",function(i){t(this).find("ul.variable-items-wrapper").each(function(){var i="",e=t(this).siblings("select.woo-variation-raw-select").find("option"),a=t(this).siblings("select.woo-variation-raw-select").find("option:selected"),n=t(this).siblings("select.woo-variation-raw-select").find("option").eq(1),o=t(this).find("li"),r=[];e.length<1&&(e=t(this).parent().find("select.woo-variation-raw-select").find("option"),a=t(this).parent().find("select.woo-variation-raw-select").find("option:selected"),n=t(this).parent().find("select.woo-variation-raw-select").find("option").eq(1)),e.each(function(){""!==t(this).val()&&(r.push(t(this).val()),i=a?a.val():n.val())}),_.delay(function(){o.each(function(){var e=t(this).attr("data-value");t(this).removeClass("selected disabled").addClass("disabled"),_.contains(r,e)?(t(this).removeClass("disabled"),t(this).find("input.wvs-radio-variable-item:radio").prop("disabled",!1),e===i&&(t(this).addClass("selected"),t(this).hasClass("radio-variable-item")&&t(this).find("input.wvs-radio-variable-item:radio").prop("checked",!0))):t(this).hasClass("radio-variable-item")&&t(this).find("input.wvs-radio-variable-item:radio").prop("disabled",!0).prop("checked",!1)})},1)})})}}],[{key:"_jQueryInterface",value:function(t){return this.each(function(){new e(this,t)})}}]),e}();return t.fn.WooVariationSwatches=e._jQueryInterface,t.fn.WooVariationSwatches.Constructor=e,t.fn.WooVariationSwatches.noConflict=function(){return t.fn.WooVariationSwatches=t.fn.WooVariationSwatches,e._jQueryInterface},e}(jQuery);i.default=o},8:function(t,i,e){t.exports=e(9)},9:function(t,i,e){jQuery(function(t){Promise.resolve().then(function(){return e(10)}).then(function(){t(document).on("wc_variation_form",".variations_form",function(){t(this).WooVariationSwatches()}),t(document.body).on("post-load",function(){t(".variations_form").each(function(){t(this).wc_variation_form()})})})})}});
1
+ !function(t){function i(a){if(e[a])return e[a].exports;var r=e[a]={i:a,l:!1,exports:{}};return t[a].call(r.exports,r,r.exports,i),r.l=!0,r.exports}var e={};i.m=t,i.c=e,i.d=function(t,e,a){i.o(t,e)||Object.defineProperty(t,e,{configurable:!1,enumerable:!0,get:a})},i.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return i.d(e,"a",e),e},i.o=function(t,i){return Object.prototype.hasOwnProperty.call(t,i)},i.p="",i(i.s=8)}({10:function(t,i,e){"use strict";function a(t,i){if(!(t instanceof i))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(i,"__esModule",{value:!0});var r=function(){function t(t,i){for(var e=0;e<i.length;e++){var a=i[e];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(t,a.key,a)}}return function(i,e,a){return e&&t(i.prototype,e),a&&t(i,a),i}}(),n=function(t){var i={},e=function(){function e(r,n){a(this,e),this._element=t(r),this._config=t.extend({},i,n),this._generated={},this.product_variations=this._element.data("product_variations"),this.is_ajax_variation=!this.product_variations,this.product_id=this._element.data("product_id"),this.hidden_behaviour=t("body").hasClass("woo-variation-swatches-attribute-behavior-hide"),this.is_mobile=t("body").hasClass("woo-variation-swatches-on-mobile"),this.init(this.is_ajax_variation,this.hidden_behaviour),this.loaded(this.is_ajax_variation,this.hidden_behaviour),this.update(this.is_ajax_variation,this.hidden_behaviour),this.reset(this.is_ajax_variation,this.hidden_behaviour),t(document).trigger("woo_variation_swatches",[this._element])}return r(e,[{key:"init",value:function(i,e){var a=this,r=this;this._element.find("ul.variable-items-wrapper").each(function(i,e){var a=t(this).siblings("select.woo-variation-raw-select"),n=(t(this).find("li"),t(this).hasClass("reselect-clear")),s=t("body").hasClass("woo-variation-swatches-on-mobile");t(this).parent().addClass("woo-variation-items-wrapper"),a.length<1&&(a=t(this).parent().find("select.woo-variation-raw-select")),n?(t(this).on("touchstart click","li:not(.selected):not(.radio-variable-item)",function(i){i.preventDefault(),i.stopPropagation();var e=t(this).data("value");a.val(e).trigger("change"),a.trigger("click"),a.trigger("focusin"),s&&a.trigger("touchstart"),t(this).trigger("focus"),t(this).trigger("wvs-selected-item",[e,a,r._element])}),t(this).on("touchstart click","li.selected:not(.radio-variable-item)",function(i){i.preventDefault(),i.stopPropagation(),a.val("").trigger("change"),a.trigger("click"),a.trigger("focusin"),s&&a.trigger("touchstart"),t(this).trigger("focus"),t(this).trigger("wvs-unselected-item",[value,a,r._element])}),t(this).on("touchstart click","input.wvs-radio-variable-item:radio",function(i){i.preventDefault(),i.stopPropagation(),t(this).trigger("change")}),t(this).on("change","input.wvs-radio-variable-item:radio",function(i){var e=this;i.preventDefault(),i.stopPropagation();var n=t(this).val();t(this).parent("li.radio-variable-item").hasClass("selected")?(a.val("").trigger("change"),_.delay(function(){t(e).prop("checked",!1),t(e).parent("li.radio-variable-item").trigger("wvs-unselected-item",[n,a,r._element])},1)):(a.val(n).trigger("change"),t(this).parent(".radio-variable-item").trigger("wvs-selected-item",[n,a,r._element])),a.trigger("click"),a.trigger("focusin"),s&&a.trigger("touchstart")})):(t(this).on("touchstart click","li:not(.radio-variable-item)",function(i){i.preventDefault(),i.stopPropagation();var e=t(this).data("value");a.val(e).trigger("change"),a.trigger("click"),a.trigger("focusin"),s&&a.trigger("touchstart"),t(this).trigger("focus"),t(this).trigger("wvs-selected-item",[e,a,r._element])}),t(this).on("change","input.wvs-radio-variable-item:radio",function(i){i.preventDefault(),i.stopPropagation();var e=t(this).val();a.val(e).trigger("change"),a.trigger("click"),a.trigger("focusin"),s&&a.trigger("touchstart"),t(this).parent("li.radio-variable-item").removeClass("selected disabled").addClass("selected"),t(this).parent("li.radio-variable-item").trigger("wvs-selected-item",[e,a,r._element])}))}),_.delay(function(){a._element.trigger("woo_variation_swatches_init",[a,a.product_variations]),t(document).trigger("woo_variation_swatches_loaded",[a._element,a.product_variations])},2)}},{key:"loaded",value:function(i,e){i||this._element.on("woo_variation_swatches_init",function(i,e,a){e._generated=a.reduce(function(t,i){return _.isArray(i)||Object.keys(i.attributes).map(function(i){t[i]||(t[i]=[])}),t},{}),t(this).find("ul.variable-items-wrapper").each(function(){var i=t(this).find("li"),a=t(this).data("attribute_name"),r=e._generated[a];i.each(function(){var i=t(this).attr("data-value");_.isEmpty(r)||r.includes(i)||(t(this).removeClass("selected"),t(this).addClass("disabled"),t(this).hasClass("radio-variable-item")&&t(this).find("input.wvs-radio-variable-item:radio").prop("disabled",!0).prop("checked",!1))})})})}},{key:"reset",value:function(i,e){var a=this;this._element.on("reset_data",function(e){t(this).find("ul.variable-items-wrapper").each(function(){t(this).find("li").each(function(){i?t(this).hasClass("radio-variable-item"):(t(this).removeClass("selected disabled"),t(this).hasClass("radio-variable-item")&&t(this).find("input.wvs-radio-variable-item:radio").prop("disabled",!1).prop("checked",!1)),t(this).trigger("wvs-unselected-item",["","",a._element])})})})}},{key:"update",value:function(i,e){this._element.on("woocommerce_variation_has_changed",function(e){i&&t(this).find("ul.variable-items-wrapper").each(function(){var i=this,e="",a=t(this).siblings("select.woo-variation-raw-select").find("option"),r=t(this).siblings("select.woo-variation-raw-select").find("option:selected"),n=t(this).siblings("select.woo-variation-raw-select").find("option").eq(1),s=t(this).find("li"),o=[];a.length<1&&(a=t(this).parent().find("select.woo-variation-raw-select").find("option"),r=t(this).parent().find("select.woo-variation-raw-select").find("option:selected"),n=t(this).parent().find("select.woo-variation-raw-select").find("option").eq(1)),a.each(function(){""!==t(this).val()&&(o.push(t(this).val()),e=r?r.val():n.val())}),_.delay(function(){s.each(function(){var i=t(this).attr("data-value");t(this).removeClass("selected disabled"),i===e&&(t(this).addClass("selected"),t(this).hasClass("radio-variable-item")&&t(this).find("input.wvs-radio-variable-item:radio").prop("disabled",!1).prop("checked",!0))}),t(i).trigger("wvs-items-updated")},1)})}),this._element.on("woocommerce_update_variation_values",function(i){t(this).find("ul.variable-items-wrapper").each(function(){var i=this,e="",a=t(this).siblings("select.woo-variation-raw-select").find("option"),r=t(this).siblings("select.woo-variation-raw-select").find("option:selected"),n=t(this).siblings("select.woo-variation-raw-select").find("option").eq(1),s=t(this).find("li"),o=[];a.length<1&&(a=t(this).parent().find("select.woo-variation-raw-select").find("option"),r=t(this).parent().find("select.woo-variation-raw-select").find("option:selected"),n=t(this).parent().find("select.woo-variation-raw-select").find("option").eq(1)),a.each(function(){""!==t(this).val()&&(o.push(t(this).val()),e=r?r.val():n.val())}),_.delay(function(){s.each(function(){var i=t(this).attr("data-value");t(this).removeClass("selected disabled").addClass("disabled"),_.contains(o,i)?(t(this).removeClass("disabled"),t(this).find("input.wvs-radio-variable-item:radio").prop("disabled",!1),i===e&&(t(this).addClass("selected"),t(this).hasClass("radio-variable-item")&&t(this).find("input.wvs-radio-variable-item:radio").prop("checked",!0))):t(this).hasClass("radio-variable-item")&&t(this).find("input.wvs-radio-variable-item:radio").prop("disabled",!0).prop("checked",!1)}),t(i).trigger("wvs-items-updated")},1)})})}}],[{key:"_jQueryInterface",value:function(t){return this.each(function(){new e(this,t)})}}]),e}();return t.fn.WooVariationSwatches=e._jQueryInterface,t.fn.WooVariationSwatches.Constructor=e,t.fn.WooVariationSwatches.noConflict=function(){return t.fn.WooVariationSwatches=t.fn.WooVariationSwatches,e._jQueryInterface},e}(jQuery);i.default=n},8:function(t,i,e){t.exports=e(9)},9:function(t,i,e){jQuery(function(t){Promise.resolve().then(function(){return e(10)}).then(function(){t(document).on("wc_variation_form",".variations_form",function(){t(this).WooVariationSwatches()}),t(document.body).on("post-load",function(){t(".variations_form").each(function(){t(this).wc_variation_form()})})})})}});
images/special-preview.png ADDED
Binary file
images/style-preview.png CHANGED
Binary file
includes/class-wvs-settings-api.php CHANGED
@@ -218,7 +218,9 @@
218
 
219
  $section = apply_filters( 'wvs_settings_section', $section, $tab );
220
 
221
- $section[ 'id' ] = ! isset( $section[ 'id' ] ) ? $tab[ 'id' ] . '-section' : $section[ 'id' ];
 
 
222
 
223
  // Adding Settings section id
224
  $this->fields[ $tab_key ][ 'sections' ][ $section_key ][ 'id' ] = $section[ 'id' ];
218
 
219
  $section = apply_filters( 'wvs_settings_section', $section, $tab );
220
 
221
+ //print_r( $section); die;
222
+
223
+ $section[ 'id' ] = ! isset( $section[ 'id' ] ) ? $tab[ 'id' ] . '-section-'.$section_key : $section[ 'id' ];
224
 
225
  // Adding Settings section id
226
  $this->fields[ $tab_key ][ 'sections' ][ $section_key ][ 'id' ] = $section[ 'id' ];
includes/functions.php CHANGED
@@ -10,7 +10,7 @@
10
  function wvs_is_ie11() {
11
  global $is_IE;
12
  $ua = $_SERVER[ 'HTTP_USER_AGENT' ];
13
- $is11 = preg_match( "/Trident\/7.0;(.*)rv:11.0/", $ua, $match ) !== FALSE;
14
 
15
  return $is_IE && $is11;
16
  //return TRUE;
@@ -36,7 +36,7 @@
36
  //-------------------------------------------------------------------------------
37
 
38
  if ( ! function_exists( 'wvs_available_attributes_types' ) ):
39
- function wvs_available_attributes_types( $type = FALSE ) {
40
  $types = array();
41
 
42
  $types[ 'color' ] = array(
@@ -75,7 +75,7 @@
75
  function wvs_color_variation_attribute_preview( $term_id, $attribute, $fields ) {
76
 
77
  $key = $fields[ 0 ][ 'id' ];
78
- $value = sanitize_hex_color( get_term_meta( $term_id, $key, TRUE ) );
79
 
80
  printf( '<div class="wvs-preview wvs-color-preview" style="background-color:%s;"></div>', esc_attr( $value ) );
81
  }
@@ -89,7 +89,7 @@
89
  function wvs_image_variation_attribute_preview( $term_id, $attribute, $fields ) {
90
 
91
  $key = $fields[ 0 ][ 'id' ];
92
- $attachment_id = absint( get_term_meta( $term_id, $key, TRUE ) );
93
  $image = wp_get_attachment_image_url( $attachment_id );
94
 
95
  printf( '<img src="%s" class="wvs-preview wvs-image-preview" />', esc_url( $image ) );
@@ -126,7 +126,7 @@
126
  if ( is_ajax() && isset( $_GET[ 'product_id' ] ) ) {
127
  $product_id = absint( $_GET[ 'product_id' ] );
128
  $product = wc_get_product( $product_id );
129
- $available_variations = $product->get_available_variations();
130
 
131
  wp_send_json_success( wp_json_encode( $available_variations ) );
132
  } else {
@@ -145,7 +145,7 @@
145
 
146
  do_action( 'before_wvs_settings', woo_variation_swatches() );
147
 
148
- woo_variation_swatches()->add_setting( 'simple', esc_html__( 'Simple', 'woo-variation-swatches' ), array(
149
  array(
150
  'title' => esc_html__( 'Visual Section', 'woo-variation-swatches' ),
151
  'desc' => esc_html__( 'Simple change some visual styles', 'woo-variation-swatches' ),
@@ -155,14 +155,14 @@
155
  'type' => 'checkbox',
156
  'title' => esc_html__( 'Enable Tooltip', 'woo-variation-swatches' ),
157
  'desc' => esc_html__( 'Enable / Disable plugin default tooltip on each product attribute.', 'woo-variation-swatches' ),
158
- 'default' => TRUE
159
  ),
160
  array(
161
  'id' => 'stylesheet',
162
  'type' => 'checkbox',
163
  'title' => esc_html__( 'Enable Stylesheet', 'woo-variation-swatches' ),
164
  'desc' => esc_html__( 'Enable / Disable plugin default stylesheet', 'woo-variation-swatches' ),
165
- 'default' => TRUE
166
  ),
167
  array(
168
  'id' => 'style',
@@ -175,12 +175,11 @@
175
  ),
176
  'default' => 'rounded'
177
  )
178
-
179
  ) )
180
  )
181
- ), apply_filters( 'wvs_simple_setting_default_active', TRUE ) );
182
 
183
- woo_variation_swatches()->add_setting( 'advanced', esc_html__( 'Advanced', 'woo-variation-swatches' ), array(
184
  array(
185
  'title' => esc_html__( 'Visual Section', 'woo-variation-swatches' ),
186
  'desc' => esc_html__( 'Advanced change some visual styles', 'woo-variation-swatches' ),
@@ -190,7 +189,7 @@
190
  'type' => 'checkbox',
191
  'title' => esc_html__( 'Clear on Reselect', 'woo-variation-swatches' ),
192
  'desc' => esc_html__( 'Clear selected attribute on select again', 'woo-variation-swatches' ),
193
- 'default' => FALSE
194
  ),
195
  array(
196
  'id' => 'threshold',
@@ -207,8 +206,9 @@
207
  'title' => esc_html__( 'Attribute behavior', 'woo-variation-swatches' ),
208
  'desc' => __( 'Disabled attribute will be hide / blur. <br><span style="color: red">Note: Product variation loaded via ajax doesn\'t apply this feature.</span>', 'woo-variation-swatches' ),
209
  'options' => array(
210
- 'blur' => esc_html__( 'Blur', 'woo-variation-swatches' ),
211
- 'hide' => esc_html__( 'Hide', 'woo-variation-swatches' ),
 
212
  ),
213
  'default' => 'blur'
214
  ),
@@ -252,42 +252,60 @@
252
  )
253
  ) )
254
  )
255
- ), apply_filters( 'wvs_advanced_setting_default_active', FALSE ) );
256
 
257
  if ( ! woo_variation_swatches()->is_pro_active() ) {
258
  woo_variation_swatches()->add_setting( 'style', esc_html__( 'Style', 'woo-variation-swatches' ), array(
259
  array(
260
- 'pro' => TRUE,
261
  'title' => esc_html__( 'Visual Styling', 'woo-variation-swatches-pro' ),
262
- 'desc' => esc_html__( 'Change some visual styles', 'woo-variation-swatches-pro' ),
263
  'fields' => apply_filters( 'wvs_pro_style_setting_fields', array(
264
  array(
265
- 'pro' => TRUE,
266
- 'width' => '40%',
267
  'screen_shot' => woo_variation_swatches()->images_uri( 'style-preview.png' ),
268
  'product_link' => woo_variation_swatches()->get_pro_link( 'style-tab' ),
269
  ),
270
  ) )
271
  )
272
- ), apply_filters( 'wvs_pro_style_setting_default_active', FALSE ) );
273
  }
274
 
275
  if ( ! woo_variation_swatches()->is_pro_active() ) {
276
- woo_variation_swatches()->add_setting( 'archive', esc_html__( 'Archive / Shop', 'woo-variation-swatches-pro' ), array(
277
  array(
278
- 'pro' => TRUE,
279
  'title' => esc_html__( 'Visual Section', 'woo-variation-swatches-pro' ),
280
- 'desc' => esc_html__( 'Advanced change some visual styles', 'woo-variation-swatches-pro' ),
281
  'fields' => apply_filters( 'wvs_pro_archive_setting_fields', array(
282
  array(
283
- 'pro' => TRUE,
284
  'width' => '44%',
285
  'screen_shot' => woo_variation_swatches()->images_uri( 'archive-preview.png' ),
286
  'product_link' => woo_variation_swatches()->get_pro_link( 'archive-tab' ),
287
  ),
288
  ) )
289
  )
290
- ), apply_filters( 'wvs_pro_archive_setting_default_active', FALSE ) );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
291
  }
292
 
293
  do_action( 'after_wvs_settings', woo_variation_swatches() );
@@ -299,7 +317,7 @@
299
  //-------------------------------------------------------------------------------
300
 
301
  if ( ! function_exists( 'wvs_taxonomy_meta_fields' ) ):
302
- function wvs_taxonomy_meta_fields( $field_id = FALSE ) {
303
 
304
  $fields = array();
305
 
@@ -339,7 +357,7 @@
339
  if ( ! function_exists( 'wvs_is_color_attribute' ) ):
340
  function wvs_is_color_attribute( $attribute ) {
341
  if ( ! is_object( $attribute ) ) {
342
- return FALSE;
343
  }
344
 
345
  return $attribute->attribute_type == 'color';
@@ -353,7 +371,7 @@
353
  if ( ! function_exists( 'wvs_is_image_attribute' ) ):
354
  function wvs_is_image_attribute( $attribute ) {
355
  if ( ! is_object( $attribute ) ) {
356
- return FALSE;
357
  }
358
 
359
  return $attribute->attribute_type == 'image';
@@ -367,7 +385,7 @@
367
  if ( ! function_exists( 'wvs_is_button_attribute' ) ):
368
  function wvs_is_button_attribute( $attribute ) {
369
  if ( ! is_object( $attribute ) ) {
370
- return FALSE;
371
  }
372
 
373
  return $attribute->attribute_type == 'button';
@@ -381,7 +399,7 @@
381
  if ( ! function_exists( 'wvs_is_radio_attribute' ) ):
382
  function wvs_is_radio_attribute( $attribute ) {
383
  if ( ! is_object( $attribute ) ) {
384
- return FALSE;
385
  }
386
 
387
  return $attribute->attribute_type == 'radio';
@@ -395,7 +413,7 @@
395
  if ( ! function_exists( 'wvs_is_select_attribute' ) ):
396
  function wvs_is_select_attribute( $attribute ) {
397
  if ( ! is_object( $attribute ) ) {
398
- return FALSE;
399
  }
400
 
401
  return $attribute->attribute_type == 'select';
@@ -409,10 +427,10 @@
409
  if ( ! function_exists( 'wvs_get_product_attribute_color' ) ):
410
  function wvs_get_product_attribute_color( $term ) {
411
  if ( ! is_object( $term ) ) {
412
- return FALSE;
413
  }
414
 
415
- return get_term_meta( $term->term_id, 'product_attribute_color', TRUE );
416
  }
417
  endif;
418
 
@@ -423,10 +441,10 @@
423
  if ( ! function_exists( 'wvs_get_product_attribute_image' ) ):
424
  function wvs_get_product_attribute_image( $term ) {
425
  if ( ! is_object( $term ) ) {
426
- return FALSE;
427
  }
428
 
429
- return get_term_meta( $term->term_id, 'product_attribute_image', TRUE );
430
  }
431
  endif;
432
 
@@ -479,7 +497,7 @@
479
  $all_terms = get_terms( $taxonomy, apply_filters( 'woocommerce_product_attribute_terms', $args ) );
480
  if ( $all_terms ) :
481
  foreach ( $all_terms as $term ) :
482
- echo '<option value="' . esc_attr( $term->term_id ) . '" ' . selected( has_term( absint( $term->term_id ), $taxonomy, $thepostid ), TRUE, FALSE ) . '>' . esc_attr( apply_filters( 'woocommerce_product_attribute_term_name', $term->name, $term ) ) . '</option>';
483
  endforeach;
484
  endif;
485
  ?>
@@ -516,7 +534,7 @@
516
  delete_transient( $transient );
517
  }
518
 
519
- if ( FALSE === ( $attribute_taxonomy = get_transient( $transient ) ) ) {
520
  global $wpdb;
521
 
522
  $attribute_name = str_replace( 'pa_', '', wc_sanitize_taxonomy_name( $attribute_name ) );
@@ -567,7 +585,7 @@
567
 
568
  array_push( $css_classes, $clear_on_reselect );
569
 
570
- $data = sprintf( '<ul class="variable-items-wrapper %s" data-attribute_name="%s">%s</ul>', implode( ' ', $css_classes ), esc_attr( wc_variation_attribute_name( $attribute ) ), $contents );
571
 
572
  return apply_filters( 'wvs_variable_items_wrapper', $data, $contents, $type, $args, $saved_attribute );
573
  }
@@ -602,12 +620,12 @@
602
 
603
  switch ( $type ):
604
  case 'color':
605
- $color = sanitize_hex_color( get_term_meta( $term->term_id, 'product_attribute_color', TRUE ) );
606
  $data .= sprintf( '<span class="variable-item-span variable-item-span-%s" style="background-color:%s;"></span>', esc_attr( $type ), esc_attr( $color ) );
607
  break;
608
 
609
  case 'image':
610
- $attachment_id = absint( get_term_meta( $term->term_id, 'product_attribute_image', TRUE ) );
611
  $image_size = woo_variation_swatches()->get_option( 'attribute_image_size' );
612
  $image_url = wp_get_attachment_image_url( $attachment_id, apply_filters( 'wvs_product_attribute_image_size', $image_size ) );
613
  $data .= sprintf( '<img alt="%s" src="%s" />', esc_attr( $term->name ), esc_url( $image_url ) );
@@ -619,7 +637,7 @@
619
 
620
  case 'radio':
621
  $id = uniqid( $term->slug );
622
- $data .= sprintf( '<input name="%1$s" id="%2$s" class="wvs-radio-variable-item" %3$s type="radio" value="%4$s" data-value="%4$s" /><label for="%2$s">%5$s</label>', $name, $id, checked( sanitize_title( $args[ 'selected' ] ), $term->slug, FALSE ), esc_attr( $term->slug ), esc_html( $term->name ) );
623
  break;
624
 
625
  default:
@@ -644,10 +662,10 @@
644
  function wvs_color_variation_attribute_options( $args = array() ) {
645
 
646
  $args = wp_parse_args( $args, array(
647
- 'options' => FALSE,
648
- 'attribute' => FALSE,
649
- 'product' => FALSE,
650
- 'selected' => FALSE,
651
  'name' => '',
652
  'id' => '',
653
  'class' => '',
@@ -662,7 +680,7 @@
662
  $name = $args[ 'name' ] ? $args[ 'name' ] : wc_variation_attribute_name( $attribute );
663
  $id = $args[ 'id' ] ? $args[ 'id' ] : sanitize_title( $attribute );
664
  $class = $args[ 'class' ];
665
- $show_option_none = $args[ 'show_option_none' ] ? TRUE : FALSE;
666
  $show_option_none_text = $args[ 'show_option_none' ] ? $args[ 'show_option_none' ] : esc_html__( 'Choose an option', 'woocommerce' ); // We'll do our best to hide the placeholder, but we'll need to show something when resetting options.
667
 
668
  if ( empty( $options ) && ! empty( $product ) && ! empty( $attribute ) ) {
@@ -687,13 +705,13 @@
687
 
688
  foreach ( $terms as $term ) {
689
  if ( in_array( $term->slug, $options ) ) {
690
- echo '<option value="' . esc_attr( $term->slug ) . '" ' . selected( sanitize_title( $args[ 'selected' ] ), $term->slug, FALSE ) . '>' . apply_filters( 'woocommerce_variation_option_name', $term->name ) . '</option>';
691
  }
692
  }
693
  } else {
694
  foreach ( $options as $option ) {
695
  // This handles < 2.4.0 bw compatibility where text attributes were not sanitized.
696
- $selected = sanitize_title( $args[ 'selected' ] ) === $args[ 'selected' ] ? selected( $args[ 'selected' ], sanitize_title( $option ), FALSE ) : selected( $args[ 'selected' ], $option, FALSE );
697
  echo '<option value="' . esc_attr( $option ) . '" ' . $selected . '>' . esc_html( apply_filters( 'woocommerce_variation_option_name', $option ) ) . '</option>';
698
  }
699
  }
@@ -716,10 +734,10 @@
716
  function wvs_image_variation_attribute_options( $args = array() ) {
717
 
718
  $args = wp_parse_args( $args, array(
719
- 'options' => FALSE,
720
- 'attribute' => FALSE,
721
- 'product' => FALSE,
722
- 'selected' => FALSE,
723
  'name' => '',
724
  'id' => '',
725
  'class' => '',
@@ -734,7 +752,7 @@
734
  $name = $args[ 'name' ] ? $args[ 'name' ] : wc_variation_attribute_name( $attribute );
735
  $id = $args[ 'id' ] ? $args[ 'id' ] : sanitize_title( $attribute );
736
  $class = $args[ 'class' ];
737
- $show_option_none = $args[ 'show_option_none' ] ? TRUE : FALSE;
738
  $show_option_none_text = $args[ 'show_option_none' ] ? $args[ 'show_option_none' ] : esc_html__( 'Choose an option', 'woocommerce' ); // We'll do our best to hide the placeholder, but we'll need to show something when resetting options.
739
 
740
  if ( empty( $options ) && ! empty( $product ) && ! empty( $attribute ) ) {
@@ -761,13 +779,13 @@
761
 
762
  foreach ( $terms as $term ) {
763
  if ( in_array( $term->slug, $options ) ) {
764
- echo '<option value="' . esc_attr( $term->slug ) . '" ' . selected( sanitize_title( $args[ 'selected' ] ), $term->slug, FALSE ) . '>' . apply_filters( 'woocommerce_variation_option_name', $term->name ) . '</option>';
765
  }
766
  }
767
  } else {
768
  foreach ( $options as $option ) {
769
  // This handles < 2.4.0 bw compatibility where text attributes were not sanitized.
770
- $selected = sanitize_title( $args[ 'selected' ] ) === $args[ 'selected' ] ? selected( $args[ 'selected' ], sanitize_title( $option ), FALSE ) : selected( $args[ 'selected' ], $option, FALSE );
771
  echo '<option value="' . esc_attr( $option ) . '" ' . $selected . '>' . esc_html( apply_filters( 'woocommerce_variation_option_name', $option ) ) . '</option>';
772
  }
773
  }
@@ -789,10 +807,10 @@
789
  function wvs_button_variation_attribute_options( $args = array() ) {
790
 
791
  $args = wp_parse_args( $args, array(
792
- 'options' => FALSE,
793
- 'attribute' => FALSE,
794
- 'product' => FALSE,
795
- 'selected' => FALSE,
796
  'name' => '',
797
  'id' => '',
798
  'class' => '',
@@ -807,7 +825,7 @@
807
  $name = $args[ 'name' ] ? $args[ 'name' ] : wc_variation_attribute_name( $attribute );
808
  $id = $args[ 'id' ] ? $args[ 'id' ] : sanitize_title( $attribute );
809
  $class = $args[ 'class' ];
810
- $show_option_none = $args[ 'show_option_none' ] ? TRUE : FALSE;
811
  $show_option_none_text = $args[ 'show_option_none' ] ? $args[ 'show_option_none' ] : esc_html__( 'Choose an option', 'woocommerce' ); // We'll do our best to hide the placeholder, but we'll need to show something when resetting options.
812
 
813
  if ( empty( $options ) && ! empty( $product ) && ! empty( $attribute ) ) {
@@ -832,13 +850,13 @@
832
 
833
  foreach ( $terms as $term ) {
834
  if ( in_array( $term->slug, $options ) ) {
835
- echo '<option value="' . esc_attr( $term->slug ) . '" ' . selected( sanitize_title( $args[ 'selected' ] ), $term->slug, FALSE ) . '>' . apply_filters( 'woocommerce_variation_option_name', $term->name ) . '</option>';
836
  }
837
  }
838
  } else {
839
  foreach ( $options as $option ) {
840
  // This handles < 2.4.0 bw compatibility where text attributes were not sanitized.
841
- $selected = sanitize_title( $args[ 'selected' ] ) === $args[ 'selected' ] ? selected( $args[ 'selected' ], sanitize_title( $option ), FALSE ) : selected( $args[ 'selected' ], $option, FALSE );
842
  echo '<option value="' . esc_attr( $option ) . '" ' . $selected . '>' . esc_html( apply_filters( 'woocommerce_variation_option_name', $option ) ) . '</option>';
843
  }
844
  }
@@ -860,10 +878,10 @@
860
  function wvs_radio_variation_attribute_options( $args = array() ) {
861
 
862
  $args = wp_parse_args( $args, array(
863
- 'options' => FALSE,
864
- 'attribute' => FALSE,
865
- 'product' => FALSE,
866
- 'selected' => FALSE,
867
  'name' => '',
868
  'id' => '',
869
  'class' => '',
@@ -878,7 +896,7 @@
878
  $name = $args[ 'name' ] ? $args[ 'name' ] : wc_variation_attribute_name( $attribute );
879
  $id = $args[ 'id' ] ? $args[ 'id' ] : sanitize_title( $attribute );
880
  $class = $args[ 'class' ];
881
- $show_option_none = $args[ 'show_option_none' ] ? TRUE : FALSE;
882
  $show_option_none_text = $args[ 'show_option_none' ] ? $args[ 'show_option_none' ] : esc_html__( 'Choose an option', 'woocommerce' ); // We'll do our best to hide the placeholder, but we'll need to show something when resetting options.
883
 
884
  if ( empty( $options ) && ! empty( $product ) && ! empty( $attribute ) ) {
@@ -903,13 +921,13 @@
903
 
904
  foreach ( $terms as $term ) {
905
  if ( in_array( $term->slug, $options ) ) {
906
- echo '<option value="' . esc_attr( $term->slug ) . '" ' . selected( sanitize_title( $args[ 'selected' ] ), $term->slug, FALSE ) . '>' . apply_filters( 'woocommerce_variation_option_name', $term->name ) . '</option>';
907
  }
908
  }
909
  } else {
910
  foreach ( $options as $option ) {
911
  // This handles < 2.4.0 bw compatibility where text attributes were not sanitized.
912
- $selected = sanitize_title( $args[ 'selected' ] ) === $args[ 'selected' ] ? selected( $args[ 'selected' ], sanitize_title( $option ), FALSE ) : selected( $args[ 'selected' ], $option, FALSE );
913
  echo '<option value="' . esc_attr( $option ) . '" ' . $selected . '>' . esc_html( apply_filters( 'woocommerce_variation_option_name', $option ) ) . '</option>';
914
  }
915
  }
@@ -939,7 +957,7 @@
939
 
940
  $available_type_keys = array_keys( wvs_available_attributes_types() );
941
  $available_types = wvs_available_attributes_types();
942
- $default = TRUE;
943
 
944
  foreach ( $available_type_keys as $type ) {
945
  if ( wvs_wc_product_has_attribute_type( $type, $args[ 'attribute' ] ) ) {
@@ -952,7 +970,7 @@
952
  'type' => $type,
953
  'is_archive' => ( isset( $args[ 'is_archive' ] ) && $args[ 'is_archive' ] )
954
  ) ) );
955
- $default = FALSE;
956
  }
957
  }
958
 
@@ -1010,6 +1028,9 @@
1010
  <li><span class="dashicons dashicons-yes"></span> Control swatches width and height on archive page.</li>
1011
  <li><span class="dashicons dashicons-yes"></span> Archive page swatches positioning.</li>
1012
  <li><span class="dashicons dashicons-yes"></span> Archive page swatches alignment.</li>
 
 
 
1013
  <li><span class="dashicons dashicons-yes"></span> Tooltip display setting on archive/shop page.</li>
1014
  <li><span class="dashicons dashicons-yes"></span> Variation clear button display setting.</li>
1015
  <li><span class="dashicons dashicons-yes"></span> Customize tooltip text and background color.</li>
10
  function wvs_is_ie11() {
11
  global $is_IE;
12
  $ua = $_SERVER[ 'HTTP_USER_AGENT' ];
13
+ $is11 = preg_match( "/Trident\/7.0;(.*)rv:11.0/", $ua, $match ) !== false;
14
 
15
  return $is_IE && $is11;
16
  //return TRUE;
36
  //-------------------------------------------------------------------------------
37
 
38
  if ( ! function_exists( 'wvs_available_attributes_types' ) ):
39
+ function wvs_available_attributes_types( $type = false ) {
40
  $types = array();
41
 
42
  $types[ 'color' ] = array(
75
  function wvs_color_variation_attribute_preview( $term_id, $attribute, $fields ) {
76
 
77
  $key = $fields[ 0 ][ 'id' ];
78
+ $value = sanitize_hex_color( get_term_meta( $term_id, $key, true ) );
79
 
80
  printf( '<div class="wvs-preview wvs-color-preview" style="background-color:%s;"></div>', esc_attr( $value ) );
81
  }
89
  function wvs_image_variation_attribute_preview( $term_id, $attribute, $fields ) {
90
 
91
  $key = $fields[ 0 ][ 'id' ];
92
+ $attachment_id = absint( get_term_meta( $term_id, $key, true ) );
93
  $image = wp_get_attachment_image_url( $attachment_id );
94
 
95
  printf( '<img src="%s" class="wvs-preview wvs-image-preview" />', esc_url( $image ) );
126
  if ( is_ajax() && isset( $_GET[ 'product_id' ] ) ) {
127
  $product_id = absint( $_GET[ 'product_id' ] );
128
  $product = wc_get_product( $product_id );
129
+ $available_variations = array_values( $product->get_available_variations() );
130
 
131
  wp_send_json_success( wp_json_encode( $available_variations ) );
132
  } else {
145
 
146
  do_action( 'before_wvs_settings', woo_variation_swatches() );
147
 
148
+ woo_variation_swatches()->add_setting( 'simple', esc_html__( 'Simple', 'woo-variation-swatches' ), apply_filters( 'wvs_simple_settings_section', array(
149
  array(
150
  'title' => esc_html__( 'Visual Section', 'woo-variation-swatches' ),
151
  'desc' => esc_html__( 'Simple change some visual styles', 'woo-variation-swatches' ),
155
  'type' => 'checkbox',
156
  'title' => esc_html__( 'Enable Tooltip', 'woo-variation-swatches' ),
157
  'desc' => esc_html__( 'Enable / Disable plugin default tooltip on each product attribute.', 'woo-variation-swatches' ),
158
+ 'default' => true
159
  ),
160
  array(
161
  'id' => 'stylesheet',
162
  'type' => 'checkbox',
163
  'title' => esc_html__( 'Enable Stylesheet', 'woo-variation-swatches' ),
164
  'desc' => esc_html__( 'Enable / Disable plugin default stylesheet', 'woo-variation-swatches' ),
165
+ 'default' => true
166
  ),
167
  array(
168
  'id' => 'style',
175
  ),
176
  'default' => 'rounded'
177
  )
 
178
  ) )
179
  )
180
+ ) ), apply_filters( 'wvs_simple_setting_default_active', true ) );
181
 
182
+ woo_variation_swatches()->add_setting( 'advanced', esc_html__( 'Advanced', 'woo-variation-swatches' ), apply_filters( 'wvs_advanced_settings_section', array(
183
  array(
184
  'title' => esc_html__( 'Visual Section', 'woo-variation-swatches' ),
185
  'desc' => esc_html__( 'Advanced change some visual styles', 'woo-variation-swatches' ),
189
  'type' => 'checkbox',
190
  'title' => esc_html__( 'Clear on Reselect', 'woo-variation-swatches' ),
191
  'desc' => esc_html__( 'Clear selected attribute on select again', 'woo-variation-swatches' ),
192
+ 'default' => false
193
  ),
194
  array(
195
  'id' => 'threshold',
206
  'title' => esc_html__( 'Attribute behavior', 'woo-variation-swatches' ),
207
  'desc' => __( 'Disabled attribute will be hide / blur. <br><span style="color: red">Note: Product variation loaded via ajax doesn\'t apply this feature.</span>', 'woo-variation-swatches' ),
208
  'options' => array(
209
+ 'blur' => esc_html__( 'Blur with cross', 'woo-variation-swatches' ),
210
+ 'blur-no-cross' => esc_html__( 'Blur without cross', 'woo-variation-swatches' ),
211
+ 'hide' => esc_html__( 'Hide', 'woo-variation-swatches' ),
212
  ),
213
  'default' => 'blur'
214
  ),
252
  )
253
  ) )
254
  )
255
+ ) ), apply_filters( 'wvs_advanced_setting_default_active', false ) );
256
 
257
  if ( ! woo_variation_swatches()->is_pro_active() ) {
258
  woo_variation_swatches()->add_setting( 'style', esc_html__( 'Style', 'woo-variation-swatches' ), array(
259
  array(
260
+ 'pro' => true,
261
  'title' => esc_html__( 'Visual Styling', 'woo-variation-swatches-pro' ),
262
+ 'desc' => esc_html__( 'Change some visual styles', 'woo-variation-swatches' ),
263
  'fields' => apply_filters( 'wvs_pro_style_setting_fields', array(
264
  array(
265
+ 'pro' => true,
266
+ 'width' => '55%',
267
  'screen_shot' => woo_variation_swatches()->images_uri( 'style-preview.png' ),
268
  'product_link' => woo_variation_swatches()->get_pro_link( 'style-tab' ),
269
  ),
270
  ) )
271
  )
272
+ ), apply_filters( 'wvs_pro_style_setting_default_active', false ) );
273
  }
274
 
275
  if ( ! woo_variation_swatches()->is_pro_active() ) {
276
+ woo_variation_swatches()->add_setting( 'archive', esc_html__( 'Archive / Shop', 'woo-variation-swatches' ), array(
277
  array(
278
+ 'pro' => true,
279
  'title' => esc_html__( 'Visual Section', 'woo-variation-swatches-pro' ),
280
+ 'desc' => esc_html__( 'Advanced change some visual styles on shop / archive page', 'woo-variation-swatches' ),
281
  'fields' => apply_filters( 'wvs_pro_archive_setting_fields', array(
282
  array(
283
+ 'pro' => true,
284
  'width' => '44%',
285
  'screen_shot' => woo_variation_swatches()->images_uri( 'archive-preview.png' ),
286
  'product_link' => woo_variation_swatches()->get_pro_link( 'archive-tab' ),
287
  ),
288
  ) )
289
  )
290
+ ), apply_filters( 'wvs_pro_archive_setting_default_active', false ) );
291
+ }
292
+
293
+ if ( ! woo_variation_swatches()->is_pro_active() ) {
294
+ woo_variation_swatches()->add_setting( 'special', esc_html__( 'Special Attribute', 'woo-variation-swatches' ), array(
295
+ array(
296
+ 'pro' => true,
297
+ 'title' => esc_html__( 'Catalog mode', 'woo-variation-swatches-pro' ),
298
+ 'desc' => esc_html__( 'Show single attribute as catalog mode on shop / archive pages', 'woo-variation-swatches' ),
299
+ 'fields' => apply_filters( 'wvs_pro_large_catalog_setting_fields', array(
300
+ array(
301
+ 'pro' => true,
302
+ 'width' => '50%',
303
+ 'screen_shot' => woo_variation_swatches()->images_uri( 'special-preview.png' ),
304
+ 'product_link' => woo_variation_swatches()->get_pro_link( 'special-tab' ),
305
+ ),
306
+ ) )
307
+ )
308
+ ), apply_filters( 'wvs_pro_special_setting_default_active', false ) );
309
  }
310
 
311
  do_action( 'after_wvs_settings', woo_variation_swatches() );
317
  //-------------------------------------------------------------------------------
318
 
319
  if ( ! function_exists( 'wvs_taxonomy_meta_fields' ) ):
320
+ function wvs_taxonomy_meta_fields( $field_id = false ) {
321
 
322
  $fields = array();
323
 
357
  if ( ! function_exists( 'wvs_is_color_attribute' ) ):
358
  function wvs_is_color_attribute( $attribute ) {
359
  if ( ! is_object( $attribute ) ) {
360
+ return false;
361
  }
362
 
363
  return $attribute->attribute_type == 'color';
371
  if ( ! function_exists( 'wvs_is_image_attribute' ) ):
372
  function wvs_is_image_attribute( $attribute ) {
373
  if ( ! is_object( $attribute ) ) {
374
+ return false;
375
  }
376
 
377
  return $attribute->attribute_type == 'image';
385
  if ( ! function_exists( 'wvs_is_button_attribute' ) ):
386
  function wvs_is_button_attribute( $attribute ) {
387
  if ( ! is_object( $attribute ) ) {
388
+ return false;
389
  }
390
 
391
  return $attribute->attribute_type == 'button';
399
  if ( ! function_exists( 'wvs_is_radio_attribute' ) ):
400
  function wvs_is_radio_attribute( $attribute ) {
401
  if ( ! is_object( $attribute ) ) {
402
+ return false;
403
  }
404
 
405
  return $attribute->attribute_type == 'radio';
413
  if ( ! function_exists( 'wvs_is_select_attribute' ) ):
414
  function wvs_is_select_attribute( $attribute ) {
415
  if ( ! is_object( $attribute ) ) {
416
+ return false;
417
  }
418
 
419
  return $attribute->attribute_type == 'select';
427
  if ( ! function_exists( 'wvs_get_product_attribute_color' ) ):
428
  function wvs_get_product_attribute_color( $term ) {
429
  if ( ! is_object( $term ) ) {
430
+ return false;
431
  }
432
 
433
+ return get_term_meta( $term->term_id, 'product_attribute_color', true );
434
  }
435
  endif;
436
 
441
  if ( ! function_exists( 'wvs_get_product_attribute_image' ) ):
442
  function wvs_get_product_attribute_image( $term ) {
443
  if ( ! is_object( $term ) ) {
444
+ return false;
445
  }
446
 
447
+ return get_term_meta( $term->term_id, 'product_attribute_image', true );
448
  }
449
  endif;
450
 
497
  $all_terms = get_terms( $taxonomy, apply_filters( 'woocommerce_product_attribute_terms', $args ) );
498
  if ( $all_terms ) :
499
  foreach ( $all_terms as $term ) :
500
+ echo '<option value="' . esc_attr( $term->term_id ) . '" ' . selected( has_term( absint( $term->term_id ), $taxonomy, $thepostid ), true, false ) . '>' . esc_attr( apply_filters( 'woocommerce_product_attribute_term_name', $term->name, $term ) ) . '</option>';
501
  endforeach;
502
  endif;
503
  ?>
534
  delete_transient( $transient );
535
  }
536
 
537
+ if ( false === ( $attribute_taxonomy = get_transient( $transient ) ) ) {
538
  global $wpdb;
539
 
540
  $attribute_name = str_replace( 'pa_', '', wc_sanitize_taxonomy_name( $attribute_name ) );
585
 
586
  array_push( $css_classes, $clear_on_reselect );
587
 
588
+ $data = sprintf( '<ul class="variable-items-wrapper %s" data-attribute_name="%s">%s</ul>', trim( implode( ' ', array_unique( $css_classes ) ) ), esc_attr( wc_variation_attribute_name( $attribute ) ), $contents );
589
 
590
  return apply_filters( 'wvs_variable_items_wrapper', $data, $contents, $type, $args, $saved_attribute );
591
  }
620
 
621
  switch ( $type ):
622
  case 'color':
623
+ $color = sanitize_hex_color( get_term_meta( $term->term_id, 'product_attribute_color', true ) );
624
  $data .= sprintf( '<span class="variable-item-span variable-item-span-%s" style="background-color:%s;"></span>', esc_attr( $type ), esc_attr( $color ) );
625
  break;
626
 
627
  case 'image':
628
+ $attachment_id = absint( get_term_meta( $term->term_id, 'product_attribute_image', true ) );
629
  $image_size = woo_variation_swatches()->get_option( 'attribute_image_size' );
630
  $image_url = wp_get_attachment_image_url( $attachment_id, apply_filters( 'wvs_product_attribute_image_size', $image_size ) );
631
  $data .= sprintf( '<img alt="%s" src="%s" />', esc_attr( $term->name ), esc_url( $image_url ) );
637
 
638
  case 'radio':
639
  $id = uniqid( $term->slug );
640
+ $data .= sprintf( '<input name="%1$s" id="%2$s" class="wvs-radio-variable-item" %3$s type="radio" value="%4$s" data-value="%4$s" /><label for="%2$s">%5$s</label>', $name, $id, checked( sanitize_title( $args[ 'selected' ] ), $term->slug, false ), esc_attr( $term->slug ), esc_html( $term->name ) );
641
  break;
642
 
643
  default:
662
  function wvs_color_variation_attribute_options( $args = array() ) {
663
 
664
  $args = wp_parse_args( $args, array(
665
+ 'options' => false,
666
+ 'attribute' => false,
667
+ 'product' => false,
668
+ 'selected' => false,
669
  'name' => '',
670
  'id' => '',
671
  'class' => '',
680
  $name = $args[ 'name' ] ? $args[ 'name' ] : wc_variation_attribute_name( $attribute );
681
  $id = $args[ 'id' ] ? $args[ 'id' ] : sanitize_title( $attribute );
682
  $class = $args[ 'class' ];
683
+ $show_option_none = $args[ 'show_option_none' ] ? true : false;
684
  $show_option_none_text = $args[ 'show_option_none' ] ? $args[ 'show_option_none' ] : esc_html__( 'Choose an option', 'woocommerce' ); // We'll do our best to hide the placeholder, but we'll need to show something when resetting options.
685
 
686
  if ( empty( $options ) && ! empty( $product ) && ! empty( $attribute ) ) {
705
 
706
  foreach ( $terms as $term ) {
707
  if ( in_array( $term->slug, $options ) ) {
708
+ echo '<option value="' . esc_attr( $term->slug ) . '" ' . selected( sanitize_title( $args[ 'selected' ] ), $term->slug, false ) . '>' . apply_filters( 'woocommerce_variation_option_name', $term->name ) . '</option>';
709
  }
710
  }
711
  } else {
712
  foreach ( $options as $option ) {
713
  // This handles < 2.4.0 bw compatibility where text attributes were not sanitized.
714
+ $selected = sanitize_title( $args[ 'selected' ] ) === $args[ 'selected' ] ? selected( $args[ 'selected' ], sanitize_title( $option ), false ) : selected( $args[ 'selected' ], $option, false );
715
  echo '<option value="' . esc_attr( $option ) . '" ' . $selected . '>' . esc_html( apply_filters( 'woocommerce_variation_option_name', $option ) ) . '</option>';
716
  }
717
  }
734
  function wvs_image_variation_attribute_options( $args = array() ) {
735
 
736
  $args = wp_parse_args( $args, array(
737
+ 'options' => false,
738
+ 'attribute' => false,
739
+ 'product' => false,
740
+ 'selected' => false,
741
  'name' => '',
742
  'id' => '',
743
  'class' => '',
752
  $name = $args[ 'name' ] ? $args[ 'name' ] : wc_variation_attribute_name( $attribute );
753
  $id = $args[ 'id' ] ? $args[ 'id' ] : sanitize_title( $attribute );
754
  $class = $args[ 'class' ];
755
+ $show_option_none = $args[ 'show_option_none' ] ? true : false;
756
  $show_option_none_text = $args[ 'show_option_none' ] ? $args[ 'show_option_none' ] : esc_html__( 'Choose an option', 'woocommerce' ); // We'll do our best to hide the placeholder, but we'll need to show something when resetting options.
757
 
758
  if ( empty( $options ) && ! empty( $product ) && ! empty( $attribute ) ) {
779
 
780
  foreach ( $terms as $term ) {
781
  if ( in_array( $term->slug, $options ) ) {
782
+ echo '<option value="' . esc_attr( $term->slug ) . '" ' . selected( sanitize_title( $args[ 'selected' ] ), $term->slug, false ) . '>' . apply_filters( 'woocommerce_variation_option_name', $term->name ) . '</option>';
783
  }
784
  }
785
  } else {
786
  foreach ( $options as $option ) {
787
  // This handles < 2.4.0 bw compatibility where text attributes were not sanitized.
788
+ $selected = sanitize_title( $args[ 'selected' ] ) === $args[ 'selected' ] ? selected( $args[ 'selected' ], sanitize_title( $option ), false ) : selected( $args[ 'selected' ], $option, false );
789
  echo '<option value="' . esc_attr( $option ) . '" ' . $selected . '>' . esc_html( apply_filters( 'woocommerce_variation_option_name', $option ) ) . '</option>';
790
  }
791
  }
807
  function wvs_button_variation_attribute_options( $args = array() ) {
808
 
809
  $args = wp_parse_args( $args, array(
810
+ 'options' => false,
811
+ 'attribute' => false,
812
+ 'product' => false,
813
+ 'selected' => false,
814
  'name' => '',
815
  'id' => '',
816
  'class' => '',
825
  $name = $args[ 'name' ] ? $args[ 'name' ] : wc_variation_attribute_name( $attribute );
826
  $id = $args[ 'id' ] ? $args[ 'id' ] : sanitize_title( $attribute );
827
  $class = $args[ 'class' ];
828
+ $show_option_none = $args[ 'show_option_none' ] ? true : false;
829
  $show_option_none_text = $args[ 'show_option_none' ] ? $args[ 'show_option_none' ] : esc_html__( 'Choose an option', 'woocommerce' ); // We'll do our best to hide the placeholder, but we'll need to show something when resetting options.
830
 
831
  if ( empty( $options ) && ! empty( $product ) && ! empty( $attribute ) ) {
850
 
851
  foreach ( $terms as $term ) {
852
  if ( in_array( $term->slug, $options ) ) {
853
+ echo '<option value="' . esc_attr( $term->slug ) . '" ' . selected( sanitize_title( $args[ 'selected' ] ), $term->slug, false ) . '>' . apply_filters( 'woocommerce_variation_option_name', $term->name ) . '</option>';
854
  }
855
  }
856
  } else {
857
  foreach ( $options as $option ) {
858
  // This handles < 2.4.0 bw compatibility where text attributes were not sanitized.
859
+ $selected = sanitize_title( $args[ 'selected' ] ) === $args[ 'selected' ] ? selected( $args[ 'selected' ], sanitize_title( $option ), false ) : selected( $args[ 'selected' ], $option, false );
860
  echo '<option value="' . esc_attr( $option ) . '" ' . $selected . '>' . esc_html( apply_filters( 'woocommerce_variation_option_name', $option ) ) . '</option>';
861
  }
862
  }
878
  function wvs_radio_variation_attribute_options( $args = array() ) {
879
 
880
  $args = wp_parse_args( $args, array(
881
+ 'options' => false,
882
+ 'attribute' => false,
883
+ 'product' => false,
884
+ 'selected' => false,
885
  'name' => '',
886
  'id' => '',
887
  'class' => '',
896
  $name = $args[ 'name' ] ? $args[ 'name' ] : wc_variation_attribute_name( $attribute );
897
  $id = $args[ 'id' ] ? $args[ 'id' ] : sanitize_title( $attribute );
898
  $class = $args[ 'class' ];
899
+ $show_option_none = $args[ 'show_option_none' ] ? true : false;
900
  $show_option_none_text = $args[ 'show_option_none' ] ? $args[ 'show_option_none' ] : esc_html__( 'Choose an option', 'woocommerce' ); // We'll do our best to hide the placeholder, but we'll need to show something when resetting options.
901
 
902
  if ( empty( $options ) && ! empty( $product ) && ! empty( $attribute ) ) {
921
 
922
  foreach ( $terms as $term ) {
923
  if ( in_array( $term->slug, $options ) ) {
924
+ echo '<option value="' . esc_attr( $term->slug ) . '" ' . selected( sanitize_title( $args[ 'selected' ] ), $term->slug, false ) . '>' . apply_filters( 'woocommerce_variation_option_name', $term->name ) . '</option>';
925
  }
926
  }
927
  } else {
928
  foreach ( $options as $option ) {
929
  // This handles < 2.4.0 bw compatibility where text attributes were not sanitized.
930
+ $selected = sanitize_title( $args[ 'selected' ] ) === $args[ 'selected' ] ? selected( $args[ 'selected' ], sanitize_title( $option ), false ) : selected( $args[ 'selected' ], $option, false );
931
  echo '<option value="' . esc_attr( $option ) . '" ' . $selected . '>' . esc_html( apply_filters( 'woocommerce_variation_option_name', $option ) ) . '</option>';
932
  }
933
  }
957
 
958
  $available_type_keys = array_keys( wvs_available_attributes_types() );
959
  $available_types = wvs_available_attributes_types();
960
+ $default = true;
961
 
962
  foreach ( $available_type_keys as $type ) {
963
  if ( wvs_wc_product_has_attribute_type( $type, $args[ 'attribute' ] ) ) {
970
  'type' => $type,
971
  'is_archive' => ( isset( $args[ 'is_archive' ] ) && $args[ 'is_archive' ] )
972
  ) ) );
973
+ $default = false;
974
  }
975
  }
976
 
1028
  <li><span class="dashicons dashicons-yes"></span> Control swatches width and height on archive page.</li>
1029
  <li><span class="dashicons dashicons-yes"></span> Archive page swatches positioning.</li>
1030
  <li><span class="dashicons dashicons-yes"></span> Archive page swatches alignment.</li>
1031
+ <li><span class="dashicons dashicons-yes"></span> Hide only out of stock variation product.</li>
1032
+ <li><span class="dashicons dashicons-yes"></span> Individual attribute to show in large style.</li>
1033
+ <li><span class="dashicons dashicons-yes"></span> Catalog mode to show only one attribute on shop / archive page.</li>
1034
  <li><span class="dashicons dashicons-yes"></span> Tooltip display setting on archive/shop page.</li>
1035
  <li><span class="dashicons dashicons-yes"></span> Variation clear button display setting.</li>
1036
  <li><span class="dashicons dashicons-yes"></span> Customize tooltip text and background color.</li>
includes/hooks.php CHANGED
@@ -21,5 +21,4 @@
21
  add_filter( 'woocommerce_product_data_tabs', 'add_wvs_pro_preview_tab' );
22
 
23
  add_filter( 'woocommerce_product_data_panels', 'add_wvs_pro_preview_tab_panel' );
24
- }
25
-
21
  add_filter( 'woocommerce_product_data_tabs', 'add_wvs_pro_preview_tab' );
22
 
23
  add_filter( 'woocommerce_product_data_panels', 'add_wvs_pro_preview_tab_panel' );
24
+ }
 
includes/themes-support.php CHANGED
@@ -12,4 +12,6 @@
12
 
13
  add_action( 'wp_enqueue_scripts', 'wvs_woo_layout_injector_script_override', 99999 );
14
  endif;
15
-
 
 
12
 
13
  add_action( 'wp_enqueue_scripts', 'wvs_woo_layout_injector_script_override', 99999 );
14
  endif;
15
+
16
+
17
+ //remove_action( 'woocommerce_after_single_product_summary', 'woocommerce_output_related_products', 20 );
languages/woo-variation-swatches.pot CHANGED
@@ -16,7 +16,7 @@ msgstr ""
16
  "X-Poedit-SourceCharset: UTF-8\n"
17
  "Plural-Forms: nplurals=2; plural=(n != 1);\n"
18
 
19
- #: ../includes/class-wvs-customizer.php:34, ../woo-variation-swatches.php:386
20
  msgid "WooCommerce Variation Swatches"
21
  msgstr ""
22
 
@@ -24,7 +24,7 @@ msgstr ""
24
  msgid "WooCommerce Variation Swatches Settings"
25
  msgstr ""
26
 
27
- #: ../includes/class-wvs-settings-api.php:82, ../includes/class-wvs-settings-api.php:95, ../includes/functions.php:971
28
  msgid "Swatches Settings"
29
  msgstr ""
30
 
@@ -44,11 +44,11 @@ msgstr ""
44
  msgid "Remove image"
45
  msgstr ""
46
 
47
- #: ../includes/functions.php:43, ../includes/functions.php:308
48
  msgid "Color"
49
  msgstr ""
50
 
51
- #: ../includes/functions.php:49, ../includes/functions.php:317
52
  msgid "Image"
53
  msgstr ""
54
 
@@ -60,7 +60,7 @@ msgstr ""
60
  msgid "Simple"
61
  msgstr ""
62
 
63
- #: ../includes/functions.php:150, ../includes/functions.php:185
64
  msgid "Visual Section"
65
  msgstr ""
66
 
@@ -100,40 +100,44 @@ msgstr ""
100
  msgid "Squared Shape"
101
  msgstr ""
102
 
103
- #: ../includes/functions.php:183
104
  msgid "Advanced"
105
  msgstr ""
106
 
107
- #: ../includes/functions.php:186
108
  msgid "Advanced change some visual styles"
109
  msgstr ""
110
 
111
- #: ../includes/functions.php:191
112
  msgid "Clear on Reselect"
113
  msgstr ""
114
 
115
- #: ../includes/functions.php:192
116
  msgid "Clear selected attribute on select again"
117
  msgstr ""
118
 
119
- #: ../includes/functions.php:198
120
  msgid "Ajax variation threshold"
121
  msgstr ""
122
 
123
- #: ../includes/functions.php:199
124
  msgid "Control the number of enable ajax variation threshold, If you set <code>1</code> all product variation will be load via ajax. Default value is <code>30</code>, <br><span style=\"color: red\">Note: Product variation loaded via ajax doesn't follow attribute behaviour. It's recommended to keep this number between 30 - 40.</span>"
125
  msgstr ""
126
 
127
- #: ../includes/functions.php:207
128
  msgid "Attribute behavior"
129
  msgstr ""
130
 
131
- #: ../includes/functions.php:208
132
  msgid "Disabled attribute will be hide / blur. <br><span style=\"color: red\">Note: Product variation loaded via ajax doesn't apply this feature.</span>"
133
  msgstr ""
134
 
 
 
 
 
135
  #: ../includes/functions.php:210
136
- msgid "Blur"
137
  msgstr ""
138
 
139
  #: ../includes/functions.php:211
@@ -179,94 +183,114 @@ msgstr ""
179
  msgid "Style"
180
  msgstr ""
181
 
182
- #: ../includes/functions.php:309
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
183
  msgid "Choose a color"
184
  msgstr ""
185
 
186
- #: ../includes/functions.php:318, ../woo-variation-swatches.php:206
187
  msgid "Choose an Image"
188
  msgstr ""
189
 
190
- #: ../includes/functions.php:477
191
  msgid "Select terms"
192
  msgstr ""
193
 
194
- #: ../includes/functions.php:488
195
  msgid "Select all"
196
  msgstr ""
197
 
198
- #: ../includes/functions.php:489
199
  msgid "Select none"
200
  msgstr ""
201
 
202
- #: ../includes/functions.php:494
203
  msgid "Add new %s"
204
  msgstr ""
205
 
206
- #: ../includes/functions.php:494, ../includes/functions.php:496
207
  msgid "Add new"
208
  msgstr ""
209
 
210
- #: ../includes/functions.php:655, ../includes/functions.php:727, ../includes/functions.php:800, ../includes/functions.php:871
211
  msgid "Choose an option"
212
  msgstr ""
213
 
214
- #: ../woo-variation-swatches.php:207
215
  msgid "Add Attribute"
216
  msgstr ""
217
 
218
- #: ../woo-variation-swatches.php:208
219
  msgid "Add"
220
  msgstr ""
221
 
222
- #: ../woo-variation-swatches.php:209
223
  msgid "Cancel"
224
  msgstr ""
225
 
226
- #: ../woo-variation-swatches.php:210
227
  msgid "Use Image"
228
  msgstr ""
229
 
230
- #: ../woo-variation-swatches.php:211
231
  msgid "Add Media"
232
  msgstr ""
233
 
234
- #: ../woo-variation-swatches.php:281, ../woo-variation-swatches.php:281
235
  msgid "Read Documentation"
236
  msgstr ""
237
 
238
- #: ../woo-variation-swatches.php:283
239
  msgid "Facing issue?"
240
  msgstr ""
241
 
242
- #: ../woo-variation-swatches.php:283
243
  msgid "Please open a ticket."
244
  msgstr ""
245
 
246
- #: ../woo-variation-swatches.php:298
247
  msgid "Go Pro"
248
  msgstr ""
249
 
250
- #: ../woo-variation-swatches.php:351
251
  msgid "Please check PHP version requirement."
252
  msgstr ""
253
 
254
- #: ../woo-variation-swatches.php:353
255
  msgid "It's required to use latest version of PHP to use <strong>WooCommerce Variation Swatches</strong>."
256
  msgstr ""
257
 
258
- #: ../woo-variation-swatches.php:365
259
  msgid "WooCommerce"
260
  msgstr ""
261
 
262
- #: ../woo-variation-swatches.php:373
263
  msgid "<strong>WooCommerce Variation Swatches</strong> is an add-on of "
264
  msgstr ""
265
 
266
- #: ../woo-variation-swatches.php:386
267
  msgid "Currently, you are using older version of WooCommerce. It's recommended to use latest version of WooCommerce to work with %s."
268
  msgstr ""
269
 
270
- #: ../woo-variation-swatches.php:481
271
  msgid "WooCommerce Variation Swatches Plugin try to load \"%s\" but template \"%s\" was not found."
272
  msgstr ""
16
  "X-Poedit-SourceCharset: UTF-8\n"
17
  "Plural-Forms: nplurals=2; plural=(n != 1);\n"
18
 
19
+ #: ../includes/class-wvs-customizer.php:34, ../woo-variation-swatches.php:392
20
  msgid "WooCommerce Variation Swatches"
21
  msgstr ""
22
 
24
  msgid "WooCommerce Variation Swatches Settings"
25
  msgstr ""
26
 
27
+ #: ../includes/class-wvs-settings-api.php:82, ../includes/class-wvs-settings-api.php:95, ../includes/functions.php:989
28
  msgid "Swatches Settings"
29
  msgstr ""
30
 
44
  msgid "Remove image"
45
  msgstr ""
46
 
47
+ #: ../includes/functions.php:43, ../includes/functions.php:326
48
  msgid "Color"
49
  msgstr ""
50
 
51
+ #: ../includes/functions.php:49, ../includes/functions.php:335
52
  msgid "Image"
53
  msgstr ""
54
 
60
  msgid "Simple"
61
  msgstr ""
62
 
63
+ #: ../includes/functions.php:150, ../includes/functions.php:184
64
  msgid "Visual Section"
65
  msgstr ""
66
 
100
  msgid "Squared Shape"
101
  msgstr ""
102
 
103
+ #: ../includes/functions.php:182
104
  msgid "Advanced"
105
  msgstr ""
106
 
107
+ #: ../includes/functions.php:185
108
  msgid "Advanced change some visual styles"
109
  msgstr ""
110
 
111
+ #: ../includes/functions.php:190
112
  msgid "Clear on Reselect"
113
  msgstr ""
114
 
115
+ #: ../includes/functions.php:191
116
  msgid "Clear selected attribute on select again"
117
  msgstr ""
118
 
119
+ #: ../includes/functions.php:197
120
  msgid "Ajax variation threshold"
121
  msgstr ""
122
 
123
+ #: ../includes/functions.php:198
124
  msgid "Control the number of enable ajax variation threshold, If you set <code>1</code> all product variation will be load via ajax. Default value is <code>30</code>, <br><span style=\"color: red\">Note: Product variation loaded via ajax doesn't follow attribute behaviour. It's recommended to keep this number between 30 - 40.</span>"
125
  msgstr ""
126
 
127
+ #: ../includes/functions.php:206
128
  msgid "Attribute behavior"
129
  msgstr ""
130
 
131
+ #: ../includes/functions.php:207
132
  msgid "Disabled attribute will be hide / blur. <br><span style=\"color: red\">Note: Product variation loaded via ajax doesn't apply this feature.</span>"
133
  msgstr ""
134
 
135
+ #: ../includes/functions.php:209
136
+ msgid "Blur with cross"
137
+ msgstr ""
138
+
139
  #: ../includes/functions.php:210
140
+ msgid "Blur without cross"
141
  msgstr ""
142
 
143
  #: ../includes/functions.php:211
183
  msgid "Style"
184
  msgstr ""
185
 
186
+ #: ../includes/functions.php:262
187
+ msgid "Change some visual styles"
188
+ msgstr ""
189
+
190
+ #: ../includes/functions.php:276
191
+ msgid "Archive / Shop"
192
+ msgstr ""
193
+
194
+ #: ../includes/functions.php:280
195
+ msgid "Advanced change some visual styles on shop / archive page"
196
+ msgstr ""
197
+
198
+ #: ../includes/functions.php:294
199
+ msgid "Special Attribute"
200
+ msgstr ""
201
+
202
+ #: ../includes/functions.php:298
203
+ msgid "Show single attribute as catalog mode on shop / archive pages"
204
+ msgstr ""
205
+
206
+ #: ../includes/functions.php:327
207
  msgid "Choose a color"
208
  msgstr ""
209
 
210
+ #: ../includes/functions.php:336, ../woo-variation-swatches.php:212
211
  msgid "Choose an Image"
212
  msgstr ""
213
 
214
+ #: ../includes/functions.php:495
215
  msgid "Select terms"
216
  msgstr ""
217
 
218
+ #: ../includes/functions.php:506
219
  msgid "Select all"
220
  msgstr ""
221
 
222
+ #: ../includes/functions.php:507
223
  msgid "Select none"
224
  msgstr ""
225
 
226
+ #: ../includes/functions.php:512
227
  msgid "Add new %s"
228
  msgstr ""
229
 
230
+ #: ../includes/functions.php:512, ../includes/functions.php:514
231
  msgid "Add new"
232
  msgstr ""
233
 
234
+ #: ../includes/functions.php:673, ../includes/functions.php:745, ../includes/functions.php:818, ../includes/functions.php:889
235
  msgid "Choose an option"
236
  msgstr ""
237
 
238
+ #: ../woo-variation-swatches.php:213
239
  msgid "Add Attribute"
240
  msgstr ""
241
 
242
+ #: ../woo-variation-swatches.php:214
243
  msgid "Add"
244
  msgstr ""
245
 
246
+ #: ../woo-variation-swatches.php:215
247
  msgid "Cancel"
248
  msgstr ""
249
 
250
+ #: ../woo-variation-swatches.php:216
251
  msgid "Use Image"
252
  msgstr ""
253
 
254
+ #: ../woo-variation-swatches.php:217
255
  msgid "Add Media"
256
  msgstr ""
257
 
258
+ #: ../woo-variation-swatches.php:287, ../woo-variation-swatches.php:287
259
  msgid "Read Documentation"
260
  msgstr ""
261
 
262
+ #: ../woo-variation-swatches.php:289
263
  msgid "Facing issue?"
264
  msgstr ""
265
 
266
+ #: ../woo-variation-swatches.php:289
267
  msgid "Please open a ticket."
268
  msgstr ""
269
 
270
+ #: ../woo-variation-swatches.php:304
271
  msgid "Go Pro"
272
  msgstr ""
273
 
274
+ #: ../woo-variation-swatches.php:357
275
  msgid "Please check PHP version requirement."
276
  msgstr ""
277
 
278
+ #: ../woo-variation-swatches.php:359
279
  msgid "It's required to use latest version of PHP to use <strong>WooCommerce Variation Swatches</strong>."
280
  msgstr ""
281
 
282
+ #: ../woo-variation-swatches.php:371
283
  msgid "WooCommerce"
284
  msgstr ""
285
 
286
+ #: ../woo-variation-swatches.php:379
287
  msgid "<strong>WooCommerce Variation Swatches</strong> is an add-on of "
288
  msgstr ""
289
 
290
+ #: ../woo-variation-swatches.php:392
291
  msgid "Currently, you are using older version of WooCommerce. It's recommended to use latest version of WooCommerce to work with %s."
292
  msgstr ""
293
 
294
+ #: ../woo-variation-swatches.php:487
295
  msgid "WooCommerce Variation Swatches Plugin try to load \"%s\" but template \"%s\" was not found."
296
  msgstr ""
package.json CHANGED
@@ -1,7 +1,7 @@
1
  {
2
  "package": "WooCommerce Variation Swatches",
3
  "name": "woo-variation-swatches",
4
- "version": "1.0.31",
5
  "author": "Emran Ahmed <emran.bd.08@gmail.com>",
6
  "contact": "emran.bd.08@gmail.com",
7
  "license": "GNU General Public License v3",
1
  {
2
  "package": "WooCommerce Variation Swatches",
3
  "name": "woo-variation-swatches",
4
+ "version": "1.0.32",
5
  "author": "Emran Ahmed <emran.bd.08@gmail.com>",
6
  "contact": "emran.bd.08@gmail.com",
7
  "license": "GNU General Public License v3",
webpack.mix.js CHANGED
@@ -61,7 +61,7 @@ if (Mix.inProduction()) {
61
  }
62
 
63
  mix.banner({
64
- banner : "WooCommerce Variation Swatches v1.0.31 \n\nAuthor: Emran Ahmed ( emran.bd.08@gmail.com ) \nDate: " + new Date().toLocaleString() + "\nReleased under the GPLv3 license."
65
  });
66
 
67
  mix.notification({
61
  }
62
 
63
  mix.banner({
64
+ banner : "WooCommerce Variation Swatches v1.0.32 \n\nAuthor: Emran Ahmed ( emran.bd.08@gmail.com ) \nDate: " + new Date().toLocaleString() + "\nReleased under the GPLv3 license."
65
  });
66
 
67
  mix.notification({
woo-variation-swatches.php CHANGED
@@ -4,7 +4,7 @@
4
  * Plugin URI: https://wordpress.org/plugins/woo-variation-swatches/
5
  * Description: Beautiful colors, images and buttons variation swatches for woocommerce product attributes. Requires WooCommerce 3.2+
6
  * Author: Emran Ahmed
7
- * Version: 1.0.31
8
  * Domain Path: /languages
9
  * Requires at least: 4.8
10
  * Tested up to: 4.9
@@ -20,9 +20,9 @@
20
 
21
  final class Woo_Variation_Swatches {
22
 
23
- protected $_version = '1.0.31';
24
 
25
- protected static $_instance = NULL;
26
  private $_settings_api;
27
 
28
  public static function instance() {
@@ -68,7 +68,7 @@
68
  }
69
  }
70
 
71
- public function define( $name, $value, $case_insensitive = FALSE ) {
72
  if ( ! defined( $name ) ) {
73
  define( $name, $value, $case_insensitive );
74
  }
@@ -113,7 +113,7 @@
113
  </div>
114
  <?php
115
  $fields = wvs_taxonomy_meta_fields( $tax->attribute_type );
116
- WVS_Term_Meta::generate_form_fields( $fields, FALSE );
117
  ?>
118
  </div>
119
  <?php
@@ -149,7 +149,10 @@
149
 
150
  // Don't load JS on IE11
151
  if ( ! wvs_is_ie11() ) {
152
- wp_enqueue_script( 'woo-variation-swatches', $this->assets_uri( "/js/frontend{$suffix}.js" ), array( 'jquery' ), $this->version(), TRUE );
 
 
 
153
  }
154
 
155
  if ( $this->get_option( 'stylesheet' ) ) {
@@ -191,13 +194,16 @@
191
  wp_enqueue_script( 'jquery-ui-dialog' );
192
 
193
  wp_enqueue_style( 'wp-color-picker' );
194
- wp_enqueue_script( 'wp-color-picker-alpha', $this->assets_uri( "/js/wp-color-picker-alpha{$suffix}.js" ), array( 'wp-color-picker' ), '2.1.3', TRUE );
195
 
196
- wp_enqueue_script( 'form-field-dependency', $this->assets_uri( "/js/form-field-dependency{$suffix}.js" ), array( 'jquery' ), $this->version(), TRUE );
197
- wp_enqueue_script( 'woo-variation-swatches-admin', $this->assets_uri( "/js/admin{$suffix}.js" ), array( 'jquery' ), $this->version(), TRUE );
198
- wp_enqueue_style( 'gwp-feed', esc_url( $this->feed_css_uri() ) );
199
- wp_enqueue_style( 'woo-variation-swatches-admin', $this->assets_uri( "/css/admin{$suffix}.css" ), array(), $this->version() );
 
 
200
 
 
201
 
202
  // wp_enqueue_script( 'selectWoo' );
203
  // wp_enqueue_style( 'select2' );
@@ -220,7 +226,7 @@
220
  return $this->_settings_api;
221
  }
222
 
223
- public function add_setting( $tab_id, $tab_title, $tab_sections, $active = FALSE ) {
224
  // Example:
225
 
226
  // fn(tab_id, tab_title, [
@@ -389,7 +395,7 @@
389
  }
390
 
391
  public function language() {
392
- load_plugin_textdomain( 'woo-variation-swatches', FALSE, trailingslashit( WVS_PLUGIN_DIRNAME ) . 'languages' );
393
  }
394
 
395
  public function is_wc_active() {
@@ -440,7 +446,7 @@
440
  return apply_filters( 'wvs_template_uri', untrailingslashit( $this->plugin_uri() ) . '/templates' );
441
  }
442
 
443
- public function locate_template( $template_name, $third_party_path = FALSE ) {
444
 
445
  $template_name = ltrim( $template_name, '/' );
446
  $template_path = $this->template_override_dir();
@@ -465,7 +471,7 @@
465
  return apply_filters( 'wvs_locate_template', $template, $template_name, $template_path );
466
  }
467
 
468
- public function get_template( $template_name, $template_args = array(), $third_party_path = FALSE ) {
469
 
470
  $template_name = ltrim( $template_name, '/' );
471
 
@@ -484,7 +490,7 @@
484
  do_action( 'wvs_after_get_template', $template_name, $template_args );
485
  }
486
 
487
- public function get_theme_file_path( $file, $third_party_path = FALSE ) {
488
 
489
  $file = ltrim( $file, '/' );
490
  $template_dir = $this->template_override_dir();
@@ -506,7 +512,7 @@
506
  return apply_filters( 'wvs_get_theme_file_path', $path, $file );
507
  }
508
 
509
- public function get_theme_file_uri( $file, $third_party_uri = FALSE ) {
510
 
511
  $file = ltrim( $file, '/' );
512
  $template_dir = $this->template_override_dir();
@@ -535,7 +541,7 @@
535
 
536
  $api_url = 'https://getwooplugins.com/wp-json/getwooplugins/v1/fetch-feed';
537
 
538
- if ( apply_filters( 'stop_gwp_live_feed', FALSE ) ) {
539
  return;
540
  }
541
 
@@ -543,9 +549,9 @@
543
  delete_transient( $feed_transient_id );
544
  }
545
 
546
- if ( FALSE === ( $body = get_transient( $feed_transient_id ) ) ) {
547
  $response = wp_remote_get( $api_url, $args = array(
548
- 'sslverify' => FALSE,
549
  'timeout' => 60,
550
  'body' => array(
551
  'item' => 'woo-variation-swatches',
@@ -553,7 +559,7 @@
553
  ) );
554
 
555
  if ( ! is_wp_error( $response ) && wp_remote_retrieve_response_code( $response ) == 200 ) {
556
- $body = json_decode( wp_remote_retrieve_body( $response ), TRUE );
557
  set_transient( $feed_transient_id, $body, 6 * HOUR_IN_SECONDS );
558
 
559
  if ( isset( $_GET[ 'raw_gwp_live_feed' ] ) && isset( $body[ 'id' ] ) ) {
@@ -562,7 +568,7 @@
562
  }
563
  }
564
 
565
- if ( isset( $body[ 'id' ] ) && FALSE !== get_transient( "gwp_live_feed_seen_{$body[ 'id' ]}" ) ) {
566
  return;
567
  }
568
 
@@ -611,9 +617,9 @@
611
  delete_transient( "gwp_feed_css" );
612
  }
613
 
614
- if ( FALSE === ( $sha = get_transient( 'gwp_feed_css' ) ) ) {
615
  $response = wp_remote_get( $api_url, $args = array(
616
- 'sslverify' => FALSE,
617
  'timeout' => 60
618
  ) );
619
 
@@ -629,7 +635,7 @@
629
 
630
  public function feed_close() {
631
  $id = absint( $_POST[ 'id' ] );
632
- set_transient( "gwp_live_feed_seen_{$id}", TRUE, 1 * WEEK_IN_SECONDS );
633
  }
634
  }
635
 
4
  * Plugin URI: https://wordpress.org/plugins/woo-variation-swatches/
5
  * Description: Beautiful colors, images and buttons variation swatches for woocommerce product attributes. Requires WooCommerce 3.2+
6
  * Author: Emran Ahmed
7
+ * Version: 1.0.32
8
  * Domain Path: /languages
9
  * Requires at least: 4.8
10
  * Tested up to: 4.9
20
 
21
  final class Woo_Variation_Swatches {
22
 
23
+ protected $_version = '1.0.32';
24
 
25
+ protected static $_instance = null;
26
  private $_settings_api;
27
 
28
  public static function instance() {
68
  }
69
  }
70
 
71
+ public function define( $name, $value, $case_insensitive = false ) {
72
  if ( ! defined( $name ) ) {
73
  define( $name, $value, $case_insensitive );
74
  }
113
  </div>
114
  <?php
115
  $fields = wvs_taxonomy_meta_fields( $tax->attribute_type );
116
+ WVS_Term_Meta::generate_form_fields( $fields, false );
117
  ?>
118
  </div>
119
  <?php
149
 
150
  // Don't load JS on IE11
151
  if ( ! wvs_is_ie11() ) {
152
+ wp_enqueue_script( 'woo-variation-swatches', $this->assets_uri( "/js/frontend{$suffix}.js" ), array( 'jquery' ), $this->version(), true );
153
+ wp_localize_script( 'woo-variation-swatches', 'woo_variation_swatches_options', apply_filters( 'woo_variation_swatches_js_options', array(
154
+ 'is_product_page' => is_product(),
155
+ ) ) );
156
  }
157
 
158
  if ( $this->get_option( 'stylesheet' ) ) {
194
  wp_enqueue_script( 'jquery-ui-dialog' );
195
 
196
  wp_enqueue_style( 'wp-color-picker' );
197
+ wp_enqueue_script( 'wp-color-picker-alpha', $this->assets_uri( "/js/wp-color-picker-alpha{$suffix}.js" ), array( 'wp-color-picker' ), '2.1.3', true );
198
 
199
+ wp_enqueue_script( 'form-field-dependency', $this->assets_uri( "/js/form-field-dependency{$suffix}.js" ), array( 'jquery' ), $this->version(), true );
200
+ wp_enqueue_script( 'woo-variation-swatches-admin', $this->assets_uri( "/js/admin{$suffix}.js" ), array( 'jquery' ), $this->version(), true );
201
+
202
+ if ( ! apply_filters( 'stop_gwp_live_feed', false ) ) {
203
+ wp_enqueue_style( 'gwp-feed', esc_url( $this->feed_css_uri() ) );
204
+ }
205
 
206
+ wp_enqueue_style( 'woo-variation-swatches-admin', $this->assets_uri( "/css/admin{$suffix}.css" ), array(), $this->version() );
207
 
208
  // wp_enqueue_script( 'selectWoo' );
209
  // wp_enqueue_style( 'select2' );
226
  return $this->_settings_api;
227
  }
228
 
229
+ public function add_setting( $tab_id, $tab_title, $tab_sections, $active = false ) {
230
  // Example:
231
 
232
  // fn(tab_id, tab_title, [
395
  }
396
 
397
  public function language() {
398
+ load_plugin_textdomain( 'woo-variation-swatches', false, trailingslashit( WVS_PLUGIN_DIRNAME ) . 'languages' );
399
  }
400
 
401
  public function is_wc_active() {
446
  return apply_filters( 'wvs_template_uri', untrailingslashit( $this->plugin_uri() ) . '/templates' );
447
  }
448
 
449
+ public function locate_template( $template_name, $third_party_path = false ) {
450
 
451
  $template_name = ltrim( $template_name, '/' );
452
  $template_path = $this->template_override_dir();
471
  return apply_filters( 'wvs_locate_template', $template, $template_name, $template_path );
472
  }
473
 
474
+ public function get_template( $template_name, $template_args = array(), $third_party_path = false ) {
475
 
476
  $template_name = ltrim( $template_name, '/' );
477
 
490
  do_action( 'wvs_after_get_template', $template_name, $template_args );
491
  }
492
 
493
+ public function get_theme_file_path( $file, $third_party_path = false ) {
494
 
495
  $file = ltrim( $file, '/' );
496
  $template_dir = $this->template_override_dir();
512
  return apply_filters( 'wvs_get_theme_file_path', $path, $file );
513
  }
514
 
515
+ public function get_theme_file_uri( $file, $third_party_uri = false ) {
516
 
517
  $file = ltrim( $file, '/' );
518
  $template_dir = $this->template_override_dir();
541
 
542
  $api_url = 'https://getwooplugins.com/wp-json/getwooplugins/v1/fetch-feed';
543
 
544
+ if ( apply_filters( 'stop_gwp_live_feed', false ) ) {
545
  return;
546
  }
547
 
549
  delete_transient( $feed_transient_id );
550
  }
551
 
552
+ if ( false === ( $body = get_transient( $feed_transient_id ) ) ) {
553
  $response = wp_remote_get( $api_url, $args = array(
554
+ 'sslverify' => false,
555
  'timeout' => 60,
556
  'body' => array(
557
  'item' => 'woo-variation-swatches',
559
  ) );
560
 
561
  if ( ! is_wp_error( $response ) && wp_remote_retrieve_response_code( $response ) == 200 ) {
562
+ $body = json_decode( wp_remote_retrieve_body( $response ), true );
563
  set_transient( $feed_transient_id, $body, 6 * HOUR_IN_SECONDS );
564
 
565
  if ( isset( $_GET[ 'raw_gwp_live_feed' ] ) && isset( $body[ 'id' ] ) ) {
568
  }
569
  }
570
 
571
+ if ( isset( $body[ 'id' ] ) && false !== get_transient( "gwp_live_feed_seen_{$body[ 'id' ]}" ) ) {
572
  return;
573
  }
574
 
617
  delete_transient( "gwp_feed_css" );
618
  }
619
 
620
+ if ( false === ( $sha = get_transient( 'gwp_feed_css' ) ) ) {
621
  $response = wp_remote_get( $api_url, $args = array(
622
+ 'sslverify' => false,
623
  'timeout' => 60
624
  ) );
625
 
635
 
636
  public function feed_close() {
637
  $id = absint( $_POST[ 'id' ] );
638
+ set_transient( "gwp_live_feed_seen_{$id}", true, 1 * WEEK_IN_SECONDS );
639
  }
640
  }
641