Files
CKB/public/js/warehouse_management/stock_audit/index.js

32 lines
48 KiB
JavaScript

/*
* ATTENTION: An "eval-source-map" devtool has been used.
* This devtool is neither made for production nor for readable output files.
* It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
* If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
* or disable the default devtool with "devtool: false".
* If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
*/
/******/ (() => { // webpackBootstrap
/******/ var __webpack_modules__ = ({
/***/ "./resources/js/warehouse_management/stock_audit/index.js":
/*!****************************************************************!*\
!*** ./resources/js/warehouse_management/stock_audit/index.js ***!
\****************************************************************/
/***/ (() => {
eval("console.log(\"Stock audit JS loaded\"); // Helper function to format date\n\nfunction formatDate(dateString) {\n if (!dateString) return \"-\";\n var date = new Date(dateString);\n var months = [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"Mei\", \"Jun\", \"Jul\", \"Agu\", \"Sep\", \"Okt\", \"Nov\", \"Des\"];\n var day = date.getDate().toString().padStart(2, \"0\");\n var month = months[date.getMonth()];\n var year = date.getFullYear();\n var hours = date.getHours().toString().padStart(2, \"0\");\n var minutes = date.getMinutes().toString().padStart(2, \"0\");\n return \"\".concat(day, \" \").concat(month, \" \").concat(year, \", \").concat(hours, \":\").concat(minutes);\n}\n\n$(document).ready(function () {\n console.log(\"Initializing stock audit table...\"); // Initialize Select2 without any event handlers\n\n $(\".select2\").select2({\n placeholder: \"Pilih...\",\n allowClear: true,\n width: \"100%\"\n }); // Initialize Datepicker\n\n $(\".datepicker\").datepicker({\n format: \"yyyy-mm-dd\",\n autoclose: true,\n todayHighlight: true,\n orientation: \"bottom auto\",\n language: \"id\",\n clearBtn: true,\n container: \"body\"\n });\n var $table = $(\"#stock-audit-table\");\n var indexRoute = $table.data(\"route\");\n console.log(\"Table route:\", indexRoute);\n var table = $table.DataTable({\n processing: true,\n serverSide: true,\n language: {\n processing: '<div class=\"d-flex justify-content-center\"><div class=\"spinner-border text-primary\" role=\"status\"><span class=\"sr-only\">Memproses...</span></div></div>',\n loadingRecords: \"Memuat data...\",\n zeroRecords: \"Tidak ada data yang ditemukan\",\n emptyTable: \"Tidak ada data tersedia\"\n },\n ajax: {\n url: indexRoute,\n data: function data(d) {\n d.dealer = $(\"#filter-dealer\").val();\n d.product = $(\"#filter-product\").val();\n d.change_type = $(\"#filter-change-type\").val();\n d.date = $(\"#filter-date\").val();\n console.log(\"Ajax data with ordering:\", d);\n console.log(\"Order info:\", d.order);\n console.log(\"Columns info:\", d.columns);\n },\n error: function error(xhr, _error, thrown) {\n console.error(\"Ajax error:\", _error);\n console.error(\"Response:\", xhr.responseText);\n }\n },\n columns: [{\n data: \"DT_RowIndex\",\n name: \"DT_RowIndex\",\n orderable: false,\n searchable: false,\n width: \"5%\"\n }, {\n data: \"product_name\",\n name: \"product_name\",\n orderable: true\n }, {\n data: \"dealer_name\",\n name: \"dealer_name\",\n orderable: true\n }, {\n data: \"change_type\",\n name: \"change_type\",\n orderable: true\n }, {\n data: \"quantity_change\",\n name: \"quantity_change\",\n className: \"text-center\",\n orderable: true\n }, {\n data: \"stock_before_after\",\n name: \"stock_before_after\",\n className: \"text-center\",\n orderable: true\n }, {\n data: \"source_info\",\n name: \"source_info\",\n orderable: true\n }, {\n data: \"user_name\",\n name: \"user_name\",\n orderable: true\n }, {\n data: \"created_at\",\n name: \"created_at\",\n orderable: true\n }, {\n data: \"action\",\n name: \"action\",\n orderable: false,\n searchable: false,\n width: \"10%\"\n }],\n order: [[8, \"desc\"]],\n // Order by created_at desc (column index 8)\n pageLength: 25,\n responsive: true,\n ordering: true,\n // Enable column ordering\n orderMulti: false // Single column ordering only\n\n });\n console.log(\"Table initialized:\", table); // Add loading indicator for ordering\n\n table.on(\"processing.dt\", function (e, settings, processing) {\n if (processing) {\n console.log(\"DataTable processing started (ordering/filtering)\");\n } else {\n console.log(\"DataTable processing finished\");\n }\n }); // Debug order events\n\n table.on(\"order.dt\", function () {\n console.log(\"Order changed:\", table.order());\n }); // Manual modal close handlers\n\n $(document).on(\"click\", \"#modal-close-btn, #modal-close-footer-btn\", function () {\n console.log(\"Manual close button clicked\");\n $(\"#auditDetailModal\").modal(\"hide\");\n }); // Modal backdrop click handler\n\n $(document).on(\"click\", \"#auditDetailModal\", function (e) {\n if (e.target === this) {\n console.log(\"Modal backdrop clicked\");\n $(\"#auditDetailModal\").modal(\"hide\");\n }\n }); // ESC key handler\n\n $(document).on(\"keydown\", function (e) {\n if (e.keyCode === 27 && $(\"#auditDetailModal\").hasClass(\"show\")) {\n console.log(\"ESC key pressed\");\n $(\"#auditDetailModal\").modal(\"hide\");\n }\n }); // Modal hidden event handler\n\n $(\"#auditDetailModal\").on(\"hidden.bs.modal\", function () {\n console.log(\"Modal hidden\"); // Reset modal content\n\n $(\"#modal-loading\").show();\n $(\"#modal-error\").hide();\n $(\"#modal-content\").hide();\n }); // Apply filters button - only way to trigger table reload\n\n $(\"#apply-filters\").click(function () {\n console.log(\"Apply filters clicked, reloading table...\");\n console.log(\"Current filter values:\", {\n dealer: $(\"#filter-dealer\").val(),\n product: $(\"#filter-product\").val(),\n change_type: $(\"#filter-change-type\").val(),\n date: $(\"#filter-date\").val()\n });\n table.ajax.reload();\n }); // Allow Enter key to apply filters on datepicker\n\n $(\"#filter-date\").keypress(function (e) {\n if (e.which == 13) {\n // Enter key\n console.log(\"Enter pressed on date filter, applying filters...\");\n table.ajax.reload();\n }\n }); // Reset filters\n\n $(\"#reset-filters\").click(function () {\n console.log(\"Resetting filters...\"); // Reset select2 elements properly\n\n $(\"#filter-dealer\").val(null).trigger(\"change.select2\");\n $(\"#filter-product\").val(null).trigger(\"change.select2\");\n $(\"#filter-change-type\").val(null).trigger(\"change.select2\"); // Reset datepicker properly\n\n $(\"#filter-date\").val(\"\").datepicker(\"update\");\n console.log(\"Filters reset, values after reset:\", {\n dealer: $(\"#filter-dealer\").val(),\n product: $(\"#filter-product\").val(),\n change_type: $(\"#filter-change-type\").val(),\n date: $(\"#filter-date\").val()\n }); // Reload table after reset\n\n console.log(\"Reloading table after reset...\");\n table.ajax.reload();\n });\n});\n\nwindow.showAuditDetail = function (id) {\n console.log(\"Showing audit detail for ID:\", id); // Reset modal states first\n\n $(\"#modal-loading\").show();\n $(\"#modal-error\").hide();\n $(\"#modal-content\").hide(); // Show modal\n\n $(\"#auditDetailModal\").modal(\"show\");\n $.ajax({\n url: \"/warehouse/stock-audit/\".concat(id, \"/detail\"),\n method: \"GET\",\n success: function success(response) {\n console.log(\"Detail response:\", response);\n $(\"#modal-loading\").hide();\n\n if (response.success) {\n populateModalContent(response.data, response.source_detail);\n $(\"#modal-content\").show();\n } else {\n $(\"#error-message\").text(response.message);\n $(\"#modal-error\").show();\n }\n },\n error: function error(xhr) {\n console.error(\"Detail AJAX error:\", xhr);\n $(\"#modal-loading\").hide();\n $(\"#error-message\").text(\"Gagal memuat detail audit\");\n $(\"#modal-error\").show();\n }\n });\n};\n\nfunction populateModalContent(audit, sourceDetail) {\n console.log(\"Populating modal content:\", audit); // Populate basic stock information\n\n $(\"#product-name\").text(audit.stock.product.name);\n $(\"#dealer-name\").text(audit.stock.dealer.name);\n $(\"#previous-quantity\").text(audit.previous_quantity);\n $(\"#new-quantity\").text(audit.new_quantity);\n $(\"#user-name\").text(audit.user ? audit.user.name : \"-\");\n $(\"#created-at\").text(audit.created_at_formatted);\n $(\"#description\").text(audit.description || \"-\"); // Set quantity change with styling\n\n var quantityChangeClass = \"\";\n var quantityChangeSign = \"\";\n\n if (audit.quantity_change > 0) {\n quantityChangeClass = \"text-success\";\n quantityChangeSign = \"+\";\n } else if (audit.quantity_change < 0) {\n quantityChangeClass = \"text-danger\";\n quantityChangeSign = \"\";\n } else {\n quantityChangeClass = \"text-muted\";\n quantityChangeSign = \"\";\n }\n\n $(\"#quantity-change\").html(\"<span class=\\\"\".concat(quantityChangeClass, \"\\\">\").concat(quantityChangeSign).concat(audit.quantity_change, \"</span>\")); // Set change type with styling\n\n var changeTypeClass = \"\";\n\n switch (audit.change_type) {\n case \"increase\":\n changeTypeClass = \"text-success\";\n break;\n\n case \"decrease\":\n changeTypeClass = \"text-danger\";\n break;\n\n case \"adjustment\":\n changeTypeClass = \"text-warning\";\n break;\n\n default:\n changeTypeClass = \"text-muted\";\n }\n\n $(\"#change-type\").html(\"<span class=\\\"font-weight-bold \".concat(changeTypeClass, \"\\\">\").concat(audit.change_type_label, \"</span>\")); // Handle source detail\n\n if (sourceDetail) {\n $(\"#source-detail\").show();\n\n if (sourceDetail.type === \"mutation\") {\n var mutation = sourceDetail.data;\n $(\"#source-title\").text(\"Mutasi Stock: \".concat(mutation.mutation_number));\n var mutationContent = \"\\n <div class=\\\"row\\\">\\n <div class=\\\"col-md-6\\\">\\n <table class=\\\"table table-sm\\\">\\n <tr>\\n <td><strong>Dari Dealer:</strong></td>\\n <td>\".concat(mutation.from_dealer ? mutation.from_dealer.name : \"-\", \"</td>\\n </tr>\\n <tr>\\n <td><strong>Ke Dealer:</strong></td>\\n <td>\").concat(mutation.to_dealer ? mutation.to_dealer.name : \"-\", \"</td>\\n </tr>\\n <tr>\\n <td><strong>Status:</strong></td>\\n <td>\").concat(mutation.status, \"</td>\\n </tr>\\n </table>\\n </div>\\n <div class=\\\"col-md-6\\\">\\n <table class=\\\"table table-sm\\\">\\n <tr>\\n <td><strong>Diminta oleh:</strong></td>\\n <td>\").concat(mutation.requested_by ? mutation.requested_by.name : \"-\", \"</td>\\n </tr>\\n <tr>\\n <td><strong>Disetujui oleh:</strong></td>\\n <td>\").concat(mutation.approved_by ? mutation.approved_by.name : \"-\", \"</td>\\n </tr>\\n <tr>\\n <td><strong>Tanggal Disetujui:</strong></td>\\n <td>\").concat(mutation.approved_at_formatted || \"-\", \"</td>\\n </tr>\\n </table>\\n </div>\\n </div>\\n \");\n $(\"#source-content\").html(mutationContent);\n } else if (sourceDetail.type === \"opname\") {\n var opname = sourceDetail.data;\n $(\"#source-title\").text(\"Opname\");\n var opnameContent = \"\\n <table class=\\\"table table-sm\\\">\\n <tr>\\n <td><strong>Dealer:</strong></td>\\n <td>\".concat(opname.dealer ? opname.dealer.name : \"-\", \"</td>\\n </tr>\\n <tr>\\n <td><strong>User:</strong></td>\\n <td>\").concat(opname.user ? opname.user.name : \"-\", \"</td>\\n </tr>\\n <tr>\\n <td><strong>Status:</strong></td>\\n <td>\").concat(opname.status || \"-\", \"</td>\\n </tr>\\n </table>\\n \");\n $(\"#source-content\").html(opnameContent);\n }\n } else {\n $(\"#source-detail\").hide();\n }\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9yZXNvdXJjZXMvanMvd2FyZWhvdXNlX21hbmFnZW1lbnQvc3RvY2tfYXVkaXQvaW5kZXguanMiLCJuYW1lcyI6WyJjb25zb2xlIiwibG9nIiwiZm9ybWF0RGF0ZSIsImRhdGVTdHJpbmciLCJkYXRlIiwiRGF0ZSIsIm1vbnRocyIsImRheSIsImdldERhdGUiLCJ0b1N0cmluZyIsInBhZFN0YXJ0IiwibW9udGgiLCJnZXRNb250aCIsInllYXIiLCJnZXRGdWxsWWVhciIsImhvdXJzIiwiZ2V0SG91cnMiLCJtaW51dGVzIiwiZ2V0TWludXRlcyIsIiQiLCJkb2N1bWVudCIsInJlYWR5Iiwic2VsZWN0MiIsInBsYWNlaG9sZGVyIiwiYWxsb3dDbGVhciIsIndpZHRoIiwiZGF0ZXBpY2tlciIsImZvcm1hdCIsImF1dG9jbG9zZSIsInRvZGF5SGlnaGxpZ2h0Iiwib3JpZW50YXRpb24iLCJsYW5ndWFnZSIsImNsZWFyQnRuIiwiY29udGFpbmVyIiwiJHRhYmxlIiwiaW5kZXhSb3V0ZSIsImRhdGEiLCJ0YWJsZSIsIkRhdGFUYWJsZSIsInByb2Nlc3NpbmciLCJzZXJ2ZXJTaWRlIiwibG9hZGluZ1JlY29yZHMiLCJ6ZXJvUmVjb3JkcyIsImVtcHR5VGFibGUiLCJhamF4IiwidXJsIiwiZCIsImRlYWxlciIsInZhbCIsInByb2R1Y3QiLCJjaGFuZ2VfdHlwZSIsIm9yZGVyIiwiY29sdW1ucyIsImVycm9yIiwieGhyIiwidGhyb3duIiwicmVzcG9uc2VUZXh0IiwibmFtZSIsIm9yZGVyYWJsZSIsInNlYXJjaGFibGUiLCJjbGFzc05hbWUiLCJwYWdlTGVuZ3RoIiwicmVzcG9uc2l2ZSIsIm9yZGVyaW5nIiwib3JkZXJNdWx0aSIsIm9uIiwiZSIsInNldHRpbmdzIiwibW9kYWwiLCJ0YXJnZXQiLCJrZXlDb2RlIiwiaGFzQ2xhc3MiLCJzaG93IiwiaGlkZSIsImNsaWNrIiwicmVsb2FkIiwia2V5cHJlc3MiLCJ3aGljaCIsInRyaWdnZXIiLCJ3aW5kb3ciLCJzaG93QXVkaXREZXRhaWwiLCJpZCIsIm1ldGhvZCIsInN1Y2Nlc3MiLCJyZXNwb25zZSIsInBvcHVsYXRlTW9kYWxDb250ZW50Iiwic291cmNlX2RldGFpbCIsInRleHQiLCJtZXNzYWdlIiwiYXVkaXQiLCJzb3VyY2VEZXRhaWwiLCJzdG9jayIsInByZXZpb3VzX3F1YW50aXR5IiwibmV3X3F1YW50aXR5IiwidXNlciIsImNyZWF0ZWRfYXRfZm9ybWF0dGVkIiwiZGVzY3JpcHRpb24iLCJxdWFudGl0eUNoYW5nZUNsYXNzIiwicXVhbnRpdHlDaGFuZ2VTaWduIiwicXVhbnRpdHlfY2hhbmdlIiwiaHRtbCIsImNoYW5nZVR5cGVDbGFzcyIsImNoYW5nZV90eXBlX2xhYmVsIiwidHlwZSIsIm11dGF0aW9uIiwibXV0YXRpb25fbnVtYmVyIiwibXV0YXRpb25Db250ZW50IiwiZnJvbV9kZWFsZXIiLCJ0b19kZWFsZXIiLCJzdGF0dXMiLCJyZXF1ZXN0ZWRfYnkiLCJhcHByb3ZlZF9ieSIsImFwcHJvdmVkX2F0X2Zvcm1hdHRlZCIsIm9wbmFtZSIsIm9wbmFtZUNvbnRlbnQiXSwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL3Jlc291cmNlcy9qcy93YXJlaG91c2VfbWFuYWdlbWVudC9zdG9ja19hdWRpdC9pbmRleC5qcz9kNTBhIl0sInNvdXJjZXNDb250ZW50IjpbImNvbnNvbGUubG9nKFwiU3RvY2sgYXVkaXQgSlMgbG9hZGVkXCIpO1xuXG4vLyBIZWxwZXIgZnVuY3Rpb24gdG8gZm9ybWF0IGRhdGVcbmZ1bmN0aW9uIGZvcm1hdERhdGUoZGF0ZVN0cmluZykge1xuICAgIGlmICghZGF0ZVN0cmluZykgcmV0dXJuIFwiLVwiO1xuXG4gICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKGRhdGVTdHJpbmcpO1xuICAgIGNvbnN0IG1vbnRocyA9IFtcbiAgICAgICAgXCJKYW5cIixcbiAgICAgICAgXCJGZWJcIixcbiAgICAgICAgXCJNYXJcIixcbiAgICAgICAgXCJBcHJcIixcbiAgICAgICAgXCJNZWlcIixcbiAgICAgICAgXCJKdW5cIixcbiAgICAgICAgXCJKdWxcIixcbiAgICAgICAgXCJBZ3VcIixcbiAgICAgICAgXCJTZXBcIixcbiAgICAgICAgXCJPa3RcIixcbiAgICAgICAgXCJOb3ZcIixcbiAgICAgICAgXCJEZXNcIixcbiAgICBdO1xuXG4gICAgY29uc3QgZGF5ID0gZGF0ZS5nZXREYXRlKCkudG9TdHJpbmcoKS5wYWRTdGFydCgyLCBcIjBcIik7XG4gICAgY29uc3QgbW9udGggPSBtb250aHNbZGF0ZS5nZXRNb250aCgpXTtcbiAgICBjb25zdCB5ZWFyID0gZGF0ZS5nZXRGdWxsWWVhcigpO1xuICAgIGNvbnN0IGhvdXJzID0gZGF0ZS5nZXRIb3VycygpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwgXCIwXCIpO1xuICAgIGNvbnN0IG1pbnV0ZXMgPSBkYXRlLmdldE1pbnV0ZXMoKS50b1N0cmluZygpLnBhZFN0YXJ0KDIsIFwiMFwiKTtcblxuICAgIHJldHVybiBgJHtkYXl9ICR7bW9udGh9ICR7eWVhcn0sICR7aG91cnN9OiR7bWludXRlc31gO1xufVxuXG4kKGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbiAoKSB7XG4gICAgY29uc29sZS5sb2coXCJJbml0aWFsaXppbmcgc3RvY2sgYXVkaXQgdGFibGUuLi5cIik7XG5cbiAgICAvLyBJbml0aWFsaXplIFNlbGVjdDIgd2l0aG91dCBhbnkgZXZlbnQgaGFuZGxlcnNcbiAgICAkKFwiLnNlbGVjdDJcIikuc2VsZWN0Mih7XG4gICAgICAgIHBsYWNlaG9sZGVyOiBcIlBpbGloLi4uXCIsXG4gICAgICAgIGFsbG93Q2xlYXI6IHRydWUsXG4gICAgICAgIHdpZHRoOiBcIjEwMCVcIixcbiAgICB9KTtcblxuICAgIC8vIEluaXRpYWxpemUgRGF0ZXBpY2tlclxuICAgICQoXCIuZGF0ZXBpY2tlclwiKS5kYXRlcGlja2VyKHtcbiAgICAgICAgZm9ybWF0OiBcInl5eXktbW0tZGRcIixcbiAgICAgICAgYXV0b2Nsb3NlOiB0cnVlLFxuICAgICAgICB0b2RheUhpZ2hsaWdodDogdHJ1ZSxcbiAgICAgICAgb3JpZW50YXRpb246IFwiYm90dG9tIGF1dG9cIixcbiAgICAgICAgbGFuZ3VhZ2U6IFwiaWRcIixcbiAgICAgICAgY2xlYXJCdG46IHRydWUsXG4gICAgICAgIGNvbnRhaW5lcjogXCJib2R5XCIsXG4gICAgfSk7XG5cbiAgICBjb25zdCAkdGFibGUgPSAkKFwiI3N0b2NrLWF1ZGl0LXRhYmxlXCIpO1xuICAgIGNvbnN0IGluZGV4Um91dGUgPSAkdGFibGUuZGF0YShcInJvdXRlXCIpO1xuXG4gICAgY29uc29sZS5sb2coXCJUYWJsZSByb3V0ZTpcIiwgaW5kZXhSb3V0ZSk7XG5cbiAgICBsZXQgdGFibGUgPSAkdGFibGUuRGF0YVRhYmxlKHtcbiAgICAgICAgcHJvY2Vzc2luZzogdHJ1ZSxcbiAgICAgICAgc2VydmVyU2lkZTogdHJ1ZSxcbiAgICAgICAgbGFuZ3VhZ2U6IHtcbiAgICAgICAgICAgIHByb2Nlc3Npbmc6XG4gICAgICAgICAgICAgICAgJzxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlclwiPjxkaXYgY2xhc3M9XCJzcGlubmVyLWJvcmRlciB0ZXh0LXByaW1hcnlcIiByb2xlPVwic3RhdHVzXCI+PHNwYW4gY2xhc3M9XCJzci1vbmx5XCI+TWVtcHJvc2VzLi4uPC9zcGFuPjwvZGl2PjwvZGl2PicsXG4gICAgICAgICAgICBsb2FkaW5nUmVjb3JkczogXCJNZW11YXQgZGF0YS4uLlwiLFxuICAgICAgICAgICAgemVyb1JlY29yZHM6IFwiVGlkYWsgYWRhIGRhdGEgeWFuZyBkaXRlbXVrYW5cIixcbiAgICAgICAgICAgIGVtcHR5VGFibGU6IFwiVGlkYWsgYWRhIGRhdGEgdGVyc2VkaWFcIixcbiAgICAgICAgfSxcbiAgICAgICAgYWpheDoge1xuICAgICAgICAgICAgdXJsOiBpbmRleFJvdXRlLFxuICAgICAgICAgICAgZGF0YTogZnVuY3Rpb24gKGQpIHtcbiAgICAgICAgICAgICAgICBkLmRlYWxlciA9ICQoXCIjZmlsdGVyLWRlYWxlclwiKS52YWwoKTtcbiAgICAgICAgICAgICAgICBkLnByb2R1Y3QgPSAkKFwiI2ZpbHRlci1wcm9kdWN0XCIpLnZhbCgpO1xuICAgICAgICAgICAgICAgIGQuY2hhbmdlX3R5cGUgPSAkKFwiI2ZpbHRlci1jaGFuZ2UtdHlwZVwiKS52YWwoKTtcbiAgICAgICAgICAgICAgICBkLmRhdGUgPSAkKFwiI2ZpbHRlci1kYXRlXCIpLnZhbCgpO1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiQWpheCBkYXRhIHdpdGggb3JkZXJpbmc6XCIsIGQpO1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiT3JkZXIgaW5mbzpcIiwgZC5vcmRlcik7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJDb2x1bW5zIGluZm86XCIsIGQuY29sdW1ucyk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZXJyb3I6IGZ1bmN0aW9uICh4aHIsIGVycm9yLCB0aHJvd24pIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKFwiQWpheCBlcnJvcjpcIiwgZXJyb3IpO1xuICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXCJSZXNwb25zZTpcIiwgeGhyLnJlc3BvbnNlVGV4dCk7XG4gICAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICBjb2x1bW5zOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgZGF0YTogXCJEVF9Sb3dJbmRleFwiLFxuICAgICAgICAgICAgICAgIG5hbWU6IFwiRFRfUm93SW5kZXhcIixcbiAgICAgICAgICAgICAgICBvcmRlcmFibGU6IGZhbHNlLFxuICAgICAgICAgICAgICAgIHNlYXJjaGFibGU6IGZhbHNlLFxuICAgICAgICAgICAgICAgIHdpZHRoOiBcIjUlXCIsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGRhdGE6IFwicHJvZHVjdF9uYW1lXCIsXG4gICAgICAgICAgICAgICAgbmFtZTogXCJwcm9kdWN0X25hbWVcIixcbiAgICAgICAgICAgICAgICBvcmRlcmFibGU6IHRydWUsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGRhdGE6IFwiZGVhbGVyX25hbWVcIixcbiAgICAgICAgICAgICAgICBuYW1lOiBcImRlYWxlcl9uYW1lXCIsXG4gICAgICAgICAgICAgICAgb3JkZXJhYmxlOiB0cnVlLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBkYXRhOiBcImNoYW5nZV90eXBlXCIsXG4gICAgICAgICAgICAgICAgbmFtZTogXCJjaGFuZ2VfdHlwZVwiLFxuICAgICAgICAgICAgICAgIG9yZGVyYWJsZTogdHJ1ZSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgZGF0YTogXCJxdWFudGl0eV9jaGFuZ2VcIixcbiAgICAgICAgICAgICAgICBuYW1lOiBcInF1YW50aXR5X2NoYW5nZVwiLFxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogXCJ0ZXh0LWNlbnRlclwiLFxuICAgICAgICAgICAgICAgIG9yZGVyYWJsZTogdHJ1ZSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgZGF0YTogXCJzdG9ja19iZWZvcmVfYWZ0ZXJcIixcbiAgICAgICAgICAgICAgICBuYW1lOiBcInN0b2NrX2JlZm9yZV9hZnRlclwiLFxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogXCJ0ZXh0LWNlbnRlclwiLFxuICAgICAgICAgICAgICAgIG9yZGVyYWJsZTogdHJ1ZSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgZGF0YTogXCJzb3VyY2VfaW5mb1wiLFxuICAgICAgICAgICAgICAgIG5hbWU6IFwic291cmNlX2luZm9cIixcbiAgICAgICAgICAgICAgICBvcmRlcmFibGU6IHRydWUsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGRhdGE6IFwidXNlcl9uYW1lXCIsXG4gICAgICAgICAgICAgICAgbmFtZTogXCJ1c2VyX25hbWVcIixcbiAgICAgICAgICAgICAgICBvcmRlcmFibGU6IHRydWUsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGRhdGE6IFwiY3JlYXRlZF9hdFwiLFxuICAgICAgICAgICAgICAgIG5hbWU6IFwiY3JlYXRlZF9hdFwiLFxuICAgICAgICAgICAgICAgIG9yZGVyYWJsZTogdHJ1ZSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgZGF0YTogXCJhY3Rpb25cIixcbiAgICAgICAgICAgICAgICBuYW1lOiBcImFjdGlvblwiLFxuICAgICAgICAgICAgICAgIG9yZGVyYWJsZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgc2VhcmNoYWJsZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgd2lkdGg6IFwiMTAlXCIsXG4gICAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgICBvcmRlcjogW1s4LCBcImRlc2NcIl1dLCAvLyBPcmRlciBieSBjcmVhdGVkX2F0IGRlc2MgKGNvbHVtbiBpbmRleCA4KVxuICAgICAgICBwYWdlTGVuZ3RoOiAyNSxcbiAgICAgICAgcmVzcG9uc2l2ZTogdHJ1ZSxcbiAgICAgICAgb3JkZXJpbmc6IHRydWUsIC8vIEVuYWJsZSBjb2x1bW4gb3JkZXJpbmdcbiAgICAgICAgb3JkZXJNdWx0aTogZmFsc2UsIC8vIFNpbmdsZSBjb2x1bW4gb3JkZXJpbmcgb25seVxuICAgIH0pO1xuXG4gICAgY29uc29sZS5sb2coXCJUYWJsZSBpbml0aWFsaXplZDpcIiwgdGFibGUpO1xuXG4gICAgLy8gQWRkIGxvYWRpbmcgaW5kaWNhdG9yIGZvciBvcmRlcmluZ1xuICAgIHRhYmxlLm9uKFwicHJvY2Vzc2luZy5kdFwiLCBmdW5jdGlvbiAoZSwgc2V0dGluZ3MsIHByb2Nlc3NpbmcpIHtcbiAgICAgICAgaWYgKHByb2Nlc3NpbmcpIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiRGF0YVRhYmxlIHByb2Nlc3Npbmcgc3RhcnRlZCAob3JkZXJpbmcvZmlsdGVyaW5nKVwiKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiRGF0YVRhYmxlIHByb2Nlc3NpbmcgZmluaXNoZWRcIik7XG4gICAgICAgIH1cbiAgICB9KTtcblxuICAgIC8vIERlYnVnIG9yZGVyIGV2ZW50c1xuICAgIHRhYmxlLm9uKFwib3JkZXIuZHRcIiwgZnVuY3Rpb24gKCkge1xuICAgICAgICBjb25zb2xlLmxvZyhcIk9yZGVyIGNoYW5nZWQ6XCIsIHRhYmxlLm9yZGVyKCkpO1xuICAgIH0pO1xuXG4gICAgLy8gTWFudWFsIG1vZGFsIGNsb3NlIGhhbmRsZXJzXG4gICAgJChkb2N1bWVudCkub24oXG4gICAgICAgIFwiY2xpY2tcIixcbiAgICAgICAgXCIjbW9kYWwtY2xvc2UtYnRuLCAjbW9kYWwtY2xvc2UtZm9vdGVyLWJ0blwiLFxuICAgICAgICBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcIk1hbnVhbCBjbG9zZSBidXR0b24gY2xpY2tlZFwiKTtcbiAgICAgICAgICAgICQoXCIjYXVkaXREZXRhaWxNb2RhbFwiKS5tb2RhbChcImhpZGVcIik7XG4gICAgICAgIH1cbiAgICApO1xuXG4gICAgLy8gTW9kYWwgYmFja2Ryb3AgY2xpY2sgaGFuZGxlclxuICAgICQoZG9jdW1lbnQpLm9uKFwiY2xpY2tcIiwgXCIjYXVkaXREZXRhaWxNb2RhbFwiLCBmdW5jdGlvbiAoZSkge1xuICAgICAgICBpZiAoZS50YXJnZXQgPT09IHRoaXMpIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiTW9kYWwgYmFja2Ryb3AgY2xpY2tlZFwiKTtcbiAgICAgICAgICAgICQoXCIjYXVkaXREZXRhaWxNb2RhbFwiKS5tb2RhbChcImhpZGVcIik7XG4gICAgICAgIH1cbiAgICB9KTtcblxuICAgIC8vIEVTQyBrZXkgaGFuZGxlclxuICAgICQoZG9jdW1lbnQpLm9uKFwia2V5ZG93blwiLCBmdW5jdGlvbiAoZSkge1xuICAgICAgICBpZiAoZS5rZXlDb2RlID09PSAyNyAmJiAkKFwiI2F1ZGl0RGV0YWlsTW9kYWxcIikuaGFzQ2xhc3MoXCJzaG93XCIpKSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcIkVTQyBrZXkgcHJlc3NlZFwiKTtcbiAgICAgICAgICAgICQoXCIjYXVkaXREZXRhaWxNb2RhbFwiKS5tb2RhbChcImhpZGVcIik7XG4gICAgICAgIH1cbiAgICB9KTtcblxuICAgIC8vIE1vZGFsIGhpZGRlbiBldmVudCBoYW5kbGVyXG4gICAgJChcIiNhdWRpdERldGFpbE1vZGFsXCIpLm9uKFwiaGlkZGVuLmJzLm1vZGFsXCIsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgY29uc29sZS5sb2coXCJNb2RhbCBoaWRkZW5cIik7XG4gICAgICAgIC8vIFJlc2V0IG1vZGFsIGNvbnRlbnRcbiAgICAgICAgJChcIiNtb2RhbC1sb2FkaW5nXCIpLnNob3coKTtcbiAgICAgICAgJChcIiNtb2RhbC1lcnJvclwiKS5oaWRlKCk7XG4gICAgICAgICQoXCIjbW9kYWwtY29udGVudFwiKS5oaWRlKCk7XG4gICAgfSk7XG5cbiAgICAvLyBBcHBseSBmaWx0ZXJzIGJ1dHRvbiAtIG9ubHkgd2F5IHRvIHRyaWdnZXIgdGFibGUgcmVsb2FkXG4gICAgJChcIiNhcHBseS1maWx0ZXJzXCIpLmNsaWNrKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgY29uc29sZS5sb2coXCJBcHBseSBmaWx0ZXJzIGNsaWNrZWQsIHJlbG9hZGluZyB0YWJsZS4uLlwiKTtcbiAgICAgICAgY29uc29sZS5sb2coXCJDdXJyZW50IGZpbHRlciB2YWx1ZXM6XCIsIHtcbiAgICAgICAgICAgIGRlYWxlcjogJChcIiNmaWx0ZXItZGVhbGVyXCIpLnZhbCgpLFxuICAgICAgICAgICAgcHJvZHVjdDogJChcIiNmaWx0ZXItcHJvZHVjdFwiKS52YWwoKSxcbiAgICAgICAgICAgIGNoYW5nZV90eXBlOiAkKFwiI2ZpbHRlci1jaGFuZ2UtdHlwZVwiKS52YWwoKSxcbiAgICAgICAgICAgIGRhdGU6ICQoXCIjZmlsdGVyLWRhdGVcIikudmFsKCksXG4gICAgICAgIH0pO1xuICAgICAgICB0YWJsZS5hamF4LnJlbG9hZCgpO1xuICAgIH0pO1xuXG4gICAgLy8gQWxsb3cgRW50ZXIga2V5IHRvIGFwcGx5IGZpbHRlcnMgb24gZGF0ZXBpY2tlclxuICAgICQoXCIjZmlsdGVyLWRhdGVcIikua2V5cHJlc3MoZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgaWYgKGUud2hpY2ggPT0gMTMpIHtcbiAgICAgICAgICAgIC8vIEVudGVyIGtleVxuICAgICAgICAgICAgY29uc29sZS5sb2coXCJFbnRlciBwcmVzc2VkIG9uIGRhdGUgZmlsdGVyLCBhcHBseWluZyBmaWx0ZXJzLi4uXCIpO1xuICAgICAgICAgICAgdGFibGUuYWpheC5yZWxvYWQoKTtcbiAgICAgICAgfVxuICAgIH0pO1xuXG4gICAgLy8gUmVzZXQgZmlsdGVyc1xuICAgICQoXCIjcmVzZXQtZmlsdGVyc1wiKS5jbGljayhmdW5jdGlvbiAoKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKFwiUmVzZXR0aW5nIGZpbHRlcnMuLi5cIik7XG5cbiAgICAgICAgLy8gUmVzZXQgc2VsZWN0MiBlbGVtZW50cyBwcm9wZXJseVxuICAgICAgICAkKFwiI2ZpbHRlci1kZWFsZXJcIikudmFsKG51bGwpLnRyaWdnZXIoXCJjaGFuZ2Uuc2VsZWN0MlwiKTtcbiAgICAgICAgJChcIiNmaWx0ZXItcHJvZHVjdFwiKS52YWwobnVsbCkudHJpZ2dlcihcImNoYW5nZS5zZWxlY3QyXCIpO1xuICAgICAgICAkKFwiI2ZpbHRlci1jaGFuZ2UtdHlwZVwiKS52YWwobnVsbCkudHJpZ2dlcihcImNoYW5nZS5zZWxlY3QyXCIpO1xuXG4gICAgICAgIC8vIFJlc2V0IGRhdGVwaWNrZXIgcHJvcGVybHlcbiAgICAgICAgJChcIiNmaWx0ZXItZGF0ZVwiKS52YWwoXCJcIikuZGF0ZXBpY2tlcihcInVwZGF0ZVwiKTtcblxuICAgICAgICBjb25zb2xlLmxvZyhcIkZpbHRlcnMgcmVzZXQsIHZhbHVlcyBhZnRlciByZXNldDpcIiwge1xuICAgICAgICAgICAgZGVhbGVyOiAkKFwiI2ZpbHRlci1kZWFsZXJcIikudmFsKCksXG4gICAgICAgICAgICBwcm9kdWN0OiAkKFwiI2ZpbHRlci1wcm9kdWN0XCIpLnZhbCgpLFxuICAgICAgICAgICAgY2hhbmdlX3R5cGU6ICQoXCIjZmlsdGVyLWNoYW5nZS10eXBlXCIpLnZhbCgpLFxuICAgICAgICAgICAgZGF0ZTogJChcIiNmaWx0ZXItZGF0ZVwiKS52YWwoKSxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gUmVsb2FkIHRhYmxlIGFmdGVyIHJlc2V0XG4gICAgICAgIGNvbnNvbGUubG9nKFwiUmVsb2FkaW5nIHRhYmxlIGFmdGVyIHJlc2V0Li4uXCIpO1xuICAgICAgICB0YWJsZS5hamF4LnJlbG9hZCgpO1xuICAgIH0pO1xufSk7XG5cbndpbmRvdy5zaG93QXVkaXREZXRhaWwgPSBmdW5jdGlvbiAoaWQpIHtcbiAgICBjb25zb2xlLmxvZyhcIlNob3dpbmcgYXVkaXQgZGV0YWlsIGZvciBJRDpcIiwgaWQpO1xuXG4gICAgLy8gUmVzZXQgbW9kYWwgc3RhdGVzIGZpcnN0XG4gICAgJChcIiNtb2RhbC1sb2FkaW5nXCIpLnNob3coKTtcbiAgICAkKFwiI21vZGFsLWVycm9yXCIpLmhpZGUoKTtcbiAgICAkKFwiI21vZGFsLWNvbnRlbnRcIikuaGlkZSgpO1xuXG4gICAgLy8gU2hvdyBtb2RhbFxuICAgICQoXCIjYXVkaXREZXRhaWxNb2RhbFwiKS5tb2RhbChcInNob3dcIik7XG5cbiAgICAkLmFqYXgoe1xuICAgICAgICB1cmw6IGAvd2FyZWhvdXNlL3N0b2NrLWF1ZGl0LyR7aWR9L2RldGFpbGAsXG4gICAgICAgIG1ldGhvZDogXCJHRVRcIixcbiAgICAgICAgc3VjY2VzczogZnVuY3Rpb24gKHJlc3BvbnNlKSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcIkRldGFpbCByZXNwb25zZTpcIiwgcmVzcG9uc2UpO1xuICAgICAgICAgICAgJChcIiNtb2RhbC1sb2FkaW5nXCIpLmhpZGUoKTtcblxuICAgICAgICAgICAgaWYgKHJlc3BvbnNlLnN1Y2Nlc3MpIHtcbiAgICAgICAgICAgICAgICBwb3B1bGF0ZU1vZGFsQ29udGVudChyZXNwb25zZS5kYXRhLCByZXNwb25zZS5zb3VyY2VfZGV0YWlsKTtcbiAgICAgICAgICAgICAgICAkKFwiI21vZGFsLWNvbnRlbnRcIikuc2hvdygpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAkKFwiI2Vycm9yLW1lc3NhZ2VcIikudGV4dChyZXNwb25zZS5tZXNzYWdlKTtcbiAgICAgICAgICAgICAgICAkKFwiI21vZGFsLWVycm9yXCIpLnNob3coKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgZXJyb3I6IGZ1bmN0aW9uICh4aHIpIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXCJEZXRhaWwgQUpBWCBlcnJvcjpcIiwgeGhyKTtcbiAgICAgICAgICAgICQoXCIjbW9kYWwtbG9hZGluZ1wiKS5oaWRlKCk7XG4gICAgICAgICAgICAkKFwiI2Vycm9yLW1lc3NhZ2VcIikudGV4dChcIkdhZ2FsIG1lbXVhdCBkZXRhaWwgYXVkaXRcIik7XG4gICAgICAgICAgICAkKFwiI21vZGFsLWVycm9yXCIpLnNob3coKTtcbiAgICAgICAgfSxcbiAgICB9KTtcbn07XG5cbmZ1bmN0aW9uIHBvcHVsYXRlTW9kYWxDb250ZW50KGF1ZGl0LCBzb3VyY2VEZXRhaWwpIHtcbiAgICBjb25zb2xlLmxvZyhcIlBvcHVsYXRpbmcgbW9kYWwgY29udGVudDpcIiwgYXVkaXQpO1xuXG4gICAgLy8gUG9wdWxhdGUgYmFzaWMgc3RvY2sgaW5mb3JtYXRpb25cbiAgICAkKFwiI3Byb2R1Y3QtbmFtZVwiKS50ZXh0KGF1ZGl0LnN0b2NrLnByb2R1Y3QubmFtZSk7XG4gICAgJChcIiNkZWFsZXItbmFtZVwiKS50ZXh0KGF1ZGl0LnN0b2NrLmRlYWxlci5uYW1lKTtcbiAgICAkKFwiI3ByZXZpb3VzLXF1YW50aXR5XCIpLnRleHQoYXVkaXQucHJldmlvdXNfcXVhbnRpdHkpO1xuICAgICQoXCIjbmV3LXF1YW50aXR5XCIpLnRleHQoYXVkaXQubmV3X3F1YW50aXR5KTtcbiAgICAkKFwiI3VzZXItbmFtZVwiKS50ZXh0KGF1ZGl0LnVzZXIgPyBhdWRpdC51c2VyLm5hbWUgOiBcIi1cIik7XG4gICAgJChcIiNjcmVhdGVkLWF0XCIpLnRleHQoYXVkaXQuY3JlYXRlZF9hdF9mb3JtYXR0ZWQpO1xuICAgICQoXCIjZGVzY3JpcHRpb25cIikudGV4dChhdWRpdC5kZXNjcmlwdGlvbiB8fCBcIi1cIik7XG5cbiAgICAvLyBTZXQgcXVhbnRpdHkgY2hhbmdlIHdpdGggc3R5bGluZ1xuICAgIGxldCBxdWFudGl0eUNoYW5nZUNsYXNzID0gXCJcIjtcbiAgICBsZXQgcXVhbnRpdHlDaGFuZ2VTaWduID0gXCJcIjtcbiAgICBpZiAoYXVkaXQucXVhbnRpdHlfY2hhbmdlID4gMCkge1xuICAgICAgICBxdWFudGl0eUNoYW5nZUNsYXNzID0gXCJ0ZXh0LXN1Y2Nlc3NcIjtcbiAgICAgICAgcXVhbnRpdHlDaGFuZ2VTaWduID0gXCIrXCI7XG4gICAgfSBlbHNlIGlmIChhdWRpdC5xdWFudGl0eV9jaGFuZ2UgPCAwKSB7XG4gICAgICAgIHF1YW50aXR5Q2hhbmdlQ2xhc3MgPSBcInRleHQtZGFuZ2VyXCI7XG4gICAgICAgIHF1YW50aXR5Q2hhbmdlU2lnbiA9IFwiXCI7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgcXVhbnRpdHlDaGFuZ2VDbGFzcyA9IFwidGV4dC1tdXRlZFwiO1xuICAgICAgICBxdWFudGl0eUNoYW5nZVNpZ24gPSBcIlwiO1xuICAgIH1cbiAgICAkKFwiI3F1YW50aXR5LWNoYW5nZVwiKS5odG1sKFxuICAgICAgICBgPHNwYW4gY2xhc3M9XCIke3F1YW50aXR5Q2hhbmdlQ2xhc3N9XCI+JHtxdWFudGl0eUNoYW5nZVNpZ259JHthdWRpdC5xdWFudGl0eV9jaGFuZ2V9PC9zcGFuPmBcbiAgICApO1xuXG4gICAgLy8gU2V0IGNoYW5nZSB0eXBlIHdpdGggc3R5bGluZ1xuICAgIGxldCBjaGFuZ2VUeXBlQ2xhc3MgPSBcIlwiO1xuICAgIHN3aXRjaCAoYXVkaXQuY2hhbmdlX3R5cGUpIHtcbiAgICAgICAgY2FzZSBcImluY3JlYXNlXCI6XG4gICAgICAgICAgICBjaGFuZ2VUeXBlQ2xhc3MgPSBcInRleHQtc3VjY2Vzc1wiO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgXCJkZWNyZWFzZVwiOlxuICAgICAgICAgICAgY2hhbmdlVHlwZUNsYXNzID0gXCJ0ZXh0LWRhbmdlclwiO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgXCJhZGp1c3RtZW50XCI6XG4gICAgICAgICAgICBjaGFuZ2VUeXBlQ2xhc3MgPSBcInRleHQtd2FybmluZ1wiO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICBjaGFuZ2VUeXBlQ2xhc3MgPSBcInRleHQtbXV0ZWRcIjtcbiAgICB9XG4gICAgJChcIiNjaGFuZ2UtdHlwZVwiKS5odG1sKFxuICAgICAgICBgPHNwYW4gY2xhc3M9XCJmb250LXdlaWdodC1ib2xkICR7Y2hhbmdlVHlwZUNsYXNzfVwiPiR7YXVkaXQuY2hhbmdlX3R5cGVfbGFiZWx9PC9zcGFuPmBcbiAgICApO1xuXG4gICAgLy8gSGFuZGxlIHNvdXJjZSBkZXRhaWxcbiAgICBpZiAoc291cmNlRGV0YWlsKSB7XG4gICAgICAgICQoXCIjc291cmNlLWRldGFpbFwiKS5zaG93KCk7XG5cbiAgICAgICAgaWYgKHNvdXJjZURldGFpbC50eXBlID09PSBcIm11dGF0aW9uXCIpIHtcbiAgICAgICAgICAgIGxldCBtdXRhdGlvbiA9IHNvdXJjZURldGFpbC5kYXRhO1xuICAgICAgICAgICAgJChcIiNzb3VyY2UtdGl0bGVcIikudGV4dChcbiAgICAgICAgICAgICAgICBgTXV0YXNpIFN0b2NrOiAke211dGF0aW9uLm11dGF0aW9uX251bWJlcn1gXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBsZXQgbXV0YXRpb25Db250ZW50ID0gYFxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8dGFibGUgY2xhc3M9XCJ0YWJsZSB0YWJsZS1zbVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjxzdHJvbmc+RGFyaSBEZWFsZXI6PC9zdHJvbmc+PC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPiR7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdXRhdGlvbi5mcm9tX2RlYWxlclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gbXV0YXRpb24uZnJvbV9kZWFsZXIubmFtZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogXCItXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfTwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD48c3Ryb25nPktlIERlYWxlcjo8L3N0cm9uZz48L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+JHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG11dGF0aW9uLnRvX2RlYWxlclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gbXV0YXRpb24udG9fZGVhbGVyLm5hbWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFwiLVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH08L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+PHN0cm9uZz5TdGF0dXM6PC9zdHJvbmc+PC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPiR7bXV0YXRpb24uc3RhdHVzfTwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGFibGU+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTZcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDx0YWJsZSBjbGFzcz1cInRhYmxlIHRhYmxlLXNtXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+PHN0cm9uZz5EaW1pbnRhIG9sZWg6PC9zdHJvbmc+PC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPiR7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdXRhdGlvbi5yZXF1ZXN0ZWRfYnlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IG11dGF0aW9uLnJlcXVlc3RlZF9ieS5uYW1lXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBcIi1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9PC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjxzdHJvbmc+RGlzZXR1anVpIG9sZWg6PC9zdHJvbmc+PC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPiR7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdXRhdGlvbi5hcHByb3ZlZF9ieVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gbXV0YXRpb24uYXBwcm92ZWRfYnkubmFtZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogXCItXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfTwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD48c3Ryb25nPlRhbmdnYWwgRGlzZXR1anVpOjwvc3Ryb25nPjwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4ke1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXV0YXRpb24uYXBwcm92ZWRfYXRfZm9ybWF0dGVkIHx8IFwiLVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH08L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIGA7XG4gICAgICAgICAgICAkKFwiI3NvdXJjZS1jb250ZW50XCIpLmh0bWwobXV0YXRpb25Db250ZW50KTtcbiAgICAgICAgfSBlbHNlIGlmIChzb3VyY2VEZXRhaWwudHlwZSA9PT0gXCJvcG5hbWVcIikge1xuICAgICAgICAgICAgbGV0IG9wbmFtZSA9IHNvdXJjZURldGFpbC5kYXRhO1xuICAgICAgICAgICAgJChcIiNzb3VyY2UtdGl0bGVcIikudGV4dChcIk9wbmFtZVwiKTtcblxuICAgICAgICAgICAgbGV0IG9wbmFtZUNvbnRlbnQgPSBgXG4gICAgICAgICAgICAgICAgPHRhYmxlIGNsYXNzPVwidGFibGUgdGFibGUtc21cIj5cbiAgICAgICAgICAgICAgICAgICAgPHRyPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjxzdHJvbmc+RGVhbGVyOjwvc3Ryb25nPjwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8dGQ+JHtvcG5hbWUuZGVhbGVyID8gb3BuYW1lLmRlYWxlci5uYW1lIDogXCItXCJ9PC90ZD5cbiAgICAgICAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgICAgICAgICAgPHRyPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjxzdHJvbmc+VXNlcjo8L3N0cm9uZz48L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHRkPiR7b3BuYW1lLnVzZXIgPyBvcG5hbWUudXNlci5uYW1lIDogXCItXCJ9PC90ZD5cbiAgICAgICAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgICAgICAgICAgPHRyPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjxzdHJvbmc+U3RhdHVzOjwvc3Ryb25nPjwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8dGQ+JHtvcG5hbWUuc3RhdHVzIHx8IFwiLVwifTwvdGQ+XG4gICAgICAgICAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgICAgICAgPC90YWJsZT5cbiAgICAgICAgICAgIGA7XG4gICAgICAgICAgICAkKFwiI3NvdXJjZS1jb250ZW50XCIpLmh0bWwob3BuYW1lQ29udGVudCk7XG4gICAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgICAkKFwiI3NvdXJjZS1kZXRhaWxcIikuaGlkZSgpO1xuICAgIH1cbn1cbiJdLCJtYXBwaW5ncyI6IkFBQUFBLE9BQU8sQ0FBQ0MsR0FBUixDQUFZLHVCQUFaLEUsQ0FFQTs7QUFDQSxTQUFTQyxVQUFULENBQW9CQyxVQUFwQixFQUFnQztFQUM1QixJQUFJLENBQUNBLFVBQUwsRUFBaUIsT0FBTyxHQUFQO0VBRWpCLElBQU1DLElBQUksR0FBRyxJQUFJQyxJQUFKLENBQVNGLFVBQVQsQ0FBYjtFQUNBLElBQU1HLE1BQU0sR0FBRyxDQUNYLEtBRFcsRUFFWCxLQUZXLEVBR1gsS0FIVyxFQUlYLEtBSlcsRUFLWCxLQUxXLEVBTVgsS0FOVyxFQU9YLEtBUFcsRUFRWCxLQVJXLEVBU1gsS0FUVyxFQVVYLEtBVlcsRUFXWCxLQVhXLEVBWVgsS0FaVyxDQUFmO0VBZUEsSUFBTUMsR0FBRyxHQUFHSCxJQUFJLENBQUNJLE9BQUwsR0FBZUMsUUFBZixHQUEwQkMsUUFBMUIsQ0FBbUMsQ0FBbkMsRUFBc0MsR0FBdEMsQ0FBWjtFQUNBLElBQU1DLEtBQUssR0FBR0wsTUFBTSxDQUFDRixJQUFJLENBQUNRLFFBQUwsRUFBRCxDQUFwQjtFQUNBLElBQU1DLElBQUksR0FBR1QsSUFBSSxDQUFDVSxXQUFMLEVBQWI7RUFDQSxJQUFNQyxLQUFLLEdBQUdYLElBQUksQ0FBQ1ksUUFBTCxHQUFnQlAsUUFBaEIsR0FBMkJDLFFBQTNCLENBQW9DLENBQXBDLEVBQXVDLEdBQXZDLENBQWQ7RUFDQSxJQUFNTyxPQUFPLEdBQUdiLElBQUksQ0FBQ2MsVUFBTCxHQUFrQlQsUUFBbEIsR0FBNkJDLFFBQTdCLENBQXNDLENBQXRDLEVBQXlDLEdBQXpDLENBQWhCO0VBRUEsaUJBQVVILEdBQVYsY0FBaUJJLEtBQWpCLGNBQTBCRSxJQUExQixlQUFtQ0UsS0FBbkMsY0FBNENFLE9BQTVD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\n//# sourceURL=webpack-internal:///./resources/js/warehouse_management/stock_audit/index.js\n");
/***/ })
/******/ });
/************************************************************************/
/******/
/******/ // startup
/******/ // Load entry module and return exports
/******/ // This entry module can't be inlined because the eval-source-map devtool is used.
/******/ var __webpack_exports__ = {};
/******/ __webpack_modules__["./resources/js/warehouse_management/stock_audit/index.js"]();
/******/
/******/ })()
;