From f3e12cc7d6af0e0570d4db0df2cea679d3809a34 Mon Sep 17 00:00:00 2001 From: VectorKappa Date: Fri, 21 Apr 2023 12:14:37 +0200 Subject: [PATCH] vault backup: 2023-04-21 12:14:37 --- ...Miernictwo 2023-04-18 14.16.53.excalidraw.md | 421 ++ ...Miernictwo 2023-04-18 14.26.51.excalidraw.md | 240 + !Załączniki/Recording 20230418134959.webm | Bin 0 -> 5395 bytes !Załączniki/Recording 20230418135018.webm | Bin 0 -> 108761 bytes .../Untitled 2023-04-19 10.28.44.excalidraw.md | 450 ++ .obsidian/community-plugins.json | 3 +- .../blacklisted_suggestions.txt | 5 +- .../obsidian-completr/scanned_words.txt | 91 +- .obsidian/plugins/obsidian-plantuml/main.js | 5607 +++++++++++++++++ .../plugins/obsidian-plantuml/manifest.json | 10 + .../plugins/obsidian-plantuml/styles.css | 38 + .obsidian/workspace.json | 96 +- .../3. Złożoność i czynnik sumacyjny.md | 3 + EiM/Ćwiczenia/1. Miernictwo.md | 57 + EiM/Ćwiczenia/Untitled.md | 4 + EiM/Ćwiczenia/Ćwiczenia.md | 13 + TC/Ćwiczenia/Untitled.md | 78 + 17 files changed, 7070 insertions(+), 46 deletions(-) create mode 100644 !Załączniki/1. Miernictwo 2023-04-18 14.16.53.excalidraw.md create mode 100644 !Załączniki/1. Miernictwo 2023-04-18 14.26.51.excalidraw.md create mode 100644 !Załączniki/Recording 20230418134959.webm create mode 100644 !Załączniki/Recording 20230418135018.webm create mode 100644 !Załączniki/Untitled 2023-04-19 10.28.44.excalidraw.md create mode 100644 .obsidian/plugins/obsidian-plantuml/main.js create mode 100644 .obsidian/plugins/obsidian-plantuml/manifest.json create mode 100644 .obsidian/plugins/obsidian-plantuml/styles.css create mode 100644 AiSD/Ćwiczenia/3. Złożoność i czynnik sumacyjny.md create mode 100644 EiM/Ćwiczenia/1. Miernictwo.md create mode 100644 EiM/Ćwiczenia/Untitled.md create mode 100644 EiM/Ćwiczenia/Ćwiczenia.md create mode 100644 TC/Ćwiczenia/Untitled.md diff --git a/!Załączniki/1. Miernictwo 2023-04-18 14.16.53.excalidraw.md b/!Załączniki/1. Miernictwo 2023-04-18 14.16.53.excalidraw.md new file mode 100644 index 0000000..8119267 --- /dev/null +++ b/!Załączniki/1. Miernictwo 2023-04-18 14.16.53.excalidraw.md @@ -0,0 +1,421 @@ +--- + +excalidraw-plugin: parsed +tags: [excalidraw] + +--- +==⚠ Switch to EXCALIDRAW VIEW in the MORE OPTIONS menu of this document. ⚠== + + +# Text Elements +A ^Ipbxt0Ec + +V ^zcsCAyEm + +Ux + ^bZ9BHIac + +Ix + + Rx ^9mntkM3G + +E ^a90Ezsmg + +%% +# Drawing +```compressed-json +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 + + +``` +%% \ No newline at end of file diff --git a/!Załączniki/1. Miernictwo 2023-04-18 14.26.51.excalidraw.md b/!Załączniki/1. Miernictwo 2023-04-18 14.26.51.excalidraw.md new file mode 100644 index 0000000..be7a439 --- /dev/null +++ b/!Załączniki/1. Miernictwo 2023-04-18 14.26.51.excalidraw.md @@ -0,0 +1,240 @@ +--- + +excalidraw-plugin: parsed +tags: [excalidraw] + +--- +==⚠ Switch to EXCALIDRAW VIEW in the MORE OPTIONS menu of this document. ⚠== + + +# Text Elements +V ^RXgceNna + +A ^BlffqT1X + +Rx ^NVLKt1Ai + +RA ^7Qfb4Mpp + +%% +# Drawing +```compressed-json +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 + +RwhuuQBPIgA= +``` +%% \ No newline at end of file diff --git a/!Załączniki/Recording 20230418134959.webm b/!Załączniki/Recording 20230418134959.webm new file mode 100644 index 0000000000000000000000000000000000000000..b65d43661b7da30ff58451ad31a526fd6f8b2381 GIT binary patch literal 5395 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 Zkt3w-b*7dh2|0SI#Wsk_d*GGMr+=^9dPe{N literal 0 HcmV?d00001 diff --git a/!Załączniki/Untitled 2023-04-19 10.28.44.excalidraw.md b/!Załączniki/Untitled 2023-04-19 10.28.44.excalidraw.md new file mode 100644 index 0000000..3d81d69 --- /dev/null +++ b/!Załączniki/Untitled 2023-04-19 10.28.44.excalidraw.md @@ -0,0 +1,450 @@ +--- + +excalidraw-plugin: parsed +tags: [excalidraw] + +--- +==⚠ Switch to EXCALIDRAW VIEW in the MORE OPTIONS menu of this document. ⚠== + + +# Text Elements +%% +# Drawing +```compressed-json +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 +``` +%% \ No newline at end of file diff --git a/.obsidian/community-plugins.json b/.obsidian/community-plugins.json index ed120c8..15cfb78 100644 --- a/.obsidian/community-plugins.json +++ b/.obsidian/community-plugins.json @@ -24,5 +24,6 @@ "obsidian-functionplot", "obsidian-tikzjax", "obsidian-export-image", - "obsidian-graphviz" + "obsidian-graphviz", + "obsidian-plantuml" ] \ No newline at end of file diff --git a/.obsidian/plugins/obsidian-completr/blacklisted_suggestions.txt b/.obsidian/plugins/obsidian-completr/blacklisted_suggestions.txt index a2573d1..59e2dd0 100644 --- a/.obsidian/plugins/obsidian-completr/blacklisted_suggestions.txt +++ b/.obsidian/plugins/obsidian-completr/blacklisted_suggestions.txt @@ -1,3 +1,6 @@ tags: [#] excalidraw-plugin: # -Note \ No newline at end of file +Note +rea +realis +\Uppi \ No newline at end of file diff --git a/.obsidian/plugins/obsidian-completr/scanned_words.txt b/.obsidian/plugins/obsidian-completr/scanned_words.txt index 8f17e07..712782c 100644 --- a/.obsidian/plugins/obsidian-completr/scanned_words.txt +++ b/.obsidian/plugins/obsidian-completr/scanned_words.txt @@ -1356,6 +1356,8 @@ Prąd Przekazuje Parametry Prądy +Punktacja +Poprawnie obj oh oq @@ -2716,6 +2718,7 @@ oporze okładkami obszaru ostrzegawczym +operacyjny GoTo GS Gl @@ -5298,6 +5301,7 @@ ORDER Options Ohm Optymalizacja +Oblicz endobj endstream ea @@ -7986,6 +7990,8 @@ Layers Laboratoria Laplace Latch +LSD +Least Filter FlateDecode Font @@ -10745,6 +10751,12 @@ stosunew stosunek sterującego sygnał +skazał +systematyczny +sneaky +stałego +sposoby +siebie JQ Js JX @@ -14657,6 +14669,7 @@ QRU QCk QMOa QkWB +Qfb fVVhM fW fci @@ -17347,6 +17360,7 @@ BRANDES Between Bramki Barbara +BlffqT Trans Type TF @@ -18735,6 +18749,9 @@ Transformatory Transformator Tylko Transmitancja +Tematy +Taśmociągiem +Taśmociąg Annots Annot Aac @@ -20028,6 +20045,8 @@ Array Arrows Automaty Apply +Analiza +Amperomierz Subtype SGw SI @@ -21350,6 +21369,8 @@ SHS Statyczny SHF Synteza +Significant +Skośnie Rect Re Resources @@ -22663,6 +22684,9 @@ Rezystancja Rodzaje Rzeczywisty Realizacja +RDG +ReaDinG +RXgceNna Navigation No Nj @@ -23972,6 +23996,7 @@ Nieliniowy Niska Niepewności Npięcia +NVLKt ColorSpace Contents Cx @@ -30653,6 +30678,7 @@ idealnego indukcyjność impedancji impulsowe +identyczne vK vE vD @@ -33261,6 +33287,8 @@ Dławik DHS Dane Działanie +Digit +Detale dA dET dg @@ -34653,6 +34681,12 @@ dobroć dopuszczalna dużej dające +dokonanego +detale +dwa +detal +detali +daleko YI YT Yv @@ -37353,6 +37387,10 @@ czujniki czujnik cofa cpG +charakterystyki +częstotliwościowe +cyfrowego +czujnikiem bI bx bM @@ -38734,6 +38772,8 @@ będą bezstykowo bramek bezpamięciowego +bipolarne +będzie jW je jz @@ -41365,6 +41405,7 @@ arytmetycznego admin automatu asynchronicznoego +amperomierz uH uS uVn @@ -42682,6 +42723,9 @@ upływność upływu uśrednianie układu +użyciu +uncertainty +ułożone Mh MediaBox MI @@ -44045,6 +44089,8 @@ Matlab Małej Moore Mealy +Mpp +Max lauG lc lS @@ -45367,6 +45413,7 @@ layoutOptions logarytmowi logarytmiczne leży +lewo Kz KM Kw @@ -46649,6 +46696,7 @@ Klasa Kodowanie KOEPF Kaskada +Kształt IS ID IQT @@ -50564,6 +50612,9 @@ Warystory Wszystko Wykresy Współczynnik +Wzmacniacz +Woltomierz +Wyznacz rM ra rv @@ -50630,7 +50681,6 @@ rbB rMd roksana rzeczywiste -realis rTR roV rc @@ -51556,7 +51606,6 @@ rZHd rwvt rzQ rGw -rea rPc rIX ryS @@ -51959,6 +52008,9 @@ realizuje różne różniczkujący rising +równoległoboku +równoległa +rozmieszczone tI tU ta @@ -53307,6 +53359,10 @@ tabelką transmitancję tablicę torach +tranzystory +transportowane +taśmociągu +taśmociągiem wo wHJ wKe @@ -54624,6 +54680,13 @@ wyjścia wejścia wyjść wjedzie +wskazówkowy +wskazał +wyświetlaczem +woltomierza +wyznaczenia +wykorzystano +wykryją pDJ parenleftbigg parenrightbigg @@ -56077,6 +56140,11 @@ programujących przejść przejeździe pociąg +pomiarowym +producent +podaje +pokozuje +położenie HD Ho Hg @@ -61271,6 +61339,7 @@ Zasilające Zakładając Zaprojektować Załóż +Zadanie mD ma mj @@ -62629,6 +62698,12 @@ maleje magnettcznym multiplekserze markowa +małosygnałowa +maksymalny +multimetru +mierzącego +mierzonego +mocy nD nF nZ @@ -63973,6 +64048,9 @@ niestrzeżonym nad nimi narastające +niepewność +naszym +następnie gNx gHI gri @@ -65313,6 +65391,7 @@ gromadzi galwaniczna generuje gęstości +gruby kXk kQ kx @@ -66706,6 +66785,11 @@ końcó konwersji kolejowym kierunku +kartkówek +klasy +kształcie +krawędź +krawędzi üx ün ür @@ -69435,6 +69519,9 @@ znajduje zapalić zgasnąć zbocze +zakresie +zawsze +założenia ÜI Üj ÜX diff --git a/.obsidian/plugins/obsidian-plantuml/main.js b/.obsidian/plugins/obsidian-plantuml/main.js new file mode 100644 index 0000000..c5f2a98 --- /dev/null +++ b/.obsidian/plugins/obsidian-plantuml/main.js @@ -0,0 +1,5607 @@ +/* +THIS IS A GENERATED/BUNDLED FILE BY ESBUILD +if you want to view the source, please visit the github repository of this plugin +https://github.com/joethei/obsidian-plantuml +*/ + +var __create = Object.create; +var __defProp = Object.defineProperty; +var __defProps = Object.defineProperties; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropDescs = Object.getOwnPropertyDescriptors; +var __getOwnPropNames = Object.getOwnPropertyNames; +var __getOwnPropSymbols = Object.getOwnPropertySymbols; +var __getProtoOf = Object.getPrototypeOf; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __propIsEnum = Object.prototype.propertyIsEnumerable; +var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; +var __spreadValues = (a, b) => { + for (var prop in b || (b = {})) + if (__hasOwnProp.call(b, prop)) + __defNormalProp(a, prop, b[prop]); + if (__getOwnPropSymbols) + for (var prop of __getOwnPropSymbols(b)) { + if (__propIsEnum.call(b, prop)) + __defNormalProp(a, prop, b[prop]); + } + return a; +}; +var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b)); +var __markAsModule = (target) => __defProp(target, "__esModule", { value: true }); +var __esm = (fn, res) => function __init() { + return fn && (res = (0, fn[Object.keys(fn)[0]])(fn = 0)), res; +}; +var __commonJS = (cb, mod) => function __require() { + return mod || (0, cb[Object.keys(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports; +}; +var __export = (target, all) => { + __markAsModule(target); + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }); +}; +var __reExport = (target, module2, desc) => { + if (module2 && typeof module2 === "object" || typeof module2 === "function") { + for (let key of __getOwnPropNames(module2)) + if (!__hasOwnProp.call(target, key) && key !== "default") + __defProp(target, key, { get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable }); + } + return target; +}; +var __toModule = (module2) => { + return __reExport(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default", module2 && module2.__esModule && "default" in module2 ? { get: () => module2.default, enumerable: true } : { value: module2, enumerable: true })), module2); +}; +var __async = (__this, __arguments, generator) => { + return new Promise((resolve, reject) => { + var fulfilled = (value) => { + try { + step(generator.next(value)); + } catch (e) { + reject(e); + } + }; + var rejected = (value) => { + try { + step(generator.throw(value)); + } catch (e) { + reject(e); + } + }; + var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected); + step((generator = generator.apply(__this, __arguments)).next()); + }); +}; + +// node_modules/plantuml-encoder/dist/plantuml-encoder.js +var require_plantuml_encoder = __commonJS({ + "node_modules/plantuml-encoder/dist/plantuml-encoder.js"(exports, module2) { + (function(f) { + if (typeof exports === "object" && typeof module2 !== "undefined") { + module2.exports = f(); + } else if (typeof define === "function" && define.amd) { + define([], f); + } else { + var g; + if (typeof window !== "undefined") { + g = window; + } else if (typeof global !== "undefined") { + g = global; + } else if (typeof self !== "undefined") { + g = self; + } else { + g = this; + } + g.plantumlEncoder = f(); + } + })(function() { + var define2, module3, exports2; + return function() { + function r(e, n, t) { + function o(i2, f) { + if (!n[i2]) { + if (!e[i2]) { + var c = typeof require == "function" && require; + if (!f && c) + return c(i2, true); + if (u) + return u(i2, true); + var a = new Error("Cannot find module '" + i2 + "'"); + throw a.code = "MODULE_NOT_FOUND", a; + } + var p = n[i2] = { exports: {} }; + e[i2][0].call(p.exports, function(r2) { + var n2 = e[i2][1][r2]; + return o(n2 || r2); + }, p, p.exports, r, e, n, t); + } + return n[i2].exports; + } + for (var u = typeof require == "function" && require, i = 0; i < t.length; i++) + o(t[i]); + return o; + } + return r; + }()({ 1: [function(require2, module4, exports3) { + "use strict"; + var pako = require2("pako/lib/deflate.js"); + module4.exports = function(data) { + return pako.deflateRaw(data, { level: 9, to: "string" }); + }; + }, { "pako/lib/deflate.js": 4 }], 2: [function(require2, module4, exports3) { + "use strict"; + function encode6bit(b) { + if (b < 10) { + return String.fromCharCode(48 + b); + } + b -= 10; + if (b < 26) { + return String.fromCharCode(65 + b); + } + b -= 26; + if (b < 26) { + return String.fromCharCode(97 + b); + } + b -= 26; + if (b === 0) { + return "-"; + } + if (b === 1) { + return "_"; + } + return "?"; + } + function append3bytes(b1, b2, b3) { + var c1 = b1 >> 2; + var c2 = (b1 & 3) << 4 | b2 >> 4; + var c3 = (b2 & 15) << 2 | b3 >> 6; + var c4 = b3 & 63; + var r = ""; + r += encode6bit(c1 & 63); + r += encode6bit(c2 & 63); + r += encode6bit(c3 & 63); + r += encode6bit(c4 & 63); + return r; + } + module4.exports = function(data) { + var r = ""; + for (var i = 0; i < data.length; i += 3) { + if (i + 2 === data.length) { + r += append3bytes(data.charCodeAt(i), data.charCodeAt(i + 1), 0); + } else if (i + 1 === data.length) { + r += append3bytes(data.charCodeAt(i), 0, 0); + } else { + r += append3bytes(data.charCodeAt(i), data.charCodeAt(i + 1), data.charCodeAt(i + 2)); + } + } + return r; + }; + }, {}], 3: [function(require2, module4, exports3) { + "use strict"; + var deflate = require2("./deflate"); + var encode64 = require2("./encode64"); + module4.exports.encode = function(puml) { + var deflated = deflate(puml); + return encode64(deflated); + }; + }, { "./deflate": 1, "./encode64": 2 }], 4: [function(require2, module4, exports3) { + "use strict"; + var zlib_deflate = require2("./zlib/deflate"); + var utils = require2("./utils/common"); + var strings = require2("./utils/strings"); + var msg = require2("./zlib/messages"); + var ZStream = require2("./zlib/zstream"); + var toString = Object.prototype.toString; + var Z_NO_FLUSH = 0; + var Z_FINISH = 4; + var Z_OK = 0; + var Z_STREAM_END = 1; + var Z_SYNC_FLUSH = 2; + var Z_DEFAULT_COMPRESSION = -1; + var Z_DEFAULT_STRATEGY = 0; + var Z_DEFLATED = 8; + function Deflate(options) { + if (!(this instanceof Deflate)) + return new Deflate(options); + this.options = utils.assign({ + level: Z_DEFAULT_COMPRESSION, + method: Z_DEFLATED, + chunkSize: 16384, + windowBits: 15, + memLevel: 8, + strategy: Z_DEFAULT_STRATEGY, + to: "" + }, options || {}); + var opt = this.options; + if (opt.raw && opt.windowBits > 0) { + opt.windowBits = -opt.windowBits; + } else if (opt.gzip && opt.windowBits > 0 && opt.windowBits < 16) { + opt.windowBits += 16; + } + this.err = 0; + this.msg = ""; + this.ended = false; + this.chunks = []; + this.strm = new ZStream(); + this.strm.avail_out = 0; + var status = zlib_deflate.deflateInit2(this.strm, opt.level, opt.method, opt.windowBits, opt.memLevel, opt.strategy); + if (status !== Z_OK) { + throw new Error(msg[status]); + } + if (opt.header) { + zlib_deflate.deflateSetHeader(this.strm, opt.header); + } + if (opt.dictionary) { + var dict; + if (typeof opt.dictionary === "string") { + dict = strings.string2buf(opt.dictionary); + } else if (toString.call(opt.dictionary) === "[object ArrayBuffer]") { + dict = new Uint8Array(opt.dictionary); + } else { + dict = opt.dictionary; + } + status = zlib_deflate.deflateSetDictionary(this.strm, dict); + if (status !== Z_OK) { + throw new Error(msg[status]); + } + this._dict_set = true; + } + } + Deflate.prototype.push = function(data, mode) { + var strm = this.strm; + var chunkSize = this.options.chunkSize; + var status, _mode; + if (this.ended) { + return false; + } + _mode = mode === ~~mode ? mode : mode === true ? Z_FINISH : Z_NO_FLUSH; + if (typeof data === "string") { + strm.input = strings.string2buf(data); + } else if (toString.call(data) === "[object ArrayBuffer]") { + strm.input = new Uint8Array(data); + } else { + strm.input = data; + } + strm.next_in = 0; + strm.avail_in = strm.input.length; + do { + if (strm.avail_out === 0) { + strm.output = new utils.Buf8(chunkSize); + strm.next_out = 0; + strm.avail_out = chunkSize; + } + status = zlib_deflate.deflate(strm, _mode); + if (status !== Z_STREAM_END && status !== Z_OK) { + this.onEnd(status); + this.ended = true; + return false; + } + if (strm.avail_out === 0 || strm.avail_in === 0 && (_mode === Z_FINISH || _mode === Z_SYNC_FLUSH)) { + if (this.options.to === "string") { + this.onData(strings.buf2binstring(utils.shrinkBuf(strm.output, strm.next_out))); + } else { + this.onData(utils.shrinkBuf(strm.output, strm.next_out)); + } + } + } while ((strm.avail_in > 0 || strm.avail_out === 0) && status !== Z_STREAM_END); + if (_mode === Z_FINISH) { + status = zlib_deflate.deflateEnd(this.strm); + this.onEnd(status); + this.ended = true; + return status === Z_OK; + } + if (_mode === Z_SYNC_FLUSH) { + this.onEnd(Z_OK); + strm.avail_out = 0; + return true; + } + return true; + }; + Deflate.prototype.onData = function(chunk) { + this.chunks.push(chunk); + }; + Deflate.prototype.onEnd = function(status) { + if (status === Z_OK) { + if (this.options.to === "string") { + this.result = this.chunks.join(""); + } else { + this.result = utils.flattenChunks(this.chunks); + } + } + this.chunks = []; + this.err = status; + this.msg = this.strm.msg; + }; + function deflate(input, options) { + var deflator = new Deflate(options); + deflator.push(input, true); + if (deflator.err) { + throw deflator.msg || msg[deflator.err]; + } + return deflator.result; + } + function deflateRaw(input, options) { + options = options || {}; + options.raw = true; + return deflate(input, options); + } + function gzip(input, options) { + options = options || {}; + options.gzip = true; + return deflate(input, options); + } + exports3.Deflate = Deflate; + exports3.deflate = deflate; + exports3.deflateRaw = deflateRaw; + exports3.gzip = gzip; + }, { "./utils/common": 5, "./utils/strings": 6, "./zlib/deflate": 9, "./zlib/messages": 10, "./zlib/zstream": 12 }], 5: [function(require2, module4, exports3) { + "use strict"; + var TYPED_OK = typeof Uint8Array !== "undefined" && typeof Uint16Array !== "undefined" && typeof Int32Array !== "undefined"; + function _has(obj, key) { + return Object.prototype.hasOwnProperty.call(obj, key); + } + exports3.assign = function(obj) { + var sources = Array.prototype.slice.call(arguments, 1); + while (sources.length) { + var source = sources.shift(); + if (!source) { + continue; + } + if (typeof source !== "object") { + throw new TypeError(source + "must be non-object"); + } + for (var p in source) { + if (_has(source, p)) { + obj[p] = source[p]; + } + } + } + return obj; + }; + exports3.shrinkBuf = function(buf, size) { + if (buf.length === size) { + return buf; + } + if (buf.subarray) { + return buf.subarray(0, size); + } + buf.length = size; + return buf; + }; + var fnTyped = { + arraySet: function(dest, src, src_offs, len, dest_offs) { + if (src.subarray && dest.subarray) { + dest.set(src.subarray(src_offs, src_offs + len), dest_offs); + return; + } + for (var i = 0; i < len; i++) { + dest[dest_offs + i] = src[src_offs + i]; + } + }, + flattenChunks: function(chunks) { + var i, l, len, pos, chunk, result; + len = 0; + for (i = 0, l = chunks.length; i < l; i++) { + len += chunks[i].length; + } + result = new Uint8Array(len); + pos = 0; + for (i = 0, l = chunks.length; i < l; i++) { + chunk = chunks[i]; + result.set(chunk, pos); + pos += chunk.length; + } + return result; + } + }; + var fnUntyped = { + arraySet: function(dest, src, src_offs, len, dest_offs) { + for (var i = 0; i < len; i++) { + dest[dest_offs + i] = src[src_offs + i]; + } + }, + flattenChunks: function(chunks) { + return [].concat.apply([], chunks); + } + }; + exports3.setTyped = function(on) { + if (on) { + exports3.Buf8 = Uint8Array; + exports3.Buf16 = Uint16Array; + exports3.Buf32 = Int32Array; + exports3.assign(exports3, fnTyped); + } else { + exports3.Buf8 = Array; + exports3.Buf16 = Array; + exports3.Buf32 = Array; + exports3.assign(exports3, fnUntyped); + } + }; + exports3.setTyped(TYPED_OK); + }, {}], 6: [function(require2, module4, exports3) { + "use strict"; + var utils = require2("./common"); + var STR_APPLY_OK = true; + var STR_APPLY_UIA_OK = true; + try { + String.fromCharCode.apply(null, [0]); + } catch (__) { + STR_APPLY_OK = false; + } + try { + String.fromCharCode.apply(null, new Uint8Array(1)); + } catch (__) { + STR_APPLY_UIA_OK = false; + } + var _utf8len = new utils.Buf8(256); + for (var q = 0; q < 256; q++) { + _utf8len[q] = q >= 252 ? 6 : q >= 248 ? 5 : q >= 240 ? 4 : q >= 224 ? 3 : q >= 192 ? 2 : 1; + } + _utf8len[254] = _utf8len[254] = 1; + exports3.string2buf = function(str) { + var buf, c, c2, m_pos, i, str_len = str.length, buf_len = 0; + for (m_pos = 0; m_pos < str_len; m_pos++) { + c = str.charCodeAt(m_pos); + if ((c & 64512) === 55296 && m_pos + 1 < str_len) { + c2 = str.charCodeAt(m_pos + 1); + if ((c2 & 64512) === 56320) { + c = 65536 + (c - 55296 << 10) + (c2 - 56320); + m_pos++; + } + } + buf_len += c < 128 ? 1 : c < 2048 ? 2 : c < 65536 ? 3 : 4; + } + buf = new utils.Buf8(buf_len); + for (i = 0, m_pos = 0; i < buf_len; m_pos++) { + c = str.charCodeAt(m_pos); + if ((c & 64512) === 55296 && m_pos + 1 < str_len) { + c2 = str.charCodeAt(m_pos + 1); + if ((c2 & 64512) === 56320) { + c = 65536 + (c - 55296 << 10) + (c2 - 56320); + m_pos++; + } + } + if (c < 128) { + buf[i++] = c; + } else if (c < 2048) { + buf[i++] = 192 | c >>> 6; + buf[i++] = 128 | c & 63; + } else if (c < 65536) { + buf[i++] = 224 | c >>> 12; + buf[i++] = 128 | c >>> 6 & 63; + buf[i++] = 128 | c & 63; + } else { + buf[i++] = 240 | c >>> 18; + buf[i++] = 128 | c >>> 12 & 63; + buf[i++] = 128 | c >>> 6 & 63; + buf[i++] = 128 | c & 63; + } + } + return buf; + }; + function buf2binstring(buf, len) { + if (len < 65534) { + if (buf.subarray && STR_APPLY_UIA_OK || !buf.subarray && STR_APPLY_OK) { + return String.fromCharCode.apply(null, utils.shrinkBuf(buf, len)); + } + } + var result = ""; + for (var i = 0; i < len; i++) { + result += String.fromCharCode(buf[i]); + } + return result; + } + exports3.buf2binstring = function(buf) { + return buf2binstring(buf, buf.length); + }; + exports3.binstring2buf = function(str) { + var buf = new utils.Buf8(str.length); + for (var i = 0, len = buf.length; i < len; i++) { + buf[i] = str.charCodeAt(i); + } + return buf; + }; + exports3.buf2string = function(buf, max) { + var i, out, c, c_len; + var len = max || buf.length; + var utf16buf = new Array(len * 2); + for (out = 0, i = 0; i < len; ) { + c = buf[i++]; + if (c < 128) { + utf16buf[out++] = c; + continue; + } + c_len = _utf8len[c]; + if (c_len > 4) { + utf16buf[out++] = 65533; + i += c_len - 1; + continue; + } + c &= c_len === 2 ? 31 : c_len === 3 ? 15 : 7; + while (c_len > 1 && i < len) { + c = c << 6 | buf[i++] & 63; + c_len--; + } + if (c_len > 1) { + utf16buf[out++] = 65533; + continue; + } + if (c < 65536) { + utf16buf[out++] = c; + } else { + c -= 65536; + utf16buf[out++] = 55296 | c >> 10 & 1023; + utf16buf[out++] = 56320 | c & 1023; + } + } + return buf2binstring(utf16buf, out); + }; + exports3.utf8border = function(buf, max) { + var pos; + max = max || buf.length; + if (max > buf.length) { + max = buf.length; + } + pos = max - 1; + while (pos >= 0 && (buf[pos] & 192) === 128) { + pos--; + } + if (pos < 0) { + return max; + } + if (pos === 0) { + return max; + } + return pos + _utf8len[buf[pos]] > max ? pos : max; + }; + }, { "./common": 5 }], 7: [function(require2, module4, exports3) { + "use strict"; + function adler32(adler, buf, len, pos) { + var s1 = adler & 65535 | 0, s2 = adler >>> 16 & 65535 | 0, n = 0; + while (len !== 0) { + n = len > 2e3 ? 2e3 : len; + len -= n; + do { + s1 = s1 + buf[pos++] | 0; + s2 = s2 + s1 | 0; + } while (--n); + s1 %= 65521; + s2 %= 65521; + } + return s1 | s2 << 16 | 0; + } + module4.exports = adler32; + }, {}], 8: [function(require2, module4, exports3) { + "use strict"; + function makeTable() { + var c, table = []; + for (var n = 0; n < 256; n++) { + c = n; + for (var k = 0; k < 8; k++) { + c = c & 1 ? 3988292384 ^ c >>> 1 : c >>> 1; + } + table[n] = c; + } + return table; + } + var crcTable = makeTable(); + function crc32(crc, buf, len, pos) { + var t = crcTable, end = pos + len; + crc ^= -1; + for (var i = pos; i < end; i++) { + crc = crc >>> 8 ^ t[(crc ^ buf[i]) & 255]; + } + return crc ^ -1; + } + module4.exports = crc32; + }, {}], 9: [function(require2, module4, exports3) { + "use strict"; + var utils = require2("../utils/common"); + var trees = require2("./trees"); + var adler32 = require2("./adler32"); + var crc32 = require2("./crc32"); + var msg = require2("./messages"); + var Z_NO_FLUSH = 0; + var Z_PARTIAL_FLUSH = 1; + var Z_FULL_FLUSH = 3; + var Z_FINISH = 4; + var Z_BLOCK = 5; + var Z_OK = 0; + var Z_STREAM_END = 1; + var Z_STREAM_ERROR = -2; + var Z_DATA_ERROR = -3; + var Z_BUF_ERROR = -5; + var Z_DEFAULT_COMPRESSION = -1; + var Z_FILTERED = 1; + var Z_HUFFMAN_ONLY = 2; + var Z_RLE = 3; + var Z_FIXED = 4; + var Z_DEFAULT_STRATEGY = 0; + var Z_UNKNOWN = 2; + var Z_DEFLATED = 8; + var MAX_MEM_LEVEL = 9; + var MAX_WBITS = 15; + var DEF_MEM_LEVEL = 8; + var LENGTH_CODES = 29; + var LITERALS = 256; + var L_CODES = LITERALS + 1 + LENGTH_CODES; + var D_CODES = 30; + var BL_CODES = 19; + var HEAP_SIZE = 2 * L_CODES + 1; + var MAX_BITS = 15; + var MIN_MATCH = 3; + var MAX_MATCH = 258; + var MIN_LOOKAHEAD = MAX_MATCH + MIN_MATCH + 1; + var PRESET_DICT = 32; + var INIT_STATE = 42; + var EXTRA_STATE = 69; + var NAME_STATE = 73; + var COMMENT_STATE = 91; + var HCRC_STATE = 103; + var BUSY_STATE = 113; + var FINISH_STATE = 666; + var BS_NEED_MORE = 1; + var BS_BLOCK_DONE = 2; + var BS_FINISH_STARTED = 3; + var BS_FINISH_DONE = 4; + var OS_CODE = 3; + function err(strm, errorCode) { + strm.msg = msg[errorCode]; + return errorCode; + } + function rank(f) { + return (f << 1) - (f > 4 ? 9 : 0); + } + function zero(buf) { + var len = buf.length; + while (--len >= 0) { + buf[len] = 0; + } + } + function flush_pending(strm) { + var s = strm.state; + var len = s.pending; + if (len > strm.avail_out) { + len = strm.avail_out; + } + if (len === 0) { + return; + } + utils.arraySet(strm.output, s.pending_buf, s.pending_out, len, strm.next_out); + strm.next_out += len; + s.pending_out += len; + strm.total_out += len; + strm.avail_out -= len; + s.pending -= len; + if (s.pending === 0) { + s.pending_out = 0; + } + } + function flush_block_only(s, last) { + trees._tr_flush_block(s, s.block_start >= 0 ? s.block_start : -1, s.strstart - s.block_start, last); + s.block_start = s.strstart; + flush_pending(s.strm); + } + function put_byte(s, b) { + s.pending_buf[s.pending++] = b; + } + function putShortMSB(s, b) { + s.pending_buf[s.pending++] = b >>> 8 & 255; + s.pending_buf[s.pending++] = b & 255; + } + function read_buf(strm, buf, start, size) { + var len = strm.avail_in; + if (len > size) { + len = size; + } + if (len === 0) { + return 0; + } + strm.avail_in -= len; + utils.arraySet(buf, strm.input, strm.next_in, len, start); + if (strm.state.wrap === 1) { + strm.adler = adler32(strm.adler, buf, len, start); + } else if (strm.state.wrap === 2) { + strm.adler = crc32(strm.adler, buf, len, start); + } + strm.next_in += len; + strm.total_in += len; + return len; + } + function longest_match(s, cur_match) { + var chain_length = s.max_chain_length; + var scan = s.strstart; + var match; + var len; + var best_len = s.prev_length; + var nice_match = s.nice_match; + var limit = s.strstart > s.w_size - MIN_LOOKAHEAD ? s.strstart - (s.w_size - MIN_LOOKAHEAD) : 0; + var _win = s.window; + var wmask = s.w_mask; + var prev = s.prev; + var strend = s.strstart + MAX_MATCH; + var scan_end1 = _win[scan + best_len - 1]; + var scan_end = _win[scan + best_len]; + if (s.prev_length >= s.good_match) { + chain_length >>= 2; + } + if (nice_match > s.lookahead) { + nice_match = s.lookahead; + } + do { + match = cur_match; + if (_win[match + best_len] !== scan_end || _win[match + best_len - 1] !== scan_end1 || _win[match] !== _win[scan] || _win[++match] !== _win[scan + 1]) { + continue; + } + scan += 2; + match++; + do { + } while (_win[++scan] === _win[++match] && _win[++scan] === _win[++match] && _win[++scan] === _win[++match] && _win[++scan] === _win[++match] && _win[++scan] === _win[++match] && _win[++scan] === _win[++match] && _win[++scan] === _win[++match] && _win[++scan] === _win[++match] && scan < strend); + len = MAX_MATCH - (strend - scan); + scan = strend - MAX_MATCH; + if (len > best_len) { + s.match_start = cur_match; + best_len = len; + if (len >= nice_match) { + break; + } + scan_end1 = _win[scan + best_len - 1]; + scan_end = _win[scan + best_len]; + } + } while ((cur_match = prev[cur_match & wmask]) > limit && --chain_length !== 0); + if (best_len <= s.lookahead) { + return best_len; + } + return s.lookahead; + } + function fill_window(s) { + var _w_size = s.w_size; + var p, n, m, more, str; + do { + more = s.window_size - s.lookahead - s.strstart; + if (s.strstart >= _w_size + (_w_size - MIN_LOOKAHEAD)) { + utils.arraySet(s.window, s.window, _w_size, _w_size, 0); + s.match_start -= _w_size; + s.strstart -= _w_size; + s.block_start -= _w_size; + n = s.hash_size; + p = n; + do { + m = s.head[--p]; + s.head[p] = m >= _w_size ? m - _w_size : 0; + } while (--n); + n = _w_size; + p = n; + do { + m = s.prev[--p]; + s.prev[p] = m >= _w_size ? m - _w_size : 0; + } while (--n); + more += _w_size; + } + if (s.strm.avail_in === 0) { + break; + } + n = read_buf(s.strm, s.window, s.strstart + s.lookahead, more); + s.lookahead += n; + if (s.lookahead + s.insert >= MIN_MATCH) { + str = s.strstart - s.insert; + s.ins_h = s.window[str]; + s.ins_h = (s.ins_h << s.hash_shift ^ s.window[str + 1]) & s.hash_mask; + while (s.insert) { + s.ins_h = (s.ins_h << s.hash_shift ^ s.window[str + MIN_MATCH - 1]) & s.hash_mask; + s.prev[str & s.w_mask] = s.head[s.ins_h]; + s.head[s.ins_h] = str; + str++; + s.insert--; + if (s.lookahead + s.insert < MIN_MATCH) { + break; + } + } + } + } while (s.lookahead < MIN_LOOKAHEAD && s.strm.avail_in !== 0); + } + function deflate_stored(s, flush) { + var max_block_size = 65535; + if (max_block_size > s.pending_buf_size - 5) { + max_block_size = s.pending_buf_size - 5; + } + for (; ; ) { + if (s.lookahead <= 1) { + fill_window(s); + if (s.lookahead === 0 && flush === Z_NO_FLUSH) { + return BS_NEED_MORE; + } + if (s.lookahead === 0) { + break; + } + } + s.strstart += s.lookahead; + s.lookahead = 0; + var max_start = s.block_start + max_block_size; + if (s.strstart === 0 || s.strstart >= max_start) { + s.lookahead = s.strstart - max_start; + s.strstart = max_start; + flush_block_only(s, false); + if (s.strm.avail_out === 0) { + return BS_NEED_MORE; + } + } + if (s.strstart - s.block_start >= s.w_size - MIN_LOOKAHEAD) { + flush_block_only(s, false); + if (s.strm.avail_out === 0) { + return BS_NEED_MORE; + } + } + } + s.insert = 0; + if (flush === Z_FINISH) { + flush_block_only(s, true); + if (s.strm.avail_out === 0) { + return BS_FINISH_STARTED; + } + return BS_FINISH_DONE; + } + if (s.strstart > s.block_start) { + flush_block_only(s, false); + if (s.strm.avail_out === 0) { + return BS_NEED_MORE; + } + } + return BS_NEED_MORE; + } + function deflate_fast(s, flush) { + var hash_head; + var bflush; + for (; ; ) { + if (s.lookahead < MIN_LOOKAHEAD) { + fill_window(s); + if (s.lookahead < MIN_LOOKAHEAD && flush === Z_NO_FLUSH) { + return BS_NEED_MORE; + } + if (s.lookahead === 0) { + break; + } + } + hash_head = 0; + if (s.lookahead >= MIN_MATCH) { + s.ins_h = (s.ins_h << s.hash_shift ^ s.window[s.strstart + MIN_MATCH - 1]) & s.hash_mask; + hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h]; + s.head[s.ins_h] = s.strstart; + } + if (hash_head !== 0 && s.strstart - hash_head <= s.w_size - MIN_LOOKAHEAD) { + s.match_length = longest_match(s, hash_head); + } + if (s.match_length >= MIN_MATCH) { + bflush = trees._tr_tally(s, s.strstart - s.match_start, s.match_length - MIN_MATCH); + s.lookahead -= s.match_length; + if (s.match_length <= s.max_lazy_match && s.lookahead >= MIN_MATCH) { + s.match_length--; + do { + s.strstart++; + s.ins_h = (s.ins_h << s.hash_shift ^ s.window[s.strstart + MIN_MATCH - 1]) & s.hash_mask; + hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h]; + s.head[s.ins_h] = s.strstart; + } while (--s.match_length !== 0); + s.strstart++; + } else { + s.strstart += s.match_length; + s.match_length = 0; + s.ins_h = s.window[s.strstart]; + s.ins_h = (s.ins_h << s.hash_shift ^ s.window[s.strstart + 1]) & s.hash_mask; + } + } else { + bflush = trees._tr_tally(s, 0, s.window[s.strstart]); + s.lookahead--; + s.strstart++; + } + if (bflush) { + flush_block_only(s, false); + if (s.strm.avail_out === 0) { + return BS_NEED_MORE; + } + } + } + s.insert = s.strstart < MIN_MATCH - 1 ? s.strstart : MIN_MATCH - 1; + if (flush === Z_FINISH) { + flush_block_only(s, true); + if (s.strm.avail_out === 0) { + return BS_FINISH_STARTED; + } + return BS_FINISH_DONE; + } + if (s.last_lit) { + flush_block_only(s, false); + if (s.strm.avail_out === 0) { + return BS_NEED_MORE; + } + } + return BS_BLOCK_DONE; + } + function deflate_slow(s, flush) { + var hash_head; + var bflush; + var max_insert; + for (; ; ) { + if (s.lookahead < MIN_LOOKAHEAD) { + fill_window(s); + if (s.lookahead < MIN_LOOKAHEAD && flush === Z_NO_FLUSH) { + return BS_NEED_MORE; + } + if (s.lookahead === 0) { + break; + } + } + hash_head = 0; + if (s.lookahead >= MIN_MATCH) { + s.ins_h = (s.ins_h << s.hash_shift ^ s.window[s.strstart + MIN_MATCH - 1]) & s.hash_mask; + hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h]; + s.head[s.ins_h] = s.strstart; + } + s.prev_length = s.match_length; + s.prev_match = s.match_start; + s.match_length = MIN_MATCH - 1; + if (hash_head !== 0 && s.prev_length < s.max_lazy_match && s.strstart - hash_head <= s.w_size - MIN_LOOKAHEAD) { + s.match_length = longest_match(s, hash_head); + if (s.match_length <= 5 && (s.strategy === Z_FILTERED || s.match_length === MIN_MATCH && s.strstart - s.match_start > 4096)) { + s.match_length = MIN_MATCH - 1; + } + } + if (s.prev_length >= MIN_MATCH && s.match_length <= s.prev_length) { + max_insert = s.strstart + s.lookahead - MIN_MATCH; + bflush = trees._tr_tally(s, s.strstart - 1 - s.prev_match, s.prev_length - MIN_MATCH); + s.lookahead -= s.prev_length - 1; + s.prev_length -= 2; + do { + if (++s.strstart <= max_insert) { + s.ins_h = (s.ins_h << s.hash_shift ^ s.window[s.strstart + MIN_MATCH - 1]) & s.hash_mask; + hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h]; + s.head[s.ins_h] = s.strstart; + } + } while (--s.prev_length !== 0); + s.match_available = 0; + s.match_length = MIN_MATCH - 1; + s.strstart++; + if (bflush) { + flush_block_only(s, false); + if (s.strm.avail_out === 0) { + return BS_NEED_MORE; + } + } + } else if (s.match_available) { + bflush = trees._tr_tally(s, 0, s.window[s.strstart - 1]); + if (bflush) { + flush_block_only(s, false); + } + s.strstart++; + s.lookahead--; + if (s.strm.avail_out === 0) { + return BS_NEED_MORE; + } + } else { + s.match_available = 1; + s.strstart++; + s.lookahead--; + } + } + if (s.match_available) { + bflush = trees._tr_tally(s, 0, s.window[s.strstart - 1]); + s.match_available = 0; + } + s.insert = s.strstart < MIN_MATCH - 1 ? s.strstart : MIN_MATCH - 1; + if (flush === Z_FINISH) { + flush_block_only(s, true); + if (s.strm.avail_out === 0) { + return BS_FINISH_STARTED; + } + return BS_FINISH_DONE; + } + if (s.last_lit) { + flush_block_only(s, false); + if (s.strm.avail_out === 0) { + return BS_NEED_MORE; + } + } + return BS_BLOCK_DONE; + } + function deflate_rle(s, flush) { + var bflush; + var prev; + var scan, strend; + var _win = s.window; + for (; ; ) { + if (s.lookahead <= MAX_MATCH) { + fill_window(s); + if (s.lookahead <= MAX_MATCH && flush === Z_NO_FLUSH) { + return BS_NEED_MORE; + } + if (s.lookahead === 0) { + break; + } + } + s.match_length = 0; + if (s.lookahead >= MIN_MATCH && s.strstart > 0) { + scan = s.strstart - 1; + prev = _win[scan]; + if (prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan]) { + strend = s.strstart + MAX_MATCH; + do { + } while (prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan] && scan < strend); + s.match_length = MAX_MATCH - (strend - scan); + if (s.match_length > s.lookahead) { + s.match_length = s.lookahead; + } + } + } + if (s.match_length >= MIN_MATCH) { + bflush = trees._tr_tally(s, 1, s.match_length - MIN_MATCH); + s.lookahead -= s.match_length; + s.strstart += s.match_length; + s.match_length = 0; + } else { + bflush = trees._tr_tally(s, 0, s.window[s.strstart]); + s.lookahead--; + s.strstart++; + } + if (bflush) { + flush_block_only(s, false); + if (s.strm.avail_out === 0) { + return BS_NEED_MORE; + } + } + } + s.insert = 0; + if (flush === Z_FINISH) { + flush_block_only(s, true); + if (s.strm.avail_out === 0) { + return BS_FINISH_STARTED; + } + return BS_FINISH_DONE; + } + if (s.last_lit) { + flush_block_only(s, false); + if (s.strm.avail_out === 0) { + return BS_NEED_MORE; + } + } + return BS_BLOCK_DONE; + } + function deflate_huff(s, flush) { + var bflush; + for (; ; ) { + if (s.lookahead === 0) { + fill_window(s); + if (s.lookahead === 0) { + if (flush === Z_NO_FLUSH) { + return BS_NEED_MORE; + } + break; + } + } + s.match_length = 0; + bflush = trees._tr_tally(s, 0, s.window[s.strstart]); + s.lookahead--; + s.strstart++; + if (bflush) { + flush_block_only(s, false); + if (s.strm.avail_out === 0) { + return BS_NEED_MORE; + } + } + } + s.insert = 0; + if (flush === Z_FINISH) { + flush_block_only(s, true); + if (s.strm.avail_out === 0) { + return BS_FINISH_STARTED; + } + return BS_FINISH_DONE; + } + if (s.last_lit) { + flush_block_only(s, false); + if (s.strm.avail_out === 0) { + return BS_NEED_MORE; + } + } + return BS_BLOCK_DONE; + } + function Config(good_length, max_lazy, nice_length, max_chain, func) { + this.good_length = good_length; + this.max_lazy = max_lazy; + this.nice_length = nice_length; + this.max_chain = max_chain; + this.func = func; + } + var configuration_table; + configuration_table = [ + new Config(0, 0, 0, 0, deflate_stored), + new Config(4, 4, 8, 4, deflate_fast), + new Config(4, 5, 16, 8, deflate_fast), + new Config(4, 6, 32, 32, deflate_fast), + new Config(4, 4, 16, 16, deflate_slow), + new Config(8, 16, 32, 32, deflate_slow), + new Config(8, 16, 128, 128, deflate_slow), + new Config(8, 32, 128, 256, deflate_slow), + new Config(32, 128, 258, 1024, deflate_slow), + new Config(32, 258, 258, 4096, deflate_slow) + ]; + function lm_init(s) { + s.window_size = 2 * s.w_size; + zero(s.head); + s.max_lazy_match = configuration_table[s.level].max_lazy; + s.good_match = configuration_table[s.level].good_length; + s.nice_match = configuration_table[s.level].nice_length; + s.max_chain_length = configuration_table[s.level].max_chain; + s.strstart = 0; + s.block_start = 0; + s.lookahead = 0; + s.insert = 0; + s.match_length = s.prev_length = MIN_MATCH - 1; + s.match_available = 0; + s.ins_h = 0; + } + function DeflateState() { + this.strm = null; + this.status = 0; + this.pending_buf = null; + this.pending_buf_size = 0; + this.pending_out = 0; + this.pending = 0; + this.wrap = 0; + this.gzhead = null; + this.gzindex = 0; + this.method = Z_DEFLATED; + this.last_flush = -1; + this.w_size = 0; + this.w_bits = 0; + this.w_mask = 0; + this.window = null; + this.window_size = 0; + this.prev = null; + this.head = null; + this.ins_h = 0; + this.hash_size = 0; + this.hash_bits = 0; + this.hash_mask = 0; + this.hash_shift = 0; + this.block_start = 0; + this.match_length = 0; + this.prev_match = 0; + this.match_available = 0; + this.strstart = 0; + this.match_start = 0; + this.lookahead = 0; + this.prev_length = 0; + this.max_chain_length = 0; + this.max_lazy_match = 0; + this.level = 0; + this.strategy = 0; + this.good_match = 0; + this.nice_match = 0; + this.dyn_ltree = new utils.Buf16(HEAP_SIZE * 2); + this.dyn_dtree = new utils.Buf16((2 * D_CODES + 1) * 2); + this.bl_tree = new utils.Buf16((2 * BL_CODES + 1) * 2); + zero(this.dyn_ltree); + zero(this.dyn_dtree); + zero(this.bl_tree); + this.l_desc = null; + this.d_desc = null; + this.bl_desc = null; + this.bl_count = new utils.Buf16(MAX_BITS + 1); + this.heap = new utils.Buf16(2 * L_CODES + 1); + zero(this.heap); + this.heap_len = 0; + this.heap_max = 0; + this.depth = new utils.Buf16(2 * L_CODES + 1); + zero(this.depth); + this.l_buf = 0; + this.lit_bufsize = 0; + this.last_lit = 0; + this.d_buf = 0; + this.opt_len = 0; + this.static_len = 0; + this.matches = 0; + this.insert = 0; + this.bi_buf = 0; + this.bi_valid = 0; + } + function deflateResetKeep(strm) { + var s; + if (!strm || !strm.state) { + return err(strm, Z_STREAM_ERROR); + } + strm.total_in = strm.total_out = 0; + strm.data_type = Z_UNKNOWN; + s = strm.state; + s.pending = 0; + s.pending_out = 0; + if (s.wrap < 0) { + s.wrap = -s.wrap; + } + s.status = s.wrap ? INIT_STATE : BUSY_STATE; + strm.adler = s.wrap === 2 ? 0 : 1; + s.last_flush = Z_NO_FLUSH; + trees._tr_init(s); + return Z_OK; + } + function deflateReset(strm) { + var ret = deflateResetKeep(strm); + if (ret === Z_OK) { + lm_init(strm.state); + } + return ret; + } + function deflateSetHeader(strm, head) { + if (!strm || !strm.state) { + return Z_STREAM_ERROR; + } + if (strm.state.wrap !== 2) { + return Z_STREAM_ERROR; + } + strm.state.gzhead = head; + return Z_OK; + } + function deflateInit2(strm, level, method, windowBits, memLevel, strategy) { + if (!strm) { + return Z_STREAM_ERROR; + } + var wrap = 1; + if (level === Z_DEFAULT_COMPRESSION) { + level = 6; + } + if (windowBits < 0) { + wrap = 0; + windowBits = -windowBits; + } else if (windowBits > 15) { + wrap = 2; + windowBits -= 16; + } + if (memLevel < 1 || memLevel > MAX_MEM_LEVEL || method !== Z_DEFLATED || windowBits < 8 || windowBits > 15 || level < 0 || level > 9 || strategy < 0 || strategy > Z_FIXED) { + return err(strm, Z_STREAM_ERROR); + } + if (windowBits === 8) { + windowBits = 9; + } + var s = new DeflateState(); + strm.state = s; + s.strm = strm; + s.wrap = wrap; + s.gzhead = null; + s.w_bits = windowBits; + s.w_size = 1 << s.w_bits; + s.w_mask = s.w_size - 1; + s.hash_bits = memLevel + 7; + s.hash_size = 1 << s.hash_bits; + s.hash_mask = s.hash_size - 1; + s.hash_shift = ~~((s.hash_bits + MIN_MATCH - 1) / MIN_MATCH); + s.window = new utils.Buf8(s.w_size * 2); + s.head = new utils.Buf16(s.hash_size); + s.prev = new utils.Buf16(s.w_size); + s.lit_bufsize = 1 << memLevel + 6; + s.pending_buf_size = s.lit_bufsize * 4; + s.pending_buf = new utils.Buf8(s.pending_buf_size); + s.d_buf = 1 * s.lit_bufsize; + s.l_buf = (1 + 2) * s.lit_bufsize; + s.level = level; + s.strategy = strategy; + s.method = method; + return deflateReset(strm); + } + function deflateInit(strm, level) { + return deflateInit2(strm, level, Z_DEFLATED, MAX_WBITS, DEF_MEM_LEVEL, Z_DEFAULT_STRATEGY); + } + function deflate(strm, flush) { + var old_flush, s; + var beg, val; + if (!strm || !strm.state || flush > Z_BLOCK || flush < 0) { + return strm ? err(strm, Z_STREAM_ERROR) : Z_STREAM_ERROR; + } + s = strm.state; + if (!strm.output || !strm.input && strm.avail_in !== 0 || s.status === FINISH_STATE && flush !== Z_FINISH) { + return err(strm, strm.avail_out === 0 ? Z_BUF_ERROR : Z_STREAM_ERROR); + } + s.strm = strm; + old_flush = s.last_flush; + s.last_flush = flush; + if (s.status === INIT_STATE) { + if (s.wrap === 2) { + strm.adler = 0; + put_byte(s, 31); + put_byte(s, 139); + put_byte(s, 8); + if (!s.gzhead) { + put_byte(s, 0); + put_byte(s, 0); + put_byte(s, 0); + put_byte(s, 0); + put_byte(s, 0); + put_byte(s, s.level === 9 ? 2 : s.strategy >= Z_HUFFMAN_ONLY || s.level < 2 ? 4 : 0); + put_byte(s, OS_CODE); + s.status = BUSY_STATE; + } else { + put_byte(s, (s.gzhead.text ? 1 : 0) + (s.gzhead.hcrc ? 2 : 0) + (!s.gzhead.extra ? 0 : 4) + (!s.gzhead.name ? 0 : 8) + (!s.gzhead.comment ? 0 : 16)); + put_byte(s, s.gzhead.time & 255); + put_byte(s, s.gzhead.time >> 8 & 255); + put_byte(s, s.gzhead.time >> 16 & 255); + put_byte(s, s.gzhead.time >> 24 & 255); + put_byte(s, s.level === 9 ? 2 : s.strategy >= Z_HUFFMAN_ONLY || s.level < 2 ? 4 : 0); + put_byte(s, s.gzhead.os & 255); + if (s.gzhead.extra && s.gzhead.extra.length) { + put_byte(s, s.gzhead.extra.length & 255); + put_byte(s, s.gzhead.extra.length >> 8 & 255); + } + if (s.gzhead.hcrc) { + strm.adler = crc32(strm.adler, s.pending_buf, s.pending, 0); + } + s.gzindex = 0; + s.status = EXTRA_STATE; + } + } else { + var header = Z_DEFLATED + (s.w_bits - 8 << 4) << 8; + var level_flags = -1; + if (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2) { + level_flags = 0; + } else if (s.level < 6) { + level_flags = 1; + } else if (s.level === 6) { + level_flags = 2; + } else { + level_flags = 3; + } + header |= level_flags << 6; + if (s.strstart !== 0) { + header |= PRESET_DICT; + } + header += 31 - header % 31; + s.status = BUSY_STATE; + putShortMSB(s, header); + if (s.strstart !== 0) { + putShortMSB(s, strm.adler >>> 16); + putShortMSB(s, strm.adler & 65535); + } + strm.adler = 1; + } + } + if (s.status === EXTRA_STATE) { + if (s.gzhead.extra) { + beg = s.pending; + while (s.gzindex < (s.gzhead.extra.length & 65535)) { + if (s.pending === s.pending_buf_size) { + if (s.gzhead.hcrc && s.pending > beg) { + strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg); + } + flush_pending(strm); + beg = s.pending; + if (s.pending === s.pending_buf_size) { + break; + } + } + put_byte(s, s.gzhead.extra[s.gzindex] & 255); + s.gzindex++; + } + if (s.gzhead.hcrc && s.pending > beg) { + strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg); + } + if (s.gzindex === s.gzhead.extra.length) { + s.gzindex = 0; + s.status = NAME_STATE; + } + } else { + s.status = NAME_STATE; + } + } + if (s.status === NAME_STATE) { + if (s.gzhead.name) { + beg = s.pending; + do { + if (s.pending === s.pending_buf_size) { + if (s.gzhead.hcrc && s.pending > beg) { + strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg); + } + flush_pending(strm); + beg = s.pending; + if (s.pending === s.pending_buf_size) { + val = 1; + break; + } + } + if (s.gzindex < s.gzhead.name.length) { + val = s.gzhead.name.charCodeAt(s.gzindex++) & 255; + } else { + val = 0; + } + put_byte(s, val); + } while (val !== 0); + if (s.gzhead.hcrc && s.pending > beg) { + strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg); + } + if (val === 0) { + s.gzindex = 0; + s.status = COMMENT_STATE; + } + } else { + s.status = COMMENT_STATE; + } + } + if (s.status === COMMENT_STATE) { + if (s.gzhead.comment) { + beg = s.pending; + do { + if (s.pending === s.pending_buf_size) { + if (s.gzhead.hcrc && s.pending > beg) { + strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg); + } + flush_pending(strm); + beg = s.pending; + if (s.pending === s.pending_buf_size) { + val = 1; + break; + } + } + if (s.gzindex < s.gzhead.comment.length) { + val = s.gzhead.comment.charCodeAt(s.gzindex++) & 255; + } else { + val = 0; + } + put_byte(s, val); + } while (val !== 0); + if (s.gzhead.hcrc && s.pending > beg) { + strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg); + } + if (val === 0) { + s.status = HCRC_STATE; + } + } else { + s.status = HCRC_STATE; + } + } + if (s.status === HCRC_STATE) { + if (s.gzhead.hcrc) { + if (s.pending + 2 > s.pending_buf_size) { + flush_pending(strm); + } + if (s.pending + 2 <= s.pending_buf_size) { + put_byte(s, strm.adler & 255); + put_byte(s, strm.adler >> 8 & 255); + strm.adler = 0; + s.status = BUSY_STATE; + } + } else { + s.status = BUSY_STATE; + } + } + if (s.pending !== 0) { + flush_pending(strm); + if (strm.avail_out === 0) { + s.last_flush = -1; + return Z_OK; + } + } else if (strm.avail_in === 0 && rank(flush) <= rank(old_flush) && flush !== Z_FINISH) { + return err(strm, Z_BUF_ERROR); + } + if (s.status === FINISH_STATE && strm.avail_in !== 0) { + return err(strm, Z_BUF_ERROR); + } + if (strm.avail_in !== 0 || s.lookahead !== 0 || flush !== Z_NO_FLUSH && s.status !== FINISH_STATE) { + var bstate = s.strategy === Z_HUFFMAN_ONLY ? deflate_huff(s, flush) : s.strategy === Z_RLE ? deflate_rle(s, flush) : configuration_table[s.level].func(s, flush); + if (bstate === BS_FINISH_STARTED || bstate === BS_FINISH_DONE) { + s.status = FINISH_STATE; + } + if (bstate === BS_NEED_MORE || bstate === BS_FINISH_STARTED) { + if (strm.avail_out === 0) { + s.last_flush = -1; + } + return Z_OK; + } + if (bstate === BS_BLOCK_DONE) { + if (flush === Z_PARTIAL_FLUSH) { + trees._tr_align(s); + } else if (flush !== Z_BLOCK) { + trees._tr_stored_block(s, 0, 0, false); + if (flush === Z_FULL_FLUSH) { + zero(s.head); + if (s.lookahead === 0) { + s.strstart = 0; + s.block_start = 0; + s.insert = 0; + } + } + } + flush_pending(strm); + if (strm.avail_out === 0) { + s.last_flush = -1; + return Z_OK; + } + } + } + if (flush !== Z_FINISH) { + return Z_OK; + } + if (s.wrap <= 0) { + return Z_STREAM_END; + } + if (s.wrap === 2) { + put_byte(s, strm.adler & 255); + put_byte(s, strm.adler >> 8 & 255); + put_byte(s, strm.adler >> 16 & 255); + put_byte(s, strm.adler >> 24 & 255); + put_byte(s, strm.total_in & 255); + put_byte(s, strm.total_in >> 8 & 255); + put_byte(s, strm.total_in >> 16 & 255); + put_byte(s, strm.total_in >> 24 & 255); + } else { + putShortMSB(s, strm.adler >>> 16); + putShortMSB(s, strm.adler & 65535); + } + flush_pending(strm); + if (s.wrap > 0) { + s.wrap = -s.wrap; + } + return s.pending !== 0 ? Z_OK : Z_STREAM_END; + } + function deflateEnd(strm) { + var status; + if (!strm || !strm.state) { + return Z_STREAM_ERROR; + } + status = strm.state.status; + if (status !== INIT_STATE && status !== EXTRA_STATE && status !== NAME_STATE && status !== COMMENT_STATE && status !== HCRC_STATE && status !== BUSY_STATE && status !== FINISH_STATE) { + return err(strm, Z_STREAM_ERROR); + } + strm.state = null; + return status === BUSY_STATE ? err(strm, Z_DATA_ERROR) : Z_OK; + } + function deflateSetDictionary(strm, dictionary) { + var dictLength = dictionary.length; + var s; + var str, n; + var wrap; + var avail; + var next; + var input; + var tmpDict; + if (!strm || !strm.state) { + return Z_STREAM_ERROR; + } + s = strm.state; + wrap = s.wrap; + if (wrap === 2 || wrap === 1 && s.status !== INIT_STATE || s.lookahead) { + return Z_STREAM_ERROR; + } + if (wrap === 1) { + strm.adler = adler32(strm.adler, dictionary, dictLength, 0); + } + s.wrap = 0; + if (dictLength >= s.w_size) { + if (wrap === 0) { + zero(s.head); + s.strstart = 0; + s.block_start = 0; + s.insert = 0; + } + tmpDict = new utils.Buf8(s.w_size); + utils.arraySet(tmpDict, dictionary, dictLength - s.w_size, s.w_size, 0); + dictionary = tmpDict; + dictLength = s.w_size; + } + avail = strm.avail_in; + next = strm.next_in; + input = strm.input; + strm.avail_in = dictLength; + strm.next_in = 0; + strm.input = dictionary; + fill_window(s); + while (s.lookahead >= MIN_MATCH) { + str = s.strstart; + n = s.lookahead - (MIN_MATCH - 1); + do { + s.ins_h = (s.ins_h << s.hash_shift ^ s.window[str + MIN_MATCH - 1]) & s.hash_mask; + s.prev[str & s.w_mask] = s.head[s.ins_h]; + s.head[s.ins_h] = str; + str++; + } while (--n); + s.strstart = str; + s.lookahead = MIN_MATCH - 1; + fill_window(s); + } + s.strstart += s.lookahead; + s.block_start = s.strstart; + s.insert = s.lookahead; + s.lookahead = 0; + s.match_length = s.prev_length = MIN_MATCH - 1; + s.match_available = 0; + strm.next_in = next; + strm.input = input; + strm.avail_in = avail; + s.wrap = wrap; + return Z_OK; + } + exports3.deflateInit = deflateInit; + exports3.deflateInit2 = deflateInit2; + exports3.deflateReset = deflateReset; + exports3.deflateResetKeep = deflateResetKeep; + exports3.deflateSetHeader = deflateSetHeader; + exports3.deflate = deflate; + exports3.deflateEnd = deflateEnd; + exports3.deflateSetDictionary = deflateSetDictionary; + exports3.deflateInfo = "pako deflate (from Nodeca project)"; + }, { "../utils/common": 5, "./adler32": 7, "./crc32": 8, "./messages": 10, "./trees": 11 }], 10: [function(require2, module4, exports3) { + "use strict"; + module4.exports = { + 2: "need dictionary", + 1: "stream end", + 0: "", + "-1": "file error", + "-2": "stream error", + "-3": "data error", + "-4": "insufficient memory", + "-5": "buffer error", + "-6": "incompatible version" + }; + }, {}], 11: [function(require2, module4, exports3) { + "use strict"; + var utils = require2("../utils/common"); + var Z_FIXED = 4; + var Z_BINARY = 0; + var Z_TEXT = 1; + var Z_UNKNOWN = 2; + function zero(buf) { + var len = buf.length; + while (--len >= 0) { + buf[len] = 0; + } + } + var STORED_BLOCK = 0; + var STATIC_TREES = 1; + var DYN_TREES = 2; + var MIN_MATCH = 3; + var MAX_MATCH = 258; + var LENGTH_CODES = 29; + var LITERALS = 256; + var L_CODES = LITERALS + 1 + LENGTH_CODES; + var D_CODES = 30; + var BL_CODES = 19; + var HEAP_SIZE = 2 * L_CODES + 1; + var MAX_BITS = 15; + var Buf_size = 16; + var MAX_BL_BITS = 7; + var END_BLOCK = 256; + var REP_3_6 = 16; + var REPZ_3_10 = 17; + var REPZ_11_138 = 18; + var extra_lbits = [0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0]; + var extra_dbits = [0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13]; + var extra_blbits = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 3, 7]; + var bl_order = [16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]; + var DIST_CODE_LEN = 512; + var static_ltree = new Array((L_CODES + 2) * 2); + zero(static_ltree); + var static_dtree = new Array(D_CODES * 2); + zero(static_dtree); + var _dist_code = new Array(DIST_CODE_LEN); + zero(_dist_code); + var _length_code = new Array(MAX_MATCH - MIN_MATCH + 1); + zero(_length_code); + var base_length = new Array(LENGTH_CODES); + zero(base_length); + var base_dist = new Array(D_CODES); + zero(base_dist); + function StaticTreeDesc(static_tree, extra_bits, extra_base, elems, max_length) { + this.static_tree = static_tree; + this.extra_bits = extra_bits; + this.extra_base = extra_base; + this.elems = elems; + this.max_length = max_length; + this.has_stree = static_tree && static_tree.length; + } + var static_l_desc; + var static_d_desc; + var static_bl_desc; + function TreeDesc(dyn_tree, stat_desc) { + this.dyn_tree = dyn_tree; + this.max_code = 0; + this.stat_desc = stat_desc; + } + function d_code(dist) { + return dist < 256 ? _dist_code[dist] : _dist_code[256 + (dist >>> 7)]; + } + function put_short(s, w) { + s.pending_buf[s.pending++] = w & 255; + s.pending_buf[s.pending++] = w >>> 8 & 255; + } + function send_bits(s, value, length) { + if (s.bi_valid > Buf_size - length) { + s.bi_buf |= value << s.bi_valid & 65535; + put_short(s, s.bi_buf); + s.bi_buf = value >> Buf_size - s.bi_valid; + s.bi_valid += length - Buf_size; + } else { + s.bi_buf |= value << s.bi_valid & 65535; + s.bi_valid += length; + } + } + function send_code(s, c, tree) { + send_bits(s, tree[c * 2], tree[c * 2 + 1]); + } + function bi_reverse(code, len) { + var res = 0; + do { + res |= code & 1; + code >>>= 1; + res <<= 1; + } while (--len > 0); + return res >>> 1; + } + function bi_flush(s) { + if (s.bi_valid === 16) { + put_short(s, s.bi_buf); + s.bi_buf = 0; + s.bi_valid = 0; + } else if (s.bi_valid >= 8) { + s.pending_buf[s.pending++] = s.bi_buf & 255; + s.bi_buf >>= 8; + s.bi_valid -= 8; + } + } + function gen_bitlen(s, desc) { + var tree = desc.dyn_tree; + var max_code = desc.max_code; + var stree = desc.stat_desc.static_tree; + var has_stree = desc.stat_desc.has_stree; + var extra = desc.stat_desc.extra_bits; + var base = desc.stat_desc.extra_base; + var max_length = desc.stat_desc.max_length; + var h; + var n, m; + var bits; + var xbits; + var f; + var overflow = 0; + for (bits = 0; bits <= MAX_BITS; bits++) { + s.bl_count[bits] = 0; + } + tree[s.heap[s.heap_max] * 2 + 1] = 0; + for (h = s.heap_max + 1; h < HEAP_SIZE; h++) { + n = s.heap[h]; + bits = tree[tree[n * 2 + 1] * 2 + 1] + 1; + if (bits > max_length) { + bits = max_length; + overflow++; + } + tree[n * 2 + 1] = bits; + if (n > max_code) { + continue; + } + s.bl_count[bits]++; + xbits = 0; + if (n >= base) { + xbits = extra[n - base]; + } + f = tree[n * 2]; + s.opt_len += f * (bits + xbits); + if (has_stree) { + s.static_len += f * (stree[n * 2 + 1] + xbits); + } + } + if (overflow === 0) { + return; + } + do { + bits = max_length - 1; + while (s.bl_count[bits] === 0) { + bits--; + } + s.bl_count[bits]--; + s.bl_count[bits + 1] += 2; + s.bl_count[max_length]--; + overflow -= 2; + } while (overflow > 0); + for (bits = max_length; bits !== 0; bits--) { + n = s.bl_count[bits]; + while (n !== 0) { + m = s.heap[--h]; + if (m > max_code) { + continue; + } + if (tree[m * 2 + 1] !== bits) { + s.opt_len += (bits - tree[m * 2 + 1]) * tree[m * 2]; + tree[m * 2 + 1] = bits; + } + n--; + } + } + } + function gen_codes(tree, max_code, bl_count) { + var next_code = new Array(MAX_BITS + 1); + var code = 0; + var bits; + var n; + for (bits = 1; bits <= MAX_BITS; bits++) { + next_code[bits] = code = code + bl_count[bits - 1] << 1; + } + for (n = 0; n <= max_code; n++) { + var len = tree[n * 2 + 1]; + if (len === 0) { + continue; + } + tree[n * 2] = bi_reverse(next_code[len]++, len); + } + } + function tr_static_init() { + var n; + var bits; + var length; + var code; + var dist; + var bl_count = new Array(MAX_BITS + 1); + length = 0; + for (code = 0; code < LENGTH_CODES - 1; code++) { + base_length[code] = length; + for (n = 0; n < 1 << extra_lbits[code]; n++) { + _length_code[length++] = code; + } + } + _length_code[length - 1] = code; + dist = 0; + for (code = 0; code < 16; code++) { + base_dist[code] = dist; + for (n = 0; n < 1 << extra_dbits[code]; n++) { + _dist_code[dist++] = code; + } + } + dist >>= 7; + for (; code < D_CODES; code++) { + base_dist[code] = dist << 7; + for (n = 0; n < 1 << extra_dbits[code] - 7; n++) { + _dist_code[256 + dist++] = code; + } + } + for (bits = 0; bits <= MAX_BITS; bits++) { + bl_count[bits] = 0; + } + n = 0; + while (n <= 143) { + static_ltree[n * 2 + 1] = 8; + n++; + bl_count[8]++; + } + while (n <= 255) { + static_ltree[n * 2 + 1] = 9; + n++; + bl_count[9]++; + } + while (n <= 279) { + static_ltree[n * 2 + 1] = 7; + n++; + bl_count[7]++; + } + while (n <= 287) { + static_ltree[n * 2 + 1] = 8; + n++; + bl_count[8]++; + } + gen_codes(static_ltree, L_CODES + 1, bl_count); + for (n = 0; n < D_CODES; n++) { + static_dtree[n * 2 + 1] = 5; + static_dtree[n * 2] = bi_reverse(n, 5); + } + static_l_desc = new StaticTreeDesc(static_ltree, extra_lbits, LITERALS + 1, L_CODES, MAX_BITS); + static_d_desc = new StaticTreeDesc(static_dtree, extra_dbits, 0, D_CODES, MAX_BITS); + static_bl_desc = new StaticTreeDesc(new Array(0), extra_blbits, 0, BL_CODES, MAX_BL_BITS); + } + function init_block(s) { + var n; + for (n = 0; n < L_CODES; n++) { + s.dyn_ltree[n * 2] = 0; + } + for (n = 0; n < D_CODES; n++) { + s.dyn_dtree[n * 2] = 0; + } + for (n = 0; n < BL_CODES; n++) { + s.bl_tree[n * 2] = 0; + } + s.dyn_ltree[END_BLOCK * 2] = 1; + s.opt_len = s.static_len = 0; + s.last_lit = s.matches = 0; + } + function bi_windup(s) { + if (s.bi_valid > 8) { + put_short(s, s.bi_buf); + } else if (s.bi_valid > 0) { + s.pending_buf[s.pending++] = s.bi_buf; + } + s.bi_buf = 0; + s.bi_valid = 0; + } + function copy_block(s, buf, len, header) { + bi_windup(s); + if (header) { + put_short(s, len); + put_short(s, ~len); + } + utils.arraySet(s.pending_buf, s.window, buf, len, s.pending); + s.pending += len; + } + function smaller(tree, n, m, depth) { + var _n2 = n * 2; + var _m2 = m * 2; + return tree[_n2] < tree[_m2] || tree[_n2] === tree[_m2] && depth[n] <= depth[m]; + } + function pqdownheap(s, tree, k) { + var v = s.heap[k]; + var j = k << 1; + while (j <= s.heap_len) { + if (j < s.heap_len && smaller(tree, s.heap[j + 1], s.heap[j], s.depth)) { + j++; + } + if (smaller(tree, v, s.heap[j], s.depth)) { + break; + } + s.heap[k] = s.heap[j]; + k = j; + j <<= 1; + } + s.heap[k] = v; + } + function compress_block(s, ltree, dtree) { + var dist; + var lc; + var lx = 0; + var code; + var extra; + if (s.last_lit !== 0) { + do { + dist = s.pending_buf[s.d_buf + lx * 2] << 8 | s.pending_buf[s.d_buf + lx * 2 + 1]; + lc = s.pending_buf[s.l_buf + lx]; + lx++; + if (dist === 0) { + send_code(s, lc, ltree); + } else { + code = _length_code[lc]; + send_code(s, code + LITERALS + 1, ltree); + extra = extra_lbits[code]; + if (extra !== 0) { + lc -= base_length[code]; + send_bits(s, lc, extra); + } + dist--; + code = d_code(dist); + send_code(s, code, dtree); + extra = extra_dbits[code]; + if (extra !== 0) { + dist -= base_dist[code]; + send_bits(s, dist, extra); + } + } + } while (lx < s.last_lit); + } + send_code(s, END_BLOCK, ltree); + } + function build_tree(s, desc) { + var tree = desc.dyn_tree; + var stree = desc.stat_desc.static_tree; + var has_stree = desc.stat_desc.has_stree; + var elems = desc.stat_desc.elems; + var n, m; + var max_code = -1; + var node; + s.heap_len = 0; + s.heap_max = HEAP_SIZE; + for (n = 0; n < elems; n++) { + if (tree[n * 2] !== 0) { + s.heap[++s.heap_len] = max_code = n; + s.depth[n] = 0; + } else { + tree[n * 2 + 1] = 0; + } + } + while (s.heap_len < 2) { + node = s.heap[++s.heap_len] = max_code < 2 ? ++max_code : 0; + tree[node * 2] = 1; + s.depth[node] = 0; + s.opt_len--; + if (has_stree) { + s.static_len -= stree[node * 2 + 1]; + } + } + desc.max_code = max_code; + for (n = s.heap_len >> 1; n >= 1; n--) { + pqdownheap(s, tree, n); + } + node = elems; + do { + n = s.heap[1]; + s.heap[1] = s.heap[s.heap_len--]; + pqdownheap(s, tree, 1); + m = s.heap[1]; + s.heap[--s.heap_max] = n; + s.heap[--s.heap_max] = m; + tree[node * 2] = tree[n * 2] + tree[m * 2]; + s.depth[node] = (s.depth[n] >= s.depth[m] ? s.depth[n] : s.depth[m]) + 1; + tree[n * 2 + 1] = tree[m * 2 + 1] = node; + s.heap[1] = node++; + pqdownheap(s, tree, 1); + } while (s.heap_len >= 2); + s.heap[--s.heap_max] = s.heap[1]; + gen_bitlen(s, desc); + gen_codes(tree, max_code, s.bl_count); + } + function scan_tree(s, tree, max_code) { + var n; + var prevlen = -1; + var curlen; + var nextlen = tree[0 * 2 + 1]; + var count = 0; + var max_count = 7; + var min_count = 4; + if (nextlen === 0) { + max_count = 138; + min_count = 3; + } + tree[(max_code + 1) * 2 + 1] = 65535; + for (n = 0; n <= max_code; n++) { + curlen = nextlen; + nextlen = tree[(n + 1) * 2 + 1]; + if (++count < max_count && curlen === nextlen) { + continue; + } else if (count < min_count) { + s.bl_tree[curlen * 2] += count; + } else if (curlen !== 0) { + if (curlen !== prevlen) { + s.bl_tree[curlen * 2]++; + } + s.bl_tree[REP_3_6 * 2]++; + } else if (count <= 10) { + s.bl_tree[REPZ_3_10 * 2]++; + } else { + s.bl_tree[REPZ_11_138 * 2]++; + } + count = 0; + prevlen = curlen; + if (nextlen === 0) { + max_count = 138; + min_count = 3; + } else if (curlen === nextlen) { + max_count = 6; + min_count = 3; + } else { + max_count = 7; + min_count = 4; + } + } + } + function send_tree(s, tree, max_code) { + var n; + var prevlen = -1; + var curlen; + var nextlen = tree[0 * 2 + 1]; + var count = 0; + var max_count = 7; + var min_count = 4; + if (nextlen === 0) { + max_count = 138; + min_count = 3; + } + for (n = 0; n <= max_code; n++) { + curlen = nextlen; + nextlen = tree[(n + 1) * 2 + 1]; + if (++count < max_count && curlen === nextlen) { + continue; + } else if (count < min_count) { + do { + send_code(s, curlen, s.bl_tree); + } while (--count !== 0); + } else if (curlen !== 0) { + if (curlen !== prevlen) { + send_code(s, curlen, s.bl_tree); + count--; + } + send_code(s, REP_3_6, s.bl_tree); + send_bits(s, count - 3, 2); + } else if (count <= 10) { + send_code(s, REPZ_3_10, s.bl_tree); + send_bits(s, count - 3, 3); + } else { + send_code(s, REPZ_11_138, s.bl_tree); + send_bits(s, count - 11, 7); + } + count = 0; + prevlen = curlen; + if (nextlen === 0) { + max_count = 138; + min_count = 3; + } else if (curlen === nextlen) { + max_count = 6; + min_count = 3; + } else { + max_count = 7; + min_count = 4; + } + } + } + function build_bl_tree(s) { + var max_blindex; + scan_tree(s, s.dyn_ltree, s.l_desc.max_code); + scan_tree(s, s.dyn_dtree, s.d_desc.max_code); + build_tree(s, s.bl_desc); + for (max_blindex = BL_CODES - 1; max_blindex >= 3; max_blindex--) { + if (s.bl_tree[bl_order[max_blindex] * 2 + 1] !== 0) { + break; + } + } + s.opt_len += 3 * (max_blindex + 1) + 5 + 5 + 4; + return max_blindex; + } + function send_all_trees(s, lcodes, dcodes, blcodes) { + var rank; + send_bits(s, lcodes - 257, 5); + send_bits(s, dcodes - 1, 5); + send_bits(s, blcodes - 4, 4); + for (rank = 0; rank < blcodes; rank++) { + send_bits(s, s.bl_tree[bl_order[rank] * 2 + 1], 3); + } + send_tree(s, s.dyn_ltree, lcodes - 1); + send_tree(s, s.dyn_dtree, dcodes - 1); + } + function detect_data_type(s) { + var black_mask = 4093624447; + var n; + for (n = 0; n <= 31; n++, black_mask >>>= 1) { + if (black_mask & 1 && s.dyn_ltree[n * 2] !== 0) { + return Z_BINARY; + } + } + if (s.dyn_ltree[9 * 2] !== 0 || s.dyn_ltree[10 * 2] !== 0 || s.dyn_ltree[13 * 2] !== 0) { + return Z_TEXT; + } + for (n = 32; n < LITERALS; n++) { + if (s.dyn_ltree[n * 2] !== 0) { + return Z_TEXT; + } + } + return Z_BINARY; + } + var static_init_done = false; + function _tr_init(s) { + if (!static_init_done) { + tr_static_init(); + static_init_done = true; + } + s.l_desc = new TreeDesc(s.dyn_ltree, static_l_desc); + s.d_desc = new TreeDesc(s.dyn_dtree, static_d_desc); + s.bl_desc = new TreeDesc(s.bl_tree, static_bl_desc); + s.bi_buf = 0; + s.bi_valid = 0; + init_block(s); + } + function _tr_stored_block(s, buf, stored_len, last) { + send_bits(s, (STORED_BLOCK << 1) + (last ? 1 : 0), 3); + copy_block(s, buf, stored_len, true); + } + function _tr_align(s) { + send_bits(s, STATIC_TREES << 1, 3); + send_code(s, END_BLOCK, static_ltree); + bi_flush(s); + } + function _tr_flush_block(s, buf, stored_len, last) { + var opt_lenb, static_lenb; + var max_blindex = 0; + if (s.level > 0) { + if (s.strm.data_type === Z_UNKNOWN) { + s.strm.data_type = detect_data_type(s); + } + build_tree(s, s.l_desc); + build_tree(s, s.d_desc); + max_blindex = build_bl_tree(s); + opt_lenb = s.opt_len + 3 + 7 >>> 3; + static_lenb = s.static_len + 3 + 7 >>> 3; + if (static_lenb <= opt_lenb) { + opt_lenb = static_lenb; + } + } else { + opt_lenb = static_lenb = stored_len + 5; + } + if (stored_len + 4 <= opt_lenb && buf !== -1) { + _tr_stored_block(s, buf, stored_len, last); + } else if (s.strategy === Z_FIXED || static_lenb === opt_lenb) { + send_bits(s, (STATIC_TREES << 1) + (last ? 1 : 0), 3); + compress_block(s, static_ltree, static_dtree); + } else { + send_bits(s, (DYN_TREES << 1) + (last ? 1 : 0), 3); + send_all_trees(s, s.l_desc.max_code + 1, s.d_desc.max_code + 1, max_blindex + 1); + compress_block(s, s.dyn_ltree, s.dyn_dtree); + } + init_block(s); + if (last) { + bi_windup(s); + } + } + function _tr_tally(s, dist, lc) { + s.pending_buf[s.d_buf + s.last_lit * 2] = dist >>> 8 & 255; + s.pending_buf[s.d_buf + s.last_lit * 2 + 1] = dist & 255; + s.pending_buf[s.l_buf + s.last_lit] = lc & 255; + s.last_lit++; + if (dist === 0) { + s.dyn_ltree[lc * 2]++; + } else { + s.matches++; + dist--; + s.dyn_ltree[(_length_code[lc] + LITERALS + 1) * 2]++; + s.dyn_dtree[d_code(dist) * 2]++; + } + return s.last_lit === s.lit_bufsize - 1; + } + exports3._tr_init = _tr_init; + exports3._tr_stored_block = _tr_stored_block; + exports3._tr_flush_block = _tr_flush_block; + exports3._tr_tally = _tr_tally; + exports3._tr_align = _tr_align; + }, { "../utils/common": 5 }], 12: [function(require2, module4, exports3) { + "use strict"; + function ZStream() { + 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; + } + module4.exports = ZStream; + }, {}] }, {}, [3])(3); + }); + } +}); + +// node_modules/plantuml-encoder/dist/plantuml-decoder.js +var require_plantuml_decoder = __commonJS({ + "node_modules/plantuml-encoder/dist/plantuml-decoder.js"(exports, module2) { + (function(f) { + if (typeof exports === "object" && typeof module2 !== "undefined") { + module2.exports = f(); + } else if (typeof define === "function" && define.amd) { + define([], f); + } else { + var g; + if (typeof window !== "undefined") { + g = window; + } else if (typeof global !== "undefined") { + g = global; + } else if (typeof self !== "undefined") { + g = self; + } else { + g = this; + } + g.plantumlEncoder = f(); + } + })(function() { + var define2, module3, exports2; + return function() { + function r(e, n, t) { + function o(i2, f) { + if (!n[i2]) { + if (!e[i2]) { + var c = typeof require == "function" && require; + if (!f && c) + return c(i2, true); + if (u) + return u(i2, true); + var a = new Error("Cannot find module '" + i2 + "'"); + throw a.code = "MODULE_NOT_FOUND", a; + } + var p = n[i2] = { exports: {} }; + e[i2][0].call(p.exports, function(r2) { + var n2 = e[i2][1][r2]; + return o(n2 || r2); + }, p, p.exports, r, e, n, t); + } + return n[i2].exports; + } + for (var u = typeof require == "function" && require, i = 0; i < t.length; i++) + o(t[i]); + return o; + } + return r; + }()({ 1: [function(require2, module4, exports3) { + "use strict"; + var pako = require2("pako/lib/inflate.js"); + module4.exports = function(data) { + return pako.inflateRaw(data, { to: "string" }); + }; + }, { "pako/lib/inflate.js": 4 }], 2: [function(require2, module4, exports3) { + "use strict"; + function decode6bit(cc) { + var c = cc.charCodeAt(0); + if (cc === "_") + return 63; + if (cc === "-") + return 62; + if (c >= 97) + return c - 61; + if (c >= 65) + return c - 55; + if (c >= 48) + return c - 48; + return "?"; + } + function extract3bytes(data) { + var c1 = decode6bit(data[0]); + var c2 = decode6bit(data[1]); + var c3 = decode6bit(data[2]); + var c4 = decode6bit(data[3]); + var b1 = c1 << 2 | c2 >> 4 & 63; + var b2 = c2 << 4 & 240 | c3 >> 2 & 15; + var b3 = c3 << 6 & 192 | c4 & 63; + return [b1, b2, b3]; + } + module4.exports = function(data) { + var r = ""; + var i = 0; + for (i = 0; i < data.length; i += 4) { + var t = extract3bytes(data.substring(i, i + 4)); + r = r + String.fromCharCode(t[0]); + r = r + String.fromCharCode(t[1]); + r = r + String.fromCharCode(t[2]); + } + return r; + }; + }, {}], 3: [function(require2, module4, exports3) { + "use strict"; + var inflate = require2("./inflate"); + var decode64 = require2("./decode64"); + module4.exports.decode = function(encoded) { + var deflated = decode64(encoded); + return inflate(deflated); + }; + }, { "./decode64": 2, "./inflate": 1 }], 4: [function(require2, module4, exports3) { + "use strict"; + var zlib_inflate = require2("./zlib/inflate"); + var utils = require2("./utils/common"); + var strings = require2("./utils/strings"); + var c = require2("./zlib/constants"); + var msg = require2("./zlib/messages"); + var ZStream = require2("./zlib/zstream"); + var GZheader = require2("./zlib/gzheader"); + var toString = Object.prototype.toString; + function Inflate(options) { + if (!(this instanceof Inflate)) + return new Inflate(options); + this.options = utils.assign({ + chunkSize: 16384, + windowBits: 0, + to: "" + }, options || {}); + var opt = this.options; + if (opt.raw && opt.windowBits >= 0 && opt.windowBits < 16) { + opt.windowBits = -opt.windowBits; + if (opt.windowBits === 0) { + opt.windowBits = -15; + } + } + if (opt.windowBits >= 0 && opt.windowBits < 16 && !(options && options.windowBits)) { + opt.windowBits += 32; + } + if (opt.windowBits > 15 && opt.windowBits < 48) { + if ((opt.windowBits & 15) === 0) { + opt.windowBits |= 15; + } + } + this.err = 0; + this.msg = ""; + this.ended = false; + this.chunks = []; + this.strm = new ZStream(); + this.strm.avail_out = 0; + var status = zlib_inflate.inflateInit2(this.strm, opt.windowBits); + if (status !== c.Z_OK) { + throw new Error(msg[status]); + } + this.header = new GZheader(); + zlib_inflate.inflateGetHeader(this.strm, this.header); + if (opt.dictionary) { + if (typeof opt.dictionary === "string") { + opt.dictionary = strings.string2buf(opt.dictionary); + } else if (toString.call(opt.dictionary) === "[object ArrayBuffer]") { + opt.dictionary = new Uint8Array(opt.dictionary); + } + if (opt.raw) { + status = zlib_inflate.inflateSetDictionary(this.strm, opt.dictionary); + if (status !== c.Z_OK) { + throw new Error(msg[status]); + } + } + } + } + Inflate.prototype.push = function(data, mode) { + var strm = this.strm; + var chunkSize = this.options.chunkSize; + var dictionary = this.options.dictionary; + var status, _mode; + var next_out_utf8, tail, utf8str; + var allowBufError = false; + if (this.ended) { + return false; + } + _mode = mode === ~~mode ? mode : mode === true ? c.Z_FINISH : c.Z_NO_FLUSH; + if (typeof data === "string") { + strm.input = strings.binstring2buf(data); + } else if (toString.call(data) === "[object ArrayBuffer]") { + strm.input = new Uint8Array(data); + } else { + strm.input = data; + } + strm.next_in = 0; + strm.avail_in = strm.input.length; + do { + if (strm.avail_out === 0) { + strm.output = new utils.Buf8(chunkSize); + strm.next_out = 0; + strm.avail_out = chunkSize; + } + status = zlib_inflate.inflate(strm, c.Z_NO_FLUSH); + if (status === c.Z_NEED_DICT && dictionary) { + status = zlib_inflate.inflateSetDictionary(this.strm, dictionary); + } + if (status === c.Z_BUF_ERROR && allowBufError === true) { + status = c.Z_OK; + allowBufError = false; + } + if (status !== c.Z_STREAM_END && status !== c.Z_OK) { + this.onEnd(status); + this.ended = true; + return false; + } + if (strm.next_out) { + if (strm.avail_out === 0 || status === c.Z_STREAM_END || strm.avail_in === 0 && (_mode === c.Z_FINISH || _mode === c.Z_SYNC_FLUSH)) { + if (this.options.to === "string") { + next_out_utf8 = strings.utf8border(strm.output, strm.next_out); + tail = strm.next_out - next_out_utf8; + utf8str = strings.buf2string(strm.output, next_out_utf8); + strm.next_out = tail; + strm.avail_out = chunkSize - tail; + if (tail) { + utils.arraySet(strm.output, strm.output, next_out_utf8, tail, 0); + } + this.onData(utf8str); + } else { + this.onData(utils.shrinkBuf(strm.output, strm.next_out)); + } + } + } + if (strm.avail_in === 0 && strm.avail_out === 0) { + allowBufError = true; + } + } while ((strm.avail_in > 0 || strm.avail_out === 0) && status !== c.Z_STREAM_END); + if (status === c.Z_STREAM_END) { + _mode = c.Z_FINISH; + } + if (_mode === c.Z_FINISH) { + status = zlib_inflate.inflateEnd(this.strm); + this.onEnd(status); + this.ended = true; + return status === c.Z_OK; + } + if (_mode === c.Z_SYNC_FLUSH) { + this.onEnd(c.Z_OK); + strm.avail_out = 0; + return true; + } + return true; + }; + Inflate.prototype.onData = function(chunk) { + this.chunks.push(chunk); + }; + Inflate.prototype.onEnd = function(status) { + if (status === c.Z_OK) { + if (this.options.to === "string") { + this.result = this.chunks.join(""); + } else { + this.result = utils.flattenChunks(this.chunks); + } + } + this.chunks = []; + this.err = status; + this.msg = this.strm.msg; + }; + function inflate(input, options) { + var inflator = new Inflate(options); + inflator.push(input, true); + if (inflator.err) { + throw inflator.msg || msg[inflator.err]; + } + return inflator.result; + } + function inflateRaw(input, options) { + options = options || {}; + options.raw = true; + return inflate(input, options); + } + exports3.Inflate = Inflate; + exports3.inflate = inflate; + exports3.inflateRaw = inflateRaw; + exports3.ungzip = inflate; + }, { "./utils/common": 5, "./utils/strings": 6, "./zlib/constants": 8, "./zlib/gzheader": 10, "./zlib/inflate": 12, "./zlib/messages": 14, "./zlib/zstream": 15 }], 5: [function(require2, module4, exports3) { + "use strict"; + var TYPED_OK = typeof Uint8Array !== "undefined" && typeof Uint16Array !== "undefined" && typeof Int32Array !== "undefined"; + function _has(obj, key) { + return Object.prototype.hasOwnProperty.call(obj, key); + } + exports3.assign = function(obj) { + var sources = Array.prototype.slice.call(arguments, 1); + while (sources.length) { + var source = sources.shift(); + if (!source) { + continue; + } + if (typeof source !== "object") { + throw new TypeError(source + "must be non-object"); + } + for (var p in source) { + if (_has(source, p)) { + obj[p] = source[p]; + } + } + } + return obj; + }; + exports3.shrinkBuf = function(buf, size) { + if (buf.length === size) { + return buf; + } + if (buf.subarray) { + return buf.subarray(0, size); + } + buf.length = size; + return buf; + }; + var fnTyped = { + arraySet: function(dest, src, src_offs, len, dest_offs) { + if (src.subarray && dest.subarray) { + dest.set(src.subarray(src_offs, src_offs + len), dest_offs); + return; + } + for (var i = 0; i < len; i++) { + dest[dest_offs + i] = src[src_offs + i]; + } + }, + flattenChunks: function(chunks) { + var i, l, len, pos, chunk, result; + len = 0; + for (i = 0, l = chunks.length; i < l; i++) { + len += chunks[i].length; + } + result = new Uint8Array(len); + pos = 0; + for (i = 0, l = chunks.length; i < l; i++) { + chunk = chunks[i]; + result.set(chunk, pos); + pos += chunk.length; + } + return result; + } + }; + var fnUntyped = { + arraySet: function(dest, src, src_offs, len, dest_offs) { + for (var i = 0; i < len; i++) { + dest[dest_offs + i] = src[src_offs + i]; + } + }, + flattenChunks: function(chunks) { + return [].concat.apply([], chunks); + } + }; + exports3.setTyped = function(on) { + if (on) { + exports3.Buf8 = Uint8Array; + exports3.Buf16 = Uint16Array; + exports3.Buf32 = Int32Array; + exports3.assign(exports3, fnTyped); + } else { + exports3.Buf8 = Array; + exports3.Buf16 = Array; + exports3.Buf32 = Array; + exports3.assign(exports3, fnUntyped); + } + }; + exports3.setTyped(TYPED_OK); + }, {}], 6: [function(require2, module4, exports3) { + "use strict"; + var utils = require2("./common"); + var STR_APPLY_OK = true; + var STR_APPLY_UIA_OK = true; + try { + String.fromCharCode.apply(null, [0]); + } catch (__) { + STR_APPLY_OK = false; + } + try { + String.fromCharCode.apply(null, new Uint8Array(1)); + } catch (__) { + STR_APPLY_UIA_OK = false; + } + var _utf8len = new utils.Buf8(256); + for (var q = 0; q < 256; q++) { + _utf8len[q] = q >= 252 ? 6 : q >= 248 ? 5 : q >= 240 ? 4 : q >= 224 ? 3 : q >= 192 ? 2 : 1; + } + _utf8len[254] = _utf8len[254] = 1; + exports3.string2buf = function(str) { + var buf, c, c2, m_pos, i, str_len = str.length, buf_len = 0; + for (m_pos = 0; m_pos < str_len; m_pos++) { + c = str.charCodeAt(m_pos); + if ((c & 64512) === 55296 && m_pos + 1 < str_len) { + c2 = str.charCodeAt(m_pos + 1); + if ((c2 & 64512) === 56320) { + c = 65536 + (c - 55296 << 10) + (c2 - 56320); + m_pos++; + } + } + buf_len += c < 128 ? 1 : c < 2048 ? 2 : c < 65536 ? 3 : 4; + } + buf = new utils.Buf8(buf_len); + for (i = 0, m_pos = 0; i < buf_len; m_pos++) { + c = str.charCodeAt(m_pos); + if ((c & 64512) === 55296 && m_pos + 1 < str_len) { + c2 = str.charCodeAt(m_pos + 1); + if ((c2 & 64512) === 56320) { + c = 65536 + (c - 55296 << 10) + (c2 - 56320); + m_pos++; + } + } + if (c < 128) { + buf[i++] = c; + } else if (c < 2048) { + buf[i++] = 192 | c >>> 6; + buf[i++] = 128 | c & 63; + } else if (c < 65536) { + buf[i++] = 224 | c >>> 12; + buf[i++] = 128 | c >>> 6 & 63; + buf[i++] = 128 | c & 63; + } else { + buf[i++] = 240 | c >>> 18; + buf[i++] = 128 | c >>> 12 & 63; + buf[i++] = 128 | c >>> 6 & 63; + buf[i++] = 128 | c & 63; + } + } + return buf; + }; + function buf2binstring(buf, len) { + if (len < 65534) { + if (buf.subarray && STR_APPLY_UIA_OK || !buf.subarray && STR_APPLY_OK) { + return String.fromCharCode.apply(null, utils.shrinkBuf(buf, len)); + } + } + var result = ""; + for (var i = 0; i < len; i++) { + result += String.fromCharCode(buf[i]); + } + return result; + } + exports3.buf2binstring = function(buf) { + return buf2binstring(buf, buf.length); + }; + exports3.binstring2buf = function(str) { + var buf = new utils.Buf8(str.length); + for (var i = 0, len = buf.length; i < len; i++) { + buf[i] = str.charCodeAt(i); + } + return buf; + }; + exports3.buf2string = function(buf, max) { + var i, out, c, c_len; + var len = max || buf.length; + var utf16buf = new Array(len * 2); + for (out = 0, i = 0; i < len; ) { + c = buf[i++]; + if (c < 128) { + utf16buf[out++] = c; + continue; + } + c_len = _utf8len[c]; + if (c_len > 4) { + utf16buf[out++] = 65533; + i += c_len - 1; + continue; + } + c &= c_len === 2 ? 31 : c_len === 3 ? 15 : 7; + while (c_len > 1 && i < len) { + c = c << 6 | buf[i++] & 63; + c_len--; + } + if (c_len > 1) { + utf16buf[out++] = 65533; + continue; + } + if (c < 65536) { + utf16buf[out++] = c; + } else { + c -= 65536; + utf16buf[out++] = 55296 | c >> 10 & 1023; + utf16buf[out++] = 56320 | c & 1023; + } + } + return buf2binstring(utf16buf, out); + }; + exports3.utf8border = function(buf, max) { + var pos; + max = max || buf.length; + if (max > buf.length) { + max = buf.length; + } + pos = max - 1; + while (pos >= 0 && (buf[pos] & 192) === 128) { + pos--; + } + if (pos < 0) { + return max; + } + if (pos === 0) { + return max; + } + return pos + _utf8len[buf[pos]] > max ? pos : max; + }; + }, { "./common": 5 }], 7: [function(require2, module4, exports3) { + "use strict"; + function adler32(adler, buf, len, pos) { + var s1 = adler & 65535 | 0, s2 = adler >>> 16 & 65535 | 0, n = 0; + while (len !== 0) { + n = len > 2e3 ? 2e3 : len; + len -= n; + do { + s1 = s1 + buf[pos++] | 0; + s2 = s2 + s1 | 0; + } while (--n); + s1 %= 65521; + s2 %= 65521; + } + return s1 | s2 << 16 | 0; + } + module4.exports = adler32; + }, {}], 8: [function(require2, module4, exports3) { + "use strict"; + module4.exports = { + Z_NO_FLUSH: 0, + Z_PARTIAL_FLUSH: 1, + Z_SYNC_FLUSH: 2, + Z_FULL_FLUSH: 3, + Z_FINISH: 4, + Z_BLOCK: 5, + Z_TREES: 6, + Z_OK: 0, + Z_STREAM_END: 1, + Z_NEED_DICT: 2, + Z_ERRNO: -1, + Z_STREAM_ERROR: -2, + Z_DATA_ERROR: -3, + Z_BUF_ERROR: -5, + Z_NO_COMPRESSION: 0, + Z_BEST_SPEED: 1, + Z_BEST_COMPRESSION: 9, + Z_DEFAULT_COMPRESSION: -1, + Z_FILTERED: 1, + Z_HUFFMAN_ONLY: 2, + Z_RLE: 3, + Z_FIXED: 4, + Z_DEFAULT_STRATEGY: 0, + Z_BINARY: 0, + Z_TEXT: 1, + Z_UNKNOWN: 2, + Z_DEFLATED: 8 + }; + }, {}], 9: [function(require2, module4, exports3) { + "use strict"; + function makeTable() { + var c, table = []; + for (var n = 0; n < 256; n++) { + c = n; + for (var k = 0; k < 8; k++) { + c = c & 1 ? 3988292384 ^ c >>> 1 : c >>> 1; + } + table[n] = c; + } + return table; + } + var crcTable = makeTable(); + function crc32(crc, buf, len, pos) { + var t = crcTable, end = pos + len; + crc ^= -1; + for (var i = pos; i < end; i++) { + crc = crc >>> 8 ^ t[(crc ^ buf[i]) & 255]; + } + return crc ^ -1; + } + module4.exports = crc32; + }, {}], 10: [function(require2, module4, exports3) { + "use strict"; + function GZheader() { + this.text = 0; + this.time = 0; + this.xflags = 0; + this.os = 0; + this.extra = null; + this.extra_len = 0; + this.name = ""; + this.comment = ""; + this.hcrc = 0; + this.done = false; + } + module4.exports = GZheader; + }, {}], 11: [function(require2, module4, exports3) { + "use strict"; + var BAD = 30; + var TYPE = 12; + module4.exports = function inflate_fast(strm, start) { + var state; + var _in; + var last; + var _out; + var beg; + var end; + var dmax; + var wsize; + var whave; + var wnext; + var s_window; + var hold; + var bits; + var lcode; + var dcode; + var lmask; + var dmask; + var here; + var op; + var len; + var dist; + var from; + var from_source; + var input, output; + state = strm.state; + _in = strm.next_in; + input = strm.input; + last = _in + (strm.avail_in - 5); + _out = strm.next_out; + output = strm.output; + beg = _out - (start - strm.avail_out); + end = _out + (strm.avail_out - 257); + dmax = state.dmax; + wsize = state.wsize; + whave = state.whave; + wnext = state.wnext; + s_window = state.window; + hold = state.hold; + bits = state.bits; + lcode = state.lencode; + dcode = state.distcode; + lmask = (1 << state.lenbits) - 1; + dmask = (1 << state.distbits) - 1; + top: + do { + if (bits < 15) { + hold += input[_in++] << bits; + bits += 8; + hold += input[_in++] << bits; + bits += 8; + } + here = lcode[hold & lmask]; + dolen: + for (; ; ) { + op = here >>> 24; + hold >>>= op; + bits -= op; + op = here >>> 16 & 255; + if (op === 0) { + output[_out++] = here & 65535; + } else if (op & 16) { + len = here & 65535; + op &= 15; + if (op) { + if (bits < op) { + hold += input[_in++] << bits; + bits += 8; + } + len += hold & (1 << op) - 1; + hold >>>= op; + bits -= op; + } + if (bits < 15) { + hold += input[_in++] << bits; + bits += 8; + hold += input[_in++] << bits; + bits += 8; + } + here = dcode[hold & dmask]; + dodist: + for (; ; ) { + op = here >>> 24; + hold >>>= op; + bits -= op; + op = here >>> 16 & 255; + if (op & 16) { + dist = here & 65535; + op &= 15; + if (bits < op) { + hold += input[_in++] << bits; + bits += 8; + if (bits < op) { + hold += input[_in++] << bits; + bits += 8; + } + } + dist += hold & (1 << op) - 1; + if (dist > dmax) { + strm.msg = "invalid distance too far back"; + state.mode = BAD; + break top; + } + hold >>>= op; + bits -= op; + op = _out - beg; + if (dist > op) { + op = dist - op; + if (op > whave) { + if (state.sane) { + strm.msg = "invalid distance too far back"; + state.mode = BAD; + break top; + } + } + from = 0; + from_source = s_window; + if (wnext === 0) { + from += wsize - op; + if (op < len) { + len -= op; + do { + output[_out++] = s_window[from++]; + } while (--op); + from = _out - dist; + from_source = output; + } + } else if (wnext < op) { + from += wsize + wnext - op; + op -= wnext; + if (op < len) { + len -= op; + do { + output[_out++] = s_window[from++]; + } while (--op); + from = 0; + if (wnext < len) { + op = wnext; + len -= op; + do { + output[_out++] = s_window[from++]; + } while (--op); + from = _out - dist; + from_source = output; + } + } + } else { + from += wnext - op; + if (op < len) { + len -= op; + do { + output[_out++] = s_window[from++]; + } while (--op); + from = _out - dist; + from_source = output; + } + } + while (len > 2) { + output[_out++] = from_source[from++]; + output[_out++] = from_source[from++]; + output[_out++] = from_source[from++]; + len -= 3; + } + if (len) { + output[_out++] = from_source[from++]; + if (len > 1) { + output[_out++] = from_source[from++]; + } + } + } else { + from = _out - dist; + do { + output[_out++] = output[from++]; + output[_out++] = output[from++]; + output[_out++] = output[from++]; + len -= 3; + } while (len > 2); + if (len) { + output[_out++] = output[from++]; + if (len > 1) { + output[_out++] = output[from++]; + } + } + } + } else if ((op & 64) === 0) { + here = dcode[(here & 65535) + (hold & (1 << op) - 1)]; + continue dodist; + } else { + strm.msg = "invalid distance code"; + state.mode = BAD; + break top; + } + break; + } + } else if ((op & 64) === 0) { + here = lcode[(here & 65535) + (hold & (1 << op) - 1)]; + continue dolen; + } else if (op & 32) { + state.mode = TYPE; + break top; + } else { + strm.msg = "invalid literal/length code"; + state.mode = BAD; + break top; + } + break; + } + } while (_in < last && _out < end); + len = bits >> 3; + _in -= len; + bits -= len << 3; + hold &= (1 << bits) - 1; + strm.next_in = _in; + strm.next_out = _out; + strm.avail_in = _in < last ? 5 + (last - _in) : 5 - (_in - last); + strm.avail_out = _out < end ? 257 + (end - _out) : 257 - (_out - end); + state.hold = hold; + state.bits = bits; + return; + }; + }, {}], 12: [function(require2, module4, exports3) { + "use strict"; + var utils = require2("../utils/common"); + var adler32 = require2("./adler32"); + var crc32 = require2("./crc32"); + var inflate_fast = require2("./inffast"); + var inflate_table = require2("./inftrees"); + var CODES = 0; + var LENS = 1; + var DISTS = 2; + var Z_FINISH = 4; + var Z_BLOCK = 5; + var Z_TREES = 6; + var Z_OK = 0; + var Z_STREAM_END = 1; + var Z_NEED_DICT = 2; + var Z_STREAM_ERROR = -2; + var Z_DATA_ERROR = -3; + var Z_MEM_ERROR = -4; + var Z_BUF_ERROR = -5; + var Z_DEFLATED = 8; + var HEAD = 1; + var FLAGS = 2; + var TIME = 3; + var OS = 4; + var EXLEN = 5; + var EXTRA = 6; + var NAME = 7; + var COMMENT = 8; + var HCRC = 9; + var DICTID = 10; + var DICT = 11; + var TYPE = 12; + var TYPEDO = 13; + var STORED = 14; + var COPY_ = 15; + var COPY = 16; + var TABLE = 17; + var LENLENS = 18; + var CODELENS = 19; + var LEN_ = 20; + var LEN = 21; + var LENEXT = 22; + var DIST = 23; + var DISTEXT = 24; + var MATCH = 25; + var LIT = 26; + var CHECK = 27; + var LENGTH = 28; + var DONE = 29; + var BAD = 30; + var MEM = 31; + var SYNC = 32; + var ENOUGH_LENS = 852; + var ENOUGH_DISTS = 592; + var MAX_WBITS = 15; + var DEF_WBITS = MAX_WBITS; + function zswap32(q) { + return (q >>> 24 & 255) + (q >>> 8 & 65280) + ((q & 65280) << 8) + ((q & 255) << 24); + } + function InflateState() { + this.mode = 0; + this.last = false; + this.wrap = 0; + this.havedict = false; + 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 utils.Buf16(320); + this.work = new utils.Buf16(288); + this.lendyn = null; + this.distdyn = null; + this.sane = 0; + this.back = 0; + this.was = 0; + } + function inflateResetKeep(strm) { + var state; + if (!strm || !strm.state) { + return Z_STREAM_ERROR; + } + state = strm.state; + strm.total_in = strm.total_out = state.total = 0; + strm.msg = ""; + if (state.wrap) { + strm.adler = state.wrap & 1; + } + state.mode = HEAD; + state.last = 0; + state.havedict = 0; + state.dmax = 32768; + state.head = null; + state.hold = 0; + state.bits = 0; + state.lencode = state.lendyn = new utils.Buf32(ENOUGH_LENS); + state.distcode = state.distdyn = new utils.Buf32(ENOUGH_DISTS); + state.sane = 1; + state.back = -1; + return Z_OK; + } + function inflateReset(strm) { + var state; + if (!strm || !strm.state) { + return Z_STREAM_ERROR; + } + state = strm.state; + state.wsize = 0; + state.whave = 0; + state.wnext = 0; + return inflateResetKeep(strm); + } + function inflateReset2(strm, windowBits) { + var wrap; + var state; + if (!strm || !strm.state) { + return Z_STREAM_ERROR; + } + state = strm.state; + if (windowBits < 0) { + wrap = 0; + windowBits = -windowBits; + } else { + wrap = (windowBits >> 4) + 1; + if (windowBits < 48) { + windowBits &= 15; + } + } + if (windowBits && (windowBits < 8 || windowBits > 15)) { + return Z_STREAM_ERROR; + } + if (state.window !== null && state.wbits !== windowBits) { + state.window = null; + } + state.wrap = wrap; + state.wbits = windowBits; + return inflateReset(strm); + } + function inflateInit2(strm, windowBits) { + var ret; + var state; + if (!strm) { + return Z_STREAM_ERROR; + } + state = new InflateState(); + strm.state = state; + state.window = null; + ret = inflateReset2(strm, windowBits); + if (ret !== Z_OK) { + strm.state = null; + } + return ret; + } + function inflateInit(strm) { + return inflateInit2(strm, DEF_WBITS); + } + var virgin = true; + var lenfix, distfix; + function fixedtables(state) { + if (virgin) { + var sym; + lenfix = new utils.Buf32(512); + distfix = new utils.Buf32(32); + sym = 0; + while (sym < 144) { + state.lens[sym++] = 8; + } + while (sym < 256) { + state.lens[sym++] = 9; + } + while (sym < 280) { + state.lens[sym++] = 7; + } + while (sym < 288) { + state.lens[sym++] = 8; + } + inflate_table(LENS, state.lens, 0, 288, lenfix, 0, state.work, { bits: 9 }); + sym = 0; + while (sym < 32) { + state.lens[sym++] = 5; + } + inflate_table(DISTS, state.lens, 0, 32, distfix, 0, state.work, { bits: 5 }); + virgin = false; + } + state.lencode = lenfix; + state.lenbits = 9; + state.distcode = distfix; + state.distbits = 5; + } + function updatewindow(strm, src, end, copy) { + var dist; + var state = strm.state; + if (state.window === null) { + state.wsize = 1 << state.wbits; + state.wnext = 0; + state.whave = 0; + state.window = new utils.Buf8(state.wsize); + } + if (copy >= state.wsize) { + utils.arraySet(state.window, src, end - state.wsize, state.wsize, 0); + state.wnext = 0; + state.whave = state.wsize; + } else { + dist = state.wsize - state.wnext; + if (dist > copy) { + dist = copy; + } + utils.arraySet(state.window, src, end - copy, dist, state.wnext); + copy -= dist; + if (copy) { + utils.arraySet(state.window, src, end - copy, copy, 0); + state.wnext = copy; + state.whave = state.wsize; + } else { + state.wnext += dist; + if (state.wnext === state.wsize) { + state.wnext = 0; + } + if (state.whave < state.wsize) { + state.whave += dist; + } + } + } + return 0; + } + function inflate(strm, flush) { + var state; + var input, output; + var next; + var put; + var have, left; + var hold; + var bits; + var _in, _out; + var copy; + var from; + var from_source; + var here = 0; + var here_bits, here_op, here_val; + var last_bits, last_op, last_val; + var len; + var ret; + var hbuf = new utils.Buf8(4); + var opts; + var n; + var order = [16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]; + if (!strm || !strm.state || !strm.output || !strm.input && strm.avail_in !== 0) { + return Z_STREAM_ERROR; + } + state = strm.state; + if (state.mode === TYPE) { + state.mode = TYPEDO; + } + put = strm.next_out; + output = strm.output; + left = strm.avail_out; + next = strm.next_in; + input = strm.input; + have = strm.avail_in; + hold = state.hold; + bits = state.bits; + _in = have; + _out = left; + ret = Z_OK; + inf_leave: + for (; ; ) { + switch (state.mode) { + case HEAD: + if (state.wrap === 0) { + state.mode = TYPEDO; + break; + } + while (bits < 16) { + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + if (state.wrap & 2 && hold === 35615) { + state.check = 0; + hbuf[0] = hold & 255; + hbuf[1] = hold >>> 8 & 255; + state.check = crc32(state.check, hbuf, 2, 0); + hold = 0; + bits = 0; + state.mode = FLAGS; + break; + } + state.flags = 0; + if (state.head) { + state.head.done = false; + } + if (!(state.wrap & 1) || (((hold & 255) << 8) + (hold >> 8)) % 31) { + strm.msg = "incorrect header check"; + state.mode = BAD; + break; + } + if ((hold & 15) !== Z_DEFLATED) { + strm.msg = "unknown compression method"; + state.mode = BAD; + break; + } + hold >>>= 4; + bits -= 4; + len = (hold & 15) + 8; + if (state.wbits === 0) { + state.wbits = len; + } else if (len > state.wbits) { + strm.msg = "invalid window size"; + state.mode = BAD; + break; + } + state.dmax = 1 << len; + strm.adler = state.check = 1; + state.mode = hold & 512 ? DICTID : TYPE; + hold = 0; + bits = 0; + break; + case FLAGS: + while (bits < 16) { + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + state.flags = hold; + if ((state.flags & 255) !== Z_DEFLATED) { + strm.msg = "unknown compression method"; + state.mode = BAD; + break; + } + if (state.flags & 57344) { + strm.msg = "unknown header flags set"; + state.mode = BAD; + break; + } + if (state.head) { + state.head.text = hold >> 8 & 1; + } + if (state.flags & 512) { + hbuf[0] = hold & 255; + hbuf[1] = hold >>> 8 & 255; + state.check = crc32(state.check, hbuf, 2, 0); + } + hold = 0; + bits = 0; + state.mode = TIME; + case TIME: + while (bits < 32) { + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + if (state.head) { + state.head.time = hold; + } + if (state.flags & 512) { + hbuf[0] = hold & 255; + hbuf[1] = hold >>> 8 & 255; + hbuf[2] = hold >>> 16 & 255; + hbuf[3] = hold >>> 24 & 255; + state.check = crc32(state.check, hbuf, 4, 0); + } + hold = 0; + bits = 0; + state.mode = OS; + case OS: + while (bits < 16) { + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + if (state.head) { + state.head.xflags = hold & 255; + state.head.os = hold >> 8; + } + if (state.flags & 512) { + hbuf[0] = hold & 255; + hbuf[1] = hold >>> 8 & 255; + state.check = crc32(state.check, hbuf, 2, 0); + } + hold = 0; + bits = 0; + state.mode = EXLEN; + case EXLEN: + if (state.flags & 1024) { + while (bits < 16) { + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + state.length = hold; + if (state.head) { + state.head.extra_len = hold; + } + if (state.flags & 512) { + hbuf[0] = hold & 255; + hbuf[1] = hold >>> 8 & 255; + state.check = crc32(state.check, hbuf, 2, 0); + } + hold = 0; + bits = 0; + } else if (state.head) { + state.head.extra = null; + } + state.mode = EXTRA; + case EXTRA: + if (state.flags & 1024) { + copy = state.length; + if (copy > have) { + copy = have; + } + if (copy) { + if (state.head) { + len = state.head.extra_len - state.length; + if (!state.head.extra) { + state.head.extra = new Array(state.head.extra_len); + } + utils.arraySet(state.head.extra, input, next, copy, len); + } + if (state.flags & 512) { + state.check = crc32(state.check, input, copy, next); + } + have -= copy; + next += copy; + state.length -= copy; + } + if (state.length) { + break inf_leave; + } + } + state.length = 0; + state.mode = NAME; + case NAME: + if (state.flags & 2048) { + if (have === 0) { + break inf_leave; + } + copy = 0; + do { + len = input[next + copy++]; + if (state.head && len && state.length < 65536) { + state.head.name += String.fromCharCode(len); + } + } while (len && copy < have); + if (state.flags & 512) { + state.check = crc32(state.check, input, copy, next); + } + have -= copy; + next += copy; + if (len) { + break inf_leave; + } + } else if (state.head) { + state.head.name = null; + } + state.length = 0; + state.mode = COMMENT; + case COMMENT: + if (state.flags & 4096) { + if (have === 0) { + break inf_leave; + } + copy = 0; + do { + len = input[next + copy++]; + if (state.head && len && state.length < 65536) { + state.head.comment += String.fromCharCode(len); + } + } while (len && copy < have); + if (state.flags & 512) { + state.check = crc32(state.check, input, copy, next); + } + have -= copy; + next += copy; + if (len) { + break inf_leave; + } + } else if (state.head) { + state.head.comment = null; + } + state.mode = HCRC; + case HCRC: + if (state.flags & 512) { + while (bits < 16) { + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + if (hold !== (state.check & 65535)) { + strm.msg = "header crc mismatch"; + state.mode = BAD; + break; + } + hold = 0; + bits = 0; + } + if (state.head) { + state.head.hcrc = state.flags >> 9 & 1; + state.head.done = true; + } + strm.adler = state.check = 0; + state.mode = TYPE; + break; + case DICTID: + while (bits < 32) { + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + strm.adler = state.check = zswap32(hold); + hold = 0; + bits = 0; + state.mode = DICT; + case DICT: + if (state.havedict === 0) { + strm.next_out = put; + strm.avail_out = left; + strm.next_in = next; + strm.avail_in = have; + state.hold = hold; + state.bits = bits; + return Z_NEED_DICT; + } + strm.adler = state.check = 1; + state.mode = TYPE; + case TYPE: + if (flush === Z_BLOCK || flush === Z_TREES) { + break inf_leave; + } + case TYPEDO: + if (state.last) { + hold >>>= bits & 7; + bits -= bits & 7; + state.mode = CHECK; + break; + } + while (bits < 3) { + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + state.last = hold & 1; + hold >>>= 1; + bits -= 1; + switch (hold & 3) { + case 0: + state.mode = STORED; + break; + case 1: + fixedtables(state); + state.mode = LEN_; + if (flush === Z_TREES) { + hold >>>= 2; + bits -= 2; + break inf_leave; + } + break; + case 2: + state.mode = TABLE; + break; + case 3: + strm.msg = "invalid block type"; + state.mode = BAD; + } + hold >>>= 2; + bits -= 2; + break; + case STORED: + hold >>>= bits & 7; + bits -= bits & 7; + while (bits < 32) { + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + if ((hold & 65535) !== (hold >>> 16 ^ 65535)) { + strm.msg = "invalid stored block lengths"; + state.mode = BAD; + break; + } + state.length = hold & 65535; + hold = 0; + bits = 0; + state.mode = COPY_; + if (flush === Z_TREES) { + break inf_leave; + } + case COPY_: + state.mode = COPY; + case COPY: + copy = state.length; + if (copy) { + if (copy > have) { + copy = have; + } + if (copy > left) { + copy = left; + } + if (copy === 0) { + break inf_leave; + } + utils.arraySet(output, input, next, copy, put); + have -= copy; + next += copy; + left -= copy; + put += copy; + state.length -= copy; + break; + } + state.mode = TYPE; + break; + case TABLE: + while (bits < 14) { + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + state.nlen = (hold & 31) + 257; + hold >>>= 5; + bits -= 5; + state.ndist = (hold & 31) + 1; + hold >>>= 5; + bits -= 5; + state.ncode = (hold & 15) + 4; + hold >>>= 4; + bits -= 4; + if (state.nlen > 286 || state.ndist > 30) { + strm.msg = "too many length or distance symbols"; + state.mode = BAD; + break; + } + state.have = 0; + state.mode = LENLENS; + case LENLENS: + while (state.have < state.ncode) { + while (bits < 3) { + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + state.lens[order[state.have++]] = hold & 7; + hold >>>= 3; + bits -= 3; + } + while (state.have < 19) { + state.lens[order[state.have++]] = 0; + } + state.lencode = state.lendyn; + state.lenbits = 7; + opts = { bits: state.lenbits }; + ret = inflate_table(CODES, state.lens, 0, 19, state.lencode, 0, state.work, opts); + state.lenbits = opts.bits; + if (ret) { + strm.msg = "invalid code lengths set"; + state.mode = BAD; + break; + } + state.have = 0; + state.mode = CODELENS; + case CODELENS: + while (state.have < state.nlen + state.ndist) { + for (; ; ) { + here = state.lencode[hold & (1 << state.lenbits) - 1]; + here_bits = here >>> 24; + here_op = here >>> 16 & 255; + here_val = here & 65535; + if (here_bits <= bits) { + break; + } + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + if (here_val < 16) { + hold >>>= here_bits; + bits -= here_bits; + state.lens[state.have++] = here_val; + } else { + if (here_val === 16) { + n = here_bits + 2; + while (bits < n) { + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + hold >>>= here_bits; + bits -= here_bits; + if (state.have === 0) { + strm.msg = "invalid bit length repeat"; + state.mode = BAD; + break; + } + len = state.lens[state.have - 1]; + copy = 3 + (hold & 3); + hold >>>= 2; + bits -= 2; + } else if (here_val === 17) { + n = here_bits + 3; + while (bits < n) { + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + hold >>>= here_bits; + bits -= here_bits; + len = 0; + copy = 3 + (hold & 7); + hold >>>= 3; + bits -= 3; + } else { + n = here_bits + 7; + while (bits < n) { + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + hold >>>= here_bits; + bits -= here_bits; + len = 0; + copy = 11 + (hold & 127); + hold >>>= 7; + bits -= 7; + } + if (state.have + copy > state.nlen + state.ndist) { + strm.msg = "invalid bit length repeat"; + state.mode = BAD; + break; + } + while (copy--) { + state.lens[state.have++] = len; + } + } + } + if (state.mode === BAD) { + break; + } + if (state.lens[256] === 0) { + strm.msg = "invalid code -- missing end-of-block"; + state.mode = BAD; + break; + } + state.lenbits = 9; + opts = { bits: state.lenbits }; + ret = inflate_table(LENS, state.lens, 0, state.nlen, state.lencode, 0, state.work, opts); + state.lenbits = opts.bits; + if (ret) { + strm.msg = "invalid literal/lengths set"; + state.mode = BAD; + break; + } + state.distbits = 6; + state.distcode = state.distdyn; + opts = { bits: state.distbits }; + ret = inflate_table(DISTS, state.lens, state.nlen, state.ndist, state.distcode, 0, state.work, opts); + state.distbits = opts.bits; + if (ret) { + strm.msg = "invalid distances set"; + state.mode = BAD; + break; + } + state.mode = LEN_; + if (flush === Z_TREES) { + break inf_leave; + } + case LEN_: + state.mode = LEN; + case LEN: + if (have >= 6 && left >= 258) { + strm.next_out = put; + strm.avail_out = left; + strm.next_in = next; + strm.avail_in = have; + state.hold = hold; + state.bits = bits; + inflate_fast(strm, _out); + put = strm.next_out; + output = strm.output; + left = strm.avail_out; + next = strm.next_in; + input = strm.input; + have = strm.avail_in; + hold = state.hold; + bits = state.bits; + if (state.mode === TYPE) { + state.back = -1; + } + break; + } + state.back = 0; + for (; ; ) { + here = state.lencode[hold & (1 << state.lenbits) - 1]; + here_bits = here >>> 24; + here_op = here >>> 16 & 255; + here_val = here & 65535; + if (here_bits <= bits) { + break; + } + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + if (here_op && (here_op & 240) === 0) { + last_bits = here_bits; + last_op = here_op; + last_val = here_val; + for (; ; ) { + here = state.lencode[last_val + ((hold & (1 << last_bits + last_op) - 1) >> last_bits)]; + here_bits = here >>> 24; + here_op = here >>> 16 & 255; + here_val = here & 65535; + if (last_bits + here_bits <= bits) { + break; + } + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + hold >>>= last_bits; + bits -= last_bits; + state.back += last_bits; + } + hold >>>= here_bits; + bits -= here_bits; + state.back += here_bits; + state.length = here_val; + if (here_op === 0) { + state.mode = LIT; + break; + } + if (here_op & 32) { + state.back = -1; + state.mode = TYPE; + break; + } + if (here_op & 64) { + strm.msg = "invalid literal/length code"; + state.mode = BAD; + break; + } + state.extra = here_op & 15; + state.mode = LENEXT; + case LENEXT: + if (state.extra) { + n = state.extra; + while (bits < n) { + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + state.length += hold & (1 << state.extra) - 1; + hold >>>= state.extra; + bits -= state.extra; + state.back += state.extra; + } + state.was = state.length; + state.mode = DIST; + case DIST: + for (; ; ) { + here = state.distcode[hold & (1 << state.distbits) - 1]; + here_bits = here >>> 24; + here_op = here >>> 16 & 255; + here_val = here & 65535; + if (here_bits <= bits) { + break; + } + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + if ((here_op & 240) === 0) { + last_bits = here_bits; + last_op = here_op; + last_val = here_val; + for (; ; ) { + here = state.distcode[last_val + ((hold & (1 << last_bits + last_op) - 1) >> last_bits)]; + here_bits = here >>> 24; + here_op = here >>> 16 & 255; + here_val = here & 65535; + if (last_bits + here_bits <= bits) { + break; + } + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + hold >>>= last_bits; + bits -= last_bits; + state.back += last_bits; + } + hold >>>= here_bits; + bits -= here_bits; + state.back += here_bits; + if (here_op & 64) { + strm.msg = "invalid distance code"; + state.mode = BAD; + break; + } + state.offset = here_val; + state.extra = here_op & 15; + state.mode = DISTEXT; + case DISTEXT: + if (state.extra) { + n = state.extra; + while (bits < n) { + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + state.offset += hold & (1 << state.extra) - 1; + hold >>>= state.extra; + bits -= state.extra; + state.back += state.extra; + } + if (state.offset > state.dmax) { + strm.msg = "invalid distance too far back"; + state.mode = BAD; + break; + } + state.mode = MATCH; + case MATCH: + if (left === 0) { + break inf_leave; + } + copy = _out - left; + if (state.offset > copy) { + copy = state.offset - copy; + if (copy > state.whave) { + if (state.sane) { + strm.msg = "invalid distance too far back"; + state.mode = BAD; + break; + } + } + if (copy > state.wnext) { + copy -= state.wnext; + from = state.wsize - copy; + } else { + from = state.wnext - copy; + } + if (copy > state.length) { + copy = state.length; + } + from_source = state.window; + } else { + from_source = output; + from = put - state.offset; + copy = state.length; + } + if (copy > left) { + copy = left; + } + left -= copy; + state.length -= copy; + do { + output[put++] = from_source[from++]; + } while (--copy); + if (state.length === 0) { + state.mode = LEN; + } + break; + case LIT: + if (left === 0) { + break inf_leave; + } + output[put++] = state.length; + left--; + state.mode = LEN; + break; + case CHECK: + if (state.wrap) { + while (bits < 32) { + if (have === 0) { + break inf_leave; + } + have--; + hold |= input[next++] << bits; + bits += 8; + } + _out -= left; + strm.total_out += _out; + state.total += _out; + if (_out) { + strm.adler = state.check = state.flags ? crc32(state.check, output, _out, put - _out) : adler32(state.check, output, _out, put - _out); + } + _out = left; + if ((state.flags ? hold : zswap32(hold)) !== state.check) { + strm.msg = "incorrect data check"; + state.mode = BAD; + break; + } + hold = 0; + bits = 0; + } + state.mode = LENGTH; + case LENGTH: + if (state.wrap && state.flags) { + while (bits < 32) { + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + if (hold !== (state.total & 4294967295)) { + strm.msg = "incorrect length check"; + state.mode = BAD; + break; + } + hold = 0; + bits = 0; + } + state.mode = DONE; + case DONE: + ret = Z_STREAM_END; + break inf_leave; + case BAD: + ret = Z_DATA_ERROR; + break inf_leave; + case MEM: + return Z_MEM_ERROR; + case SYNC: + default: + return Z_STREAM_ERROR; + } + } + strm.next_out = put; + strm.avail_out = left; + strm.next_in = next; + strm.avail_in = have; + state.hold = hold; + state.bits = bits; + if (state.wsize || _out !== strm.avail_out && state.mode < BAD && (state.mode < CHECK || flush !== Z_FINISH)) { + if (updatewindow(strm, strm.output, strm.next_out, _out - strm.avail_out)) { + state.mode = MEM; + return Z_MEM_ERROR; + } + } + _in -= strm.avail_in; + _out -= strm.avail_out; + strm.total_in += _in; + strm.total_out += _out; + state.total += _out; + if (state.wrap && _out) { + strm.adler = state.check = state.flags ? crc32(state.check, output, _out, strm.next_out - _out) : adler32(state.check, output, _out, strm.next_out - _out); + } + strm.data_type = state.bits + (state.last ? 64 : 0) + (state.mode === TYPE ? 128 : 0) + (state.mode === LEN_ || state.mode === COPY_ ? 256 : 0); + if ((_in === 0 && _out === 0 || flush === Z_FINISH) && ret === Z_OK) { + ret = Z_BUF_ERROR; + } + return ret; + } + function inflateEnd(strm) { + if (!strm || !strm.state) { + return Z_STREAM_ERROR; + } + var state = strm.state; + if (state.window) { + state.window = null; + } + strm.state = null; + return Z_OK; + } + function inflateGetHeader(strm, head) { + var state; + if (!strm || !strm.state) { + return Z_STREAM_ERROR; + } + state = strm.state; + if ((state.wrap & 2) === 0) { + return Z_STREAM_ERROR; + } + state.head = head; + head.done = false; + return Z_OK; + } + function inflateSetDictionary(strm, dictionary) { + var dictLength = dictionary.length; + var state; + var dictid; + var ret; + if (!strm || !strm.state) { + return Z_STREAM_ERROR; + } + state = strm.state; + if (state.wrap !== 0 && state.mode !== DICT) { + return Z_STREAM_ERROR; + } + if (state.mode === DICT) { + dictid = 1; + dictid = adler32(dictid, dictionary, dictLength, 0); + if (dictid !== state.check) { + return Z_DATA_ERROR; + } + } + ret = updatewindow(strm, dictionary, dictLength, dictLength); + if (ret) { + state.mode = MEM; + return Z_MEM_ERROR; + } + state.havedict = 1; + return Z_OK; + } + exports3.inflateReset = inflateReset; + exports3.inflateReset2 = inflateReset2; + exports3.inflateResetKeep = inflateResetKeep; + exports3.inflateInit = inflateInit; + exports3.inflateInit2 = inflateInit2; + exports3.inflate = inflate; + exports3.inflateEnd = inflateEnd; + exports3.inflateGetHeader = inflateGetHeader; + exports3.inflateSetDictionary = inflateSetDictionary; + exports3.inflateInfo = "pako inflate (from Nodeca project)"; + }, { "../utils/common": 5, "./adler32": 7, "./crc32": 9, "./inffast": 11, "./inftrees": 13 }], 13: [function(require2, module4, exports3) { + "use strict"; + var utils = require2("../utils/common"); + var MAXBITS = 15; + var ENOUGH_LENS = 852; + var ENOUGH_DISTS = 592; + var CODES = 0; + var LENS = 1; + var DISTS = 2; + var lbase = [ + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 13, + 15, + 17, + 19, + 23, + 27, + 31, + 35, + 43, + 51, + 59, + 67, + 83, + 99, + 115, + 131, + 163, + 195, + 227, + 258, + 0, + 0 + ]; + var lext = [ + 16, + 16, + 16, + 16, + 16, + 16, + 16, + 16, + 17, + 17, + 17, + 17, + 18, + 18, + 18, + 18, + 19, + 19, + 19, + 19, + 20, + 20, + 20, + 20, + 21, + 21, + 21, + 21, + 16, + 72, + 78 + ]; + var dbase = [ + 1, + 2, + 3, + 4, + 5, + 7, + 9, + 13, + 17, + 25, + 33, + 49, + 65, + 97, + 129, + 193, + 257, + 385, + 513, + 769, + 1025, + 1537, + 2049, + 3073, + 4097, + 6145, + 8193, + 12289, + 16385, + 24577, + 0, + 0 + ]; + var dext = [ + 16, + 16, + 16, + 16, + 17, + 17, + 18, + 18, + 19, + 19, + 20, + 20, + 21, + 21, + 22, + 22, + 23, + 23, + 24, + 24, + 25, + 25, + 26, + 26, + 27, + 27, + 28, + 28, + 29, + 29, + 64, + 64 + ]; + module4.exports = function inflate_table(type, lens, lens_index, codes, table, table_index, work, opts) { + var bits = opts.bits; + var len = 0; + var sym = 0; + var min = 0, max = 0; + var root = 0; + var curr = 0; + var drop = 0; + var left = 0; + var used = 0; + var huff = 0; + var incr; + var fill; + var low; + var mask; + var next; + var base = null; + var base_index = 0; + var end; + var count = new utils.Buf16(MAXBITS + 1); + var offs = new utils.Buf16(MAXBITS + 1); + var extra = null; + var extra_index = 0; + var here_bits, here_op, here_val; + for (len = 0; len <= MAXBITS; len++) { + count[len] = 0; + } + for (sym = 0; sym < codes; sym++) { + count[lens[lens_index + sym]]++; + } + root = bits; + for (max = MAXBITS; max >= 1; max--) { + if (count[max] !== 0) { + break; + } + } + if (root > max) { + root = max; + } + if (max === 0) { + table[table_index++] = 1 << 24 | 64 << 16 | 0; + table[table_index++] = 1 << 24 | 64 << 16 | 0; + opts.bits = 1; + return 0; + } + for (min = 1; min < max; min++) { + if (count[min] !== 0) { + break; + } + } + if (root < min) { + root = min; + } + left = 1; + for (len = 1; len <= MAXBITS; len++) { + left <<= 1; + left -= count[len]; + if (left < 0) { + return -1; + } + } + if (left > 0 && (type === CODES || max !== 1)) { + return -1; + } + offs[1] = 0; + for (len = 1; len < MAXBITS; len++) { + offs[len + 1] = offs[len] + count[len]; + } + for (sym = 0; sym < codes; sym++) { + if (lens[lens_index + sym] !== 0) { + work[offs[lens[lens_index + sym]]++] = sym; + } + } + if (type === CODES) { + base = extra = work; + end = 19; + } else if (type === LENS) { + base = lbase; + base_index -= 257; + extra = lext; + extra_index -= 257; + end = 256; + } else { + base = dbase; + extra = dext; + end = -1; + } + huff = 0; + sym = 0; + len = min; + next = table_index; + curr = root; + drop = 0; + low = -1; + used = 1 << root; + mask = used - 1; + if (type === LENS && used > ENOUGH_LENS || type === DISTS && used > ENOUGH_DISTS) { + return 1; + } + for (; ; ) { + here_bits = len - drop; + if (work[sym] < end) { + here_op = 0; + here_val = work[sym]; + } else if (work[sym] > end) { + here_op = extra[extra_index + work[sym]]; + here_val = base[base_index + work[sym]]; + } else { + here_op = 32 + 64; + here_val = 0; + } + incr = 1 << len - drop; + fill = 1 << curr; + min = fill; + do { + fill -= incr; + table[next + (huff >> drop) + fill] = here_bits << 24 | here_op << 16 | here_val | 0; + } while (fill !== 0); + incr = 1 << len - 1; + while (huff & incr) { + incr >>= 1; + } + if (incr !== 0) { + huff &= incr - 1; + huff += incr; + } else { + huff = 0; + } + sym++; + if (--count[len] === 0) { + if (len === max) { + break; + } + len = lens[lens_index + work[sym]]; + } + if (len > root && (huff & mask) !== low) { + if (drop === 0) { + drop = root; + } + next += min; + curr = len - drop; + left = 1 << curr; + while (curr + drop < max) { + left -= count[curr + drop]; + if (left <= 0) { + break; + } + curr++; + left <<= 1; + } + used += 1 << curr; + if (type === LENS && used > ENOUGH_LENS || type === DISTS && used > ENOUGH_DISTS) { + return 1; + } + low = huff & mask; + table[low] = root << 24 | curr << 16 | next - table_index | 0; + } + } + if (huff !== 0) { + table[next + huff] = len - drop << 24 | 64 << 16 | 0; + } + opts.bits = root; + return 0; + }; + }, { "../utils/common": 5 }], 14: [function(require2, module4, exports3) { + "use strict"; + module4.exports = { + 2: "need dictionary", + 1: "stream end", + 0: "", + "-1": "file error", + "-2": "stream error", + "-3": "data error", + "-4": "insufficient memory", + "-5": "buffer error", + "-6": "incompatible version" + }; + }, {}], 15: [function(require2, module4, exports3) { + "use strict"; + function ZStream() { + 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; + } + module4.exports = ZStream; + }, {}] }, {}, [3])(3); + }); + } +}); + +// node_modules/plantuml-encoder/browser-index.js +var require_browser_index = __commonJS({ + "node_modules/plantuml-encoder/browser-index.js"(exports, module2) { + module2.exports = { + encode: require_plantuml_encoder().encode, + decode: require_plantuml_decoder().decode + }; + } +}); + +// src/PumlView.ts +var PumlView_exports = {}; +__export(PumlView_exports, { + PumlView: () => PumlView, + VIEW_TYPE: () => VIEW_TYPE +}); +function syncDispatch(from) { + return (tr) => { + views[from].update([tr]); + if (tr.changes && tr.annotation && !tr.changes.empty && !tr.annotation(syncAnnotation)) { + for (let i = 0; i < views.length; i++) { + if (i !== from) { + views[i].dispatch({ + changes: tr.changes, + annotations: syncAnnotation.of(true) + }); + } + } + } + }; +} +var import_obsidian4, import_view, import_state, import_search, import_commands, VIEW_TYPE, views, syncAnnotation, PumlView; +var init_PumlView = __esm({ + "src/PumlView.ts"() { + import_obsidian4 = __toModule(require("obsidian")); + import_view = __toModule(require("@codemirror/view")); + import_state = __toModule(require("@codemirror/state")); + import_search = __toModule(require("@codemirror/search")); + import_commands = __toModule(require("@codemirror/commands")); + VIEW_TYPE = "plantuml"; + views = []; + syncAnnotation = import_state.Annotation.define(); + PumlView = class extends import_obsidian4.TextFileView { + constructor(leaf, plugin) { + super(leaf); + this.dispatchId = -1; + this.extensions = [ + (0, import_view.highlightActiveLine)(), + (0, import_view.highlightActiveLineGutter)(), + (0, import_search.highlightSelectionMatches)(), + (0, import_view.drawSelection)(), + import_view.keymap.of([...import_commands.defaultKeymap, import_commands.indentWithTab]), + (0, import_commands.history)(), + (0, import_search.search)(), + import_view.EditorView.updateListener.of((v) => __async(this, null, function* () { + if (v.docChanged) { + this.requestSave(); + yield this.renderPreview(); + } + })) + ]; + this.plugin = plugin; + this.debounced = (0, import_obsidian4.debounce)(this.plugin.getProcessor().png, this.plugin.settings.debounce * 1e3, true); + this.sourceEl = this.contentEl.createDiv({ cls: "plantuml-source-view", attr: { "style": "display: block" } }); + this.previewEl = this.contentEl.createDiv({ cls: "plantuml-preview-view", attr: { "style": "display: none" } }); + const vault = this.app.vault; + if (vault.getConfig("showLineNumber")) { + this.extensions.push((0, import_view.lineNumbers)()); + } + if (vault.getConfig("lineWrap")) { + this.extensions.push(import_view.EditorView.lineWrapping); + } + this.editor = new import_view.EditorView({ + state: import_state.EditorState.create({ + extensions: this.extensions, + doc: this.data + }), + parent: this.sourceEl, + dispatch: syncDispatch(views.length) + }); + this.dispatchId = views.push(this.editor) - 1; + } + getViewType() { + return VIEW_TYPE; + } + getState() { + return super.getState(); + } + setState(state, result) { + if (state.mode === "preview") { + this.currentView = "preview"; + (0, import_obsidian4.setIcon)(this.changeModeButton, "pencil"); + this.changeModeButton.setAttribute("aria-label", "Edit (Ctrl+Click to edit in new pane)"); + this.previewEl.style.setProperty("display", "block"); + this.sourceEl.style.setProperty("display", "none"); + this.renderPreview(); + } else { + this.currentView = "source"; + (0, import_obsidian4.setIcon)(this.changeModeButton, "lines-of-text"); + this.changeModeButton.setAttribute("aria-label", "Preview (Ctrl+Click to open in new pane)"); + this.previewEl.style.setProperty("display", "none"); + this.sourceEl.style.setProperty("display", "block"); + } + return super.setState(state, result); + } + onload() { + return __async(this, null, function* () { + this.changeModeButton = this.addAction("lines-of-text", "Preview (Ctrl+Click to open in new pane)", (evt) => this.switchMode(evt), 17); + const defaultViewMode = this.app.vault.getConfig("defaultViewMode"); + this.currentView = defaultViewMode; + yield this.setState(__spreadProps(__spreadValues({}, this.getState()), { mode: defaultViewMode }), {}); + }); + } + onunload() { + views.remove(views[this.dispatchId]); + this.editor.destroy(); + } + switchMode(arg) { + return __async(this, null, function* () { + let mode = arg; + if (!mode || mode instanceof MouseEvent) + mode = this.currentView === "source" ? "preview" : "source"; + if (arg instanceof MouseEvent) { + if (import_obsidian4.Keymap.isModEvent(arg)) { + this.app.workspace.duplicateLeaf(this.leaf).then(() => __async(this, null, function* () { + var _a, _b; + const viewState = (_a = this.app.workspace.activeLeaf) == null ? void 0 : _a.getViewState(); + if (viewState) { + viewState.state = __spreadProps(__spreadValues({}, viewState.state), { mode }); + yield (_b = this.app.workspace.activeLeaf) == null ? void 0 : _b.setViewState(viewState); + } + })); + } else { + yield this.setState(__spreadProps(__spreadValues({}, this.getState()), { mode }), {}); + } + } + }); + } + getViewData() { + return this.editor.state.sliceDoc(); + } + setViewData(data, clear) { + return __async(this, null, function* () { + this.data = data; + if (clear) { + this.editor.setState(import_state.EditorState.create({ + doc: data, + extensions: this.extensions + })); + } else { + this.editor.dispatch({ + changes: { + from: 0, + to: this.editor.state.doc.length, + insert: data + } + }); + } + if (this.currentView === "preview") + this.renderPreview(); + }); + } + clear() { + this.previewEl.empty(); + this.data = null; + } + getDisplayText() { + if (this.file) + return this.file.basename; + else + return "PlantUML (no file)"; + } + canAcceptExtension(extension) { + return extension == "puml"; + } + getIcon() { + return "document-plantuml"; + } + renderPreview() { + return __async(this, null, function* () { + if (this.currentView !== "preview") + return; + this.previewEl.empty(); + const loadingHeader = this.previewEl.createEl("h1", { text: "Loading" }); + const previewDiv = this.previewEl.createDiv(); + this.debounced(this.getViewData(), previewDiv, null); + loadingHeader.remove(); + }); + } + }; + } +}); + +// src/main.ts +__export(exports, { + default: () => PlantumlPlugin +}); +var import_obsidian6 = __toModule(require("obsidian")); + +// src/settings.ts +var import_obsidian = __toModule(require("obsidian")); +var DEFAULT_SETTINGS = { + server_url: "https://www.plantuml.com/plantuml", + header: "", + debounce: 3, + localJar: "", + javaPath: "java", + defaultProcessor: "png" +}; +var PlantUMLSettingsTab = class extends import_obsidian.PluginSettingTab { + constructor(plugin) { + super(plugin.app, plugin); + this.plugin = plugin; + } + display() { + const { containerEl } = this; + containerEl.empty(); + new import_obsidian.Setting(containerEl).setName("Server URL").setDesc("PlantUML Server URL").addText((text) => text.setPlaceholder(DEFAULT_SETTINGS.server_url).setValue(this.plugin.settings.server_url).onChange((value) => __async(this, null, function* () { + this.plugin.settings.server_url = value; + yield this.plugin.saveSettings(); + }))); + if (import_obsidian.Platform.isDesktopApp) { + const jarDesc = new DocumentFragment(); + jarDesc.createDiv().innerHTML = "Path to local JAR
Supports:
  • Absolute path
  • Path relative to vault
  • Path relative to users home directory ~/
