├── .vscode └── settings.json ├── favicon ├── favicon.ico ├── favicon-16x16.png ├── favicon-32x32.png ├── apple-touch-icon.png ├── android-chrome-192x192.png ├── android-chrome-512x512.png └── site.webmanifest ├── images └── meta-image.jpg ├── README.md ├── styles.css.map ├── styles.scss ├── styles.css ├── script.js ├── index.html └── jszip.min.js /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "liveServer.settings.port": 5501 3 | } 4 | -------------------------------------------------------------------------------- /favicon/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexleybourne/chrome-extension-icon-generator/HEAD/favicon/favicon.ico -------------------------------------------------------------------------------- /images/meta-image.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexleybourne/chrome-extension-icon-generator/HEAD/images/meta-image.jpg -------------------------------------------------------------------------------- /favicon/favicon-16x16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexleybourne/chrome-extension-icon-generator/HEAD/favicon/favicon-16x16.png -------------------------------------------------------------------------------- /favicon/favicon-32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexleybourne/chrome-extension-icon-generator/HEAD/favicon/favicon-32x32.png -------------------------------------------------------------------------------- /favicon/apple-touch-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexleybourne/chrome-extension-icon-generator/HEAD/favicon/apple-touch-icon.png -------------------------------------------------------------------------------- /favicon/android-chrome-192x192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexleybourne/chrome-extension-icon-generator/HEAD/favicon/android-chrome-192x192.png -------------------------------------------------------------------------------- /favicon/android-chrome-512x512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexleybourne/chrome-extension-icon-generator/HEAD/favicon/android-chrome-512x512.png -------------------------------------------------------------------------------- /favicon/site.webmanifest: -------------------------------------------------------------------------------- 1 | {"name":"","short_name":"","icons":[{"src":"/android-chrome-192x192.png","sizes":"192x192","type":"image/png"},{"src":"/android-chrome-512x512.png","sizes":"512x512","type":"image/png"}],"theme_color":"#ffffff","background_color":"#ffffff","display":"standalone"} -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Chrome Extension Icon Generator 2 | 3 | ![GitHub followers](https://img.shields.io/github/followers/alexleybourne?style=social) 4 | ![Twitter Follow](https://img.shields.io/twitter/follow/AlexLeybourne?style=social) 5 | 6 | Tool Link: [Chrome Extension Icon Generator](https://alexleybourne.github.io/chrome-extension-icon-generator/) 7 | 8 | This is a simple tool to generate icons for Chrome extensions. It takes any image above 128x128px and generates all the sizes needed for Chrome extensions. 9 | 10 | It will create a `16px`, `32px`, `48px` and a `128px` icon from the image you upload. 11 | 12 | It will then give you the code to add to your manifest.json file. 13 | 14 | ``` 15 | "icons": { 16 | "16": "icon16.png", 17 | "32": "icon32.png", 18 | "48": "icon48.png", 19 | "128": "icon128.png" 20 | }, 21 | ``` 22 | 23 | Chrome docs for chrome extension manifest v3 icons: [Here](https://developer.chrome.com/docs/extensions/mv3/manifest/icons/) 24 | 25 | Icons from [Hero Icons](https://heroicons.com/) 26 | -------------------------------------------------------------------------------- /styles.css.map: -------------------------------------------------------------------------------- 1 | { 2 | "version": 3, 3 | "mappings": "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", 4 | "sources": [ 5 | "styles.scss" 6 | ], 7 | "names": [], 8 | "file": "styles.css" 9 | } -------------------------------------------------------------------------------- /styles.scss: -------------------------------------------------------------------------------- 1 | .flex { 2 | display: flex; 3 | align-items: center; 4 | justify-content: center; 5 | } 6 | 7 | $blue: #1e90ff; 8 | 9 | .hidden { 10 | display: none; 11 | opacity: 0; 12 | pointer-events: none; 13 | position: absolute; 14 | } 15 | 16 | body { 17 | margin: 0; 18 | font-family: 'roboto', sans-serif; 19 | background-color: #222; 20 | color: #f0f0f0; 21 | @extend .flex; 22 | flex-direction: column; 23 | width: 100vw; 24 | min-height: 100vh; 25 | } 26 | 27 | .container { 28 | width: 90%; 29 | max-width: 90%; 30 | margin: 20px 0; 31 | padding-top: 2rem; 32 | flex-direction: column; 33 | @extend .flex; 34 | 35 | h1 { 36 | margin-bottom: 1rem; 37 | @extend .flex; 38 | 39 | img { 40 | margin-right: 8px; 41 | height: 36px; 42 | width: 36px; 43 | } 44 | } 45 | 46 | input[type='file'] { 47 | margin-bottom: 2rem; 48 | cursor: pointer; 49 | color: #f0f0f0; 50 | } 51 | 52 | .small { 53 | height: 100px !important; 54 | } 55 | 56 | .drag-area { 57 | display: flex; 58 | flex-direction: column; 59 | justify-content: center; 60 | align-items: center; 61 | max-width: 500px; 62 | width: 100%; 63 | height: 200px; 64 | border: 2px dashed $blue; 65 | border-radius: 5px; 66 | cursor: pointer; 67 | margin: 20px; 68 | transition-duration: 0.2s; 69 | 70 | h2 { 71 | @extend .flex; 72 | color: $blue; 73 | svg { 74 | margin-left: 4px; 75 | width: 22px; 76 | height: 22px; 77 | } 78 | } 79 | 80 | p { 81 | margin-top: 0; 82 | text-align: center; 83 | color: $blue; 84 | } 85 | 86 | &:active { 87 | transform: scale(0.94); 88 | } 89 | 90 | &:hover { 91 | border: 2px solid $blue; 92 | background-color: rgba(97, 175, 239, 0.3); 93 | } 94 | } 95 | 96 | .blue-button { 97 | margin-bottom: 10px; 98 | text-decoration: none; 99 | color: $blue; 100 | border: 1px solid $blue; 101 | padding: 0.5rem 1rem; 102 | border-radius: 4px; 103 | transition: background-color 0.3s, color 0.3s; 104 | background: none; 105 | cursor: pointer; 106 | width: 160px; 107 | text-align: center; 108 | font-size: 0.9em; 109 | @extend .flex; 110 | 111 | svg { 112 | height: 16px; 113 | width: 16px; 114 | margin-left: 4px; 115 | } 116 | 117 | &:hover { 118 | background-color: $blue; 119 | color: #f0f0f0; 120 | } 121 | 122 | &:active { 123 | transform: scale(0.94); 124 | } 125 | } 126 | 127 | #outputImages { 128 | display: flex; 129 | align-items: center; 130 | justify-content: center; 131 | flex-flow: wrap; 132 | 133 | div { 134 | width: 200px; 135 | height: 200px; 136 | margin: 20px 8px 40px 8px; 137 | @extend .flex; 138 | flex-direction: column; 139 | 140 | img { 141 | height: 100%; 142 | width: 100%; 143 | object-fit: scale-down; 144 | } 145 | } 146 | } 147 | 148 | #downloadAll { 149 | width: 194px; 150 | } 151 | 152 | #code-snippet { 153 | p { 154 | text-align: center; 155 | } 156 | 157 | margin-bottom: 20px; 158 | 159 | .code-snippet-container { 160 | margin-bottom: 10px; 161 | position: relative; 162 | background-color: #282c34; 163 | color: #abb2bf; 164 | border-radius: 4px; 165 | padding: 1rem; 166 | font-family: 'Courier New', monospace; 167 | overflow: auto; 168 | 169 | pre { 170 | margin: 0; 171 | padding: 20px 64px 2px 0px; 172 | } 173 | 174 | .copy-btn { 175 | display: flex; 176 | position: absolute; 177 | top: 5px; 178 | right: 5px; 179 | background: none; 180 | outline: 1px solid $blue; 181 | color: $blue; 182 | font-size: 12px; 183 | padding: 5px 10px; 184 | border: none; 185 | border-radius: 5px; 186 | cursor: pointer; 187 | transition-duration: 0.2s; 188 | 189 | &:active { 190 | transform: scale(0.94); 191 | } 192 | 193 | &:hover { 194 | background-color: $blue; 195 | color: #f0f0f0; 196 | } 197 | 198 | svg { 199 | height: 16px; 200 | width: 16px; 201 | margin-left: 4px; 202 | } 203 | } 204 | } 205 | } 206 | } 207 | 208 | footer { 209 | margin: 2rem; 210 | font-size: 0.8em; 211 | text-align: center; 212 | font-size: 14px; 213 | 214 | .github { 215 | @extend .flex; 216 | 217 | a { 218 | @extend .flex; 219 | } 220 | svg { 221 | margin-right: 4px; 222 | height: 16px; 223 | width: 16px; 224 | } 225 | } 226 | 227 | a { 228 | color: white; 229 | text-decoration: none; 230 | font-weight: bold; 231 | transition-duration: 0.2s; 232 | 233 | &:hover { 234 | text-decoration: underline; 235 | font-size: 16px; 236 | transition-duration: 0.2s; 237 | } 238 | } 239 | } 240 | -------------------------------------------------------------------------------- /styles.css: -------------------------------------------------------------------------------- 1 | .flex, body, .container, .container h1, .container .drag-area h2, .container .blue-button, .container #outputImages div, footer .github, footer .github a { 2 | display: -webkit-box; 3 | display: -ms-flexbox; 4 | display: flex; 5 | -webkit-box-align: center; 6 | -ms-flex-align: center; 7 | align-items: center; 8 | -webkit-box-pack: center; 9 | -ms-flex-pack: center; 10 | justify-content: center; 11 | } 12 | 13 | .hidden { 14 | display: none; 15 | opacity: 0; 16 | pointer-events: none; 17 | position: absolute; 18 | } 19 | 20 | body { 21 | margin: 0; 22 | font-family: 'roboto', sans-serif; 23 | background-color: #222; 24 | color: #f0f0f0; 25 | -webkit-box-orient: vertical; 26 | -webkit-box-direction: normal; 27 | -ms-flex-direction: column; 28 | flex-direction: column; 29 | width: 100vw; 30 | min-height: 100vh; 31 | } 32 | 33 | .container { 34 | width: 90%; 35 | max-width: 90%; 36 | margin: 20px 0; 37 | padding-top: 2rem; 38 | -webkit-box-orient: vertical; 39 | -webkit-box-direction: normal; 40 | -ms-flex-direction: column; 41 | flex-direction: column; 42 | } 43 | 44 | .container h1 { 45 | margin-bottom: 1rem; 46 | } 47 | 48 | .container h1 img { 49 | margin-right: 8px; 50 | height: 36px; 51 | width: 36px; 52 | } 53 | 54 | .container input[type='file'] { 55 | margin-bottom: 2rem; 56 | cursor: pointer; 57 | color: #f0f0f0; 58 | } 59 | 60 | .container .small { 61 | height: 100px !important; 62 | } 63 | 64 | .container .drag-area { 65 | display: -webkit-box; 66 | display: -ms-flexbox; 67 | display: flex; 68 | -webkit-box-orient: vertical; 69 | -webkit-box-direction: normal; 70 | -ms-flex-direction: column; 71 | flex-direction: column; 72 | -webkit-box-pack: center; 73 | -ms-flex-pack: center; 74 | justify-content: center; 75 | -webkit-box-align: center; 76 | -ms-flex-align: center; 77 | align-items: center; 78 | max-width: 500px; 79 | width: 100%; 80 | height: 200px; 81 | border: 2px dashed #1e90ff; 82 | border-radius: 5px; 83 | cursor: pointer; 84 | margin: 20px; 85 | -webkit-transition-duration: 0.2s; 86 | transition-duration: 0.2s; 87 | } 88 | 89 | .container .drag-area h2 { 90 | color: #1e90ff; 91 | } 92 | 93 | .container .drag-area h2 svg { 94 | margin-left: 4px; 95 | width: 22px; 96 | height: 22px; 97 | } 98 | 99 | .container .drag-area p { 100 | margin-top: 0; 101 | text-align: center; 102 | color: #1e90ff; 103 | } 104 | 105 | .container .drag-area:active { 106 | -webkit-transform: scale(0.94); 107 | transform: scale(0.94); 108 | } 109 | 110 | .container .drag-area:hover { 111 | border: 2px solid #1e90ff; 112 | background-color: rgba(97, 175, 239, 0.3); 113 | } 114 | 115 | .container .blue-button { 116 | margin-bottom: 10px; 117 | text-decoration: none; 118 | color: #1e90ff; 119 | border: 1px solid #1e90ff; 120 | padding: 0.5rem 1rem; 121 | border-radius: 4px; 122 | -webkit-transition: background-color 0.3s, color 0.3s; 123 | transition: background-color 0.3s, color 0.3s; 124 | background: none; 125 | cursor: pointer; 126 | width: 160px; 127 | text-align: center; 128 | font-size: 0.9em; 129 | } 130 | 131 | .container .blue-button svg { 132 | height: 16px; 133 | width: 16px; 134 | margin-left: 4px; 135 | } 136 | 137 | .container .blue-button:hover { 138 | background-color: #1e90ff; 139 | color: #f0f0f0; 140 | } 141 | 142 | .container .blue-button:active { 143 | -webkit-transform: scale(0.94); 144 | transform: scale(0.94); 145 | } 146 | 147 | .container #outputImages { 148 | display: -webkit-box; 149 | display: -ms-flexbox; 150 | display: flex; 151 | -webkit-box-align: center; 152 | -ms-flex-align: center; 153 | align-items: center; 154 | -webkit-box-pack: center; 155 | -ms-flex-pack: center; 156 | justify-content: center; 157 | -ms-flex-flow: wrap; 158 | flex-flow: wrap; 159 | } 160 | 161 | .container #outputImages div { 162 | width: 200px; 163 | height: 200px; 164 | margin: 20px 8px 40px 8px; 165 | -webkit-box-orient: vertical; 166 | -webkit-box-direction: normal; 167 | -ms-flex-direction: column; 168 | flex-direction: column; 169 | } 170 | 171 | .container #outputImages div img { 172 | height: 100%; 173 | width: 100%; 174 | -o-object-fit: scale-down; 175 | object-fit: scale-down; 176 | } 177 | 178 | .container #downloadAll { 179 | width: 194px; 180 | } 181 | 182 | .container #code-snippet { 183 | margin-bottom: 20px; 184 | } 185 | 186 | .container #code-snippet p { 187 | text-align: center; 188 | } 189 | 190 | .container #code-snippet .code-snippet-container { 191 | margin-bottom: 10px; 192 | position: relative; 193 | background-color: #282c34; 194 | color: #abb2bf; 195 | border-radius: 4px; 196 | padding: 1rem; 197 | font-family: 'Courier New', monospace; 198 | overflow: auto; 199 | } 200 | 201 | .container #code-snippet .code-snippet-container pre { 202 | margin: 0; 203 | padding: 20px 64px 2px 0px; 204 | } 205 | 206 | .container #code-snippet .code-snippet-container .copy-btn { 207 | display: -webkit-box; 208 | display: -ms-flexbox; 209 | display: flex; 210 | position: absolute; 211 | top: 5px; 212 | right: 5px; 213 | background: none; 214 | outline: 1px solid #1e90ff; 215 | color: #1e90ff; 216 | font-size: 12px; 217 | padding: 5px 10px; 218 | border: none; 219 | border-radius: 5px; 220 | cursor: pointer; 221 | -webkit-transition-duration: 0.2s; 222 | transition-duration: 0.2s; 223 | } 224 | 225 | .container #code-snippet .code-snippet-container .copy-btn:active { 226 | -webkit-transform: scale(0.94); 227 | transform: scale(0.94); 228 | } 229 | 230 | .container #code-snippet .code-snippet-container .copy-btn:hover { 231 | background-color: #1e90ff; 232 | color: #f0f0f0; 233 | } 234 | 235 | .container #code-snippet .code-snippet-container .copy-btn svg { 236 | height: 16px; 237 | width: 16px; 238 | margin-left: 4px; 239 | } 240 | 241 | footer { 242 | margin: 2rem; 243 | font-size: 0.8em; 244 | text-align: center; 245 | font-size: 14px; 246 | } 247 | 248 | footer .github svg { 249 | margin-right: 4px; 250 | height: 16px; 251 | width: 16px; 252 | } 253 | 254 | footer a { 255 | color: white; 256 | text-decoration: none; 257 | font-weight: bold; 258 | -webkit-transition-duration: 0.2s; 259 | transition-duration: 0.2s; 260 | } 261 | 262 | footer a:hover { 263 | text-decoration: underline; 264 | font-size: 16px; 265 | -webkit-transition-duration: 0.2s; 266 | transition-duration: 0.2s; 267 | } 268 | /*# sourceMappingURL=styles.css.map */ -------------------------------------------------------------------------------- /script.js: -------------------------------------------------------------------------------- 1 | let zip = new JSZip(); 2 | 3 | const inputImage = document.getElementById('inputImage'); 4 | const dragArea = document.getElementById('dragArea'); 5 | const outputImages = document.getElementById('outputImages'); 6 | const uploadTitle = document.getElementById('uploadTitle'); 7 | const uploadSubtitle = document.getElementById('uploadSubtitle'); 8 | 9 | dragArea.addEventListener('dragover', (e) => { 10 | e.preventDefault(); 11 | dragArea.style.backgroundColor = 'rgba(97, 175, 239, 0.3)'; 12 | }); 13 | 14 | dragArea.addEventListener('dragleave', (e) => { 15 | e.preventDefault(); 16 | dragArea.style.backgroundColor = ''; 17 | }); 18 | 19 | dragArea.addEventListener('drop', (e) => { 20 | e.preventDefault(); 21 | dragArea.style.backgroundColor = ''; 22 | inputImage.files = e.dataTransfer.files; 23 | resizeImage(); 24 | }); 25 | 26 | dragArea.addEventListener('click', (e) => { 27 | inputImage.click(); 28 | }); 29 | 30 | const resizeImage = () => { 31 | // Created new zip file to avoid appending to the same zip file 32 | zip = new JSZip(); 33 | outputImages.innerHTML = ''; 34 | 35 | const downloadAllButton = document.getElementById('downloadAll'); 36 | const codeSnippet = document.getElementById('code-snippet'); 37 | downloadAllButton.classList.add('hidden'); 38 | codeSnippet.classList.add('hidden'); 39 | uploadTitle.innerHTML = 'Upload file'; 40 | uploadSubtitle.innerHTML = 'click or drag and drop your file here'; 41 | dragArea.classList.remove('small'); 42 | 43 | if (inputImage.files && inputImage.files[0]) { 44 | uploadTitle.innerHTML = 'Click to change file'; 45 | uploadSubtitle.innerHTML = inputImage.files[0].name; 46 | dragArea.classList.add('small'); 47 | 48 | const reader = new FileReader(); 49 | reader.onload = function (event) { 50 | const img = new Image(); 51 | img.src = event.target.result; 52 | 53 | img.onload = function () { 54 | const sizes = [128, 48, 32, 16]; 55 | sizes.forEach((size) => { 56 | const resizedImage = document.createElement('canvas'); 57 | resizedImage.width = size; 58 | resizedImage.height = size; 59 | 60 | const ctx = resizedImage.getContext('2d'); 61 | ctx.drawImage(img, 0, 0, size, size); 62 | 63 | const imageDataURL = resizedImage.toDataURL(inputImage.files[0].type); 64 | 65 | const preview = document.createElement('img'); 66 | preview.src = imageDataURL; 67 | preview.width = size; 68 | preview.height = size; 69 | 70 | const link = document.createElement('a'); 71 | link.classList.add('blue-button'); 72 | link.download = `icon${size}.${getFileExtension( 73 | inputImage.files[0].type 74 | )}`; 75 | link.href = imageDataURL; 76 | link.innerHTML = `Download ${size}x${size} px`; 77 | 78 | const div = document.createElement('div'); 79 | div.appendChild(preview); 80 | div.appendChild(link); 81 | outputImages.appendChild(div); 82 | 83 | zip.file(link.download, imageDataURL.split('base64,')[1], { 84 | base64: true, 85 | }); 86 | }); 87 | 88 | downloadAllButton.classList.remove('hidden'); 89 | codeSnippet.classList.remove('hidden'); 90 | downloadAllButton.disabled = false; 91 | }; 92 | }; 93 | reader.readAsDataURL(inputImage.files[0]); 94 | } 95 | }; 96 | 97 | const getFileExtension = (mimeType) => { 98 | switch (mimeType) { 99 | case 'image/jpeg': 100 | return 'jpeg'; 101 | case 'image/png': 102 | return 'png'; 103 | default: 104 | return 'png'; // Defaults to png 105 | } 106 | }; 107 | 108 | const copyToClipboard = () => { 109 | const codeSnippet = document.getElementById('codeSnippet'); 110 | const copyButton = document.getElementById('copy-button'); 111 | const range = document.createRange(); 112 | const selection = window.getSelection(); 113 | 114 | range.selectNodeContents(codeSnippet); 115 | selection.removeAllRanges(); 116 | selection.addRange(range); 117 | 118 | try { 119 | document.execCommand('copy'); 120 | copyButton.innerHTML = `Copied 121 | 122 | 123 | 124 | `; 125 | } catch (err) { 126 | copyButton.innerHTML = `Error 127 | 128 | 129 | `; 130 | } 131 | 132 | setTimeout(() => { 133 | copyButton.innerHTML = `Copy 134 | 135 | 136 | 137 | 138 | `; 139 | }, 2000); 140 | 141 | selection.removeAllRanges(); 142 | }; 143 | 144 | const downloadAll = () => { 145 | zip.generateAsync({ type: 'blob' }).then(function (content) { 146 | const link = document.createElement('a'); 147 | link.href = URL.createObjectURL(content); 148 | link.download = 'icons.zip'; 149 | document.body.appendChild(link); 150 | link.click(); 151 | document.body.removeChild(link); 152 | }); 153 | }; 154 | -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 13 | 19 | 25 | 26 | 27 | 28 | 32 | 36 | 37 | 38 | 39 | 40 | 44 | 48 | 52 | 53 | 54 | 55 | 56 | 57 | 61 | 65 | 66 | Chrome Extension Icon Generator 67 | 68 | 69 |
70 |

71 | logo 72 | Chrome Extension Icon Generator 73 |

74 |
75 | 76 | 77 |

78 | Upload file 79 | 85 | 90 | 93 | 94 |

95 |

click or drag and drop your file here

96 |
97 | 103 | 104 |
105 | 125 | 162 | 167 | Extension Docs 168 | 174 | 179 | 182 | 183 | 184 |
185 | 214 | 215 | 216 | 217 | -------------------------------------------------------------------------------- /jszip.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | 3 | JSZip v3.5.0 - A JavaScript class for generating and reading zip files 4 | 5 | 6 | (c) 2009-2016 Stuart Knightley 7 | Dual licenced under the MIT license or GPLv3. See https://raw.github.com/Stuk/jszip/master/LICENSE.markdown. 8 | 9 | JSZip uses the library pako released under the MIT license : 10 | https://github.com/nodeca/pako/blob/master/LICENSE 11 | */ 12 | 13 | !function(t){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{("undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this).JSZip=t()}}(function(){return function s(a,o,h){function u(r,t){if(!o[r]){if(!a[r]){var e="function"==typeof require&&require;if(!t&&e)return e(r,!0);if(l)return l(r,!0);var i=new Error("Cannot find module '"+r+"'");throw i.code="MODULE_NOT_FOUND",i}var n=o[r]={exports:{}};a[r][0].call(n.exports,function(t){var e=a[r][1][t];return u(e||t)},n,n.exports,s,a,o,h)}return o[r].exports}for(var l="function"==typeof require&&require,t=0;t>2,s=(3&e)<<4|r>>4,a=1>6:64,o=2>4,r=(15&n)<<4|(s=p.indexOf(t.charAt(o++)))>>2,i=(3&s)<<6|(a=p.indexOf(t.charAt(o++))),l[h++]=e,64!==s&&(l[h++]=r),64!==a&&(l[h++]=i);return l}},{"./support":30,"./utils":32}],2:[function(t,e,r){"use strict";var i=t("./external"),n=t("./stream/DataWorker"),s=t("./stream/DataLengthProbe"),a=t("./stream/Crc32Probe");s=t("./stream/DataLengthProbe");function o(t,e,r,i,n){this.compressedSize=t,this.uncompressedSize=e,this.crc32=r,this.compression=i,this.compressedContent=n}o.prototype={getContentWorker:function(){var t=new n(i.Promise.resolve(this.compressedContent)).pipe(this.compression.uncompressWorker()).pipe(new s("data_length")),e=this;return t.on("end",function(){if(this.streamInfo.data_length!==e.uncompressedSize)throw new Error("Bug : uncompressed data size mismatch")}),t},getCompressedWorker:function(){return new n(i.Promise.resolve(this.compressedContent)).withStreamInfo("compressedSize",this.compressedSize).withStreamInfo("uncompressedSize",this.uncompressedSize).withStreamInfo("crc32",this.crc32).withStreamInfo("compression",this.compression)}},o.createWorkerFrom=function(t,e,r){return t.pipe(new a).pipe(new s("uncompressedSize")).pipe(e.compressWorker(r)).pipe(new s("compressedSize")).withStreamInfo("compression",e)},e.exports=o},{"./external":6,"./stream/Crc32Probe":25,"./stream/DataLengthProbe":26,"./stream/DataWorker":27}],3:[function(t,e,r){"use strict";var i=t("./stream/GenericWorker");r.STORE={magic:"\0\0",compressWorker:function(t){return new i("STORE compression")},uncompressWorker:function(){return new i("STORE decompression")}},r.DEFLATE=t("./flate")},{"./flate":7,"./stream/GenericWorker":28}],4:[function(t,e,r){"use strict";var i=t("./utils");var o=function(){for(var t,e=[],r=0;r<256;r++){t=r;for(var i=0;i<8;i++)t=1&t?3988292384^t>>>1:t>>>1;e[r]=t}return e}();e.exports=function(t,e){return void 0!==t&&t.length?"string"!==i.getTypeOf(t)?function(t,e,r,i){var n=o,s=i+r;t^=-1;for(var a=i;a>>8^n[255&(t^e[a])];return-1^t}(0|e,t,t.length,0):function(t,e,r,i){var n=o,s=i+r;t^=-1;for(var a=i;a>>8^n[255&(t^e.charCodeAt(a))];return-1^t}(0|e,t,t.length,0):0}},{"./utils":32}],5:[function(t,e,r){"use strict";r.base64=!1,r.binary=!1,r.dir=!1,r.createFolders=!0,r.date=null,r.compression=null,r.compressionOptions=null,r.comment=null,r.unixPermissions=null,r.dosPermissions=null},{}],6:[function(t,e,r){"use strict";var i=null;i="undefined"!=typeof Promise?Promise:t("lie"),e.exports={Promise:i}},{lie:37}],7:[function(t,e,r){"use strict";var i="undefined"!=typeof Uint8Array&&"undefined"!=typeof Uint16Array&&"undefined"!=typeof Uint32Array,n=t("pako"),s=t("./utils"),a=t("./stream/GenericWorker"),o=i?"uint8array":"array";function h(t,e){a.call(this,"FlateWorker/"+t),this._pako=null,this._pakoAction=t,this._pakoOptions=e,this.meta={}}r.magic="\b\0",s.inherits(h,a),h.prototype.processChunk=function(t){this.meta=t.meta,null===this._pako&&this._createPako(),this._pako.push(s.transformTo(o,t.data),!1)},h.prototype.flush=function(){a.prototype.flush.call(this),null===this._pako&&this._createPako(),this._pako.push([],!0)},h.prototype.cleanUp=function(){a.prototype.cleanUp.call(this),this._pako=null},h.prototype._createPako=function(){this._pako=new n[this._pakoAction]({raw:!0,level:this._pakoOptions.level||-1});var e=this;this._pako.onData=function(t){e.push({data:t,meta:e.meta})}},r.compressWorker=function(t){return new h("Deflate",t)},r.uncompressWorker=function(){return new h("Inflate",{})}},{"./stream/GenericWorker":28,"./utils":32,pako:38}],8:[function(t,e,r){"use strict";function A(t,e){var r,i="";for(r=0;r>>=8;return i}function i(t,e,r,i,n,s){var a,o,h=t.file,u=t.compression,l=s!==O.utf8encode,f=I.transformTo("string",s(h.name)),d=I.transformTo("string",O.utf8encode(h.name)),c=h.comment,p=I.transformTo("string",s(c)),m=I.transformTo("string",O.utf8encode(c)),_=d.length!==h.name.length,g=m.length!==c.length,b="",v="",y="",w=h.dir,k=h.date,x={crc32:0,compressedSize:0,uncompressedSize:0};e&&!r||(x.crc32=t.crc32,x.compressedSize=t.compressedSize,x.uncompressedSize=t.uncompressedSize);var S=0;e&&(S|=8),l||!_&&!g||(S|=2048);var z=0,C=0;w&&(z|=16),"UNIX"===n?(C=798,z|=function(t,e){var r=t;return t||(r=e?16893:33204),(65535&r)<<16}(h.unixPermissions,w)):(C=20,z|=function(t){return 63&(t||0)}(h.dosPermissions)),a=k.getUTCHours(),a<<=6,a|=k.getUTCMinutes(),a<<=5,a|=k.getUTCSeconds()/2,o=k.getUTCFullYear()-1980,o<<=4,o|=k.getUTCMonth()+1,o<<=5,o|=k.getUTCDate(),_&&(v=A(1,1)+A(B(f),4)+d,b+="up"+A(v.length,2)+v),g&&(y=A(1,1)+A(B(p),4)+m,b+="uc"+A(y.length,2)+y);var E="";return E+="\n\0",E+=A(S,2),E+=u.magic,E+=A(a,2),E+=A(o,2),E+=A(x.crc32,4),E+=A(x.compressedSize,4),E+=A(x.uncompressedSize,4),E+=A(f.length,2),E+=A(b.length,2),{fileRecord:R.LOCAL_FILE_HEADER+E+f+b,dirRecord:R.CENTRAL_FILE_HEADER+A(C,2)+E+A(p.length,2)+"\0\0\0\0"+A(z,4)+A(i,4)+f+b+p}}var I=t("../utils"),n=t("../stream/GenericWorker"),O=t("../utf8"),B=t("../crc32"),R=t("../signature");function s(t,e,r,i){n.call(this,"ZipFileWorker"),this.bytesWritten=0,this.zipComment=e,this.zipPlatform=r,this.encodeFileName=i,this.streamFiles=t,this.accumulate=!1,this.contentBuffer=[],this.dirRecords=[],this.currentSourceOffset=0,this.entriesCount=0,this.currentFile=null,this._sources=[]}I.inherits(s,n),s.prototype.push=function(t){var e=t.meta.percent||0,r=this.entriesCount,i=this._sources.length;this.accumulate?this.contentBuffer.push(t):(this.bytesWritten+=t.data.length,n.prototype.push.call(this,{data:t.data,meta:{currentFile:this.currentFile,percent:r?(e+100*(r-i-1))/r:100}}))},s.prototype.openedSource=function(t){this.currentSourceOffset=this.bytesWritten,this.currentFile=t.file.name;var e=this.streamFiles&&!t.file.dir;if(e){var r=i(t,e,!1,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);this.push({data:r.fileRecord,meta:{percent:0}})}else this.accumulate=!0},s.prototype.closedSource=function(t){this.accumulate=!1;var e=this.streamFiles&&!t.file.dir,r=i(t,e,!0,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);if(this.dirRecords.push(r.dirRecord),e)this.push({data:function(t){return R.DATA_DESCRIPTOR+A(t.crc32,4)+A(t.compressedSize,4)+A(t.uncompressedSize,4)}(t),meta:{percent:100}});else for(this.push({data:r.fileRecord,meta:{percent:0}});this.contentBuffer.length;)this.push(this.contentBuffer.shift());this.currentFile=null},s.prototype.flush=function(){for(var t=this.bytesWritten,e=0;e=this.index;e--)r=(r<<8)+this.byteAt(e);return this.index+=t,r},readString:function(t){return i.transformTo("string",this.readData(t))},readData:function(t){},lastIndexOfSignature:function(t){},readAndCheckSignature:function(t){},readDate:function(){var t=this.readInt(4);return new Date(Date.UTC(1980+(t>>25&127),(t>>21&15)-1,t>>16&31,t>>11&31,t>>5&63,(31&t)<<1))}},e.exports=n},{"../utils":32}],19:[function(t,e,r){"use strict";var i=t("./Uint8ArrayReader");function n(t){i.call(this,t)}t("../utils").inherits(n,i),n.prototype.readData=function(t){this.checkOffset(t);var e=this.data.slice(this.zero+this.index,this.zero+this.index+t);return this.index+=t,e},e.exports=n},{"../utils":32,"./Uint8ArrayReader":21}],20:[function(t,e,r){"use strict";var i=t("./DataReader");function n(t){i.call(this,t)}t("../utils").inherits(n,i),n.prototype.byteAt=function(t){return this.data.charCodeAt(this.zero+t)},n.prototype.lastIndexOfSignature=function(t){return this.data.lastIndexOf(t)-this.zero},n.prototype.readAndCheckSignature=function(t){return t===this.readData(4)},n.prototype.readData=function(t){this.checkOffset(t);var e=this.data.slice(this.zero+this.index,this.zero+this.index+t);return this.index+=t,e},e.exports=n},{"../utils":32,"./DataReader":18}],21:[function(t,e,r){"use strict";var i=t("./ArrayReader");function n(t){i.call(this,t)}t("../utils").inherits(n,i),n.prototype.readData=function(t){if(this.checkOffset(t),0===t)return new Uint8Array(0);var e=this.data.subarray(this.zero+this.index,this.zero+this.index+t);return this.index+=t,e},e.exports=n},{"../utils":32,"./ArrayReader":17}],22:[function(t,e,r){"use strict";var i=t("../utils"),n=t("../support"),s=t("./ArrayReader"),a=t("./StringReader"),o=t("./NodeBufferReader"),h=t("./Uint8ArrayReader");e.exports=function(t){var e=i.getTypeOf(t);return i.checkSupport(e),"string"!==e||n.uint8array?"nodebuffer"===e?new o(t):n.uint8array?new h(i.transformTo("uint8array",t)):new s(i.transformTo("array",t)):new a(t)}},{"../support":30,"../utils":32,"./ArrayReader":17,"./NodeBufferReader":19,"./StringReader":20,"./Uint8ArrayReader":21}],23:[function(t,e,r){"use strict";r.LOCAL_FILE_HEADER="PK",r.CENTRAL_FILE_HEADER="PK",r.CENTRAL_DIRECTORY_END="PK",r.ZIP64_CENTRAL_DIRECTORY_LOCATOR="PK",r.ZIP64_CENTRAL_DIRECTORY_END="PK",r.DATA_DESCRIPTOR="PK\b"},{}],24:[function(t,e,r){"use strict";var i=t("./GenericWorker"),n=t("../utils");function s(t){i.call(this,"ConvertWorker to "+t),this.destType=t}n.inherits(s,i),s.prototype.processChunk=function(t){this.push({data:n.transformTo(this.destType,t.data),meta:t.meta})},e.exports=s},{"../utils":32,"./GenericWorker":28}],25:[function(t,e,r){"use strict";var i=t("./GenericWorker"),n=t("../crc32");function s(){i.call(this,"Crc32Probe"),this.withStreamInfo("crc32",0)}t("../utils").inherits(s,i),s.prototype.processChunk=function(t){this.streamInfo.crc32=n(t.data,this.streamInfo.crc32||0),this.push(t)},e.exports=s},{"../crc32":4,"../utils":32,"./GenericWorker":28}],26:[function(t,e,r){"use strict";var i=t("../utils"),n=t("./GenericWorker");function s(t){n.call(this,"DataLengthProbe for "+t),this.propName=t,this.withStreamInfo(t,0)}i.inherits(s,n),s.prototype.processChunk=function(t){if(t){var e=this.streamInfo[this.propName]||0;this.streamInfo[this.propName]=e+t.data.length}n.prototype.processChunk.call(this,t)},e.exports=s},{"../utils":32,"./GenericWorker":28}],27:[function(t,e,r){"use strict";var i=t("../utils"),n=t("./GenericWorker");function s(t){n.call(this,"DataWorker");var e=this;this.dataIsReady=!1,this.index=0,this.max=0,this.data=null,this.type="",this._tickScheduled=!1,t.then(function(t){e.dataIsReady=!0,e.data=t,e.max=t&&t.length||0,e.type=i.getTypeOf(t),e.isPaused||e._tickAndRepeat()},function(t){e.error(t)})}i.inherits(s,n),s.prototype.cleanUp=function(){n.prototype.cleanUp.call(this),this.data=null},s.prototype.resume=function(){return!!n.prototype.resume.call(this)&&(!this._tickScheduled&&this.dataIsReady&&(this._tickScheduled=!0,i.delay(this._tickAndRepeat,[],this)),!0)},s.prototype._tickAndRepeat=function(){this._tickScheduled=!1,this.isPaused||this.isFinished||(this._tick(),this.isFinished||(i.delay(this._tickAndRepeat,[],this),this._tickScheduled=!0))},s.prototype._tick=function(){if(this.isPaused||this.isFinished)return!1;var t=null,e=Math.min(this.max,this.index+16384);if(this.index>=this.max)return this.end();switch(this.type){case"string":t=this.data.substring(this.index,e);break;case"uint8array":t=this.data.subarray(this.index,e);break;case"array":case"nodebuffer":t=this.data.slice(this.index,e)}return this.index=e,this.push({data:t,meta:{percent:this.max?this.index/this.max*100:0}})},e.exports=s},{"../utils":32,"./GenericWorker":28}],28:[function(t,e,r){"use strict";function i(t){this.name=t||"default",this.streamInfo={},this.generatedError=null,this.extraStreamInfo={},this.isPaused=!0,this.isFinished=!1,this.isLocked=!1,this._listeners={data:[],end:[],error:[]},this.previous=null}i.prototype={push:function(t){this.emit("data",t)},end:function(){if(this.isFinished)return!1;this.flush();try{this.emit("end"),this.cleanUp(),this.isFinished=!0}catch(t){this.emit("error",t)}return!0},error:function(t){return!this.isFinished&&(this.isPaused?this.generatedError=t:(this.isFinished=!0,this.emit("error",t),this.previous&&this.previous.error(t),this.cleanUp()),!0)},on:function(t,e){return this._listeners[t].push(e),this},cleanUp:function(){this.streamInfo=this.generatedError=this.extraStreamInfo=null,this._listeners=[]},emit:function(t,e){if(this._listeners[t])for(var r=0;r "+t:t}},e.exports=i},{}],29:[function(t,e,r){"use strict";var h=t("../utils"),n=t("./ConvertWorker"),s=t("./GenericWorker"),u=t("../base64"),i=t("../support"),a=t("../external"),o=null;if(i.nodestream)try{o=t("../nodejs/NodejsStreamOutputAdapter")}catch(t){}function l(t,o){return new a.Promise(function(e,r){var i=[],n=t._internalType,s=t._outputType,a=t._mimeType;t.on("data",function(t,e){i.push(t),o&&o(e)}).on("error",function(t){i=[],r(t)}).on("end",function(){try{var t=function(t,e,r){switch(t){case"blob":return h.newBlob(h.transformTo("arraybuffer",e),r);case"base64":return u.encode(e);default:return h.transformTo(t,e)}}(s,function(t,e){var r,i=0,n=null,s=0;for(r=0;r>>6:(r<65536?e[s++]=224|r>>>12:(e[s++]=240|r>>>18,e[s++]=128|r>>>12&63),e[s++]=128|r>>>6&63),e[s++]=128|63&r);return e}(t)},s.utf8decode=function(t){return h.nodebuffer?o.transformTo("nodebuffer",t).toString("utf-8"):function(t){var e,r,i,n,s=t.length,a=new Array(2*s);for(e=r=0;e>10&1023,a[r++]=56320|1023&i)}return a.length!==r&&(a.subarray?a=a.subarray(0,r):a.length=r),o.applyFromCharCode(a)}(t=o.transformTo(h.uint8array?"uint8array":"array",t))},o.inherits(a,i),a.prototype.processChunk=function(t){var e=o.transformTo(h.uint8array?"uint8array":"array",t.data);if(this.leftOver&&this.leftOver.length){if(h.uint8array){var r=e;(e=new Uint8Array(r.length+this.leftOver.length)).set(this.leftOver,0),e.set(r,this.leftOver.length)}else e=this.leftOver.concat(e);this.leftOver=null}var i=function(t,e){var r;for((e=e||t.length)>t.length&&(e=t.length),r=e-1;0<=r&&128==(192&t[r]);)r--;return r<0?e:0===r?e:r+u[t[r]]>e?r:e}(e),n=e;i!==e.length&&(h.uint8array?(n=e.subarray(0,i),this.leftOver=e.subarray(i,e.length)):(n=e.slice(0,i),this.leftOver=e.slice(i,e.length))),this.push({data:s.utf8decode(n),meta:t.meta})},a.prototype.flush=function(){this.leftOver&&this.leftOver.length&&(this.push({data:s.utf8decode(this.leftOver),meta:{}}),this.leftOver=null)},s.Utf8DecodeWorker=a,o.inherits(l,i),l.prototype.processChunk=function(t){this.push({data:s.utf8encode(t.data),meta:t.meta})},s.Utf8EncodeWorker=l},{"./nodejsUtils":14,"./stream/GenericWorker":28,"./support":30,"./utils":32}],32:[function(t,e,a){"use strict";var o=t("./support"),h=t("./base64"),r=t("./nodejsUtils"),i=t("set-immediate-shim"),u=t("./external");function n(t){return t}function l(t,e){for(var r=0;r>8;this.dir=!!(16&this.externalFileAttributes),0==t&&(this.dosPermissions=63&this.externalFileAttributes),3==t&&(this.unixPermissions=this.externalFileAttributes>>16&65535),this.dir||"/"!==this.fileNameStr.slice(-1)||(this.dir=!0)},parseZIP64ExtraField:function(t){if(this.extraFields[1]){var e=i(this.extraFields[1].value);this.uncompressedSize===s.MAX_VALUE_32BITS&&(this.uncompressedSize=e.readInt(8)),this.compressedSize===s.MAX_VALUE_32BITS&&(this.compressedSize=e.readInt(8)),this.localHeaderOffset===s.MAX_VALUE_32BITS&&(this.localHeaderOffset=e.readInt(8)),this.diskNumberStart===s.MAX_VALUE_32BITS&&(this.diskNumberStart=e.readInt(4))}},readExtraFields:function(t){var e,r,i,n=t.index+this.extraFieldsLength;for(this.extraFields||(this.extraFields={});t.index+4>>6:(r<65536?e[s++]=224|r>>>12:(e[s++]=240|r>>>18,e[s++]=128|r>>>12&63),e[s++]=128|r>>>6&63),e[s++]=128|63&r);return e},r.buf2binstring=function(t){return l(t,t.length)},r.binstring2buf=function(t){for(var e=new h.Buf8(t.length),r=0,i=e.length;r>10&1023,o[i++]=56320|1023&n)}return l(o,i)},r.utf8border=function(t,e){var r;for((e=e||t.length)>t.length&&(e=t.length),r=e-1;0<=r&&128==(192&t[r]);)r--;return r<0?e:0===r?e:r+u[t[r]]>e?r:e}},{"./common":41}],43:[function(t,e,r){"use strict";e.exports=function(t,e,r,i){for(var n=65535&t|0,s=t>>>16&65535|0,a=0;0!==r;){for(r-=a=2e3>>1:t>>>1;e[r]=t}return e}();e.exports=function(t,e,r,i){var n=o,s=i+r;t^=-1;for(var a=i;a>>8^n[255&(t^e[a])];return-1^t}},{}],46:[function(t,e,r){"use strict";var h,d=t("../utils/common"),u=t("./trees"),c=t("./adler32"),p=t("./crc32"),i=t("./messages"),l=0,f=4,m=0,_=-2,g=-1,b=4,n=2,v=8,y=9,s=286,a=30,o=19,w=2*s+1,k=15,x=3,S=258,z=S+x+1,C=42,E=113,A=1,I=2,O=3,B=4;function R(t,e){return t.msg=i[e],e}function T(t){return(t<<1)-(4t.avail_out&&(r=t.avail_out),0!==r&&(d.arraySet(t.output,e.pending_buf,e.pending_out,r,t.next_out),t.next_out+=r,e.pending_out+=r,t.total_out+=r,t.avail_out-=r,e.pending-=r,0===e.pending&&(e.pending_out=0))}function N(t,e){u._tr_flush_block(t,0<=t.block_start?t.block_start:-1,t.strstart-t.block_start,e),t.block_start=t.strstart,F(t.strm)}function U(t,e){t.pending_buf[t.pending++]=e}function P(t,e){t.pending_buf[t.pending++]=e>>>8&255,t.pending_buf[t.pending++]=255&e}function L(t,e){var r,i,n=t.max_chain_length,s=t.strstart,a=t.prev_length,o=t.nice_match,h=t.strstart>t.w_size-z?t.strstart-(t.w_size-z):0,u=t.window,l=t.w_mask,f=t.prev,d=t.strstart+S,c=u[s+a-1],p=u[s+a];t.prev_length>=t.good_match&&(n>>=2),o>t.lookahead&&(o=t.lookahead);do{if(u[(r=e)+a]===p&&u[r+a-1]===c&&u[r]===u[s]&&u[++r]===u[s+1]){s+=2,r++;do{}while(u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&sh&&0!=--n);return a<=t.lookahead?a:t.lookahead}function j(t){var e,r,i,n,s,a,o,h,u,l,f=t.w_size;do{if(n=t.window_size-t.lookahead-t.strstart,t.strstart>=f+(f-z)){for(d.arraySet(t.window,t.window,f,f,0),t.match_start-=f,t.strstart-=f,t.block_start-=f,e=r=t.hash_size;i=t.head[--e],t.head[e]=f<=i?i-f:0,--r;);for(e=r=f;i=t.prev[--e],t.prev[e]=f<=i?i-f:0,--r;);n+=f}if(0===t.strm.avail_in)break;if(a=t.strm,o=t.window,h=t.strstart+t.lookahead,u=n,l=void 0,l=a.avail_in,u=x)for(s=t.strstart-t.insert,t.ins_h=t.window[s],t.ins_h=(t.ins_h<=x&&(t.ins_h=(t.ins_h<=x)if(i=u._tr_tally(t,t.strstart-t.match_start,t.match_length-x),t.lookahead-=t.match_length,t.match_length<=t.max_lazy_match&&t.lookahead>=x){for(t.match_length--;t.strstart++,t.ins_h=(t.ins_h<=x&&(t.ins_h=(t.ins_h<=x&&t.match_length<=t.prev_length){for(n=t.strstart+t.lookahead-x,i=u._tr_tally(t,t.strstart-1-t.prev_match,t.prev_length-x),t.lookahead-=t.prev_length-1,t.prev_length-=2;++t.strstart<=n&&(t.ins_h=(t.ins_h<t.pending_buf_size-5&&(r=t.pending_buf_size-5);;){if(t.lookahead<=1){if(j(t),0===t.lookahead&&e===l)return A;if(0===t.lookahead)break}t.strstart+=t.lookahead,t.lookahead=0;var i=t.block_start+r;if((0===t.strstart||t.strstart>=i)&&(t.lookahead=t.strstart-i,t.strstart=i,N(t,!1),0===t.strm.avail_out))return A;if(t.strstart-t.block_start>=t.w_size-z&&(N(t,!1),0===t.strm.avail_out))return A}return t.insert=0,e===f?(N(t,!0),0===t.strm.avail_out?O:B):(t.strstart>t.block_start&&(N(t,!1),t.strm.avail_out),A)}),new M(4,4,8,4,Z),new M(4,5,16,8,Z),new M(4,6,32,32,Z),new M(4,4,16,16,W),new M(8,16,32,32,W),new M(8,16,128,128,W),new M(8,32,128,256,W),new M(32,128,258,1024,W),new M(32,258,258,4096,W)],r.deflateInit=function(t,e){return Y(t,e,v,15,8,0)},r.deflateInit2=Y,r.deflateReset=K,r.deflateResetKeep=G,r.deflateSetHeader=function(t,e){return t&&t.state?2!==t.state.wrap?_:(t.state.gzhead=e,m):_},r.deflate=function(t,e){var r,i,n,s;if(!t||!t.state||5>8&255),U(i,i.gzhead.time>>16&255),U(i,i.gzhead.time>>24&255),U(i,9===i.level?2:2<=i.strategy||i.level<2?4:0),U(i,255&i.gzhead.os),i.gzhead.extra&&i.gzhead.extra.length&&(U(i,255&i.gzhead.extra.length),U(i,i.gzhead.extra.length>>8&255)),i.gzhead.hcrc&&(t.adler=p(t.adler,i.pending_buf,i.pending,0)),i.gzindex=0,i.status=69):(U(i,0),U(i,0),U(i,0),U(i,0),U(i,0),U(i,9===i.level?2:2<=i.strategy||i.level<2?4:0),U(i,3),i.status=E);else{var a=v+(i.w_bits-8<<4)<<8;a|=(2<=i.strategy||i.level<2?0:i.level<6?1:6===i.level?2:3)<<6,0!==i.strstart&&(a|=32),a+=31-a%31,i.status=E,P(i,a),0!==i.strstart&&(P(i,t.adler>>>16),P(i,65535&t.adler)),t.adler=1}if(69===i.status)if(i.gzhead.extra){for(n=i.pending;i.gzindex<(65535&i.gzhead.extra.length)&&(i.pending!==i.pending_buf_size||(i.gzhead.hcrc&&i.pending>n&&(t.adler=p(t.adler,i.pending_buf,i.pending-n,n)),F(t),n=i.pending,i.pending!==i.pending_buf_size));)U(i,255&i.gzhead.extra[i.gzindex]),i.gzindex++;i.gzhead.hcrc&&i.pending>n&&(t.adler=p(t.adler,i.pending_buf,i.pending-n,n)),i.gzindex===i.gzhead.extra.length&&(i.gzindex=0,i.status=73)}else i.status=73;if(73===i.status)if(i.gzhead.name){n=i.pending;do{if(i.pending===i.pending_buf_size&&(i.gzhead.hcrc&&i.pending>n&&(t.adler=p(t.adler,i.pending_buf,i.pending-n,n)),F(t),n=i.pending,i.pending===i.pending_buf_size)){s=1;break}s=i.gzindexn&&(t.adler=p(t.adler,i.pending_buf,i.pending-n,n)),0===s&&(i.gzindex=0,i.status=91)}else i.status=91;if(91===i.status)if(i.gzhead.comment){n=i.pending;do{if(i.pending===i.pending_buf_size&&(i.gzhead.hcrc&&i.pending>n&&(t.adler=p(t.adler,i.pending_buf,i.pending-n,n)),F(t),n=i.pending,i.pending===i.pending_buf_size)){s=1;break}s=i.gzindexn&&(t.adler=p(t.adler,i.pending_buf,i.pending-n,n)),0===s&&(i.status=103)}else i.status=103;if(103===i.status&&(i.gzhead.hcrc?(i.pending+2>i.pending_buf_size&&F(t),i.pending+2<=i.pending_buf_size&&(U(i,255&t.adler),U(i,t.adler>>8&255),t.adler=0,i.status=E)):i.status=E),0!==i.pending){if(F(t),0===t.avail_out)return i.last_flush=-1,m}else if(0===t.avail_in&&T(e)<=T(r)&&e!==f)return R(t,-5);if(666===i.status&&0!==t.avail_in)return R(t,-5);if(0!==t.avail_in||0!==i.lookahead||e!==l&&666!==i.status){var o=2===i.strategy?function(t,e){for(var r;;){if(0===t.lookahead&&(j(t),0===t.lookahead)){if(e===l)return A;break}if(t.match_length=0,r=u._tr_tally(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++,r&&(N(t,!1),0===t.strm.avail_out))return A}return t.insert=0,e===f?(N(t,!0),0===t.strm.avail_out?O:B):t.last_lit&&(N(t,!1),0===t.strm.avail_out)?A:I}(i,e):3===i.strategy?function(t,e){for(var r,i,n,s,a=t.window;;){if(t.lookahead<=S){if(j(t),t.lookahead<=S&&e===l)return A;if(0===t.lookahead)break}if(t.match_length=0,t.lookahead>=x&&0t.lookahead&&(t.match_length=t.lookahead)}if(t.match_length>=x?(r=u._tr_tally(t,1,t.match_length-x),t.lookahead-=t.match_length,t.strstart+=t.match_length,t.match_length=0):(r=u._tr_tally(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++),r&&(N(t,!1),0===t.strm.avail_out))return A}return t.insert=0,e===f?(N(t,!0),0===t.strm.avail_out?O:B):t.last_lit&&(N(t,!1),0===t.strm.avail_out)?A:I}(i,e):h[i.level].func(i,e);if(o!==O&&o!==B||(i.status=666),o===A||o===O)return 0===t.avail_out&&(i.last_flush=-1),m;if(o===I&&(1===e?u._tr_align(i):5!==e&&(u._tr_stored_block(i,0,0,!1),3===e&&(D(i.head),0===i.lookahead&&(i.strstart=0,i.block_start=0,i.insert=0))),F(t),0===t.avail_out))return i.last_flush=-1,m}return e!==f?m:i.wrap<=0?1:(2===i.wrap?(U(i,255&t.adler),U(i,t.adler>>8&255),U(i,t.adler>>16&255),U(i,t.adler>>24&255),U(i,255&t.total_in),U(i,t.total_in>>8&255),U(i,t.total_in>>16&255),U(i,t.total_in>>24&255)):(P(i,t.adler>>>16),P(i,65535&t.adler)),F(t),0=r.w_size&&(0===s&&(D(r.head),r.strstart=0,r.block_start=0,r.insert=0),u=new d.Buf8(r.w_size),d.arraySet(u,e,l-r.w_size,r.w_size,0),e=u,l=r.w_size),a=t.avail_in,o=t.next_in,h=t.input,t.avail_in=l,t.next_in=0,t.input=e,j(r);r.lookahead>=x;){for(i=r.strstart,n=r.lookahead-(x-1);r.ins_h=(r.ins_h<>>=y=v>>>24,p-=y,0===(y=v>>>16&255))C[s++]=65535&v;else{if(!(16&y)){if(0==(64&y)){v=m[(65535&v)+(c&(1<>>=y,p-=y),p<15&&(c+=z[i++]<>>=y=v>>>24,p-=y,!(16&(y=v>>>16&255))){if(0==(64&y)){v=_[(65535&v)+(c&(1<>>=y,p-=y,(y=s-a)>3,c&=(1<<(p-=w<<3))-1,t.next_in=i,t.next_out=s,t.avail_in=i>>24&255)+(t>>>8&65280)+((65280&t)<<8)+((255&t)<<24)}function s(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new I.Buf16(320),this.work=new I.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function a(t){var e;return t&&t.state?(e=t.state,t.total_in=t.total_out=e.total=0,t.msg="",e.wrap&&(t.adler=1&e.wrap),e.mode=P,e.last=0,e.havedict=0,e.dmax=32768,e.head=null,e.hold=0,e.bits=0,e.lencode=e.lendyn=new I.Buf32(i),e.distcode=e.distdyn=new I.Buf32(n),e.sane=1,e.back=-1,N):U}function o(t){var e;return t&&t.state?((e=t.state).wsize=0,e.whave=0,e.wnext=0,a(t)):U}function h(t,e){var r,i;return t&&t.state?(i=t.state,e<0?(r=0,e=-e):(r=1+(e>>4),e<48&&(e&=15)),e&&(e<8||15=s.wsize?(I.arraySet(s.window,e,r-s.wsize,s.wsize,0),s.wnext=0,s.whave=s.wsize):(i<(n=s.wsize-s.wnext)&&(n=i),I.arraySet(s.window,e,r-i,n,s.wnext),(i-=n)?(I.arraySet(s.window,e,r-i,i,0),s.wnext=i,s.whave=s.wsize):(s.wnext+=n,s.wnext===s.wsize&&(s.wnext=0),s.whave>>8&255,r.check=B(r.check,E,2,0),l=u=0,r.mode=2;break}if(r.flags=0,r.head&&(r.head.done=!1),!(1&r.wrap)||(((255&u)<<8)+(u>>8))%31){t.msg="incorrect header check",r.mode=30;break}if(8!=(15&u)){t.msg="unknown compression method",r.mode=30;break}if(l-=4,k=8+(15&(u>>>=4)),0===r.wbits)r.wbits=k;else if(k>r.wbits){t.msg="invalid window size",r.mode=30;break}r.dmax=1<>8&1),512&r.flags&&(E[0]=255&u,E[1]=u>>>8&255,r.check=B(r.check,E,2,0)),l=u=0,r.mode=3;case 3:for(;l<32;){if(0===o)break t;o--,u+=i[s++]<>>8&255,E[2]=u>>>16&255,E[3]=u>>>24&255,r.check=B(r.check,E,4,0)),l=u=0,r.mode=4;case 4:for(;l<16;){if(0===o)break t;o--,u+=i[s++]<>8),512&r.flags&&(E[0]=255&u,E[1]=u>>>8&255,r.check=B(r.check,E,2,0)),l=u=0,r.mode=5;case 5:if(1024&r.flags){for(;l<16;){if(0===o)break t;o--,u+=i[s++]<>>8&255,r.check=B(r.check,E,2,0)),l=u=0}else r.head&&(r.head.extra=null);r.mode=6;case 6:if(1024&r.flags&&(o<(c=r.length)&&(c=o),c&&(r.head&&(k=r.head.extra_len-r.length,r.head.extra||(r.head.extra=new Array(r.head.extra_len)),I.arraySet(r.head.extra,i,s,c,k)),512&r.flags&&(r.check=B(r.check,i,c,s)),o-=c,s+=c,r.length-=c),r.length))break t;r.length=0,r.mode=7;case 7:if(2048&r.flags){if(0===o)break t;for(c=0;k=i[s+c++],r.head&&k&&r.length<65536&&(r.head.name+=String.fromCharCode(k)),k&&c>9&1,r.head.done=!0),t.adler=r.check=0,r.mode=12;break;case 10:for(;l<32;){if(0===o)break t;o--,u+=i[s++]<>>=7&l,l-=7&l,r.mode=27;break}for(;l<3;){if(0===o)break t;o--,u+=i[s++]<>>=1)){case 0:r.mode=14;break;case 1:if(j(r),r.mode=20,6!==e)break;u>>>=2,l-=2;break t;case 2:r.mode=17;break;case 3:t.msg="invalid block type",r.mode=30}u>>>=2,l-=2;break;case 14:for(u>>>=7&l,l-=7&l;l<32;){if(0===o)break t;o--,u+=i[s++]<>>16^65535)){t.msg="invalid stored block lengths",r.mode=30;break}if(r.length=65535&u,l=u=0,r.mode=15,6===e)break t;case 15:r.mode=16;case 16:if(c=r.length){if(o>>=5,l-=5,r.ndist=1+(31&u),u>>>=5,l-=5,r.ncode=4+(15&u),u>>>=4,l-=4,286>>=3,l-=3}for(;r.have<19;)r.lens[A[r.have++]]=0;if(r.lencode=r.lendyn,r.lenbits=7,S={bits:r.lenbits},x=T(0,r.lens,0,19,r.lencode,0,r.work,S),r.lenbits=S.bits,x){t.msg="invalid code lengths set",r.mode=30;break}r.have=0,r.mode=19;case 19:for(;r.have>>16&255,b=65535&C,!((_=C>>>24)<=l);){if(0===o)break t;o--,u+=i[s++]<>>=_,l-=_,r.lens[r.have++]=b;else{if(16===b){for(z=_+2;l>>=_,l-=_,0===r.have){t.msg="invalid bit length repeat",r.mode=30;break}k=r.lens[r.have-1],c=3+(3&u),u>>>=2,l-=2}else if(17===b){for(z=_+3;l>>=_)),u>>>=3,l-=3}else{for(z=_+7;l>>=_)),u>>>=7,l-=7}if(r.have+c>r.nlen+r.ndist){t.msg="invalid bit length repeat",r.mode=30;break}for(;c--;)r.lens[r.have++]=k}}if(30===r.mode)break;if(0===r.lens[256]){t.msg="invalid code -- missing end-of-block",r.mode=30;break}if(r.lenbits=9,S={bits:r.lenbits},x=T(D,r.lens,0,r.nlen,r.lencode,0,r.work,S),r.lenbits=S.bits,x){t.msg="invalid literal/lengths set",r.mode=30;break}if(r.distbits=6,r.distcode=r.distdyn,S={bits:r.distbits},x=T(F,r.lens,r.nlen,r.ndist,r.distcode,0,r.work,S),r.distbits=S.bits,x){t.msg="invalid distances set",r.mode=30;break}if(r.mode=20,6===e)break t;case 20:r.mode=21;case 21:if(6<=o&&258<=h){t.next_out=a,t.avail_out=h,t.next_in=s,t.avail_in=o,r.hold=u,r.bits=l,R(t,d),a=t.next_out,n=t.output,h=t.avail_out,s=t.next_in,i=t.input,o=t.avail_in,u=r.hold,l=r.bits,12===r.mode&&(r.back=-1);break}for(r.back=0;g=(C=r.lencode[u&(1<>>16&255,b=65535&C,!((_=C>>>24)<=l);){if(0===o)break t;o--,u+=i[s++]<>v)])>>>16&255,b=65535&C,!(v+(_=C>>>24)<=l);){if(0===o)break t;o--,u+=i[s++]<>>=v,l-=v,r.back+=v}if(u>>>=_,l-=_,r.back+=_,r.length=b,0===g){r.mode=26;break}if(32&g){r.back=-1,r.mode=12;break}if(64&g){t.msg="invalid literal/length code",r.mode=30;break}r.extra=15&g,r.mode=22;case 22:if(r.extra){for(z=r.extra;l>>=r.extra,l-=r.extra,r.back+=r.extra}r.was=r.length,r.mode=23;case 23:for(;g=(C=r.distcode[u&(1<>>16&255,b=65535&C,!((_=C>>>24)<=l);){if(0===o)break t;o--,u+=i[s++]<>v)])>>>16&255,b=65535&C,!(v+(_=C>>>24)<=l);){if(0===o)break t;o--,u+=i[s++]<>>=v,l-=v,r.back+=v}if(u>>>=_,l-=_,r.back+=_,64&g){t.msg="invalid distance code",r.mode=30;break}r.offset=b,r.extra=15&g,r.mode=24;case 24:if(r.extra){for(z=r.extra;l>>=r.extra,l-=r.extra,r.back+=r.extra}if(r.offset>r.dmax){t.msg="invalid distance too far back",r.mode=30;break}r.mode=25;case 25:if(0===h)break t;if(c=d-h,r.offset>c){if((c=r.offset-c)>r.whave&&r.sane){t.msg="invalid distance too far back",r.mode=30;break}p=c>r.wnext?(c-=r.wnext,r.wsize-c):r.wnext-c,c>r.length&&(c=r.length),m=r.window}else m=n,p=a-r.offset,c=r.length;for(hc?(m=R[T+a[v]],A[I+a[v]]):(m=96,0),h=1<>S)+(u-=h)]=p<<24|m<<16|_|0,0!==u;);for(h=1<>=1;if(0!==h?(E&=h-1,E+=h):E=0,v++,0==--O[b]){if(b===w)break;b=e[r+a[v]]}if(k>>7)]}function U(t,e){t.pending_buf[t.pending++]=255&e,t.pending_buf[t.pending++]=e>>>8&255}function P(t,e,r){t.bi_valid>c-r?(t.bi_buf|=e<>c-t.bi_valid,t.bi_valid+=r-c):(t.bi_buf|=e<>>=1,r<<=1,0<--e;);return r>>>1}function Z(t,e,r){var i,n,s=new Array(g+1),a=0;for(i=1;i<=g;i++)s[i]=a=a+r[i-1]<<1;for(n=0;n<=e;n++){var o=t[2*n+1];0!==o&&(t[2*n]=j(s[o]++,o))}}function W(t){var e;for(e=0;e>1;1<=r;r--)G(t,s,r);for(n=h;r=t.heap[1],t.heap[1]=t.heap[t.heap_len--],G(t,s,1),i=t.heap[1],t.heap[--t.heap_max]=r,t.heap[--t.heap_max]=i,s[2*n]=s[2*r]+s[2*i],t.depth[n]=(t.depth[r]>=t.depth[i]?t.depth[r]:t.depth[i])+1,s[2*r+1]=s[2*i+1]=n,t.heap[1]=n++,G(t,s,1),2<=t.heap_len;);t.heap[--t.heap_max]=t.heap[1],function(t,e){var r,i,n,s,a,o,h=e.dyn_tree,u=e.max_code,l=e.stat_desc.static_tree,f=e.stat_desc.has_stree,d=e.stat_desc.extra_bits,c=e.stat_desc.extra_base,p=e.stat_desc.max_length,m=0;for(s=0;s<=g;s++)t.bl_count[s]=0;for(h[2*t.heap[t.heap_max]+1]=0,r=t.heap_max+1;r<_;r++)p<(s=h[2*h[2*(i=t.heap[r])+1]+1]+1)&&(s=p,m++),h[2*i+1]=s,u>=7;i>>=1)if(1&r&&0!==t.dyn_ltree[2*e])return o;if(0!==t.dyn_ltree[18]||0!==t.dyn_ltree[20]||0!==t.dyn_ltree[26])return h;for(e=32;e>>3,(s=t.static_len+3+7>>>3)<=n&&(n=s)):n=s=r+5,r+4<=n&&-1!==e?J(t,e,r,i):4===t.strategy||s===n?(P(t,2+(i?1:0),3),K(t,z,C)):(P(t,4+(i?1:0),3),function(t,e,r,i){var n;for(P(t,e-257,5),P(t,r-1,5),P(t,i-4,4),n=0;n>>8&255,t.pending_buf[t.d_buf+2*t.last_lit+1]=255&e,t.pending_buf[t.l_buf+t.last_lit]=255&r,t.last_lit++,0===e?t.dyn_ltree[2*r]++:(t.matches++,e--,t.dyn_ltree[2*(A[r]+u+1)]++,t.dyn_dtree[2*N(e)]++),t.last_lit===t.lit_bufsize-1},r._tr_align=function(t){P(t,2,3),L(t,m,z),function(t){16===t.bi_valid?(U(t,t.bi_buf),t.bi_buf=0,t.bi_valid=0):8<=t.bi_valid&&(t.pending_buf[t.pending++]=255&t.bi_buf,t.bi_buf>>=8,t.bi_valid-=8)}(t)}},{"../utils/common":41}],53:[function(t,e,r){"use strict";e.exports=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}},{}],54:[function(t,e,r){"use strict";e.exports="function"==typeof setImmediate?setImmediate:function(){var t=[].slice.apply(arguments);t.splice(1,0,0),setTimeout.apply(null,t)}},{}]},{},[10])(10)}); --------------------------------------------------------------------------------