@jscrpt/common 1.2.0 → 2.0.0-beta.20211108120022
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/changelog.md +24 -0
- package/dist/es2015/decorators/bindThis.decorator.js +24 -24
- package/dist/es2015/decorators/bindThis.decorator.js.map +1 -0
- package/dist/es2015/decorators/callOnce.decorator.js +29 -28
- package/dist/es2015/decorators/callOnce.decorator.js.map +1 -0
- package/dist/es2015/decorators/debounceCall.decorator.js +25 -26
- package/dist/es2015/decorators/debounceCall.decorator.js.map +1 -0
- package/dist/es2015/decorators/index.js +4 -4
- package/dist/es2015/decorators/index.js.map +1 -0
- package/dist/es2015/encoder/encoder.js +220 -231
- package/dist/es2015/encoder/encoder.js.map +1 -0
- package/dist/es2015/enums/index.js +2 -2
- package/dist/es2015/enums/index.js.map +1 -0
- package/dist/es2015/enums/orderByDirection.js +15 -15
- package/dist/es2015/enums/orderByDirection.js.map +1 -0
- package/dist/es2015/index.js +10 -24
- package/dist/es2015/index.js.map +1 -0
- package/dist/es2015/indexNode.js +2 -2
- package/dist/es2015/indexNode.js.map +1 -0
- package/dist/es2015/initJsDevMode.js +8 -0
- package/dist/es2015/initJsDevMode.js.map +1 -0
- package/dist/es2015/jsDevMode.js +8 -8
- package/dist/es2015/jsDevMode.js.map +1 -0
- package/dist/es2015/normalizer/charMaps.js +20 -27
- package/dist/es2015/normalizer/charMaps.js.map +1 -0
- package/dist/es2015/normalizer/index.js +3 -3
- package/dist/es2015/normalizer/index.js.map +1 -0
- package/dist/es2015/normalizer/normalizer.js +14 -14
- package/dist/es2015/normalizer/normalizer.js.map +1 -0
- package/dist/es2015/paginator/paginator.js +230 -224
- package/dist/es2015/paginator/paginator.js.map +1 -0
- package/dist/es2015/types/dictionaries.js +2 -1
- package/dist/es2015/types/dictionaries.js.map +1 -0
- package/dist/es2015/types/enums.js +2 -0
- package/dist/es2015/types/enums.js.map +1 -0
- package/dist/es2015/types/functions.js +2 -0
- package/dist/es2015/types/functions.js.map +1 -0
- package/dist/es2015/types/index.js +5 -3
- package/dist/es2015/types/index.js.map +1 -0
- package/dist/es2015/types/valueNamePair.js +2 -1
- package/dist/es2015/types/valueNamePair.js.map +1 -0
- package/dist/es2015/utils/common.js +209 -215
- package/dist/es2015/utils/common.js.map +1 -0
- package/dist/es2015/utils/index.js +4 -4
- package/dist/es2015/utils/index.js.map +1 -0
- package/dist/es2015/utils/lang.js +79 -79
- package/dist/es2015/utils/lang.js.map +1 -0
- package/dist/es2015/utils/nameof.js +6 -6
- package/dist/es2015/utils/nameof.js.map +1 -0
- package/dist/es2020/decorators/bindThis.decorator.js +23 -0
- package/dist/es2020/decorators/bindThis.decorator.js.map +1 -0
- package/dist/es2020/decorators/callOnce.decorator.js +28 -0
- package/dist/es2020/decorators/callOnce.decorator.js.map +1 -0
- package/dist/es2020/decorators/debounceCall.decorator.js +24 -0
- package/dist/es2020/decorators/debounceCall.decorator.js.map +1 -0
- package/dist/es2020/decorators/index.js +4 -0
- package/dist/es2020/decorators/index.js.map +1 -0
- package/dist/es2020/encoder/encoder.js +220 -0
- package/dist/es2020/encoder/encoder.js.map +1 -0
- package/dist/es2020/enums/index.js +2 -0
- package/dist/es2020/enums/index.js.map +1 -0
- package/dist/es2020/enums/orderByDirection.js +15 -0
- package/dist/es2020/enums/orderByDirection.js.map +1 -0
- package/dist/es2020/index.js +10 -0
- package/dist/es2020/index.js.map +1 -0
- package/dist/es2020/indexNode.js +2 -0
- package/dist/es2020/indexNode.js.map +1 -0
- package/dist/es2020/initJsDevMode.js +8 -0
- package/dist/es2020/initJsDevMode.js.map +1 -0
- package/dist/es2020/jsDevMode.js +8 -0
- package/dist/es2020/jsDevMode.js.map +1 -0
- package/dist/es2020/normalizer/charMaps.js +20 -0
- package/dist/es2020/normalizer/charMaps.js.map +1 -0
- package/dist/es2020/normalizer/index.js +3 -0
- package/dist/es2020/normalizer/index.js.map +1 -0
- package/dist/es2020/normalizer/normalizer.js +14 -0
- package/dist/es2020/normalizer/normalizer.js.map +1 -0
- package/dist/es2020/paginator/paginator.js +230 -0
- package/dist/es2020/paginator/paginator.js.map +1 -0
- package/dist/es2020/types/dictionaries.js +2 -0
- package/dist/es2020/types/dictionaries.js.map +1 -0
- package/dist/es2020/types/enums.js +2 -0
- package/dist/es2020/types/enums.js.map +1 -0
- package/dist/es2020/types/functions.js +2 -0
- package/dist/es2020/types/functions.js.map +1 -0
- package/dist/es2020/types/index.js +5 -0
- package/dist/es2020/types/index.js.map +1 -0
- package/dist/es2020/types/valueNamePair.js +2 -0
- package/dist/es2020/types/valueNamePair.js.map +1 -0
- package/dist/es2020/utils/common.js +208 -0
- package/dist/es2020/utils/common.js.map +1 -0
- package/dist/es2020/utils/index.js +4 -0
- package/dist/es2020/utils/index.js.map +1 -0
- package/dist/es2020/utils/lang.js +79 -0
- package/dist/es2020/utils/lang.js.map +1 -0
- package/dist/es2020/utils/nameof.js +6 -0
- package/dist/es2020/utils/nameof.js.map +1 -0
- package/dist/es5/decorators/bindThis.decorator.js +24 -24
- package/dist/es5/decorators/bindThis.decorator.js.map +1 -0
- package/dist/es5/decorators/callOnce.decorator.js +33 -28
- package/dist/es5/decorators/callOnce.decorator.js.map +1 -0
- package/dist/es5/decorators/debounceCall.decorator.js +30 -27
- package/dist/es5/decorators/debounceCall.decorator.js.map +1 -0
- package/dist/es5/decorators/index.js +4 -4
- package/dist/es5/decorators/index.js.map +1 -0
- package/dist/es5/encoder/encoder.js +222 -233
- package/dist/es5/encoder/encoder.js.map +1 -0
- package/dist/es5/enums/index.js +2 -2
- package/dist/es5/enums/index.js.map +1 -0
- package/dist/es5/enums/orderByDirection.js +15 -15
- package/dist/es5/enums/orderByDirection.js.map +1 -0
- package/dist/es5/index.js +10 -24
- package/dist/es5/index.js.map +1 -0
- package/dist/es5/indexNode.js +2 -2
- package/dist/es5/indexNode.js.map +1 -0
- package/dist/es5/initJsDevMode.js +8 -0
- package/dist/es5/initJsDevMode.js.map +1 -0
- package/dist/es5/jsDevMode.js +8 -8
- package/dist/es5/jsDevMode.js.map +1 -0
- package/dist/es5/normalizer/charMaps.js +20 -35
- package/dist/es5/normalizer/charMaps.js.map +1 -0
- package/dist/es5/normalizer/index.js +3 -3
- package/dist/es5/normalizer/index.js.map +1 -0
- package/dist/es5/normalizer/normalizer.js +14 -14
- package/dist/es5/normalizer/normalizer.js.map +1 -0
- package/dist/es5/paginator/paginator.js +232 -226
- package/dist/es5/paginator/paginator.js.map +1 -0
- package/dist/es5/types/dictionaries.js +2 -1
- package/dist/es5/types/dictionaries.js.map +1 -0
- package/dist/es5/types/enums.js +2 -0
- package/dist/es5/types/enums.js.map +1 -0
- package/dist/es5/types/functions.js +2 -0
- package/dist/es5/types/functions.js.map +1 -0
- package/dist/es5/types/index.js +5 -3
- package/dist/es5/types/index.js.map +1 -0
- package/dist/es5/types/valueNamePair.js +2 -1
- package/dist/es5/types/valueNamePair.js.map +1 -0
- package/dist/es5/utils/common.js +220 -232
- package/dist/es5/utils/common.js.map +1 -0
- package/dist/es5/utils/index.js +4 -4
- package/dist/es5/utils/index.js.map +1 -0
- package/dist/es5/utils/lang.js +79 -79
- package/dist/es5/utils/lang.js.map +1 -0
- package/dist/es5/utils/nameof.js +6 -6
- package/dist/es5/utils/nameof.js.map +1 -0
- package/dist/module/decorators/bindThis.decorator.js +28 -28
- package/dist/module/decorators/bindThis.decorator.js.map +1 -0
- package/dist/module/decorators/callOnce.decorator.js +33 -32
- package/dist/module/decorators/callOnce.decorator.js.map +1 -0
- package/dist/module/decorators/debounceCall.decorator.js +29 -30
- package/dist/module/decorators/debounceCall.decorator.js.map +1 -0
- package/dist/module/decorators/index.js +7 -16
- package/dist/module/decorators/index.js.map +1 -0
- package/dist/module/encoder/encoder.js +224 -235
- package/dist/module/encoder/encoder.js.map +1 -0
- package/dist/module/enums/index.js +5 -14
- package/dist/module/enums/index.js.map +1 -0
- package/dist/module/enums/orderByDirection.js +18 -18
- package/dist/module/enums/orderByDirection.js.map +1 -0
- package/dist/module/index.js +13 -37
- package/dist/module/index.js.map +1 -0
- package/dist/module/indexNode.js +5 -14
- package/dist/module/indexNode.js.map +1 -0
- package/dist/module/initJsDevMode.js +10 -0
- package/dist/module/initJsDevMode.js.map +1 -0
- package/dist/module/jsDevMode.js +12 -12
- package/dist/module/jsDevMode.js.map +1 -0
- package/dist/module/normalizer/charMaps.js +23 -31
- package/dist/module/normalizer/charMaps.js.map +1 -0
- package/dist/module/normalizer/index.js +6 -15
- package/dist/module/normalizer/index.js.map +1 -0
- package/dist/module/normalizer/normalizer.js +18 -18
- package/dist/module/normalizer/normalizer.js.map +1 -0
- package/dist/module/paginator/paginator.js +234 -228
- package/dist/module/paginator/paginator.js.map +1 -0
- package/dist/module/types/dictionaries.js +3 -3
- package/dist/module/types/dictionaries.js.map +1 -0
- package/dist/module/types/enums.js +3 -0
- package/dist/module/types/enums.js.map +1 -0
- package/dist/module/types/functions.js +3 -0
- package/dist/module/types/functions.js.map +1 -0
- package/dist/module/types/index.js +8 -15
- package/dist/module/types/index.js.map +1 -0
- package/dist/module/types/valueNamePair.js +3 -3
- package/dist/module/types/valueNamePair.js.map +1 -0
- package/dist/module/utils/common.js +232 -240
- package/dist/module/utils/common.js.map +1 -0
- package/dist/module/utils/index.js +7 -16
- package/dist/module/utils/index.js.map +1 -0
- package/dist/module/utils/lang.js +99 -99
- package/dist/module/utils/lang.js.map +1 -0
- package/dist/module/utils/nameof.js +10 -9
- package/dist/module/utils/nameof.js.map +1 -0
- package/package.json +45 -16
- package/src/decorators/bindThis.decorator.d.ts +5 -7
- package/src/decorators/bindThis.decorator.d.ts.map +1 -1
- package/src/decorators/callOnce.decorator.d.ts +5 -5
- package/src/decorators/callOnce.decorator.d.ts.map +1 -1
- package/src/decorators/debounceCall.decorator.d.ts +5 -5
- package/src/decorators/debounceCall.decorator.d.ts.map +1 -1
- package/src/decorators/index.d.ts +3 -3
- package/src/encoder/encoder.d.ts +45 -45
- package/src/encoder/encoder.d.ts.map +1 -1
- package/src/enums/index.d.ts +1 -1
- package/src/enums/orderByDirection.d.ts +13 -13
- package/src/index.d.ts +9 -17
- package/src/index.d.ts.map +1 -1
- package/src/indexNode.d.ts +1 -1
- package/src/initJsDevMode.d.ts +2 -0
- package/src/initJsDevMode.d.ts.map +1 -0
- package/src/jsDevMode.d.ts +8 -8
- package/src/jsDevMode.d.ts.map +1 -1
- package/src/normalizer/charMaps.d.ts +5 -9
- package/src/normalizer/charMaps.d.ts.map +1 -1
- package/src/normalizer/index.d.ts +2 -2
- package/src/normalizer/normalizer.d.ts +7 -6
- package/src/normalizer/normalizer.d.ts.map +1 -1
- package/src/paginator/paginator.d.ts +129 -129
- package/src/paginator/paginator.d.ts.map +1 -1
- package/src/types/dictionaries.d.ts +15 -6
- package/src/types/dictionaries.d.ts.map +1 -1
- package/src/types/enums.d.ts +7 -0
- package/src/types/enums.d.ts.map +1 -0
- package/src/types/functions.d.ts +14 -0
- package/src/types/functions.d.ts.map +1 -0
- package/src/types/index.d.ts +4 -2
- package/src/types/index.d.ts.map +1 -1
- package/src/types/valueNamePair.d.ts +13 -13
- package/src/utils/common.d.ts +181 -122
- package/src/utils/common.d.ts.map +1 -1
- package/src/utils/index.d.ts +3 -3
- package/src/utils/lang.d.ts +41 -41
- package/src/utils/lang.d.ts.map +1 -1
- package/src/utils/nameof.d.ts +5 -5
- package/src/utils/nameof.d.ts.map +1 -1
- package/version.bak +1 -1
- package/.jsbeautifyrc +0 -7
- package/appveyor.yml +0 -67
|
@@ -1,233 +1,222 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* A Javascript object to encode and/or decode html characters using HTML or Numeric entities that handles double or partial encoding
|
|
3
|
-
* Author: R Reid
|
|
4
|
-
* source: http://www.strictly-software.com/htmlencode
|
|
5
|
-
* Licences: GPL, The MIT License (MIT)
|
|
6
|
-
* Copyright: (c) 2011 Robert Reid - Strictly-Software.com
|
|
7
|
-
*
|
|
8
|
-
* Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the
|
|
9
|
-
* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
|
10
|
-
* THE SOFTWARE IS PROVIDED
|
|
11
|
-
*
|
|
12
|
-
* Revision:
|
|
13
|
-
* 2011-07-14, Jacques-Yves Bleau:
|
|
14
|
-
* - fixed conversion error with capitalized accentuated characters
|
|
15
|
-
* + converted arr1 and arr2 to object property to remove redundancy
|
|
16
|
-
*
|
|
17
|
-
* Revision:
|
|
18
|
-
* 2011-11-10, Ce-Yi Hio:
|
|
19
|
-
* - fixed conversion error with a number of capitalized entity characters
|
|
20
|
-
*
|
|
21
|
-
* Revision:
|
|
22
|
-
* 2011-11-10, Rob Reid:
|
|
23
|
-
*
|
|
24
|
-
*
|
|
25
|
-
* Revision:
|
|
26
|
-
* 2012-09-23, Alex Oss:
|
|
27
|
-
*
|
|
28
|
-
*/
|
|
29
|
-
var Encoder = /** @class */ (function () {
|
|
30
|
-
function Encoder() {
|
|
31
|
-
// When encoding do we convert characters into html or numerical entities
|
|
32
|
-
this.EncodeType =
|
|
33
|
-
// arrays for conversion from HTML Entities to Numerical values
|
|
34
|
-
this.arr1 = [' ', '¡', '¢', '£', '¤', '¥', '¦', '§', '¨', '©', 'ª', '«', '¬', '­', '®', '¯', '°', '±', '²', '³', '´', 'µ', '¶', '·', '¸', '¹', 'º', '»', '¼', '½', '¾', '¿', 'À', 'Á', 'Â', 'Ã', 'Ä', 'Å', 'Æ', 'Ç', 'È', 'É', 'Ê', 'Ë', 'Ì', 'Í', 'Î', 'Ï', 'Ð', 'Ñ', 'Ò', 'Ó', 'Ô', 'Õ', 'Ö', '×', 'Ø', 'Ù', 'Ú', 'Û', 'Ü', 'Ý', 'Þ', 'ß', 'à', 'á', 'â', 'ã', 'ä', 'å', 'æ', 'ç', 'è', 'é', 'ê', 'ë', 'ì', 'í', 'î', 'ï', 'ð', 'ñ', 'ò', 'ó', 'ô', 'õ', 'ö', '÷', 'ø', 'ù', 'ú', 'û', 'ü', 'ý', 'þ', 'ÿ', '"', '&', '<', '>', 'Œ', 'œ', 'Š', 'š', 'Ÿ', 'ˆ', '˜', ' ', ' ', ' ', '‌', '‍', '‎', '‏', '–', '—', '‘', '’', '‚', '“', '”', '„', '†', '‡', '‰', '‹', '›', '€', 'ƒ', 'Α', 'Β', 'Γ', 'Δ', 'Ε', 'Ζ', 'Η', 'Θ', 'Ι', 'Κ', 'Λ', 'Μ', 'Ν', 'Ξ', 'Ο', 'Π', 'Ρ', 'Σ', 'Τ', 'Υ', 'Φ', 'Χ', 'Ψ', 'Ω', 'α', 'β', 'γ', 'δ', 'ε', 'ζ', 'η', 'θ', 'ι', 'κ', 'λ', 'μ', 'ν', 'ξ', 'ο', 'π', 'ρ', 'ς', 'σ', 'τ', 'υ', 'φ', 'χ', 'ψ', 'ω', 'ϑ', 'ϒ', 'ϖ', '•', '…', '′', '″', '‾', '⁄', '℘', 'ℑ', 'ℜ', '™', 'ℵ', '←', '↑', '→', '↓', '↔', '↵', '⇐', '⇑', '⇒', '⇓', '⇔', '∀', '∂', '∃', '∅', '∇', '∈', '∉', '∋', '∏', '∑', '−', '∗', '√', '∝', '∞', '∠', '∧', '∨', '∩', '∪', '∫', '∴', '∼', '≅', '≈', '≠', '≡', '≤', '≥', '⊂', '⊃', '⊄', '⊆', '⊇', '⊕', '⊗', '⊥', '⋅', '⌈', '⌉', '⌊', '⌋', '⟨', '⟩', '◊', '♠', '♣', '♥', '♦'];
|
|
35
|
-
this.arr2 = [' ', '¡', '¢', '£', '¤', '¥', '¦', '§', '¨', '©', 'ª', '«', '¬', '­', '®', '¯', '°', '±', '²', '³', '´', 'µ', '¶', '·', '¸', '¹', 'º', '»', '¼', '½', '¾', '¿', 'À', 'Á', 'Â', 'Ã', 'Ä', 'Å', 'Æ', 'Ç', 'È', 'É', 'Ê', 'Ë', 'Ì', 'Í', 'Î', 'Ï', 'Ð', 'Ñ', 'Ò', 'Ó', 'Ô', 'Õ', 'Ö', '×', 'Ø', 'Ù', 'Ú', 'Û', 'Ü', 'Ý', 'Þ', 'ß', 'à', 'á', 'â', 'ã', 'ä', 'å', 'æ', 'ç', 'è', 'é', 'ê', 'ë', 'ì', 'í', 'î', 'ï', 'ð', 'ñ', 'ò', 'ó', 'ô', 'õ', 'ö', '÷', 'ø', 'ù', 'ú', 'û', 'ü', 'ý', 'þ', 'ÿ', '"', '&', '<', '>', 'Œ', 'œ', 'Š', 'š', 'Ÿ', 'ˆ', '˜', ' ', ' ', ' ', '‌', '‍', '‎', '‏', '–', '—', '‘', '’', '‚', '“', '”', '„', '†', '‡', '‰', '‹', '›', '€', 'ƒ', 'Α', 'Β', 'Γ', 'Δ', 'Ε', 'Ζ', 'Η', 'Θ', 'Ι', 'Κ', 'Λ', 'Μ', 'Ν', 'Ξ', 'Ο', 'Π', 'Ρ', 'Σ', 'Τ', 'Υ', 'Φ', 'Χ', 'Ψ', 'Ω', 'α', 'β', 'γ', 'δ', 'ε', 'ζ', 'η', 'θ', 'ι', 'κ', 'λ', 'μ', 'ν', 'ξ', 'ο', 'π', 'ρ', 'ς', 'σ', 'τ', 'υ', 'φ', 'χ', 'ψ', 'ω', 'ϑ', 'ϒ', 'ϖ', '•', '…', '′', '″', '‾', '⁄', '℘', 'ℑ', 'ℜ', '™', 'ℵ', '←', '↑', '→', '↓', '↔', '↵', '⇐', '⇑', '⇒', '⇓', '⇔', '∀', '∂', '∃', '∅', '∇', '∈', '∉', '∋', '∏', '∑', '−', '∗', '√', '∝', '∞', '∠', '∧', '∨', '∩', '∪', '∫', '∴', '∼', '≅', '≈', '≠', '≡', '≤', '≥', '⊂', '⊃', '⊄', '⊆', '⊇', '⊕', '⊗', '⊥', '⋅', '⌈', '⌉', '⌊', '⌋', '〈', '〉', '◊', '♠', '♣', '♥', '♦'];
|
|
36
|
-
}
|
|
37
|
-
Encoder.prototype.isEmpty = function (val) {
|
|
38
|
-
if (val) {
|
|
39
|
-
return ((val === null) || val.length == 0 || /^\s+$/.test(val));
|
|
40
|
-
}
|
|
41
|
-
else {
|
|
42
|
-
return true;
|
|
43
|
-
}
|
|
44
|
-
};
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
a.push(
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
}
|
|
82
|
-
//
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
if
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
//
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
if (
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
s = s.replace(
|
|
163
|
-
s = s.replace(
|
|
164
|
-
s = s.replace(/</g,
|
|
165
|
-
s = s.replace(/>/g,
|
|
166
|
-
}
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
return
|
|
177
|
-
}
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
;
|
|
193
|
-
//
|
|
194
|
-
Encoder.prototype.
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
for (var i = 0, x = arr.length; i < x; i++) {
|
|
224
|
-
if (arr[i] === item) {
|
|
225
|
-
return i;
|
|
226
|
-
}
|
|
227
|
-
}
|
|
228
|
-
return -1;
|
|
229
|
-
};
|
|
230
|
-
return Encoder;
|
|
231
|
-
}());
|
|
232
|
-
export { Encoder };
|
|
233
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5jb2Rlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbmNvZGVyL2VuY29kZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTJCRztBQUVIO0lBQUE7UUFFQyx5RUFBeUU7UUFDekUsZUFBVSxHQUFXLFFBQVEsQ0FBQyxDQUFFLHNCQUFzQjtRQWN0RCwrREFBK0Q7UUFDL0QsU0FBSSxHQUFhLENBQUMsUUFBUSxFQUFDLFNBQVMsRUFBQyxRQUFRLEVBQUMsU0FBUyxFQUFDLFVBQVUsRUFBQyxPQUFPLEVBQUMsVUFBVSxFQUFDLFFBQVEsRUFBQyxPQUFPLEVBQUMsUUFBUSxFQUFDLFFBQVEsRUFBQyxTQUFTLEVBQUMsT0FBTyxFQUFDLE9BQU8sRUFBQyxPQUFPLEVBQUMsUUFBUSxFQUFDLE9BQU8sRUFBQyxVQUFVLEVBQUMsUUFBUSxFQUFDLFFBQVEsRUFBQyxTQUFTLEVBQUMsU0FBUyxFQUFDLFFBQVEsRUFBQyxVQUFVLEVBQUMsU0FBUyxFQUFDLFFBQVEsRUFBQyxRQUFRLEVBQUMsU0FBUyxFQUFDLFVBQVUsRUFBQyxVQUFVLEVBQUMsVUFBVSxFQUFDLFVBQVUsRUFBQyxVQUFVLEVBQUMsVUFBVSxFQUFDLFNBQVMsRUFBQyxVQUFVLEVBQUMsUUFBUSxFQUFDLFNBQVMsRUFBQyxTQUFTLEVBQUMsVUFBVSxFQUFDLFVBQVUsRUFBQyxVQUFVLEVBQUMsU0FBUyxFQUFDLFFBQVEsRUFBQyxVQUFVLEVBQUMsVUFBVSxFQUFDLFNBQVMsRUFBQyxRQUFRLEVBQUMsT0FBTyxFQUFDLFVBQVUsRUFBQyxVQUFVLEVBQUMsVUFBVSxFQUFDLFNBQVMsRUFBQyxVQUFVLEVBQUMsUUFBUSxFQUFDLFNBQVMsRUFBQyxVQUFVLEVBQUMsVUFBVSxFQUFDLFVBQVUsRUFBQyxTQUFTLEVBQUMsUUFBUSxFQUFDLFVBQVUsRUFBQyxTQUFTLEVBQUMsU0FBUyxFQUFDLFVBQVUsRUFBQyxVQUFVLEVBQUMsU0FBUyxFQUFDLFVBQVUsRUFBQyxRQUFRLEVBQUMsU0FBUyxFQUFDLFNBQVMsRUFBQyxVQUFVLEVBQUMsVUFBVSxFQUFDLFVBQVUsRUFBQyxTQUFTLEVBQUMsUUFBUSxFQUFDLFVBQVUsRUFBQyxVQUFVLEVBQUMsU0FBUyxFQUFDLFFBQVEsRUFBQyxPQUFPLEVBQUMsVUFBVSxFQUFDLFVBQVUsRUFBQyxVQUFVLEVBQUMsU0FBUyxFQUFDLFVBQVUsRUFBQyxRQUFRLEVBQUMsVUFBVSxFQUFDLFVBQVUsRUFBQyxVQUFVLEVBQUMsVUFBVSxFQUFDLFNBQVMsRUFBQyxRQUFRLEVBQUMsVUFBVSxFQUFDLFNBQVMsRUFBQyxRQUFRLEVBQUMsUUFBUSxFQUFDLE9BQU8sRUFBQyxNQUFNLEVBQUMsTUFBTSxFQUFDLFNBQVMsRUFBQyxTQUFTLEVBQUMsVUFBVSxFQUFDLFVBQVUsRUFBQyxRQUFRLEVBQUMsUUFBUSxFQUFDLFNBQVMsRUFBQyxRQUFRLEVBQUMsUUFBUSxFQUFDLFVBQVUsRUFBQyxRQUFRLEVBQUMsT0FBTyxFQUFDLE9BQU8sRUFBQyxPQUFPLEVBQUMsU0FBUyxFQUFDLFNBQVMsRUFBQyxTQUFTLEVBQUMsU0FBUyxFQUFDLFNBQVMsRUFBQyxTQUFTLEVBQUMsU0FBUyxFQUFDLFNBQVMsRUFBQyxVQUFVLEVBQUMsVUFBVSxFQUFDLFVBQVUsRUFBQyxVQUFVLEVBQUMsVUFBVSxFQUFDLFFBQVEsRUFBQyxRQUFRLEVBQUMsU0FBUyxFQUFDLFFBQVEsRUFBQyxTQUFTLEVBQUMsU0FBUyxFQUFDLFdBQVcsRUFBQyxRQUFRLEVBQUMsT0FBTyxFQUFDLFNBQVMsRUFBQyxRQUFRLEVBQUMsU0FBUyxFQUFDLFVBQVUsRUFBQyxNQUFNLEVBQUMsTUFBTSxFQUFDLE1BQU0sRUFBQyxXQUFXLEVBQUMsTUFBTSxFQUFDLE9BQU8sRUFBQyxTQUFTLEVBQUMsT0FBTyxFQUFDLFdBQVcsRUFBQyxPQUFPLEVBQUMsT0FBTyxFQUFDLE9BQU8sRUFBQyxTQUFTLEVBQUMsU0FBUyxFQUFDLFFBQVEsRUFBQyxTQUFTLEVBQUMsU0FBUyxFQUFDLFdBQVcsRUFBQyxRQUFRLEVBQUMsT0FBTyxFQUFDLFNBQVMsRUFBQyxRQUFRLEVBQUMsU0FBUyxFQUFDLFVBQVUsRUFBQyxNQUFNLEVBQUMsTUFBTSxFQUFDLE1BQU0sRUFBQyxXQUFXLEVBQUMsTUFBTSxFQUFDLE9BQU8sRUFBQyxVQUFVLEVBQUMsU0FBUyxFQUFDLE9BQU8sRUFBQyxXQUFXLEVBQUMsT0FBTyxFQUFDLE9BQU8sRUFBQyxPQUFPLEVBQUMsU0FBUyxFQUFDLFlBQVksRUFBQyxTQUFTLEVBQUMsT0FBTyxFQUFDLFFBQVEsRUFBQyxVQUFVLEVBQUMsU0FBUyxFQUFDLFNBQVMsRUFBQyxTQUFTLEVBQUMsU0FBUyxFQUFDLFVBQVUsRUFBQyxTQUFTLEVBQUMsUUFBUSxFQUFDLFNBQVMsRUFBQyxXQUFXLEVBQUMsUUFBUSxFQUFDLFFBQVEsRUFBQyxRQUFRLEVBQUMsUUFBUSxFQUFDLFFBQVEsRUFBQyxTQUFTLEVBQUMsUUFBUSxFQUFDLFFBQVEsRUFBQyxRQUFRLEVBQUMsUUFBUSxFQUFDLFFBQVEsRUFBQyxVQUFVLEVBQUMsUUFBUSxFQUFDLFNBQVMsRUFBQyxTQUFTLEVBQUMsU0FBUyxFQUFDLFFBQVEsRUFBQyxTQUFTLEVBQUMsTUFBTSxFQUFDLFFBQVEsRUFBQyxPQUFPLEVBQUMsU0FBUyxFQUFDLFVBQVUsRUFBQyxTQUFTLEVBQUMsUUFBUSxFQUFDLFNBQVMsRUFBQyxPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0sRUFBQyxPQUFPLEVBQUMsT0FBTyxFQUFDLE9BQU8sRUFBQyxVQUFVLEVBQUMsT0FBTyxFQUFDLFFBQVEsRUFBQyxTQUFTLEVBQUMsTUFBTSxFQUFDLFNBQVMsRUFBQyxNQUFNLEVBQUMsTUFBTSxFQUFDLE9BQU8sRUFBQyxPQUFPLEVBQUMsUUFBUSxFQUFDLFFBQVEsRUFBQyxRQUFRLEVBQUMsU0FBUyxFQUFDLFVBQVUsRUFBQyxRQUFRLEVBQUMsUUFBUSxFQUFDLFNBQVMsRUFBQyxTQUFTLEVBQUMsVUFBVSxFQUFDLFVBQVUsRUFBQyxRQUFRLEVBQUMsUUFBUSxFQUFDLE9BQU8sRUFBQyxVQUFVLEVBQUMsU0FBUyxFQUFDLFVBQVUsRUFBQyxTQUFTLENBQUMsQ0FBQztRQUMzNEUsU0FBSSxHQUFhLENBQUMsUUFBUSxFQUFDLFFBQVEsRUFBQyxRQUFRLEVBQUMsUUFBUSxFQUFDLFFBQVEsRUFBQyxRQUFRLEVBQUMsUUFBUSxFQUFDLFFBQVEsRUFBQyxRQUFRLEVBQUMsUUFBUSxFQUFDLFFBQVEsRUFBQyxRQUFRLEVBQUMsUUFBUSxFQUFDLFFBQVEsRUFBQyxRQUFRLEVBQUMsUUFBUSxFQUFDLFFBQVEsRUFBQyxRQUFRLEVBQUMsUUFBUSxFQUFDLFFBQVEsRUFBQyxRQUFRLEVBQUMsUUFBUSxFQUFDLFFBQVEsRUFBQyxRQUFRLEVBQUMsUUFBUSxFQUFDLFFBQVEsRUFBQyxRQUFRLEVBQUMsUUFBUSxFQUFDLFFBQVEsRUFBQyxRQUFRLEVBQUMsUUFBUSxFQUFDLFFBQVEsRUFBQyxRQUFRLEVBQUMsUUFBUSxFQUFDLFFBQVEsRUFBQyxRQUFRLEVBQUMsUUFBUSxFQUFDLFFBQVEsRUFBQyxRQUFRLEVBQUMsUUFBUSxFQUFDLFFBQVEsRUFBQyxRQUFRLEVBQUMsUUFBUSxFQUFDLFFBQVEsRUFBQyxRQUFRLEVBQUMsUUFBUSxFQUFDLFFBQVEsRUFBQyxRQUFRLEVBQUMsUUFBUSxFQUFDLFFBQVEsRUFBQyxRQUFRLEVBQUMsUUFBUSxFQUFDLFFBQVEsRUFBQyxRQUFRLEVBQUMsUUFBUSxFQUFDLFFBQVEsRUFBQyxRQUFRLEVBQUMsUUFBUSxFQUFDLFFBQVEsRUFBQyxRQUFRLEVBQUMsUUFBUSxFQUFDLFFBQVEsRUFBQyxRQUFRLEVBQUMsUUFBUSxFQUFDLFFBQVEsRUFBQyxRQUFRLEVBQUMsUUFBUSxFQUFDLFFBQVEsRUFBQyxRQUFRLEVBQUMsUUFBUSxFQUFDLFFBQVEsRUFBQyxRQUFRLEVBQUMsUUFBUSxFQUFDLFFBQVEsRUFBQyxRQUFRLEVBQUMsUUFBUSxFQUFDLFFBQVEsRUFBQyxRQUFRLEVBQUMsUUFBUSxFQUFDLFFBQVEsRUFBQyxRQUFRLEVBQUMsUUFBUSxFQUFDLFFBQVEsRUFBQyxRQUFRLEVBQUMsUUFBUSxFQUFDLFFBQVEsRUFBQyxRQUFRLEVBQUMsUUFBUSxFQUFDLFFBQVEsRUFBQyxRQUFRLEVBQUMsUUFBUSxFQUFDLFFBQVEsRUFBQyxRQUFRLEVBQUMsUUFBUSxFQUFDLFFBQVEsRUFBQyxRQUFRLEVBQUMsT0FBTyxFQUFDLE9BQU8sRUFBQyxPQUFPLEVBQUMsT0FBTyxFQUFDLFFBQVEsRUFBQyxRQUFRLEVBQUMsUUFBUSxFQUFDLFFBQVEsRUFBQyxRQUFRLEVBQUMsUUFBUSxFQUFDLFFBQVEsRUFBQyxTQUFTLEVBQUMsU0FBUyxFQUFDLFNBQVMsRUFBQyxTQUFTLEVBQUMsU0FBUyxFQUFDLFNBQVMsRUFBQyxTQUFTLEVBQUMsU0FBUyxFQUFDLFNBQVMsRUFBQyxTQUFTLEVBQUMsU0FBUyxFQUFDLFNBQVMsRUFBQyxTQUFTLEVBQUMsU0FBUyxFQUFDLFNBQVMsRUFBQyxTQUFTLEVBQUMsU0FBUyxFQUFDLFNBQVMsRUFBQyxTQUFTLEVBQUMsU0FBUyxFQUFDLFNBQVMsRUFBQyxRQUFRLEVBQUMsUUFBUSxFQUFDLFFBQVEsRUFBQyxRQUFRLEVBQUMsUUFBUSxFQUFDLFFBQVEsRUFBQyxRQUFRLEVBQUMsUUFBUSxFQUFDLFFBQVEsRUFBQyxRQUFRLEVBQUMsUUFBUSxFQUFDLFFBQVEsRUFBQyxRQUFRLEVBQUMsUUFBUSxFQUFDLFFBQVEsRUFBQyxRQUFRLEVBQUMsUUFBUSxFQUFDLFFBQVEsRUFBQyxRQUFRLEVBQUMsUUFBUSxFQUFDLFFBQVEsRUFBQyxRQUFRLEVBQUMsUUFBUSxFQUFDLFFBQVEsRUFBQyxRQUFRLEVBQUMsUUFBUSxFQUFDLFFBQVEsRUFBQyxRQUFRLEVBQUMsUUFBUSxFQUFDLFFBQVEsRUFBQyxRQUFRLEVBQUMsUUFBUSxFQUFDLFFBQVEsRUFBQyxRQUFRLEVBQUMsUUFBUSxFQUFDLFFBQVEsRUFBQyxRQUFRLEVBQUMsUUFBUSxFQUFDLFFBQVEsRUFBQyxRQUFRLEVBQUMsUUFBUSxFQUFDLFFBQVEsRUFBQyxRQUFRLEVBQUMsUUFBUSxFQUFDLFFBQVEsRUFBQyxRQUFRLEVBQUMsUUFBUSxFQUFDLFFBQVEsRUFBQyxRQUFRLEVBQUMsUUFBUSxFQUFDLFFBQVEsRUFBQyxRQUFRLEVBQUMsUUFBUSxFQUFDLFNBQVMsRUFBQyxTQUFTLEVBQUMsU0FBUyxFQUFDLFNBQVMsRUFBQyxTQUFTLEVBQUMsU0FBUyxFQUFDLFNBQVMsRUFBQyxTQUFTLEVBQUMsU0FBUyxFQUFDLFNBQVMsRUFBQyxTQUFTLEVBQUMsU0FBUyxFQUFDLFNBQVMsRUFBQyxTQUFTLEVBQUMsU0FBUyxFQUFDLFNBQVMsRUFBQyxTQUFTLEVBQUMsU0FBUyxFQUFDLFNBQVMsRUFBQyxTQUFTLEVBQUMsU0FBUyxFQUFDLFNBQVMsRUFBQyxTQUFTLEVBQUMsU0FBUyxFQUFDLFNBQVMsRUFBQyxTQUFTLEVBQUMsU0FBUyxFQUFDLFNBQVMsRUFBQyxTQUFTLEVBQUMsU0FBUyxFQUFDLFNBQVMsRUFBQyxTQUFTLEVBQUMsU0FBUyxFQUFDLFNBQVMsRUFBQyxTQUFTLEVBQUMsU0FBUyxFQUFDLFNBQVMsRUFBQyxTQUFTLEVBQUMsU0FBUyxFQUFDLFNBQVMsRUFBQyxTQUFTLEVBQUMsU0FBUyxFQUFDLFNBQVMsRUFBQyxTQUFTLEVBQUMsU0FBUyxFQUFDLFNBQVMsRUFBQyxTQUFTLEVBQUMsU0FBUyxFQUFDLFNBQVMsRUFBQyxTQUFTLEVBQUMsU0FBUyxFQUFDLFNBQVMsRUFBQyxTQUFTLEVBQUMsU0FBUyxFQUFDLFNBQVMsRUFBQyxTQUFTLEVBQUMsU0FBUyxFQUFDLFNBQVMsRUFBQyxTQUFTLEVBQUMsU0FBUyxFQUFDLFNBQVMsRUFBQyxTQUFTLEVBQUMsU0FBUyxFQUFDLFNBQVMsRUFBQyxTQUFTLEVBQUMsU0FBUyxFQUFDLFNBQVMsRUFBQyxTQUFTLEVBQUMsU0FBUyxFQUFDLFNBQVMsRUFBQyxTQUFTLENBQUMsQ0FBQztJQW1ReDBFLENBQUM7SUFqUkEseUJBQU8sR0FBUCxVQUFRLEdBQU87UUFFZCxJQUFHLEdBQUcsRUFDQTtZQUNMLE9BQU8sQ0FBQyxDQUFD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QUM7QUFBRCxDQUFDLEFBdFJELElBc1JDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIEEgSmF2YXNjcmlwdCBvYmplY3QgdG8gZW5jb2RlIGFuZC9vciBkZWNvZGUgaHRtbCBjaGFyYWN0ZXJzIHVzaW5nIEhUTUwgb3IgTnVtZXJpYyBlbnRpdGllcyB0aGF0IGhhbmRsZXMgZG91YmxlIG9yIHBhcnRpYWwgZW5jb2RpbmdcclxuICogQXV0aG9yOiBSIFJlaWRcclxuICogc291cmNlOiBodHRwOi8vd3d3LnN0cmljdGx5LXNvZnR3YXJlLmNvbS9odG1sZW5jb2RlXHJcbiAqIExpY2VuY2VzOiBHUEwsIFRoZSBNSVQgTGljZW5zZSAoTUlUKVxyXG4gKiBDb3B5cmlnaHQ6IChjKSAyMDExIFJvYmVydCBSZWlkIC0gU3RyaWN0bHktU29mdHdhcmUuY29tXHJcbiAqXHJcbiAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XHJcbiAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxyXG4gKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS5cclxuICpcclxuICogUmV2aXNpb246XHJcbiAqICAyMDExLTA3LTE0LCBKYWNxdWVzLVl2ZXMgQmxlYXU6XHJcbiAqICAgICAgIC0gZml4ZWQgY29udmVyc2lvbiBlcnJvciB3aXRoIGNhcGl0YWxpemVkIGFjY2VudHVhdGVkIGNoYXJhY3RlcnNcclxuICogICAgICAgKyBjb252ZXJ0ZWQgYXJyMSBhbmQgYXJyMiB0byBvYmplY3QgcHJvcGVydHkgdG8gcmVtb3ZlIHJlZHVuZGFuY3lcclxuICpcclxuICogUmV2aXNpb246XHJcbiAqICAyMDExLTExLTEwLCBDZS1ZaSBIaW86XHJcbiAqICAgICAgIC0gZml4ZWQgY29udmVyc2lvbiBlcnJvciB3aXRoIGEgbnVtYmVyIG9mIGNhcGl0YWxpemVkIGVudGl0eSBjaGFyYWN0ZXJzXHJcbiAqXHJcbiAqIFJldmlzaW9uOlxyXG4gKiAgMjAxMS0xMS0xMCwgUm9iIFJlaWQ6XHJcbiAqXHRcdCAtIGNoYW5nZWQgYXJyYXkgZm9ybWF0XHJcbiAqXHJcbiAqIFJldmlzaW9uOlxyXG4gKiAgMjAxMi0wOS0yMywgQWxleCBPc3M6XHJcbiAqXHRcdCAtIHJlcGxhY2VkIHN0cmluZyBjb25jYXRvbmF0aW9uIGluIG51bUVuY29kZSB3aXRoIHN0cmluZyBidWlsZGVyLCBwdXNoIGFuZCBqb2luIGZvciBwZWZvcm1hbmNlIHdpdGggYW1tZW5kbWVudHMgYnkgUm9iIFJlaWRcclxuICovXHJcblxyXG5leHBvcnQgY2xhc3MgRW5jb2RlclxyXG57XHJcblx0Ly8gV2hlbiBlbmNvZGluZyBkbyB3ZSBjb252ZXJ0IGNoYXJhY3RlcnMgaW50byBodG1sIG9yIG51bWVyaWNhbCBlbnRpdGllc1xyXG5cdEVuY29kZVR5cGU6IHN0cmluZyA9IFwiZW50aXR5XCI7ICAvLyBlbnRpdHkgT1IgbnVtZXJpY2FsXHJcblxyXG5cdGlzRW1wdHkodmFsOmFueSlcclxuICAgIHtcclxuXHRcdGlmKHZhbClcclxuICAgICAgICB7XHJcblx0XHRcdHJldHVybiAoKHZhbD09PW51bGwpIHx8IHZhbC5sZW5ndGg9PTAgfHwgL15cXHMrJC8udGVzdCh2YWwpKTtcclxuXHRcdH1cclxuICAgICAgICBlbHNlXHJcbiAgICAgICAge1xyXG5cdFx0XHRyZXR1cm4gdHJ1ZTtcclxuXHRcdH1cclxuXHR9O1xyXG5cclxuXHQvLyBhcnJheXMgZm9yIGNvbnZlcnNpb24gZnJvbSBIVE1MIEVudGl0aWVzIHRvIE51bWVyaWNhbCB2YWx1ZXNcclxuXHRhcnIxOiBzdHJpbmdbXSA9IFsnJm5ic3A7JywnJmlleGNsOycsJyZjZW50OycsJyZwb3VuZDsnLCcmY3VycmVuOycsJyZ5ZW47JywnJmJydmJhcjsnLCcmc2VjdDsnLCcmdW1sOycsJyZjb3B5OycsJyZvcmRmOycsJyZsYXF1bzsnLCcmbm90OycsJyZzaHk7JywnJnJlZzsnLCcmbWFjcjsnLCcmZGVnOycsJyZwbHVzbW47JywnJnN1cDI7JywnJnN1cDM7JywnJmFjdXRlOycsJyZtaWNybzsnLCcmcGFyYTsnLCcmbWlkZG90OycsJyZjZWRpbDsnLCcmc3VwMTsnLCcmb3JkbTsnLCcmcmFxdW87JywnJmZyYWMxNDsnLCcmZnJhYzEyOycsJyZmcmFjMzQ7JywnJmlxdWVzdDsnLCcmQWdyYXZlOycsJyZBYWN1dGU7JywnJkFjaXJjOycsJyZBdGlsZGU7JywnJkF1bWw7JywnJkFyaW5nOycsJyZBRWxpZzsnLCcmQ2NlZGlsOycsJyZFZ3JhdmU7JywnJkVhY3V0ZTsnLCcmRWNpcmM7JywnJkV1bWw7JywnJklncmF2ZTsnLCcmSWFjdXRlOycsJyZJY2lyYzsnLCcmSXVtbDsnLCcmRVRIOycsJyZOdGlsZGU7JywnJk9ncmF2ZTsnLCcmT2FjdXRlOycsJyZPY2lyYzsnLCcmT3RpbGRlOycsJyZPdW1sOycsJyZ0aW1lczsnLCcmT3NsYXNoOycsJyZVZ3JhdmU7JywnJlVhY3V0ZTsnLCcmVWNpcmM7JywnJlV1bWw7JywnJllhY3V0ZTsnLCcmVEhPUk47JywnJnN6bGlnOycsJyZhZ3JhdmU7JywnJmFhY3V0ZTsnLCcmYWNpcmM7JywnJmF0aWxkZTsnLCcmYXVtbDsnLCcmYXJpbmc7JywnJmFlbGlnOycsJyZjY2VkaWw7JywnJmVncmF2ZTsnLCcmZWFjdXRlOycsJyZlY2lyYzsnLCcmZXVtbDsnLCcmaWdyYXZlOycsJyZpYWN1dGU7JywnJmljaXJjOycsJyZpdW1sOycsJyZldGg7JywnJm50aWxkZTsnLCcmb2dyYXZlOycsJyZvYWN1dGU7JywnJm9jaXJjOycsJyZvdGlsZGU7JywnJm91bWw7JywnJmRpdmlkZTsnLCcmb3NsYXNoOycsJyZ1Z3JhdmU7JywnJnVhY3V0ZTsnLCcmdWNpcmM7JywnJnV1bWw7JywnJnlhY3V0ZTsnLCcmdGhvcm47JywnJnl1bWw7JywnJnF1b3Q7JywnJmFtcDsnLCcmbHQ7JywnJmd0OycsJyZPRWxpZzsnLCcmb2VsaWc7JywnJlNjYXJvbjsnLCcmc2Nhcm9uOycsJyZZdW1sOycsJyZjaXJjOycsJyZ0aWxkZTsnLCcmZW5zcDsnLCcmZW1zcDsnLCcmdGhpbnNwOycsJyZ6d25qOycsJyZ6d2o7JywnJmxybTsnLCcmcmxtOycsJyZuZGFzaDsnLCcmbWRhc2g7JywnJmxzcXVvOycsJyZyc3F1bzsnLCcmc2JxdW87JywnJmxkcXVvOycsJyZyZHF1bzsnLCcmYmRxdW87JywnJmRhZ2dlcjsnLCcmRGFnZ2VyOycsJyZwZXJtaWw7JywnJmxzYXF1bzsnLCcmcnNhcXVvOycsJyZldXJvOycsJyZmbm9mOycsJyZBbHBoYTsnLCcmQmV0YTsnLCcmR2FtbWE7JywnJkRlbHRhOycsJyZFcHNpbG9uOycsJyZaZXRhOycsJyZFdGE7JywnJlRoZXRhOycsJyZJb3RhOycsJyZLYXBwYTsnLCcmTGFtYmRhOycsJyZNdTsnLCcmTnU7JywnJlhpOycsJyZPbWljcm9uOycsJyZQaTsnLCcmUmhvOycsJyZTaWdtYTsnLCcmVGF1OycsJyZVcHNpbG9uOycsJyZQaGk7JywnJkNoaTsnLCcmUHNpOycsJyZPbWVnYTsnLCcmYWxwaGE7JywnJmJldGE7JywnJmdhbW1hOycsJyZkZWx0YTsnLCcmZXBzaWxvbjsnLCcmemV0YTsnLCcmZXRhOycsJyZ0aGV0YTsnLCcmaW90YTsnLCcma2FwcGE7JywnJmxhbWJkYTsnLCcmbXU7JywnJm51OycsJyZ4aTsnLCcmb21pY3JvbjsnLCcmcGk7JywnJnJobzsnLCcmc2lnbWFmOycsJyZzaWdtYTsnLCcmdGF1OycsJyZ1cHNpbG9uOycsJyZwaGk7JywnJmNoaTsnLCcmcHNpOycsJyZvbWVnYTsnLCcmdGhldGFzeW07JywnJnVwc2loOycsJyZwaXY7JywnJmJ1bGw7JywnJmhlbGxpcDsnLCcmcHJpbWU7JywnJlByaW1lOycsJyZvbGluZTsnLCcmZnJhc2w7JywnJndlaWVycDsnLCcmaW1hZ2U7JywnJnJlYWw7JywnJnRyYWRlOycsJyZhbGVmc3ltOycsJyZsYXJyOycsJyZ1YXJyOycsJyZyYXJyOycsJyZkYXJyOycsJyZoYXJyOycsJyZjcmFycjsnLCcmbEFycjsnLCcmdUFycjsnLCcmckFycjsnLCcmZEFycjsnLCcmaEFycjsnLCcmZm9yYWxsOycsJyZwYXJ0OycsJyZleGlzdDsnLCcmZW1wdHk7JywnJm5hYmxhOycsJyZpc2luOycsJyZub3RpbjsnLCcmbmk7JywnJnByb2Q7JywnJnN1bTsnLCcmbWludXM7JywnJmxvd2FzdDsnLCcmcmFkaWM7JywnJnByb3A7JywnJmluZmluOycsJyZhbmc7JywnJmFuZDsnLCcmb3I7JywnJmNhcDsnLCcmY3VwOycsJyZpbnQ7JywnJnRoZXJlNDsnLCcmc2ltOycsJyZjb25nOycsJyZhc3ltcDsnLCcmbmU7JywnJmVxdWl2OycsJyZsZTsnLCcmZ2U7JywnJnN1YjsnLCcmc3VwOycsJyZuc3ViOycsJyZzdWJlOycsJyZzdXBlOycsJyZvcGx1czsnLCcmb3RpbWVzOycsJyZwZXJwOycsJyZzZG90OycsJyZsY2VpbDsnLCcmcmNlaWw7JywnJmxmbG9vcjsnLCcmcmZsb29yOycsJyZsYW5nOycsJyZyYW5nOycsJyZsb3o7JywnJnNwYWRlczsnLCcmY2x1YnM7JywnJmhlYXJ0czsnLCcmZGlhbXM7J107XHJcblx0YXJyMjogc3RyaW5nW10gPSBbJyYjMTYwOycsJyYjMTYxOycsJyYjMTYyOycsJyYjMTYzOycsJyYjMTY0OycsJyYjMTY1OycsJyYjMTY2OycsJyYjMTY3OycsJyYjMTY4OycsJyYjMTY5OycsJyYjMTcwOycsJyYjMTcxOycsJyYjMTcyOycsJyYjMTczOycsJyYjMTc0OycsJyYjMTc1OycsJyYjMTc2OycsJyYjMTc3OycsJyYjMTc4OycsJyYjMTc5OycsJyYjMTgwOycsJyYjMTgxOycsJyYjMTgyOycsJyYjMTgzOycsJyYjMTg0OycsJyYjMTg1OycsJyYjMTg2OycsJyYjMTg3OycsJyYjMTg4OycsJyYjMTg5OycsJyYjMTkwOycsJyYjMTkxOycsJyYjMTkyOycsJyYjMTkzOycsJyYjMTk0OycsJyYjMTk1OycsJyYjMTk2OycsJyYjMTk3OycsJyYjMTk4OycsJyYjMTk5OycsJyYjMjAwOycsJyYjMjAxOycsJyYjMjAyOycsJyYjMjAzOycsJyYjMjA0OycsJyYjMjA1OycsJyYjMjA2OycsJyYjMjA3OycsJyYjMjA4OycsJyYjMjA5OycsJyYjMjEwOycsJyYjMjExOycsJyYjMjEyOycsJyYjMjEzOycsJyYjMjE0OycsJyYjMjE1OycsJyYjMjE2OycsJyYjMjE3OycsJyYjMjE4OycsJyYjMjE5OycsJyYjMjIwOycsJyYjMjIxOycsJyYjMjIyOycsJyYjMjIzOycsJyYjMjI0OycsJyYjMjI1OycsJyYjMjI2OycsJyYjMjI3OycsJyYjMjI4OycsJyYjMjI5OycsJyYjMjMwOycsJyYjMjMxOycsJyYjMjMyOycsJyYjMjMzOycsJyYjMjM0OycsJyYjMjM1OycsJyYjMjM2OycsJyYjMjM3OycsJyYjMjM4OycsJyYjMjM5OycsJyYjMjQwOycsJyYjMjQxOycsJyYjMjQyOycsJyYjMjQzOycsJyYjMjQ0OycsJyYjMjQ1OycsJyYjMjQ2OycsJyYjMjQ3OycsJyYjMjQ4OycsJyYjMjQ5OycsJyYjMjUwOycsJyYjMjUxOycsJyYjMjUyOycsJyYjMjUzOycsJyYjMjU0OycsJyYjMjU1OycsJyYjMzQ7JywnJiMzODsnLCcmIzYwOycsJyYjNjI7JywnJiMzMzg7JywnJiMzMzk7JywnJiMzNTI7JywnJiMzNTM7JywnJiMzNzY7JywnJiM3MTA7JywnJiM3MzI7JywnJiM4MTk0OycsJyYjODE5NTsnLCcmIzgyMDE7JywnJiM4MjA0OycsJyYjODIwNTsnLCcmIzgyMDY7JywnJiM4MjA3OycsJyYjODIxMTsnLCcmIzgyMTI7JywnJiM4MjE2OycsJyYjODIxNzsnLCcmIzgyMTg7JywnJiM4MjIwOycsJyYjODIyMTsnLCcmIzgyMjI7JywnJiM4MjI0OycsJyYjODIyNTsnLCcmIzgyNDA7JywnJiM4MjQ5OycsJyYjODI1MDsnLCcmIzgzNjQ7JywnJiM0MDI7JywnJiM5MTM7JywnJiM5MTQ7JywnJiM5MTU7JywnJiM5MTY7JywnJiM5MTc7JywnJiM5MTg7JywnJiM5MTk7JywnJiM5MjA7JywnJiM5MjE7JywnJiM5MjI7JywnJiM5MjM7JywnJiM5MjQ7JywnJiM5MjU7JywnJiM5MjY7JywnJiM5Mjc7JywnJiM5Mjg7JywnJiM5Mjk7JywnJiM5MzE7JywnJiM5MzI7JywnJiM5MzM7JywnJiM5MzQ7JywnJiM5MzU7JywnJiM5MzY7JywnJiM5Mzc7JywnJiM5NDU7JywnJiM5NDY7JywnJiM5NDc7JywnJiM5NDg7JywnJiM5NDk7JywnJiM5NTA7JywnJiM5NTE7JywnJiM5NTI7JywnJiM5NTM7JywnJiM5NTQ7JywnJiM5NTU7JywnJiM5NTY7JywnJiM5NTc7JywnJiM5NTg7JywnJiM5NTk7JywnJiM5NjA7JywnJiM5NjE7JywnJiM5NjI7JywnJiM5NjM7JywnJiM5NjQ7JywnJiM5NjU7JywnJiM5NjY7JywnJiM5Njc7JywnJiM5Njg7JywnJiM5Njk7JywnJiM5Nzc7JywnJiM5Nzg7JywnJiM5ODI7JywnJiM4MjI2OycsJyYjODIzMDsnLCcmIzgyNDI7JywnJiM4MjQzOycsJyYjODI1NDsnLCcmIzgyNjA7JywnJiM4NDcyOycsJyYjODQ2NTsnLCcmIzg0NzY7JywnJiM4NDgyOycsJyYjODUwMTsnLCcmIzg1OTI7JywnJiM4NTkzOycsJyYjODU5NDsnLCcmIzg1OTU7JywnJiM4NTk2OycsJyYjODYyOTsnLCcmIzg2NTY7JywnJiM4NjU3OycsJyYjODY1ODsnLCcmIzg2NTk7JywnJiM4NjYwOycsJyYjODcwNDsnLCcmIzg3MDY7JywnJiM4NzA3OycsJyYjODcwOTsnLCcmIzg3MTE7JywnJiM4NzEyOycsJyYjODcxMzsnLCcmIzg3MTU7JywnJiM4NzE5OycsJyYjODcyMTsnLCcmIzg3MjI7JywnJiM4NzI3OycsJyYjODczMDsnLCcmIzg3MzM7JywnJiM4NzM0OycsJyYjODczNjsnLCcmIzg3NDM7JywnJiM4NzQ0OycsJyYjODc0NTsnLCcmIzg3NDY7JywnJiM4NzQ3OycsJyYjODc1NjsnLCcmIzg3NjQ7JywnJiM4NzczOycsJyYjODc3NjsnLCcmIzg4MDA7JywnJiM4ODAxOycsJyYjODgwNDsnLCcmIzg4MDU7JywnJiM4ODM0OycsJyYjODgzNTsnLCcmIzg4MzY7JywnJiM4ODM4OycsJyYjODgzOTsnLCcmIzg4NTM7JywnJiM4ODU1OycsJyYjODg2OTsnLCcmIzg5MDE7JywnJiM4OTY4OycsJyYjODk2OTsnLCcmIzg5NzA7JywnJiM4OTcxOycsJyYjOTAwMTsnLCcmIzkwMDI7JywnJiM5Njc0OycsJyYjOTgyNDsnLCcmIzk4Mjc7JywnJiM5ODI5OycsJyYjOTgzMDsnXTtcclxuXHJcblx0Ly8gQ29udmVydCBIVE1MIGVudGl0aWVzIGludG8gbnVtZXJpY2FsIGVudGl0aWVzXHJcblx0SFRNTDJOdW1lcmljYWwoczphbnkpXHJcbiAgICB7XHJcblx0XHRyZXR1cm4gdGhpcy5zd2FwQXJyYXlWYWxzKHMsIHRoaXMuYXJyMSwgdGhpcy5hcnIyKTtcclxuXHR9O1xyXG5cclxuXHQvLyBDb252ZXJ0IE51bWVyaWNhbCBlbnRpdGllcyBpbnRvIEhUTUwgZW50aXRpZXNcclxuXHROdW1lcmljYWxUb0hUTUwoczphbnkpXHJcbiAgICB7XHJcblx0XHRyZXR1cm4gdGhpcy5zd2FwQXJyYXlWYWxzKHMsIHRoaXMuYXJyMiwgdGhpcy5hcnIxKTtcclxuXHR9O1xyXG5cclxuXHJcblx0Ly8gTnVtZXJpY2FsbHkgZW5jb2RlcyBhbGwgdW5pY29kZSBjaGFyYWN0ZXJzXHJcblx0bnVtRW5jb2RlKHM6YW55KVxyXG4gICAge1xyXG5cdFx0aWYodGhpcy5pc0VtcHR5KHMpKVxyXG4gICAgICAgIHsgXHJcbiAgICAgICAgICAgIHJldHVybiBcIlwiO1xyXG4gICAgICAgIH1cclxuXHJcblx0XHR2YXIgYSA9IFtdLFxyXG5cdFx0XHRsID0gcy5sZW5ndGg7XHJcblxyXG5cdFx0Zm9yICh2YXIgaT0wOyBpIDwgbDsgaSsrKVxyXG4gICAgICAgIHtcclxuXHRcdFx0dmFyIGMgPSBzLmNoYXJBdChpKTtcclxuXHRcdFx0XHJcbiAgICAgICAgICAgIGlmIChjIDwgXCIgXCIgfHwgYyA+IFwiflwiKVxyXG4gICAgICAgICAgICB7XHJcblx0XHRcdFx0YS5wdXNoKFwiJiNcIik7XHJcblx0XHRcdFx0YS5wdXNoKGMuY2hhckNvZGVBdCgpKTsgLy9udW1lcmljIHZhbHVlIG9mIGNvZGUgcG9pbnRcclxuXHRcdFx0XHRhLnB1c2goXCI7XCIpO1xyXG5cdFx0XHR9XHJcbiAgICAgICAgICAgIGVsc2VcclxuICAgICAgICAgICAge1xyXG5cdFx0XHRcdGEucHVzaChjKTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cclxuXHRcdHJldHVybiBhLmpvaW4oXCJcIik7XHJcblx0fTtcclxuXHJcblx0Ly8gSFRNTCBEZWNvZGUgbnVtZXJpY2FsIGFuZCBIVE1MIGVudGl0aWVzIGJhY2sgdG8gb3JpZ2luYWwgdmFsdWVzXHJcblx0aHRtbERlY29kZShzOmFueSlcclxuICAgIHtcclxuXHRcdHZhciBjLG0sZCA9IHM7XHJcblxyXG5cdFx0aWYodGhpcy5pc0VtcHR5KGQpKSBcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHJldHVybiBcIlwiO1xyXG4gICAgICAgIH1cclxuXHJcblx0XHQvLyBjb252ZXJ0IEhUTUwgZW50aXRlcyBiYWNrIHRvIG51bWVyaWNhbCBlbnRpdGVzIGZpcnN0XHJcblx0XHRkID0gdGhpcy5IVE1MMk51bWVyaWNhbChkKTtcclxuXHJcblx0XHQvLyBsb29rIGZvciBudW1lcmljYWwgZW50aXRpZXMgJiMzNDtcclxuXHRcdHZhciBhcnIgPSBkLm1hdGNoKC8mI1swLTldezEsNX07L2cpO1xyXG5cclxuXHRcdC8vIGlmIG5vIG1hdGNoZXMgZm91bmQgaW4gc3RyaW5nIHRoZW4gc2tpcFxyXG5cdFx0aWYoYXJyIT1udWxsKVxyXG4gICAgICAgIHtcclxuXHRcdFx0Zm9yKHZhciB4PTA7IHggPCBhcnIubGVuZ3RoOyB4KyspXHJcbiAgICAgICAgICAgIHtcclxuXHRcdFx0XHRtID0gYXJyW3hdO1xyXG5cdFx0XHRcdGMgPSBtLnN1YnN0cmluZygyLG0ubGVuZ3RoLTEpOyAvL2dldCBudW1lcmljIHBhcnQgd2hpY2ggaXMgcmVmZXJuY2UgdG8gdW5pY29kZSBjaGFyYWN0ZXJcclxuXHRcdFx0XHQvLyBpZiBpdHMgYSB2YWxpZCBudW1iZXIgd2UgY2FuIGRlY29kZVxyXG5cdFx0XHRcdGlmKGMgPj0gLTMyNzY4ICYmIGMgPD0gNjU1MzUpXHJcbiAgICAgICAgICAgICAgICB7XHJcblx0XHRcdFx0XHQvLyBkZWNvZGUgZXZlcnkgc2luZ2xlIG1hdGNoIHdpdGhpbiBzdHJpbmdcclxuXHRcdFx0XHRcdGQgPSBkLnJlcGxhY2UobSwgU3RyaW5nLmZyb21DaGFyQ29kZShjKSk7XHJcblx0XHRcdFx0fVxyXG4gICAgICAgICAgICAgICAgZWxzZVxyXG4gICAgICAgICAgICAgICAge1xyXG5cdFx0XHRcdFx0ZCA9IGQucmVwbGFjZShtLCBcIlwiKTsgLy9pbnZhbGlkIHNvIHJlcGxhY2Ugd2l0aCBuYWRhXHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblxyXG5cdFx0cmV0dXJuIGQ7XHJcblx0fTtcclxuXHJcblx0Ly8gZW5jb2RlIGFuIGlucHV0IHN0cmluZyBpbnRvIGVpdGhlciBudW1lcmljYWwgb3IgSFRNTCBlbnRpdGllc1xyXG5cdGh0bWxFbmNvZGUoczphbnksIGRibDphbnkpXHJcbiAgICB7XHJcblx0XHRpZih0aGlzLmlzRW1wdHkocykpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICByZXR1cm4gXCJcIjtcclxuICAgICAgICB9XHJcblxyXG5cdFx0Ly8gZG8gd2UgYWxsb3cgZG91YmxlIGVuY29kaW5nPyBFLmcgd2lsbCAmYW1wOyBiZSB0dXJuZWQgaW50byAmYW1wO2FtcDtcclxuXHRcdGRibCA9IGRibCB8fCBmYWxzZTsgLy9kZWZhdWx0IHRvIHByZXZlbnQgZG91YmxlIGVuY29kaW5nXHJcblxyXG5cdFx0Ly8gaWYgYWxsb3dpbmcgZG91YmxlIGVuY29kaW5nIHdlIGRvIGFtcGVyc2FuZHMgZmlyc3RcclxuXHRcdGlmKGRibClcclxuICAgICAgICB7XHJcblx0XHRcdGlmKHRoaXMuRW5jb2RlVHlwZT09XCJudW1lcmljYWxcIilcclxuICAgICAgICAgICAge1xyXG5cdFx0XHRcdHMgPSBzLnJlcGxhY2UoLyYvZywgXCImIzM4O1wiKTtcclxuXHRcdFx0fVxyXG4gICAgICAgICAgICBlbHNlXHJcbiAgICAgICAgICAgIHtcclxuXHRcdFx0XHRzID0gcy5yZXBsYWNlKC8mL2csIFwiJmFtcDtcIik7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHJcblx0XHQvLyBjb252ZXJ0IHRoZSB4c3MgY2hhcnMgdG8gbnVtZXJpY2FsIGVudGl0aWVzICcgXCIgPCA+XHJcblx0XHRzID0gdGhpcy5YU1NFbmNvZGUocyxmYWxzZSk7XHJcblxyXG5cdFx0aWYodGhpcy5FbmNvZGVUeXBlPT1cIm51bWVyaWNhbFwiIHx8ICFkYmwpXHJcbiAgICAgICAge1xyXG5cdFx0XHQvLyBOb3cgY2FsbCBmdW5jdGlvbiB0aGF0IHdpbGwgY29udmVydCBhbnkgSFRNTCBlbnRpdGllcyB0byBudW1lcmljYWwgY29kZXNcclxuXHRcdFx0cyA9IHRoaXMuSFRNTDJOdW1lcmljYWwocyk7XHJcblx0XHR9XHJcblxyXG5cdFx0Ly8gTm93IGVuY29kZSBhbGwgY2hhcnMgYWJvdmUgMTI3IGUuZyB1bmljb2RlXHJcblx0XHRzID0gdGhpcy5udW1FbmNvZGUocyk7XHJcblxyXG5cdFx0Ly8gbm93IHdlIGtub3cgYW55dGhpbmcgdGhhdCBuZWVkcyB0byBiZSBlbmNvZGVkIGhhcyBiZWVuIGNvbnZlcnRlZCB0byBudW1lcmljYWwgZW50aXRpZXMgd2VcclxuXHRcdC8vIGNhbiBlbmNvZGUgYW55IGFtcGVyc2FuZHMgJiB0aGF0IGFyZSBub3QgcGFydCBvZiBlbmNvZGVkIGVudGl0aWVzXHJcblx0XHQvLyB0byBoYW5kbGUgdGhlIGZhY3QgdGhhdCBJIG5lZWQgdG8gZG8gYSBuZWdhdGl2ZSBjaGVjayBhbmQgaGFuZGxlIG11bHRpcGxlIGFtcGVyc2FuZHMgJiYmXHJcblx0XHQvLyBJIGFtIGdvaW5nIHRvIHVzZSBhIHBsYWNlaG9sZGVyXHJcblxyXG5cdFx0Ly8gaWYgd2UgZG9uJ3Qgd2FudCBkb3VibGUgZW5jb2RlZCBlbnRpdGllcyB3ZSBpZ25vcmUgdGhlICYgaW4gZXhpc3RpbmcgZW50aXRpZXNcclxuXHRcdGlmKCFkYmwpXHJcbiAgICAgICAge1xyXG5cdFx0XHRzID0gcy5yZXBsYWNlKC8mIy9nLFwiIyNBTVBIQVNIIyNcIik7XHJcblxyXG5cdFx0XHRpZih0aGlzLkVuY29kZVR5cGU9PVwibnVtZXJpY2FsXCIpXHJcbiAgICAgICAgICAgIHtcclxuXHRcdFx0XHRzID0gcy5yZXBsYWNlKC8mL2csIFwiJiMzODtcIik7XHJcblx0XHRcdH1cclxuICAgICAgICAgICAgZWxzZVxyXG4gICAgICAgICAgICB7XHJcblx0XHRcdFx0cyA9IHMucmVwbGFjZSgvJi9nLCBcIiZhbXA7XCIpO1xyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHRzID0gcy5yZXBsYWNlKC8jI0FNUEhBU0gjIy9nLFwiJiNcIik7XHJcblx0XHR9XHJcblxyXG5cdFx0Ly8gcmVwbGFjZSBhbnkgbWFsZm9ybWVkIGVudGl0aWVzXHJcblx0XHRzID0gcy5yZXBsYWNlKC8mI1xcZCooW15cXGQ7XXwkKS9nLCBcIiQxXCIpO1xyXG5cclxuXHRcdGlmKCFkYmwpXHJcbiAgICAgICAge1xyXG5cdFx0XHQvLyBzYWZldHkgY2hlY2sgdG8gY29ycmVjdCBhbnkgZG91YmxlIGVuY29kZWQgJmFtcDtcclxuXHRcdFx0cyA9IHRoaXMuY29ycmVjdEVuY29kaW5nKHMpO1xyXG5cdFx0fVxyXG5cclxuXHRcdC8vIG5vdyBkbyB3ZSBuZWVkIHRvIGNvbnZlcnQgb3VyIG51bWVyaWNhbCBlbmNvZGVkIHN0cmluZyBpbnRvIGVudGl0aWVzXHJcblx0XHRpZih0aGlzLkVuY29kZVR5cGU9PVwiZW50aXR5XCIpXHJcbiAgICAgICAge1xyXG5cdFx0XHRzID0gdGhpcy5OdW1lcmljYWxUb0hUTUwocyk7XHJcblx0XHR9XHJcblxyXG5cdFx0cmV0dXJuIHM7XHJcblx0fTtcclxuXHJcblx0Ly8gRW5jb2RlcyB0aGUgYmFzaWMgNCBjaGFyYWN0ZXJzIHVzZWQgdG8gbWFsZm9ybSBIVE1MIGluIFhTUyBoYWNrc1xyXG5cdFhTU0VuY29kZShzOmFueSxlbjphbnkpXHJcbiAgICB7XHJcblx0XHRpZighdGhpcy5pc0VtcHR5KHMpKVxyXG4gICAgICAgIHtcclxuXHRcdFx0ZW4gPSBlbiB8fCB0cnVlO1xyXG5cdFx0XHQvLyBkbyB3ZSBjb252ZXJ0IHRvIG51bWVyaWNhbCBvciBodG1sIGVudGl0eT9cclxuXHRcdFx0aWYoZW4pXHJcbiAgICAgICAgICAgIHtcclxuXHRcdFx0XHRzID0gcy5yZXBsYWNlKC9cXCcvZyxcIiYjMzk7XCIpOyAvL25vIEhUTUwgZXF1aXZhbGVudCBhcyAmYXBvcyBpcyBub3QgY3Jvc3MgYnJvd3NlciBzdXBwb3J0ZWRcclxuXHRcdFx0XHRzID0gcy5yZXBsYWNlKC9cXFwiL2csXCImcXVvdDtcIik7XHJcblx0XHRcdFx0cyA9IHMucmVwbGFjZSgvPC9nLFwiJmx0O1wiKTtcclxuXHRcdFx0XHRzID0gcy5yZXBsYWNlKC8+L2csXCImZ3Q7XCIpO1xyXG5cdFx0XHR9XHJcbiAgICAgICAgICAgIGVsc2VcclxuICAgICAgICAgICAge1xyXG5cdFx0XHRcdHMgPSBzLnJlcGxhY2UoL1xcJy9nLFwiJiMzOTtcIik7IC8vbm8gSFRNTCBlcXVpdmFsZW50IGFzICZhcG9zIGlzIG5vdCBjcm9zcyBicm93c2VyIHN1cHBvcnRlZFxyXG5cdFx0XHRcdHMgPSBzLnJlcGxhY2UoL1xcXCIvZyxcIiYjMzQ7XCIpO1xyXG5cdFx0XHRcdHMgPSBzLnJlcGxhY2UoLzwvZyxcIiYjNjA7XCIpO1xyXG5cdFx0XHRcdHMgPSBzLnJlcGxhY2UoLz4vZyxcIiYjNjI7XCIpO1xyXG5cdFx0XHR9XHJcbiAgICAgICAgICAgIFxyXG5cdFx0XHRyZXR1cm4gcztcclxuXHRcdH1cclxuICAgICAgICBlbHNlXHJcbiAgICAgICAge1xyXG5cdFx0XHRyZXR1cm4gXCJcIjtcclxuXHRcdH1cclxuXHR9O1xyXG5cclxuXHQvLyByZXR1cm5zIHRydWUgaWYgYSBzdHJpbmcgY29udGFpbnMgaHRtbCBvciBudW1lcmljYWwgZW5jb2RlZCBlbnRpdGllc1xyXG5cdGhhc0VuY29kZWQoczphbnkpXHJcbiAgICB7XHJcblx0XHRpZigvJiNbMC05XXsxLDV9Oy9nLnRlc3QocykpXHJcbiAgICAgICAge1xyXG5cdFx0XHRyZXR1cm4gdHJ1ZTtcclxuXHRcdH1cclxuICAgICAgICBlbHNlIGlmKC8mW0EtWl17Miw2fTsvZ2kudGVzdChzKSlcclxuICAgICAgICB7XHJcblx0XHRcdHJldHVybiB0cnVlO1xyXG5cdFx0fVxyXG4gICAgICAgIGVsc2VcclxuICAgICAgICB7XHJcblx0XHRcdHJldHVybiBmYWxzZTtcclxuXHRcdH1cclxuXHR9O1xyXG5cclxuXHQvLyB3aWxsIHJlbW92ZSBhbnkgdW5pY29kZSBjaGFyYWN0ZXJzXHJcblx0c3RyaXBVbmljb2RlKHM6YW55KVxyXG4gICAge1xyXG5cdFx0cmV0dXJuIHMucmVwbGFjZSgvW15cXHgyMC1cXHg3RV0vZyxcIlwiKTtcclxuXHR9O1xyXG5cclxuXHQvLyBjb3JyZWN0cyBhbnkgZG91YmxlIGVuY29kZWQgJmFtcDsgZW50aXRpZXMgZS5nICZhbXA7YW1wO1xyXG5cdGNvcnJlY3RFbmNvZGluZyhzOmFueSlcclxuICAgIHtcclxuXHRcdHJldHVybiBzLnJlcGxhY2UoLygmYW1wOykoYW1wOykrLyxcIiQxXCIpO1xyXG5cdH07XHJcblxyXG5cdC8vIEZ1bmN0aW9uIHRvIGxvb3AgdGhyb3VnaCBhbiBhcnJheSBzd2FwaW5nIGVhY2ggaXRlbSB3aXRoIHRoZSB2YWx1ZSBmcm9tIGFub3RoZXIgYXJyYXkgZS5nIHN3YXAgSFRNTCBlbnRpdGllcyB3aXRoIE51bWVyaWNhbHNcclxuXHRzd2FwQXJyYXlWYWxzKHM6YW55LGFycjE6YW55LGFycjI6YW55KVxyXG4gICAge1xyXG5cdFx0aWYodGhpcy5pc0VtcHR5KHMpKVxyXG4gICAgICAgIHsgXHJcbiAgICAgICAgICAgIHJldHVybiBcIlwiO1xyXG4gICAgICAgIH1cclxuICAgICAgICBcclxuXHRcdHZhciByZTtcclxuICAgICAgICBcclxuXHRcdGlmKGFycjEgJiYgYXJyMilcclxuICAgICAgICB7XHJcblx0XHRcdC8vU2hvd0RlYnVnKFwiaW4gc3dhcEFycmF5VmFscyBhcnIxLmxlbmd0aCA9IFwiICsgYXJyMS5sZW5ndGggKyBcIiBhcnIyLmxlbmd0aCA9IFwiICsgYXJyMi5sZW5ndGgpXHJcblx0XHRcdC8vIGFycmF5IGxlbmd0aHMgbXVzdCBtYXRjaFxyXG5cdFx0XHRpZihhcnIxLmxlbmd0aCA9PSBhcnIyLmxlbmd0aClcclxuICAgICAgICAgICAge1xyXG5cdFx0XHRcdGZvcih2YXIgeD0wLCBpID0gYXJyMS5sZW5ndGg7IHggPCBpOyB4KyspXHJcbiAgICAgICAgICAgICAgICB7XHJcblx0XHRcdFx0XHRyZSA9IG5ldyBSZWdFeHAoYXJyMVt4XSwgJ2cnKTtcclxuXHRcdFx0XHRcdHMgPSBzLnJlcGxhY2UocmUsYXJyMlt4XSk7IC8vc3dhcCBhcnIxIGl0ZW0gd2l0aCBtYXRjaGluZyBpdGVtIGZyb20gYXJyMlxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG4gICAgICAgIFxyXG5cdFx0cmV0dXJuIHM7XHJcblx0fTtcclxuXHJcblx0aW5BcnJheSggaXRlbTphbnksIGFycjphbnkgKSBcclxuICAgIHtcclxuXHRcdGZvciAoIHZhciBpID0gMCwgeCA9IGFyci5sZW5ndGg7IGkgPCB4OyBpKysgKVxyXG4gICAgICAgIHtcclxuXHRcdFx0aWYgKCBhcnJbaV0gPT09IGl0ZW0gKVxyXG4gICAgICAgICAgICB7XHJcblx0XHRcdFx0cmV0dXJuIGk7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuICAgICAgICBcclxuXHRcdHJldHVybiAtMTtcclxuXHR9XHJcblxyXG59XHJcbiJdfQ==
|
|
1
|
+
/**
|
|
2
|
+
* A Javascript object to encode and/or decode html characters using HTML or Numeric entities that handles double or partial encoding
|
|
3
|
+
* Author: R Reid
|
|
4
|
+
* source: http://www.strictly-software.com/htmlencode
|
|
5
|
+
* Licences: GPL, The MIT License (MIT)
|
|
6
|
+
* Copyright: (c) 2011 Robert Reid - Strictly-Software.com
|
|
7
|
+
*
|
|
8
|
+
* Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
|
9
|
+
* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
|
10
|
+
* THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
11
|
+
*
|
|
12
|
+
* Revision:
|
|
13
|
+
* 2011-07-14, Jacques-Yves Bleau:
|
|
14
|
+
* - fixed conversion error with capitalized accentuated characters
|
|
15
|
+
* + converted arr1 and arr2 to object property to remove redundancy
|
|
16
|
+
*
|
|
17
|
+
* Revision:
|
|
18
|
+
* 2011-11-10, Ce-Yi Hio:
|
|
19
|
+
* - fixed conversion error with a number of capitalized entity characters
|
|
20
|
+
*
|
|
21
|
+
* Revision:
|
|
22
|
+
* 2011-11-10, Rob Reid:
|
|
23
|
+
* - changed array format
|
|
24
|
+
*
|
|
25
|
+
* Revision:
|
|
26
|
+
* 2012-09-23, Alex Oss:
|
|
27
|
+
* - replaced string concatonation in numEncode with string builder, push and join for peformance with ammendments by Rob Reid
|
|
28
|
+
*/
|
|
29
|
+
var Encoder = /** @class */ (function () {
|
|
30
|
+
function Encoder() {
|
|
31
|
+
// When encoding do we convert characters into html or numerical entities
|
|
32
|
+
this.EncodeType = 'entity'; // entity OR numerical
|
|
33
|
+
// arrays for conversion from HTML Entities to Numerical values
|
|
34
|
+
this.arr1 = [' ', '¡', '¢', '£', '¤', '¥', '¦', '§', '¨', '©', 'ª', '«', '¬', '­', '®', '¯', '°', '±', '²', '³', '´', 'µ', '¶', '·', '¸', '¹', 'º', '»', '¼', '½', '¾', '¿', 'À', 'Á', 'Â', 'Ã', 'Ä', 'Å', 'Æ', 'Ç', 'È', 'É', 'Ê', 'Ë', 'Ì', 'Í', 'Î', 'Ï', 'Ð', 'Ñ', 'Ò', 'Ó', 'Ô', 'Õ', 'Ö', '×', 'Ø', 'Ù', 'Ú', 'Û', 'Ü', 'Ý', 'Þ', 'ß', 'à', 'á', 'â', 'ã', 'ä', 'å', 'æ', 'ç', 'è', 'é', 'ê', 'ë', 'ì', 'í', 'î', 'ï', 'ð', 'ñ', 'ò', 'ó', 'ô', 'õ', 'ö', '÷', 'ø', 'ù', 'ú', 'û', 'ü', 'ý', 'þ', 'ÿ', '"', '&', '<', '>', 'Œ', 'œ', 'Š', 'š', 'Ÿ', 'ˆ', '˜', ' ', ' ', ' ', '‌', '‍', '‎', '‏', '–', '—', '‘', '’', '‚', '“', '”', '„', '†', '‡', '‰', '‹', '›', '€', 'ƒ', 'Α', 'Β', 'Γ', 'Δ', 'Ε', 'Ζ', 'Η', 'Θ', 'Ι', 'Κ', 'Λ', 'Μ', 'Ν', 'Ξ', 'Ο', 'Π', 'Ρ', 'Σ', 'Τ', 'Υ', 'Φ', 'Χ', 'Ψ', 'Ω', 'α', 'β', 'γ', 'δ', 'ε', 'ζ', 'η', 'θ', 'ι', 'κ', 'λ', 'μ', 'ν', 'ξ', 'ο', 'π', 'ρ', 'ς', 'σ', 'τ', 'υ', 'φ', 'χ', 'ψ', 'ω', 'ϑ', 'ϒ', 'ϖ', '•', '…', '′', '″', '‾', '⁄', '℘', 'ℑ', 'ℜ', '™', 'ℵ', '←', '↑', '→', '↓', '↔', '↵', '⇐', '⇑', '⇒', '⇓', '⇔', '∀', '∂', '∃', '∅', '∇', '∈', '∉', '∋', '∏', '∑', '−', '∗', '√', '∝', '∞', '∠', '∧', '∨', '∩', '∪', '∫', '∴', '∼', '≅', '≈', '≠', '≡', '≤', '≥', '⊂', '⊃', '⊄', '⊆', '⊇', '⊕', '⊗', '⊥', '⋅', '⌈', '⌉', '⌊', '⌋', '⟨', '⟩', '◊', '♠', '♣', '♥', '♦'];
|
|
35
|
+
this.arr2 = [' ', '¡', '¢', '£', '¤', '¥', '¦', '§', '¨', '©', 'ª', '«', '¬', '­', '®', '¯', '°', '±', '²', '³', '´', 'µ', '¶', '·', '¸', '¹', 'º', '»', '¼', '½', '¾', '¿', 'À', 'Á', 'Â', 'Ã', 'Ä', 'Å', 'Æ', 'Ç', 'È', 'É', 'Ê', 'Ë', 'Ì', 'Í', 'Î', 'Ï', 'Ð', 'Ñ', 'Ò', 'Ó', 'Ô', 'Õ', 'Ö', '×', 'Ø', 'Ù', 'Ú', 'Û', 'Ü', 'Ý', 'Þ', 'ß', 'à', 'á', 'â', 'ã', 'ä', 'å', 'æ', 'ç', 'è', 'é', 'ê', 'ë', 'ì', 'í', 'î', 'ï', 'ð', 'ñ', 'ò', 'ó', 'ô', 'õ', 'ö', '÷', 'ø', 'ù', 'ú', 'û', 'ü', 'ý', 'þ', 'ÿ', '"', '&', '<', '>', 'Œ', 'œ', 'Š', 'š', 'Ÿ', 'ˆ', '˜', ' ', ' ', ' ', '‌', '‍', '‎', '‏', '–', '—', '‘', '’', '‚', '“', '”', '„', '†', '‡', '‰', '‹', '›', '€', 'ƒ', 'Α', 'Β', 'Γ', 'Δ', 'Ε', 'Ζ', 'Η', 'Θ', 'Ι', 'Κ', 'Λ', 'Μ', 'Ν', 'Ξ', 'Ο', 'Π', 'Ρ', 'Σ', 'Τ', 'Υ', 'Φ', 'Χ', 'Ψ', 'Ω', 'α', 'β', 'γ', 'δ', 'ε', 'ζ', 'η', 'θ', 'ι', 'κ', 'λ', 'μ', 'ν', 'ξ', 'ο', 'π', 'ρ', 'ς', 'σ', 'τ', 'υ', 'φ', 'χ', 'ψ', 'ω', 'ϑ', 'ϒ', 'ϖ', '•', '…', '′', '″', '‾', '⁄', '℘', 'ℑ', 'ℜ', '™', 'ℵ', '←', '↑', '→', '↓', '↔', '↵', '⇐', '⇑', '⇒', '⇓', '⇔', '∀', '∂', '∃', '∅', '∇', '∈', '∉', '∋', '∏', '∑', '−', '∗', '√', '∝', '∞', '∠', '∧', '∨', '∩', '∪', '∫', '∴', '∼', '≅', '≈', '≠', '≡', '≤', '≥', '⊂', '⊃', '⊄', '⊆', '⊇', '⊕', '⊗', '⊥', '⋅', '⌈', '⌉', '⌊', '⌋', '〈', '〉', '◊', '♠', '♣', '♥', '♦'];
|
|
36
|
+
}
|
|
37
|
+
Encoder.prototype.isEmpty = function (val) {
|
|
38
|
+
if (val) {
|
|
39
|
+
return ((val === null) || val.length == 0 || /^\s+$/.test(val));
|
|
40
|
+
}
|
|
41
|
+
else {
|
|
42
|
+
return true;
|
|
43
|
+
}
|
|
44
|
+
};
|
|
45
|
+
// Convert HTML entities into numerical entities
|
|
46
|
+
Encoder.prototype.HTML2Numerical = function (s) {
|
|
47
|
+
return this.swapArrayVals(s, this.arr1, this.arr2);
|
|
48
|
+
};
|
|
49
|
+
// Convert Numerical entities into HTML entities
|
|
50
|
+
Encoder.prototype.NumericalToHTML = function (s) {
|
|
51
|
+
return this.swapArrayVals(s, this.arr2, this.arr1);
|
|
52
|
+
};
|
|
53
|
+
// Numerically encodes all unicode characters
|
|
54
|
+
Encoder.prototype.numEncode = function (s) {
|
|
55
|
+
if (this.isEmpty(s)) {
|
|
56
|
+
return '';
|
|
57
|
+
}
|
|
58
|
+
var a = [], l = s.length;
|
|
59
|
+
for (var i = 0; i < l; i++) {
|
|
60
|
+
var c = s.charAt(i);
|
|
61
|
+
if (c < ' ' || c > '~') {
|
|
62
|
+
a.push('&#');
|
|
63
|
+
a.push(c.charCodeAt()); //numeric value of code point
|
|
64
|
+
a.push(';');
|
|
65
|
+
}
|
|
66
|
+
else {
|
|
67
|
+
a.push(c);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
return a.join('');
|
|
71
|
+
};
|
|
72
|
+
// HTML Decode numerical and HTML entities back to original values
|
|
73
|
+
Encoder.prototype.htmlDecode = function (s) {
|
|
74
|
+
var c, m, d = s;
|
|
75
|
+
if (this.isEmpty(d)) {
|
|
76
|
+
return '';
|
|
77
|
+
}
|
|
78
|
+
// convert HTML entites back to numerical entites first
|
|
79
|
+
d = this.HTML2Numerical(d);
|
|
80
|
+
// look for numerical entities "
|
|
81
|
+
var arr = d.match(/&#[0-9]{1,5};/g);
|
|
82
|
+
// if no matches found in string then skip
|
|
83
|
+
if (arr != null) {
|
|
84
|
+
for (var x = 0; x < arr.length; x++) {
|
|
85
|
+
m = arr[x];
|
|
86
|
+
c = m.substring(2, m.length - 1); //get numeric part which is refernce to unicode character
|
|
87
|
+
// if its a valid number we can decode
|
|
88
|
+
if (c >= -32768 && c <= 65535) {
|
|
89
|
+
// decode every single match within string
|
|
90
|
+
d = d.replace(m, String.fromCharCode(c));
|
|
91
|
+
}
|
|
92
|
+
else {
|
|
93
|
+
d = d.replace(m, ''); //invalid so replace with nada
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
return d;
|
|
98
|
+
};
|
|
99
|
+
// encode an input string into either numerical or HTML entities
|
|
100
|
+
Encoder.prototype.htmlEncode = function (s, dbl) {
|
|
101
|
+
if (this.isEmpty(s)) {
|
|
102
|
+
return '';
|
|
103
|
+
}
|
|
104
|
+
// do we allow double encoding? E.g will & be turned into &amp;
|
|
105
|
+
dbl = dbl || false; //default to prevent double encoding
|
|
106
|
+
// if allowing double encoding we do ampersands first
|
|
107
|
+
if (dbl) {
|
|
108
|
+
if (this.EncodeType == 'numerical') {
|
|
109
|
+
s = s.replace(/&/g, '&');
|
|
110
|
+
}
|
|
111
|
+
else {
|
|
112
|
+
s = s.replace(/&/g, '&');
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
// convert the xss chars to numerical entities ' ' < >
|
|
116
|
+
s = this.XSSEncode(s, false);
|
|
117
|
+
if (this.EncodeType == 'numerical' || !dbl) {
|
|
118
|
+
// Now call function that will convert any HTML entities to numerical codes
|
|
119
|
+
s = this.HTML2Numerical(s);
|
|
120
|
+
}
|
|
121
|
+
// Now encode all chars above 127 e.g unicode
|
|
122
|
+
s = this.numEncode(s);
|
|
123
|
+
// now we know anything that needs to be encoded has been converted to numerical entities we
|
|
124
|
+
// can encode any ampersands & that are not part of encoded entities
|
|
125
|
+
// to handle the fact that I need to do a negative check and handle multiple ampersands &&&
|
|
126
|
+
// I am going to use a placeholder
|
|
127
|
+
// if we don't want double encoded entities we ignore the & in existing entities
|
|
128
|
+
if (!dbl) {
|
|
129
|
+
s = s.replace(/&#/g, '##AMPHASH##');
|
|
130
|
+
if (this.EncodeType == 'numerical') {
|
|
131
|
+
s = s.replace(/&/g, '&');
|
|
132
|
+
}
|
|
133
|
+
else {
|
|
134
|
+
s = s.replace(/&/g, '&');
|
|
135
|
+
}
|
|
136
|
+
s = s.replace(/##AMPHASH##/g, '&#');
|
|
137
|
+
}
|
|
138
|
+
// replace any malformed entities
|
|
139
|
+
s = s.replace(/&#\d*([^\d;]|$)/g, '$1');
|
|
140
|
+
if (!dbl) {
|
|
141
|
+
// safety check to correct any double encoded &
|
|
142
|
+
s = this.correctEncoding(s);
|
|
143
|
+
}
|
|
144
|
+
// now do we need to convert our numerical encoded string into entities
|
|
145
|
+
if (this.EncodeType == 'entity') {
|
|
146
|
+
s = this.NumericalToHTML(s);
|
|
147
|
+
}
|
|
148
|
+
return s;
|
|
149
|
+
};
|
|
150
|
+
// Encodes the basic 4 characters used to malform HTML in XSS hacks
|
|
151
|
+
Encoder.prototype.XSSEncode = function (s, en) {
|
|
152
|
+
if (!this.isEmpty(s)) {
|
|
153
|
+
en = en || true;
|
|
154
|
+
// do we convert to numerical or html entity?
|
|
155
|
+
if (en) {
|
|
156
|
+
s = s.replace(/'/g, '''); //no HTML equivalent as &apos is not cross browser supported
|
|
157
|
+
s = s.replace(/"/g, '"');
|
|
158
|
+
s = s.replace(/</g, '<');
|
|
159
|
+
s = s.replace(/>/g, '>');
|
|
160
|
+
}
|
|
161
|
+
else {
|
|
162
|
+
s = s.replace(/'/g, '''); //no HTML equivalent as &apos is not cross browser supported
|
|
163
|
+
s = s.replace(/"/g, '"');
|
|
164
|
+
s = s.replace(/</g, '<');
|
|
165
|
+
s = s.replace(/>/g, '>');
|
|
166
|
+
}
|
|
167
|
+
return s;
|
|
168
|
+
}
|
|
169
|
+
else {
|
|
170
|
+
return '';
|
|
171
|
+
}
|
|
172
|
+
};
|
|
173
|
+
// returns true if a string contains html or numerical encoded entities
|
|
174
|
+
Encoder.prototype.hasEncoded = function (s) {
|
|
175
|
+
if (/&#[0-9]{1,5};/g.test(s)) {
|
|
176
|
+
return true;
|
|
177
|
+
}
|
|
178
|
+
else if (/&[A-Z]{2,6};/gi.test(s)) {
|
|
179
|
+
return true;
|
|
180
|
+
}
|
|
181
|
+
else {
|
|
182
|
+
return false;
|
|
183
|
+
}
|
|
184
|
+
};
|
|
185
|
+
// will remove any unicode characters
|
|
186
|
+
Encoder.prototype.stripUnicode = function (s) {
|
|
187
|
+
return s.replace(/[^\x20-\x7E]/g, '');
|
|
188
|
+
};
|
|
189
|
+
// corrects any double encoded & entities e.g &amp;
|
|
190
|
+
Encoder.prototype.correctEncoding = function (s) {
|
|
191
|
+
return s.replace(/(&)(amp;)+/, '$1');
|
|
192
|
+
};
|
|
193
|
+
// Function to loop through an array swaping each item with the value from another array e.g swap HTML entities with Numericals
|
|
194
|
+
Encoder.prototype.swapArrayVals = function (s, arr1, arr2) {
|
|
195
|
+
if (this.isEmpty(s)) {
|
|
196
|
+
return '';
|
|
197
|
+
}
|
|
198
|
+
var re;
|
|
199
|
+
if (arr1 && arr2) {
|
|
200
|
+
//ShowDebug('in swapArrayVals arr1.length = ' + arr1.length + ' arr2.length = ' + arr2.length)
|
|
201
|
+
// array lengths must match
|
|
202
|
+
if (arr1.length == arr2.length) {
|
|
203
|
+
for (var x = 0, i = arr1.length; x < i; x++) {
|
|
204
|
+
re = new RegExp(arr1[x], 'g');
|
|
205
|
+
s = s.replace(re, arr2[x]); //swap arr1 item with matching item from arr2
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
return s;
|
|
210
|
+
};
|
|
211
|
+
Encoder.prototype.inArray = function (item, arr) {
|
|
212
|
+
for (var i = 0, x = arr.length; i < x; i++) {
|
|
213
|
+
if (arr[i] === item) {
|
|
214
|
+
return i;
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
return -1;
|
|
218
|
+
};
|
|
219
|
+
return Encoder;
|
|
220
|
+
}());
|
|
221
|
+
export { Encoder };
|
|
222
|
+
//# sourceMappingURL=encoder.js.map
|