"; + new import_obsidian.Setting(containerEl).setName("Local JAR").setDesc(jarDesc).addText((text) => text.setPlaceholder(DEFAULT_SETTINGS.localJar).setValue(this.plugin.settings.localJar).onChange((value) => __async(this, null, function* () { + this.plugin.settings.localJar = value; + yield this.plugin.saveSettings(); + }))); + new import_obsidian.Setting(containerEl).setName("Java Path").setDesc("Path to Java executable").addText((text) => text.setPlaceholder(DEFAULT_SETTINGS.javaPath).setValue(this.plugin.settings.javaPath).onChange((value) => __async(this, null, function* () { + this.plugin.settings.javaPath = value; + yield this.plugin.saveSettings(); + }))); + } + new import_obsidian.Setting(containerEl).setName("Default processor for includes").setDesc("Any .pu/.puml files linked will use this processor").addDropdown((dropdown) => { + dropdown.addOption("png", "PNG").addOption("svg", "SVG").setValue(this.plugin.settings.defaultProcessor).onChange((value) => __async(this, null, function* () { + this.plugin.settings.defaultProcessor = value; + yield this.plugin.saveSettings(); + })); + }); + new import_obsidian.Setting(containerEl).setName("Header").setDesc("Included at the head in every diagram. Useful for specifying a common theme (.puml file)").addTextArea((text) => { + text.setPlaceholder("!include https://raw.githubusercontent.com/....puml\n").setValue(this.plugin.settings.header).onChange((value) => __async(this, null, function* () { + this.plugin.settings.header = value; + yield this.plugin.saveSettings(); + })); + text.inputEl.setAttr("rows", 4); + text.inputEl.addClass("puml-settings-area"); + }); + new import_obsidian.Setting(containerEl).setName("Debounce").setDesc("How often should the diagram refresh in seconds").addText((text) => text.setPlaceholder(String(DEFAULT_SETTINGS.debounce)).setValue(String(this.plugin.settings.debounce)).onChange((value) => __async(this, null, function* () { + if (!isNaN(Number(value)) || value === void 0) { + this.plugin.settings.debounce = Number(value || DEFAULT_SETTINGS.debounce); + yield this.plugin.saveSettings(); + } else { + new import_obsidian.Notice("Please specify a valid number"); + } + }))); + } +}; + +// src/localProcessors.ts +var plantuml = __toModule(require_browser_index()); + +// src/functions.ts +var Replacer = class { + constructor(plugin) { + this.plugin = plugin; + } + replaceNonBreakingSpaces(text) { + const lines = text.split(/\r?\n/); + const resultLines = []; + if (text.startsWith("@startmindmap")) { + for (const line of lines) { + resultLines.push(line.replace(/\s+/g, " ")); + } + } else { + resultLines.push(...lines); + } + const result = resultLines.join("\r\n"); + return result.replace(/ /gi, " "); + } + replaceLinks(text, path, filetype) { + return text.replace(/\[\[\[([\s\S]*?)\]\]\]/g, (_, args) => { + const split = args.split("|"); + const file = this.plugin.app.metadataCache.getFirstLinkpathDest(split[0], path); + if (!file) { + return "File with name: " + split[0] + " not found"; + } + let alias = file.basename; + if (filetype === "png") { + const url = this.plugin.app.getObsidianUrl(file); + if (split[1]) { + alias = split[1]; + } + return "[[" + url + " " + alias + "]]"; + } + return "[[" + file.basename + "]]"; + }); + } + getFullPath(path) { + if (path.length === 0) { + return this.plugin.app.vault.adapter.getFullPath(""); + } + const file = this.plugin.app.vault.getAbstractFileByPath(path); + if (!file) { + return this.plugin.app.vault.adapter.getFullPath(""); + } + const folder = this.plugin.app.vault.getDirectParent(file); + return this.plugin.app.vault.adapter.getFullPath(folder.path); + } + getPath(ctx) { + return this.getFullPath(ctx ? ctx.sourcePath : ""); + } +}; +function insertImageWithMap(el, image, map, encodedDiagram) { + el.empty(); + const img = document.createElement("img"); + if (image.startsWith("http")) { + img.src = image; + } else { + img.src = "data:image/png;base64," + image; + } + img.useMap = "#" + encodedDiagram; + if (map.contains("map")) { + el.innerHTML = map; + el.children[0].setAttr("name", encodedDiagram); + } + el.appendChild(img); +} +function insertAsciiImage(el, image) { + el.empty(); + const pre = document.createElement("pre"); + const code = document.createElement("code"); + pre.appendChild(code); + code.setText(image); + el.appendChild(pre); +} +function insertSvgImage(el, image) { + el.empty(); + const parser = new DOMParser(); + const svg = parser.parseFromString(image, "image/svg+xml"); + const links = svg.getElementsByTagName("a"); + for (let i = 0; i < links.length; i++) { + const link = links[i]; + link.addClass("internal-link"); + } + el.insertAdjacentHTML("beforeend", svg.documentElement.outerHTML); +} + +// node_modules/compare-versions/index.mjs +function compareVersions(v1, v2) { + const n1 = validateAndParse(v1); + const n2 = validateAndParse(v2); + const p1 = n1.pop(); + const p2 = n2.pop(); + const r = compareSegments(n1, n2); + if (r !== 0) + return r; + if (p1 && p2) { + return compareSegments(p1.split("."), p2.split(".")); + } else if (p1 || p2) { + return p1 ? -1 : 1; + } + return 0; +} +var validate = (v) => typeof v === "string" && /^[v\d]/.test(v) && semver.test(v); +var compare = (v1, v2, operator) => { + assertValidOperator(operator); + const res = compareVersions(v1, v2); + return operatorResMap[operator].includes(res); +}; +var satisfies = (v, r) => { + const m = r.match(/^([<>=~^]+)/); + const op = m ? m[1] : "="; + if (op !== "^" && op !== "~") + return compare(v, r, op); + const [v1, v2, v3] = validateAndParse(v); + const [r1, r2, r3] = validateAndParse(r); + if (compareStrings(v1, r1) !== 0) + return false; + if (op === "^") { + return compareSegments([v2, v3], [r2, r3]) >= 0; + } + if (compareStrings(v2, r2) !== 0) + return false; + return compareStrings(v3, r3) >= 0; +}; +compareVersions.validate = validate; +compareVersions.compare = compare; +compareVersions.sastisfies = satisfies; +var semver = /^[v^~<>=]*?(\d+)(?:\.([x*]|\d+)(?:\.([x*]|\d+)(?:\.([x*]|\d+))?(?:-([\da-z\-]+(?:\.[\da-z\-]+)*))?(?:\+[\da-z\-]+(?:\.[\da-z\-]+)*)?)?)?$/i; +var validateAndParse = (v) => { + if (typeof v !== "string") { + throw new TypeError("Invalid argument expected string"); + } + const match = v.match(semver); + if (!match) { + throw new Error(`Invalid argument not valid semver ('${v}' received)`); + } + match.shift(); + return match; +}; +var isWildcard = (s) => s === "*" || s === "x" || s === "X"; +var tryParse = (v) => { + const n = parseInt(v, 10); + return isNaN(n) ? v : n; +}; +var forceType = (a, b) => typeof a !== typeof b ? [String(a), String(b)] : [a, b]; +var compareStrings = (a, b) => { + if (isWildcard(a) || isWildcard(b)) + return 0; + const [ap, bp] = forceType(tryParse(a), tryParse(b)); + if (ap > bp) + return 1; + if (ap < bp) + return -1; + return 0; +}; +var compareSegments = (a, b) => { + for (let i = 0; i < Math.max(a.length, b.length); i++) { + const r = compareStrings(a[i] || 0, b[i] || 0); + if (r !== 0) + return r; + } + return 0; +}; +var operatorResMap = { + ">": [1], + ">=": [0, 1], + "=": [0], + "<=": [-1, 0], + "<": [-1] +}; +var allowedOperators = Object.keys(operatorResMap); +var assertValidOperator = (op) => { + if (typeof op !== "string") { + throw new TypeError(`Invalid operator type, expected string but got ${typeof op}`); + } + if (allowedOperators.indexOf(op) === -1) { + throw new Error(`Invalid operator, expected one of ${allowedOperators.join("|")}`); + } +}; + +// src/const.ts +var LOGO_SVG = ''; +var OutputType = /* @__PURE__ */ ((OutputType2) => { + OutputType2["PNG"] = "png"; + OutputType2["SVG"] = "svg"; + OutputType2["ASCII"] = "txt"; + return OutputType2; +})(OutputType || {}); +function isUsingLivePreviewEnabledEditor() { + const config = this.app.vault.config; + if (config.legacyEditor === void 0) + return false; + if (config.legacyEditor) + return false; + const userAgent = navigator.userAgent.match(/obsidian([^ ]+)/); + if (userAgent === null) { + return true; + } + const version = userAgent.first().split("/")[1]; + return compareVersions.compare(version, "0.13.0", ">="); +} + +// src/localProcessors.ts +var LocalProcessors = class { + constructor(plugin) { + this.ascii = (source, el, ctx) => __async(this, null, function* () { + const image = yield this.generateLocalImage(source, OutputType.ASCII, this.plugin.replacer.getPath(ctx)); + insertAsciiImage(el, image); + }); + this.png = (source, el, ctx) => __async(this, null, function* () { + const encodedDiagram = plantuml.encode(source); + if (localStorage.getItem(encodedDiagram + "-png")) { + const image2 = localStorage.getItem(encodedDiagram + "-png"); + const map2 = localStorage.getItem(encodedDiagram + "-map"); + insertImageWithMap(el, image2, map2, encodedDiagram); + return; + } + const path = this.plugin.replacer.getPath(ctx); + const image = yield this.generateLocalImage(source, OutputType.PNG, path); + const map = yield this.generateLocalMap(source, path); + localStorage.setItem(encodedDiagram + "-png", image); + localStorage.setItem(encodedDiagram + "-map", map); + insertImageWithMap(el, image, map, encodedDiagram); + }); + this.svg = (source, el, ctx) => __async(this, null, function* () { + const encodedDiagram = plantuml.encode(source); + if (localStorage.getItem(encodedDiagram + "-svg")) { + insertSvgImage(el, localStorage.getItem(encodedDiagram + "-svg")); + return; + } + const image = yield this.generateLocalImage(source, OutputType.SVG, this.plugin.replacer.getPath(ctx)); + insertSvgImage(el, image); + }); + this.plugin = plugin; + } + generateLocalMap(source, path) { + return __async(this, null, function* () { + const { exec } = require("child_process"); + const args = this.resolveLocalJarCmd().concat(["-pipemap"]); + const child = exec(args.join(" "), { encoding: "binary", cwd: path }); + let stdout = ""; + if (child.stdout) { + child.stdout.on("data", (data) => { + stdout += data; + }); + } + return new Promise((resolve, reject) => { + child.on("error", reject); + child.on("close", (code) => { + if (code === 0) { + resolve(stdout); + return; + } else if (code === 1) { + console.log(stdout); + reject(new Error(`an error occurred`)); + } else { + reject(new Error(`child exited with code ${code}`)); + } + }); + child.stdin.write(source); + child.stdin.end(); + }); + }); + } + generateLocalImage(source, type, path) { + return __async(this, null, function* () { + const { ChildProcess, exec } = require("child_process"); + const args = this.resolveLocalJarCmd().concat(["-t" + type, "-pipe"]); + let child; + if (type === OutputType.PNG) { + child = exec(args.join(" "), { encoding: "binary", cwd: path }); + } else { + child = exec(args.join(" "), { encoding: "utf-8", cwd: path }); + } + let stdout; + let stderr; + if (child.stdout) { + child.stdout.on("data", (data) => { + if (stdout === void 0) { + stdout = data; + } else + stdout += data; + }); + } + if (child.stderr) { + child.stderr.on("data", (data) => { + if (stderr === void 0) { + stderr = data; + } else + stderr += data; + }); + } + return new Promise((resolve, reject) => { + child.on("error", reject); + child.on("close", (code) => { + if (stdout === void 0) { + return; + } + if (code === 0) { + if (type === OutputType.PNG) { + const buf = new Buffer(stdout, "binary"); + resolve(buf.toString("base64")); + return; + } + resolve(stdout); + return; + } else if (code === 1) { + console.error(stdout); + reject(new Error(stderr)); + } else { + if (type === OutputType.PNG) { + const buf = new Buffer(stdout, "binary"); + resolve(buf.toString("base64")); + return; + } + resolve(stdout); + return; + } + }); + child.stdin.write(source, "utf-8"); + child.stdin.end(); + }); + }); + } + resolveLocalJarCmd() { + const jarFromSettings = this.plugin.settings.localJar; + const { isAbsolute, resolve } = require("path"); + const { userInfo } = require("os"); + let jarFullPath; + const path = this.plugin.replacer.getFullPath(""); + if (jarFromSettings[0] === "~") { + jarFullPath = userInfo().homedir + jarFromSettings.slice(1); + } else { + if (isAbsolute(jarFromSettings)) { + jarFullPath = jarFromSettings; + } else { + jarFullPath = resolve(path, jarFromSettings); + } + } + if (jarFullPath.length == 0) { + throw Error("Invalid local jar file"); + } + return [ + this.plugin.settings.javaPath, + "-jar", + "-Djava.awt.headless=true", + '"' + jarFullPath + '"', + "-charset", + "utf-8" + ]; + } +}; + +// src/debouncedProcessors.ts +var import_obsidian2 = __toModule(require("obsidian")); + +// node_modules/uuid/dist/esm-browser/rng.js +var getRandomValues; +var rnds8 = new Uint8Array(16); +function rng() { + if (!getRandomValues) { + getRandomValues = typeof crypto !== "undefined" && crypto.getRandomValues && crypto.getRandomValues.bind(crypto) || typeof msCrypto !== "undefined" && typeof msCrypto.getRandomValues === "function" && msCrypto.getRandomValues.bind(msCrypto); + if (!getRandomValues) { + throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported"); + } + } + return getRandomValues(rnds8); +} + +// node_modules/uuid/dist/esm-browser/regex.js +var regex_default = /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i; + +// node_modules/uuid/dist/esm-browser/validate.js +function validate2(uuid) { + return typeof uuid === "string" && regex_default.test(uuid); +} +var validate_default = validate2; + +// node_modules/uuid/dist/esm-browser/stringify.js +var byteToHex = []; +for (i = 0; i < 256; ++i) { + byteToHex.push((i + 256).toString(16).substr(1)); +} +var i; +function stringify(arr) { + var offset = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 0; + var uuid = (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + "-" + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + "-" + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + "-" + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + "-" + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase(); + if (!validate_default(uuid)) { + throw TypeError("Stringified UUID is invalid"); + } + return uuid; +} +var stringify_default = stringify; + +// node_modules/uuid/dist/esm-browser/v4.js +function v4(options, buf, offset) { + options = options || {}; + var rnds = options.random || (options.rng || rng)(); + rnds[6] = rnds[6] & 15 | 64; + rnds[8] = rnds[8] & 63 | 128; + if (buf) { + offset = offset || 0; + for (var i = 0; i < 16; ++i) { + buf[offset + i] = rnds[i]; + } + return buf; + } + return stringify_default(rnds); +} +var v4_default = v4; + +// src/debouncedProcessors.ts +var DebouncedProcessors = class { + constructor(plugin) { + this.SECONDS_TO_MS_FACTOR = 1e3; + this.debounceMap = /* @__PURE__ */ new Map(); + this.png = (source, el, ctx) => __async(this, null, function* () { + yield this.processor(source, el, ctx, "png", this.plugin.getProcessor().png); + }); + this.ascii = (source, el, ctx) => __async(this, null, function* () { + yield this.processor(source, el, ctx, "ascii", this.plugin.getProcessor().ascii); + }); + this.svg = (source, el, ctx) => __async(this, null, function* () { + yield this.processor(source, el, ctx, "svg", this.plugin.getProcessor().svg); + }); + this.processor = (source, el, ctx, filetype, processor) => __async(this, null, function* () { + el.createEl("h6", { text: "Generating PlantUML diagram", cls: "puml-loading" }); + if (el.dataset.plantumlDebounce) { + const debounceId = el.dataset.plantumlDebounce; + if (this.debounceMap.has(debounceId)) { + yield this.debounceMap.get(debounceId)(source, el, ctx); + } + } else { + const func = (0, import_obsidian2.debounce)(processor, this.debounceTime, true); + const uuid = v4_default(); + el.dataset.plantumlDebouce = uuid; + this.debounceMap.set(uuid, func); + source = this.plugin.replacer.replaceNonBreakingSpaces(source); + source = this.plugin.replacer.replaceLinks(source, this.plugin.replacer.getPath(ctx), filetype); + source = this.plugin.settings.header + "\r\n" + source; + yield processor(source, el, ctx); + } + }); + this.plugin = plugin; + const debounceTime = plugin.settings.debounce; + this.debounceTime = debounceTime * this.SECONDS_TO_MS_FACTOR; + } +}; + +// src/serverProcessor.ts +var import_obsidian3 = __toModule(require("obsidian")); +var plantuml2 = __toModule(require_browser_index()); +var ServerProcessor = class { + constructor(plugin) { + this.svg = (source, el, _) => __async(this, null, function* () { + let url = this.plugin.settings.server_url; + if (url.length == 0) { + url = DEFAULT_SETTINGS.server_url; + } + const imageUrlBase = url + "/svg/"; + const encodedDiagram = plantuml2.encode(source); + (0, import_obsidian3.request)({ url: imageUrlBase + encodedDiagram, method: "GET" }).then((value) => { + insertSvgImage(el, value); + }).catch((error) => { + if (error) + console.error(error); + }); + }); + this.png = (source, el, _) => __async(this, null, function* () { + let url = this.plugin.settings.server_url; + if (url.length == 0) { + url = DEFAULT_SETTINGS.server_url; + } + const imageUrlBase = url + "/png/"; + const encodedDiagram = plantuml2.encode(source); + const image = imageUrlBase + encodedDiagram; + const mapUrlBase = url + "/map/"; + const map = yield (0, import_obsidian3.request)({ url: mapUrlBase + encodedDiagram, method: "GET" }); + insertImageWithMap(el, image, map, encodedDiagram); + }); + this.ascii = (source, el, _) => __async(this, null, function* () { + let url = this.plugin.settings.server_url; + if (url.length == 0) { + url = DEFAULT_SETTINGS.server_url; + } + const asciiUrlBase = url + "/txt/"; + const encodedDiagram = plantuml2.encode(source); + const result = yield (0, import_obsidian3.request)({ url: asciiUrlBase + encodedDiagram }); + if (result.startsWith("\uFFFDPNG")) { + const text = document.createElement("p"); + text.style.color = "red"; + text.innerText = "Your configured PlantUML Server does not support ASCII Art"; + el.appendChild(text); + return; + } + insertAsciiImage(el, result); + }); + this.plugin = plugin; + } +}; + +// src/main.ts +init_PumlView(); +var import_state3 = __toModule(require("@codemirror/state")); + +// src/decorations/EmbedDecoration.ts +var import_obsidian5 = __toModule(require("obsidian")); +var import_view2 = __toModule(require("@codemirror/view")); +var import_state2 = __toModule(require("@codemirror/state")); +var import_language = __toModule(require("@codemirror/language")); +var statefulDecorations = defineStatefulDecoration(); +var StatefulDecorationSet = class { + constructor(editor, plugin) { + this.decoCache = Object.create(null); + this.debouncedUpdate = (0, import_obsidian5.debounce)(this.updateAsyncDecorations, 100, true); + this.editor = editor; + this.plugin = plugin; + } + computeAsyncDecorations(tokens) { + return __async(this, null, function* () { + const decorations = []; + for (const token of tokens) { + let deco = this.decoCache[token.value]; + if (!deco) { + const file = this.plugin.app.metadataCache.getFirstLinkpathDest(token.value, ""); + if (!file) + return; + const fileContent = yield this.plugin.app.vault.read(file); + const div = createDiv(); + if (this.plugin.settings.defaultProcessor === "png") { + yield this.plugin.getProcessor().png(fileContent, div, null); + } else { + yield this.plugin.getProcessor().svg(fileContent, div, null); + } + deco = this.decoCache[token.value] = import_view2.Decoration.replace({ widget: new EmojiWidget(div), block: true }); + } + decorations.push(deco.range(token.from, token.from)); + } + return import_view2.Decoration.set(decorations, true); + }); + } + updateAsyncDecorations(tokens) { + return __async(this, null, function* () { + const decorations = yield this.computeAsyncDecorations(tokens); + if (decorations || this.editor.state.field(statefulDecorations.field).size) { + this.editor.dispatch({ effects: statefulDecorations.update.of(decorations || import_view2.Decoration.none) }); + } + }); + } +}; +function buildViewPlugin(plugin) { + return import_view2.ViewPlugin.fromClass(class { + constructor(view) { + this.decoManager = new StatefulDecorationSet(view, plugin); + this.buildAsyncDecorations(view); + } + update(update) { + if (update.docChanged || update.viewportChanged) { + this.buildAsyncDecorations(update.view); + } + } + buildAsyncDecorations(view) { + const targetElements = []; + for (const { from } of view.visibleRanges) { + const tree = (0, import_language.syntaxTree)(view.state); + tree.iterate({ + enter: (node) => { + const tokenProps = node.type.prop(import_language.tokenClassNodeProp); + if (tokenProps) { + const props = new Set(tokenProps.split(" ")); + const isEmbed = props.has("formatting-embed"); + if (isEmbed) { + const content = view.state.doc.sliceString(from); + const index = content.indexOf("]]"); + const filename = content.slice(3, index).split("|")[0]; + if (filename.endsWith(".puml") || filename.endsWith(".pu")) { + targetElements.push({ from, to: index, value: filename }); + } + } + } + } + }); + } + this.decoManager.debouncedUpdate(targetElements); + } + }); +} +function asyncDecoBuilderExt(plugin) { + return [statefulDecorations.field, buildViewPlugin(plugin)]; +} +function defineStatefulDecoration() { + const update = import_state2.StateEffect.define(); + const field = import_state2.StateField.define({ + create() { + return import_view2.Decoration.none; + }, + update(deco, tr) { + return tr.effects.reduce((deco2, effect) => effect.is(update) ? effect.value : deco2, deco.map(tr.changes)); + }, + provide: (field2) => import_view2.EditorView.decorations.from(field2) + }); + return { update, field }; +} +var EmojiWidget = class extends import_view2.WidgetType { + constructor(source) { + super(); + this.source = source; + } + eq(other) { + return other == this; + } + toDOM() { + return this.source; + } + ignoreEvent() { + return false; + } +}; + +// src/main.ts +var PlantumlPlugin = class extends import_obsidian6.Plugin { + constructor() { + super(...arguments); + this.hover = { + linkText: null, + sourcePath: null + }; + } + getProcessor() { + if (import_obsidian6.Platform.isMobileApp) { + return this.serverProcessor; + } + if (this.settings.localJar.length > 0) { + return this.localProcessor; + } + return this.serverProcessor; + } + onload() { + return __async(this, null, function* () { + console.log("loading plugin plantuml"); + yield this.loadSettings(); + this.addSettingTab(new PlantUMLSettingsTab(this)); + this.replacer = new Replacer(this); + this.serverProcessor = new ServerProcessor(this); + if (import_obsidian6.Platform.isDesktopApp) { + this.localProcessor = new LocalProcessors(this); + } + const processor = new DebouncedProcessors(this); + if (isUsingLivePreviewEnabledEditor()) { + const view = (init_PumlView(), PumlView_exports); + (0, import_obsidian6.addIcon)("document-" + view.VIEW_TYPE, LOGO_SVG); + this.registerView(view.VIEW_TYPE, (leaf) => { + return new view.PumlView(leaf, this); + }); + this.registerExtensions(["puml", "pu"], view.VIEW_TYPE); + this.registerEditorExtension(import_state3.Prec.lowest(asyncDecoBuilderExt(this))); + } + this.registerMarkdownCodeBlockProcessor("plantuml", processor.png); + this.registerMarkdownCodeBlockProcessor("plantuml-ascii", processor.ascii); + this.registerMarkdownCodeBlockProcessor("plantuml-svg", processor.svg); + this.registerMarkdownCodeBlockProcessor("puml", processor.png); + this.registerMarkdownCodeBlockProcessor("puml-svg", processor.svg); + this.registerMarkdownCodeBlockProcessor("puml-ascii", processor.ascii); + this.registerMarkdownCodeBlockProcessor("plantuml-map", processor.png); + this.observer = new MutationObserver((mutation) => __async(this, null, function* () { + if (mutation.length !== 1) + return; + if (mutation[0].addedNodes.length !== 1) + return; + if (this.hover.linkText === null) + return; + if (mutation[0].addedNodes[0].className !== "popover hover-popover file-embed is-loaded") + return; + const file = this.app.metadataCache.getFirstLinkpathDest(this.hover.linkText, this.hover.sourcePath); + if (!file) + return; + if (file.extension !== "puml" && file.extension !== "pu") + return; + const fileContent = yield this.app.vault.read(file); + const imgDiv = createDiv(); + if (this.settings.defaultProcessor === "png") { + yield this.getProcessor().png(fileContent, imgDiv, null); + } else { + yield this.getProcessor().svg(fileContent, imgDiv, null); + } + const node = mutation[0].addedNodes[0]; + node.empty(); + const div = createDiv("", (element) => __async(this, null, function* () { + element.appendChild(imgDiv); + element.setAttribute("src", file.path); + element.onClickEvent((event) => { + event.stopImmediatePropagation(); + const leaf = this.app.workspace.getLeaf(event.ctrlKey); + leaf.setViewState({ + type: VIEW_TYPE, + state: { file: file.path } + }); + }); + })); + node.appendChild(div); + })); + this.registerEvent(this.app.workspace.on("hover-link", (event) => __async(this, null, function* () { + const linkText = event.linktext; + if (!linkText) + return; + const sourcePath = event.sourcePath; + if (!linkText.endsWith(".puml") && !linkText.endsWith(".pu")) { + return; + } + this.hover.linkText = linkText; + this.hover.sourcePath = sourcePath; + }))); + this.observer.observe(document, { childList: true, subtree: true }); + this.registerMarkdownPostProcessor((element, context) => __async(this, null, function* () { + const embeddedItems = element.querySelectorAll(".internal-embed"); + if (embeddedItems.length === 0) { + return; + } + for (const key in embeddedItems) { + const item = embeddedItems[key]; + if (typeof item.getAttribute !== "function") + return; + const filename = item.getAttribute("src"); + const file = this.app.metadataCache.getFirstLinkpathDest(filename.split("#")[0], context.sourcePath); + if (file && file instanceof import_obsidian6.TFile && (file.extension === "puml" || file.extension === "pu")) { + const fileContent = yield this.app.vault.read(file); + const div = createDiv(); + if (this.settings.defaultProcessor === "png") { + yield this.getProcessor().png(fileContent, div, context); + } else { + yield this.getProcessor().svg(fileContent, div, context); + } + item.parentElement.replaceChild(div, item); + } + } + })); + }); + } + onunload() { + return __async(this, null, function* () { + console.log("unloading plugin plantuml"); + this.observer.disconnect(); + }); + } + loadSettings() { + return __async(this, null, function* () { + this.settings = Object.assign({}, DEFAULT_SETTINGS, yield this.loadData()); + }); + } + saveSettings() { + return __async(this, null, function* () { + yield this.saveData(this.settings); + }); + } +}; diff --git a/.obsidian/plugins/obsidian-plantuml/manifest.json b/.obsidian/plugins/obsidian-plantuml/manifest.json new file mode 100644 index 0000000..156cfb5 --- /dev/null +++ b/.obsidian/plugins/obsidian-plantuml/manifest.json @@ -0,0 +1,10 @@ +{ + "id": "obsidian-plantuml", + "name": "PlantUML", + "version": "1.6.6", + "minAppVersion": "0.15.0", + "description": "Render PlantUML Diagrams", + "author": "Johannes Theiner", + "authorUrl": "https://github.com/joethei/", + "isDesktopOnly": false +} diff --git a/.obsidian/plugins/obsidian-plantuml/styles.css b/.obsidian/plugins/obsidian-plantuml/styles.css new file mode 100644 index 0000000..ad4f9dc --- /dev/null +++ b/.obsidian/plugins/obsidian-plantuml/styles.css @@ -0,0 +1,38 @@ +.puml-settings-area { + margin-left: 5px; + margin-right: 5px; + font-size: 14px; + width: 100%; +} + +.plantuml-source-view .cm-activeLine { + background-color: unset !important; +} + +.plantuml-source-view .cm-gutters { + background-color: unset !important; +} + +.plantuml-source-view .cm-cursor { + border-left: 1.2px solid var(--text-muted); +} + +.plantuml-source-view .cm-selectionBackground { + background-color: var(--text-selection) !important; +} + +.puml-loading { + color: var(--text-accent); +} + +.internal-embed.file-embed[src$=".puml"] { + display: none; +} + +.internal-embed.file-embed[src$=".pu"] { + display: none; +} + +.puml-error { + color: var(--text-error); +} diff --git a/.obsidian/workspace.json b/.obsidian/workspace.json index df6833e..75b8540 100644 --- a/.obsidian/workspace.json +++ b/.obsidian/workspace.json @@ -4,47 +4,59 @@ "type": "split", "children": [ { - "id": "52816fca565e1ce6", + "id": "3337825d2a9e4220", "type": "tabs", "children": [ { - "id": "5fd45b8bad028c1b", + "id": "c40318d9980bd958", "type": "leaf", "state": { "type": "markdown", "state": { - "file": "TIiK/Wykład/Wykład.md", + "file": "TIiK/Wykład/4..md", "mode": "source", "source": false } } }, { - "id": "e3fec04eb728c2e4", + "id": "a1b988384588e7c5", "type": "leaf", "state": { "type": "markdown", "state": { - "file": "TIiK/Wykład/ważne.md", + "file": "AiSD/Ćwiczenia/2. Ćwiczenia.md", "mode": "source", "source": false } } }, { - "id": "164fa34cc1af45c8", + "id": "e26ebdc70b316374", "type": "leaf", "state": { "type": "markdown", "state": { - "file": "Elektrotechnika/Ćwiczenia/20230414102636.md", + "file": "AiSD/Ćwiczenia/3. Złożoność i czynnik sumacyjny.md", + "mode": "source", + "source": false + } + } + }, + { + "id": "db8c5f3feee6da98", + "type": "leaf", + "state": { + "type": "markdown", + "state": { + "file": "EiM/Wykłady/1. Wstęp.md", "mode": "source", "source": false } } } ], - "currentTab": 1 + "currentTab": 2 } ], "direction": "vertical" @@ -110,7 +122,7 @@ "state": { "type": "backlink", "state": { - "file": "TIiK/Wykład/ważne.md", + "file": "AiSD/Ćwiczenia/3. Złożoność i czynnik sumacyjny.md", "collapseAll": false, "extraContext": false, "sortOrder": "alphabetical", @@ -127,7 +139,7 @@ "state": { "type": "outgoing-link", "state": { - "file": "TIiK/Wykład/ważne.md", + "file": "AiSD/Ćwiczenia/3. Złożoność i czynnik sumacyjny.md", "linksCollapsed": false, "unlinkedCollapsed": true } @@ -150,7 +162,7 @@ "state": { "type": "outline", "state": { - "file": "TIiK/Wykład/ważne.md" + "file": "AiSD/Ćwiczenia/3. Złożoność i czynnik sumacyjny.md" } } }, @@ -215,7 +227,8 @@ } ], "direction": "horizontal", - "width": 300 + "width": 300, + "collapsed": true }, "left-ribbon": { "hiddenItems": { @@ -230,42 +243,45 @@ "audio-recorder:Start/stop recording": false, "3d-graph:3D Graph": false, "juggl:Juggl global graph": false, - "obsidian-excalidraw-plugin:Create new drawing": false, - "breadcrumbs:Breadcrumbs Visualisation": false + "obsidian-excalidraw-plugin:Create new drawing": false } }, - "active": "a7fe127a169a5f82", + "active": "e26ebdc70b316374", "lastOpenFiles": [ - "TIiK/Wykład/Wykład.md", - "TIiK/Wykład/ważne.md", - "TIiK/TIiK.md", + "AiSD/Ćwiczenia/2. Ćwiczenia.md", + "AiSD/Ćwiczenia/3. Złożoność i czynnik sumacyjny.md", "AiSD/AiSD.md", + "AMiAL/AMiAL.md", + "AMiAL/Ćwiczenia/Zadania/Całki/Zadanie 5.md", "TC/TC.md", - "EP/EP.md", - "!Załączniki/20230414102636 2023-04-14 10.36.16.excalidraw.md", - "Elektrotechnika/Ćwiczenia/20230414102636.md", - "!Załączniki/20230414102636 2023-04-14 10.34.23.excalidraw.md", - "!Załączniki/20230414102636 2023-04-14 10.26.46.excalidraw.md", - "TC/Wykład/7..md", - "!Załączniki/7. 2023-04-12 11.26.22.excalidraw.md", - "!Załączniki/7. 2023-04-12 09.22.20.excalidraw.md", "TC/Wykład/6. Układy Sekwencyjne.md", - "!Załączniki/7. 2023-04-12 09.20.18.excalidraw.md", - "!Załączniki/7. 2023-04-12 09.15.24.excalidraw.md", "TC/Wykład/Wykład.md", - "!Załączniki/7. 2023-04-12 09.03.55.excalidraw.md", - "TC/Wykład/2. Optymalizacja ze stanem nieokreślonym.md", - "TC/Wykład/1. Optymalizacja.md", - "TC/Wykład/3. ?.md", - "TC/Wykład/4. ?.md", - "TC/Wykład/5..md", - "!Załączniki/7. 2023-04-12 08.50.21.excalidraw.md", - "!Załączniki/7. 2023-04-12 08.31.18.excalidraw.md", - "!Załączniki/7. 2023-04-12 08.17.20.excalidraw.md", + "TC/Ćwiczenia/Untitled.md", + "EiM/Wykłady/1. Wstęp.md", + "TIiK/Wykład/4..md", + "TIiK/Wykład/2..md", + "TIiK/Wykład/3. Łańcuchy markowa.md", + "TIiK/Wykład/Wykład.md", + "TIiK/Ćwiczenia/2. Markow.md", + "TIiK/Ćwiczenia/1. Logarytmy.md", + "TIiK/TIiK.md", + "TC/Ćwiczenia/Ćwiczenia.md", + "EiM/Ćwiczenia/Ćwiczenia.md", + "!Załączniki/Untitled 2023-04-19 10.28.44.excalidraw.md", + "TC/ALGEBRA BOOLOWSKA.md", + "TC/Ćwiczenia/2. Realizacja układów na stykach.md", + "EiM/EiM.md", + "EiM/Ćwiczenia/1. Miernictwo.md", + "!Załączniki/1. Miernictwo 2023-04-18 14.26.51.excalidraw.md", + "!Załączniki/1. Miernictwo 2023-04-18 14.16.53.excalidraw.md", + "!Załączniki/Recording 20230418135018.webm", + "!Załączniki/Recording 20230418134959.webm", + "EiM/Ćwiczenia", + "AMiAL/!Materiały/calki_1.pdf", + "AMiAL/!Materiały/w0_intro.pdf", "!Załączniki/Excalidraw/Scripts/Downloaded/Normalize Selected Arrows.svg", "!Załączniki/Excalidraw/Scripts/Downloaded/Fixed inner distance.svg", "!Załączniki/Excalidraw/Scripts/Downloaded/Alternative Pens.svg", - "AMiAL/!Materiały/calki_1.pdf", "AMiAL/Ćwiczenia/Zadania/Całki_Zast/Zadanie 2.tex", "AMiAL/Ćwiczenia/Zadania/Całki_Zast", "Fizyka/Laboratoria", @@ -278,10 +294,6 @@ "!Załączniki/Excalidraw/Scripts/Downloaded/Elbow connectors.svg", "!Załączniki/Excalidraw/Scripts/Downloaded/Convert freedraw to line.svg", "!Załączniki/Excalidraw/Scripts/Downloaded/Connect elements.svg", - "!Załączniki/Excalidraw/Scripts/Downloaded", - "!Załączniki/Excalidraw/Scripts", - "!Załączniki/Recording 20230307101855.webm", - "!Załączniki/Recording 20230307101521.webm", "TC/Untitled.canvas" ] } \ No newline at end of file diff --git a/AiSD/Ćwiczenia/3. Złożoność i czynnik sumacyjny.md b/AiSD/Ćwiczenia/3. Złożoność i czynnik sumacyjny.md new file mode 100644 index 0000000..ef5b277 --- /dev/null +++ b/AiSD/Ćwiczenia/3. Złożoność i czynnik sumacyjny.md @@ -0,0 +1,3 @@ +ieto + +# 12 diff --git a/EiM/Ćwiczenia/1. Miernictwo.md b/EiM/Ćwiczenia/1. Miernictwo.md new file mode 100644 index 0000000..c55746d --- /dev/null +++ b/EiM/Ćwiczenia/1. Miernictwo.md @@ -0,0 +1,57 @@ +--- +Date: [20230418135227] +--- + +# Błąd bezwzględny +## Zadanie 1 +### Woltomierz wskazówkowy klasy 1 na zakresie pomiarowym $U_N=200V$ wskazał wartość 120 V. Oblicz maksymalny błąd bezwzględny miernika. +$\Updelta=\pm\frac{klasa}{100}\cdot U_{N}=\pm \frac{1}{100}\cdot 200V=\pm 2V$ +$U=120V\pm2V$ +## Zadanie 2 +### Wyznacz maksymalny błąd bezwzględny pomiaru napięcia za pomocą multimetru cyfrowego z wyświetlaczem $3\frac{1}{2}$ cyfry mierzącego napięcie stałe 1V na zakresie 2V gdy producent podaje dokładność $\pm (0.1\%+2dgt)$, $\pm 0.2\%$, $0.2RDG+1LSD$, $0.15\%+2$, $\pm(0.2\%X+0.1\%X_{z})$ +a) +$\pm (0.1\%+2dgt)$ = $\pm(0.1\%\cdot1V+2\cdot 1mV)$ +$U=1V\pm0.003V$ +b) +$\pm (0.2\%)=\pm (0.2\%+1dgt)=\pm 3mV$ +$U=1V\pm0.003V$ +c) RDG -ReaDinG; LSD - Least Significant Digit +------||------- +d) 0.15% z 1V $\pm$ 2 cyfry +3.5mV +e)0.2% z 1V + 0.1% z zakresu (2V)=4mv +# Błąd systematyczny +## Zadanie 3 +### Oblicz błąd systematyczny metody pomiaru rezystancji dla układu: +#### a) Poprawnie mierzonego napięcia + +![[1. Miernictwo 2023-04-18 14.16.53.excalidraw]] +$R_{x}=\cfrac{U_{x}}{I_{x}}=\cfrac{U}{I-I_{v}}$ +$R_{x}'=\frac{U}{I}$ +$\Updelta = R_{x}'-R_{x}= \cfrac{U}{I}- \cfrac{U}{I-I_{V}}=\cfrac{-U\cdot I_{V}}{I(I-I_{V})} = \cfrac{R_x}{R_x+R_V}$ +#### b) Poprawnie mierzonego prądu +![[1. Miernictwo 2023-04-18 14.26.51.excalidraw]] + +$\Updelta=R_{A}$ +Amperomierz to sneaky woltomierz +# Pomiar AB +## Zadanie 4 +### Wyznacz niepewność pomiaru napięcia stałego dokonanego przy użyciu woltomierza cyfrowego 3.5D o dokładności $\pm(0.3\%+1dgt)$ +12.1 12.02 11.92 11.99 12.02 12.01 12.11 11.99 12.00 11.96 *1.96 - błąd gruby* +#### Metoda A: +$\bar x = \frac{1}{N}\sum\limits_{i=1}^{N}x_{i}$ +$\bar{U}= 12.01V$ +$U(x)=\sqrt{\cfrac{\sum\limits_{i=1}^{N}(x_{i}-\bar{x})^{2}}{N(N-1)}}$ +U = uncertainty +$U(x)=\sqrt{\cfrac{(12.10-12.01)^{2}+\textellipsis}{90}}=0.0182V$ +#### Metoda B +$U_{B}(x)=\cfrac{\Delta}{\sqrt{3}}$ +Δ = Max. błąd bezwzględny (0.046V) +U(x)=0.0266V + +#### Niepewność całkowita +$U_{c}=\sqrt{U_{A}(U)^{2}+U_{B}(U)^{2}}$ +W naszym przypadku **0.032V** + +## Zadanie 5 +### Do wyznaczenia mocy prądu stałego wykorzystano woltomierz 3.5 cyfry o dokładności 0.8%+2d na zakresie 20V, który wskazał 12 V, następnie amperomierz 3.5 o dokładności 1.2%+2d na zakresie 400 mA wskazał 320 mA \ No newline at end of file diff --git a/EiM/Ćwiczenia/Untitled.md b/EiM/Ćwiczenia/Untitled.md new file mode 100644 index 0000000..6016abd --- /dev/null +++ b/EiM/Ćwiczenia/Untitled.md @@ -0,0 +1,4 @@ + +![[Recording 20230418134959.webm]] + +![[Recording 20230418135018.webm]] diff --git a/EiM/Ćwiczenia/Ćwiczenia.md b/EiM/Ćwiczenia/Ćwiczenia.md new file mode 100644 index 0000000..072621e --- /dev/null +++ b/EiM/Ćwiczenia/Ćwiczenia.md @@ -0,0 +1,13 @@ +# Ćwiczenia Overview + +## Punktacja: +$$\frac{1}{3}\sum\limits^{3}_{i=1}m_{i}\geqslant3,\ m_{i}=\{2;2.3;2.5;2.7;...5\},\ gdzie\ m_{i}\geqslant2.5$$ +## Tematy kartkówek: +- Miernictwo, charakterystyki częstotliwościowe, tranzystory bipolarne +- Analiza małosygnałowa +- Wzmacniacz operacyjny + +```ccard +type: folder_brief_live +``` + diff --git a/TC/Ćwiczenia/Untitled.md b/TC/Ćwiczenia/Untitled.md new file mode 100644 index 0000000..a964e1f --- /dev/null +++ b/TC/Ćwiczenia/Untitled.md @@ -0,0 +1,78 @@ +Taśmociągiem transportowane są detale o kształcie równoległoboku. Detale są identyczne i mogą być ułożone tylko na dwa sposoby - Skośnie w prawo lub w lewo. krótsza krawędź jest zawsze równoległa do krawędzi taśmociągu. Nad taśmociągiem znajdują się czujniki a i b które dają *1* gdy wykryją detal. + +Zaprojektować układ który ma wyjścia x i y i pokozuje położenie detali + +11 gdy nie ma +00 gdy jest pod czujnikiem + +założenia: +Taśmociąg się nie cofa +Detale rozmieszczone są daleko od siebie +Kształt jest taki że zawsze będzie 00 i 11 + + +```dot +digraph { +bgcolor=transparent; +fontcolor=FFFFFF; +layout=neato; +center=1; +splines=true; +len=3; +rankdir=TB; +node [ shape = circle ]; +edge [len=2] +"wy/01"->"wy/01" [label="00"] +"wx/10"->"wx/10" [label="00"] +"x1/00"->"x1/00" [label="01"] +"wy/01"->"x1/00" [label="01"] +"x1/00"->"x2/00" [label="11"] +"x2/00"->"x2/00" [label="11"] +"x2/00"->"x3/00" [label="10"] +"x3/00"->"x3/00" [label="10"] +"x3/00"->"wx/10" [label="00"] +"wx/10"->"y1/00" [label="10"] +"y1/00"->"y1/00" [label="10"] +"y1/00"->"y2/00" [label="11"] +"y2/00"->"y2/00" [label="11"] +"y2/00"->"y3/00" [label="01"] +"y3/00"->"y3/00" [label="01"] +"y3/00"->"wy/01" [label="00"] +"wx/10"->"x1/00" [label="01", len=4, weight=999] +"wy/01"->"y1/00" [label="10", len=4, weight=999] +} +``` + + +```plantuml +bgcolor=transparent; +fontcolor=FFFFFF; +layout=neato; +center=1; +splines=true; +len=3; +rankdir=TB; +node [ shape = circle ]; +edge [len=2] +"wy/01"->"wy/01" [label="00"] +"wx/10"->"wx/10" [label="00"] +"x1/00"->"x1/00" [label="01"] +"wy/01"->"x1/00" [label="01"] +"x1/00"->"x2/00" [label="11"] +"x2/00"->"x2/00" [label="11"] +"x2/00"->"x3/00" [label="10"] +"x3/00"->"x3/00" [label="10"] +"x3/00"->"wx/10" [label="00"] +"wx/10"->"y1/00" [label="10"] +"y1/00"->"y1/00" [label="10"] +"y1/00"->"y2/00" [label="11"] +"y2/00"->"y2/00" [label="11"] +"y2/00"->"y3/00" [label="01"] +"y3/00"->"y3/00" [label="01"] +"y3/00"->"wy/01" [label="00"] +"wx/10"->"x1/00" [label="01", len=4, weight=999] +"wy/01"->"y1/00" [label="10", len=4, weight=999] +} +``` + +![[Untitled 2023-04-19 10.28.44.excalidraw]] \ No newline at end of file