From 369b69f7fc6519bbb0316415b7227936fe9919df Mon Sep 17 00:00:00 2001 From: A1Gard Date: Fri, 20 Oct 2023 05:50:23 +0330 Subject: [PATCH] fixed discount bug on problem fixed shopping card step bugs --- _ide_helper.php | 40 +++++++--- app/Helpers/Helper.php | 3 + .../Controllers/Admin/ProductController.php | 3 + .../Payment/GatewayRedirectController.php | 8 +- app/Models/Product.php | 35 ++++++++- public/css/theme.css | 2 +- public/js/app.js | 2 +- public/js/theme.js | 4 +- resources/js/customer.js | 23 ++++++ resources/sass/card.scss | 2 +- resources/theme/js/theme.js | 17 +++- resources/views/website/card.blade.php | 77 ++++++++++++------- resources/views/website/product.blade.php | 9 +++ 13 files changed, 174 insertions(+), 51 deletions(-) diff --git a/_ide_helper.php b/_ide_helper.php index 7983777..668e1bf 100755 --- a/_ide_helper.php +++ b/_ide_helper.php @@ -4,7 +4,7 @@ /** * A helper file for Laravel, to provide autocomplete information to your IDE - * Generated for Laravel 9.52.8. + * Generated for Laravel 9.52.14. * * This file should not be included in your code, only analyzed by your IDE! * @@ -1252,7 +1252,7 @@ * Call the given Closure / class@method and inject its dependencies. * * @param callable|string $callback - * @param \Illuminate\Container\array $parameters + * @param array $parameters * @param string|null $defaultMethod * @return mixed * @throws \InvalidArgumentException @@ -11684,6 +11684,7 @@ /** * Gets the decoded form or json request body. * + * @throws JsonException When the body cannot be decoded to an array * @static */ public static function getPayload() @@ -19129,6 +19130,27 @@ { /** @var \Spatie\FlareClient\Flare $instance */ return $instance->filterReportsUsing($filterReportsCallable); + } + /** + * + * + * @param array|ArgumentReducer>|\Spatie\Backtrace\Arguments\ArgumentReducers|null $argumentReducers + * @static + */ + public static function argumentReducers($argumentReducers) + { + /** @var \Spatie\FlareClient\Flare $instance */ + return $instance->argumentReducers($argumentReducers); + } + /** + * + * + * @static + */ + public static function withStackFrameArguments($withStackFrameArguments = true) + { + /** @var \Spatie\FlareClient\Flare $instance */ + return $instance->withStackFrameArguments($withStackFrameArguments); } /** * @@ -19229,7 +19251,7 @@ * * @param string $name * @param string $messageLevel - * @param \Spatie\FlareClient\array $metaData + * @param array $metaData * @return \Spatie\FlareClient\Flare * @static */ @@ -19322,7 +19344,7 @@ /** * * - * @param \Spatie\FlareClient\array $fieldNames + * @param array $fieldNames * @return \Spatie\FlareClient\Flare * @static */ @@ -19398,7 +19420,7 @@ * * * @param string $groupName - * @param \Spatie\FlareClient\array $properties + * @param array $properties * @return \Spatie\FlareClient\Flare * @static */ @@ -23099,8 +23121,8 @@ namespace { /** * Increment the given column's values by the given amounts. * - * @param \Illuminate\Database\Query\array $columns - * @param \Illuminate\Database\Query\array $extra + * @param array $columns + * @param array $extra * @return int * @throws \InvalidArgumentException * @static @@ -23114,8 +23136,8 @@ namespace { /** * Decrement the given column's values by the given amounts. * - * @param \Illuminate\Database\Query\array $columns - * @param \Illuminate\Database\Query\array $extra + * @param array $columns + * @param array $extra * @return int * @throws \InvalidArgumentException * @static diff --git a/app/Helpers/Helper.php b/app/Helpers/Helper.php index 1cd8b49..d298f9b 100755 --- a/app/Helpers/Helper.php +++ b/app/Helpers/Helper.php @@ -603,6 +603,9 @@ function showMeta($key, $value) */ function time2persian($date, $format = 'Y/m/d') { + if ($date == null){ + return '-'; + } $dt = new TDate(); return $dt->PDate($format, $date); } diff --git a/app/Http/Controllers/Admin/ProductController.php b/app/Http/Controllers/Admin/ProductController.php index ec934f7..db5317a 100755 --- a/app/Http/Controllers/Admin/ProductController.php +++ b/app/Http/Controllers/Admin/ProductController.php @@ -112,6 +112,9 @@ class ProductController extends Controller $discount->amount = $request->discount['amount']; $discount->expire = date('Y-m-d',floor($request->discount['expire']/1000)); // $discount->code = $request->discount['code']; + if ($discount->expire == '1970-01-01 00:00:00'){ + $discount->expire = null; + } $discount->type = $request->discount['type']; $discount->save(); } diff --git a/app/Http/Controllers/Payment/GatewayRedirectController.php b/app/Http/Controllers/Payment/GatewayRedirectController.php index d3e381d..77580c1 100755 --- a/app/Http/Controllers/Payment/GatewayRedirectController.php +++ b/app/Http/Controllers/Payment/GatewayRedirectController.php @@ -85,7 +85,7 @@ class GatewayRedirectController $proData = [ 'count' => $buyCount, 'quantity_id' => $id, - 'price_total' => ($q->price * ($buyCount)), + 'price_total' => ($product->getPurePriceDef($q->price) * ($buyCount)), 'data'=>json_encode($q), ]; $invoice->total_price += $proData['price_total']; @@ -107,16 +107,16 @@ class GatewayRedirectController $product->save(); $proData = [ 'count' => \request('count')[$item], - 'price_total' => ($product->price * (\request('count')[$item])) + 'price_total' => ($product->getPurePrice() * (\request('count')[$item])) ]; if (isset(\request('data')[$item])){ $temp = json_decode(\request('data')[$item]); $qd = Quantity::find($temp->id); $qd->count -= \request('count')[$item]; $proData['data'] = \request('data')[$item]; - $proData['price_total'] = $qd->price * \request('count')[$item]; + $proData['price_total'] = $product->getPurePriceDef($qd->price) * \request('count')[$item]; $proData['quantity_id'] = $qd->id; - $product->price = $qd->price; + $product->price = $product->getPurePriceDef($qd->price); $qd->save(); } $invoice->save(); diff --git a/app/Models/Product.php b/app/Models/Product.php index 905a6a5..5c4d11e 100755 --- a/app/Models/Product.php +++ b/app/Models/Product.php @@ -6,6 +6,7 @@ use Conner\Tagging\Taggable; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\SoftDeletes; +use phpDocumentor\Reflection\Types\Never_; use Plank\Metable\Metable; use Spatie\Image\Manipulations; use Spatie\MediaLibrary\HasMedia; @@ -116,6 +117,8 @@ use function App\Helpers\getSetting; * @method static \Illuminate\Database\Eloquent\Builder|Product whereImageIndex($value) * @property int $carat * @method static \Illuminate\Database\Eloquent\Builder|Product whereCarat($value) + * @property-read \Illuminate\Database\Eloquent\Collection $activeDiscounts + * @property-read int|null $active_discounts_count * @mixin \Eloquent */ class Product extends Model implements HasMedia @@ -239,11 +242,34 @@ class Product extends Model implements HasMedia return $this->hasMany(Discount::class, 'product_id', 'id'); } + public function activeDiscounts() + { + return $this->hasMany(Discount::class, 'product_id', 'id')->where(function ($query) { + $query->where('expire', '>=', date('Y-m-d')) + ->orWhereNull('expire'); + }); + } + + + public function discountWithSign() + { + if ($this->activeDiscounts()->count() > 0) { + $discount = $this->activeDiscounts()->first(); + if ($discount->type == 'price') { + return ' - ' . $discount->amount; + } else { + return ' * ' . (( 100 - $discount->amount ) / 100); + } + } else { + return null; + } + } + public function getPurePrice() { - if ($this->discounts()->whereNull('code')->count() > 0) { - $d = $this->discounts()->whereNull('code')->orderBy('id', 'desc')->first(); + if ($this->activeDiscounts()->whereNull('code')->count() > 0) { + $d = $this->activeDiscounts()->whereNull('code')->orderBy('id', 'desc')->first(); if ($d->type == 'percent') { $price = $this->price - ($this->price * ($d->amount / 100)); return $price; @@ -261,8 +287,8 @@ class Product extends Model implements HasMedia */ public function getPurePriceDef($def) { - if ($this->discounts()->whereNull('code')->count() > 0) { - $d = $this->discounts()->whereNull('code')->orderBy('id', 'desc')->first(); + if ($this->activeDiscounts()->whereNull('code')->count() > 0) { + $d = $this->activeDiscounts()->whereNull('code')->orderBy('id', 'desc')->first(); if ($d->type == 'percent') { $price = $def - ($def * ($d->amount / 100)); return $price; @@ -280,6 +306,7 @@ class Product extends Model implements HasMedia } return number_format($this->price) . ' ' . config('app.currency_type'); } + public function getPrice() { if ($this->getPurePrice() == 0) { diff --git a/public/css/theme.css b/public/css/theme.css index 104ad25..0397fe3 100755 --- a/public/css/theme.css +++ b/public/css/theme.css @@ -11137,7 +11137,7 @@ h3.textt{ #card-steps .step { display: none; } -#card-steps .step.active { +#card-steps .step.active-step { display: block; } diff --git a/public/js/app.js b/public/js/app.js index 76e305c..36be56f 100755 --- a/public/js/app.js +++ b/public/js/app.js @@ -89,7 +89,7 @@ eval("// by a1gard for commafy input price\nfunction nocomma(num) {\n a = num.r \**********************************/ /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => { -eval("function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it[\"return\"] != null) it[\"return\"](); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nvar data = __webpack_require__(/*! ./plugins/data */ \"./resources/js/plugins/data.js\");\n\nvar isSendSms = false;\n\nfunction nocomma(num) {\n a = num.toString().replace(/\\,/g, ''); // 1125, but a string, so convert it to number\n\n return a.toString();\n}\n\nfunction commafy(num) {\n num = nocomma(num);\n var str = num.toString().split('.');\n\n if (str[0].length >= 4) {\n str[0] = str[0].replace(/(\\d)(?=(\\d{3})+$)/g, '$1,');\n }\n\n if (str[1] && str[1].length >= 4) {\n str[1] = str[1].replace(/(\\d{3})/g, '$1,');\n }\n\n return str.join('.');\n}\n\nfunction findNextTabStop(el) {\n var universe = document.querySelectorAll('input, button, select, textarea, a[href]');\n var list = Array.prototype.filter.call(universe, function (item) {\n return item.tabIndex >= \"0\";\n });\n var index = list.indexOf(el);\n return list[index + 1] || list[0];\n}\n\nfunction findPervTabStop(el) {\n var universe = document.querySelectorAll('input, button, select, textarea, a[href]');\n var list = Array.prototype.filter.call(universe, function (item) {\n return item.tabIndex >= \"0\";\n });\n var index = list.indexOf(el);\n return list[index - 1] || list[0];\n}\n\njQuery(function ($) {\n $('.sms-pass').bind('focus', function () {\n this.setSelectionRange(0, this.value.length);\n });\n $('.sms-pass').bind('keyup', function () {\n if ($(this).val().length == 1) {\n var x = findNextTabStop(this);\n x.focus();\n } else if ($(this).val().length == 0) {\n var _x = findPervTabStop(this);\n\n _x.focus();\n }\n });\n\n if ($(\"#state\").length != 0) {\n var tx = '';\n\n var _iterator = _createForOfIteratorHelper(data().states),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var s = _step.value;\n tx += \"\");\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n $(\"#state\").append(tx);\n $(\"#state\").val($(\"#state\").data('val'));\n $(\"#state\").change(function () {\n var v = $(this).val();\n var tx = '';\n\n var _iterator2 = _createForOfIteratorHelper(data().cities),\n _step2;\n\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var city = _step2.value;\n\n if (city.state_id == v) {\n tx += \"\");\n }\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n\n $(\"#city\").html(tx);\n });\n $(\"#state\").change();\n $(\"#city\").val($(\"#city\").data('val'));\n }\n\n if ($(\"#state_\").length != 0) {\n var tx = '';\n\n var _iterator3 = _createForOfIteratorHelper(data().states),\n _step3;\n\n try {\n for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {\n var _s = _step3.value;\n tx += \"\");\n }\n } catch (err) {\n _iterator3.e(err);\n } finally {\n _iterator3.f();\n }\n\n $(\"#state_\").append(tx);\n $(\"#state_\").val($(\"#state_\").data('val'));\n $(\"#state_\").change(function () {\n var v = $(this).val();\n var tx = '';\n\n var _iterator4 = _createForOfIteratorHelper(data().cities),\n _step4;\n\n try {\n for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {\n var city = _step4.value;\n\n if (city.state_id == v) {\n tx += \"\");\n }\n }\n } catch (err) {\n _iterator4.e(err);\n } finally {\n _iterator4.f();\n }\n\n $(\"#city_\").html(tx);\n });\n $(\"#state_\").change();\n $(\"#city_\").val($(\"#city_\").data('val'));\n }\n\n $(\"#sms-btn\").bind('click', function () {\n if ($(\"#mobile\").val().length !== 11) {\n window.alertify.error(window.translate.errMobile);\n return;\n }\n\n $(\"#sms-btn\").attr('disabled', true);\n\n if (!isSendSms) {\n axios.post($(this).data('send'), {\n mobile: $(\"#mobile\").val()\n }).then(function (e) {\n if (e.data.OK == true) {\n window.alertify.success(e.data.msg);\n $(\"#sms-code\").slideDown(500);\n $(\"#sms-first\").focus();\n isSendSms = true;\n }\n\n $(\"#sms-btn\").removeAttr('disabled');\n })[\"catch\"](function () {\n window.alertify.error('Server Error');\n $(\"#sms-btn\").removeAttr('disabled');\n });\n } else {\n var pass = '';\n $(\".sms-pass\").each(function () {\n pass += $(this).val();\n });\n var login = $(this).data('customer');\n axios.post($(this).data('check'), {\n mobile: $(\"#mobile\").val(),\n pass: pass\n }).then(function (e) {\n $(\"#sms-btn\").removeAttr('disabled');\n\n if (e.data.OK == true) {\n window.alertify.success(e.data.msg);\n setTimeout(function () {\n window.location.href = login;\n }, 2000);\n } else {\n window.alertify.error(e.data.err);\n }\n })[\"catch\"](function () {\n $(\"#sms-btn\").removeAttr('disabled');\n window.alertify.error('Server Error');\n });\n }\n });\n $(\".count-dec\").bind('click', function () {\n var inp = $(this).parent().find('input');\n\n if (parseInt($(inp).val()) - 1 < 1) {\n $(inp).val(1);\n } else {\n $(inp).val(parseInt($(inp).val()) - 1);\n }\n\n $(inp).change();\n });\n $(\".count-inc\").bind('click', function () {\n var inp = $(this).parent().find('input');\n\n if (parseInt($(inp).val()) + 1 > $(inp).attr('max')) {\n $(inp).val($(inp).attr('max'));\n } else {\n $(inp).val(parseInt($(inp).val()) + 1);\n }\n\n $(inp).change();\n });\n $(\".quantity\").bind('click', function () {\n $(this).closest('td').find('.quantity').removeClass('active');\n $(this).closest('td').find('.quantity input').removeAttr('checked');\n $(this).addClass('active');\n $(this).find('input')[0].checked = true;\n $(this).closest('tr').find('.price-td').attr('data-price', $(this).data('price'));\n $(this).closest('tr').find('.price').text(commafy($(this).data('price')));\n $(this).closest('tr').find('.product-count input').attr('max', $(this).data('count'));\n\n if ($(this).data('count') == 0) {\n $(this).closest('tr').find('.product-count input').attr('max', 0);\n }\n\n updateCard();\n });\n $('.product-count input').bind('change', function () {\n updateCard();\n });\n\n function updateCard() {\n var totalPrice = 0;\n\n var _iterator5 = _createForOfIteratorHelper(document.querySelectorAll('.price-td')),\n _step5;\n\n try {\n for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {\n var td = _step5.value;\n var price = parseInt($(td).attr('data-price'));\n var count = parseInt($(td).closest('tr').find('.product-count input').val());\n $(td).closest('tr').find('.product-count input').attr('max', $(td).closest('tr').find('.active').data('count')); // maybe need comment\n\n if ($(td).closest('tr').find('.product-count input').attr('max') == '0') {\n $(td).closest('tr').find('.product-count input').attr('max', 1);\n }\n\n totalPrice += price * count;\n } // check price\n\n } catch (err) {\n _iterator5.e(err);\n } finally {\n _iterator5.f();\n }\n\n try {\n var discount = JSON.parse($(\"#discount\").attr('data-discount'));\n\n if (!isNaN(parseInt(discount.amount))) {\n if (discount.type === 'price') {\n totalPrice -= parseInt(discount.amount);\n } else {\n totalPrice -= (100 - parseInt(discount.amount)) * totalPrice / 100;\n }\n }\n } catch (e) {// console.log(e.message);\n }\n\n var lastprice = totalPrice;\n\n if ($(\".transport:checked\").data('price') !== undefined) {\n lastprice += parseInt($(\".transport:checked\").data('price'));\n } // transport\n\n\n $('#total-card').text(commafy(totalPrice));\n $('#last-price').text(commafy(lastprice));\n }\n\n $(\".reserve\").change(function () {\n if ($(\".reserve:checked\").length > 0) {\n $(\".transport\").removeAttr('checked');\n }\n\n $(\"#resv\").hide();\n $(\"#flexSwitchCheckDefault\").removeAttr('checked');\n updateCard();\n });\n $(\".transport\").change(function () {\n if ($(\".transport:checked\").length > 0) {\n $(\".reserve\").removeAttr('checked');\n }\n\n $(\"#resv\").show();\n updateCard();\n }); // discount\n\n $(\"#discount\").bind('click', function () {\n axios.post($(this).data('url'), {\n code: $(\"#discount-code\").val()\n }).then(function (e) {\n $(\"#discount\").attr('data-discount', JSON.stringify(e.data));\n window.alertify.success(window.translate.discountCodeAccept);\n updateCard();\n })[\"catch\"](function () {\n $(\"#discount\").attr('data-discount', '{}');\n window.alertify.error(window.translate.discountCodeError);\n updateCard();\n });\n });\n $(\"#profile-tab li\").bind('click', function () {\n $(\"#profile-tab li\").removeClass('active');\n $(this).addClass('active');\n $(\".profile-tab.active\").slideUp(300, function () {\n $(this).removeClass('active');\n });\n $($(this).data('id')).slideDown(300, function () {\n $(this).addClass('active');\n });\n });\n updateCard();\n setTimeout(function () {\n if ($(\"#catId\").length > 0) {\n var url = $(\"#catId\").data('url');\n $.get(url, function (e) {\n // console.log(app);\n app.jdata = e[1];\n });\n }\n }, 500);\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9yZXNvdXJjZXMvanMvY3VzdG9tZXIuanMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsSUFBSUEsSUFBSSxHQUFHQyxtQkFBTyxDQUFDLHNEQUFELENBQWxCOztBQUNBLElBQUlDLFNBQVMsR0FBRyxLQUFoQjs7QUFFQSxTQUFTQyxPQUFULENBQWlCQyxHQUFqQixFQUFzQjtFQUNsQkMsQ0FBQyxHQUFHRCxHQUFHLENBQUNFLFFBQUosR0FBZUMsT0FBZixDQUF1QixLQUF2QixFQUE4QixFQUE5QixDQUFKLENBRGtCLENBQ3FCOztFQUN2QyxPQUFPRixDQUFDLENBQUNDLFFBQUYsRUFBUDtBQUNIOztBQUVELFNBQVNFLE9BQVQsQ0FBaUJKLEdBQWpCLEVBQXNCO0VBQ2xCQSxHQUFHLEdBQUdELE9BQU8sQ0FBQ0MsR0FBRCxDQUFiO0VBQ0EsSUFBSUssR0FBRyxHQUFHTCxHQUFHLENBQUNFLFFBQUosR0FBZUksS0FBZixDQUFxQixHQUFyQixDQUFWOztFQUNBLElBQUlELEdBQUcsQ0FBQyxDQUFELENBQUgsQ0FBT0UsTUFBUCxJQUFpQixDQUFyQixFQUF3QjtJQUVwQkYsR0FBRyxDQUFDLENBQUQsQ0FBSCxHQUFTQSxHQUFHLENBQUMsQ0FBRCxDQUFILENBQU9GLE9BQVAsQ0FBZSxvQkFBZixFQUFxQyxLQUFyQyxDQUFUO0VBQ0g7O0VBQ0QsSUFBSUUsR0FBRyxDQUFDLENBQUQsQ0FBSCxJQUFVQSxHQUFHLENBQUMsQ0FBRCxDQUFILENBQU9FLE1BQVAsSUFBaUIsQ0FBL0IsRUFBa0M7SUFFOUJGLEdBQUcsQ0FBQyxDQUFELENBQUgsR0FBU0EsR0FBRyxDQUFDLENBQUQsQ0FBSCxDQUFPRixPQUFQLENBQWUsVUFBZixFQUEyQixLQUEzQixDQUFUO0VBQ0g7O0VBQ0QsT0FBT0UsR0FBRyxDQUFDRyxJQUFKLENBQVMsR0FBVCxDQUFQO0FBQ0g7O0FBRUQsU0FBU0MsZUFBVCxDQUF5QkMsRUFBekIsRUFBNkI7RUFDekIsSUFBSUMsUUFBUSxHQUFHQyxRQUFRLENBQUNDLGdCQUFULENBQTBCLDBDQUExQixDQUFmO0VBQ0EsSUFBSUMsSUFBSSxHQUFHQyxLQUFLLENBQUNDLFNBQU4sQ0FBZ0JDLE1BQWhCLENBQXVCQyxJQUF2QixDQUE0QlAsUUFBNUIsRUFBc0MsVUFBVVEsSUFBVixFQUFnQjtJQUM3RCxPQUFPQSxJQUFJLENBQUNDLFFBQUwsSUFBaUIsR0FBeEI7RUFDSCxDQUZVLENBQVg7RUFHQSxJQUFJQyxLQUFLLEdBQUdQLElBQUksQ0FBQ1EsT0FBTCxDQUFhWixFQUFiLENBQVo7RUFDQSxPQUFPSSxJQUFJLENBQUNPLEtBQUssR0FBRyxDQUFULENBQUosSUFBbUJQLElBQUksQ0FBQyxDQUFELENBQTlCO0FBQ0g7O0FBRUQsU0FBU1MsZUFBVCxDQUF5QmIsRUFBekIsRUFBNkI7RUFDekIsSUFBSUMsUUFBUSxHQUFHQyxRQUFRLENBQUNDLGdCQUFULENBQTBCLDBDQUExQixDQUFmO0VBQ0EsSUFBSUMsSUFBSSxHQUFHQyxLQUFLLENBQUNDLFNBQU4sQ0FBZ0JDLE1BQWhCLENBQXVCQyxJQUF2QixDQUE0QlAsUUFBNUIsRUFBc0MsVUFBVVEsSUFBVixFQUFnQjtJQUM3RCxPQUFPQSxJQUFJLENBQUNDLFFBQUwsSUFBaUIsR0FBeEI7RUFDSCxDQUZVLENBQVg7RUFHQSxJQUFJQyxLQUFLLEdBQUdQLElBQUksQ0FBQ1EsT0FBTCxDQUFhWixFQUFiLENBQVo7RUFDQSxPQUFPSSxJQUFJLENBQUNPLEtBQUssR0FBRyxDQUFULENBQUosSUFBbUJQLElBQUksQ0FBQyxDQUFELENBQTlCO0FBQ0g7O0FBRURVLE1BQU0sQ0FBQyxVQUFVQyxDQUFWLEVBQWE7RUFFaEJBLENBQUMsQ0FBQyxXQUFELENBQUQsQ0FBZUMsSUFBZixDQUFvQixPQUFwQixFQUE2QixZQUFZO0lBQ3JDLEtBQUtDLGlCQUFMLENBQXVCLENBQXZCLEVBQTBCLEtBQUtDLEtBQUwsQ0FBV3JCLE1BQXJDO0VBQ0gsQ0FGRDtFQUdBa0IsQ0FBQyxDQUFDLFdBQUQsQ0FBRCxDQUFlQyxJQUFmLENBQW9CLE9BQXBCLEVBQTZCLFlBQVk7SUFDckMsSUFBSUQsQ0FBQyxDQUFDLElBQUQsQ0FBRCxDQUFRSSxHQUFSLEdBQWN0QixNQUFkLElBQXdCLENBQTVCLEVBQStCO01BQzNCLElBQUl1QixDQUFDLEdBQUdyQixlQUFlLENBQUMsSUFBRCxDQUF2QjtNQUNBcUIsQ0FBQyxDQUFDQyxLQUFGO0lBQ0gsQ0FIRCxNQUdPLElBQUlOLENBQUMsQ0FBQyxJQUFELENBQUQsQ0FBUUksR0FBUixHQUFjdEIsTUFBZCxJQUF3QixDQUE1QixFQUErQjtNQUNsQyxJQUFJdUIsRUFBQyxHQUFHUCxlQUFlLENBQUMsSUFBRCxDQUF2Qjs7TUFDQU8sRUFBQyxDQUFDQyxLQUFGO0lBQ0g7RUFDSixDQVJEOztFQVNBLElBQUlOLENBQUMsQ0FBQyxRQUFELENBQUQsQ0FBWWxCLE1BQVosSUFBc0IsQ0FBMUIsRUFBNkI7SUFFekIsSUFBSXlCLEVBQUUsR0FBRyw0QkFBVDs7SUFGeUIsMkNBR1RwQyxJQUFJLEdBQUdxQyxNQUhFO0lBQUE7O0lBQUE7TUFHekIsb0RBQStCO1FBQUEsSUFBcEJDLENBQW9CO1FBQzNCRixFQUFFLDhCQUFzQkUsQ0FBQyxDQUFDQyxFQUF4QixnQkFBK0JELENBQUMsQ0FBQ0UsSUFBakMsY0FBRjtNQUNIO0lBTHdCO01BQUE7SUFBQTtNQUFBO0lBQUE7O0lBTXpCWCxDQUFDLENBQUMsUUFBRCxDQUFELENBQVlZLE1BQVosQ0FBbUJMLEVBQW5CO0lBQ0FQLENBQUMsQ0FBQyxRQUFELENBQUQsQ0FBWUksR0FBWixDQUFnQkosQ0FBQyxDQUFDLFFBQUQsQ0FBRCxDQUFZN0IsSUFBWixDQUFpQixLQUFqQixDQUFoQjtJQUVBNkIsQ0FBQyxDQUFDLFFBQUQsQ0FBRCxDQUFZYSxNQUFaLENBQW1CLFlBQVk7TUFDM0IsSUFBSUMsQ0FBQyxHQUFHZCxDQUFDLENBQUMsSUFBRCxDQUFELENBQVFJLEdBQVIsRUFBUjtNQUNBLElBQUlHLEVBQUUsR0FBRyxFQUFUOztNQUYyQiw0Q0FHUnBDLElBQUksR0FBRzRDLE1BSEM7TUFBQTs7TUFBQTtRQUczQix1REFBa0M7VUFBQSxJQUF2QkMsSUFBdUI7O1VBQzlCLElBQUlBLElBQUksQ0FBQ0MsUUFBTCxJQUFpQkgsQ0FBckIsRUFBd0I7WUFDcEJQLEVBQUUsOEJBQXNCUyxJQUFJLENBQUNOLEVBQTNCLGdCQUFrQ00sSUFBSSxDQUFDTCxJQUF2QyxjQUFGO1VBQ0g7UUFDSjtNQVAwQjtRQUFBO01BQUE7UUFBQTtNQUFBOztNQVEzQlgsQ0FBQyxDQUFDLE9BQUQsQ0FBRCxDQUFXa0IsSUFBWCxDQUFnQlgsRUFBaEI7SUFDSCxDQVREO0lBVUFQLENBQUMsQ0FBQyxRQUFELENBQUQsQ0FBWWEsTUFBWjtJQUNBYixDQUFDLENBQUMsT0FBRCxDQUFELENBQVdJLEdBQVgsQ0FBZUosQ0FBQyxDQUFDLE9BQUQsQ0FBRCxDQUFXN0IsSUFBWCxDQUFnQixLQUFoQixDQUFmO0VBRUg7O0VBRUQsSUFBSTZCLENBQUMsQ0FBQyxTQUFELENBQUQsQ0FBYWxCLE1BQWIsSUFBdUIsQ0FBM0IsRUFBOEI7SUFFMUIsSUFBSXlCLEVBQUUsR0FBRyw0QkFBVDs7SUFGMEIsNENBR1ZwQyxJQUFJLEdBQUdxQyxNQUhHO0lBQUE7O0lBQUE7TUFHMUIsdURBQStCO1FBQUEsSUFBcEJDLEVBQW9CO1FBQzNCRixFQUFFLDhCQUFzQkUsRUFBQyxDQUFDQyxFQUF4QixnQkFBK0JELEVBQUMsQ0FBQ0UsSUFBakMsY0FBRjtNQUNIO0lBTHlCO01BQUE7SUFBQTtNQUFBO0lBQUE7O0lBTTFCWCxDQUFDLENBQUMsU0FBRCxDQUFELENBQWFZLE1BQWIsQ0FBb0JMLEVBQXBCO0lBQ0FQLENBQUMsQ0FBQyxTQUFELENBQUQsQ0FBYUksR0FBYixDQUFpQkosQ0FBQyxDQUFDLFNBQUQsQ0FBRCxDQUFhN0IsSUFBYixDQUFrQixLQUFsQixDQUFqQjtJQUVBNkIsQ0FBQyxDQUFDLFNBQUQsQ0FBRCxDQUFhYSxNQUFiLENBQW9CLFlBQVk7TUFDNUIsSUFBSUMsQ0FBQyxHQUFHZCxDQUFDLENBQUMsSUFBRCxDQUFELENBQVFJLEdBQVIsRUFBUjtNQUNBLElBQUlHLEVBQUUsR0FBRyxFQUFUOztNQUY0Qiw0Q0FHVHBDLElBQUksR0FBRzRDLE1BSEU7TUFBQTs7TUFBQTtRQUc1Qix1REFBa0M7VUFBQSxJQUF2QkMsSUFBdUI7O1VBQzlCLElBQUlBLElBQUksQ0FBQ0MsUUFBTCxJQUFpQkgsQ0FBckIsRUFBd0I7WUFDcEJQLEVBQUUsOEJBQXNCUyxJQUFJLENBQUNOLEVBQTNCLGdCQUFrQ00sSUFBSSxDQUFDTCxJQUF2QyxjQUFGO1VBQ0g7UUFDSjtNQVAyQjtRQUFBO01BQUE7UUFBQTtNQUFBOztNQVE1QlgsQ0FBQyxDQUFDLFFBQUQsQ0FBRCxDQUFZa0IsSUFBWixDQUFpQlgsRUFBakI7SUFDSCxDQVREO0lBVUFQLENBQUMsQ0FBQyxTQUFELENBQUQsQ0FBYWEsTUFBYjtJQUNBYixDQUFDLENBQUMsUUFBRCxDQUFELENBQVlJLEdBQVosQ0FBZ0JKLENBQUMsQ0FBQyxRQUFELENBQUQsQ0FBWTdCLElBQVosQ0FBaUIsS0FBakIsQ0FBaEI7RUFFSDs7RUFHRDZCLENBQUMsQ0FBQyxVQUFELENBQUQsQ0FBY0MsSUFBZCxDQUFtQixPQUFuQixFQUE0QixZQUFZO0lBQ3BDLElBQUlELENBQUMsQ0FBQyxTQUFELENBQUQsQ0FBYUksR0FBYixHQUFtQnRCLE1BQW5CLEtBQThCLEVBQWxDLEVBQXNDO01BQ2xDcUMsTUFBTSxDQUFDQyxRQUFQLENBQWdCQyxLQUFoQixDQUFzQkYsTUFBTSxDQUFDRyxTQUFQLENBQWlCQyxTQUF2QztNQUNBO0lBQ0g7O0lBQ0R2QixDQUFDLENBQUMsVUFBRCxDQUFELENBQWN3QixJQUFkLENBQW1CLFVBQW5CLEVBQStCLElBQS9COztJQUNBLElBQUksQ0FBQ25ELFNBQUwsRUFBZ0I7TUFDWm9ELEtBQUssQ0FBQ0MsSUFBTixDQUFXMUIsQ0FBQyxDQUFDLElBQUQsQ0FBRCxDQUFRN0IsSUFBUixDQUFhLE1BQWIsQ0FBWCxFQUFpQztRQUFDd0QsTUFBTSxFQUFFM0IsQ0FBQyxDQUFDLFNBQUQsQ0FBRCxDQUFhSSxHQUFiO01BQVQsQ0FBakMsRUFBK0R3QixJQUEvRCxDQUFvRSxVQUFVQyxDQUFWLEVBQWE7UUFDN0UsSUFBSUEsQ0FBQyxDQUFDMUQsSUFBRixDQUFPMkQsRUFBUCxJQUFhLElBQWpCLEVBQXVCO1VBQ25CWCxNQUFNLENBQUNDLFFBQVAsQ0FBZ0JXLE9BQWhCLENBQXdCRixDQUFDLENBQUMxRCxJQUFGLENBQU82RCxHQUEvQjtVQUNBaEMsQ0FBQyxDQUFDLFdBQUQsQ0FBRCxDQUFlaUMsU0FBZixDQUF5QixHQUF6QjtVQUNBakMsQ0FBQyxDQUFDLFlBQUQsQ0FBRCxDQUFnQk0sS0FBaEI7VUFDQWpDLFNBQVMsR0FBRyxJQUFaO1FBQ0g7O1FBQ0QyQixDQUFDLENBQUMsVUFBRCxDQUFELENBQWNrQyxVQUFkLENBQXlCLFVBQXpCO01BQ0gsQ0FSRCxXQVFTLFlBQVk7UUFDakJmLE1BQU0sQ0FBQ0MsUUFBUCxDQUFnQkMsS0FBaEIsQ0FBc0IsY0FBdEI7UUFDQXJCLENBQUMsQ0FBQyxVQUFELENBQUQsQ0FBY2tDLFVBQWQsQ0FBeUIsVUFBekI7TUFDSCxDQVhEO0lBWUgsQ0FiRCxNQWFPO01BQ0gsSUFBSUMsSUFBSSxHQUFHLEVBQVg7TUFDQW5DLENBQUMsQ0FBQyxXQUFELENBQUQsQ0FBZW9DLElBQWYsQ0FBb0IsWUFBWTtRQUM1QkQsSUFBSSxJQUFJbkMsQ0FBQyxDQUFDLElBQUQsQ0FBRCxDQUFRSSxHQUFSLEVBQVI7TUFDSCxDQUZEO01BR0EsSUFBSWlDLEtBQUssR0FBR3JDLENBQUMsQ0FBQyxJQUFELENBQUQsQ0FBUTdCLElBQVIsQ0FBYSxVQUFiLENBQVo7TUFDQXNELEtBQUssQ0FBQ0MsSUFBTixDQUFXMUIsQ0FBQyxDQUFDLElBQUQsQ0FBRCxDQUFRN0IsSUFBUixDQUFhLE9BQWIsQ0FBWCxFQUFrQztRQUFDd0QsTUFBTSxFQUFFM0IsQ0FBQyxDQUFDLFNBQUQsQ0FBRCxDQUFhSSxHQUFiLEVBQVQ7UUFBNkIrQixJQUFJLEVBQUVBO01BQW5DLENBQWxDLEVBQTRFUCxJQUE1RSxDQUFpRixVQUFVQyxDQUFWLEVBQWE7UUFDMUY3QixDQUFDLENBQUMsVUFBRCxDQUFELENBQWNrQyxVQUFkLENBQXlCLFVBQXpCOztRQUNBLElBQUlMLENBQUMsQ0FBQzFELElBQUYsQ0FBTzJELEVBQVAsSUFBYSxJQUFqQixFQUF1QjtVQUNuQlgsTUFBTSxDQUFDQyxRQUFQLENBQWdCVyxPQUFoQixDQUF3QkYsQ0FBQyxDQUFDMUQsSUFBRixDQUFPNkQsR0FBL0I7VUFDQU0sVUFBVSxDQUFDLFlBQVk7WUFDbkJuQixNQUFNLENBQUNvQixRQUFQLENBQWdCQyxJQUFoQixHQUF1QkgsS0FBdkI7VUFDSCxDQUZTLEVBRVAsSUFGTyxDQUFWO1FBR0gsQ0FMRCxNQUtPO1VBQ0hsQixNQUFNLENBQUNDLFFBQVAsQ0FBZ0JDLEtBQWhCLENBQXNCUSxDQUFDLENBQUMxRCxJQUFGLENBQU9zRSxHQUE3QjtRQUNIO01BQ0osQ0FWRCxXQVVTLFlBQVk7UUFDakJ6QyxDQUFDLENBQUMsVUFBRCxDQUFELENBQWNrQyxVQUFkLENBQXlCLFVBQXpCO1FBQ0FmLE1BQU0sQ0FBQ0MsUUFBUCxDQUFnQkMsS0FBaEIsQ0FBc0IsY0FBdEI7TUFDSCxDQWJEO0lBY0g7RUFDSixDQXhDRDtFQTBDQXJCLENBQUMsQ0FBQyxZQUFELENBQUQsQ0FBZ0JDLElBQWhCLENBQXFCLE9BQXJCLEVBQThCLFlBQVk7SUFDdEMsSUFBSXlDLEdBQUcsR0FBRzFDLENBQUMsQ0FBQyxJQUFELENBQUQsQ0FBUTJDLE1BQVIsR0FBaUJDLElBQWpCLENBQXNCLE9BQXRCLENBQVY7O0lBQ0EsSUFBSUMsUUFBUSxDQUFDN0MsQ0FBQyxDQUFDMEMsR0FBRCxDQUFELENBQU90QyxHQUFQLEVBQUQsQ0FBUixHQUF5QixDQUF6QixHQUE2QixDQUFqQyxFQUFvQztNQUNoQ0osQ0FBQyxDQUFDMEMsR0FBRCxDQUFELENBQU90QyxHQUFQLENBQVcsQ0FBWDtJQUNILENBRkQsTUFFTztNQUNISixDQUFDLENBQUMwQyxHQUFELENBQUQsQ0FBT3RDLEdBQVAsQ0FBV3lDLFFBQVEsQ0FBQzdDLENBQUMsQ0FBQzBDLEdBQUQsQ0FBRCxDQUFPdEMsR0FBUCxFQUFELENBQVIsR0FBeUIsQ0FBcEM7SUFDSDs7SUFDREosQ0FBQyxDQUFDMEMsR0FBRCxDQUFELENBQU83QixNQUFQO0VBQ0gsQ0FSRDtFQVNBYixDQUFDLENBQUMsWUFBRCxDQUFELENBQWdCQyxJQUFoQixDQUFxQixPQUFyQixFQUE4QixZQUFZO0lBQ3RDLElBQUl5QyxHQUFHLEdBQUcxQyxDQUFDLENBQUMsSUFBRCxDQUFELENBQVEyQyxNQUFSLEdBQWlCQyxJQUFqQixDQUFzQixPQUF0QixDQUFWOztJQUNBLElBQUlDLFFBQVEsQ0FBQzdDLENBQUMsQ0FBQzBDLEdBQUQsQ0FBRCxDQUFPdEMsR0FBUCxFQUFELENBQVIsR0FBeUIsQ0FBekIsR0FBNkJKLENBQUMsQ0FBQzBDLEdBQUQsQ0FBRCxDQUFPbEIsSUFBUCxDQUFZLEtBQVosQ0FBakMsRUFBcUQ7TUFDakR4QixDQUFDLENBQUMwQyxHQUFELENBQUQsQ0FBT3RDLEdBQVAsQ0FBV0osQ0FBQyxDQUFDMEMsR0FBRCxDQUFELENBQU9sQixJQUFQLENBQVksS0FBWixDQUFYO0lBQ0gsQ0FGRCxNQUVPO01BQ0h4QixDQUFDLENBQUMwQyxHQUFELENBQUQsQ0FBT3RDLEdBQVAsQ0FBV3lDLFFBQVEsQ0FBQzdDLENBQUMsQ0FBQzBDLEdBQUQsQ0FBRCxDQUFPdEMsR0FBUCxFQUFELENBQVIsR0FBeUIsQ0FBcEM7SUFDSDs7SUFDREosQ0FBQyxDQUFDMEMsR0FBRCxDQUFELENBQU83QixNQUFQO0VBQ0gsQ0FSRDtFQVVBYixDQUFDLENBQUMsV0FBRCxDQUFELENBQWVDLElBQWYsQ0FBb0IsT0FBcEIsRUFBNkIsWUFBWTtJQUNyQ0QsQ0FBQyxDQUFDLElBQUQsQ0FBRCxDQUFROEMsT0FBUixDQUFnQixJQUFoQixFQUFzQkYsSUFBdEIsQ0FBMkIsV0FBM0IsRUFBd0NHLFdBQXhDLENBQW9ELFFBQXBEO0lBQ0EvQyxDQUFDLENBQUMsSUFBRCxDQUFELENBQVE4QyxPQUFSLENBQWdCLElBQWhCLEVBQXNCRixJQUF0QixDQUEyQixpQkFBM0IsRUFBOENWLFVBQTlDLENBQXlELFNBQXpEO0lBQ0FsQyxDQUFDLENBQUMsSUFBRCxDQUFELENBQVFnRCxRQUFSLENBQWlCLFFBQWpCO0lBQ0FoRCxDQUFDLENBQUMsSUFBRCxDQUFELENBQVE0QyxJQUFSLENBQWEsT0FBYixFQUFzQixDQUF0QixFQUF5QkssT0FBekIsR0FBbUMsSUFBbkM7SUFDQWpELENBQUMsQ0FBQyxJQUFELENBQUQsQ0FBUThDLE9BQVIsQ0FBZ0IsSUFBaEIsRUFBc0JGLElBQXRCLENBQTJCLFdBQTNCLEVBQXdDcEIsSUFBeEMsQ0FBNkMsWUFBN0MsRUFBMkR4QixDQUFDLENBQUMsSUFBRCxDQUFELENBQVE3QixJQUFSLENBQWEsT0FBYixDQUEzRDtJQUNBNkIsQ0FBQyxDQUFDLElBQUQsQ0FBRCxDQUFROEMsT0FBUixDQUFnQixJQUFoQixFQUFzQkYsSUFBdEIsQ0FBMkIsUUFBM0IsRUFBcUNNLElBQXJDLENBQTBDdkUsT0FBTyxDQUFDcUIsQ0FBQyxDQUFDLElBQUQsQ0FBRCxDQUFRN0IsSUFBUixDQUFhLE9BQWIsQ0FBRCxDQUFqRDtJQUNBNkIsQ0FBQyxDQUFDLElBQUQsQ0FBRCxDQUFROEMsT0FBUixDQUFnQixJQUFoQixFQUFzQkYsSUFBdEIsQ0FBMkIsc0JBQTNCLEVBQW1EcEIsSUFBbkQsQ0FBd0QsS0FBeEQsRUFBK0R4QixDQUFDLENBQUMsSUFBRCxDQUFELENBQVE3QixJQUFSLENBQWEsT0FBYixDQUEvRDs7SUFDQSxJQUFJNkIsQ0FBQyxDQUFDLElBQUQsQ0FBRCxDQUFRN0IsSUFBUixDQUFhLE9BQWIsS0FBeUIsQ0FBN0IsRUFBZ0M7TUFDNUI2QixDQUFDLENBQUMsSUFBRCxDQUFELENBQVE4QyxPQUFSLENBQWdCLElBQWhCLEVBQXNCRixJQUF0QixDQUEyQixzQkFBM0IsRUFBbURwQixJQUFuRCxDQUF3RCxLQUF4RCxFQUErRCxDQUEvRDtJQUNIOztJQUNEMkIsVUFBVTtFQUNiLENBWkQ7RUFjQW5ELENBQUMsQ0FBQyxzQkFBRCxDQUFELENBQTBCQyxJQUExQixDQUErQixRQUEvQixFQUF5QyxZQUFZO0lBQ2pEa0QsVUFBVTtFQUNiLENBRkQ7O0VBSUEsU0FBU0EsVUFBVCxHQUFzQjtJQUNsQixJQUFJQyxVQUFVLEdBQUcsQ0FBakI7O0lBRGtCLDRDQUVEakUsUUFBUSxDQUFDQyxnQkFBVCxDQUEwQixXQUExQixDQUZDO0lBQUE7O0lBQUE7TUFFbEIsdURBQXlEO1FBQUEsSUFBOUNpRSxFQUE4QztRQUNyRCxJQUFJQyxLQUFLLEdBQUdULFFBQVEsQ0FBQzdDLENBQUMsQ0FBQ3FELEVBQUQsQ0FBRCxDQUFNN0IsSUFBTixDQUFXLFlBQVgsQ0FBRCxDQUFwQjtRQUNBLElBQUkrQixLQUFLLEdBQUdWLFFBQVEsQ0FBQzdDLENBQUMsQ0FBQ3FELEVBQUQsQ0FBRCxDQUFNUCxPQUFOLENBQWMsSUFBZCxFQUFvQkYsSUFBcEIsQ0FBeUIsc0JBQXpCLEVBQWlEeEMsR0FBakQsRUFBRCxDQUFwQjtRQUNBSixDQUFDLENBQUNxRCxFQUFELENBQUQsQ0FBTVAsT0FBTixDQUFjLElBQWQsRUFBb0JGLElBQXBCLENBQXlCLHNCQUF6QixFQUFpRHBCLElBQWpELENBQXNELEtBQXRELEVBQTZEeEIsQ0FBQyxDQUFDcUQsRUFBRCxDQUFELENBQU1QLE9BQU4sQ0FBYyxJQUFkLEVBQW9CRixJQUFwQixDQUF5QixTQUF6QixFQUFvQ3pFLElBQXBDLENBQXlDLE9BQXpDLENBQTdELEVBSHFELENBS3JEOztRQUNBLElBQUk2QixDQUFDLENBQUNxRCxFQUFELENBQUQsQ0FBTVAsT0FBTixDQUFjLElBQWQsRUFBb0JGLElBQXBCLENBQXlCLHNCQUF6QixFQUFpRHBCLElBQWpELENBQXNELEtBQXRELEtBQWdFLEdBQXBFLEVBQXdFO1VBQ3BFeEIsQ0FBQyxDQUFDcUQsRUFBRCxDQUFELENBQU1QLE9BQU4sQ0FBYyxJQUFkLEVBQW9CRixJQUFwQixDQUF5QixzQkFBekIsRUFBaURwQixJQUFqRCxDQUFzRCxLQUF0RCxFQUE0RCxDQUE1RDtRQUNIOztRQUNENEIsVUFBVSxJQUFJRSxLQUFLLEdBQUdDLEtBQXRCO01BQ0gsQ0FaaUIsQ0FlbEI7O0lBZmtCO01BQUE7SUFBQTtNQUFBO0lBQUE7O0lBZ0JsQixJQUFJO01BQ0EsSUFBSUMsUUFBUSxHQUFHQyxJQUFJLENBQUNDLEtBQUwsQ0FBVzFELENBQUMsQ0FBQyxXQUFELENBQUQsQ0FBZXdCLElBQWYsQ0FBb0IsZUFBcEIsQ0FBWCxDQUFmOztNQUNBLElBQUksQ0FBQ21DLEtBQUssQ0FBQ2QsUUFBUSxDQUFDVyxRQUFRLENBQUNJLE1BQVYsQ0FBVCxDQUFWLEVBQXVDO1FBQ25DLElBQUlKLFFBQVEsQ0FBQ0ssSUFBVCxLQUFrQixPQUF0QixFQUErQjtVQUMzQlQsVUFBVSxJQUFJUCxRQUFRLENBQUNXLFFBQVEsQ0FBQ0ksTUFBVixDQUF0QjtRQUNILENBRkQsTUFFTztVQUNIUixVQUFVLElBQUssQ0FBQyxNQUFNUCxRQUFRLENBQUNXLFFBQVEsQ0FBQ0ksTUFBVixDQUFmLElBQW9DUixVQUFyQyxHQUFtRCxHQUFqRTtRQUNIO01BQ0o7SUFDSixDQVRELENBU0UsT0FBT3ZCLENBQVAsRUFBVSxDQUNSO0lBQ0g7O0lBQ0QsSUFBSWlDLFNBQVMsR0FBR1YsVUFBaEI7O0lBQ0EsSUFBSXBELENBQUMsQ0FBQyxvQkFBRCxDQUFELENBQXdCN0IsSUFBeEIsQ0FBNkIsT0FBN0IsTUFBMEM0RixTQUE5QyxFQUF5RDtNQUNyREQsU0FBUyxJQUFJakIsUUFBUSxDQUFDN0MsQ0FBQyxDQUFDLG9CQUFELENBQUQsQ0FBd0I3QixJQUF4QixDQUE2QixPQUE3QixDQUFELENBQXJCO0lBQ0gsQ0EvQmlCLENBZ0NsQjs7O0lBQ0E2QixDQUFDLENBQUMsYUFBRCxDQUFELENBQWlCa0QsSUFBakIsQ0FBc0J2RSxPQUFPLENBQUN5RSxVQUFELENBQTdCO0lBQ0FwRCxDQUFDLENBQUMsYUFBRCxDQUFELENBQWlCa0QsSUFBakIsQ0FBc0J2RSxPQUFPLENBQUNtRixTQUFELENBQTdCO0VBRUg7O0VBRUQ5RCxDQUFDLENBQUMsVUFBRCxDQUFELENBQWNhLE1BQWQsQ0FBcUIsWUFBWTtJQUM3QixJQUFJYixDQUFDLENBQUMsa0JBQUQsQ0FBRCxDQUFzQmxCLE1BQXRCLEdBQStCLENBQW5DLEVBQXFDO01BQ2pDa0IsQ0FBQyxDQUFDLFlBQUQsQ0FBRCxDQUFnQmtDLFVBQWhCLENBQTJCLFNBQTNCO0lBQ0g7O0lBQ0RsQyxDQUFDLENBQUMsT0FBRCxDQUFELENBQVdnRSxJQUFYO0lBQ0FoRSxDQUFDLENBQUMseUJBQUQsQ0FBRCxDQUE2QmtDLFVBQTdCLENBQXdDLFNBQXhDO0lBQ0FpQixVQUFVO0VBQ2IsQ0FQRDtFQVFBbkQsQ0FBQyxDQUFDLFlBQUQsQ0FBRCxDQUFnQmEsTUFBaEIsQ0FBdUIsWUFBWTtJQUMvQixJQUFJYixDQUFDLENBQUMsb0JBQUQsQ0FBRCxDQUF3QmxCLE1BQXhCLEdBQWlDLENBQXJDLEVBQXVDO01BQ25Da0IsQ0FBQyxDQUFDLFVBQUQsQ0FBRCxDQUFja0MsVUFBZCxDQUF5QixTQUF6QjtJQUNIOztJQUNEbEMsQ0FBQyxDQUFDLE9BQUQsQ0FBRCxDQUFXaUUsSUFBWDtJQUNBZCxVQUFVO0VBQ2IsQ0FORCxFQTVMZ0IsQ0FtTWhCOztFQUNBbkQsQ0FBQyxDQUFDLFdBQUQsQ0FBRCxDQUFlQyxJQUFmLENBQW9CLE9BQXBCLEVBQTZCLFlBQVk7SUFDckN3QixLQUFLLENBQUNDLElBQU4sQ0FBVzFCLENBQUMsQ0FBQyxJQUFELENBQUQsQ0FBUTdCLElBQVIsQ0FBYSxLQUFiLENBQVgsRUFBZ0M7TUFBQytGLElBQUksRUFBRWxFLENBQUMsQ0FBQyxnQkFBRCxDQUFELENBQW9CSSxHQUFwQjtJQUFQLENBQWhDLEVBQW1Fd0IsSUFBbkUsQ0FBd0UsVUFBVUMsQ0FBVixFQUFhO01BQ2pGN0IsQ0FBQyxDQUFDLFdBQUQsQ0FBRCxDQUFld0IsSUFBZixDQUFvQixlQUFwQixFQUFxQ2lDLElBQUksQ0FBQ1UsU0FBTCxDQUFldEMsQ0FBQyxDQUFDMUQsSUFBakIsQ0FBckM7TUFDQWdELE1BQU0sQ0FBQ0MsUUFBUCxDQUFnQlcsT0FBaEIsQ0FBd0JaLE1BQU0sQ0FBQ0csU0FBUCxDQUFpQjhDLGtCQUF6QztNQUNBakIsVUFBVTtJQUNiLENBSkQsV0FJUyxZQUFZO01BQ2pCbkQsQ0FBQyxDQUFDLFdBQUQsQ0FBRCxDQUFld0IsSUFBZixDQUFvQixlQUFwQixFQUFxQyxJQUFyQztNQUNBTCxNQUFNLENBQUNDLFFBQVAsQ0FBZ0JDLEtBQWhCLENBQXNCRixNQUFNLENBQUNHLFNBQVAsQ0FBaUIrQyxpQkFBdkM7TUFDQWxCLFVBQVU7SUFDYixDQVJEO0VBU0gsQ0FWRDtFQVlBbkQsQ0FBQyxDQUFDLGlCQUFELENBQUQsQ0FBcUJDLElBQXJCLENBQTBCLE9BQTFCLEVBQW1DLFlBQVk7SUFDM0NELENBQUMsQ0FBQyxpQkFBRCxDQUFELENBQXFCK0MsV0FBckIsQ0FBaUMsUUFBakM7SUFDQS9DLENBQUMsQ0FBQyxJQUFELENBQUQsQ0FBUWdELFFBQVIsQ0FBaUIsUUFBakI7SUFDQWhELENBQUMsQ0FBQyxxQkFBRCxDQUFELENBQXlCc0UsT0FBekIsQ0FBaUMsR0FBakMsRUFBc0MsWUFBWTtNQUM5Q3RFLENBQUMsQ0FBQyxJQUFELENBQUQsQ0FBUStDLFdBQVIsQ0FBb0IsUUFBcEI7SUFDSCxDQUZEO0lBR0EvQyxDQUFDLENBQUNBLENBQUMsQ0FBQyxJQUFELENBQUQsQ0FBUTdCLElBQVIsQ0FBYSxJQUFiLENBQUQsQ0FBRCxDQUFzQjhELFNBQXRCLENBQWdDLEdBQWhDLEVBQXFDLFlBQVk7TUFDN0NqQyxDQUFDLENBQUMsSUFBRCxDQUFELENBQVFnRCxRQUFSLENBQWlCLFFBQWpCO0lBQ0gsQ0FGRDtFQUdILENBVEQ7RUFXQUcsVUFBVTtFQUVWYixVQUFVLENBQUMsWUFBWTtJQUNuQixJQUFJdEMsQ0FBQyxDQUFDLFFBQUQsQ0FBRCxDQUFZbEIsTUFBWixHQUFxQixDQUF6QixFQUE0QjtNQUN4QixJQUFJeUYsR0FBRyxHQUFHdkUsQ0FBQyxDQUFDLFFBQUQsQ0FBRCxDQUFZN0IsSUFBWixDQUFpQixLQUFqQixDQUFWO01BQ0E2QixDQUFDLENBQUN3RSxHQUFGLENBQU1ELEdBQU4sRUFBVyxVQUFVMUMsQ0FBVixFQUFhO1FBQ3BCO1FBQ0E0QyxHQUFHLENBQUNDLEtBQUosR0FBWTdDLENBQUMsQ0FBQyxDQUFELENBQWI7TUFDSCxDQUhEO0lBSUg7RUFDSixDQVJTLEVBUVAsR0FSTyxDQUFWO0FBU0gsQ0F0T0ssQ0FBTiIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL3Jlc291cmNlcy9qcy9jdXN0b21lci5qcz8wNmJiIl0sInNvdXJjZXNDb250ZW50IjpbInZhciBkYXRhID0gcmVxdWlyZSgnLi9wbHVnaW5zL2RhdGEnKTtcbnZhciBpc1NlbmRTbXMgPSBmYWxzZTtcblxuZnVuY3Rpb24gbm9jb21tYShudW0pIHtcbiAgICBhID0gbnVtLnRvU3RyaW5nKCkucmVwbGFjZSgvXFwsL2csICcnKTsgLy8gMTEyNSwgYnV0IGEgc3RyaW5nLCBzbyBjb252ZXJ0IGl0IHRvIG51bWJlclxuICAgIHJldHVybiBhLnRvU3RyaW5nKCk7XG59XG5cbmZ1bmN0aW9uIGNvbW1hZnkobnVtKSB7XG4gICAgbnVtID0gbm9jb21tYShudW0pO1xuICAgIHZhciBzdHIgPSBudW0udG9TdHJpbmcoKS5zcGxpdCgnLicpO1xuICAgIGlmIChzdHJbMF0ubGVuZ3RoID49IDQpIHtcblxuICAgICAgICBzdHJbMF0gPSBzdHJbMF0ucmVwbGFjZSgvKFxcZCkoPz0oXFxkezN9KSskKS9nLCAnJDEsJyk7XG4gICAgfVxuICAgIGlmIChzdHJbMV0gJiYgc3RyWzFdLmxlbmd0aCA+PSA0KSB7XG5cbiAgICAgICAgc3RyWzFdID0gc3RyWzFdLnJlcGxhY2UoLyhcXGR7M30pL2csICckMSwnKTtcbiAgICB9XG4gICAgcmV0dXJuIHN0ci5qb2luKCcuJyk7XG59XG5cbmZ1bmN0aW9uIGZpbmROZXh0VGFiU3RvcChlbCkge1xuICAgIHZhciB1bml2ZXJzZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2lucHV0LCBidXR0b24sIHNlbGVjdCwgdGV4dGFyZWEsIGFbaHJlZl0nKTtcbiAgICB2YXIgbGlzdCA9IEFycmF5LnByb3RvdHlwZS5maWx0ZXIuY2FsbCh1bml2ZXJzZSwgZnVuY3Rpb24gKGl0ZW0pIHtcbiAgICAgICAgcmV0dXJuIGl0ZW0udGFiSW5kZXggPj0gXCIwXCJcbiAgICB9KTtcbiAgICB2YXIgaW5kZXggPSBsaXN0LmluZGV4T2YoZWwpO1xuICAgIHJldHVybiBsaXN0W2luZGV4ICsgMV0gfHwgbGlzdFswXTtcbn1cblxuZnVuY3Rpb24gZmluZFBlcnZUYWJTdG9wKGVsKSB7XG4gICAgdmFyIHVuaXZlcnNlID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnaW5wdXQsIGJ1dHRvbiwgc2VsZWN0LCB0ZXh0YXJlYSwgYVtocmVmXScpO1xuICAgIHZhciBsaXN0ID0gQXJyYXkucHJvdG90eXBlLmZpbHRlci5jYWxsKHVuaXZlcnNlLCBmdW5jdGlvbiAoaXRlbSkge1xuICAgICAgICByZXR1cm4gaXRlbS50YWJJbmRleCA+PSBcIjBcIlxuICAgIH0pO1xuICAgIHZhciBpbmRleCA9IGxpc3QuaW5kZXhPZihlbCk7XG4gICAgcmV0dXJuIGxpc3RbaW5kZXggLSAxXSB8fCBsaXN0WzBdO1xufVxuXG5qUXVlcnkoZnVuY3Rpb24gKCQpIHtcblxuICAgICQoJy5zbXMtcGFzcycpLmJpbmQoJ2ZvY3VzJywgZnVuY3Rpb24gKCkge1xuICAgICAgICB0aGlzLnNldFNlbGVjdGlvblJhbmdlKDAsIHRoaXMudmFsdWUubGVuZ3RoKTtcbiAgICB9KTtcbiAgICAkKCcuc21zLXBhc3MnKS5iaW5kKCdrZXl1cCcsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgaWYgKCQodGhpcykudmFsKCkubGVuZ3RoID09IDEpIHtcbiAgICAgICAgICAgIGxldCB4ID0gZmluZE5leHRUYWJTdG9wKHRoaXMpO1xuICAgICAgICAgICAgeC5mb2N1cygpO1xuICAgICAgICB9IGVsc2UgaWYgKCQodGhpcykudmFsKCkubGVuZ3RoID09IDApIHtcbiAgICAgICAgICAgIGxldCB4ID0gZmluZFBlcnZUYWJTdG9wKHRoaXMpO1xuICAgICAgICAgICAgeC5mb2N1cygpO1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgaWYgKCQoXCIjc3RhdGVcIikubGVuZ3RoICE9IDApIHtcblxuICAgICAgICB2YXIgdHggPSAnPG9wdGlvbiB2YWx1ZT1cIlwiPjwvb3B0aW9uPic7XG4gICAgICAgIGZvciAoY29uc3QgcyBvZiBkYXRhKCkuc3RhdGVzKSB7XG4gICAgICAgICAgICB0eCArPSBgPG9wdGlvbiB2YWx1ZT1cIiR7cy5pZH1cIj4ke3MubmFtZX08L29wdGlvbj5gO1xuICAgICAgICB9XG4gICAgICAgICQoXCIjc3RhdGVcIikuYXBwZW5kKHR4KTtcbiAgICAgICAgJChcIiNzdGF0ZVwiKS52YWwoJChcIiNzdGF0ZVwiKS5kYXRhKCd2YWwnKSk7XG5cbiAgICAgICAgJChcIiNzdGF0ZVwiKS5jaGFuZ2UoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgdmFyIHYgPSAkKHRoaXMpLnZhbCgpO1xuICAgICAgICAgICAgdmFyIHR4ID0gJyc7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGNpdHkgb2YgZGF0YSgpLmNpdGllcykge1xuICAgICAgICAgICAgICAgIGlmIChjaXR5LnN0YXRlX2lkID09IHYpIHtcbiAgICAgICAgICAgICAgICAgICAgdHggKz0gYDxvcHRpb24gdmFsdWU9XCIke2NpdHkuaWR9XCI+JHtjaXR5Lm5hbWV9PC9vcHRpb24+YDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAkKFwiI2NpdHlcIikuaHRtbCh0eCk7XG4gICAgICAgIH0pO1xuICAgICAgICAkKFwiI3N0YXRlXCIpLmNoYW5nZSgpO1xuICAgICAgICAkKFwiI2NpdHlcIikudmFsKCQoXCIjY2l0eVwiKS5kYXRhKCd2YWwnKSk7XG5cbiAgICB9XG5cbiAgICBpZiAoJChcIiNzdGF0ZV9cIikubGVuZ3RoICE9IDApIHtcblxuICAgICAgICB2YXIgdHggPSAnPG9wdGlvbiB2YWx1ZT1cIlwiPjwvb3B0aW9uPic7XG4gICAgICAgIGZvciAoY29uc3QgcyBvZiBkYXRhKCkuc3RhdGVzKSB7XG4gICAgICAgICAgICB0eCArPSBgPG9wdGlvbiB2YWx1ZT1cIiR7cy5pZH1cIj4ke3MubmFtZX08L29wdGlvbj5gO1xuICAgICAgICB9XG4gICAgICAgICQoXCIjc3RhdGVfXCIpLmFwcGVuZCh0eCk7XG4gICAgICAgICQoXCIjc3RhdGVfXCIpLnZhbCgkKFwiI3N0YXRlX1wiKS5kYXRhKCd2YWwnKSk7XG5cbiAgICAgICAgJChcIiNzdGF0ZV9cIikuY2hhbmdlKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHZhciB2ID0gJCh0aGlzKS52YWwoKTtcbiAgICAgICAgICAgIHZhciB0eCA9ICcnO1xuICAgICAgICAgICAgZm9yIChjb25zdCBjaXR5IG9mIGRhdGEoKS5jaXRpZXMpIHtcbiAgICAgICAgICAgICAgICBpZiAoY2l0eS5zdGF0ZV9pZCA9PSB2KSB7XG4gICAgICAgICAgICAgICAgICAgIHR4ICs9IGA8b3B0aW9uIHZhbHVlPVwiJHtjaXR5LmlkfVwiPiR7Y2l0eS5uYW1lfTwvb3B0aW9uPmA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJChcIiNjaXR5X1wiKS5odG1sKHR4KTtcbiAgICAgICAgfSk7XG4gICAgICAgICQoXCIjc3RhdGVfXCIpLmNoYW5nZSgpO1xuICAgICAgICAkKFwiI2NpdHlfXCIpLnZhbCgkKFwiI2NpdHlfXCIpLmRhdGEoJ3ZhbCcpKTtcblxuICAgIH1cblxuXG4gICAgJChcIiNzbXMtYnRuXCIpLmJpbmQoJ2NsaWNrJywgZnVuY3Rpb24gKCkge1xuICAgICAgICBpZiAoJChcIiNtb2JpbGVcIikudmFsKCkubGVuZ3RoICE9PSAxMSkge1xuICAgICAgICAgICAgd2luZG93LmFsZXJ0aWZ5LmVycm9yKHdpbmRvdy50cmFuc2xhdGUuZXJyTW9iaWxlKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICAkKFwiI3Ntcy1idG5cIikuYXR0cignZGlzYWJsZWQnLCB0cnVlKTtcbiAgICAgICAgaWYgKCFpc1NlbmRTbXMpIHtcbiAgICAgICAgICAgIGF4aW9zLnBvc3QoJCh0aGlzKS5kYXRhKCdzZW5kJyksIHttb2JpbGU6ICQoXCIjbW9iaWxlXCIpLnZhbCgpfSkudGhlbihmdW5jdGlvbiAoZSkge1xuICAgICAgICAgICAgICAgIGlmIChlLmRhdGEuT0sgPT0gdHJ1ZSkge1xuICAgICAgICAgICAgICAgICAgICB3aW5kb3cuYWxlcnRpZnkuc3VjY2VzcyhlLmRhdGEubXNnKTtcbiAgICAgICAgICAgICAgICAgICAgJChcIiNzbXMtY29kZVwiKS5zbGlkZURvd24oNTAwKTtcbiAgICAgICAgICAgICAgICAgICAgJChcIiNzbXMtZmlyc3RcIikuZm9jdXMoKTtcbiAgICAgICAgICAgICAgICAgICAgaXNTZW5kU21zID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgJChcIiNzbXMtYnRuXCIpLnJlbW92ZUF0dHIoJ2Rpc2FibGVkJyk7XG4gICAgICAgICAgICB9KS5jYXRjaChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgd2luZG93LmFsZXJ0aWZ5LmVycm9yKCdTZXJ2ZXIgRXJyb3InKTtcbiAgICAgICAgICAgICAgICAkKFwiI3Ntcy1idG5cIikucmVtb3ZlQXR0cignZGlzYWJsZWQnKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbGV0IHBhc3MgPSAnJztcbiAgICAgICAgICAgICQoXCIuc21zLXBhc3NcIikuZWFjaChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgcGFzcyArPSAkKHRoaXMpLnZhbCgpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBsZXQgbG9naW4gPSAkKHRoaXMpLmRhdGEoJ2N1c3RvbWVyJyk7XG4gICAgICAgICAgICBheGlvcy5wb3N0KCQodGhpcykuZGF0YSgnY2hlY2snKSwge21vYmlsZTogJChcIiNtb2JpbGVcIikudmFsKCksIHBhc3M6IHBhc3N9KS50aGVuKGZ1bmN0aW9uIChlKSB7XG4gICAgICAgICAgICAgICAgJChcIiNzbXMtYnRuXCIpLnJlbW92ZUF0dHIoJ2Rpc2FibGVkJyk7XG4gICAgICAgICAgICAgICAgaWYgKGUuZGF0YS5PSyA9PSB0cnVlKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpbmRvdy5hbGVydGlmeS5zdWNjZXNzKGUuZGF0YS5tc2cpO1xuICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gbG9naW47XG4gICAgICAgICAgICAgICAgICAgIH0sIDIwMDApO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHdpbmRvdy5hbGVydGlmeS5lcnJvcihlLmRhdGEuZXJyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KS5jYXRjaChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgJChcIiNzbXMtYnRuXCIpLnJlbW92ZUF0dHIoJ2Rpc2FibGVkJyk7XG4gICAgICAgICAgICAgICAgd2luZG93LmFsZXJ0aWZ5LmVycm9yKCdTZXJ2ZXIgRXJyb3InKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfSk7XG5cbiAgICAkKFwiLmNvdW50LWRlY1wiKS5iaW5kKCdjbGljaycsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgbGV0IGlucCA9ICQodGhpcykucGFyZW50KCkuZmluZCgnaW5wdXQnKTtcbiAgICAgICAgaWYgKHBhcnNlSW50KCQoaW5wKS52YWwoKSkgLSAxIDwgMSkge1xuICAgICAgICAgICAgJChpbnApLnZhbCgxKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICQoaW5wKS52YWwocGFyc2VJbnQoJChpbnApLnZhbCgpKSAtIDEpO1xuICAgICAgICB9XG4gICAgICAgICQoaW5wKS5jaGFuZ2UoKTtcbiAgICB9KTtcbiAgICAkKFwiLmNvdW50LWluY1wiKS5iaW5kKCdjbGljaycsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgbGV0IGlucCA9ICQodGhpcykucGFyZW50KCkuZmluZCgnaW5wdXQnKTtcbiAgICAgICAgaWYgKHBhcnNlSW50KCQoaW5wKS52YWwoKSkgKyAxID4gJChpbnApLmF0dHIoJ21heCcpKSB7XG4gICAgICAgICAgICAkKGlucCkudmFsKCQoaW5wKS5hdHRyKCdtYXgnKSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAkKGlucCkudmFsKHBhcnNlSW50KCQoaW5wKS52YWwoKSkgKyAxKTtcbiAgICAgICAgfVxuICAgICAgICAkKGlucCkuY2hhbmdlKCk7XG4gICAgfSk7XG5cbiAgICAkKFwiLnF1YW50aXR5XCIpLmJpbmQoJ2NsaWNrJywgZnVuY3Rpb24gKCkge1xuICAgICAgICAkKHRoaXMpLmNsb3Nlc3QoJ3RkJykuZmluZCgnLnF1YW50aXR5JykucmVtb3ZlQ2xhc3MoJ2FjdGl2ZScpO1xuICAgICAgICAkKHRoaXMpLmNsb3Nlc3QoJ3RkJykuZmluZCgnLnF1YW50aXR5IGlucHV0JykucmVtb3ZlQXR0cignY2hlY2tlZCcpO1xuICAgICAgICAkKHRoaXMpLmFkZENsYXNzKCdhY3RpdmUnKTtcbiAgICAgICAgJCh0aGlzKS5maW5kKCdpbnB1dCcpWzBdLmNoZWNrZWQgPSB0cnVlO1xuICAgICAgICAkKHRoaXMpLmNsb3Nlc3QoJ3RyJykuZmluZCgnLnByaWNlLXRkJykuYXR0cignZGF0YS1wcmljZScsICQodGhpcykuZGF0YSgncHJpY2UnKSk7XG4gICAgICAgICQodGhpcykuY2xvc2VzdCgndHInKS5maW5kKCcucHJpY2UnKS50ZXh0KGNvbW1hZnkoJCh0aGlzKS5kYXRhKCdwcmljZScpKSk7XG4gICAgICAgICQodGhpcykuY2xvc2VzdCgndHInKS5maW5kKCcucHJvZHVjdC1jb3VudCBpbnB1dCcpLmF0dHIoJ21heCcsICQodGhpcykuZGF0YSgnY291bnQnKSk7XG4gICAgICAgIGlmICgkKHRoaXMpLmRhdGEoJ2NvdW50JykgPT0gMCkge1xuICAgICAgICAgICAgJCh0aGlzKS5jbG9zZXN0KCd0cicpLmZpbmQoJy5wcm9kdWN0LWNvdW50IGlucHV0JykuYXR0cignbWF4JywgMCk7XG4gICAgICAgIH1cbiAgICAgICAgdXBkYXRlQ2FyZCgpO1xuICAgIH0pO1xuXG4gICAgJCgnLnByb2R1Y3QtY291bnQgaW5wdXQnKS5iaW5kKCdjaGFuZ2UnLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHVwZGF0ZUNhcmQoKVxuICAgIH0pO1xuXG4gICAgZnVuY3Rpb24gdXBkYXRlQ2FyZCgpIHtcbiAgICAgICAgbGV0IHRvdGFsUHJpY2UgPSAwO1xuICAgICAgICBmb3IgKGNvbnN0IHRkIG9mIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5wcmljZS10ZCcpKSB7XG4gICAgICAgICAgICBsZXQgcHJpY2UgPSBwYXJzZUludCgkKHRkKS5hdHRyKCdkYXRhLXByaWNlJykpO1xuICAgICAgICAgICAgbGV0IGNvdW50ID0gcGFyc2VJbnQoJCh0ZCkuY2xvc2VzdCgndHInKS5maW5kKCcucHJvZHVjdC1jb3VudCBpbnB1dCcpLnZhbCgpKTtcbiAgICAgICAgICAgICQodGQpLmNsb3Nlc3QoJ3RyJykuZmluZCgnLnByb2R1Y3QtY291bnQgaW5wdXQnKS5hdHRyKCdtYXgnLCAkKHRkKS5jbG9zZXN0KCd0cicpLmZpbmQoJy5hY3RpdmUnKS5kYXRhKCdjb3VudCcpKTtcblxuICAgICAgICAgICAgLy8gbWF5YmUgbmVlZCBjb21tZW50XG4gICAgICAgICAgICBpZiAoJCh0ZCkuY2xvc2VzdCgndHInKS5maW5kKCcucHJvZHVjdC1jb3VudCBpbnB1dCcpLmF0dHIoJ21heCcpID09ICcwJyl7XG4gICAgICAgICAgICAgICAgJCh0ZCkuY2xvc2VzdCgndHInKS5maW5kKCcucHJvZHVjdC1jb3VudCBpbnB1dCcpLmF0dHIoJ21heCcsMSlcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRvdGFsUHJpY2UgKz0gcHJpY2UgKiBjb3VudDtcbiAgICAgICAgfVxuXG5cbiAgICAgICAgLy8gY2hlY2sgcHJpY2VcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGxldCBkaXNjb3VudCA9IEpTT04ucGFyc2UoJChcIiNkaXNjb3VudFwiKS5hdHRyKCdkYXRhLWRpc2NvdW50JykpO1xuICAgICAgICAgICAgaWYgKCFpc05hTihwYXJzZUludChkaXNjb3VudC5hbW91bnQpKSkge1xuICAgICAgICAgICAgICAgIGlmIChkaXNjb3VudC50eXBlID09PSAncHJpY2UnKSB7XG4gICAgICAgICAgICAgICAgICAgIHRvdGFsUHJpY2UgLT0gcGFyc2VJbnQoZGlzY291bnQuYW1vdW50KTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0b3RhbFByaWNlIC09ICgoMTAwIC0gcGFyc2VJbnQoZGlzY291bnQuYW1vdW50KSkgKiB0b3RhbFByaWNlKSAvIDEwMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKGUubWVzc2FnZSk7XG4gICAgICAgIH1cbiAgICAgICAgbGV0IGxhc3RwcmljZSA9IHRvdGFsUHJpY2U7XG4gICAgICAgIGlmICgkKFwiLnRyYW5zcG9ydDpjaGVja2VkXCIpLmRhdGEoJ3ByaWNlJykgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgbGFzdHByaWNlICs9IHBhcnNlSW50KCQoXCIudHJhbnNwb3J0OmNoZWNrZWRcIikuZGF0YSgncHJpY2UnKSk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gdHJhbnNwb3J0XG4gICAgICAgICQoJyN0b3RhbC1jYXJkJykudGV4dChjb21tYWZ5KHRvdGFsUHJpY2UpKTtcbiAgICAgICAgJCgnI2xhc3QtcHJpY2UnKS50ZXh0KGNvbW1hZnkobGFzdHByaWNlKSk7XG5cbiAgICB9XG5cbiAgICAkKFwiLnJlc2VydmVcIikuY2hhbmdlKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgaWYgKCQoXCIucmVzZXJ2ZTpjaGVja2VkXCIpLmxlbmd0aCA+IDApe1xuICAgICAgICAgICAgJChcIi50cmFuc3BvcnRcIikucmVtb3ZlQXR0cignY2hlY2tlZCcpO1xuICAgICAgICB9XG4gICAgICAgICQoXCIjcmVzdlwiKS5oaWRlKCk7XG4gICAgICAgICQoXCIjZmxleFN3aXRjaENoZWNrRGVmYXVsdFwiKS5yZW1vdmVBdHRyKCdjaGVja2VkJyk7XG4gICAgICAgIHVwZGF0ZUNhcmQoKTtcbiAgICB9KTtcbiAgICAkKFwiLnRyYW5zcG9ydFwiKS5jaGFuZ2UoZnVuY3Rpb24gKCkge1xuICAgICAgICBpZiAoJChcIi50cmFuc3BvcnQ6Y2hlY2tlZFwiKS5sZW5ndGggPiAwKXtcbiAgICAgICAgICAgICQoXCIucmVzZXJ2ZVwiKS5yZW1vdmVBdHRyKCdjaGVja2VkJyk7XG4gICAgICAgIH1cbiAgICAgICAgJChcIiNyZXN2XCIpLnNob3coKTtcbiAgICAgICAgdXBkYXRlQ2FyZCgpO1xuICAgIH0pO1xuICAgIC8vIGRpc2NvdW50XG4gICAgJChcIiNkaXNjb3VudFwiKS5iaW5kKCdjbGljaycsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgYXhpb3MucG9zdCgkKHRoaXMpLmRhdGEoJ3VybCcpLCB7Y29kZTogJChcIiNkaXNjb3VudC1jb2RlXCIpLnZhbCgpfSkudGhlbihmdW5jdGlvbiAoZSkge1xuICAgICAgICAgICAgJChcIiNkaXNjb3VudFwiKS5hdHRyKCdkYXRhLWRpc2NvdW50JywgSlNPTi5zdHJpbmdpZnkoZS5kYXRhKSk7XG4gICAgICAgICAgICB3aW5kb3cuYWxlcnRpZnkuc3VjY2Vzcyh3aW5kb3cudHJhbnNsYXRlLmRpc2NvdW50Q29kZUFjY2VwdCk7XG4gICAgICAgICAgICB1cGRhdGVDYXJkKCk7XG4gICAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICQoXCIjZGlzY291bnRcIikuYXR0cignZGF0YS1kaXNjb3VudCcsICd7fScpO1xuICAgICAgICAgICAgd2luZG93LmFsZXJ0aWZ5LmVycm9yKHdpbmRvdy50cmFuc2xhdGUuZGlzY291bnRDb2RlRXJyb3IpO1xuICAgICAgICAgICAgdXBkYXRlQ2FyZCgpO1xuICAgICAgICB9KTtcbiAgICB9KTtcblxuICAgICQoXCIjcHJvZmlsZS10YWIgbGlcIikuYmluZCgnY2xpY2snLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICQoXCIjcHJvZmlsZS10YWIgbGlcIikucmVtb3ZlQ2xhc3MoJ2FjdGl2ZScpO1xuICAgICAgICAkKHRoaXMpLmFkZENsYXNzKCdhY3RpdmUnKTtcbiAgICAgICAgJChcIi5wcm9maWxlLXRhYi5hY3RpdmVcIikuc2xpZGVVcCgzMDAsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICQodGhpcykucmVtb3ZlQ2xhc3MoJ2FjdGl2ZScpO1xuICAgICAgICB9KTtcbiAgICAgICAgJCgkKHRoaXMpLmRhdGEoJ2lkJykpLnNsaWRlRG93bigzMDAsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICQodGhpcykuYWRkQ2xhc3MoJ2FjdGl2ZScpO1xuICAgICAgICB9KVxuICAgIH0pO1xuXG4gICAgdXBkYXRlQ2FyZCgpO1xuXG4gICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICAgIGlmICgkKFwiI2NhdElkXCIpLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGxldCB1cmwgPSAkKFwiI2NhdElkXCIpLmRhdGEoJ3VybCcpO1xuICAgICAgICAgICAgJC5nZXQodXJsLCBmdW5jdGlvbiAoZSkge1xuICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKGFwcCk7XG4gICAgICAgICAgICAgICAgYXBwLmpkYXRhID0gZVsxXTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfSwgNTAwKTtcbn0pO1xuXG4iXSwibmFtZXMiOlsiZGF0YSIsInJlcXVpcmUiLCJpc1NlbmRTbXMiLCJub2NvbW1hIiwibnVtIiwiYSIsInRvU3RyaW5nIiwicmVwbGFjZSIsImNvbW1hZnkiLCJzdHIiLCJzcGxpdCIsImxlbmd0aCIsImpvaW4iLCJmaW5kTmV4dFRhYlN0b3AiLCJlbCIsInVuaXZlcnNlIiwiZG9jdW1lbnQiLCJxdWVyeVNlbGVjdG9yQWxsIiwibGlzdCIsIkFycmF5IiwicHJvdG90eXBlIiwiZmlsdGVyIiwiY2FsbCIsIml0ZW0iLCJ0YWJJbmRleCIsImluZGV4IiwiaW5kZXhPZiIsImZpbmRQZXJ2VGFiU3RvcCIsImpRdWVyeSIsIiQiLCJiaW5kIiwic2V0U2VsZWN0aW9uUmFuZ2UiLCJ2YWx1ZSIsInZhbCIsIngiLCJmb2N1cyIsInR4Iiwic3RhdGVzIiwicyIsImlkIiwibmFtZSIsImFwcGVuZCIsImNoYW5nZSIsInYiLCJjaXRpZXMiLCJjaXR5Iiwic3RhdGVfaWQiLCJodG1sIiwid2luZG93IiwiYWxlcnRpZnkiLCJlcnJvciIsInRyYW5zbGF0ZSIsImVyck1vYmlsZSIsImF0dHIiLCJheGlvcyIsInBvc3QiLCJtb2JpbGUiLCJ0aGVuIiwiZSIsIk9LIiwic3VjY2VzcyIsIm1zZyIsInNsaWRlRG93biIsInJlbW92ZUF0dHIiLCJwYXNzIiwiZWFjaCIsImxvZ2luIiwic2V0VGltZW91dCIsImxvY2F0aW9uIiwiaHJlZiIsImVyciIsImlucCIsInBhcmVudCIsImZpbmQiLCJwYXJzZUludCIsImNsb3Nlc3QiLCJyZW1vdmVDbGFzcyIsImFkZENsYXNzIiwiY2hlY2tlZCIsInRleHQiLCJ1cGRhdGVDYXJkIiwidG90YWxQcmljZSIsInRkIiwicHJpY2UiLCJjb3VudCIsImRpc2NvdW50IiwiSlNPTiIsInBhcnNlIiwiaXNOYU4iLCJhbW91bnQiLCJ0eXBlIiwibGFzdHByaWNlIiwidW5kZWZpbmVkIiwiaGlkZSIsInNob3ciLCJjb2RlIiwic3RyaW5naWZ5IiwiZGlzY291bnRDb2RlQWNjZXB0IiwiZGlzY291bnRDb2RlRXJyb3IiLCJzbGlkZVVwIiwidXJsIiwiZ2V0IiwiYXBwIiwiamRhdGEiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./resources/js/customer.js\n"); +eval("function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it[\"return\"] != null) it[\"return\"](); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nvar data = __webpack_require__(/*! ./plugins/data */ \"./resources/js/plugins/data.js\");\n\nvar isSendSms = false;\n\nfunction nocomma(num) {\n a = num.toString().replace(/\\,/g, ''); // 1125, but a string, so convert it to number\n\n return a.toString();\n}\n\nfunction commafy(num) {\n num = nocomma(num);\n var str = num.toString().split('.');\n\n if (str[0].length >= 4) {\n str[0] = str[0].replace(/(\\d)(?=(\\d{3})+$)/g, '$1,');\n }\n\n if (str[1] && str[1].length >= 4) {\n str[1] = str[1].replace(/(\\d{3})/g, '$1,');\n }\n\n return str.join('.');\n}\n\nfunction findNextTabStop(el) {\n var universe = document.querySelectorAll('input, button, select, textarea, a[href]');\n var list = Array.prototype.filter.call(universe, function (item) {\n return item.tabIndex >= \"0\";\n });\n var index = list.indexOf(el);\n return list[index + 1] || list[0];\n}\n\nfunction findPervTabStop(el) {\n var universe = document.querySelectorAll('input, button, select, textarea, a[href]');\n var list = Array.prototype.filter.call(universe, function (item) {\n return item.tabIndex >= \"0\";\n });\n var index = list.indexOf(el);\n return list[index - 1] || list[0];\n}\n\njQuery(function ($) {\n $('.sms-pass').bind('focus', function () {\n this.setSelectionRange(0, this.value.length);\n });\n $('.sms-pass').bind('keyup', function () {\n if ($(this).val().length == 1) {\n var x = findNextTabStop(this);\n x.focus();\n } else if ($(this).val().length == 0) {\n var _x = findPervTabStop(this);\n\n _x.focus();\n }\n });\n\n if ($(\"#state\").length != 0) {\n var tx = '';\n\n var _iterator = _createForOfIteratorHelper(data().states),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var s = _step.value;\n tx += \"\");\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n $(\"#state\").append(tx);\n $(\"#state\").val($(\"#state\").data('val'));\n $(\"#state\").change(function () {\n var v = $(this).val();\n var tx = '';\n\n var _iterator2 = _createForOfIteratorHelper(data().cities),\n _step2;\n\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var city = _step2.value;\n\n if (city.state_id == v) {\n tx += \"\");\n }\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n\n $(\"#city\").html(tx);\n });\n $(\"#state\").change();\n $(\"#city\").val($(\"#city\").data('val'));\n }\n\n if ($(\"#state_\").length != 0) {\n var tx = '';\n\n var _iterator3 = _createForOfIteratorHelper(data().states),\n _step3;\n\n try {\n for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {\n var _s = _step3.value;\n tx += \"\");\n }\n } catch (err) {\n _iterator3.e(err);\n } finally {\n _iterator3.f();\n }\n\n $(\"#state_\").append(tx);\n $(\"#state_\").val($(\"#state_\").data('val'));\n $(\"#state_\").change(function () {\n var v = $(this).val();\n var tx = '';\n\n var _iterator4 = _createForOfIteratorHelper(data().cities),\n _step4;\n\n try {\n for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {\n var city = _step4.value;\n\n if (city.state_id == v) {\n tx += \"\");\n }\n }\n } catch (err) {\n _iterator4.e(err);\n } finally {\n _iterator4.f();\n }\n\n $(\"#city_\").html(tx);\n });\n $(\"#state_\").change();\n $(\"#city_\").val($(\"#city_\").data('val'));\n }\n\n $(\"#sms-btn\").bind('click', function () {\n if ($(\"#mobile\").val().length !== 11) {\n window.alertify.error(window.translate.errMobile);\n return;\n }\n\n $(\"#sms-btn\").attr('disabled', true);\n\n if (!isSendSms) {\n axios.post($(this).data('send'), {\n mobile: $(\"#mobile\").val()\n }).then(function (e) {\n if (e.data.OK == true) {\n window.alertify.success(e.data.msg);\n $(\"#sms-code\").slideDown(500);\n $(\"#sms-first\").focus();\n isSendSms = true;\n }\n\n $(\"#sms-btn\").removeAttr('disabled');\n })[\"catch\"](function () {\n window.alertify.error('Server Error');\n $(\"#sms-btn\").removeAttr('disabled');\n });\n } else {\n var pass = '';\n $(\".sms-pass\").each(function () {\n pass += $(this).val();\n });\n var login = $(this).data('customer');\n axios.post($(this).data('check'), {\n mobile: $(\"#mobile\").val(),\n pass: pass\n }).then(function (e) {\n $(\"#sms-btn\").removeAttr('disabled');\n\n if (e.data.OK == true) {\n window.alertify.success(e.data.msg);\n setTimeout(function () {\n window.location.href = login;\n }, 2000);\n } else {\n window.alertify.error(e.data.err);\n }\n })[\"catch\"](function () {\n $(\"#sms-btn\").removeAttr('disabled');\n window.alertify.error('Server Error');\n });\n }\n });\n $(\".count-dec\").bind('click', function () {\n var inp = $(this).parent().find('input');\n\n if (parseInt($(inp).val()) - 1 < 1) {\n $(inp).val(1);\n } else {\n $(inp).val(parseInt($(inp).val()) - 1);\n }\n\n $(inp).change();\n });\n $(\".count-inc\").bind('click', function () {\n var inp = $(this).parent().find('input');\n\n if (parseInt($(inp).val()) + 1 > $(inp).attr('max')) {\n $(inp).val($(inp).attr('max'));\n } else {\n $(inp).val(parseInt($(inp).val()) + 1);\n }\n\n $(inp).change();\n });\n $(\".quantity\").bind('click', function () {\n $(this).closest('td').find('.quantity').removeClass('active');\n $(this).closest('td').find('.quantity input').removeAttr('checked');\n $(this).addClass('active');\n $(this).find('input')[0].checked = true;\n $(this).closest('tr').find('.price-td').attr('data-price', $(this).data('price'));\n $(this).closest('tr').find('.price').text(commafy($(this).data('price')));\n $(this).closest('tr').find('.product-count input').attr('max', $(this).data('count'));\n\n if ($(this).data('count') == 0) {\n $(this).closest('tr').find('.product-count input').attr('max', 0);\n }\n\n updateCard();\n });\n $('.product-count input').bind('change', function () {\n updateCard();\n });\n\n function updateCard() {\n var totalPrice = 0;\n\n var _iterator5 = _createForOfIteratorHelper(document.querySelectorAll('.price-td')),\n _step5;\n\n try {\n for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {\n var td = _step5.value;\n var price = parseInt($(td).attr('data-price'));\n var count = parseInt($(td).closest('tr').find('.product-count input').val());\n $(td).closest('tr').find('.product-count input').attr('max', $(td).closest('tr').find('.active').data('count')); // maybe need comment\n\n if ($(td).closest('tr').find('.product-count input').attr('max') == '0') {\n $(td).closest('tr').find('.product-count input').attr('max', 1);\n }\n\n totalPrice += price * count;\n } // check price\n\n } catch (err) {\n _iterator5.e(err);\n } finally {\n _iterator5.f();\n }\n\n try {\n var discount = JSON.parse($(\"#discount\").attr('data-discount'));\n\n if (!isNaN(parseInt(discount.amount))) {\n if (discount.type === 'price') {\n totalPrice -= parseInt(discount.amount);\n } else {\n totalPrice -= (100 - parseInt(discount.amount)) * totalPrice / 100;\n }\n }\n } catch (e) {// console.log(e.message);\n }\n\n var lastprice = totalPrice;\n\n if ($(\".transport:checked\").data('price') !== undefined) {\n lastprice += parseInt($(\".transport:checked\").data('price'));\n } // transport\n\n\n $('#total-card').text(commafy(totalPrice));\n $('#last-price').text(commafy(lastprice));\n }\n\n $(\".reserve\").change(function () {\n if ($(\".reserve:checked\").length > 0) {\n $(\".transport\").removeAttr('checked');\n }\n\n $(\"#resv\").hide();\n $(\"#flexSwitchCheckDefault\").removeAttr('checked');\n updateCard();\n });\n $(\".transport\").change(function () {\n if ($(\".transport:checked\").length > 0) {\n $(\".reserve\").removeAttr('checked');\n }\n\n $(\"#resv\").show();\n updateCard();\n }); // discount\n\n $(\"#discount\").bind('click', function () {\n axios.post($(this).data('url'), {\n code: $(\"#discount-code\").val()\n }).then(function (e) {\n $(\"#discount\").attr('data-discount', JSON.stringify(e.data));\n window.alertify.success(window.translate.discountCodeAccept);\n updateCard();\n })[\"catch\"](function () {\n $(\"#discount\").attr('data-discount', '{}');\n window.alertify.error(window.translate.discountCodeError);\n updateCard();\n });\n });\n $(\"#profile-tab li\").bind('click', function () {\n $(\"#profile-tab li\").removeClass('active');\n $(this).addClass('active');\n $(\".profile-tab.active\").slideUp(300, function () {\n $(this).removeClass('active');\n });\n $($(this).data('id')).slideDown(300, function () {\n $(this).addClass('active');\n });\n });\n updateCard();\n setTimeout(function () {\n if ($(\"#catId\").length > 0) {\n var url = $(\"#catId\").data('url');\n $.get(url, function (e) {\n // console.log(app);\n app.jdata = e[1];\n });\n }\n }, 500);\n $(\".next-step\").bind('click', function () {\n step++;\n $(\".step\" + step).click();\n });\n $(\".progress-step .step\").click(function () {\n $(\".progress-step .step\").removeClass('done');\n $($(this).data('done')).addClass('done');\n $(\"#card-steps .active-step\").slideUp(300).removeClass('active-step');\n $('#' + $(this).data('id')).slideDown(500).addClass('active-step');\n step = parseInt($(this).data('id').substr(4, 1));\n\n if ($(this).data('id') == 'step3') {\n $(\".last-step\").slideDown(300);\n $(\".next-step\").slideUp(300);\n } else {\n $(\".last-step\").slideUp(300);\n $(\".next-step\").slideDown(300);\n }\n });\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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WUFBRCxDQUFELENBQWdCaUMsU0FBaEIsQ0FBMEIsR0FBMUI7TUFDQWpDLENBQUMsQ0FBQyxZQUFELENBQUQsQ0FBZ0JzRSxPQUFoQixDQUF3QixHQUF4QjtJQUNILENBSEQsTUFHTztNQUNIdEUsQ0FBQyxDQUFDLFlBQUQsQ0FBRCxDQUFnQnNFLE9BQWhCLENBQXdCLEdBQXhCO01BQ0F0RSxDQUFDLENBQUMsWUFBRCxDQUFELENBQWdCaUMsU0FBaEIsQ0FBMEIsR0FBMUI7SUFDSDtFQUNKLENBYkQ7QUFjSCxDQTVQSyxDQUFOIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2pzL2N1c3RvbWVyLmpzPzA2YmIiXSwic291cmNlc0NvbnRlbnQiOlsidmFyIGRhdGEgPSByZXF1aXJlKCcuL3BsdWdpbnMvZGF0YScpO1xudmFyIGlzU2VuZFNtcyA9IGZhbHNlO1xuXG5mdW5jdGlvbiBub2NvbW1hKG51bSkge1xuICAgIGEgPSBudW0udG9TdHJpbmcoKS5yZXBsYWNlKC9cXCwvZywgJycpOyAvLyAxMTI1LCBidXQgYSBzdHJpbmcsIHNvIGNvbnZlcnQgaXQgdG8gbnVtYmVyXG4gICAgcmV0dXJuIGEudG9TdHJpbmcoKTtcbn1cblxuZnVuY3Rpb24gY29tbWFmeShudW0pIHtcbiAgICBudW0gPSBub2NvbW1hKG51bSk7XG4gICAgdmFyIHN0ciA9IG51bS50b1N0cmluZygpLnNwbGl0KCcuJyk7XG4gICAgaWYgKHN0clswXS5sZW5ndGggPj0gNCkge1xuXG4gICAgICAgIHN0clswXSA9IHN0clswXS5yZXBsYWNlKC8oXFxkKSg/PShcXGR7M30pKyQpL2csICckMSwnKTtcbiAgICB9XG4gICAgaWYgKHN0clsxXSAmJiBzdHJbMV0ubGVuZ3RoID49IDQpIHtcblxuICAgICAgICBzdHJbMV0gPSBzdHJbMV0ucmVwbGFjZSgvKFxcZHszfSkvZywgJyQxLCcpO1xuICAgIH1cbiAgICByZXR1cm4gc3RyLmpvaW4oJy4nKTtcbn1cblxuZnVuY3Rpb24gZmluZE5leHRUYWJTdG9wKGVsKSB7XG4gICAgdmFyIHVuaXZlcnNlID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnaW5wdXQsIGJ1dHRvbiwgc2VsZWN0LCB0ZXh0YXJlYSwgYVtocmVmXScpO1xuICAgIHZhciBsaXN0ID0gQXJyYXkucHJvdG90eXBlLmZpbHRlci5jYWxsKHVuaXZlcnNlLCBmdW5jdGlvbiAoaXRlbSkge1xuICAgICAgICByZXR1cm4gaXRlbS50YWJJbmRleCA+PSBcIjBcIlxuICAgIH0pO1xuICAgIHZhciBpbmRleCA9IGxpc3QuaW5kZXhPZihlbCk7XG4gICAgcmV0dXJuIGxpc3RbaW5kZXggKyAxXSB8fCBsaXN0WzBdO1xufVxuXG5mdW5jdGlvbiBmaW5kUGVydlRhYlN0b3AoZWwpIHtcbiAgICB2YXIgdW5pdmVyc2UgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdpbnB1dCwgYnV0dG9uLCBzZWxlY3QsIHRleHRhcmVhLCBhW2hyZWZdJyk7XG4gICAgdmFyIGxpc3QgPSBBcnJheS5wcm90b3R5cGUuZmlsdGVyLmNhbGwodW5pdmVyc2UsIGZ1bmN0aW9uIChpdGVtKSB7XG4gICAgICAgIHJldHVybiBpdGVtLnRhYkluZGV4ID49IFwiMFwiXG4gICAgfSk7XG4gICAgdmFyIGluZGV4ID0gbGlzdC5pbmRleE9mKGVsKTtcbiAgICByZXR1cm4gbGlzdFtpbmRleCAtIDFdIHx8IGxpc3RbMF07XG59XG5cbmpRdWVyeShmdW5jdGlvbiAoJCkge1xuXG4gICAgJCgnLnNtcy1wYXNzJykuYmluZCgnZm9jdXMnLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHRoaXMuc2V0U2VsZWN0aW9uUmFuZ2UoMCwgdGhpcy52YWx1ZS5sZW5ndGgpO1xuICAgIH0pO1xuICAgICQoJy5zbXMtcGFzcycpLmJpbmQoJ2tleXVwJywgZnVuY3Rpb24gKCkge1xuICAgICAgICBpZiAoJCh0aGlzKS52YWwoKS5sZW5ndGggPT0gMSkge1xuICAgICAgICAgICAgbGV0IHggPSBmaW5kTmV4dFRhYlN0b3AodGhpcyk7XG4gICAgICAgICAgICB4LmZvY3VzKCk7XG4gICAgICAgIH0gZWxzZSBpZiAoJCh0aGlzKS52YWwoKS5sZW5ndGggPT0gMCkge1xuICAgICAgICAgICAgbGV0IHggPSBmaW5kUGVydlRhYlN0b3AodGhpcyk7XG4gICAgICAgICAgICB4LmZvY3VzKCk7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICBpZiAoJChcIiNzdGF0ZVwiKS5sZW5ndGggIT0gMCkge1xuXG4gICAgICAgIHZhciB0eCA9ICc8b3B0aW9uIHZhbHVlPVwiXCI+PC9vcHRpb24+JztcbiAgICAgICAgZm9yIChjb25zdCBzIG9mIGRhdGEoKS5zdGF0ZXMpIHtcbiAgICAgICAgICAgIHR4ICs9IGA8b3B0aW9uIHZhbHVlPVwiJHtzLmlkfVwiPiR7cy5uYW1lfTwvb3B0aW9uPmA7XG4gICAgICAgIH1cbiAgICAgICAgJChcIiNzdGF0ZVwiKS5hcHBlbmQodHgpO1xuICAgICAgICAkKFwiI3N0YXRlXCIpLnZhbCgkKFwiI3N0YXRlXCIpLmRhdGEoJ3ZhbCcpKTtcblxuICAgICAgICAkKFwiI3N0YXRlXCIpLmNoYW5nZShmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICB2YXIgdiA9ICQodGhpcykudmFsKCk7XG4gICAgICAgICAgICB2YXIgdHggPSAnJztcbiAgICAgICAgICAgIGZvciAoY29uc3QgY2l0eSBvZiBkYXRhKCkuY2l0aWVzKSB7XG4gICAgICAgICAgICAgICAgaWYgKGNpdHkuc3RhdGVfaWQgPT0gdikge1xuICAgICAgICAgICAgICAgICAgICB0eCArPSBgPG9wdGlvbiB2YWx1ZT1cIiR7Y2l0eS5pZH1cIj4ke2NpdHkubmFtZX08L29wdGlvbj5gO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICQoXCIjY2l0eVwiKS5odG1sKHR4KTtcbiAgICAgICAgfSk7XG4gICAgICAgICQoXCIjc3RhdGVcIikuY2hhbmdlKCk7XG4gICAgICAgICQoXCIjY2l0eVwiKS52YWwoJChcIiNjaXR5XCIpLmRhdGEoJ3ZhbCcpKTtcblxuICAgIH1cblxuICAgIGlmICgkKFwiI3N0YXRlX1wiKS5sZW5ndGggIT0gMCkge1xuXG4gICAgICAgIHZhciB0eCA9ICc8b3B0aW9uIHZhbHVlPVwiXCI+PC9vcHRpb24+JztcbiAgICAgICAgZm9yIChjb25zdCBzIG9mIGRhdGEoKS5zdGF0ZXMpIHtcbiAgICAgICAgICAgIHR4ICs9IGA8b3B0aW9uIHZhbHVlPVwiJHtzLmlkfVwiPiR7cy5uYW1lfTwvb3B0aW9uPmA7XG4gICAgICAgIH1cbiAgICAgICAgJChcIiNzdGF0ZV9cIikuYXBwZW5kKHR4KTtcbiAgICAgICAgJChcIiNzdGF0ZV9cIikudmFsKCQoXCIjc3RhdGVfXCIpLmRhdGEoJ3ZhbCcpKTtcblxuICAgICAgICAkKFwiI3N0YXRlX1wiKS5jaGFuZ2UoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgdmFyIHYgPSAkKHRoaXMpLnZhbCgpO1xuICAgICAgICAgICAgdmFyIHR4ID0gJyc7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGNpdHkgb2YgZGF0YSgpLmNpdGllcykge1xuICAgICAgICAgICAgICAgIGlmIChjaXR5LnN0YXRlX2lkID09IHYpIHtcbiAgICAgICAgICAgICAgICAgICAgdHggKz0gYDxvcHRpb24gdmFsdWU9XCIke2NpdHkuaWR9XCI+JHtjaXR5Lm5hbWV9PC9vcHRpb24+YDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAkKFwiI2NpdHlfXCIpLmh0bWwodHgpO1xuICAgICAgICB9KTtcbiAgICAgICAgJChcIiNzdGF0ZV9cIikuY2hhbmdlKCk7XG4gICAgICAgICQoXCIjY2l0eV9cIikudmFsKCQoXCIjY2l0eV9cIikuZGF0YSgndmFsJykpO1xuXG4gICAgfVxuXG5cbiAgICAkKFwiI3Ntcy1idG5cIikuYmluZCgnY2xpY2snLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGlmICgkKFwiI21vYmlsZVwiKS52YWwoKS5sZW5ndGggIT09IDExKSB7XG4gICAgICAgICAgICB3aW5kb3cuYWxlcnRpZnkuZXJyb3Iod2luZG93LnRyYW5zbGF0ZS5lcnJNb2JpbGUpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgICQoXCIjc21zLWJ0blwiKS5hdHRyKCdkaXNhYmxlZCcsIHRydWUpO1xuICAgICAgICBpZiAoIWlzU2VuZFNtcykge1xuICAgICAgICAgICAgYXhpb3MucG9zdCgkKHRoaXMpLmRhdGEoJ3NlbmQnKSwge21vYmlsZTogJChcIiNtb2JpbGVcIikudmFsKCl9KS50aGVuKGZ1bmN0aW9uIChlKSB7XG4gICAgICAgICAgICAgICAgaWYgKGUuZGF0YS5PSyA9PSB0cnVlKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpbmRvdy5hbGVydGlmeS5zdWNjZXNzKGUuZGF0YS5tc2cpO1xuICAgICAgICAgICAgICAgICAgICAkKFwiI3Ntcy1jb2RlXCIpLnNsaWRlRG93big1MDApO1xuICAgICAgICAgICAgICAgICAgICAkKFwiI3Ntcy1maXJzdFwiKS5mb2N1cygpO1xuICAgICAgICAgICAgICAgICAgICBpc1NlbmRTbXMgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAkKFwiI3Ntcy1idG5cIikucmVtb3ZlQXR0cignZGlzYWJsZWQnKTtcbiAgICAgICAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICB3aW5kb3cuYWxlcnRpZnkuZXJyb3IoJ1NlcnZlciBFcnJvcicpO1xuICAgICAgICAgICAgICAgICQoXCIjc21zLWJ0blwiKS5yZW1vdmVBdHRyKCdkaXNhYmxlZCcpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBsZXQgcGFzcyA9ICcnO1xuICAgICAgICAgICAgJChcIi5zbXMtcGFzc1wiKS5lYWNoKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICBwYXNzICs9ICQodGhpcykudmFsKCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGxldCBsb2dpbiA9ICQodGhpcykuZGF0YSgnY3VzdG9tZXInKTtcbiAgICAgICAgICAgIGF4aW9zLnBvc3QoJCh0aGlzKS5kYXRhKCdjaGVjaycpLCB7bW9iaWxlOiAkKFwiI21vYmlsZVwiKS52YWwoKSwgcGFzczogcGFzc30pLnRoZW4oZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgICAgICAgICAkKFwiI3Ntcy1idG5cIikucmVtb3ZlQXR0cignZGlzYWJsZWQnKTtcbiAgICAgICAgICAgICAgICBpZiAoZS5kYXRhLk9LID09IHRydWUpIHtcbiAgICAgICAgICAgICAgICAgICAgd2luZG93LmFsZXJ0aWZ5LnN1Y2Nlc3MoZS5kYXRhLm1zZyk7XG4gICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSBsb2dpbjtcbiAgICAgICAgICAgICAgICAgICAgfSwgMjAwMCk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgd2luZG93LmFsZXJ0aWZ5LmVycm9yKGUuZGF0YS5lcnIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAkKFwiI3Ntcy1idG5cIikucmVtb3ZlQXR0cignZGlzYWJsZWQnKTtcbiAgICAgICAgICAgICAgICB3aW5kb3cuYWxlcnRpZnkuZXJyb3IoJ1NlcnZlciBFcnJvcicpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9KTtcblxuICAgICQoXCIuY291bnQtZGVjXCIpLmJpbmQoJ2NsaWNrJywgZnVuY3Rpb24gKCkge1xuICAgICAgICBsZXQgaW5wID0gJCh0aGlzKS5wYXJlbnQoKS5maW5kKCdpbnB1dCcpO1xuICAgICAgICBpZiAocGFyc2VJbnQoJChpbnApLnZhbCgpKSAtIDEgPCAxKSB7XG4gICAgICAgICAgICAkKGlucCkudmFsKDEpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgJChpbnApLnZhbChwYXJzZUludCgkKGlucCkudmFsKCkpIC0gMSk7XG4gICAgICAgIH1cbiAgICAgICAgJChpbnApLmNoYW5nZSgpO1xuICAgIH0pO1xuICAgICQoXCIuY291bnQtaW5jXCIpLmJpbmQoJ2NsaWNrJywgZnVuY3Rpb24gKCkge1xuICAgICAgICBsZXQgaW5wID0gJCh0aGlzKS5wYXJlbnQoKS5maW5kKCdpbnB1dCcpO1xuICAgICAgICBpZiAocGFyc2VJbnQoJChpbnApLnZhbCgpKSArIDEgPiAkKGlucCkuYXR0cignbWF4JykpIHtcbiAgICAgICAgICAgICQoaW5wKS52YWwoJChpbnApLmF0dHIoJ21heCcpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICQoaW5wKS52YWwocGFyc2VJbnQoJChpbnApLnZhbCgpKSArIDEpO1xuICAgICAgICB9XG4gICAgICAgICQoaW5wKS5jaGFuZ2UoKTtcbiAgICB9KTtcblxuICAgICQoXCIucXVhbnRpdHlcIikuYmluZCgnY2xpY2snLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICQodGhpcykuY2xvc2VzdCgndGQnKS5maW5kKCcucXVhbnRpdHknKS5yZW1vdmVDbGFzcygnYWN0aXZlJyk7XG4gICAgICAgICQodGhpcykuY2xvc2VzdCgndGQnKS5maW5kKCcucXVhbnRpdHkgaW5wdXQnKS5yZW1vdmVBdHRyKCdjaGVja2VkJyk7XG4gICAgICAgICQodGhpcykuYWRkQ2xhc3MoJ2FjdGl2ZScpO1xuICAgICAgICAkKHRoaXMpLmZpbmQoJ2lucHV0JylbMF0uY2hlY2tlZCA9IHRydWU7XG4gICAgICAgICQodGhpcykuY2xvc2VzdCgndHInKS5maW5kKCcucHJpY2UtdGQnKS5hdHRyKCdkYXRhLXByaWNlJywgJCh0aGlzKS5kYXRhKCdwcmljZScpKTtcbiAgICAgICAgJCh0aGlzKS5jbG9zZXN0KCd0cicpLmZpbmQoJy5wcmljZScpLnRleHQoY29tbWFmeSgkKHRoaXMpLmRhdGEoJ3ByaWNlJykpKTtcbiAgICAgICAgJCh0aGlzKS5jbG9zZXN0KCd0cicpLmZpbmQoJy5wcm9kdWN0LWNvdW50IGlucHV0JykuYXR0cignbWF4JywgJCh0aGlzKS5kYXRhKCdjb3VudCcpKTtcbiAgICAgICAgaWYgKCQodGhpcykuZGF0YSgnY291bnQnKSA9PSAwKSB7XG4gICAgICAgICAgICAkKHRoaXMpLmNsb3Nlc3QoJ3RyJykuZmluZCgnLnByb2R1Y3QtY291bnQgaW5wdXQnKS5hdHRyKCdtYXgnLCAwKTtcbiAgICAgICAgfVxuICAgICAgICB1cGRhdGVDYXJkKCk7XG4gICAgfSk7XG5cbiAgICAkKCcucHJvZHVjdC1jb3VudCBpbnB1dCcpLmJpbmQoJ2NoYW5nZScsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdXBkYXRlQ2FyZCgpXG4gICAgfSk7XG5cbiAgICBmdW5jdGlvbiB1cGRhdGVDYXJkKCkge1xuICAgICAgICBsZXQgdG90YWxQcmljZSA9IDA7XG4gICAgICAgIGZvciAoY29uc3QgdGQgb2YgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLnByaWNlLXRkJykpIHtcbiAgICAgICAgICAgIGxldCBwcmljZSA9IHBhcnNlSW50KCQodGQpLmF0dHIoJ2RhdGEtcHJpY2UnKSk7XG4gICAgICAgICAgICBsZXQgY291bnQgPSBwYXJzZUludCgkKHRkKS5jbG9zZXN0KCd0cicpLmZpbmQoJy5wcm9kdWN0LWNvdW50IGlucHV0JykudmFsKCkpO1xuICAgICAgICAgICAgJCh0ZCkuY2xvc2VzdCgndHInKS5maW5kKCcucHJvZHVjdC1jb3VudCBpbnB1dCcpLmF0dHIoJ21heCcsICQodGQpLmNsb3Nlc3QoJ3RyJykuZmluZCgnLmFjdGl2ZScpLmRhdGEoJ2NvdW50JykpO1xuXG4gICAgICAgICAgICAvLyBtYXliZSBuZWVkIGNvbW1lbnRcbiAgICAgICAgICAgIGlmICgkKHRkKS5jbG9zZXN0KCd0cicpLmZpbmQoJy5wcm9kdWN0LWNvdW50IGlucHV0JykuYXR0cignbWF4JykgPT0gJzAnKXtcbiAgICAgICAgICAgICAgICAkKHRkKS5jbG9zZXN0KCd0cicpLmZpbmQoJy5wcm9kdWN0LWNvdW50IGlucHV0JykuYXR0cignbWF4JywxKVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdG90YWxQcmljZSArPSBwcmljZSAqIGNvdW50O1xuICAgICAgICB9XG5cblxuICAgICAgICAvLyBjaGVjayBwcmljZVxuICAgICAgICB0cnkge1xuICAgICAgICAgICAgbGV0IGRpc2NvdW50ID0gSlNPTi5wYXJzZSgkKFwiI2Rpc2NvdW50XCIpLmF0dHIoJ2RhdGEtZGlzY291bnQnKSk7XG4gICAgICAgICAgICBpZiAoIWlzTmFOKHBhcnNlSW50KGRpc2NvdW50LmFtb3VudCkpKSB7XG4gICAgICAgICAgICAgICAgaWYgKGRpc2NvdW50LnR5cGUgPT09ICdwcmljZScpIHtcbiAgICAgICAgICAgICAgICAgICAgdG90YWxQcmljZSAtPSBwYXJzZUludChkaXNjb3VudC5hbW91bnQpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRvdGFsUHJpY2UgLT0gKCgxMDAgLSBwYXJzZUludChkaXNjb3VudC5hbW91bnQpKSAqIHRvdGFsUHJpY2UpIC8gMTAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgLy8gY29uc29sZS5sb2coZS5tZXNzYWdlKTtcbiAgICAgICAgfVxuICAgICAgICBsZXQgbGFzdHByaWNlID0gdG90YWxQcmljZTtcbiAgICAgICAgaWYgKCQoXCIudHJhbnNwb3J0OmNoZWNrZWRcIikuZGF0YSgncHJpY2UnKSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBsYXN0cHJpY2UgKz0gcGFyc2VJbnQoJChcIi50cmFuc3BvcnQ6Y2hlY2tlZFwiKS5kYXRhKCdwcmljZScpKTtcbiAgICAgICAgfVxuICAgICAgICAvLyB0cmFuc3BvcnRcbiAgICAgICAgJCgnI3RvdGFsLWNhcmQnKS50ZXh0KGNvbW1hZnkodG90YWxQcmljZSkpO1xuICAgICAgICAkKCcjbGFzdC1wcmljZScpLnRleHQoY29tbWFmeShsYXN0cHJpY2UpKTtcblxuICAgIH1cblxuICAgICQoXCIucmVzZXJ2ZVwiKS5jaGFuZ2UoZnVuY3Rpb24gKCkge1xuICAgICAgICBpZiAoJChcIi5yZXNlcnZlOmNoZWNrZWRcIikubGVuZ3RoID4gMCl7XG4gICAgICAgICAgICAkKFwiLnRyYW5zcG9ydFwiKS5yZW1vdmVBdHRyKCdjaGVja2VkJyk7XG4gICAgICAgIH1cbiAgICAgICAgJChcIiNyZXN2XCIpLmhpZGUoKTtcbiAgICAgICAgJChcIiNmbGV4U3dpdGNoQ2hlY2tEZWZhdWx0XCIpLnJlbW92ZUF0dHIoJ2NoZWNrZWQnKTtcbiAgICAgICAgdXBkYXRlQ2FyZCgpO1xuICAgIH0pO1xuICAgICQoXCIudHJhbnNwb3J0XCIpLmNoYW5nZShmdW5jdGlvbiAoKSB7XG4gICAgICAgIGlmICgkKFwiLnRyYW5zcG9ydDpjaGVja2VkXCIpLmxlbmd0aCA+IDApe1xuICAgICAgICAgICAgJChcIi5yZXNlcnZlXCIpLnJlbW92ZUF0dHIoJ2NoZWNrZWQnKTtcbiAgICAgICAgfVxuICAgICAgICAkKFwiI3Jlc3ZcIikuc2hvdygpO1xuICAgICAgICB1cGRhdGVDYXJkKCk7XG4gICAgfSk7XG4gICAgLy8gZGlzY291bnRcbiAgICAkKFwiI2Rpc2NvdW50XCIpLmJpbmQoJ2NsaWNrJywgZnVuY3Rpb24gKCkge1xuICAgICAgICBheGlvcy5wb3N0KCQodGhpcykuZGF0YSgndXJsJyksIHtjb2RlOiAkKFwiI2Rpc2NvdW50LWNvZGVcIikudmFsKCl9KS50aGVuKGZ1bmN0aW9uIChlKSB7XG4gICAgICAgICAgICAkKFwiI2Rpc2NvdW50XCIpLmF0dHIoJ2RhdGEtZGlzY291bnQnLCBKU09OLnN0cmluZ2lmeShlLmRhdGEpKTtcbiAgICAgICAgICAgIHdpbmRvdy5hbGVydGlmeS5zdWNjZXNzKHdpbmRvdy50cmFuc2xhdGUuZGlzY291bnRDb2RlQWNjZXB0KTtcbiAgICAgICAgICAgIHVwZGF0ZUNhcmQoKTtcbiAgICAgICAgfSkuY2F0Y2goZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgJChcIiNkaXNjb3VudFwiKS5hdHRyKCdkYXRhLWRpc2NvdW50JywgJ3t9Jyk7XG4gICAgICAgICAgICB3aW5kb3cuYWxlcnRpZnkuZXJyb3Iod2luZG93LnRyYW5zbGF0ZS5kaXNjb3VudENvZGVFcnJvcik7XG4gICAgICAgICAgICB1cGRhdGVDYXJkKCk7XG4gICAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgJChcIiNwcm9maWxlLXRhYiBsaVwiKS5iaW5kKCdjbGljaycsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgJChcIiNwcm9maWxlLXRhYiBsaVwiKS5yZW1vdmVDbGFzcygnYWN0aXZlJyk7XG4gICAgICAgICQodGhpcykuYWRkQ2xhc3MoJ2FjdGl2ZScpO1xuICAgICAgICAkKFwiLnByb2ZpbGUtdGFiLmFjdGl2ZVwiKS5zbGlkZVVwKDMwMCwgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgJCh0aGlzKS5yZW1vdmVDbGFzcygnYWN0aXZlJyk7XG4gICAgICAgIH0pO1xuICAgICAgICAkKCQodGhpcykuZGF0YSgnaWQnKSkuc2xpZGVEb3duKDMwMCwgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgJCh0aGlzKS5hZGRDbGFzcygnYWN0aXZlJyk7XG4gICAgICAgIH0pXG4gICAgfSk7XG5cbiAgICB1cGRhdGVDYXJkKCk7XG5cbiAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgaWYgKCQoXCIjY2F0SWRcIikubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgbGV0IHVybCA9ICQoXCIjY2F0SWRcIikuZGF0YSgndXJsJyk7XG4gICAgICAgICAgICAkLmdldCh1cmwsIGZ1bmN0aW9uIChlKSB7XG4gICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coYXBwKTtcbiAgICAgICAgICAgICAgICBhcHAuamRhdGEgPSBlWzFdO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9LCA1MDApO1xuXG5cblxuICAgICQoXCIubmV4dC1zdGVwXCIpLmJpbmQoJ2NsaWNrJywgZnVuY3Rpb24gKCkge1xuICAgICAgICBzdGVwKys7XG4gICAgICAgICQoXCIuc3RlcFwiICsgc3RlcCkuY2xpY2soKTtcbiAgICB9KTtcblxuICAgICQoXCIucHJvZ3Jlc3Mtc3RlcCAuc3RlcFwiKS5jbGljayhmdW5jdGlvbiAoKSB7XG4gICAgICAgICQoXCIucHJvZ3Jlc3Mtc3RlcCAuc3RlcFwiKS5yZW1vdmVDbGFzcygnZG9uZScpO1xuICAgICAgICAkKCQodGhpcykuZGF0YSgnZG9uZScpKS5hZGRDbGFzcygnZG9uZScpO1xuICAgICAgICAkKFwiI2NhcmQtc3RlcHMgLmFjdGl2ZS1zdGVwXCIpLnNsaWRlVXAoMzAwKS5yZW1vdmVDbGFzcygnYWN0aXZlLXN0ZXAnKTtcbiAgICAgICAgJCgnIycgKyAkKHRoaXMpLmRhdGEoJ2lkJykpLnNsaWRlRG93big1MDApLmFkZENsYXNzKCdhY3RpdmUtc3RlcCcpO1xuICAgICAgICBzdGVwID0gcGFyc2VJbnQoJCh0aGlzKS5kYXRhKCdpZCcpLnN1YnN0cig0LCAxKSk7XG4gICAgICAgIGlmICgkKHRoaXMpLmRhdGEoJ2lkJykgPT0gJ3N0ZXAzJykge1xuICAgICAgICAgICAgJChcIi5sYXN0LXN0ZXBcIikuc2xpZGVEb3duKDMwMCk7XG4gICAgICAgICAgICAkKFwiLm5leHQtc3RlcFwiKS5zbGlkZVVwKDMwMCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAkKFwiLmxhc3Qtc3RlcFwiKS5zbGlkZVVwKDMwMCk7XG4gICAgICAgICAgICAkKFwiLm5leHQtc3RlcFwiKS5zbGlkZURvd24oMzAwKTtcbiAgICAgICAgfVxuICAgIH0pO1xufSk7XG5cblxuIl0sIm5hbWVzIjpbImRhdGEiLCJyZXF1aXJlIiwiaXNTZW5kU21zIiwibm9jb21tYSIsIm51bSIsImEiLCJ0b1N0cmluZyIsInJlcGxhY2UiLCJjb21tYWZ5Iiwic3RyIiwic3BsaXQiLCJsZW5ndGgiLCJqb2luIiwiZmluZE5leHRUYWJTdG9wIiwiZWwiLCJ1bml2ZXJzZSIsImRvY3VtZW50IiwicXVlcnlTZWxlY3RvckFsbCIsImxpc3QiLCJBcnJheSIsInByb3RvdHlwZSIsImZpbHRlciIsImNhbGwiLCJpdGVtIiwidGFiSW5kZXgiLCJpbmRleCIsImluZGV4T2YiLCJmaW5kUGVydlRhYlN0b3AiLCJqUXVlcnkiLCIkIiwiYmluZCIsInNldFNlbGVjdGlvblJhbmdlIiwidmFsdWUiLCJ2YWwiLCJ4IiwiZm9jdXMiLCJ0eCIsInN0YXRlcyIsInMiLCJpZCIsIm5hbWUiLCJhcHBlbmQiLCJjaGFuZ2UiLCJ2IiwiY2l0aWVzIiwiY2l0eSIsInN0YXRlX2lkIiwiaHRtbCIsIndpbmRvdyIsImFsZXJ0aWZ5IiwiZXJyb3IiLCJ0cmFuc2xhdGUiLCJlcnJNb2JpbGUiLCJhdHRyIiwiYXhpb3MiLCJwb3N0IiwibW9iaWxlIiwidGhlbiIsImUiLCJPSyIsInN1Y2Nlc3MiLCJtc2ciLCJzbGlkZURvd24iLCJyZW1vdmVBdHRyIiwicGFzcyIsImVhY2giLCJsb2dpbiIsInNldFRpbWVvdXQiLCJsb2NhdGlvbiIsImhyZWYiLCJlcnIiLCJpbnAiLCJwYXJlbnQiLCJmaW5kIiwicGFyc2VJbnQiLCJjbG9zZXN0IiwicmVtb3ZlQ2xhc3MiLCJhZGRDbGFzcyIsImNoZWNrZWQiLCJ0ZXh0IiwidXBkYXRlQ2FyZCIsInRvdGFsUHJpY2UiLCJ0ZCIsInByaWNlIiwiY291bnQiLCJkaXNjb3VudCIsIkpTT04iLCJwYXJzZSIsImlzTmFOIiwiYW1vdW50IiwidHlwZSIsImxhc3RwcmljZSIsInVuZGVmaW5lZCIsImhpZGUiLCJzaG93IiwiY29kZSIsInN0cmluZ2lmeSIsImRpc2NvdW50Q29kZUFjY2VwdCIsImRpc2NvdW50Q29kZUVycm9yIiwic2xpZGVVcCIsInVybCIsImdldCIsImFwcCIsImpkYXRhIiwic3RlcCIsImNsaWNrIiwic3Vic3RyIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./resources/js/customer.js\n"); /***/ }), diff --git a/public/js/theme.js b/public/js/theme.js index 6efb64e..0e1d33b 100755 --- a/public/js/theme.js +++ b/public/js/theme.js @@ -407,7 +407,7 @@ eval("// window._ = require('lodash');\n\n/**\n * We'll load jQuery and the Boot \**********************************/ /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => { -eval("function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it[\"return\"] != null) it[\"return\"](); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nvar data = __webpack_require__(/*! ./plugins/data */ \"./resources/js/plugins/data.js\");\n\nvar isSendSms = false;\n\nfunction nocomma(num) {\n a = num.toString().replace(/\\,/g, ''); // 1125, but a string, so convert it to number\n\n return a.toString();\n}\n\nfunction commafy(num) {\n num = nocomma(num);\n var str = num.toString().split('.');\n\n if (str[0].length >= 4) {\n str[0] = str[0].replace(/(\\d)(?=(\\d{3})+$)/g, '$1,');\n }\n\n if (str[1] && str[1].length >= 4) {\n str[1] = str[1].replace(/(\\d{3})/g, '$1,');\n }\n\n return str.join('.');\n}\n\nfunction findNextTabStop(el) {\n var universe = document.querySelectorAll('input, button, select, textarea, a[href]');\n var list = Array.prototype.filter.call(universe, function (item) {\n return item.tabIndex >= \"0\";\n });\n var index = list.indexOf(el);\n return list[index + 1] || list[0];\n}\n\nfunction findPervTabStop(el) {\n var universe = document.querySelectorAll('input, button, select, textarea, a[href]');\n var list = Array.prototype.filter.call(universe, function (item) {\n return item.tabIndex >= \"0\";\n });\n var index = list.indexOf(el);\n return list[index - 1] || list[0];\n}\n\njQuery(function ($) {\n $('.sms-pass').bind('focus', function () {\n this.setSelectionRange(0, this.value.length);\n });\n $('.sms-pass').bind('keyup', function () {\n if ($(this).val().length == 1) {\n var x = findNextTabStop(this);\n x.focus();\n } else if ($(this).val().length == 0) {\n var _x = findPervTabStop(this);\n\n _x.focus();\n }\n });\n\n if ($(\"#state\").length != 0) {\n var tx = '';\n\n var _iterator = _createForOfIteratorHelper(data().states),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var s = _step.value;\n tx += \"\");\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n $(\"#state\").append(tx);\n $(\"#state\").val($(\"#state\").data('val'));\n $(\"#state\").change(function () {\n var v = $(this).val();\n var tx = '';\n\n var _iterator2 = _createForOfIteratorHelper(data().cities),\n _step2;\n\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var city = _step2.value;\n\n if (city.state_id == v) {\n tx += \"\");\n }\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n\n $(\"#city\").html(tx);\n });\n $(\"#state\").change();\n $(\"#city\").val($(\"#city\").data('val'));\n }\n\n if ($(\"#state_\").length != 0) {\n var tx = '';\n\n var _iterator3 = _createForOfIteratorHelper(data().states),\n _step3;\n\n try {\n for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {\n var _s = _step3.value;\n tx += \"\");\n }\n } catch (err) {\n _iterator3.e(err);\n } finally {\n _iterator3.f();\n }\n\n $(\"#state_\").append(tx);\n $(\"#state_\").val($(\"#state_\").data('val'));\n $(\"#state_\").change(function () {\n var v = $(this).val();\n var tx = '';\n\n var _iterator4 = _createForOfIteratorHelper(data().cities),\n _step4;\n\n try {\n for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {\n var city = _step4.value;\n\n if (city.state_id == v) {\n tx += \"\");\n }\n }\n } catch (err) {\n _iterator4.e(err);\n } finally {\n _iterator4.f();\n }\n\n $(\"#city_\").html(tx);\n });\n $(\"#state_\").change();\n $(\"#city_\").val($(\"#city_\").data('val'));\n }\n\n $(\"#sms-btn\").bind('click', function () {\n if ($(\"#mobile\").val().length !== 11) {\n window.alertify.error(window.translate.errMobile);\n return;\n }\n\n $(\"#sms-btn\").attr('disabled', true);\n\n if (!isSendSms) {\n axios.post($(this).data('send'), {\n mobile: $(\"#mobile\").val()\n }).then(function (e) {\n if (e.data.OK == true) {\n window.alertify.success(e.data.msg);\n $(\"#sms-code\").slideDown(500);\n $(\"#sms-first\").focus();\n isSendSms = true;\n }\n\n $(\"#sms-btn\").removeAttr('disabled');\n })[\"catch\"](function () {\n window.alertify.error('Server Error');\n $(\"#sms-btn\").removeAttr('disabled');\n });\n } else {\n var pass = '';\n $(\".sms-pass\").each(function () {\n pass += $(this).val();\n });\n var login = $(this).data('customer');\n axios.post($(this).data('check'), {\n mobile: $(\"#mobile\").val(),\n pass: pass\n }).then(function (e) {\n $(\"#sms-btn\").removeAttr('disabled');\n\n if (e.data.OK == true) {\n window.alertify.success(e.data.msg);\n setTimeout(function () {\n window.location.href = login;\n }, 2000);\n } else {\n window.alertify.error(e.data.err);\n }\n })[\"catch\"](function () {\n $(\"#sms-btn\").removeAttr('disabled');\n window.alertify.error('Server Error');\n });\n }\n });\n $(\".count-dec\").bind('click', function () {\n var inp = $(this).parent().find('input');\n\n if (parseInt($(inp).val()) - 1 < 1) {\n $(inp).val(1);\n } else {\n $(inp).val(parseInt($(inp).val()) - 1);\n }\n\n $(inp).change();\n });\n $(\".count-inc\").bind('click', function () {\n var inp = $(this).parent().find('input');\n\n if (parseInt($(inp).val()) + 1 > $(inp).attr('max')) {\n $(inp).val($(inp).attr('max'));\n } else {\n $(inp).val(parseInt($(inp).val()) + 1);\n }\n\n $(inp).change();\n });\n $(\".quantity\").bind('click', function () {\n $(this).closest('td').find('.quantity').removeClass('active');\n $(this).closest('td').find('.quantity input').removeAttr('checked');\n $(this).addClass('active');\n $(this).find('input')[0].checked = true;\n $(this).closest('tr').find('.price-td').attr('data-price', $(this).data('price'));\n $(this).closest('tr').find('.price').text(commafy($(this).data('price')));\n $(this).closest('tr').find('.product-count input').attr('max', $(this).data('count'));\n\n if ($(this).data('count') == 0) {\n $(this).closest('tr').find('.product-count input').attr('max', 0);\n }\n\n updateCard();\n });\n $('.product-count input').bind('change', function () {\n updateCard();\n });\n\n function updateCard() {\n var totalPrice = 0;\n\n var _iterator5 = _createForOfIteratorHelper(document.querySelectorAll('.price-td')),\n _step5;\n\n try {\n for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {\n var td = _step5.value;\n var price = parseInt($(td).attr('data-price'));\n var count = parseInt($(td).closest('tr').find('.product-count input').val());\n $(td).closest('tr').find('.product-count input').attr('max', $(td).closest('tr').find('.active').data('count')); // maybe need comment\n\n if ($(td).closest('tr').find('.product-count input').attr('max') == '0') {\n $(td).closest('tr').find('.product-count input').attr('max', 1);\n }\n\n totalPrice += price * count;\n } // check price\n\n } catch (err) {\n _iterator5.e(err);\n } finally {\n _iterator5.f();\n }\n\n try {\n var discount = JSON.parse($(\"#discount\").attr('data-discount'));\n\n if (!isNaN(parseInt(discount.amount))) {\n if (discount.type === 'price') {\n totalPrice -= parseInt(discount.amount);\n } else {\n totalPrice -= (100 - parseInt(discount.amount)) * totalPrice / 100;\n }\n }\n } catch (e) {// console.log(e.message);\n }\n\n var lastprice = totalPrice;\n\n if ($(\".transport:checked\").data('price') !== undefined) {\n lastprice += parseInt($(\".transport:checked\").data('price'));\n } // transport\n\n\n $('#total-card').text(commafy(totalPrice));\n $('#last-price').text(commafy(lastprice));\n }\n\n $(\".reserve\").change(function () {\n if ($(\".reserve:checked\").length > 0) {\n $(\".transport\").removeAttr('checked');\n }\n\n $(\"#resv\").hide();\n $(\"#flexSwitchCheckDefault\").removeAttr('checked');\n updateCard();\n });\n $(\".transport\").change(function () {\n if ($(\".transport:checked\").length > 0) {\n $(\".reserve\").removeAttr('checked');\n }\n\n $(\"#resv\").show();\n updateCard();\n }); // discount\n\n $(\"#discount\").bind('click', function () {\n axios.post($(this).data('url'), {\n code: $(\"#discount-code\").val()\n }).then(function (e) {\n $(\"#discount\").attr('data-discount', JSON.stringify(e.data));\n window.alertify.success(window.translate.discountCodeAccept);\n updateCard();\n })[\"catch\"](function () {\n $(\"#discount\").attr('data-discount', '{}');\n window.alertify.error(window.translate.discountCodeError);\n updateCard();\n });\n });\n $(\"#profile-tab li\").bind('click', function () {\n $(\"#profile-tab li\").removeClass('active');\n $(this).addClass('active');\n $(\".profile-tab.active\").slideUp(300, function () {\n $(this).removeClass('active');\n });\n $($(this).data('id')).slideDown(300, function () {\n $(this).addClass('active');\n });\n });\n updateCard();\n setTimeout(function () {\n if ($(\"#catId\").length > 0) {\n var url = $(\"#catId\").data('url');\n $.get(url, function (e) {\n // console.log(app);\n app.jdata = e[1];\n });\n }\n }, 500);\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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QUFDLENBQUN3RSxHQUFGLENBQU1ELEdBQU4sRUFBVyxVQUFVMUMsQ0FBVixFQUFhO1FBQ3BCO1FBQ0E0QyxHQUFHLENBQUNDLEtBQUosR0FBWTdDLENBQUMsQ0FBQyxDQUFELENBQWI7TUFDSCxDQUhEO0lBSUg7RUFDSixDQVJTLEVBUVAsR0FSTyxDQUFWO0FBU0gsQ0F0T0ssQ0FBTiIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL3Jlc291cmNlcy9qcy9jdXN0b21lci5qcz8wNmJiIl0sInNvdXJjZXNDb250ZW50IjpbInZhciBkYXRhID0gcmVxdWlyZSgnLi9wbHVnaW5zL2RhdGEnKTtcbnZhciBpc1NlbmRTbXMgPSBmYWxzZTtcblxuZnVuY3Rpb24gbm9jb21tYShudW0pIHtcbiAgICBhID0gbnVtLnRvU3RyaW5nKCkucmVwbGFjZSgvXFwsL2csICcnKTsgLy8gMTEyNSwgYnV0IGEgc3RyaW5nLCBzbyBjb252ZXJ0IGl0IHRvIG51bWJlclxuICAgIHJldHVybiBhLnRvU3RyaW5nKCk7XG59XG5cbmZ1bmN0aW9uIGNvbW1hZnkobnVtKSB7XG4gICAgbnVtID0gbm9jb21tYShudW0pO1xuICAgIHZhciBzdHIgPSBudW0udG9TdHJpbmcoKS5zcGxpdCgnLicpO1xuICAgIGlmIChzdHJbMF0ubGVuZ3RoID49IDQpIHtcblxuICAgICAgICBzdHJbMF0gPSBzdHJbMF0ucmVwbGFjZSgvKFxcZCkoPz0oXFxkezN9KSskKS9nLCAnJDEsJyk7XG4gICAgfVxuICAgIGlmIChzdHJbMV0gJiYgc3RyWzFdLmxlbmd0aCA+PSA0KSB7XG5cbiAgICAgICAgc3RyWzFdID0gc3RyWzFdLnJlcGxhY2UoLyhcXGR7M30pL2csICckMSwnKTtcbiAgICB9XG4gICAgcmV0dXJuIHN0ci5qb2luKCcuJyk7XG59XG5cbmZ1bmN0aW9uIGZpbmROZXh0VGFiU3RvcChlbCkge1xuICAgIHZhciB1bml2ZXJzZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2lucHV0LCBidXR0b24sIHNlbGVjdCwgdGV4dGFyZWEsIGFbaHJlZl0nKTtcbiAgICB2YXIgbGlzdCA9IEFycmF5LnByb3RvdHlwZS5maWx0ZXIuY2FsbCh1bml2ZXJzZSwgZnVuY3Rpb24gKGl0ZW0pIHtcbiAgICAgICAgcmV0dXJuIGl0ZW0udGFiSW5kZXggPj0gXCIwXCJcbiAgICB9KTtcbiAgICB2YXIgaW5kZXggPSBsaXN0LmluZGV4T2YoZWwpO1xuICAgIHJldHVybiBsaXN0W2luZGV4ICsgMV0gfHwgbGlzdFswXTtcbn1cblxuZnVuY3Rpb24gZmluZFBlcnZUYWJTdG9wKGVsKSB7XG4gICAgdmFyIHVuaXZlcnNlID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnaW5wdXQsIGJ1dHRvbiwgc2VsZWN0LCB0ZXh0YXJlYSwgYVtocmVmXScpO1xuICAgIHZhciBsaXN0ID0gQXJyYXkucHJvdG90eXBlLmZpbHRlci5jYWxsKHVuaXZlcnNlLCBmdW5jdGlvbiAoaXRlbSkge1xuICAgICAgICByZXR1cm4gaXRlbS50YWJJbmRleCA+PSBcIjBcIlxuICAgIH0pO1xuICAgIHZhciBpbmRleCA9IGxpc3QuaW5kZXhPZihlbCk7XG4gICAgcmV0dXJuIGxpc3RbaW5kZXggLSAxXSB8fCBsaXN0WzBdO1xufVxuXG5qUXVlcnkoZnVuY3Rpb24gKCQpIHtcblxuICAgICQoJy5zbXMtcGFzcycpLmJpbmQoJ2ZvY3VzJywgZnVuY3Rpb24gKCkge1xuICAgICAgICB0aGlzLnNldFNlbGVjdGlvblJhbmdlKDAsIHRoaXMudmFsdWUubGVuZ3RoKTtcbiAgICB9KTtcbiAgICAkKCcuc21zLXBhc3MnKS5iaW5kKCdrZXl1cCcsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgaWYgKCQodGhpcykudmFsKCkubGVuZ3RoID09IDEpIHtcbiAgICAgICAgICAgIGxldCB4ID0gZmluZE5leHRUYWJTdG9wKHRoaXMpO1xuICAgICAgICAgICAgeC5mb2N1cygpO1xuICAgICAgICB9IGVsc2UgaWYgKCQodGhpcykudmFsKCkubGVuZ3RoID09IDApIHtcbiAgICAgICAgICAgIGxldCB4ID0gZmluZFBlcnZUYWJTdG9wKHRoaXMpO1xuICAgICAgICAgICAgeC5mb2N1cygpO1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgaWYgKCQoXCIjc3RhdGVcIikubGVuZ3RoICE9IDApIHtcblxuICAgICAgICB2YXIgdHggPSAnPG9wdGlvbiB2YWx1ZT1cIlwiPjwvb3B0aW9uPic7XG4gICAgICAgIGZvciAoY29uc3QgcyBvZiBkYXRhKCkuc3RhdGVzKSB7XG4gICAgICAgICAgICB0eCArPSBgPG9wdGlvbiB2YWx1ZT1cIiR7cy5pZH1cIj4ke3MubmFtZX08L29wdGlvbj5gO1xuICAgICAgICB9XG4gICAgICAgICQoXCIjc3RhdGVcIikuYXBwZW5kKHR4KTtcbiAgICAgICAgJChcIiNzdGF0ZVwiKS52YWwoJChcIiNzdGF0ZVwiKS5kYXRhKCd2YWwnKSk7XG5cbiAgICAgICAgJChcIiNzdGF0ZVwiKS5jaGFuZ2UoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgdmFyIHYgPSAkKHRoaXMpLnZhbCgpO1xuICAgICAgICAgICAgdmFyIHR4ID0gJyc7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGNpdHkgb2YgZGF0YSgpLmNpdGllcykge1xuICAgICAgICAgICAgICAgIGlmIChjaXR5LnN0YXRlX2lkID09IHYpIHtcbiAgICAgICAgICAgICAgICAgICAgdHggKz0gYDxvcHRpb24gdmFsdWU9XCIke2NpdHkuaWR9XCI+JHtjaXR5Lm5hbWV9PC9vcHRpb24+YDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAkKFwiI2NpdHlcIikuaHRtbCh0eCk7XG4gICAgICAgIH0pO1xuICAgICAgICAkKFwiI3N0YXRlXCIpLmNoYW5nZSgpO1xuICAgICAgICAkKFwiI2NpdHlcIikudmFsKCQoXCIjY2l0eVwiKS5kYXRhKCd2YWwnKSk7XG5cbiAgICB9XG5cbiAgICBpZiAoJChcIiNzdGF0ZV9cIikubGVuZ3RoICE9IDApIHtcblxuICAgICAgICB2YXIgdHggPSAnPG9wdGlvbiB2YWx1ZT1cIlwiPjwvb3B0aW9uPic7XG4gICAgICAgIGZvciAoY29uc3QgcyBvZiBkYXRhKCkuc3RhdGVzKSB7XG4gICAgICAgICAgICB0eCArPSBgPG9wdGlvbiB2YWx1ZT1cIiR7cy5pZH1cIj4ke3MubmFtZX08L29wdGlvbj5gO1xuICAgICAgICB9XG4gICAgICAgICQoXCIjc3RhdGVfXCIpLmFwcGVuZCh0eCk7XG4gICAgICAgICQoXCIjc3RhdGVfXCIpLnZhbCgkKFwiI3N0YXRlX1wiKS5kYXRhKCd2YWwnKSk7XG5cbiAgICAgICAgJChcIiNzdGF0ZV9cIikuY2hhbmdlKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHZhciB2ID0gJCh0aGlzKS52YWwoKTtcbiAgICAgICAgICAgIHZhciB0eCA9ICcnO1xuICAgICAgICAgICAgZm9yIChjb25zdCBjaXR5IG9mIGRhdGEoKS5jaXRpZXMpIHtcbiAgICAgICAgICAgICAgICBpZiAoY2l0eS5zdGF0ZV9pZCA9PSB2KSB7XG4gICAgICAgICAgICAgICAgICAgIHR4ICs9IGA8b3B0aW9uIHZhbHVlPVwiJHtjaXR5LmlkfVwiPiR7Y2l0eS5uYW1lfTwvb3B0aW9uPmA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJChcIiNjaXR5X1wiKS5odG1sKHR4KTtcbiAgICAgICAgfSk7XG4gICAgICAgICQoXCIjc3RhdGVfXCIpLmNoYW5nZSgpO1xuICAgICAgICAkKFwiI2NpdHlfXCIpLnZhbCgkKFwiI2NpdHlfXCIpLmRhdGEoJ3ZhbCcpKTtcblxuICAgIH1cblxuXG4gICAgJChcIiNzbXMtYnRuXCIpLmJpbmQoJ2NsaWNrJywgZnVuY3Rpb24gKCkge1xuICAgICAgICBpZiAoJChcIiNtb2JpbGVcIikudmFsKCkubGVuZ3RoICE9PSAxMSkge1xuICAgICAgICAgICAgd2luZG93LmFsZXJ0aWZ5LmVycm9yKHdpbmRvdy50cmFuc2xhdGUuZXJyTW9iaWxlKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICAkKFwiI3Ntcy1idG5cIikuYXR0cignZGlzYWJsZWQnLCB0cnVlKTtcbiAgICAgICAgaWYgKCFpc1NlbmRTbXMpIHtcbiAgICAgICAgICAgIGF4aW9zLnBvc3QoJCh0aGlzKS5kYXRhKCdzZW5kJyksIHttb2JpbGU6ICQoXCIjbW9iaWxlXCIpLnZhbCgpfSkudGhlbihmdW5jdGlvbiAoZSkge1xuICAgICAgICAgICAgICAgIGlmIChlLmRhdGEuT0sgPT0gdHJ1ZSkge1xuICAgICAgICAgICAgICAgICAgICB3aW5kb3cuYWxlcnRpZnkuc3VjY2VzcyhlLmRhdGEubXNnKTtcbiAgICAgICAgICAgICAgICAgICAgJChcIiNzbXMtY29kZVwiKS5zbGlkZURvd24oNTAwKTtcbiAgICAgICAgICAgICAgICAgICAgJChcIiNzbXMtZmlyc3RcIikuZm9jdXMoKTtcbiAgICAgICAgICAgICAgICAgICAgaXNTZW5kU21zID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgJChcIiNzbXMtYnRuXCIpLnJlbW92ZUF0dHIoJ2Rpc2FibGVkJyk7XG4gICAgICAgICAgICB9KS5jYXRjaChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgd2luZG93LmFsZXJ0aWZ5LmVycm9yKCdTZXJ2ZXIgRXJyb3InKTtcbiAgICAgICAgICAgICAgICAkKFwiI3Ntcy1idG5cIikucmVtb3ZlQXR0cignZGlzYWJsZWQnKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbGV0IHBhc3MgPSAnJztcbiAgICAgICAgICAgICQoXCIuc21zLXBhc3NcIikuZWFjaChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgcGFzcyArPSAkKHRoaXMpLnZhbCgpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBsZXQgbG9naW4gPSAkKHRoaXMpLmRhdGEoJ2N1c3RvbWVyJyk7XG4gICAgICAgICAgICBheGlvcy5wb3N0KCQodGhpcykuZGF0YSgnY2hlY2snKSwge21vYmlsZTogJChcIiNtb2JpbGVcIikudmFsKCksIHBhc3M6IHBhc3N9KS50aGVuKGZ1bmN0aW9uIChlKSB7XG4gICAgICAgICAgICAgICAgJChcIiNzbXMtYnRuXCIpLnJlbW92ZUF0dHIoJ2Rpc2FibGVkJyk7XG4gICAgICAgICAgICAgICAgaWYgKGUuZGF0YS5PSyA9PSB0cnVlKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpbmRvdy5hbGVydGlmeS5zdWNjZXNzKGUuZGF0YS5tc2cpO1xuICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gbG9naW47XG4gICAgICAgICAgICAgICAgICAgIH0sIDIwMDApO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHdpbmRvdy5hbGVydGlmeS5lcnJvcihlLmRhdGEuZXJyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KS5jYXRjaChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgJChcIiNzbXMtYnRuXCIpLnJlbW92ZUF0dHIoJ2Rpc2FibGVkJyk7XG4gICAgICAgICAgICAgICAgd2luZG93LmFsZXJ0aWZ5LmVycm9yKCdTZXJ2ZXIgRXJyb3InKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfSk7XG5cbiAgICAkKFwiLmNvdW50LWRlY1wiKS5iaW5kKCdjbGljaycsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgbGV0IGlucCA9ICQodGhpcykucGFyZW50KCkuZmluZCgnaW5wdXQnKTtcbiAgICAgICAgaWYgKHBhcnNlSW50KCQoaW5wKS52YWwoKSkgLSAxIDwgMSkge1xuICAgICAgICAgICAgJChpbnApLnZhbCgxKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICQoaW5wKS52YWwocGFyc2VJbnQoJChpbnApLnZhbCgpKSAtIDEpO1xuICAgICAgICB9XG4gICAgICAgICQoaW5wKS5jaGFuZ2UoKTtcbiAgICB9KTtcbiAgICAkKFwiLmNvdW50LWluY1wiKS5iaW5kKCdjbGljaycsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgbGV0IGlucCA9ICQodGhpcykucGFyZW50KCkuZmluZCgnaW5wdXQnKTtcbiAgICAgICAgaWYgKHBhcnNlSW50KCQoaW5wKS52YWwoKSkgKyAxID4gJChpbnApLmF0dHIoJ21heCcpKSB7XG4gICAgICAgICAgICAkKGlucCkudmFsKCQoaW5wKS5hdHRyKCdtYXgnKSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAkKGlucCkudmFsKHBhcnNlSW50KCQoaW5wKS52YWwoKSkgKyAxKTtcbiAgICAgICAgfVxuICAgICAgICAkKGlucCkuY2hhbmdlKCk7XG4gICAgfSk7XG5cbiAgICAkKFwiLnF1YW50aXR5XCIpLmJpbmQoJ2NsaWNrJywgZnVuY3Rpb24gKCkge1xuICAgICAgICAkKHRoaXMpLmNsb3Nlc3QoJ3RkJykuZmluZCgnLnF1YW50aXR5JykucmVtb3ZlQ2xhc3MoJ2FjdGl2ZScpO1xuICAgICAgICAkKHRoaXMpLmNsb3Nlc3QoJ3RkJykuZmluZCgnLnF1YW50aXR5IGlucHV0JykucmVtb3ZlQXR0cignY2hlY2tlZCcpO1xuICAgICAgICAkKHRoaXMpLmFkZENsYXNzKCdhY3RpdmUnKTtcbiAgICAgICAgJCh0aGlzKS5maW5kKCdpbnB1dCcpWzBdLmNoZWNrZWQgPSB0cnVlO1xuICAgICAgICAkKHRoaXMpLmNsb3Nlc3QoJ3RyJykuZmluZCgnLnByaWNlLXRkJykuYXR0cignZGF0YS1wcmljZScsICQodGhpcykuZGF0YSgncHJpY2UnKSk7XG4gICAgICAgICQodGhpcykuY2xvc2VzdCgndHInKS5maW5kKCcucHJpY2UnKS50ZXh0KGNvbW1hZnkoJCh0aGlzKS5kYXRhKCdwcmljZScpKSk7XG4gICAgICAgICQodGhpcykuY2xvc2VzdCgndHInKS5maW5kKCcucHJvZHVjdC1jb3VudCBpbnB1dCcpLmF0dHIoJ21heCcsICQodGhpcykuZGF0YSgnY291bnQnKSk7XG4gICAgICAgIGlmICgkKHRoaXMpLmRhdGEoJ2NvdW50JykgPT0gMCkge1xuICAgICAgICAgICAgJCh0aGlzKS5jbG9zZXN0KCd0cicpLmZpbmQoJy5wcm9kdWN0LWNvdW50IGlucHV0JykuYXR0cignbWF4JywgMCk7XG4gICAgICAgIH1cbiAgICAgICAgdXBkYXRlQ2FyZCgpO1xuICAgIH0pO1xuXG4gICAgJCgnLnByb2R1Y3QtY291bnQgaW5wdXQnKS5iaW5kKCdjaGFuZ2UnLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHVwZGF0ZUNhcmQoKVxuICAgIH0pO1xuXG4gICAgZnVuY3Rpb24gdXBkYXRlQ2FyZCgpIHtcbiAgICAgICAgbGV0IHRvdGFsUHJpY2UgPSAwO1xuICAgICAgICBmb3IgKGNvbnN0IHRkIG9mIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5wcmljZS10ZCcpKSB7XG4gICAgICAgICAgICBsZXQgcHJpY2UgPSBwYXJzZUludCgkKHRkKS5hdHRyKCdkYXRhLXByaWNlJykpO1xuICAgICAgICAgICAgbGV0IGNvdW50ID0gcGFyc2VJbnQoJCh0ZCkuY2xvc2VzdCgndHInKS5maW5kKCcucHJvZHVjdC1jb3VudCBpbnB1dCcpLnZhbCgpKTtcbiAgICAgICAgICAgICQodGQpLmNsb3Nlc3QoJ3RyJykuZmluZCgnLnByb2R1Y3QtY291bnQgaW5wdXQnKS5hdHRyKCdtYXgnLCAkKHRkKS5jbG9zZXN0KCd0cicpLmZpbmQoJy5hY3RpdmUnKS5kYXRhKCdjb3VudCcpKTtcblxuICAgICAgICAgICAgLy8gbWF5YmUgbmVlZCBjb21tZW50XG4gICAgICAgICAgICBpZiAoJCh0ZCkuY2xvc2VzdCgndHInKS5maW5kKCcucHJvZHVjdC1jb3VudCBpbnB1dCcpLmF0dHIoJ21heCcpID09ICcwJyl7XG4gICAgICAgICAgICAgICAgJCh0ZCkuY2xvc2VzdCgndHInKS5maW5kKCcucHJvZHVjdC1jb3VudCBpbnB1dCcpLmF0dHIoJ21heCcsMSlcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRvdGFsUHJpY2UgKz0gcHJpY2UgKiBjb3VudDtcbiAgICAgICAgfVxuXG5cbiAgICAgICAgLy8gY2hlY2sgcHJpY2VcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGxldCBkaXNjb3VudCA9IEpTT04ucGFyc2UoJChcIiNkaXNjb3VudFwiKS5hdHRyKCdkYXRhLWRpc2NvdW50JykpO1xuICAgICAgICAgICAgaWYgKCFpc05hTihwYXJzZUludChkaXNjb3VudC5hbW91bnQpKSkge1xuICAgICAgICAgICAgICAgIGlmIChkaXNjb3VudC50eXBlID09PSAncHJpY2UnKSB7XG4gICAgICAgICAgICAgICAgICAgIHRvdGFsUHJpY2UgLT0gcGFyc2VJbnQoZGlzY291bnQuYW1vdW50KTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0b3RhbFByaWNlIC09ICgoMTAwIC0gcGFyc2VJbnQoZGlzY291bnQuYW1vdW50KSkgKiB0b3RhbFByaWNlKSAvIDEwMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKGUubWVzc2FnZSk7XG4gICAgICAgIH1cbiAgICAgICAgbGV0IGxhc3RwcmljZSA9IHRvdGFsUHJpY2U7XG4gICAgICAgIGlmICgkKFwiLnRyYW5zcG9ydDpjaGVja2VkXCIpLmRhdGEoJ3ByaWNlJykgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgbGFzdHByaWNlICs9IHBhcnNlSW50KCQoXCIudHJhbnNwb3J0OmNoZWNrZWRcIikuZGF0YSgncHJpY2UnKSk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gdHJhbnNwb3J0XG4gICAgICAgICQoJyN0b3RhbC1jYXJkJykudGV4dChjb21tYWZ5KHRvdGFsUHJpY2UpKTtcbiAgICAgICAgJCgnI2xhc3QtcHJpY2UnKS50ZXh0KGNvbW1hZnkobGFzdHByaWNlKSk7XG5cbiAgICB9XG5cbiAgICAkKFwiLnJlc2VydmVcIikuY2hhbmdlKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgaWYgKCQoXCIucmVzZXJ2ZTpjaGVja2VkXCIpLmxlbmd0aCA+IDApe1xuICAgICAgICAgICAgJChcIi50cmFuc3BvcnRcIikucmVtb3ZlQXR0cignY2hlY2tlZCcpO1xuICAgICAgICB9XG4gICAgICAgICQoXCIjcmVzdlwiKS5oaWRlKCk7XG4gICAgICAgICQoXCIjZmxleFN3aXRjaENoZWNrRGVmYXVsdFwiKS5yZW1vdmVBdHRyKCdjaGVja2VkJyk7XG4gICAgICAgIHVwZGF0ZUNhcmQoKTtcbiAgICB9KTtcbiAgICAkKFwiLnRyYW5zcG9ydFwiKS5jaGFuZ2UoZnVuY3Rpb24gKCkge1xuICAgICAgICBpZiAoJChcIi50cmFuc3BvcnQ6Y2hlY2tlZFwiKS5sZW5ndGggPiAwKXtcbiAgICAgICAgICAgICQoXCIucmVzZXJ2ZVwiKS5yZW1vdmVBdHRyKCdjaGVja2VkJyk7XG4gICAgICAgIH1cbiAgICAgICAgJChcIiNyZXN2XCIpLnNob3coKTtcbiAgICAgICAgdXBkYXRlQ2FyZCgpO1xuICAgIH0pO1xuICAgIC8vIGRpc2NvdW50XG4gICAgJChcIiNkaXNjb3VudFwiKS5iaW5kKCdjbGljaycsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgYXhpb3MucG9zdCgkKHRoaXMpLmRhdGEoJ3VybCcpLCB7Y29kZTogJChcIiNkaXNjb3VudC1jb2RlXCIpLnZhbCgpfSkudGhlbihmdW5jdGlvbiAoZSkge1xuICAgICAgICAgICAgJChcIiNkaXNjb3VudFwiKS5hdHRyKCdkYXRhLWRpc2NvdW50JywgSlNPTi5zdHJpbmdpZnkoZS5kYXRhKSk7XG4gICAgICAgICAgICB3aW5kb3cuYWxlcnRpZnkuc3VjY2Vzcyh3aW5kb3cudHJhbnNsYXRlLmRpc2NvdW50Q29kZUFjY2VwdCk7XG4gICAgICAgICAgICB1cGRhdGVDYXJkKCk7XG4gICAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICQoXCIjZGlzY291bnRcIikuYXR0cignZGF0YS1kaXNjb3VudCcsICd7fScpO1xuICAgICAgICAgICAgd2luZG93LmFsZXJ0aWZ5LmVycm9yKHdpbmRvdy50cmFuc2xhdGUuZGlzY291bnRDb2RlRXJyb3IpO1xuICAgICAgICAgICAgdXBkYXRlQ2FyZCgpO1xuICAgICAgICB9KTtcbiAgICB9KTtcblxuICAgICQoXCIjcHJvZmlsZS10YWIgbGlcIikuYmluZCgnY2xpY2snLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICQoXCIjcHJvZmlsZS10YWIgbGlcIikucmVtb3ZlQ2xhc3MoJ2FjdGl2ZScpO1xuICAgICAgICAkKHRoaXMpLmFkZENsYXNzKCdhY3RpdmUnKTtcbiAgICAgICAgJChcIi5wcm9maWxlLXRhYi5hY3RpdmVcIikuc2xpZGVVcCgzMDAsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICQodGhpcykucmVtb3ZlQ2xhc3MoJ2FjdGl2ZScpO1xuICAgICAgICB9KTtcbiAgICAgICAgJCgkKHRoaXMpLmRhdGEoJ2lkJykpLnNsaWRlRG93bigzMDAsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICQodGhpcykuYWRkQ2xhc3MoJ2FjdGl2ZScpO1xuICAgICAgICB9KVxuICAgIH0pO1xuXG4gICAgdXBkYXRlQ2FyZCgpO1xuXG4gICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICAgIGlmICgkKFwiI2NhdElkXCIpLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGxldCB1cmwgPSAkKFwiI2NhdElkXCIpLmRhdGEoJ3VybCcpO1xuICAgICAgICAgICAgJC5nZXQodXJsLCBmdW5jdGlvbiAoZSkge1xuICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKGFwcCk7XG4gICAgICAgICAgICAgICAgYXBwLmpkYXRhID0gZVsxXTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfSwgNTAwKTtcbn0pO1xuXG4iXSwibmFtZXMiOlsiZGF0YSIsInJlcXVpcmUiLCJpc1NlbmRTbXMiLCJub2NvbW1hIiwibnVtIiwiYSIsInRvU3RyaW5nIiwicmVwbGFjZSIsImNvbW1hZnkiLCJzdHIiLCJzcGxpdCIsImxlbmd0aCIsImpvaW4iLCJmaW5kTmV4dFRhYlN0b3AiLCJlbCIsInVuaXZlcnNlIiwiZG9jdW1lbnQiLCJxdWVyeVNlbGVjdG9yQWxsIiwibGlzdCIsIkFycmF5IiwicHJvdG90eXBlIiwiZmlsdGVyIiwiY2FsbCIsIml0ZW0iLCJ0YWJJbmRleCIsImluZGV4IiwiaW5kZXhPZiIsImZpbmRQZXJ2VGFiU3RvcCIsImpRdWVyeSIsIiQiLCJiaW5kIiwic2V0U2VsZWN0aW9uUmFuZ2UiLCJ2YWx1ZSIsInZhbCIsIngiLCJmb2N1cyIsInR4Iiwic3RhdGVzIiwicyIsImlkIiwibmFtZSIsImFwcGVuZCIsImNoYW5nZSIsInYiLCJjaXRpZXMiLCJjaXR5Iiwic3RhdGVfaWQiLCJodG1sIiwid2luZG93IiwiYWxlcnRpZnkiLCJlcnJvciIsInRyYW5zbGF0ZSIsImVyck1vYmlsZSIsImF0dHIiLCJheGlvcyIsInBvc3QiLCJtb2JpbGUiLCJ0aGVuIiwiZSIsIk9LIiwic3VjY2VzcyIsIm1zZyIsInNsaWRlRG93biIsInJlbW92ZUF0dHIiLCJwYXNzIiwiZWFjaCIsImxvZ2luIiwic2V0VGltZW91dCIsImxvY2F0aW9uIiwiaHJlZiIsImVyciIsImlucCIsInBhcmVudCIsImZpbmQiLCJwYXJzZUludCIsImNsb3Nlc3QiLCJyZW1vdmVDbGFzcyIsImFkZENsYXNzIiwiY2hlY2tlZCIsInRleHQiLCJ1cGRhdGVDYXJkIiwidG90YWxQcmljZSIsInRkIiwicHJpY2UiLCJjb3VudCIsImRpc2NvdW50IiwiSlNPTiIsInBhcnNlIiwiaXNOYU4iLCJhbW91bnQiLCJ0eXBlIiwibGFzdHByaWNlIiwidW5kZWZpbmVkIiwiaGlkZSIsInNob3ciLCJjb2RlIiwic3RyaW5naWZ5IiwiZGlzY291bnRDb2RlQWNjZXB0IiwiZGlzY291bnRDb2RlRXJyb3IiLCJzbGlkZVVwIiwidXJsIiwiZ2V0IiwiYXBwIiwiamRhdGEiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./resources/js/customer.js\n"); +eval("function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it[\"return\"] != null) it[\"return\"](); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nvar data = __webpack_require__(/*! ./plugins/data */ \"./resources/js/plugins/data.js\");\n\nvar isSendSms = false;\n\nfunction nocomma(num) {\n a = num.toString().replace(/\\,/g, ''); // 1125, but a string, so convert it to number\n\n return a.toString();\n}\n\nfunction commafy(num) {\n num = nocomma(num);\n var str = num.toString().split('.');\n\n if (str[0].length >= 4) {\n str[0] = str[0].replace(/(\\d)(?=(\\d{3})+$)/g, '$1,');\n }\n\n if (str[1] && str[1].length >= 4) {\n str[1] = str[1].replace(/(\\d{3})/g, '$1,');\n }\n\n return str.join('.');\n}\n\nfunction findNextTabStop(el) {\n var universe = document.querySelectorAll('input, button, select, textarea, a[href]');\n var list = Array.prototype.filter.call(universe, function (item) {\n return item.tabIndex >= \"0\";\n });\n var index = list.indexOf(el);\n return list[index + 1] || list[0];\n}\n\nfunction findPervTabStop(el) {\n var universe = document.querySelectorAll('input, button, select, textarea, a[href]');\n var list = Array.prototype.filter.call(universe, function (item) {\n return item.tabIndex >= \"0\";\n });\n var index = list.indexOf(el);\n return list[index - 1] || list[0];\n}\n\njQuery(function ($) {\n $('.sms-pass').bind('focus', function () {\n this.setSelectionRange(0, this.value.length);\n });\n $('.sms-pass').bind('keyup', function () {\n if ($(this).val().length == 1) {\n var x = findNextTabStop(this);\n x.focus();\n } else if ($(this).val().length == 0) {\n var _x = findPervTabStop(this);\n\n _x.focus();\n }\n });\n\n if ($(\"#state\").length != 0) {\n var tx = '';\n\n var _iterator = _createForOfIteratorHelper(data().states),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var s = _step.value;\n tx += \"\");\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n $(\"#state\").append(tx);\n $(\"#state\").val($(\"#state\").data('val'));\n $(\"#state\").change(function () {\n var v = $(this).val();\n var tx = '';\n\n var _iterator2 = _createForOfIteratorHelper(data().cities),\n _step2;\n\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var city = _step2.value;\n\n if (city.state_id == v) {\n tx += \"\");\n }\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n\n $(\"#city\").html(tx);\n });\n $(\"#state\").change();\n $(\"#city\").val($(\"#city\").data('val'));\n }\n\n if ($(\"#state_\").length != 0) {\n var tx = '';\n\n var _iterator3 = _createForOfIteratorHelper(data().states),\n _step3;\n\n try {\n for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {\n var _s = _step3.value;\n tx += \"\");\n }\n } catch (err) {\n _iterator3.e(err);\n } finally {\n _iterator3.f();\n }\n\n $(\"#state_\").append(tx);\n $(\"#state_\").val($(\"#state_\").data('val'));\n $(\"#state_\").change(function () {\n var v = $(this).val();\n var tx = '';\n\n var _iterator4 = _createForOfIteratorHelper(data().cities),\n _step4;\n\n try {\n for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {\n var city = _step4.value;\n\n if (city.state_id == v) {\n tx += \"\");\n }\n }\n } catch (err) {\n _iterator4.e(err);\n } finally {\n _iterator4.f();\n }\n\n $(\"#city_\").html(tx);\n });\n $(\"#state_\").change();\n $(\"#city_\").val($(\"#city_\").data('val'));\n }\n\n $(\"#sms-btn\").bind('click', function () {\n if ($(\"#mobile\").val().length !== 11) {\n window.alertify.error(window.translate.errMobile);\n return;\n }\n\n $(\"#sms-btn\").attr('disabled', true);\n\n if (!isSendSms) {\n axios.post($(this).data('send'), {\n mobile: $(\"#mobile\").val()\n }).then(function (e) {\n if (e.data.OK == true) {\n window.alertify.success(e.data.msg);\n $(\"#sms-code\").slideDown(500);\n $(\"#sms-first\").focus();\n isSendSms = true;\n }\n\n $(\"#sms-btn\").removeAttr('disabled');\n })[\"catch\"](function () {\n window.alertify.error('Server Error');\n $(\"#sms-btn\").removeAttr('disabled');\n });\n } else {\n var pass = '';\n $(\".sms-pass\").each(function () {\n pass += $(this).val();\n });\n var login = $(this).data('customer');\n axios.post($(this).data('check'), {\n mobile: $(\"#mobile\").val(),\n pass: pass\n }).then(function (e) {\n $(\"#sms-btn\").removeAttr('disabled');\n\n if (e.data.OK == true) {\n window.alertify.success(e.data.msg);\n setTimeout(function () {\n window.location.href = login;\n }, 2000);\n } else {\n window.alertify.error(e.data.err);\n }\n })[\"catch\"](function () {\n $(\"#sms-btn\").removeAttr('disabled');\n window.alertify.error('Server Error');\n });\n }\n });\n $(\".count-dec\").bind('click', function () {\n var inp = $(this).parent().find('input');\n\n if (parseInt($(inp).val()) - 1 < 1) {\n $(inp).val(1);\n } else {\n $(inp).val(parseInt($(inp).val()) - 1);\n }\n\n $(inp).change();\n });\n $(\".count-inc\").bind('click', function () {\n var inp = $(this).parent().find('input');\n\n if (parseInt($(inp).val()) + 1 > $(inp).attr('max')) {\n $(inp).val($(inp).attr('max'));\n } else {\n $(inp).val(parseInt($(inp).val()) + 1);\n }\n\n $(inp).change();\n });\n $(\".quantity\").bind('click', function () {\n $(this).closest('td').find('.quantity').removeClass('active');\n $(this).closest('td').find('.quantity input').removeAttr('checked');\n $(this).addClass('active');\n $(this).find('input')[0].checked = true;\n $(this).closest('tr').find('.price-td').attr('data-price', $(this).data('price'));\n $(this).closest('tr').find('.price').text(commafy($(this).data('price')));\n $(this).closest('tr').find('.product-count input').attr('max', $(this).data('count'));\n\n if ($(this).data('count') == 0) {\n $(this).closest('tr').find('.product-count input').attr('max', 0);\n }\n\n updateCard();\n });\n $('.product-count input').bind('change', function () {\n updateCard();\n });\n\n function updateCard() {\n var totalPrice = 0;\n\n var _iterator5 = _createForOfIteratorHelper(document.querySelectorAll('.price-td')),\n _step5;\n\n try {\n for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {\n var td = _step5.value;\n var price = parseInt($(td).attr('data-price'));\n var count = parseInt($(td).closest('tr').find('.product-count input').val());\n $(td).closest('tr').find('.product-count input').attr('max', $(td).closest('tr').find('.active').data('count')); // maybe need comment\n\n if ($(td).closest('tr').find('.product-count input').attr('max') == '0') {\n $(td).closest('tr').find('.product-count input').attr('max', 1);\n }\n\n totalPrice += price * count;\n } // check price\n\n } catch (err) {\n _iterator5.e(err);\n } finally {\n _iterator5.f();\n }\n\n try {\n var discount = JSON.parse($(\"#discount\").attr('data-discount'));\n\n if (!isNaN(parseInt(discount.amount))) {\n if (discount.type === 'price') {\n totalPrice -= parseInt(discount.amount);\n } else {\n totalPrice -= (100 - parseInt(discount.amount)) * totalPrice / 100;\n }\n }\n } catch (e) {// console.log(e.message);\n }\n\n var lastprice = totalPrice;\n\n if ($(\".transport:checked\").data('price') !== undefined) {\n lastprice += parseInt($(\".transport:checked\").data('price'));\n } // transport\n\n\n $('#total-card').text(commafy(totalPrice));\n $('#last-price').text(commafy(lastprice));\n }\n\n $(\".reserve\").change(function () {\n if ($(\".reserve:checked\").length > 0) {\n $(\".transport\").removeAttr('checked');\n }\n\n $(\"#resv\").hide();\n $(\"#flexSwitchCheckDefault\").removeAttr('checked');\n updateCard();\n });\n $(\".transport\").change(function () {\n if ($(\".transport:checked\").length > 0) {\n $(\".reserve\").removeAttr('checked');\n }\n\n $(\"#resv\").show();\n updateCard();\n }); // discount\n\n $(\"#discount\").bind('click', function () {\n axios.post($(this).data('url'), {\n code: $(\"#discount-code\").val()\n }).then(function (e) {\n $(\"#discount\").attr('data-discount', JSON.stringify(e.data));\n window.alertify.success(window.translate.discountCodeAccept);\n updateCard();\n })[\"catch\"](function () {\n $(\"#discount\").attr('data-discount', '{}');\n window.alertify.error(window.translate.discountCodeError);\n updateCard();\n });\n });\n $(\"#profile-tab li\").bind('click', function () {\n $(\"#profile-tab li\").removeClass('active');\n $(this).addClass('active');\n $(\".profile-tab.active\").slideUp(300, function () {\n $(this).removeClass('active');\n });\n $($(this).data('id')).slideDown(300, function () {\n $(this).addClass('active');\n });\n });\n updateCard();\n setTimeout(function () {\n if ($(\"#catId\").length > 0) {\n var url = $(\"#catId\").data('url');\n $.get(url, function (e) {\n // console.log(app);\n app.jdata = e[1];\n });\n }\n }, 500);\n $(\".next-step\").bind('click', function () {\n step++;\n $(\".step\" + step).click();\n });\n $(\".progress-step .step\").click(function () {\n $(\".progress-step .step\").removeClass('done');\n $($(this).data('done')).addClass('done');\n $(\"#card-steps .active-step\").slideUp(300).removeClass('active-step');\n $('#' + $(this).data('id')).slideDown(500).addClass('active-step');\n step = parseInt($(this).data('id').substr(4, 1));\n\n if ($(this).data('id') == 'step3') {\n $(\".last-step\").slideDown(300);\n $(\".next-step\").slideUp(300);\n } else {\n $(\".last-step\").slideUp(300);\n $(\".next-step\").slideDown(300);\n }\n });\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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WUFBRCxDQUFELENBQWdCaUMsU0FBaEIsQ0FBMEIsR0FBMUI7TUFDQWpDLENBQUMsQ0FBQyxZQUFELENBQUQsQ0FBZ0JzRSxPQUFoQixDQUF3QixHQUF4QjtJQUNILENBSEQsTUFHTztNQUNIdEUsQ0FBQyxDQUFDLFlBQUQsQ0FBRCxDQUFnQnNFLE9BQWhCLENBQXdCLEdBQXhCO01BQ0F0RSxDQUFDLENBQUMsWUFBRCxDQUFELENBQWdCaUMsU0FBaEIsQ0FBMEIsR0FBMUI7SUFDSDtFQUNKLENBYkQ7QUFjSCxDQTVQSyxDQUFOIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL2pzL2N1c3RvbWVyLmpzPzA2YmIiXSwic291cmNlc0NvbnRlbnQiOlsidmFyIGRhdGEgPSByZXF1aXJlKCcuL3BsdWdpbnMvZGF0YScpO1xudmFyIGlzU2VuZFNtcyA9IGZhbHNlO1xuXG5mdW5jdGlvbiBub2NvbW1hKG51bSkge1xuICAgIGEgPSBudW0udG9TdHJpbmcoKS5yZXBsYWNlKC9cXCwvZywgJycpOyAvLyAxMTI1LCBidXQgYSBzdHJpbmcsIHNvIGNvbnZlcnQgaXQgdG8gbnVtYmVyXG4gICAgcmV0dXJuIGEudG9TdHJpbmcoKTtcbn1cblxuZnVuY3Rpb24gY29tbWFmeShudW0pIHtcbiAgICBudW0gPSBub2NvbW1hKG51bSk7XG4gICAgdmFyIHN0ciA9IG51bS50b1N0cmluZygpLnNwbGl0KCcuJyk7XG4gICAgaWYgKHN0clswXS5sZW5ndGggPj0gNCkge1xuXG4gICAgICAgIHN0clswXSA9IHN0clswXS5yZXBsYWNlKC8oXFxkKSg/PShcXGR7M30pKyQpL2csICckMSwnKTtcbiAgICB9XG4gICAgaWYgKHN0clsxXSAmJiBzdHJbMV0ubGVuZ3RoID49IDQpIHtcblxuICAgICAgICBzdHJbMV0gPSBzdHJbMV0ucmVwbGFjZSgvKFxcZHszfSkvZywgJyQxLCcpO1xuICAgIH1cbiAgICByZXR1cm4gc3RyLmpvaW4oJy4nKTtcbn1cblxuZnVuY3Rpb24gZmluZE5leHRUYWJTdG9wKGVsKSB7XG4gICAgdmFyIHVuaXZlcnNlID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnaW5wdXQsIGJ1dHRvbiwgc2VsZWN0LCB0ZXh0YXJlYSwgYVtocmVmXScpO1xuICAgIHZhciBsaXN0ID0gQXJyYXkucHJvdG90eXBlLmZpbHRlci5jYWxsKHVuaXZlcnNlLCBmdW5jdGlvbiAoaXRlbSkge1xuICAgICAgICByZXR1cm4gaXRlbS50YWJJbmRleCA+PSBcIjBcIlxuICAgIH0pO1xuICAgIHZhciBpbmRleCA9IGxpc3QuaW5kZXhPZihlbCk7XG4gICAgcmV0dXJuIGxpc3RbaW5kZXggKyAxXSB8fCBsaXN0WzBdO1xufVxuXG5mdW5jdGlvbiBmaW5kUGVydlRhYlN0b3AoZWwpIHtcbiAgICB2YXIgdW5pdmVyc2UgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdpbnB1dCwgYnV0dG9uLCBzZWxlY3QsIHRleHRhcmVhLCBhW2hyZWZdJyk7XG4gICAgdmFyIGxpc3QgPSBBcnJheS5wcm90b3R5cGUuZmlsdGVyLmNhbGwodW5pdmVyc2UsIGZ1bmN0aW9uIChpdGVtKSB7XG4gICAgICAgIHJldHVybiBpdGVtLnRhYkluZGV4ID49IFwiMFwiXG4gICAgfSk7XG4gICAgdmFyIGluZGV4ID0gbGlzdC5pbmRleE9mKGVsKTtcbiAgICByZXR1cm4gbGlzdFtpbmRleCAtIDFdIHx8IGxpc3RbMF07XG59XG5cbmpRdWVyeShmdW5jdGlvbiAoJCkge1xuXG4gICAgJCgnLnNtcy1wYXNzJykuYmluZCgnZm9jdXMnLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHRoaXMuc2V0U2VsZWN0aW9uUmFuZ2UoMCwgdGhpcy52YWx1ZS5sZW5ndGgpO1xuICAgIH0pO1xuICAgICQoJy5zbXMtcGFzcycpLmJpbmQoJ2tleXVwJywgZnVuY3Rpb24gKCkge1xuICAgICAgICBpZiAoJCh0aGlzKS52YWwoKS5sZW5ndGggPT0gMSkge1xuICAgICAgICAgICAgbGV0IHggPSBmaW5kTmV4dFRhYlN0b3AodGhpcyk7XG4gICAgICAgICAgICB4LmZvY3VzKCk7XG4gICAgICAgIH0gZWxzZSBpZiAoJCh0aGlzKS52YWwoKS5sZW5ndGggPT0gMCkge1xuICAgICAgICAgICAgbGV0IHggPSBmaW5kUGVydlRhYlN0b3AodGhpcyk7XG4gICAgICAgICAgICB4LmZvY3VzKCk7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICBpZiAoJChcIiNzdGF0ZVwiKS5sZW5ndGggIT0gMCkge1xuXG4gICAgICAgIHZhciB0eCA9ICc8b3B0aW9uIHZhbHVlPVwiXCI+PC9vcHRpb24+JztcbiAgICAgICAgZm9yIChjb25zdCBzIG9mIGRhdGEoKS5zdGF0ZXMpIHtcbiAgICAgICAgICAgIHR4ICs9IGA8b3B0aW9uIHZhbHVlPVwiJHtzLmlkfVwiPiR7cy5uYW1lfTwvb3B0aW9uPmA7XG4gICAgICAgIH1cbiAgICAgICAgJChcIiNzdGF0ZVwiKS5hcHBlbmQodHgpO1xuICAgICAgICAkKFwiI3N0YXRlXCIpLnZhbCgkKFwiI3N0YXRlXCIpLmRhdGEoJ3ZhbCcpKTtcblxuICAgICAgICAkKFwiI3N0YXRlXCIpLmNoYW5nZShmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICB2YXIgdiA9ICQodGhpcykudmFsKCk7XG4gICAgICAgICAgICB2YXIgdHggPSAnJztcbiAgICAgICAgICAgIGZvciAoY29uc3QgY2l0eSBvZiBkYXRhKCkuY2l0aWVzKSB7XG4gICAgICAgICAgICAgICAgaWYgKGNpdHkuc3RhdGVfaWQgPT0gdikge1xuICAgICAgICAgICAgICAgICAgICB0eCArPSBgPG9wdGlvbiB2YWx1ZT1cIiR7Y2l0eS5pZH1cIj4ke2NpdHkubmFtZX08L29wdGlvbj5gO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICQoXCIjY2l0eVwiKS5odG1sKHR4KTtcbiAgICAgICAgfSk7XG4gICAgICAgICQoXCIjc3RhdGVcIikuY2hhbmdlKCk7XG4gICAgICAgICQoXCIjY2l0eVwiKS52YWwoJChcIiNjaXR5XCIpLmRhdGEoJ3ZhbCcpKTtcblxuICAgIH1cblxuICAgIGlmICgkKFwiI3N0YXRlX1wiKS5sZW5ndGggIT0gMCkge1xuXG4gICAgICAgIHZhciB0eCA9ICc8b3B0aW9uIHZhbHVlPVwiXCI+PC9vcHRpb24+JztcbiAgICAgICAgZm9yIChjb25zdCBzIG9mIGRhdGEoKS5zdGF0ZXMpIHtcbiAgICAgICAgICAgIHR4ICs9IGA8b3B0aW9uIHZhbHVlPVwiJHtzLmlkfVwiPiR7cy5uYW1lfTwvb3B0aW9uPmA7XG4gICAgICAgIH1cbiAgICAgICAgJChcIiNzdGF0ZV9cIikuYXBwZW5kKHR4KTtcbiAgICAgICAgJChcIiNzdGF0ZV9cIikudmFsKCQoXCIjc3RhdGVfXCIpLmRhdGEoJ3ZhbCcpKTtcblxuICAgICAgICAkKFwiI3N0YXRlX1wiKS5jaGFuZ2UoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgdmFyIHYgPSAkKHRoaXMpLnZhbCgpO1xuICAgICAgICAgICAgdmFyIHR4ID0gJyc7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGNpdHkgb2YgZGF0YSgpLmNpdGllcykge1xuICAgICAgICAgICAgICAgIGlmIChjaXR5LnN0YXRlX2lkID09IHYpIHtcbiAgICAgICAgICAgICAgICAgICAgdHggKz0gYDxvcHRpb24gdmFsdWU9XCIke2NpdHkuaWR9XCI+JHtjaXR5Lm5hbWV9PC9vcHRpb24+YDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAkKFwiI2NpdHlfXCIpLmh0bWwodHgpO1xuICAgICAgICB9KTtcbiAgICAgICAgJChcIiNzdGF0ZV9cIikuY2hhbmdlKCk7XG4gICAgICAgICQoXCIjY2l0eV9cIikudmFsKCQoXCIjY2l0eV9cIikuZGF0YSgndmFsJykpO1xuXG4gICAgfVxuXG5cbiAgICAkKFwiI3Ntcy1idG5cIikuYmluZCgnY2xpY2snLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGlmICgkKFwiI21vYmlsZVwiKS52YWwoKS5sZW5ndGggIT09IDExKSB7XG4gICAgICAgICAgICB3aW5kb3cuYWxlcnRpZnkuZXJyb3Iod2luZG93LnRyYW5zbGF0ZS5lcnJNb2JpbGUpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgICQoXCIjc21zLWJ0blwiKS5hdHRyKCdkaXNhYmxlZCcsIHRydWUpO1xuICAgICAgICBpZiAoIWlzU2VuZFNtcykge1xuICAgICAgICAgICAgYXhpb3MucG9zdCgkKHRoaXMpLmRhdGEoJ3NlbmQnKSwge21vYmlsZTogJChcIiNtb2JpbGVcIikudmFsKCl9KS50aGVuKGZ1bmN0aW9uIChlKSB7XG4gICAgICAgICAgICAgICAgaWYgKGUuZGF0YS5PSyA9PSB0cnVlKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpbmRvdy5hbGVydGlmeS5zdWNjZXNzKGUuZGF0YS5tc2cpO1xuICAgICAgICAgICAgICAgICAgICAkKFwiI3Ntcy1jb2RlXCIpLnNsaWRlRG93big1MDApO1xuICAgICAgICAgICAgICAgICAgICAkKFwiI3Ntcy1maXJzdFwiKS5mb2N1cygpO1xuICAgICAgICAgICAgICAgICAgICBpc1NlbmRTbXMgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAkKFwiI3Ntcy1idG5cIikucmVtb3ZlQXR0cignZGlzYWJsZWQnKTtcbiAgICAgICAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICB3aW5kb3cuYWxlcnRpZnkuZXJyb3IoJ1NlcnZlciBFcnJvcicpO1xuICAgICAgICAgICAgICAgICQoXCIjc21zLWJ0blwiKS5yZW1vdmVBdHRyKCdkaXNhYmxlZCcpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBsZXQgcGFzcyA9ICcnO1xuICAgICAgICAgICAgJChcIi5zbXMtcGFzc1wiKS5lYWNoKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICBwYXNzICs9ICQodGhpcykudmFsKCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGxldCBsb2dpbiA9ICQodGhpcykuZGF0YSgnY3VzdG9tZXInKTtcbiAgICAgICAgICAgIGF4aW9zLnBvc3QoJCh0aGlzKS5kYXRhKCdjaGVjaycpLCB7bW9iaWxlOiAkKFwiI21vYmlsZVwiKS52YWwoKSwgcGFzczogcGFzc30pLnRoZW4oZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgICAgICAgICAkKFwiI3Ntcy1idG5cIikucmVtb3ZlQXR0cignZGlzYWJsZWQnKTtcbiAgICAgICAgICAgICAgICBpZiAoZS5kYXRhLk9LID09IHRydWUpIHtcbiAgICAgICAgICAgICAgICAgICAgd2luZG93LmFsZXJ0aWZ5LnN1Y2Nlc3MoZS5kYXRhLm1zZyk7XG4gICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSBsb2dpbjtcbiAgICAgICAgICAgICAgICAgICAgfSwgMjAwMCk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgd2luZG93LmFsZXJ0aWZ5LmVycm9yKGUuZGF0YS5lcnIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAkKFwiI3Ntcy1idG5cIikucmVtb3ZlQXR0cignZGlzYWJsZWQnKTtcbiAgICAgICAgICAgICAgICB3aW5kb3cuYWxlcnRpZnkuZXJyb3IoJ1NlcnZlciBFcnJvcicpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9KTtcblxuICAgICQoXCIuY291bnQtZGVjXCIpLmJpbmQoJ2NsaWNrJywgZnVuY3Rpb24gKCkge1xuICAgICAgICBsZXQgaW5wID0gJCh0aGlzKS5wYXJlbnQoKS5maW5kKCdpbnB1dCcpO1xuICAgICAgICBpZiAocGFyc2VJbnQoJChpbnApLnZhbCgpKSAtIDEgPCAxKSB7XG4gICAgICAgICAgICAkKGlucCkudmFsKDEpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgJChpbnApLnZhbChwYXJzZUludCgkKGlucCkudmFsKCkpIC0gMSk7XG4gICAgICAgIH1cbiAgICAgICAgJChpbnApLmNoYW5nZSgpO1xuICAgIH0pO1xuICAgICQoXCIuY291bnQtaW5jXCIpLmJpbmQoJ2NsaWNrJywgZnVuY3Rpb24gKCkge1xuICAgICAgICBsZXQgaW5wID0gJCh0aGlzKS5wYXJlbnQoKS5maW5kKCdpbnB1dCcpO1xuICAgICAgICBpZiAocGFyc2VJbnQoJChpbnApLnZhbCgpKSArIDEgPiAkKGlucCkuYXR0cignbWF4JykpIHtcbiAgICAgICAgICAgICQoaW5wKS52YWwoJChpbnApLmF0dHIoJ21heCcpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICQoaW5wKS52YWwocGFyc2VJbnQoJChpbnApLnZhbCgpKSArIDEpO1xuICAgICAgICB9XG4gICAgICAgICQoaW5wKS5jaGFuZ2UoKTtcbiAgICB9KTtcblxuICAgICQoXCIucXVhbnRpdHlcIikuYmluZCgnY2xpY2snLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICQodGhpcykuY2xvc2VzdCgndGQnKS5maW5kKCcucXVhbnRpdHknKS5yZW1vdmVDbGFzcygnYWN0aXZlJyk7XG4gICAgICAgICQodGhpcykuY2xvc2VzdCgndGQnKS5maW5kKCcucXVhbnRpdHkgaW5wdXQnKS5yZW1vdmVBdHRyKCdjaGVja2VkJyk7XG4gICAgICAgICQodGhpcykuYWRkQ2xhc3MoJ2FjdGl2ZScpO1xuICAgICAgICAkKHRoaXMpLmZpbmQoJ2lucHV0JylbMF0uY2hlY2tlZCA9IHRydWU7XG4gICAgICAgICQodGhpcykuY2xvc2VzdCgndHInKS5maW5kKCcucHJpY2UtdGQnKS5hdHRyKCdkYXRhLXByaWNlJywgJCh0aGlzKS5kYXRhKCdwcmljZScpKTtcbiAgICAgICAgJCh0aGlzKS5jbG9zZXN0KCd0cicpLmZpbmQoJy5wcmljZScpLnRleHQoY29tbWFmeSgkKHRoaXMpLmRhdGEoJ3ByaWNlJykpKTtcbiAgICAgICAgJCh0aGlzKS5jbG9zZXN0KCd0cicpLmZpbmQoJy5wcm9kdWN0LWNvdW50IGlucHV0JykuYXR0cignbWF4JywgJCh0aGlzKS5kYXRhKCdjb3VudCcpKTtcbiAgICAgICAgaWYgKCQodGhpcykuZGF0YSgnY291bnQnKSA9PSAwKSB7XG4gICAgICAgICAgICAkKHRoaXMpLmNsb3Nlc3QoJ3RyJykuZmluZCgnLnByb2R1Y3QtY291bnQgaW5wdXQnKS5hdHRyKCdtYXgnLCAwKTtcbiAgICAgICAgfVxuICAgICAgICB1cGRhdGVDYXJkKCk7XG4gICAgfSk7XG5cbiAgICAkKCcucHJvZHVjdC1jb3VudCBpbnB1dCcpLmJpbmQoJ2NoYW5nZScsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdXBkYXRlQ2FyZCgpXG4gICAgfSk7XG5cbiAgICBmdW5jdGlvbiB1cGRhdGVDYXJkKCkge1xuICAgICAgICBsZXQgdG90YWxQcmljZSA9IDA7XG4gICAgICAgIGZvciAoY29uc3QgdGQgb2YgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLnByaWNlLXRkJykpIHtcbiAgICAgICAgICAgIGxldCBwcmljZSA9IHBhcnNlSW50KCQodGQpLmF0dHIoJ2RhdGEtcHJpY2UnKSk7XG4gICAgICAgICAgICBsZXQgY291bnQgPSBwYXJzZUludCgkKHRkKS5jbG9zZXN0KCd0cicpLmZpbmQoJy5wcm9kdWN0LWNvdW50IGlucHV0JykudmFsKCkpO1xuICAgICAgICAgICAgJCh0ZCkuY2xvc2VzdCgndHInKS5maW5kKCcucHJvZHVjdC1jb3VudCBpbnB1dCcpLmF0dHIoJ21heCcsICQodGQpLmNsb3Nlc3QoJ3RyJykuZmluZCgnLmFjdGl2ZScpLmRhdGEoJ2NvdW50JykpO1xuXG4gICAgICAgICAgICAvLyBtYXliZSBuZWVkIGNvbW1lbnRcbiAgICAgICAgICAgIGlmICgkKHRkKS5jbG9zZXN0KCd0cicpLmZpbmQoJy5wcm9kdWN0LWNvdW50IGlucHV0JykuYXR0cignbWF4JykgPT0gJzAnKXtcbiAgICAgICAgICAgICAgICAkKHRkKS5jbG9zZXN0KCd0cicpLmZpbmQoJy5wcm9kdWN0LWNvdW50IGlucHV0JykuYXR0cignbWF4JywxKVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdG90YWxQcmljZSArPSBwcmljZSAqIGNvdW50O1xuICAgICAgICB9XG5cblxuICAgICAgICAvLyBjaGVjayBwcmljZVxuICAgICAgICB0cnkge1xuICAgICAgICAgICAgbGV0IGRpc2NvdW50ID0gSlNPTi5wYXJzZSgkKFwiI2Rpc2NvdW50XCIpLmF0dHIoJ2RhdGEtZGlzY291bnQnKSk7XG4gICAgICAgICAgICBpZiAoIWlzTmFOKHBhcnNlSW50KGRpc2NvdW50LmFtb3VudCkpKSB7XG4gICAgICAgICAgICAgICAgaWYgKGRpc2NvdW50LnR5cGUgPT09ICdwcmljZScpIHtcbiAgICAgICAgICAgICAgICAgICAgdG90YWxQcmljZSAtPSBwYXJzZUludChkaXNjb3VudC5hbW91bnQpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRvdGFsUHJpY2UgLT0gKCgxMDAgLSBwYXJzZUludChkaXNjb3VudC5hbW91bnQpKSAqIHRvdGFsUHJpY2UpIC8gMTAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgLy8gY29uc29sZS5sb2coZS5tZXNzYWdlKTtcbiAgICAgICAgfVxuICAgICAgICBsZXQgbGFzdHByaWNlID0gdG90YWxQcmljZTtcbiAgICAgICAgaWYgKCQoXCIudHJhbnNwb3J0OmNoZWNrZWRcIikuZGF0YSgncHJpY2UnKSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBsYXN0cHJpY2UgKz0gcGFyc2VJbnQoJChcIi50cmFuc3BvcnQ6Y2hlY2tlZFwiKS5kYXRhKCdwcmljZScpKTtcbiAgICAgICAgfVxuICAgICAgICAvLyB0cmFuc3BvcnRcbiAgICAgICAgJCgnI3RvdGFsLWNhcmQnKS50ZXh0KGNvbW1hZnkodG90YWxQcmljZSkpO1xuICAgICAgICAkKCcjbGFzdC1wcmljZScpLnRleHQoY29tbWFmeShsYXN0cHJpY2UpKTtcblxuICAgIH1cblxuICAgICQoXCIucmVzZXJ2ZVwiKS5jaGFuZ2UoZnVuY3Rpb24gKCkge1xuICAgICAgICBpZiAoJChcIi5yZXNlcnZlOmNoZWNrZWRcIikubGVuZ3RoID4gMCl7XG4gICAgICAgICAgICAkKFwiLnRyYW5zcG9ydFwiKS5yZW1vdmVBdHRyKCdjaGVja2VkJyk7XG4gICAgICAgIH1cbiAgICAgICAgJChcIiNyZXN2XCIpLmhpZGUoKTtcbiAgICAgICAgJChcIiNmbGV4U3dpdGNoQ2hlY2tEZWZhdWx0XCIpLnJlbW92ZUF0dHIoJ2NoZWNrZWQnKTtcbiAgICAgICAgdXBkYXRlQ2FyZCgpO1xuICAgIH0pO1xuICAgICQoXCIudHJhbnNwb3J0XCIpLmNoYW5nZShmdW5jdGlvbiAoKSB7XG4gICAgICAgIGlmICgkKFwiLnRyYW5zcG9ydDpjaGVja2VkXCIpLmxlbmd0aCA+IDApe1xuICAgICAgICAgICAgJChcIi5yZXNlcnZlXCIpLnJlbW92ZUF0dHIoJ2NoZWNrZWQnKTtcbiAgICAgICAgfVxuICAgICAgICAkKFwiI3Jlc3ZcIikuc2hvdygpO1xuICAgICAgICB1cGRhdGVDYXJkKCk7XG4gICAgfSk7XG4gICAgLy8gZGlzY291bnRcbiAgICAkKFwiI2Rpc2NvdW50XCIpLmJpbmQoJ2NsaWNrJywgZnVuY3Rpb24gKCkge1xuICAgICAgICBheGlvcy5wb3N0KCQodGhpcykuZGF0YSgndXJsJyksIHtjb2RlOiAkKFwiI2Rpc2NvdW50LWNvZGVcIikudmFsKCl9KS50aGVuKGZ1bmN0aW9uIChlKSB7XG4gICAgICAgICAgICAkKFwiI2Rpc2NvdW50XCIpLmF0dHIoJ2RhdGEtZGlzY291bnQnLCBKU09OLnN0cmluZ2lmeShlLmRhdGEpKTtcbiAgICAgICAgICAgIHdpbmRvdy5hbGVydGlmeS5zdWNjZXNzKHdpbmRvdy50cmFuc2xhdGUuZGlzY291bnRDb2RlQWNjZXB0KTtcbiAgICAgICAgICAgIHVwZGF0ZUNhcmQoKTtcbiAgICAgICAgfSkuY2F0Y2goZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgJChcIiNkaXNjb3VudFwiKS5hdHRyKCdkYXRhLWRpc2NvdW50JywgJ3t9Jyk7XG4gICAgICAgICAgICB3aW5kb3cuYWxlcnRpZnkuZXJyb3Iod2luZG93LnRyYW5zbGF0ZS5kaXNjb3VudENvZGVFcnJvcik7XG4gICAgICAgICAgICB1cGRhdGVDYXJkKCk7XG4gICAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgJChcIiNwcm9maWxlLXRhYiBsaVwiKS5iaW5kKCdjbGljaycsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgJChcIiNwcm9maWxlLXRhYiBsaVwiKS5yZW1vdmVDbGFzcygnYWN0aXZlJyk7XG4gICAgICAgICQodGhpcykuYWRkQ2xhc3MoJ2FjdGl2ZScpO1xuICAgICAgICAkKFwiLnByb2ZpbGUtdGFiLmFjdGl2ZVwiKS5zbGlkZVVwKDMwMCwgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgJCh0aGlzKS5yZW1vdmVDbGFzcygnYWN0aXZlJyk7XG4gICAgICAgIH0pO1xuICAgICAgICAkKCQodGhpcykuZGF0YSgnaWQnKSkuc2xpZGVEb3duKDMwMCwgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgJCh0aGlzKS5hZGRDbGFzcygnYWN0aXZlJyk7XG4gICAgICAgIH0pXG4gICAgfSk7XG5cbiAgICB1cGRhdGVDYXJkKCk7XG5cbiAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgaWYgKCQoXCIjY2F0SWRcIikubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgbGV0IHVybCA9ICQoXCIjY2F0SWRcIikuZGF0YSgndXJsJyk7XG4gICAgICAgICAgICAkLmdldCh1cmwsIGZ1bmN0aW9uIChlKSB7XG4gICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coYXBwKTtcbiAgICAgICAgICAgICAgICBhcHAuamRhdGEgPSBlWzFdO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9LCA1MDApO1xuXG5cblxuICAgICQoXCIubmV4dC1zdGVwXCIpLmJpbmQoJ2NsaWNrJywgZnVuY3Rpb24gKCkge1xuICAgICAgICBzdGVwKys7XG4gICAgICAgICQoXCIuc3RlcFwiICsgc3RlcCkuY2xpY2soKTtcbiAgICB9KTtcblxuICAgICQoXCIucHJvZ3Jlc3Mtc3RlcCAuc3RlcFwiKS5jbGljayhmdW5jdGlvbiAoKSB7XG4gICAgICAgICQoXCIucHJvZ3Jlc3Mtc3RlcCAuc3RlcFwiKS5yZW1vdmVDbGFzcygnZG9uZScpO1xuICAgICAgICAkKCQodGhpcykuZGF0YSgnZG9uZScpKS5hZGRDbGFzcygnZG9uZScpO1xuICAgICAgICAkKFwiI2NhcmQtc3RlcHMgLmFjdGl2ZS1zdGVwXCIpLnNsaWRlVXAoMzAwKS5yZW1vdmVDbGFzcygnYWN0aXZlLXN0ZXAnKTtcbiAgICAgICAgJCgnIycgKyAkKHRoaXMpLmRhdGEoJ2lkJykpLnNsaWRlRG93big1MDApLmFkZENsYXNzKCdhY3RpdmUtc3RlcCcpO1xuICAgICAgICBzdGVwID0gcGFyc2VJbnQoJCh0aGlzKS5kYXRhKCdpZCcpLnN1YnN0cig0LCAxKSk7XG4gICAgICAgIGlmICgkKHRoaXMpLmRhdGEoJ2lkJykgPT0gJ3N0ZXAzJykge1xuICAgICAgICAgICAgJChcIi5sYXN0LXN0ZXBcIikuc2xpZGVEb3duKDMwMCk7XG4gICAgICAgICAgICAkKFwiLm5leHQtc3RlcFwiKS5zbGlkZVVwKDMwMCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAkKFwiLmxhc3Qtc3RlcFwiKS5zbGlkZVVwKDMwMCk7XG4gICAgICAgICAgICAkKFwiLm5leHQtc3RlcFwiKS5zbGlkZURvd24oMzAwKTtcbiAgICAgICAgfVxuICAgIH0pO1xufSk7XG5cblxuIl0sIm5hbWVzIjpbImRhdGEiLCJyZXF1aXJlIiwiaXNTZW5kU21zIiwibm9jb21tYSIsIm51bSIsImEiLCJ0b1N0cmluZyIsInJlcGxhY2UiLCJjb21tYWZ5Iiwic3RyIiwic3BsaXQiLCJsZW5ndGgiLCJqb2luIiwiZmluZE5leHRUYWJTdG9wIiwiZWwiLCJ1bml2ZXJzZSIsImRvY3VtZW50IiwicXVlcnlTZWxlY3RvckFsbCIsImxpc3QiLCJBcnJheSIsInByb3RvdHlwZSIsImZpbHRlciIsImNhbGwiLCJpdGVtIiwidGFiSW5kZXgiLCJpbmRleCIsImluZGV4T2YiLCJmaW5kUGVydlRhYlN0b3AiLCJqUXVlcnkiLCIkIiwiYmluZCIsInNldFNlbGVjdGlvblJhbmdlIiwidmFsdWUiLCJ2YWwiLCJ4IiwiZm9jdXMiLCJ0eCIsInN0YXRlcyIsInMiLCJpZCIsIm5hbWUiLCJhcHBlbmQiLCJjaGFuZ2UiLCJ2IiwiY2l0aWVzIiwiY2l0eSIsInN0YXRlX2lkIiwiaHRtbCIsIndpbmRvdyIsImFsZXJ0aWZ5IiwiZXJyb3IiLCJ0cmFuc2xhdGUiLCJlcnJNb2JpbGUiLCJhdHRyIiwiYXhpb3MiLCJwb3N0IiwibW9iaWxlIiwidGhlbiIsImUiLCJPSyIsInN1Y2Nlc3MiLCJtc2ciLCJzbGlkZURvd24iLCJyZW1vdmVBdHRyIiwicGFzcyIsImVhY2giLCJsb2dpbiIsInNldFRpbWVvdXQiLCJsb2NhdGlvbiIsImhyZWYiLCJlcnIiLCJpbnAiLCJwYXJlbnQiLCJmaW5kIiwicGFyc2VJbnQiLCJjbG9zZXN0IiwicmVtb3ZlQ2xhc3MiLCJhZGRDbGFzcyIsImNoZWNrZWQiLCJ0ZXh0IiwidXBkYXRlQ2FyZCIsInRvdGFsUHJpY2UiLCJ0ZCIsInByaWNlIiwiY291bnQiLCJkaXNjb3VudCIsIkpTT04iLCJwYXJzZSIsImlzTmFOIiwiYW1vdW50IiwidHlwZSIsImxhc3RwcmljZSIsInVuZGVmaW5lZCIsImhpZGUiLCJzaG93IiwiY29kZSIsInN0cmluZ2lmeSIsImRpc2NvdW50Q29kZUFjY2VwdCIsImRpc2NvdW50Q29kZUVycm9yIiwic2xpZGVVcCIsInVybCIsImdldCIsImFwcCIsImpkYXRhIiwic3RlcCIsImNsaWNrIiwic3Vic3RyIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./resources/js/customer.js\n"); /***/ }), @@ -449,7 +449,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _js_ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var x_mega_menu_dist_x_mega_menu_min__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! x-mega-menu/dist/x-mega-menu.min */ \"./node_modules/x-mega-menu/dist/x-mega-menu.min.js\");\n/* harmony import */ var x_mega_menu_dist_x_mega_menu_min__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(x_mega_menu_dist_x_mega_menu_min__WEBPACK_IMPORTED_MODULE_0__);\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it[\"return\"] != null) it[\"return\"](); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\n// require('hc-offcanvas-nav/dist/hc-offcanvas-nav');\n// import xMegaMenu from 'x-mega-menu/src/x-mega-menu';\n\nvar xMegaMenu = window.xMegaMenu = (x_mega_menu_dist_x_mega_menu_min__WEBPACK_IMPORTED_MODULE_0___default().xMegaMenu);\n\nfunction CopyToClipboard(containerid) {\n if (window.getSelection) {\n if (window.getSelection().empty) {\n // Chrome\n window.getSelection().empty();\n } else if (window.getSelection().removeAllRanges) {\n // Firefox\n window.getSelection().removeAllRanges();\n }\n } else if (document.selection) {\n // IE?\n document.selection.empty();\n }\n\n if (document.selection) {\n var range = document.body.createTextRange();\n range.moveToElementText(document.getElementById(containerid));\n range.select().createTextRange();\n document.execCommand(\"copy\");\n } else if (window.getSelection) {\n var range = document.createRange();\n range.selectNode(document.getElementById(containerid));\n window.getSelection().addRange(range);\n document.execCommand(\"copy\");\n }\n\n alertify.success('کپی شد');\n}\n\nfunction commafy(num) {\n var str = num.toString().split('.');\n\n if (str[0].length >= 4) {\n str[0] = str[0].replace(/(\\d)(?=(\\d{3})+$)/g, '$1,');\n }\n\n if (str[1] && str[1].length >= 4) {\n str[1] = str[1].replace(/(\\d{3})/g, '$1,');\n }\n\n return str.join('.');\n}\n\nvar qnn, images, sizes;\njQuery(function ($) {\n try {\n xMegaMenu('#mega-menu', {\n responseWidth: 1124,\n isRtl: true,\n mainTitle: appName,\n blurEffect: true,\n disableLinks: false\n });\n } catch (e) {\n console.log(e.message);\n }\n\n try {\n $(\".xzoom, .xzoom-gallery\").xzoom({\n tint: '#333',\n Xoffset: 15\n });\n } catch (e) {}\n\n $(window).on('load', function () {\n setTimeout(function () {\n $('#preloader').slideUp(700); // let max = 150 ;\n // for( const b of $(\".box\")) {\n // if ($(b).height() > max ){\n // max= $(b).height();\n // }\n // }\n // $('.box').height(max);\n // $(\"#favs .box\").removeAttr('style');\n }, 100);\n });\n setTimeout(function () {\n $('#preloader').slideUp(700);\n }, 100);\n setTimeout(function () {\n $('#preloader').slideUp(700);\n }, 10000);\n $(\"#toggle-side\").bind('click', function () {\n $('aside > div').slideToggle(300);\n });\n $('.owl1').owlCarousel({\n loop: true,\n margin: 0,\n responsiveClass: true,\n // autoplay: true,\n autoplayTimeout: 5000,\n autoplayHoverPause: true,\n item: 5,\n responsive: {\n 0: {\n nav: false,\n items: 2\n },\n 600: {\n items: 2,\n nav: false,\n loop: false\n },\n 1000: {\n items: 3,\n nav: false,\n loop: false\n },\n 1300: {\n items: 5,\n nav: false,\n loop: false\n }\n }\n });\n $('#owl2').owlCarousel({\n loop: true,\n margin: 0,\n responsiveClass: true,\n autoplay: true,\n autoplayTimeout: 5000,\n autoplayHoverPause: true,\n item: 3,\n responsive: {\n 0: {\n nav: false,\n items: 1\n },\n 600: {\n items: 2,\n nav: false,\n loop: false\n },\n 1000: {\n items: 3,\n nav: false,\n loop: false\n }\n }\n });\n $('#thumbs').owlCarousel({\n loop: false,\n margin: 4,\n responsiveClass: true,\n autoplay: true,\n autoplayTimeout: 5000,\n autoplayHoverPause: true,\n items: 4 // nav: true,\n\n });\n $('.owl-single-item').owlCarousel({\n loop: true,\n margin: 0,\n responsiveClass: true,\n autoplay: true,\n autoplayTimeout: 5000,\n autoplayHoverPause: true,\n items: 1 // nav: true,\n\n });\n $('#owlx1').owlCarousel({\n loop: true,\n margin: 15,\n responsiveClass: true,\n autoplay: true,\n autoplayTimeout: 5000,\n autoplayHoverPause: true,\n responsive: {\n 0: {\n nav: false,\n items: 1\n },\n 600: {\n items: 2,\n nav: false,\n loop: false\n },\n 1000: {\n items: 3,\n nav: false,\n loop: false\n },\n 1300: {\n items: 4,\n nav: false,\n loop: false\n }\n }\n });\n $('#owl3').owlCarousel({\n loop: false,\n margin: 0,\n responsiveClass: true,\n autoplay: true,\n autoplayTimeout: 5000,\n autoplayHoverPause: true,\n items: 1\n });\n $('.owl-sq').owlCarousel({\n loop: true,\n margin: 0,\n responsiveClass: true,\n autoplay: true,\n autoplayTimeout: 5000,\n responsive: {\n 0: {\n items: 2,\n nav: false\n },\n 600: {\n items: 2\n },\n 1000: {\n items: 3\n },\n 1300: {\n items: 6\n }\n }\n });\n $(\"#cp-deteail\").bind('click', function () {\n CopyToClipboard('tab-analyze');\n });\n\n var axiosError = function axiosError(err) {\n if (err.response.status == 401) {\n alertify.error('Authenticnation Error'); // window.location.href = '/#/login';\n } else if (err.response.status == 422) {\n // console.log(err.response.data.errors);\n for (var k in err.response.data.errors) {\n var er = err.response.data.errors[k];\n alertify.error(k + ' : ' + er[0]);\n }\n } else {\n alertify.error('Error' + err.response.status + ': ' + err.response.data.message);\n }\n };\n\n $(\"#filtering .btn\").bind('click', function () {\n $(\"#filtering .btn\").removeClass('active');\n $(this).addClass('active');\n var cls = $(this).data('cat');\n\n if (cls == 'all') {\n $(\"#da-thumbs .item\").slideDown(900);\n } else {\n $(\"#da-thumbs .item\").slideUp(600, function () {\n setTimeout(function () {\n $(\"#da-thumbs .item.\" + cls).slideDown(513);\n }, 100);\n });\n }\n });\n $(\".fav\").bind('click', function () {\n var url = $(\"#fav-toggle\").val() + '/' + $(this).data('id');\n var self = this;\n axios.get(url).then(function (e) {\n if (e.data.OK) {\n alertify.success(e.data.msg);\n\n if (e.data.liked) {\n $(self).addClass('liked');\n } else {\n $(self).removeClass('liked');\n }\n } else {\n alertify.error(e.data.msg);\n }\n });\n });\n $(\"#question-send\").bind('click', function () {\n var data = {};\n\n var _iterator = _createForOfIteratorHelper($(\"#question-form\").serializeArray()),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var d = _step.value;\n data[d.name] = d.value;\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n axios.post($(this).data('url'), data).then(function (e) {\n if (e.data.OK) {\n alertify.success(e.data.msg);\n $(\".comment-containerx\").text(e.data.msg);\n }\n })[\"catch\"](function (e) {\n axiosError(e);\n });\n });\n $(\".xsumbmiter\").submit(function () {\n $(this).attr('action', $(\"#smt\").val());\n });\n $(\".comment-reply\").click(function () {\n $('#reply').remove();\n var pid = $(this).data('id');\n $(\"#comment-form-body\").append(\"\"));\n $(\"#comment-message\").focus();\n });\n $(\".add-to-card\").click(function (e) {\n e.preventDefault();\n axios.get($(this).attr('href')).then(function (e) {\n $(\"#card-count\").text(e.data.data);\n window.alertify.message(e.data.msg);\n\n if (e.data.data > 0) {\n $(\"#card-info\").fadeIn(400);\n }\n });\n });\n $(\".add-to-card-q\").click(function (e) {\n e.preventDefault();\n axios.get($(this).attr('href') + '/' + $(\"#qn\").val() + '/' + $(\"#single-count\").val()).then(function (e) {\n $(\"#card-count\").text(e.data.data);\n window.alertify.message(e.data.msg);\n\n if (e.data.data > 0) {\n $(\"#card-info\").fadeIn(400);\n }\n });\n });\n $(\"#addon-wrapping\").bind('click', function () {\n var q = $(\"#searching\").val();\n window.location.href = $(\"#searching\").data('url') + '?q=' + q;\n return true;\n });\n $(\"#searching\").bind('keyup', function (e) {\n var q = $(this).val();\n\n if (e.key === 'Enter') {\n window.location.href = $(this).data('url') + '?q=' + q;\n return true;\n }\n\n if (q.length < 3) {\n return 0;\n }\n\n var offset = $(this).offset();\n offset.width = $(this).width() + 85 + 'px';\n offset.left -= 50;\n offset.top += 45;\n $(\"#search-list\").css(offset).slideDown(100);\n var text = '';\n var self = this;\n $(\"#search-list\").html(text + '
');\n axios.get($(this).data('ajax') + '?q=' + q).then(function (e) {\n if (!e.data.OK) {\n window.alertify.error(e.data.err);\n } else {\n text += '';\n $(\"#search-list\").html(text);\n }\n });\n });\n $(\".xzoom-thumbs a\").bind('click.light', function () {\n $(\"#lightbx\").attr('href', $(this).attr('href'));\n });\n\n try {\n if ($('#qnt').length != 0) {\n sizes = {};\n qnt = JSON.parse($('#qnt').val()); // console.log(qnt);\n\n var txt = '';\n\n var _iterator3 = _createForOfIteratorHelper(qnt),\n _step3;\n\n try {\n for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {\n var q = _step3.value;\n\n if (q.count > 0) {\n var t = JSON.parse(q.data);\n\n if (sizes[t.size] == undefined) {\n sizes[t.size] = [];\n txt += \"
\\n \").concat(t.size, \"\\n
 \");\n }\n\n t.id = q.id;\n sizes[t.size].push(t);\n }\n }\n } catch (err) {\n _iterator3.e(err);\n } finally {\n _iterator3.f();\n }\n\n $(\"#size-pick\").html(txt);\n setTimeout(function () {\n $(\"#size-pick .size:first-child\").click();\n }, 50);\n $(\"#size-pick .size\").bind('click.select', function () {\n $(\"#size-pick .size\").removeClass('active');\n var colorNames = {};\n\n try {\n colorNames = JSON.parse($(\"#colors\").val());\n } catch (_unused) {}\n\n $(this).addClass('active');\n var colors = sizes[$(this).data('id')];\n var txt = '';\n var cl = '';\n\n var _iterator4 = _createForOfIteratorHelper(colors),\n _step4;\n\n try {\n for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {\n var c = _step4.value;\n cl = colorNames[c.color]; // console.log(c.color,colorNames);\n\n txt += \"
\\n
\\n \").concat(cl, \"\\n
\");\n }\n } catch (err) {\n _iterator4.e(err);\n } finally {\n _iterator4.f();\n }\n\n $(\".color-pick\").html(txt);\n setTimeout(function () {\n $(\".color-pick .color:first-child\").click();\n }, 50);\n $(\".color-pick .color\").bind('click.sel', function () {\n $('.xzoom-thumbs a').eq($(this).data('image')).click();\n $(\".color-pick .color\").removeClass('active');\n $(this).addClass('active');\n $(\"#qn\").val($(this).data('id'));\n $(\"#last-pricex\").text(commafy($(this).data('price')));\n $(\"#counting\").text($(this).data('count'));\n $(\".product-count\").attr('max', $(this).data('count')).val(1);\n });\n });\n }\n } catch (e) {// console.log('size err',e.message);\n } // prticale\n\n\n try {\n var setParticles = function setParticles(num) {\n for (var i = 0; i < num; i++) {\n var prt = document.createElement('div');\n prt.setAttribute('class', 'particles');\n prt.style.left = 100 * Math.random() + \"%\";\n prt.animate([{\n transform: 'translate(-200px, 0) scale(' + Math.random() * 10 + ')'\n }, {\n transform: 'translate(' + Math.random() * 500 + 'px, 112vh) scale(' + Math.random() * 2 + ')',\n background: '#ff00ff',\n boxShadow: '0 0 4px #ff00ff, 0 0 8px #ff00ff',\n opacity: Math.random() * 1.4\n }], {\n duration: Math.random() * 400 + 8000,\n delay: -i * 100,\n iterations: Infinity\n });\n prtcl.appendChild(prt);\n }\n };\n\n var prtcl = document.getElementById('particle');\n setParticles(100);\n } catch (e) {// console.log(e.message);\n }\n\n setTimeout(function () {\n $(\".x-side-menu #searching\").attr('id', 'sub-search');\n $(\"#sub-search\").keyup(function () {\n var q = $(this).val();\n\n if (q.length < 3) {\n $(\".x-side-menu .list-group-item\").remove();\n return false;\n }\n\n axios.get($(this).data('ajax') + '?q=' + q).then(function (e) {\n if (!e.data.OK) {\n window.alertify.error(e.data.err);\n } else {\n $(\".x-side-menu .list-group-item\").remove(); // text += '';\n\n $(\".x-side-menu\").append(text);\n }\n });\n });\n }, 1000);\n $(\"#card table th\").each(function (k, e) {\n $(\"#card td:nth-child(\" + (k + 1) + \")\").attr('data-before', $(e).text().trim());\n });\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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SUFwQ1EsQ0FBVjtFQXNDQXpELENBQUMsQ0FBQyxnQkFBRCxDQUFELENBQW9Cc0gsSUFBcEIsQ0FBeUIsVUFBVW5GLENBQVYsRUFBWTVCLENBQVosRUFBZTtJQUNwQ1AsQ0FBQyxDQUFDLHlCQUF1Qm1DLENBQUMsR0FBQyxDQUF6QixJQUE0QixHQUE3QixDQUFELENBQW1Dd0IsSUFBbkMsQ0FBd0MsYUFBeEMsRUFBc0QzRCxDQUFDLENBQUNPLENBQUQsQ0FBRCxDQUFLa0QsSUFBTCxHQUFZOEQsSUFBWixFQUF0RDtFQUNILENBRkQ7QUFLSCxDQTNkSyxDQUFOIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL3RoZW1lL2pzL3RoZW1lLmpzPzBlODIiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gcmVxdWlyZSgnaGMtb2ZmY2FudmFzLW5hdi9kaXN0L2hjLW9mZmNhbnZhcy1uYXYnKTtcbi8vIGltcG9ydCB4TWVnYU1lbnUgZnJvbSAneC1tZWdhLW1lbnUvc3JjL3gtbWVnYS1tZW51JztcbmltcG9ydCB4bSBmcm9tICd4LW1lZ2EtbWVudS9kaXN0L3gtbWVnYS1tZW51Lm1pbic7XG5cbmxldCB4TWVnYU1lbnUgPSB3aW5kb3cueE1lZ2FNZW51ID0geG0ueE1lZ2FNZW51O1xuXG5mdW5jdGlvbiBDb3B5VG9DbGlwYm9hcmQoY29udGFpbmVyaWQpIHtcbiAgICBpZiAod2luZG93LmdldFNlbGVjdGlvbikge1xuICAgICAgICBpZiAod2luZG93LmdldFNlbGVjdGlvbigpLmVtcHR5KSB7IC8vIENocm9tZVxuICAgICAgICAgICAgd2luZG93LmdldFNlbGVjdGlvbigpLmVtcHR5KCk7XG4gICAgICAgIH0gZWxzZSBpZiAod2luZG93LmdldFNlbGVjdGlvbigpLnJlbW92ZUFsbFJhbmdlcykgeyAvLyBGaXJlZm94XG4gICAgICAgICAgICB3aW5kb3cuZ2V0U2VsZWN0aW9uKCkucmVtb3ZlQWxsUmFuZ2VzKCk7XG4gICAgICAgIH1cbiAgICB9IGVsc2UgaWYgKGRvY3VtZW50LnNlbGVjdGlvbikgeyAvLyBJRT9cbiAgICAgICAgZG9jdW1lbnQuc2VsZWN0aW9uLmVtcHR5KCk7XG4gICAgfVxuXG4gICAgaWYgKGRvY3VtZW50LnNlbGVjdGlvbikge1xuICAgICAgICB2YXIgcmFuZ2UgPSBkb2N1bWVudC5ib2R5LmNyZWF0ZVRleHRSYW5nZSgpO1xuICAgICAgICByYW5nZS5tb3ZlVG9FbGVtZW50VGV4dChkb2N1bWVudC5nZXRFbGVtZW50QnlJZChjb250YWluZXJpZCkpO1xuICAgICAgICByYW5nZS5zZWxlY3QoKS5jcmVhdGVUZXh0UmFuZ2UoKTtcbiAgICAgICAgZG9jdW1lbnQuZXhlY0NvbW1hbmQoXCJjb3B5XCIpO1xuICAgIH0gZWxzZSBpZiAod2luZG93LmdldFNlbGVjdGlvbikge1xuICAgICAgICB2YXIgcmFuZ2UgPSBkb2N1bWVudC5jcmVhdGVSYW5nZSgpO1xuICAgICAgICByYW5nZS5zZWxlY3ROb2RlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGNvbnRhaW5lcmlkKSk7XG4gICAgICAgIHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5hZGRSYW5nZShyYW5nZSk7XG4gICAgICAgIGRvY3VtZW50LmV4ZWNDb21tYW5kKFwiY29weVwiKTtcbiAgICB9XG5cbiAgICBhbGVydGlmeS5zdWNjZXNzKCfaqdm+24wg2LTYrycpO1xufVxuXG5mdW5jdGlvbiBjb21tYWZ5KG51bSkge1xuICAgIHZhciBzdHIgPSBudW0udG9TdHJpbmcoKS5zcGxpdCgnLicpO1xuICAgIGlmIChzdHJbMF0ubGVuZ3RoID49IDQpIHtcblxuICAgICAgICBzdHJbMF0gPSBzdHJbMF0ucmVwbGFjZSgvKFxcZCkoPz0oXFxkezN9KSskKS9nLCAnJDEsJyk7XG4gICAgfVxuICAgIGlmIChzdHJbMV0gJiYgc3RyWzFdLmxlbmd0aCA+PSA0KSB7XG5cbiAgICAgICAgc3RyWzFdID0gc3RyWzFdLnJlcGxhY2UoLyhcXGR7M30pL2csICckMSwnKTtcbiAgICB9XG4gICAgcmV0dXJuIHN0ci5qb2luKCcuJyk7XG59XG5cbmxldCBxbm4sIGltYWdlcywgc2l6ZXM7XG5cbmpRdWVyeShmdW5jdGlvbiAoJCkge1xuXG4gICAgdHJ5IHtcbiAgICAgICAgeE1lZ2FNZW51KCcjbWVnYS1tZW51Jywge1xuICAgICAgICAgICAgcmVzcG9uc2VXaWR0aDogMTEyNCxcbiAgICAgICAgICAgIGlzUnRsOiB0cnVlLFxuICAgICAgICAgICAgbWFpblRpdGxlOiBhcHBOYW1lLFxuICAgICAgICAgICAgYmx1ckVmZmVjdDogdHJ1ZSxcbiAgICAgICAgICAgIGRpc2FibGVMaW5rczogZmFsc2UsXG4gICAgICAgIH0pO1xuICAgIH0gY2F0Y2goZSkge1xuICAgICAgICBjb25zb2xlLmxvZyhlLm1lc3NhZ2UpO1xuICAgIH1cblxuXG4gICB0cnkge1xuICAgICAgICQoXCIueHpvb20sIC54em9vbS1nYWxsZXJ5XCIpLnh6b29tKHt0aW50OiAnIzMzMycsIFhvZmZzZXQ6IDE1fSk7XG4gICB9IGNhdGNoKGUpIHtcbiAgIH1cblxuXG4gICAgJCh3aW5kb3cpLm9uKCdsb2FkJywgZnVuY3Rpb24gKCkge1xuICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICQoJyNwcmVsb2FkZXInKS5zbGlkZVVwKDcwMCk7XG4gICAgICAgICAgICAvLyBsZXQgbWF4ID0gMTUwIDtcbiAgICAgICAgICAgIC8vIGZvciggY29uc3QgYiBvZiAkKFwiLmJveFwiKSkge1xuICAgICAgICAgICAgLy8gICAgIGlmICgkKGIpLmhlaWdodCgpID4gbWF4ICl7XG4gICAgICAgICAgICAvLyAgICAgICAgIG1heD0gJChiKS5oZWlnaHQoKTtcbiAgICAgICAgICAgIC8vICAgICB9XG4gICAgICAgICAgICAvLyB9XG4gICAgICAgICAgICAvLyAkKCcuYm94JykuaGVpZ2h0KG1heCk7XG4gICAgICAgICAgICAvLyAkKFwiI2ZhdnMgLmJveFwiKS5yZW1vdmVBdHRyKCdzdHlsZScpO1xuXG4gICAgICAgIH0sIDEwMCk7XG4gICAgfSk7XG4gICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICAgICQoJyNwcmVsb2FkZXInKS5zbGlkZVVwKDcwMCk7XG4gICAgfSwgMTAwKTtcblxuICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuICAgICAgICAkKCcjcHJlbG9hZGVyJykuc2xpZGVVcCg3MDApO1xuICAgIH0sIDEwMDAwKTtcbiAgICAkKFwiI3RvZ2dsZS1zaWRlXCIpLmJpbmQoJ2NsaWNrJywgZnVuY3Rpb24gKCkge1xuICAgICAgICAkKCdhc2lkZSA+IGRpdicpLnNsaWRlVG9nZ2xlKDMwMCk7XG4gICAgfSk7XG5cbiAgICAkKCcub3dsMScpLm93bENhcm91c2VsKHtcbiAgICAgICAgbG9vcDogdHJ1ZSxcbiAgICAgICAgbWFyZ2luOiAwLFxuICAgICAgICByZXNwb25zaXZlQ2xhc3M6IHRydWUsXG4gICAgICAgIC8vIGF1dG9wbGF5OiB0cnVlLFxuICAgICAgICBhdXRvcGxheVRpbWVvdXQ6IDUwMDAsXG4gICAgICAgIGF1dG9wbGF5SG92ZXJQYXVzZTogdHJ1ZSxcbiAgICAgICAgaXRlbTogNSxcbiAgICAgICAgcmVzcG9uc2l2ZToge1xuICAgICAgICAgICAgMDoge1xuICAgICAgICAgICAgICAgIG5hdjogZmFsc2UsXG4gICAgICAgICAgICAgICAgaXRlbXM6IDIsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgNjAwOiB7XG4gICAgICAgICAgICAgICAgaXRlbXM6IDIsXG4gICAgICAgICAgICAgICAgbmF2OiBmYWxzZSxcbiAgICAgICAgICAgICAgICBsb29wOiBmYWxzZVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIDEwMDA6IHtcbiAgICAgICAgICAgICAgICBpdGVtczogMyxcbiAgICAgICAgICAgICAgICBuYXY6IGZhbHNlLFxuICAgICAgICAgICAgICAgIGxvb3A6IGZhbHNlXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgMTMwMDoge1xuICAgICAgICAgICAgICAgIGl0ZW1zOiA1LFxuICAgICAgICAgICAgICAgIG5hdjogZmFsc2UsXG4gICAgICAgICAgICAgICAgbG9vcDogZmFsc2VcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0pO1xuICAgICQoJyNvd2wyJykub3dsQ2Fyb3VzZWwoe1xuICAgICAgICBsb29wOiB0cnVlLFxuICAgICAgICBtYXJnaW46IDAsXG4gICAgICAgIHJlc3BvbnNpdmVDbGFzczogdHJ1ZSxcbiAgICAgICAgYXV0b3BsYXk6IHRydWUsXG4gICAgICAgIGF1dG9wbGF5VGltZW91dDogNTAwMCxcbiAgICAgICAgYXV0b3BsYXlIb3ZlclBhdXNlOiB0cnVlLFxuICAgICAgICBpdGVtOiAzLFxuICAgICAgICByZXNwb25zaXZlOiB7XG4gICAgICAgICAgICAwOiB7XG4gICAgICAgICAgICAgICAgbmF2OiBmYWxzZSxcbiAgICAgICAgICAgICAgICBpdGVtczogMSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICA2MDA6IHtcbiAgICAgICAgICAgICAgICBpdGVtczogMixcbiAgICAgICAgICAgICAgICBuYXY6IGZhbHNlLFxuICAgICAgICAgICAgICAgIGxvb3A6IGZhbHNlXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgMTAwMDoge1xuICAgICAgICAgICAgICAgIGl0ZW1zOiAzLFxuICAgICAgICAgICAgICAgIG5hdjogZmFsc2UsXG4gICAgICAgICAgICAgICAgbG9vcDogZmFsc2VcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH1cbiAgICB9KTtcblxuICAgICQoJyN0aHVtYnMnKS5vd2xDYXJvdXNlbCh7XG4gICAgICAgIGxvb3A6IGZhbHNlLFxuICAgICAgICBtYXJnaW46IDQsXG4gICAgICAgIHJlc3BvbnNpdmVDbGFzczogdHJ1ZSxcbiAgICAgICAgYXV0b3BsYXk6IHRydWUsXG4gICAgICAgIGF1dG9wbGF5VGltZW91dDogNTAwMCxcbiAgICAgICAgYXV0b3BsYXlIb3ZlclBhdXNlOiB0cnVlLFxuICAgICAgICBpdGVtczogNCxcbiAgICAgICAgLy8gbmF2OiB0cnVlLFxuICAgIH0pO1xuICAgICQoJy5vd2wtc2luZ2xlLWl0ZW0nKS5vd2xDYXJvdXNlbCh7XG4gICAgICAgIGxvb3A6IHRydWUsXG4gICAgICAgIG1hcmdpbjogMCxcbiAgICAgICAgcmVzcG9uc2l2ZUNsYXNzOiB0cnVlLFxuICAgICAgICBhdXRvcGxheTogdHJ1ZSxcbiAgICAgICAgYXV0b3BsYXlUaW1lb3V0OiA1MDAwLFxuICAgICAgICBhdXRvcGxheUhvdmVyUGF1c2U6IHRydWUsXG4gICAgICAgIGl0ZW1zOiAxLFxuICAgICAgICAvLyBuYXY6IHRydWUsXG4gICAgfSk7XG5cbiAgICAkKCcjb3dseDEnKS5vd2xDYXJvdXNlbCh7XG4gICAgICAgIGxvb3A6IHRydWUsXG4gICAgICAgIG1hcmdpbjogMTUsXG4gICAgICAgIHJlc3BvbnNpdmVDbGFzczogdHJ1ZSxcbiAgICAgICAgYXV0b3BsYXk6IHRydWUsXG4gICAgICAgIGF1dG9wbGF5VGltZW91dDogNTAwMCxcbiAgICAgICAgYXV0b3BsYXlIb3ZlclBhdXNlOiB0cnVlLFxuICAgICAgICByZXNwb25zaXZlOiB7XG4gICAgICAgICAgICAwOiB7XG4gICAgICAgICAgICAgICAgbmF2OiBmYWxzZSxcbiAgICAgICAgICAgICAgICBpdGVtczogMSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICA2MDA6IHtcbiAgICAgICAgICAgICAgICBpdGVtczogMixcbiAgICAgICAgICAgICAgICBuYXY6IGZhbHNlLFxuICAgICAgICAgICAgICAgIGxvb3A6IGZhbHNlXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgMTAwMDoge1xuICAgICAgICAgICAgICAgIGl0ZW1zOiAzLFxuICAgICAgICAgICAgICAgIG5hdjogZmFsc2UsXG4gICAgICAgICAgICAgICAgbG9vcDogZmFsc2VcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAxMzAwOiB7XG4gICAgICAgICAgICAgICAgaXRlbXM6IDQsXG4gICAgICAgICAgICAgICAgbmF2OiBmYWxzZSxcbiAgICAgICAgICAgICAgICBsb29wOiBmYWxzZVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSk7XG4gICAgJCgnI293bDMnKS5vd2xDYXJvdXNlbCh7XG4gICAgICAgIGxvb3A6IGZhbHNlLFxuICAgICAgICBtYXJnaW46IDAsXG4gICAgICAgIHJlc3BvbnNpdmVDbGFzczogdHJ1ZSxcbiAgICAgICAgYXV0b3BsYXk6IHRydWUsXG4gICAgICAgIGF1dG9wbGF5VGltZW91dDogNTAwMCxcbiAgICAgICAgYXV0b3BsYXlIb3ZlclBhdXNlOiB0cnVlLFxuICAgICAgICBpdGVtczogMSxcbiAgICB9KTtcbiAgICAkKCcub3dsLXNxJykub3dsQ2Fyb3VzZWwoe1xuICAgICAgICBsb29wOiB0cnVlLFxuICAgICAgICBtYXJnaW46IDAsXG4gICAgICAgIHJlc3BvbnNpdmVDbGFzczogdHJ1ZSxcbiAgICAgICAgYXV0b3BsYXk6IHRydWUsXG4gICAgICAgIGF1dG9wbGF5VGltZW91dDogNTAwMCxcbiAgICAgICAgcmVzcG9uc2l2ZToge1xuICAgICAgICAgICAgMDoge1xuICAgICAgICAgICAgICAgIGl0ZW1zOiAyLFxuICAgICAgICAgICAgICAgIG5hdjogZmFsc2VcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICA2MDA6IHtcbiAgICAgICAgICAgICAgICBpdGVtczogMixcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAxMDAwOiB7XG4gICAgICAgICAgICAgICAgaXRlbXM6IDMsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgMTMwMDoge1xuICAgICAgICAgICAgICAgIGl0ZW1zOiA2LFxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSk7XG5cbiAgICAkKFwiI2NwLWRldGVhaWxcIikuYmluZCgnY2xpY2snLGZ1bmN0aW9uICgpIHtcbiAgICAgICAgQ29weVRvQ2xpcGJvYXJkKCd0YWItYW5hbHl6ZScpO1xuICAgIH0pO1xuICAgIHZhciBheGlvc0Vycm9yID0gZnVuY3Rpb24gKGVycikge1xuICAgICAgICBpZiAoZXJyLnJlc3BvbnNlLnN0YXR1cyA9PSA0MDEpIHtcbiAgICAgICAgICAgIGFsZXJ0aWZ5LmVycm9yKCdBdXRoZW50aWNuYXRpb24gRXJyb3InKTtcbiAgICAgICAgICAgIC8vIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gJy8jL2xvZ2luJztcbiAgICAgICAgfSBlbHNlIGlmIChlcnIucmVzcG9uc2Uuc3RhdHVzID09IDQyMikge1xuICAgICAgICAgICAgLy8gY29uc29sZS5sb2coZXJyLnJlc3BvbnNlLmRhdGEuZXJyb3JzKTtcbiAgICAgICAgICAgIGZvciAoY29uc3QgayBpbiBlcnIucmVzcG9uc2UuZGF0YS5lcnJvcnMpIHtcbiAgICAgICAgICAgICAgICBsZXQgZXIgPSBlcnIucmVzcG9uc2UuZGF0YS5lcnJvcnNba107XG4gICAgICAgICAgICAgICAgYWxlcnRpZnkuZXJyb3IoayArICcgOiAnICsgZXJbMF0pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBhbGVydGlmeS5lcnJvcignRXJyb3InICsgZXJyLnJlc3BvbnNlLnN0YXR1cyArICc6ICcgKyBlcnIucmVzcG9uc2UuZGF0YS5tZXNzYWdlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICQoXCIjZmlsdGVyaW5nIC5idG5cIikuYmluZCgnY2xpY2snLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICQoXCIjZmlsdGVyaW5nIC5idG5cIikucmVtb3ZlQ2xhc3MoJ2FjdGl2ZScpO1xuICAgICAgICAkKHRoaXMpLmFkZENsYXNzKCdhY3RpdmUnKTtcbiAgICAgICAgbGV0IGNscyA9ICQodGhpcykuZGF0YSgnY2F0Jyk7XG4gICAgICAgIGlmIChjbHMgPT0gJ2FsbCcpIHtcbiAgICAgICAgICAgICQoXCIjZGEtdGh1bWJzIC5pdGVtXCIpLnNsaWRlRG93big5MDApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgJChcIiNkYS10aHVtYnMgLml0ZW1cIikuc2xpZGVVcCg2MDAsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgJChcIiNkYS10aHVtYnMgLml0ZW0uXCIgKyBjbHMpLnNsaWRlRG93big1MTMpO1xuICAgICAgICAgICAgICAgIH0sIDEwMCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH0pO1xuXG4gICAgJChcIi5mYXZcIikuYmluZCgnY2xpY2snLGZ1bmN0aW9uICgpIHtcbiAgICAgIGxldCB1cmwgPSAkKFwiI2Zhdi10b2dnbGVcIikudmFsKCkrJy8nKyQodGhpcykuZGF0YSgnaWQnKTtcbiAgICAgIGxldCBzZWxmID0gdGhpcztcbiAgICAgIGF4aW9zLmdldCh1cmwpLnRoZW4oZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgaWYgKGUuZGF0YS5PSyl7XG4gICAgICAgICAgICBhbGVydGlmeS5zdWNjZXNzKGUuZGF0YS5tc2cpO1xuICAgICAgICAgICAgaWYgKGUuZGF0YS5saWtlZCl7XG4gICAgICAgICAgICAgICAgJChzZWxmKS5hZGRDbGFzcygnbGlrZWQnKTtcbiAgICAgICAgICAgIH1lbHNle1xuICAgICAgICAgICAgICAgICQoc2VsZikucmVtb3ZlQ2xhc3MoJ2xpa2VkJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1lbHNle1xuICAgICAgICAgICAgYWxlcnRpZnkuZXJyb3IoZS5kYXRhLm1zZyk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgJChcIiNxdWVzdGlvbi1zZW5kXCIpLmJpbmQoJ2NsaWNrJywgZnVuY3Rpb24gKCkge1xuICAgICAgICBsZXQgZGF0YSA9IHt9O1xuICAgICAgICBmb3IgKGNvbnN0IGQgb2YgJChcIiNxdWVzdGlvbi1mb3JtXCIpLnNlcmlhbGl6ZUFycmF5KCkpIHtcbiAgICAgICAgICAgIGRhdGFbZC5uYW1lXSA9IGQudmFsdWU7XG4gICAgICAgIH1cblxuICAgICAgICBheGlvcy5wb3N0KCQodGhpcykuZGF0YSgndXJsJyksIGRhdGEpLnRoZW4oZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgICAgIGlmIChlLmRhdGEuT0spIHtcbiAgICAgICAgICAgICAgICBhbGVydGlmeS5zdWNjZXNzKGUuZGF0YS5tc2cpO1xuICAgICAgICAgICAgICAgICQoXCIuY29tbWVudC1jb250YWluZXJ4XCIpLnRleHQoZS5kYXRhLm1zZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uIChlKSB7XG4gICAgICAgICAgICBheGlvc0Vycm9yKGUpO1xuICAgICAgICB9KTtcbiAgICB9KTtcblxuICAgICQoXCIueHN1bWJtaXRlclwiKS5zdWJtaXQoZnVuY3Rpb24gKCkge1xuICAgICAgICAkKHRoaXMpLmF0dHIoJ2FjdGlvbicsICQoXCIjc210XCIpLnZhbCgpKTtcbiAgICB9KTtcbiAgICAkKFwiLmNvbW1lbnQtcmVwbHlcIikuY2xpY2soZnVuY3Rpb24gKCkge1xuICAgICAgICAkKCcjcmVwbHknKS5yZW1vdmUoKTtcbiAgICAgICAgdmFyIHBpZCA9ICQodGhpcykuZGF0YSgnaWQnKTtcbiAgICAgICAgJChcIiNjb21tZW50LWZvcm0tYm9keVwiKS5hcHBlbmQoXCI8aW5wdXQgdHlwZT1cXFwiaGlkZGVuXFxcIiBpZD1cXFwicmVwbHlcXFwiIG5hbWU9XFxcInBhcmVudFxcXCIgdmFsdWU9XFxcIlwiLmNvbmNhdChwaWQsIFwiXFxcIiAvPlwiKSk7XG4gICAgICAgICQoXCIjY29tbWVudC1tZXNzYWdlXCIpLmZvY3VzKCk7XG4gICAgfSk7XG5cbiAgICAkKFwiLmFkZC10by1jYXJkXCIpLmNsaWNrKGZ1bmN0aW9uIChlKSB7XG4gICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgYXhpb3MuZ2V0KCQodGhpcykuYXR0cignaHJlZicpKS50aGVuKGZ1bmN0aW9uIChlKSB7XG4gICAgICAgICAgICAkKFwiI2NhcmQtY291bnRcIikudGV4dChlLmRhdGEuZGF0YSk7XG4gICAgICAgICAgICB3aW5kb3cuYWxlcnRpZnkubWVzc2FnZShlLmRhdGEubXNnKTtcbiAgICAgICAgICAgIGlmIChlLmRhdGEuZGF0YSA+IDApIHtcbiAgICAgICAgICAgICAgICAkKFwiI2NhcmQtaW5mb1wiKS5mYWRlSW4oNDAwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfSk7XG4gICAgJChcIi5hZGQtdG8tY2FyZC1xXCIpLmNsaWNrKGZ1bmN0aW9uIChlKSB7XG4gICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgYXhpb3MuZ2V0KCQodGhpcykuYXR0cignaHJlZicpICsgJy8nICsgJChcIiNxblwiKS52YWwoKSsnLycrJChcIiNzaW5nbGUtY291bnRcIikudmFsKCkpLnRoZW4oZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgICAgICQoXCIjY2FyZC1jb3VudFwiKS50ZXh0KGUuZGF0YS5kYXRhKTtcbiAgICAgICAgICAgIHdpbmRvdy5hbGVydGlmeS5tZXNzYWdlKGUuZGF0YS5tc2cpO1xuICAgICAgICAgICAgaWYgKGUuZGF0YS5kYXRhID4gMCkge1xuICAgICAgICAgICAgICAgICQoXCIjY2FyZC1pbmZvXCIpLmZhZGVJbig0MDApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9KTtcblxuICAgICQoXCIjYWRkb24td3JhcHBpbmdcIikuYmluZCgnY2xpY2snLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGxldCBxID0gJChcIiNzZWFyY2hpbmdcIikudmFsKCk7XG4gICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gJChcIiNzZWFyY2hpbmdcIikuZGF0YSgndXJsJykgKyAnP3E9JyArIHE7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH0pO1xuICAgICQoXCIjc2VhcmNoaW5nXCIpLmJpbmQoJ2tleXVwJywgZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgbGV0IHEgPSAkKHRoaXMpLnZhbCgpO1xuICAgICAgICBpZiAoZS5rZXkgPT09ICdFbnRlcicpIHtcbiAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gJCh0aGlzKS5kYXRhKCd1cmwnKSArICc/cT0nICsgcTtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChxLmxlbmd0aCA8IDMpIHtcbiAgICAgICAgICAgIHJldHVybiAwO1xuICAgICAgICB9XG4gICAgICAgIGxldCBvZmZzZXQgPSAkKHRoaXMpLm9mZnNldCgpO1xuICAgICAgICBvZmZzZXQud2lkdGggPSAoJCh0aGlzKS53aWR0aCgpICsgODUpICsgJ3B4JztcbiAgICAgICAgb2Zmc2V0LmxlZnQgLT0gNTA7XG4gICAgICAgIG9mZnNldC50b3AgKz0gNDU7XG4gICAgICAgICQoXCIjc2VhcmNoLWxpc3RcIikuY3NzKG9mZnNldCkuc2xpZGVEb3duKDEwMCk7XG4gICAgICAgIGxldCB0ZXh0ID0gJyc7XG4gICAgICAgIGxldCBzZWxmID0gdGhpcztcbiAgICAgICAgJChcIiNzZWFyY2gtbGlzdFwiKS5odG1sKHRleHQgKyAnPGRpdiBjbGFzcz1cInAtNCB0ZXh0LWNlbnRlclwiPjxpIGNsYXNzPVwiZmEgZmEtc3BpbiBmYS1zcGlubmVyXCI+PC9pPjwvZGl2PicpO1xuICAgICAgICBheGlvcy5nZXQoJCh0aGlzKS5kYXRhKCdhamF4JykgKyAnP3E9JyArIHEpLnRoZW4oZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgICAgIGlmICghZS5kYXRhLk9LKSB7XG4gICAgICAgICAgICAgICAgd2luZG93LmFsZXJ0aWZ5LmVycm9yKGUuZGF0YS5lcnIpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0ZXh0ICs9ICc8dWwgY2xhc3M9XCJsaXN0LWdyb3VwXCI+JztcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IHAgb2YgZS5kYXRhLmRhdGEpIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dCArPSAnPGxpIGNsYXNzPVwibGlzdC1ncm91cC1pdGVtXCI+JztcbiAgICAgICAgICAgICAgICAgICAgdGV4dCArPSBgPGEgaHJlZj1cIiR7cC5saW5rfVwiPmA7XG4gICAgICAgICAgICAgICAgICAgIHRleHQgKz0gYDxpbWcgc3JjPVwiJHtwLmltYWdlfVwiIGFsdD1cInByb2R1Y3QgaW1hZ2VcIj5gXG4gICAgICAgICAgICAgICAgICAgIHRleHQgKz0gYDxoND4ke3AubmFtZX08L2g0PmBcbiAgICAgICAgICAgICAgICAgICAgdGV4dCArPSBgPGg1PiR7cC5wcmljZX08L2g1PmBcbiAgICAgICAgICAgICAgICAgICAgdGV4dCArPSAnPC9hPic7XG4gICAgICAgICAgICAgICAgICAgIHRleHQgKz0gJzwvbGk+JztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGV4dCArPSAnPGxpIGNsYXNzPVwibGlzdC1ncm91cC1pdGVtXCI+JztcbiAgICAgICAgICAgICAgICB0ZXh0ICs9ICc8YSBocmVmPVwiJyArICQoc2VsZikuZGF0YSgndXJsJykgKyAnP3E9JyArIHEgKyAnXCI+JztcbiAgICAgICAgICAgICAgICB0ZXh0ICs9ICfYrNiz2KrYrNmIINmF2YjYp9ix2K8g2KjbjNi02KrYsSA6JztcbiAgICAgICAgICAgICAgICB0ZXh0ICs9IHE7XG4gICAgICAgICAgICAgICAgdGV4dCArPSAnPC9hPic7XG4gICAgICAgICAgICAgICAgdGV4dCArPSAnPC9saT4nO1xuICAgICAgICAgICAgICAgIHRleHQgKz0gJzwvdWw+JztcbiAgICAgICAgICAgICAgICAkKFwiI3NlYXJjaC1saXN0XCIpLmh0bWwodGV4dCk7XG5cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfSk7XG4gICAgJChcIi54em9vbS10aHVtYnMgYVwiKS5iaW5kKCdjbGljay5saWdodCcsZnVuY3Rpb24gKCkge1xuICAgICAgJChcIiNsaWdodGJ4XCIpLmF0dHIoJ2hyZWYnLCQodGhpcykuYXR0cignaHJlZicpKTtcbiAgICB9KTtcbiAgICB0cnkge1xuICAgICAgICBpZiAoJCgnI3FudCcpLmxlbmd0aCAhPSAwKSB7XG4gICAgICAgICAgICBzaXplcyA9IHt9O1xuICAgICAgICAgICAgcW50ID0gSlNPTi5wYXJzZSgkKCcjcW50JykudmFsKCkpO1xuICAgICAgICAgICAgLy8gY29uc29sZS5sb2cocW50KTtcbiAgICAgICAgICAgIGxldCB0eHQgPSAnJztcbiAgICAgICAgICAgIGZvciggY29uc3QgcSBvZiBxbnQpIHtcbiAgICAgICAgICAgICAgICBpZiAocS5jb3VudCA+IDApe1xuICAgICAgICAgICAgICAgICAgICBsZXQgdCA9IEpTT04ucGFyc2UocS5kYXRhKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHNpemVzW3Quc2l6ZV0gPT0gdW5kZWZpbmVkKXtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNpemVzW3Quc2l6ZV09W107XG4gICAgICAgICAgICAgICAgICAgICAgICB0eHQgKz0gYDxkaXYgZGF0YS1pZD1cIiR7dC5zaXplfVwiIGNsYXNzPVwiYmFkZ2UgYmctc2Vjb25kYXJ5IHNpemVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHt0LnNpemV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PiAmbmJzcDtgO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHQuaWQgPSBxLmlkO1xuICAgICAgICAgICAgICAgICAgICBzaXplc1t0LnNpemVdLnB1c2godCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJChcIiNzaXplLXBpY2tcIikuaHRtbCh0eHQpO1xuICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgJChcIiNzaXplLXBpY2sgLnNpemU6Zmlyc3QtY2hpbGRcIikuY2xpY2soKTtcbiAgICAgICAgICAgIH0sNTApO1xuICAgICAgICAgICAgJChcIiNzaXplLXBpY2sgLnNpemVcIikuYmluZCgnY2xpY2suc2VsZWN0JyxmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgJChcIiNzaXplLXBpY2sgLnNpemVcIikucmVtb3ZlQ2xhc3MoJ2FjdGl2ZScpO1xuICAgICAgICAgICAgICAgIGxldCBjb2xvck5hbWVzICA9IHt9O1xuICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yTmFtZXMgPSBKU09OLnBhcnNlKCQoXCIjY29sb3JzXCIpLnZhbCgpKTtcbiAgICAgICAgICAgICAgICB9IGNhdGNoIHtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAkKHRoaXMpLmFkZENsYXNzKCdhY3RpdmUnKTtcbiAgICAgICAgICAgICAgICBsZXQgY29sb3JzID0gc2l6ZXNbJCh0aGlzKS5kYXRhKCdpZCcpXTtcbiAgICAgICAgICAgICAgICBsZXQgdHh0ID0gJyc7XG4gICAgICAgICAgICAgICAgbGV0IGNsID0gJyc7XG4gICAgICAgICAgICAgICAgZm9yKCBjb25zdCBjIG9mIGNvbG9ycykge1xuICAgICAgICAgICAgICAgICAgICBjbCA9IGNvbG9yTmFtZXNbYy5jb2xvcl07XG4gICAgICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKGMuY29sb3IsY29sb3JOYW1lcyk7XG4gICAgICAgICAgICAgICAgICAgIHR4dCArPSBgPGRpdiBkYXRhLWlkPVwiJHtjLmlkfVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtcHJpY2U9XCIke2MucHJpY2V9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1jb3VudD1cIiR7Yy5jb3VudH1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1pbWFnZT1cIiR7Yy5pbWFnZX1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjb2xvclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNsXCIgc3R5bGU9XCJiYWNrZ3JvdW5kOiAke2MuY29sb3J9XCIgPjwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+JHtjbH08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5gO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICQoXCIuY29sb3ItcGlja1wiKS5odG1sKHR4dCk7XG4gICAgICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgICQoXCIuY29sb3ItcGljayAuY29sb3I6Zmlyc3QtY2hpbGRcIikuY2xpY2soKTtcbiAgICAgICAgICAgICAgICB9LDUwKTtcbiAgICAgICAgICAgICAgICAkKFwiLmNvbG9yLXBpY2sgLmNvbG9yXCIpLmJpbmQoJ2NsaWNrLnNlbCcsZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICAkKCcueHpvb20tdGh1bWJzIGEnKS5lcSgkKHRoaXMpLmRhdGEoJ2ltYWdlJykpLmNsaWNrKCk7XG4gICAgICAgICAgICAgICAgICAgICQoXCIuY29sb3ItcGljayAuY29sb3JcIikucmVtb3ZlQ2xhc3MoJ2FjdGl2ZScpO1xuICAgICAgICAgICAgICAgICAgICAkKHRoaXMpLmFkZENsYXNzKCdhY3RpdmUnKTtcbiAgICAgICAgICAgICAgICAgICAgJChcIiNxblwiKS52YWwoJCh0aGlzKS5kYXRhKCdpZCcpKTtcbiAgICAgICAgICAgICAgICAgICAgJChcIiNsYXN0LXByaWNleFwiKS50ZXh0KGNvbW1hZnkoJCh0aGlzKS5kYXRhKCdwcmljZScpKSk7XG4gICAgICAgICAgICAgICAgICAgICQoXCIjY291bnRpbmdcIikudGV4dCgkKHRoaXMpLmRhdGEoJ2NvdW50JykpO1xuICAgICAgICAgICAgICAgICAgICAkKFwiLnByb2R1Y3QtY291bnRcIikuYXR0cignbWF4JywkKHRoaXMpLmRhdGEoJ2NvdW50JykpLnZhbCgxKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgIH1cbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIC8vIGNvbnNvbGUubG9nKCdzaXplIGVycicsZS5tZXNzYWdlKTtcbiAgICB9XG5cblxuLy8gcHJ0aWNhbGVcbiAgICB0cnkge1xuICAgICAgICBsZXQgcHJ0Y2wgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncGFydGljbGUnKVxuXG4gICAgICAgIGZ1bmN0aW9uIHNldFBhcnRpY2xlcyhudW0pIHtcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbnVtOyBpKyspIHtcbiAgICAgICAgICAgICAgICBsZXQgcHJ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2JylcbiAgICAgICAgICAgICAgICBwcnQuc2V0QXR0cmlidXRlKCdjbGFzcycsICdwYXJ0aWNsZXMnKVxuICAgICAgICAgICAgICAgIHBydC5zdHlsZS5sZWZ0ID0gMTAwICogTWF0aC5yYW5kb20oKSArIFwiJVwiXG4gICAgICAgICAgICAgICAgcHJ0LmFuaW1hdGUoW3tcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiAndHJhbnNsYXRlKC0yMDBweCwgMCkgc2NhbGUoJyArIE1hdGgucmFuZG9tKCkgKiAxMCArICcpJ1xuICAgICAgICAgICAgICAgIH0sIHtcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiAndHJhbnNsYXRlKCcgKyBNYXRoLnJhbmRvbSgpICogNTAwICsgJ3B4LCAxMTJ2aCkgc2NhbGUoJyArIE1hdGgucmFuZG9tKCkgKiAyICsgJyknLFxuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAnI2ZmMDBmZicsXG4gICAgICAgICAgICAgICAgICAgIGJveFNoYWRvdzogJzAgMCA0cHggI2ZmMDBmZiwgMCAwIDhweCAjZmYwMGZmJyxcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogTWF0aC5yYW5kb20oKSAqIDEuNFxuICAgICAgICAgICAgICAgIH1dLCB7XG4gICAgICAgICAgICAgICAgICAgIGR1cmF0aW9uOiBNYXRoLnJhbmRvbSgpICogNDAwICsgODAwMCxcbiAgICAgICAgICAgICAgICAgICAgZGVsYXk6IC1pICogMTAwLFxuICAgICAgICAgICAgICAgICAgICBpdGVyYXRpb25zOiBJbmZpbml0eVxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgcHJ0Y2wuYXBwZW5kQ2hpbGQocHJ0KVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgc2V0UGFydGljbGVzKDEwMClcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIC8vIGNvbnNvbGUubG9nKGUubWVzc2FnZSk7XG4gICAgfVxuXG4gICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICAgICQoXCIueC1zaWRlLW1lbnUgI3NlYXJjaGluZ1wiKS5hdHRyKCdpZCcsJ3N1Yi1zZWFyY2gnKTtcbiAgICAgICAgJChcIiNzdWItc2VhcmNoXCIpLmtleXVwKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIGxldCBxID0gJCh0aGlzKS52YWwoKTtcbiAgICAgICAgICAgIGlmICAocS5sZW5ndGggPCAzKXtcbiAgICAgICAgICAgICAgICAkKFwiLngtc2lkZS1tZW51IC5saXN0LWdyb3VwLWl0ZW1cIikucmVtb3ZlKCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYXhpb3MuZ2V0KCQodGhpcykuZGF0YSgnYWpheCcpICsgJz9xPScgKyBxKS50aGVuKGZ1bmN0aW9uIChlKSB7XG4gICAgICAgICAgICAgICAgaWYgKCFlLmRhdGEuT0spIHtcbiAgICAgICAgICAgICAgICAgICAgd2luZG93LmFsZXJ0aWZ5LmVycm9yKGUuZGF0YS5lcnIpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICQoXCIueC1zaWRlLW1lbnUgLmxpc3QtZ3JvdXAtaXRlbVwiKS5yZW1vdmUoKTtcbiAgICAgICAgICAgICAgICAgICAgLy8gdGV4dCArPSAnPHVsIGNsYXNzPVwibGlzdC1ncm91cFwiPic7XG4gICAgICAgICAgICAgICAgICAgIGxldCB0ZXh0ID0gJyc7XG4gICAgICAgICAgICAgICAgICAgIGZvciAoY29uc3QgcCBvZiBlLmRhdGEuZGF0YSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGV4dCArPSAnPGxpIGNsYXNzPVwibGlzdC1ncm91cC1pdGVtXCI+JztcbiAgICAgICAgICAgICAgICAgICAgICAgIHRleHQgKz0gYDxhIGhyZWY9XCIke3AubGlua31cIj5gO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGV4dCArPSBgPGltZyBzcmM9XCIke3AuaW1hZ2V9XCIgYWx0PVwicHJvZHVjdCBpbWFnZVwiPmBcbiAgICAgICAgICAgICAgICAgICAgICAgIHRleHQgKz0gYDxzcGFuPiR7cC5uYW1lfTwvc3Bhbj4gPGhyPmBcbiAgICAgICAgICAgICAgICAgICAgICAgIHRleHQgKz0gYDxiPiR7cC5wcmljZX08L2I+YFxuICAgICAgICAgICAgICAgICAgICAgICAgdGV4dCArPSAnPC9hPic7XG4gICAgICAgICAgICAgICAgICAgICAgICB0ZXh0ICs9ICc8L2xpPic7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgdGV4dCArPSAnPGxpIGNsYXNzPVwibGlzdC1ncm91cC1pdGVtXCI+JztcbiAgICAgICAgICAgICAgICAgICAgdGV4dCArPSAnPGEgaHJlZj1cIicgKyAkKHNlbGYpLmRhdGEoJ3VybCcpICsgJz9xPScgKyBxICsgJ1wiPic7XG4gICAgICAgICAgICAgICAgICAgIHRleHQgKz0gJ9is2LPYqtis2Ygg2YXZiNin2LHYryDYqNuM2LTYqtixIDonO1xuICAgICAgICAgICAgICAgICAgICB0ZXh0ICs9IHE7XG4gICAgICAgICAgICAgICAgICAgIHRleHQgKz0gJzwvYT4nO1xuICAgICAgICAgICAgICAgICAgICB0ZXh0ICs9ICc8L2xpPic7XG4gICAgICAgICAgICAgICAgICAgIC8vIHRleHQgKz0gJzwvdWw+JztcbiAgICAgICAgICAgICAgICAgICAgJChcIi54LXNpZGUtbWVudVwiKS5hcHBlbmQodGV4dCk7XG5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfSwxMDAwKTtcblxuICAgICQoXCIjY2FyZCB0YWJsZSB0aFwiKS5lYWNoKGZ1bmN0aW9uIChrLGUpIHtcbiAgICAgICAgJChcIiNjYXJkIHRkOm50aC1jaGlsZChcIisoaysxKStcIilcIikuYXR0cignZGF0YS1iZWZvcmUnLCQoZSkudGV4dCgpLnRyaW0oKSk7XG4gICAgfSlcblxuXG59KTtcblxuXG4iXSwibmFtZXMiOlsieG0iLCJ4TWVnYU1lbnUiLCJ3aW5kb3ciLCJDb3B5VG9DbGlwYm9hcmQiLCJjb250YWluZXJpZCIsImdldFNlbGVjdGlvbiIsImVtcHR5IiwicmVtb3ZlQWxsUmFuZ2VzIiwiZG9jdW1lbnQiLCJzZWxlY3Rpb24iLCJyYW5nZSIsImJvZHkiLCJjcmVhdGVUZXh0UmFuZ2UiLCJtb3ZlVG9FbGVtZW50VGV4dCIsImdldEVsZW1lbnRCeUlkIiwic2VsZWN0IiwiZXhlY0NvbW1hbmQiLCJjcmVhdGVSYW5nZSIsInNlbGVjdE5vZGUiLCJhZGRSYW5nZSIsImFsZXJ0aWZ5Iiwic3VjY2VzcyIsImNvbW1hZnkiLCJudW0iLCJzdHIiLCJ0b1N0cmluZyIsInNwbGl0IiwibGVuZ3RoIiwicmVwbGFjZSIsImpvaW4iLCJxbm4iLCJpbWFnZXMiLCJzaXplcyIsImpRdWVyeSIsIiQiLCJyZXNwb25zZVdpZHRoIiwiaXNSdGwiLCJtYWluVGl0bGUiLCJhcHBOYW1lIiwiYmx1ckVmZmVjdCIsImRpc2FibGVMaW5rcyIsImUiLCJjb25zb2xlIiwibG9nIiwibWVzc2FnZSIsInh6b29tIiwidGludCIsIlhvZmZzZXQiLCJvbiIsInNldFRpbWVvdXQiLCJzbGlkZVVwIiwiYmluZCIsInNsaWRlVG9nZ2xlIiwib3dsQ2Fyb3VzZWwiLCJsb29wIiwibWFyZ2luIiwicmVzcG9uc2l2ZUNsYXNzIiwiYXV0b3BsYXlUaW1lb3V0IiwiYXV0b3BsYXlIb3ZlclBhdXNlIiwiaXRlbSIsInJlc3BvbnNpdmUiLCJuYXYiLCJpdGVtcyIsImF1dG9wbGF5IiwiYXhpb3NFcnJvciIsImVyciIsInJlc3BvbnNlIiwic3RhdHVzIiwiZXJyb3IiLCJrIiwiZGF0YSIsImVycm9ycyIsImVyIiwicmVtb3ZlQ2xhc3MiLCJhZGRDbGFzcyIsImNscyIsInNsaWRlRG93biIsInVybCIsInZhbCIsInNlbGYiLCJheGlvcyIsImdldCIsInRoZW4iLCJPSyIsIm1zZyIsImxpa2VkIiwic2VyaWFsaXplQXJyYXkiLCJkIiwibmFtZSIsInZhbHVlIiwicG9zdCIsInRleHQiLCJzdWJtaXQiLCJhdHRyIiwiY2xpY2siLCJyZW1vdmUiLCJwaWQiLCJhcHBlbmQiLCJjb25jYXQiLCJmb2N1cyIsInByZXZlbnREZWZhdWx0IiwiZmFkZUluIiwicSIsImxvY2F0aW9uIiwiaHJlZiIsImtleSIsIm9mZnNldCIsIndpZHRoIiwibGVmdCIsInRvcCIsImNzcyIsImh0bWwiLCJwIiwibGluayIsImltYWdlIiwicHJpY2UiLCJxbnQiLCJKU09OIiwicGFyc2UiLCJ0eHQiLCJjb3VudCIsInQiLCJzaXplIiwidW5kZWZpbmVkIiwiaWQiLCJwdXNoIiwiY29sb3JOYW1lcyIsImNvbG9ycyIsImNsIiwiYyIsImNvbG9yIiwiZXEiLCJzZXRQYXJ0aWNsZXMiLCJpIiwicHJ0IiwiY3JlYXRlRWxlbWVudCIsInNldEF0dHJpYnV0ZSIsInN0eWxlIiwiTWF0aCIsInJhbmRvbSIsImFuaW1hdGUiLCJ0cmFuc2Zvcm0iLCJiYWNrZ3JvdW5kIiwiYm94U2hhZG93Iiwib3BhY2l0eSIsImR1cmF0aW9uIiwiZGVsYXkiLCJpdGVyYXRpb25zIiwiSW5maW5pdHkiLCJwcnRjbCIsImFwcGVuZENoaWxkIiwia2V5dXAiLCJlYWNoIiwidHJpbSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./resources/theme/js/theme.js\n"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var x_mega_menu_dist_x_mega_menu_min__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! x-mega-menu/dist/x-mega-menu.min */ \"./node_modules/x-mega-menu/dist/x-mega-menu.min.js\");\n/* harmony import */ var x_mega_menu_dist_x_mega_menu_min__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(x_mega_menu_dist_x_mega_menu_min__WEBPACK_IMPORTED_MODULE_0__);\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it[\"return\"] != null) it[\"return\"](); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\n// require('hc-offcanvas-nav/dist/hc-offcanvas-nav');\n// import xMegaMenu from 'x-mega-menu/src/x-mega-menu';\n\nvar xMegaMenu = window.xMegaMenu = (x_mega_menu_dist_x_mega_menu_min__WEBPACK_IMPORTED_MODULE_0___default().xMegaMenu);\n\nfunction CopyToClipboard(containerid) {\n if (window.getSelection) {\n if (window.getSelection().empty) {\n // Chrome\n window.getSelection().empty();\n } else if (window.getSelection().removeAllRanges) {\n // Firefox\n window.getSelection().removeAllRanges();\n }\n } else if (document.selection) {\n // IE?\n document.selection.empty();\n }\n\n if (document.selection) {\n var range = document.body.createTextRange();\n range.moveToElementText(document.getElementById(containerid));\n range.select().createTextRange();\n document.execCommand(\"copy\");\n } else if (window.getSelection) {\n var range = document.createRange();\n range.selectNode(document.getElementById(containerid));\n window.getSelection().addRange(range);\n document.execCommand(\"copy\");\n }\n\n alertify.success('کپی شد');\n}\n\nfunction commafy(num) {\n var str = num.toString().split('.');\n\n if (str[0].length >= 4) {\n str[0] = str[0].replace(/(\\d)(?=(\\d{3})+$)/g, '$1,');\n }\n\n if (str[1] && str[1].length >= 4) {\n str[1] = str[1].replace(/(\\d{3})/g, '$1,');\n }\n\n return str.join('.');\n}\n\nvar qnn, images, sizes;\njQuery(function ($) {\n try {\n xMegaMenu('#mega-menu', {\n responseWidth: 1124,\n isRtl: true,\n mainTitle: appName,\n blurEffect: true,\n disableLinks: false\n });\n } catch (e) {\n console.log(e.message);\n }\n\n try {\n $(\".xzoom, .xzoom-gallery\").xzoom({\n tint: '#333',\n Xoffset: 15\n });\n } catch (e) {}\n\n $(window).on('load', function () {\n setTimeout(function () {\n $('#preloader').slideUp(700); // let max = 150 ;\n // for( const b of $(\".box\")) {\n // if ($(b).height() > max ){\n // max= $(b).height();\n // }\n // }\n // $('.box').height(max);\n // $(\"#favs .box\").removeAttr('style');\n }, 100);\n });\n setTimeout(function () {\n $('#preloader').slideUp(700);\n }, 100);\n setTimeout(function () {\n $('#preloader').slideUp(700);\n }, 10000);\n $(\"#toggle-side\").bind('click', function () {\n $('aside > div').slideToggle(300);\n });\n $('.owl1').owlCarousel({\n loop: true,\n margin: 0,\n responsiveClass: true,\n // autoplay: true,\n autoplayTimeout: 5000,\n autoplayHoverPause: true,\n item: 5,\n responsive: {\n 0: {\n nav: false,\n items: 2\n },\n 600: {\n items: 2,\n nav: false,\n loop: false\n },\n 1000: {\n items: 3,\n nav: false,\n loop: false\n },\n 1300: {\n items: 5,\n nav: false,\n loop: false\n }\n }\n });\n $('#owl2').owlCarousel({\n loop: true,\n margin: 0,\n responsiveClass: true,\n autoplay: true,\n autoplayTimeout: 5000,\n autoplayHoverPause: true,\n item: 3,\n responsive: {\n 0: {\n nav: false,\n items: 1\n },\n 600: {\n items: 2,\n nav: false,\n loop: false\n },\n 1000: {\n items: 3,\n nav: false,\n loop: false\n }\n }\n });\n $('#thumbs').owlCarousel({\n loop: false,\n margin: 4,\n responsiveClass: true,\n autoplay: true,\n autoplayTimeout: 5000,\n autoplayHoverPause: true,\n items: 4 // nav: true,\n\n });\n $('.owl-single-item').owlCarousel({\n loop: true,\n margin: 0,\n responsiveClass: true,\n autoplay: true,\n autoplayTimeout: 5000,\n autoplayHoverPause: true,\n items: 1 // nav: true,\n\n });\n $('#owlx1').owlCarousel({\n loop: true,\n margin: 15,\n responsiveClass: true,\n autoplay: true,\n autoplayTimeout: 5000,\n autoplayHoverPause: true,\n responsive: {\n 0: {\n nav: false,\n items: 1\n },\n 600: {\n items: 2,\n nav: false,\n loop: false\n },\n 1000: {\n items: 3,\n nav: false,\n loop: false\n },\n 1300: {\n items: 4,\n nav: false,\n loop: false\n }\n }\n });\n $('#owl3').owlCarousel({\n loop: false,\n margin: 0,\n responsiveClass: true,\n autoplay: true,\n autoplayTimeout: 5000,\n autoplayHoverPause: true,\n items: 1\n });\n $('.owl-sq').owlCarousel({\n loop: true,\n margin: 0,\n responsiveClass: true,\n autoplay: true,\n autoplayTimeout: 5000,\n responsive: {\n 0: {\n items: 2,\n nav: false\n },\n 600: {\n items: 2\n },\n 1000: {\n items: 3\n },\n 1300: {\n items: 6\n }\n }\n });\n $(\"#cp-deteail\").bind('click', function () {\n CopyToClipboard('tab-analyze');\n });\n\n var axiosError = function axiosError(err) {\n if (err.response.status == 401) {\n alertify.error('Authenticnation Error'); // window.location.href = '/#/login';\n } else if (err.response.status == 422) {\n // console.log(err.response.data.errors);\n for (var k in err.response.data.errors) {\n var er = err.response.data.errors[k];\n alertify.error(k + ' : ' + er[0]);\n }\n } else {\n alertify.error('Error' + err.response.status + ': ' + err.response.data.message);\n }\n };\n\n $(\"#filtering .btn\").bind('click', function () {\n $(\"#filtering .btn\").removeClass('active');\n $(this).addClass('active');\n var cls = $(this).data('cat');\n\n if (cls == 'all') {\n $(\"#da-thumbs .item\").slideDown(900);\n } else {\n $(\"#da-thumbs .item\").slideUp(600, function () {\n setTimeout(function () {\n $(\"#da-thumbs .item.\" + cls).slideDown(513);\n }, 100);\n });\n }\n });\n $(\".fav\").bind('click', function () {\n var url = $(\"#fav-toggle\").val() + '/' + $(this).data('id');\n var self = this;\n axios.get(url).then(function (e) {\n if (e.data.OK) {\n alertify.success(e.data.msg);\n\n if (e.data.liked) {\n $(self).addClass('liked');\n } else {\n $(self).removeClass('liked');\n }\n } else {\n alertify.error(e.data.msg);\n }\n });\n });\n $(\"#question-send\").bind('click', function () {\n var data = {};\n\n var _iterator = _createForOfIteratorHelper($(\"#question-form\").serializeArray()),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var d = _step.value;\n data[d.name] = d.value;\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n axios.post($(this).data('url'), data).then(function (e) {\n if (e.data.OK) {\n alertify.success(e.data.msg);\n $(\".comment-containerx\").text(e.data.msg);\n }\n })[\"catch\"](function (e) {\n axiosError(e);\n });\n });\n $(\".xsumbmiter\").submit(function () {\n $(this).attr('action', $(\"#smt\").val());\n });\n $(\".comment-reply\").click(function () {\n $('#reply').remove();\n var pid = $(this).data('id');\n $(\"#comment-form-body\").append(\"\"));\n $(\"#comment-message\").focus();\n });\n $(\".add-to-card\").click(function (e) {\n e.preventDefault();\n axios.get($(this).attr('href')).then(function (e) {\n $(\"#card-count\").text(e.data.data);\n window.alertify.message(e.data.msg);\n\n if (e.data.data > 0) {\n $(\"#card-info\").fadeIn(400);\n }\n });\n });\n $(\".add-to-card-q\").click(function (e) {\n e.preventDefault();\n axios.get($(this).attr('href') + '/' + $(\"#qn\").val() + '/' + $(\"#single-count\").val()).then(function (e) {\n $(\"#card-count\").text(e.data.data);\n window.alertify.message(e.data.msg);\n\n if (e.data.data > 0) {\n $(\"#card-info\").fadeIn(400);\n }\n });\n });\n $(\"#addon-wrapping\").bind('click', function () {\n var q = $(\"#searching\").val();\n window.location.href = $(\"#searching\").data('url') + '?q=' + q;\n return true;\n });\n $(\"#searching\").bind('keyup', function (e) {\n var q = $(this).val();\n\n if (e.key === 'Enter') {\n window.location.href = $(this).data('url') + '?q=' + q;\n return true;\n }\n\n if (q.length < 3) {\n return 0;\n }\n\n var offset = $(this).offset();\n offset.width = $(this).width() + 85 + 'px';\n offset.left -= 50;\n offset.top += 45;\n $(\"#search-list\").css(offset).slideDown(100);\n var text = '';\n var self = this;\n $(\"#search-list\").html(text + '
');\n axios.get($(this).data('ajax') + '?q=' + q).then(function (e) {\n if (!e.data.OK) {\n window.alertify.error(e.data.err);\n } else {\n text += '';\n $(\"#search-list\").html(text);\n }\n });\n });\n $(\".xzoom-thumbs a\").bind('click.light', function () {\n $(\"#lightbx\").attr('href', $(this).attr('href'));\n });\n\n try {\n if ($('#qnt').length != 0) {\n var qnt;\n var hasDiscount = false;\n\n if ($(\"#discount\").val() !== '') {\n hasDiscount = true;\n }\n\n sizes = {};\n qnt = JSON.parse($('#qnt').val()); // console.log(qnt);\n\n var txt = '';\n\n var _iterator3 = _createForOfIteratorHelper(qnt),\n _step3;\n\n try {\n for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {\n var q = _step3.value;\n\n if (q.count > 0) {\n var t = JSON.parse(q.data);\n\n if (sizes[t.size] == undefined) {\n sizes[t.size] = [];\n txt += \"
\\n \").concat(t.size, \"\\n
 \");\n }\n\n t.id = q.id;\n sizes[t.size].push(t);\n }\n }\n } catch (err) {\n _iterator3.e(err);\n } finally {\n _iterator3.f();\n }\n\n $(\"#size-pick\").html(txt);\n setTimeout(function () {\n $(\"#size-pick .size:first-child\").click();\n }, 50);\n $(\"#size-pick .size\").bind('click.select', function () {\n $(\"#size-pick .size\").removeClass('active');\n var colorNames = {};\n\n try {\n colorNames = JSON.parse($(\"#colors\").val());\n } catch (_unused) {}\n\n $(this).addClass('active');\n var colors = sizes[$(this).data('id')];\n var txt = '';\n var cl = '';\n\n var _iterator4 = _createForOfIteratorHelper(colors),\n _step4;\n\n try {\n for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {\n var c = _step4.value;\n var p = c.price;\n\n if (hasDiscount) {\n p = eval(c.price + $(\"#discount\").val());\n }\n\n txt += \"
\\n
\\n \").concat(cl, \"\\n
\");\n }\n } catch (err) {\n _iterator4.e(err);\n } finally {\n _iterator4.f();\n }\n\n $(\".color-pick\").html(txt);\n setTimeout(function () {\n $(\".color-pick .color:first-child\").click();\n }, 50);\n $(\".color-pick .color\").bind('click.sel', function () {\n $('.xzoom-thumbs a').eq($(this).data('image')).click();\n $(\".color-pick .color\").removeClass('active');\n $(this).addClass('active');\n $(\"#qn\").val($(this).data('id'));\n $(\"#last-pricex\").text(commafy($(this).data('price')));\n $(\"#real-price\").text(commafy($(this).data('real-price')));\n $(\"#counting\").text($(this).data('count'));\n $(\".product-count\").attr('max', $(this).data('count')).val(1);\n });\n });\n }\n } catch (e) {// console.log('size err',e.message);\n } // prticale\n\n\n try {\n var setParticles = function setParticles(num) {\n for (var i = 0; i < num; i++) {\n var prt = document.createElement('div');\n prt.setAttribute('class', 'particles');\n prt.style.left = 100 * Math.random() + \"%\";\n prt.animate([{\n transform: 'translate(-200px, 0) scale(' + Math.random() * 10 + ')'\n }, {\n transform: 'translate(' + Math.random() * 500 + 'px, 112vh) scale(' + Math.random() * 2 + ')',\n background: '#ff00ff',\n boxShadow: '0 0 4px #ff00ff, 0 0 8px #ff00ff',\n opacity: Math.random() * 1.4\n }], {\n duration: Math.random() * 400 + 8000,\n delay: -i * 100,\n iterations: Infinity\n });\n prtcl.appendChild(prt);\n }\n };\n\n var prtcl = document.getElementById('particle');\n setParticles(100);\n } catch (e) {// console.log(e.message);\n }\n\n setTimeout(function () {\n $(\".x-side-menu #searching\").attr('id', 'sub-search');\n $(\"#sub-search\").keyup(function () {\n var q = $(this).val();\n\n if (q.length < 3) {\n $(\".x-side-menu .list-group-item\").remove();\n return false;\n }\n\n axios.get($(this).data('ajax') + '?q=' + q).then(function (e) {\n if (!e.data.OK) {\n window.alertify.error(e.data.err);\n } else {\n $(\".x-side-menu .list-group-item\").remove(); // text += '';\n\n $(\".x-side-menu\").append(text);\n }\n });\n });\n }, 1000);\n $(\"#card table th\").each(function (k, e) {\n $(\"#card td:nth-child(\" + (k + 1) + \")\").attr('data-before', $(e).text().trim());\n });\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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QUksT0FBUjtZQUNIO1VBWkU7WUFBQTtVQUFBO1lBQUE7VUFBQTs7VUFhSEEsSUFBSSxJQUFJLDhCQUFSO1VBQ0FBLElBQUksSUFBSSxjQUFjekQsQ0FBQyxDQUFDNkMsSUFBRCxDQUFELENBQVFULElBQVIsQ0FBYSxLQUFiLENBQWQsR0FBb0MsS0FBcEMsR0FBNENnQyxDQUE1QyxHQUFnRCxJQUF4RDtVQUNBWCxJQUFJLElBQUkscUJBQVI7VUFDQUEsSUFBSSxJQUFJVyxDQUFSO1VBQ0FYLElBQUksSUFBSSxNQUFSO1VBQ0FBLElBQUksSUFBSSxPQUFSLENBbEJHLENBbUJIOztVQUNBekQsQ0FBQyxDQUFDLGNBQUQsQ0FBRCxDQUFrQitELE1BQWxCLENBQXlCTixJQUF6QjtRQUVIO01BQ0osQ0ExQkQ7SUEyQkgsQ0FqQ0Q7RUFrQ0gsQ0FwQ1MsRUFvQ1IsSUFwQ1EsQ0FBVjtFQXNDQXpELENBQUMsQ0FBQyxnQkFBRCxDQUFELENBQW9Cd0gsSUFBcEIsQ0FBeUIsVUFBVXJGLENBQVYsRUFBWTVCLENBQVosRUFBZTtJQUNwQ1AsQ0FBQyxDQUFDLHlCQUF1Qm1DLENBQUMsR0FBQyxDQUF6QixJQUE0QixHQUE3QixDQUFELENBQW1Dd0IsSUFBbkMsQ0FBd0MsYUFBeEMsRUFBc0QzRCxDQUFDLENBQUNPLENBQUQsQ0FBRCxDQUFLa0QsSUFBTCxHQUFZZ0UsSUFBWixFQUF0RDtFQUNILENBRkQ7QUFLSCxDQXRlSyxDQUFOIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vcmVzb3VyY2VzL3RoZW1lL2pzL3RoZW1lLmpzPzBlODIiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gcmVxdWlyZSgnaGMtb2ZmY2FudmFzLW5hdi9kaXN0L2hjLW9mZmNhbnZhcy1uYXYnKTtcbi8vIGltcG9ydCB4TWVnYU1lbnUgZnJvbSAneC1tZWdhLW1lbnUvc3JjL3gtbWVnYS1tZW51JztcbmltcG9ydCB4bSBmcm9tICd4LW1lZ2EtbWVudS9kaXN0L3gtbWVnYS1tZW51Lm1pbic7XG5cbmxldCB4TWVnYU1lbnUgPSB3aW5kb3cueE1lZ2FNZW51ID0geG0ueE1lZ2FNZW51O1xuXG5mdW5jdGlvbiBDb3B5VG9DbGlwYm9hcmQoY29udGFpbmVyaWQpIHtcbiAgICBpZiAod2luZG93LmdldFNlbGVjdGlvbikge1xuICAgICAgICBpZiAod2luZG93LmdldFNlbGVjdGlvbigpLmVtcHR5KSB7IC8vIENocm9tZVxuICAgICAgICAgICAgd2luZG93LmdldFNlbGVjdGlvbigpLmVtcHR5KCk7XG4gICAgICAgIH0gZWxzZSBpZiAod2luZG93LmdldFNlbGVjdGlvbigpLnJlbW92ZUFsbFJhbmdlcykgeyAvLyBGaXJlZm94XG4gICAgICAgICAgICB3aW5kb3cuZ2V0U2VsZWN0aW9uKCkucmVtb3ZlQWxsUmFuZ2VzKCk7XG4gICAgICAgIH1cbiAgICB9IGVsc2UgaWYgKGRvY3VtZW50LnNlbGVjdGlvbikgeyAvLyBJRT9cbiAgICAgICAgZG9jdW1lbnQuc2VsZWN0aW9uLmVtcHR5KCk7XG4gICAgfVxuXG4gICAgaWYgKGRvY3VtZW50LnNlbGVjdGlvbikge1xuICAgICAgICB2YXIgcmFuZ2UgPSBkb2N1bWVudC5ib2R5LmNyZWF0ZVRleHRSYW5nZSgpO1xuICAgICAgICByYW5nZS5tb3ZlVG9FbGVtZW50VGV4dChkb2N1bWVudC5nZXRFbGVtZW50QnlJZChjb250YWluZXJpZCkpO1xuICAgICAgICByYW5nZS5zZWxlY3QoKS5jcmVhdGVUZXh0UmFuZ2UoKTtcbiAgICAgICAgZG9jdW1lbnQuZXhlY0NvbW1hbmQoXCJjb3B5XCIpO1xuICAgIH0gZWxzZSBpZiAod2luZG93LmdldFNlbGVjdGlvbikge1xuICAgICAgICB2YXIgcmFuZ2UgPSBkb2N1bWVudC5jcmVhdGVSYW5nZSgpO1xuICAgICAgICByYW5nZS5zZWxlY3ROb2RlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGNvbnRhaW5lcmlkKSk7XG4gICAgICAgIHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5hZGRSYW5nZShyYW5nZSk7XG4gICAgICAgIGRvY3VtZW50LmV4ZWNDb21tYW5kKFwiY29weVwiKTtcbiAgICB9XG5cbiAgICBhbGVydGlmeS5zdWNjZXNzKCfaqdm+24wg2LTYrycpO1xufVxuXG5mdW5jdGlvbiBjb21tYWZ5KG51bSkge1xuICAgIHZhciBzdHIgPSBudW0udG9TdHJpbmcoKS5zcGxpdCgnLicpO1xuICAgIGlmIChzdHJbMF0ubGVuZ3RoID49IDQpIHtcblxuICAgICAgICBzdHJbMF0gPSBzdHJbMF0ucmVwbGFjZSgvKFxcZCkoPz0oXFxkezN9KSskKS9nLCAnJDEsJyk7XG4gICAgfVxuICAgIGlmIChzdHJbMV0gJiYgc3RyWzFdLmxlbmd0aCA+PSA0KSB7XG5cbiAgICAgICAgc3RyWzFdID0gc3RyWzFdLnJlcGxhY2UoLyhcXGR7M30pL2csICckMSwnKTtcbiAgICB9XG4gICAgcmV0dXJuIHN0ci5qb2luKCcuJyk7XG59XG5cbmxldCBxbm4sIGltYWdlcywgc2l6ZXM7XG5cbmpRdWVyeShmdW5jdGlvbiAoJCkge1xuXG4gICAgdHJ5IHtcbiAgICAgICAgeE1lZ2FNZW51KCcjbWVnYS1tZW51Jywge1xuICAgICAgICAgICAgcmVzcG9uc2VXaWR0aDogMTEyNCxcbiAgICAgICAgICAgIGlzUnRsOiB0cnVlLFxuICAgICAgICAgICAgbWFpblRpdGxlOiBhcHBOYW1lLFxuICAgICAgICAgICAgYmx1ckVmZmVjdDogdHJ1ZSxcbiAgICAgICAgICAgIGRpc2FibGVMaW5rczogZmFsc2UsXG4gICAgICAgIH0pO1xuICAgIH0gY2F0Y2goZSkge1xuICAgICAgICBjb25zb2xlLmxvZyhlLm1lc3NhZ2UpO1xuICAgIH1cblxuXG4gICB0cnkge1xuICAgICAgICQoXCIueHpvb20sIC54em9vbS1nYWxsZXJ5XCIpLnh6b29tKHt0aW50OiAnIzMzMycsIFhvZmZzZXQ6IDE1fSk7XG4gICB9IGNhdGNoKGUpIHtcbiAgIH1cblxuXG4gICAgJCh3aW5kb3cpLm9uKCdsb2FkJywgZnVuY3Rpb24gKCkge1xuICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICQoJyNwcmVsb2FkZXInKS5zbGlkZVVwKDcwMCk7XG4gICAgICAgICAgICAvLyBsZXQgbWF4ID0gMTUwIDtcbiAgICAgICAgICAgIC8vIGZvciggY29uc3QgYiBvZiAkKFwiLmJveFwiKSkge1xuICAgICAgICAgICAgLy8gICAgIGlmICgkKGIpLmhlaWdodCgpID4gbWF4ICl7XG4gICAgICAgICAgICAvLyAgICAgICAgIG1heD0gJChiKS5oZWlnaHQoKTtcbiAgICAgICAgICAgIC8vICAgICB9XG4gICAgICAgICAgICAvLyB9XG4gICAgICAgICAgICAvLyAkKCcuYm94JykuaGVpZ2h0KG1heCk7XG4gICAgICAgICAgICAvLyAkKFwiI2ZhdnMgLmJveFwiKS5yZW1vdmVBdHRyKCdzdHlsZScpO1xuXG4gICAgICAgIH0sIDEwMCk7XG4gICAgfSk7XG4gICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICAgICQoJyNwcmVsb2FkZXInKS5zbGlkZVVwKDcwMCk7XG4gICAgfSwgMTAwKTtcblxuICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuICAgICAgICAkKCcjcHJlbG9hZGVyJykuc2xpZGVVcCg3MDApO1xuICAgIH0sIDEwMDAwKTtcbiAgICAkKFwiI3RvZ2dsZS1zaWRlXCIpLmJpbmQoJ2NsaWNrJywgZnVuY3Rpb24gKCkge1xuICAgICAgICAkKCdhc2lkZSA+IGRpdicpLnNsaWRlVG9nZ2xlKDMwMCk7XG4gICAgfSk7XG5cbiAgICAkKCcub3dsMScpLm93bENhcm91c2VsKHtcbiAgICAgICAgbG9vcDogdHJ1ZSxcbiAgICAgICAgbWFyZ2luOiAwLFxuICAgICAgICByZXNwb25zaXZlQ2xhc3M6IHRydWUsXG4gICAgICAgIC8vIGF1dG9wbGF5OiB0cnVlLFxuICAgICAgICBhdXRvcGxheVRpbWVvdXQ6IDUwMDAsXG4gICAgICAgIGF1dG9wbGF5SG92ZXJQYXVzZTogdHJ1ZSxcbiAgICAgICAgaXRlbTogNSxcbiAgICAgICAgcmVzcG9uc2l2ZToge1xuICAgICAgICAgICAgMDoge1xuICAgICAgICAgICAgICAgIG5hdjogZmFsc2UsXG4gICAgICAgICAgICAgICAgaXRlbXM6IDIsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgNjAwOiB7XG4gICAgICAgICAgICAgICAgaXRlbXM6IDIsXG4gICAgICAgICAgICAgICAgbmF2OiBmYWxzZSxcbiAgICAgICAgICAgICAgICBsb29wOiBmYWxzZVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIDEwMDA6IHtcbiAgICAgICAgICAgICAgICBpdGVtczogMyxcbiAgICAgICAgICAgICAgICBuYXY6IGZhbHNlLFxuICAgICAgICAgICAgICAgIGxvb3A6IGZhbHNlXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgMTMwMDoge1xuICAgICAgICAgICAgICAgIGl0ZW1zOiA1LFxuICAgICAgICAgICAgICAgIG5hdjogZmFsc2UsXG4gICAgICAgICAgICAgICAgbG9vcDogZmFsc2VcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0pO1xuICAgICQoJyNvd2wyJykub3dsQ2Fyb3VzZWwoe1xuICAgICAgICBsb29wOiB0cnVlLFxuICAgICAgICBtYXJnaW46IDAsXG4gICAgICAgIHJlc3BvbnNpdmVDbGFzczogdHJ1ZSxcbiAgICAgICAgYXV0b3BsYXk6IHRydWUsXG4gICAgICAgIGF1dG9wbGF5VGltZW91dDogNTAwMCxcbiAgICAgICAgYXV0b3BsYXlIb3ZlclBhdXNlOiB0cnVlLFxuICAgICAgICBpdGVtOiAzLFxuICAgICAgICByZXNwb25zaXZlOiB7XG4gICAgICAgICAgICAwOiB7XG4gICAgICAgICAgICAgICAgbmF2OiBmYWxzZSxcbiAgICAgICAgICAgICAgICBpdGVtczogMSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICA2MDA6IHtcbiAgICAgICAgICAgICAgICBpdGVtczogMixcbiAgICAgICAgICAgICAgICBuYXY6IGZhbHNlLFxuICAgICAgICAgICAgICAgIGxvb3A6IGZhbHNlXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgMTAwMDoge1xuICAgICAgICAgICAgICAgIGl0ZW1zOiAzLFxuICAgICAgICAgICAgICAgIG5hdjogZmFsc2UsXG4gICAgICAgICAgICAgICAgbG9vcDogZmFsc2VcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH1cbiAgICB9KTtcblxuICAgICQoJyN0aHVtYnMnKS5vd2xDYXJvdXNlbCh7XG4gICAgICAgIGxvb3A6IGZhbHNlLFxuICAgICAgICBtYXJnaW46IDQsXG4gICAgICAgIHJlc3BvbnNpdmVDbGFzczogdHJ1ZSxcbiAgICAgICAgYXV0b3BsYXk6IHRydWUsXG4gICAgICAgIGF1dG9wbGF5VGltZW91dDogNTAwMCxcbiAgICAgICAgYXV0b3BsYXlIb3ZlclBhdXNlOiB0cnVlLFxuICAgICAgICBpdGVtczogNCxcbiAgICAgICAgLy8gbmF2OiB0cnVlLFxuICAgIH0pO1xuICAgICQoJy5vd2wtc2luZ2xlLWl0ZW0nKS5vd2xDYXJvdXNlbCh7XG4gICAgICAgIGxvb3A6IHRydWUsXG4gICAgICAgIG1hcmdpbjogMCxcbiAgICAgICAgcmVzcG9uc2l2ZUNsYXNzOiB0cnVlLFxuICAgICAgICBhdXRvcGxheTogdHJ1ZSxcbiAgICAgICAgYXV0b3BsYXlUaW1lb3V0OiA1MDAwLFxuICAgICAgICBhdXRvcGxheUhvdmVyUGF1c2U6IHRydWUsXG4gICAgICAgIGl0ZW1zOiAxLFxuICAgICAgICAvLyBuYXY6IHRydWUsXG4gICAgfSk7XG5cbiAgICAkKCcjb3dseDEnKS5vd2xDYXJvdXNlbCh7XG4gICAgICAgIGxvb3A6IHRydWUsXG4gICAgICAgIG1hcmdpbjogMTUsXG4gICAgICAgIHJlc3BvbnNpdmVDbGFzczogdHJ1ZSxcbiAgICAgICAgYXV0b3BsYXk6IHRydWUsXG4gICAgICAgIGF1dG9wbGF5VGltZW91dDogNTAwMCxcbiAgICAgICAgYXV0b3BsYXlIb3ZlclBhdXNlOiB0cnVlLFxuICAgICAgICByZXNwb25zaXZlOiB7XG4gICAgICAgICAgICAwOiB7XG4gICAgICAgICAgICAgICAgbmF2OiBmYWxzZSxcbiAgICAgICAgICAgICAgICBpdGVtczogMSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICA2MDA6IHtcbiAgICAgICAgICAgICAgICBpdGVtczogMixcbiAgICAgICAgICAgICAgICBuYXY6IGZhbHNlLFxuICAgICAgICAgICAgICAgIGxvb3A6IGZhbHNlXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgMTAwMDoge1xuICAgICAgICAgICAgICAgIGl0ZW1zOiAzLFxuICAgICAgICAgICAgICAgIG5hdjogZmFsc2UsXG4gICAgICAgICAgICAgICAgbG9vcDogZmFsc2VcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAxMzAwOiB7XG4gICAgICAgICAgICAgICAgaXRlbXM6IDQsXG4gICAgICAgICAgICAgICAgbmF2OiBmYWxzZSxcbiAgICAgICAgICAgICAgICBsb29wOiBmYWxzZVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSk7XG4gICAgJCgnI293bDMnKS5vd2xDYXJvdXNlbCh7XG4gICAgICAgIGxvb3A6IGZhbHNlLFxuICAgICAgICBtYXJnaW46IDAsXG4gICAgICAgIHJlc3BvbnNpdmVDbGFzczogdHJ1ZSxcbiAgICAgICAgYXV0b3BsYXk6IHRydWUsXG4gICAgICAgIGF1dG9wbGF5VGltZW91dDogNTAwMCxcbiAgICAgICAgYXV0b3BsYXlIb3ZlclBhdXNlOiB0cnVlLFxuICAgICAgICBpdGVtczogMSxcbiAgICB9KTtcbiAgICAkKCcub3dsLXNxJykub3dsQ2Fyb3VzZWwoe1xuICAgICAgICBsb29wOiB0cnVlLFxuICAgICAgICBtYXJnaW46IDAsXG4gICAgICAgIHJlc3BvbnNpdmVDbGFzczogdHJ1ZSxcbiAgICAgICAgYXV0b3BsYXk6IHRydWUsXG4gICAgICAgIGF1dG9wbGF5VGltZW91dDogNTAwMCxcbiAgICAgICAgcmVzcG9uc2l2ZToge1xuICAgICAgICAgICAgMDoge1xuICAgICAgICAgICAgICAgIGl0ZW1zOiAyLFxuICAgICAgICAgICAgICAgIG5hdjogZmFsc2VcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICA2MDA6IHtcbiAgICAgICAgICAgICAgICBpdGVtczogMixcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAxMDAwOiB7XG4gICAgICAgICAgICAgICAgaXRlbXM6IDMsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgMTMwMDoge1xuICAgICAgICAgICAgICAgIGl0ZW1zOiA2LFxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSk7XG5cbiAgICAkKFwiI2NwLWRldGVhaWxcIikuYmluZCgnY2xpY2snLGZ1bmN0aW9uICgpIHtcbiAgICAgICAgQ29weVRvQ2xpcGJvYXJkKCd0YWItYW5hbHl6ZScpO1xuICAgIH0pO1xuICAgIHZhciBheGlvc0Vycm9yID0gZnVuY3Rpb24gKGVycikge1xuICAgICAgICBpZiAoZXJyLnJlc3BvbnNlLnN0YXR1cyA9PSA0MDEpIHtcbiAgICAgICAgICAgIGFsZXJ0aWZ5LmVycm9yKCdBdXRoZW50aWNuYXRpb24gRXJyb3InKTtcbiAgICAgICAgICAgIC8vIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gJy8jL2xvZ2luJztcbiAgICAgICAgfSBlbHNlIGlmIChlcnIucmVzcG9uc2Uuc3RhdHVzID09IDQyMikge1xuICAgICAgICAgICAgLy8gY29uc29sZS5sb2coZXJyLnJlc3BvbnNlLmRhdGEuZXJyb3JzKTtcbiAgICAgICAgICAgIGZvciAoY29uc3QgayBpbiBlcnIucmVzcG9uc2UuZGF0YS5lcnJvcnMpIHtcbiAgICAgICAgICAgICAgICBsZXQgZXIgPSBlcnIucmVzcG9uc2UuZGF0YS5lcnJvcnNba107XG4gICAgICAgICAgICAgICAgYWxlcnRpZnkuZXJyb3IoayArICcgOiAnICsgZXJbMF0pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBhbGVydGlmeS5lcnJvcignRXJyb3InICsgZXJyLnJlc3BvbnNlLnN0YXR1cyArICc6ICcgKyBlcnIucmVzcG9uc2UuZGF0YS5tZXNzYWdlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICQoXCIjZmlsdGVyaW5nIC5idG5cIikuYmluZCgnY2xpY2snLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICQoXCIjZmlsdGVyaW5nIC5idG5cIikucmVtb3ZlQ2xhc3MoJ2FjdGl2ZScpO1xuICAgICAgICAkKHRoaXMpLmFkZENsYXNzKCdhY3RpdmUnKTtcbiAgICAgICAgbGV0IGNscyA9ICQodGhpcykuZGF0YSgnY2F0Jyk7XG4gICAgICAgIGlmIChjbHMgPT0gJ2FsbCcpIHtcbiAgICAgICAgICAgICQoXCIjZGEtdGh1bWJzIC5pdGVtXCIpLnNsaWRlRG93big5MDApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgJChcIiNkYS10aHVtYnMgLml0ZW1cIikuc2xpZGVVcCg2MDAsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgJChcIiNkYS10aHVtYnMgLml0ZW0uXCIgKyBjbHMpLnNsaWRlRG93big1MTMpO1xuICAgICAgICAgICAgICAgIH0sIDEwMCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH0pO1xuXG4gICAgJChcIi5mYXZcIikuYmluZCgnY2xpY2snLGZ1bmN0aW9uICgpIHtcbiAgICAgIGxldCB1cmwgPSAkKFwiI2Zhdi10b2dnbGVcIikudmFsKCkrJy8nKyQodGhpcykuZGF0YSgnaWQnKTtcbiAgICAgIGxldCBzZWxmID0gdGhpcztcbiAgICAgIGF4aW9zLmdldCh1cmwpLnRoZW4oZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgaWYgKGUuZGF0YS5PSyl7XG4gICAgICAgICAgICBhbGVydGlmeS5zdWNjZXNzKGUuZGF0YS5tc2cpO1xuICAgICAgICAgICAgaWYgKGUuZGF0YS5saWtlZCl7XG4gICAgICAgICAgICAgICAgJChzZWxmKS5hZGRDbGFzcygnbGlrZWQnKTtcbiAgICAgICAgICAgIH1lbHNle1xuICAgICAgICAgICAgICAgICQoc2VsZikucmVtb3ZlQ2xhc3MoJ2xpa2VkJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1lbHNle1xuICAgICAgICAgICAgYWxlcnRpZnkuZXJyb3IoZS5kYXRhLm1zZyk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgJChcIiNxdWVzdGlvbi1zZW5kXCIpLmJpbmQoJ2NsaWNrJywgZnVuY3Rpb24gKCkge1xuICAgICAgICBsZXQgZGF0YSA9IHt9O1xuICAgICAgICBmb3IgKGNvbnN0IGQgb2YgJChcIiNxdWVzdGlvbi1mb3JtXCIpLnNlcmlhbGl6ZUFycmF5KCkpIHtcbiAgICAgICAgICAgIGRhdGFbZC5uYW1lXSA9IGQudmFsdWU7XG4gICAgICAgIH1cblxuICAgICAgICBheGlvcy5wb3N0KCQodGhpcykuZGF0YSgndXJsJyksIGRhdGEpLnRoZW4oZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgICAgIGlmIChlLmRhdGEuT0spIHtcbiAgICAgICAgICAgICAgICBhbGVydGlmeS5zdWNjZXNzKGUuZGF0YS5tc2cpO1xuICAgICAgICAgICAgICAgICQoXCIuY29tbWVudC1jb250YWluZXJ4XCIpLnRleHQoZS5kYXRhLm1zZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uIChlKSB7XG4gICAgICAgICAgICBheGlvc0Vycm9yKGUpO1xuICAgICAgICB9KTtcbiAgICB9KTtcblxuICAgICQoXCIueHN1bWJtaXRlclwiKS5zdWJtaXQoZnVuY3Rpb24gKCkge1xuICAgICAgICAkKHRoaXMpLmF0dHIoJ2FjdGlvbicsICQoXCIjc210XCIpLnZhbCgpKTtcbiAgICB9KTtcbiAgICAkKFwiLmNvbW1lbnQtcmVwbHlcIikuY2xpY2soZnVuY3Rpb24gKCkge1xuICAgICAgICAkKCcjcmVwbHknKS5yZW1vdmUoKTtcbiAgICAgICAgdmFyIHBpZCA9ICQodGhpcykuZGF0YSgnaWQnKTtcbiAgICAgICAgJChcIiNjb21tZW50LWZvcm0tYm9keVwiKS5hcHBlbmQoXCI8aW5wdXQgdHlwZT1cXFwiaGlkZGVuXFxcIiBpZD1cXFwicmVwbHlcXFwiIG5hbWU9XFxcInBhcmVudFxcXCIgdmFsdWU9XFxcIlwiLmNvbmNhdChwaWQsIFwiXFxcIiAvPlwiKSk7XG4gICAgICAgICQoXCIjY29tbWVudC1tZXNzYWdlXCIpLmZvY3VzKCk7XG4gICAgfSk7XG5cbiAgICAkKFwiLmFkZC10by1jYXJkXCIpLmNsaWNrKGZ1bmN0aW9uIChlKSB7XG4gICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgYXhpb3MuZ2V0KCQodGhpcykuYXR0cignaHJlZicpKS50aGVuKGZ1bmN0aW9uIChlKSB7XG4gICAgICAgICAgICAkKFwiI2NhcmQtY291bnRcIikudGV4dChlLmRhdGEuZGF0YSk7XG4gICAgICAgICAgICB3aW5kb3cuYWxlcnRpZnkubWVzc2FnZShlLmRhdGEubXNnKTtcbiAgICAgICAgICAgIGlmIChlLmRhdGEuZGF0YSA+IDApIHtcbiAgICAgICAgICAgICAgICAkKFwiI2NhcmQtaW5mb1wiKS5mYWRlSW4oNDAwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfSk7XG4gICAgJChcIi5hZGQtdG8tY2FyZC1xXCIpLmNsaWNrKGZ1bmN0aW9uIChlKSB7XG4gICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgYXhpb3MuZ2V0KCQodGhpcykuYXR0cignaHJlZicpICsgJy8nICsgJChcIiNxblwiKS52YWwoKSsnLycrJChcIiNzaW5nbGUtY291bnRcIikudmFsKCkpLnRoZW4oZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgICAgICQoXCIjY2FyZC1jb3VudFwiKS50ZXh0KGUuZGF0YS5kYXRhKTtcbiAgICAgICAgICAgIHdpbmRvdy5hbGVydGlmeS5tZXNzYWdlKGUuZGF0YS5tc2cpO1xuICAgICAgICAgICAgaWYgKGUuZGF0YS5kYXRhID4gMCkge1xuICAgICAgICAgICAgICAgICQoXCIjY2FyZC1pbmZvXCIpLmZhZGVJbig0MDApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9KTtcblxuICAgICQoXCIjYWRkb24td3JhcHBpbmdcIikuYmluZCgnY2xpY2snLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGxldCBxID0gJChcIiNzZWFyY2hpbmdcIikudmFsKCk7XG4gICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gJChcIiNzZWFyY2hpbmdcIikuZGF0YSgndXJsJykgKyAnP3E9JyArIHE7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH0pO1xuICAgICQoXCIjc2VhcmNoaW5nXCIpLmJpbmQoJ2tleXVwJywgZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgbGV0IHEgPSAkKHRoaXMpLnZhbCgpO1xuICAgICAgICBpZiAoZS5rZXkgPT09ICdFbnRlcicpIHtcbiAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gJCh0aGlzKS5kYXRhKCd1cmwnKSArICc/cT0nICsgcTtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChxLmxlbmd0aCA8IDMpIHtcbiAgICAgICAgICAgIHJldHVybiAwO1xuICAgICAgICB9XG4gICAgICAgIGxldCBvZmZzZXQgPSAkKHRoaXMpLm9mZnNldCgpO1xuICAgICAgICBvZmZzZXQud2lkdGggPSAoJCh0aGlzKS53aWR0aCgpICsgODUpICsgJ3B4JztcbiAgICAgICAgb2Zmc2V0LmxlZnQgLT0gNTA7XG4gICAgICAgIG9mZnNldC50b3AgKz0gNDU7XG4gICAgICAgICQoXCIjc2VhcmNoLWxpc3RcIikuY3NzKG9mZnNldCkuc2xpZGVEb3duKDEwMCk7XG4gICAgICAgIGxldCB0ZXh0ID0gJyc7XG4gICAgICAgIGxldCBzZWxmID0gdGhpcztcbiAgICAgICAgJChcIiNzZWFyY2gtbGlzdFwiKS5odG1sKHRleHQgKyAnPGRpdiBjbGFzcz1cInAtNCB0ZXh0LWNlbnRlclwiPjxpIGNsYXNzPVwiZmEgZmEtc3BpbiBmYS1zcGlubmVyXCI+PC9pPjwvZGl2PicpO1xuICAgICAgICBheGlvcy5nZXQoJCh0aGlzKS5kYXRhKCdhamF4JykgKyAnP3E9JyArIHEpLnRoZW4oZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgICAgIGlmICghZS5kYXRhLk9LKSB7XG4gICAgICAgICAgICAgICAgd2luZG93LmFsZXJ0aWZ5LmVycm9yKGUuZGF0YS5lcnIpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0ZXh0ICs9ICc8dWwgY2xhc3M9XCJsaXN0LWdyb3VwXCI+JztcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IHAgb2YgZS5kYXRhLmRhdGEpIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dCArPSAnPGxpIGNsYXNzPVwibGlzdC1ncm91cC1pdGVtXCI+JztcbiAgICAgICAgICAgICAgICAgICAgdGV4dCArPSBgPGEgaHJlZj1cIiR7cC5saW5rfVwiPmA7XG4gICAgICAgICAgICAgICAgICAgIHRleHQgKz0gYDxpbWcgc3JjPVwiJHtwLmltYWdlfVwiIGFsdD1cInByb2R1Y3QgaW1hZ2VcIj5gXG4gICAgICAgICAgICAgICAgICAgIHRleHQgKz0gYDxoND4ke3AubmFtZX08L2g0PmBcbiAgICAgICAgICAgICAgICAgICAgdGV4dCArPSBgPGg1PiR7cC5wcmljZX08L2g1PmBcbiAgICAgICAgICAgICAgICAgICAgdGV4dCArPSAnPC9hPic7XG4gICAgICAgICAgICAgICAgICAgIHRleHQgKz0gJzwvbGk+JztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGV4dCArPSAnPGxpIGNsYXNzPVwibGlzdC1ncm91cC1pdGVtXCI+JztcbiAgICAgICAgICAgICAgICB0ZXh0ICs9ICc8YSBocmVmPVwiJyArICQoc2VsZikuZGF0YSgndXJsJykgKyAnP3E9JyArIHEgKyAnXCI+JztcbiAgICAgICAgICAgICAgICB0ZXh0ICs9ICfYrNiz2KrYrNmIINmF2YjYp9ix2K8g2KjbjNi02KrYsSA6JztcbiAgICAgICAgICAgICAgICB0ZXh0ICs9IHE7XG4gICAgICAgICAgICAgICAgdGV4dCArPSAnPC9hPic7XG4gICAgICAgICAgICAgICAgdGV4dCArPSAnPC9saT4nO1xuICAgICAgICAgICAgICAgIHRleHQgKz0gJzwvdWw+JztcbiAgICAgICAgICAgICAgICAkKFwiI3NlYXJjaC1saXN0XCIpLmh0bWwodGV4dCk7XG5cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfSk7XG4gICAgJChcIi54em9vbS10aHVtYnMgYVwiKS5iaW5kKCdjbGljay5saWdodCcsZnVuY3Rpb24gKCkge1xuICAgICAgJChcIiNsaWdodGJ4XCIpLmF0dHIoJ2hyZWYnLCQodGhpcykuYXR0cignaHJlZicpKTtcbiAgICB9KTtcbiAgICB0cnkge1xuICAgICAgICBpZiAoJCgnI3FudCcpLmxlbmd0aCAhPSAwKSB7XG4gICAgICAgICAgICBsZXQgcW50IDtcbiAgICAgICAgICAgIGxldCBoYXNEaXNjb3VudCAgPSBmYWxzZTtcbiAgICAgICAgICAgIGlmICgkKFwiI2Rpc2NvdW50XCIpLnZhbCgpICE9PSAnJyl7XG5cbiAgICAgICAgICAgICAgICBoYXNEaXNjb3VudCAgPSB0cnVlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBzaXplcyA9IHt9O1xuICAgICAgICAgICAgcW50ID0gSlNPTi5wYXJzZSgkKCcjcW50JykudmFsKCkpO1xuICAgICAgICAgICAgLy8gY29uc29sZS5sb2cocW50KTtcbiAgICAgICAgICAgIGxldCB0eHQgPSAnJztcbiAgICAgICAgICAgIGZvciggY29uc3QgcSBvZiBxbnQpIHtcbiAgICAgICAgICAgICAgICBpZiAocS5jb3VudCA+IDApe1xuICAgICAgICAgICAgICAgICAgICBsZXQgdCA9IEpTT04ucGFyc2UocS5kYXRhKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHNpemVzW3Quc2l6ZV0gPT0gdW5kZWZpbmVkKXtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNpemVzW3Quc2l6ZV09W107XG4gICAgICAgICAgICAgICAgICAgICAgICB0eHQgKz0gYDxkaXYgZGF0YS1pZD1cIiR7dC5zaXplfVwiIGNsYXNzPVwiYmFkZ2UgYmctc2Vjb25kYXJ5IHNpemVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHt0LnNpemV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PiAmbmJzcDtgO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHQuaWQgPSBxLmlkO1xuICAgICAgICAgICAgICAgICAgICBzaXplc1t0LnNpemVdLnB1c2godCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJChcIiNzaXplLXBpY2tcIikuaHRtbCh0eHQpO1xuICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgJChcIiNzaXplLXBpY2sgLnNpemU6Zmlyc3QtY2hpbGRcIikuY2xpY2soKTtcbiAgICAgICAgICAgIH0sNTApO1xuICAgICAgICAgICAgJChcIiNzaXplLXBpY2sgLnNpemVcIikuYmluZCgnY2xpY2suc2VsZWN0JyxmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgJChcIiNzaXplLXBpY2sgLnNpemVcIikucmVtb3ZlQ2xhc3MoJ2FjdGl2ZScpO1xuICAgICAgICAgICAgICAgIGxldCBjb2xvck5hbWVzICA9IHt9O1xuICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yTmFtZXMgPSBKU09OLnBhcnNlKCQoXCIjY29sb3JzXCIpLnZhbCgpKTtcbiAgICAgICAgICAgICAgICB9IGNhdGNoIHtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAkKHRoaXMpLmFkZENsYXNzKCdhY3RpdmUnKTtcbiAgICAgICAgICAgICAgICBsZXQgY29sb3JzID0gc2l6ZXNbJCh0aGlzKS5kYXRhKCdpZCcpXTtcbiAgICAgICAgICAgICAgICBsZXQgdHh0ID0gJyc7XG4gICAgICAgICAgICAgICAgbGV0IGNsID0gJyc7XG4gICAgICAgICAgICAgICAgZm9yKCBjb25zdCBjIG9mIGNvbG9ycykge1xuICAgICAgICAgICAgICAgICAgICBsZXQgIHAgID0gYy5wcmljZTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGhhc0Rpc2NvdW50KXtcbiAgICAgICAgICAgICAgICAgICAgICAgIHAgID0gZXZhbChjLnByaWNlICArICQoXCIjZGlzY291bnRcIikudmFsKCkpXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgdHh0ICs9IGA8ZGl2IGRhdGEtaWQ9XCIke2MuaWR9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1wcmljZT1cIiR7cH1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXJlYWwtcHJpY2U9XCIke2MucHJpY2V9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1jb3VudD1cIiR7Yy5jb3VudH1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1pbWFnZT1cIiR7Yy5pbWFnZX1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjb2xvclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNsXCIgc3R5bGU9XCJiYWNrZ3JvdW5kOiAke2MuY29sb3J9XCIgPjwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+JHtjbH08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5gO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICQoXCIuY29sb3ItcGlja1wiKS5odG1sKHR4dCk7XG4gICAgICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgICQoXCIuY29sb3ItcGljayAuY29sb3I6Zmlyc3QtY2hpbGRcIikuY2xpY2soKTtcbiAgICAgICAgICAgICAgICB9LDUwKTtcbiAgICAgICAgICAgICAgICAkKFwiLmNvbG9yLXBpY2sgLmNvbG9yXCIpLmJpbmQoJ2NsaWNrLnNlbCcsZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICAkKCcueHpvb20tdGh1bWJzIGEnKS5lcSgkKHRoaXMpLmRhdGEoJ2ltYWdlJykpLmNsaWNrKCk7XG4gICAgICAgICAgICAgICAgICAgICQoXCIuY29sb3ItcGljayAuY29sb3JcIikucmVtb3ZlQ2xhc3MoJ2FjdGl2ZScpO1xuICAgICAgICAgICAgICAgICAgICAkKHRoaXMpLmFkZENsYXNzKCdhY3RpdmUnKTtcbiAgICAgICAgICAgICAgICAgICAgJChcIiNxblwiKS52YWwoJCh0aGlzKS5kYXRhKCdpZCcpKTtcbiAgICAgICAgICAgICAgICAgICAgJChcIiNsYXN0LXByaWNleFwiKS50ZXh0KGNvbW1hZnkoJCh0aGlzKS5kYXRhKCdwcmljZScpKSk7XG4gICAgICAgICAgICAgICAgICAgICQoXCIjcmVhbC1wcmljZVwiKS50ZXh0KGNvbW1hZnkoJCh0aGlzKS5kYXRhKCdyZWFsLXByaWNlJykpKTtcbiAgICAgICAgICAgICAgICAgICAgJChcIiNjb3VudGluZ1wiKS50ZXh0KCQodGhpcykuZGF0YSgnY291bnQnKSk7XG4gICAgICAgICAgICAgICAgICAgICQoXCIucHJvZHVjdC1jb3VudFwiKS5hdHRyKCdtYXgnLCQodGhpcykuZGF0YSgnY291bnQnKSkudmFsKDEpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgfVxuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgLy8gY29uc29sZS5sb2coJ3NpemUgZXJyJyxlLm1lc3NhZ2UpO1xuICAgIH1cblxuXG4vLyBwcnRpY2FsZVxuICAgIHRyeSB7XG4gICAgICAgIGxldCBwcnRjbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwYXJ0aWNsZScpXG5cbiAgICAgICAgZnVuY3Rpb24gc2V0UGFydGljbGVzKG51bSkge1xuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBudW07IGkrKykge1xuICAgICAgICAgICAgICAgIGxldCBwcnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKVxuICAgICAgICAgICAgICAgIHBydC5zZXRBdHRyaWJ1dGUoJ2NsYXNzJywgJ3BhcnRpY2xlcycpXG4gICAgICAgICAgICAgICAgcHJ0LnN0eWxlLmxlZnQgPSAxMDAgKiBNYXRoLnJhbmRvbSgpICsgXCIlXCJcbiAgICAgICAgICAgICAgICBwcnQuYW5pbWF0ZShbe1xuICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06ICd0cmFuc2xhdGUoLTIwMHB4LCAwKSBzY2FsZSgnICsgTWF0aC5yYW5kb20oKSAqIDEwICsgJyknXG4gICAgICAgICAgICAgICAgfSwge1xuICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06ICd0cmFuc2xhdGUoJyArIE1hdGgucmFuZG9tKCkgKiA1MDAgKyAncHgsIDExMnZoKSBzY2FsZSgnICsgTWF0aC5yYW5kb20oKSAqIDIgKyAnKScsXG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICcjZmYwMGZmJyxcbiAgICAgICAgICAgICAgICAgICAgYm94U2hhZG93OiAnMCAwIDRweCAjZmYwMGZmLCAwIDAgOHB4ICNmZjAwZmYnLFxuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiBNYXRoLnJhbmRvbSgpICogMS40XG4gICAgICAgICAgICAgICAgfV0sIHtcbiAgICAgICAgICAgICAgICAgICAgZHVyYXRpb246IE1hdGgucmFuZG9tKCkgKiA0MDAgKyA4MDAwLFxuICAgICAgICAgICAgICAgICAgICBkZWxheTogLWkgKiAxMDAsXG4gICAgICAgICAgICAgICAgICAgIGl0ZXJhdGlvbnM6IEluZmluaXR5XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICBwcnRjbC5hcHBlbmRDaGlsZChwcnQpXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBzZXRQYXJ0aWNsZXMoMTAwKVxuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgLy8gY29uc29sZS5sb2coZS5tZXNzYWdlKTtcbiAgICB9XG5cbiAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgJChcIi54LXNpZGUtbWVudSAjc2VhcmNoaW5nXCIpLmF0dHIoJ2lkJywnc3ViLXNlYXJjaCcpO1xuICAgICAgICAkKFwiI3N1Yi1zZWFyY2hcIikua2V5dXAoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgbGV0IHEgPSAkKHRoaXMpLnZhbCgpO1xuICAgICAgICAgICAgaWYgIChxLmxlbmd0aCA8IDMpe1xuICAgICAgICAgICAgICAgICQoXCIueC1zaWRlLW1lbnUgLmxpc3QtZ3JvdXAtaXRlbVwiKS5yZW1vdmUoKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBheGlvcy5nZXQoJCh0aGlzKS5kYXRhKCdhamF4JykgKyAnP3E9JyArIHEpLnRoZW4oZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgICAgICAgICBpZiAoIWUuZGF0YS5PSykge1xuICAgICAgICAgICAgICAgICAgICB3aW5kb3cuYWxlcnRpZnkuZXJyb3IoZS5kYXRhLmVycik7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgJChcIi54LXNpZGUtbWVudSAubGlzdC1ncm91cC1pdGVtXCIpLnJlbW92ZSgpO1xuICAgICAgICAgICAgICAgICAgICAvLyB0ZXh0ICs9ICc8dWwgY2xhc3M9XCJsaXN0LWdyb3VwXCI+JztcbiAgICAgICAgICAgICAgICAgICAgbGV0IHRleHQgPSAnJztcbiAgICAgICAgICAgICAgICAgICAgZm9yIChjb25zdCBwIG9mIGUuZGF0YS5kYXRhKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0ZXh0ICs9ICc8bGkgY2xhc3M9XCJsaXN0LWdyb3VwLWl0ZW1cIj4nO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGV4dCArPSBgPGEgaHJlZj1cIiR7cC5saW5rfVwiPmA7XG4gICAgICAgICAgICAgICAgICAgICAgICB0ZXh0ICs9IGA8aW1nIHNyYz1cIiR7cC5pbWFnZX1cIiBhbHQ9XCJwcm9kdWN0IGltYWdlXCI+YFxuICAgICAgICAgICAgICAgICAgICAgICAgdGV4dCArPSBgPHNwYW4+JHtwLm5hbWV9PC9zcGFuPiA8aHI+YFxuICAgICAgICAgICAgICAgICAgICAgICAgdGV4dCArPSBgPGI+JHtwLnByaWNlfTwvYj5gXG4gICAgICAgICAgICAgICAgICAgICAgICB0ZXh0ICs9ICc8L2E+JztcbiAgICAgICAgICAgICAgICAgICAgICAgIHRleHQgKz0gJzwvbGk+JztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB0ZXh0ICs9ICc8bGkgY2xhc3M9XCJsaXN0LWdyb3VwLWl0ZW1cIj4nO1xuICAgICAgICAgICAgICAgICAgICB0ZXh0ICs9ICc8YSBocmVmPVwiJyArICQoc2VsZikuZGF0YSgndXJsJykgKyAnP3E9JyArIHEgKyAnXCI+JztcbiAgICAgICAgICAgICAgICAgICAgdGV4dCArPSAn2KzYs9iq2KzZiCDZhdmI2KfYsdivINio24zYtNiq2LEgOic7XG4gICAgICAgICAgICAgICAgICAgIHRleHQgKz0gcTtcbiAgICAgICAgICAgICAgICAgICAgdGV4dCArPSAnPC9hPic7XG4gICAgICAgICAgICAgICAgICAgIHRleHQgKz0gJzwvbGk+JztcbiAgICAgICAgICAgICAgICAgICAgLy8gdGV4dCArPSAnPC91bD4nO1xuICAgICAgICAgICAgICAgICAgICAkKFwiLngtc2lkZS1tZW51XCIpLmFwcGVuZCh0ZXh0KTtcblxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9LDEwMDApO1xuXG4gICAgJChcIiNjYXJkIHRhYmxlIHRoXCIpLmVhY2goZnVuY3Rpb24gKGssZSkge1xuICAgICAgICAkKFwiI2NhcmQgdGQ6bnRoLWNoaWxkKFwiKyhrKzEpK1wiKVwiKS5hdHRyKCdkYXRhLWJlZm9yZScsJChlKS50ZXh0KCkudHJpbSgpKTtcbiAgICB9KVxuXG5cbn0pO1xuXG5cbiJdLCJuYW1lcyI6WyJ4bSIsInhNZWdhTWVudSIsIndpbmRvdyIsIkNvcHlUb0NsaXBib2FyZCIsImNvbnRhaW5lcmlkIiwiZ2V0U2VsZWN0aW9uIiwiZW1wdHkiLCJyZW1vdmVBbGxSYW5nZXMiLCJkb2N1bWVudCIsInNlbGVjdGlvbiIsInJhbmdlIiwiYm9keSIsImNyZWF0ZVRleHRSYW5nZSIsIm1vdmVUb0VsZW1lbnRUZXh0IiwiZ2V0RWxlbWVudEJ5SWQiLCJzZWxlY3QiLCJleGVjQ29tbWFuZCIsImNyZWF0ZVJhbmdlIiwic2VsZWN0Tm9kZSIsImFkZFJhbmdlIiwiYWxlcnRpZnkiLCJzdWNjZXNzIiwiY29tbWFmeSIsIm51bSIsInN0ciIsInRvU3RyaW5nIiwic3BsaXQiLCJsZW5ndGgiLCJyZXBsYWNlIiwiam9pbiIsInFubiIsImltYWdlcyIsInNpemVzIiwialF1ZXJ5IiwiJCIsInJlc3BvbnNlV2lkdGgiLCJpc1J0bCIsIm1haW5UaXRsZSIsImFwcE5hbWUiLCJibHVyRWZmZWN0IiwiZGlzYWJsZUxpbmtzIiwiZSIsImNvbnNvbGUiLCJsb2ciLCJtZXNzYWdlIiwieHpvb20iLCJ0aW50IiwiWG9mZnNldCIsIm9uIiwic2V0VGltZW91dCIsInNsaWRlVXAiLCJiaW5kIiwic2xpZGVUb2dnbGUiLCJvd2xDYXJvdXNlbCIsImxvb3AiLCJtYXJnaW4iLCJyZXNwb25zaXZlQ2xhc3MiLCJhdXRvcGxheVRpbWVvdXQiLCJhdXRvcGxheUhvdmVyUGF1c2UiLCJpdGVtIiwicmVzcG9uc2l2ZSIsIm5hdiIsIml0ZW1zIiwiYXV0b3BsYXkiLCJheGlvc0Vycm9yIiwiZXJyIiwicmVzcG9uc2UiLCJzdGF0dXMiLCJlcnJvciIsImsiLCJkYXRhIiwiZXJyb3JzIiwiZXIiLCJyZW1vdmVDbGFzcyIsImFkZENsYXNzIiwiY2xzIiwic2xpZGVEb3duIiwidXJsIiwidmFsIiwic2VsZiIsImF4aW9zIiwiZ2V0IiwidGhlbiIsIk9LIiwibXNnIiwibGlrZWQiLCJzZXJpYWxpemVBcnJheSIsImQiLCJuYW1lIiwidmFsdWUiLCJwb3N0IiwidGV4dCIsInN1Ym1pdCIsImF0dHIiLCJjbGljayIsInJlbW92ZSIsInBpZCIsImFwcGVuZCIsImNvbmNhdCIsImZvY3VzIiwicHJldmVudERlZmF1bHQiLCJmYWRlSW4iLCJxIiwibG9jYXRpb24iLCJocmVmIiwia2V5Iiwib2Zmc2V0Iiwid2lkdGgiLCJsZWZ0IiwidG9wIiwiY3NzIiwiaHRtbCIsInAiLCJsaW5rIiwiaW1hZ2UiLCJwcmljZSIsInFudCIsImhhc0Rpc2NvdW50IiwiSlNPTiIsInBhcnNlIiwidHh0IiwiY291bnQiLCJ0Iiwic2l6ZSIsInVuZGVmaW5lZCIsImlkIiwicHVzaCIsImNvbG9yTmFtZXMiLCJjb2xvcnMiLCJjbCIsImMiLCJldmFsIiwiY29sb3IiLCJlcSIsInNldFBhcnRpY2xlcyIsImkiLCJwcnQiLCJjcmVhdGVFbGVtZW50Iiwic2V0QXR0cmlidXRlIiwic3R5bGUiLCJNYXRoIiwicmFuZG9tIiwiYW5pbWF0ZSIsInRyYW5zZm9ybSIsImJhY2tncm91bmQiLCJib3hTaGFkb3ciLCJvcGFjaXR5IiwiZHVyYXRpb24iLCJkZWxheSIsIml0ZXJhdGlvbnMiLCJJbmZpbml0eSIsInBydGNsIiwiYXBwZW5kQ2hpbGQiLCJrZXl1cCIsImVhY2giLCJ0cmltIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./resources/theme/js/theme.js\n"); /***/ }), diff --git a/resources/js/customer.js b/resources/js/customer.js index d88c17e..ddaac77 100755 --- a/resources/js/customer.js +++ b/resources/js/customer.js @@ -268,5 +268,28 @@ jQuery(function ($) { }); } }, 500); + + + + $(".next-step").bind('click', function () { + step++; + $(".step" + step).click(); + }); + + $(".progress-step .step").click(function () { + $(".progress-step .step").removeClass('done'); + $($(this).data('done')).addClass('done'); + $("#card-steps .active-step").slideUp(300).removeClass('active-step'); + $('#' + $(this).data('id')).slideDown(500).addClass('active-step'); + step = parseInt($(this).data('id').substr(4, 1)); + if ($(this).data('id') == 'step3') { + $(".last-step").slideDown(300); + $(".next-step").slideUp(300); + } else { + $(".last-step").slideUp(300); + $(".next-step").slideDown(300); + } + }); }); + diff --git a/resources/sass/card.scss b/resources/sass/card.scss index bb81f37..cb51e5b 100644 --- a/resources/sass/card.scss +++ b/resources/sass/card.scss @@ -47,7 +47,7 @@ #card-steps { .step{ display: none; - &.active{ + &.active-step{ display: block; } } diff --git a/resources/theme/js/theme.js b/resources/theme/js/theme.js index 497db04..f626f56 100755 --- a/resources/theme/js/theme.js +++ b/resources/theme/js/theme.js @@ -380,6 +380,13 @@ jQuery(function ($) { }); try { if ($('#qnt').length != 0) { + let qnt ; + let hasDiscount = false; + if ($("#discount").val() !== ''){ + + hasDiscount = true; + } + sizes = {}; qnt = JSON.parse($('#qnt').val()); // console.log(qnt); @@ -414,10 +421,13 @@ jQuery(function ($) { let txt = ''; let cl = ''; for( const c of colors) { - cl = colorNames[c.color]; - // console.log(c.color,colorNames); + let p = c.price; + if (hasDiscount){ + p = eval(c.price + $("#discount").val()) + } txt += `
@@ -436,6 +446,7 @@ jQuery(function ($) { $(this).addClass('active'); $("#qn").val($(this).data('id')); $("#last-pricex").text(commafy($(this).data('price'))); + $("#real-price").text(commafy($(this).data('real-price'))); $("#counting").text($(this).data('count')); $(".product-count").attr('max',$(this).data('count')).val(1); }); diff --git a/resources/views/website/card.blade.php b/resources/views/website/card.blade.php index f747f43..5d4d7d8 100755 --- a/resources/views/website/card.blade.php +++ b/resources/views/website/card.blade.php @@ -13,11 +13,13 @@ سبد خرید
-
+
اطلاعات ارسال
-
+
اطلاعات پرداخت
@@ -29,7 +31,7 @@
-
+
@@ -63,7 +65,9 @@ - @@ -129,15 +138,19 @@ - @@ -215,8 +231,13 @@ {{$t->title}} @if(strlen($t->description) > 1) -

{{$t->description}} @if($t->price > 0){{number_format($t->price)}} @else {{__("Free")}} @endif +

{{$t->description}} + @if($t->price > 0) + {{number_format($t->price)}} + @else + {{__("Free")}} + @endif

@endif @@ -251,7 +272,8 @@
- @@ -260,7 +282,7 @@ @endif
-
+
@if(auth('customer')->check() && auth('customer')->user()->colleague == 1)
اگر همکاری هستید آدرس مشتری را در این قسمت بنویسید @@ -287,13 +309,14 @@
-
+
-
@@ -364,14 +387,16 @@ پرداخت از درگاه های آنلاین -

@endif -  @else +   + @else {{-- {{__("Register or login to complete purchase")}}--}}

diff --git a/resources/views/website/product.blade.php b/resources/views/website/product.blade.php index d62def1..1c346b1 100755 --- a/resources/views/website/product.blade.php +++ b/resources/views/website/product.blade.php @@ -130,6 +130,14 @@ {{$pro->getPrice()}} + @if($pro->hasDiscount()) + + + {{number_format($pro->price)}} + + {{config('app.currency_type')}} + + @endif
@if($pro->hasMeta('color')) @@ -378,5 +386,6 @@ get();!!}'> + @endsection
- {{$pro->name}} + + {{$pro->name}} + @@ -74,7 +78,8 @@ @endif @endforeach @else - + @foreach(\App\Helpers\getPriceableMeta($pro) as $k => $meta)
{{\App\Helpers\getPropLabel($k)}} @@ -89,7 +94,8 @@ @endforeach @endif
+ @if($pro->getPurePrice() == 0) {{__("We call you about price soon.")}} @else @@ -105,8 +111,10 @@
-
- + - + - {{$qpro->product->name}} + + {{$pro->name}} + @php($data = json_decode($qpro->data)) - + {{\App\Helpers\getColorName($data->color)}} @@ -146,23 +159,25 @@ {{$data->size}} + @if($qpro->price == 0) {{__("We call you about price soon.")}} @else - {{number_format($qpro->price)}} - + {{number_format($qpro->product->getPurePriceDef($qpro->price))}} + {{config('app.currency_type')}} @endif - @php($tot = $tot + $qpro->price) + @php($tot = $tot + $qpro->product->getPurePriceDef($qpro->price))
-
- +