@magic-xpa/mscorelib 4.801.0-dev481.242 → 4.801.0-dev481.248
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/{esm2015/index.js → esm2020/index.mjs} +2 -1
- package/{esm2015/magic-xpa-mscorelib.js → esm2020/magic-xpa-mscorelib.mjs} +0 -0
- package/{esm2015/src/ApplicationException.js → esm2020/src/ApplicationException.mjs} +2 -2
- package/{esm2015/src/ArrayEnumerator.js → esm2020/src/ArrayEnumerator.mjs} +0 -0
- package/{esm2015/src/BitArray.js → esm2020/src/BitArray.mjs} +0 -0
- package/{esm2015/src/Char.js → esm2020/src/Char.mjs} +0 -0
- package/{esm2015/src/CultureInfo.js → esm2020/src/CultureInfo.mjs} +0 -0
- package/{esm2015/src/DateTime.js → esm2020/src/DateTime.mjs} +0 -0
- package/{esm2015/src/Debug.js → esm2020/src/Debug.mjs} +0 -0
- package/{esm2015/src/Dictionary.js → esm2020/src/Dictionary.mjs} +0 -0
- package/{esm2015/src/Encoding.js → esm2020/src/Encoding.mjs} +0 -0
- package/{esm2015/src/Exception.js → esm2020/src/Exception.mjs} +2 -2
- package/{esm2015/src/HashTable.js → esm2020/src/HashTable.mjs} +0 -0
- package/{esm2015/src/IComparable.js → esm2020/src/IComparable.mjs} +1 -0
- package/{esm2015/src/ISO_8859_1_Encoding.js → esm2020/src/ISO_8859_1_Encoding.mjs} +0 -0
- package/{esm2015/src/Int32.js → esm2020/src/Int32.mjs} +0 -0
- package/{esm2015/src/Int64.js → esm2020/src/Int64.mjs} +0 -0
- package/{esm2015/src/List.js → esm2020/src/List.mjs} +2 -2
- package/{esm2015/src/NChar.js → esm2020/src/NChar.mjs} +0 -0
- package/{esm2015/src/NNumber.js → esm2020/src/NNumber.mjs} +0 -0
- package/{esm2015/src/NString.js → esm2020/src/NString.mjs} +2 -2
- package/{esm2015/src/NotImplementedException.js → esm2020/src/NotImplementedException.mjs} +0 -0
- package/{esm2015/src/NumberFormatInfo.js → esm2020/src/NumberFormatInfo.mjs} +0 -0
- package/{esm2015/src/RefParam.js → esm2020/src/RefParam.mjs} +0 -0
- package/{esm2015/src/Stack.js → esm2020/src/Stack.mjs} +0 -0
- package/{esm2015/src/StackFrame.js → esm2020/src/StackFrame.mjs} +0 -0
- package/{esm2015/src/StackTrace.js → esm2020/src/StackTrace.mjs} +0 -0
- package/{esm2015/src/StringBuilder.js → esm2020/src/StringBuilder.mjs} +0 -0
- package/{esm2015/src/StringUtils.js → esm2020/src/StringUtils.mjs} +0 -0
- package/esm2020/src/Thread.mjs +16 -0
- package/esm2020/src/Utils.mjs +7 -0
- package/{esm2015/src/WebException.js → esm2020/src/WebException.mjs} +0 -0
- package/{esm2015/src/XmlConvert.js → esm2020/src/XmlConvert.mjs} +0 -0
- package/fesm2015/{magic-xpa-mscorelib.js → magic-xpa-mscorelib.mjs} +12 -6
- package/fesm2015/magic-xpa-mscorelib.mjs.map +1 -0
- package/fesm2020/magic-xpa-mscorelib.mjs +1107 -0
- package/fesm2020/magic-xpa-mscorelib.mjs.map +1 -0
- package/index.d.ts +1 -0
- package/package.json +25 -10
- package/src/Utils.d.ts +2 -0
- package/bundles/magic-xpa-mscorelib.umd.js +0 -1643
- package/bundles/magic-xpa-mscorelib.umd.js.map +0 -1
- package/bundles/magic-xpa-mscorelib.umd.min.js +0 -16
- package/bundles/magic-xpa-mscorelib.umd.min.js.map +0 -1
- package/esm2015/src/Thread.js +0 -19
- package/fesm2015/magic-xpa-mscorelib.js.map +0 -1
|
@@ -26,6 +26,7 @@ export * from "./src/StackTrace";
|
|
|
26
26
|
export * from "./src/StringBuilder";
|
|
27
27
|
export * from "./src/StringUtils";
|
|
28
28
|
export * from "./src/Thread";
|
|
29
|
+
export * from "./src/Utils";
|
|
29
30
|
export * from "./src/WebException";
|
|
30
31
|
export * from "./src/XmlConvert";
|
|
31
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
32
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9tc2NvcmVsaWIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxZQUFZLENBQUM7QUFDM0IsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLGFBQWEsQ0FBQztBQUM1QixjQUFjLGFBQWEsQ0FBQztBQUM1QixjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsWUFBWSxDQUFDO0FBQzNCLGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLGtCQUFrQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcIi4vc3JjL0FwcGxpY2F0aW9uRXhjZXB0aW9uXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvQXJyYXlFbnVtZXJhdG9yXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvQml0QXJyYXlcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy9DaGFyXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvQ3VsdHVyZUluZm9cIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy9EYXRlVGltZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL0RlYnVnXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvRGljdGlvbmFyeVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL0VuY29kaW5nXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvRXhjZXB0aW9uXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvSGFzaFRhYmxlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvSUNvbXBhcmFibGVcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy9JbnQzMlwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL0ludDY0XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvSVNPXzg4NTlfMV9FbmNvZGluZ1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL0xpc3RcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy9OQ2hhclwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL05OdW1iZXJcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy9Ob3RJbXBsZW1lbnRlZEV4Y2VwdGlvblwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL05TdHJpbmdcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy9OdW1iZXJGb3JtYXRJbmZvXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvUmVmUGFyYW1cIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy9TdGFja1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL1N0YWNrRnJhbWVcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy9TdGFja1RyYWNlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvU3RyaW5nQnVpbGRlclwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL1N0cmluZ1V0aWxzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvVGhyZWFkXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvVXRpbHNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy9XZWJFeGNlcHRpb25cIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy9YbWxDb252ZXJ0XCI7XG4iXX0=
|
|
File without changes
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Exception } from "./Exception";
|
|
2
|
-
import { isUndefined } from "
|
|
2
|
+
import { isUndefined } from "./Utils";
|
|
3
3
|
export class ApplicationException extends Exception {
|
|
4
4
|
constructor(message = "", innerException) {
|
|
5
5
|
super(message);
|
|
@@ -9,4 +9,4 @@ export class ApplicationException extends Exception {
|
|
|
9
9
|
this.errorLevel = 2;
|
|
10
10
|
}
|
|
11
11
|
}
|
|
12
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXBwbGljYXRpb25FeGNlcHRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tc2NvcmVsaWIvc3JjL0FwcGxpY2F0aW9uRXhjZXB0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxhQUFhLENBQUM7QUFDdEMsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLFNBQVMsQ0FBQztBQUVwQyxNQUFNLE9BQU8sb0JBQXFCLFNBQVEsU0FBUztJQUlqRCxZQUFZLFVBQWtCLEVBQUUsRUFBRSxjQUEwQjtRQUMxRCxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFIakIsbUJBQWMsR0FBYyxJQUFJLENBQUM7UUFJL0IsSUFBSSxDQUFDLElBQUksR0FBRyxzQkFBc0IsQ0FBQztRQUNuQyxJQUFJLENBQUMsY0FBYyxHQUFHLENBQUMsV0FBVyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQzVFLElBQUksQ0FBQyxVQUFVLEdBQUcsQ0FBQyxDQUFDO0lBQ3RCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RXhjZXB0aW9ufSBmcm9tIFwiLi9FeGNlcHRpb25cIjtcclxuaW1wb3J0IHtpc1VuZGVmaW5lZH0gZnJvbSBcIi4vVXRpbHNcIjtcclxuXHJcbmV4cG9ydCBjbGFzcyBBcHBsaWNhdGlvbkV4Y2VwdGlvbiBleHRlbmRzIEV4Y2VwdGlvbiB7XHJcblxyXG4gIElubmVyRXhjZXB0aW9uOiBFeGNlcHRpb24gPSBudWxsO1xyXG5cclxuICBjb25zdHJ1Y3RvcihtZXNzYWdlOiBzdHJpbmcgPSBcIlwiLCBpbm5lckV4Y2VwdGlvbj86IEV4Y2VwdGlvbikge1xyXG4gICAgc3VwZXIobWVzc2FnZSk7XHJcbiAgICB0aGlzLm5hbWUgPSAnQXBwbGljYXRpb25FeGNlcHRpb24nO1xyXG4gICAgdGhpcy5Jbm5lckV4Y2VwdGlvbiA9IChpc1VuZGVmaW5lZChpbm5lckV4Y2VwdGlvbikgPyBudWxsIDogaW5uZXJFeGNlcHRpb24pO1xyXG4gICAgdGhpcy5lcnJvckxldmVsID0gMjtcclxuICB9XHJcbn1cclxuIl19
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { isNullOrUndefined } from "
|
|
1
|
+
import { isNullOrUndefined } from "./Utils";
|
|
2
2
|
export class Exception {
|
|
3
3
|
constructor(messageOrError) {
|
|
4
4
|
this.name = "Exception";
|
|
@@ -29,4 +29,4 @@ export class Exception {
|
|
|
29
29
|
return this.name;
|
|
30
30
|
}
|
|
31
31
|
}
|
|
32
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
32
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXhjZXB0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbXNjb3JlbGliL3NyYy9FeGNlcHRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sU0FBUyxDQUFDO0FBRTFDLE1BQU0sT0FBTyxTQUFTO0lBZXBCLFlBQVksY0FBOEI7UUFiMUMsU0FBSSxHQUFXLFdBQVcsQ0FBQztRQUMzQixZQUFPLEdBQVcsRUFBRSxDQUFDO1FBQ3JCLFVBQUssR0FBVyxFQUFFLENBQUM7UUFHbkIsZUFBVSxHQUFHLENBQUMsQ0FBQztRQVNiLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxjQUFjLENBQUMsRUFBRTtZQUN0QyxJQUFJLGNBQWMsWUFBWSxLQUFLLEVBQUU7Z0JBQ25DLElBQUksQ0FBQyxLQUFLLEdBQVcsY0FBZSxDQUFDLEtBQUssQ0FBQztnQkFDM0MsSUFBSSxDQUFDLE9BQU8sR0FBVyxjQUFlLENBQUMsT0FBTyxDQUFDO2FBQ2hEO2lCQUNJO2dCQUNILElBQUksQ0FBQyxPQUFPLEdBQVcsY0FBYyxDQUFDO2dCQUN0QyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksS0FBSyxFQUFFLENBQUMsS0FBSyxDQUFDO2FBQ2hDO1NBQ0Y7SUFDSCxDQUFDO0lBS0QsSUFBSSxPQUFPO1FBQ1QsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3RCLENBQUM7SUFLRCxJQUFJLFVBQVU7UUFFWixJQUFJLFVBQVUsR0FBRyxJQUFJLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQztRQUNsQyxJQUFJLFVBQVUsR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxVQUFVLElBQUksSUFBSSxPQUFPLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBR3JGLFVBQVUsR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsS0FBSyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRTdHLE9BQU8sSUFBSSxHQUFHLFVBQVUsQ0FBQztJQUMzQixDQUFDO0lBS00sT0FBTztRQUNaLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQztJQUNuQixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvLy8gPHN1bW1hcnk+XHJcbi8vLyBUaGUgYmFzZSBjbGFzcyBvZiBhbGwgZXhjZXB0aW9uc1xyXG4vLy8gPC9zdW1tYXJ5PlxyXG5cclxuaW1wb3J0IHtpc051bGxPclVuZGVmaW5lZH0gZnJvbSBcIi4vVXRpbHNcIjtcclxuXHJcbmV4cG9ydCBjbGFzcyBFeGNlcHRpb257XHJcblxyXG4gIG5hbWU6IHN0cmluZyA9IFwiRXhjZXB0aW9uXCI7XHJcbiAgbWVzc2FnZTogc3RyaW5nID0gXCJcIjtcclxuICBzdGFjazogc3RyaW5nID0gXCJcIjtcclxuXHJcblxyXG4gIGVycm9yTGV2ZWwgPSAxO1xyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gY29uc3RydWN0b3JcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZT1cIm1lc3NhZ2VcIiAgZGVub3RlcyB0aGUgbWVzc2FnZSBvZiBleGNlcHRpb24+PC9wYXJhbT5cclxuICAvLy8gPHBhcmFtIG5hbWU9XCJuYW1lXCIgIGRlbm90ZXMgdGhlIHR5cGUgb2YgZXhjZXB0aW9uPjwvcGFyYW0+XHJcbiAgY29uc3RydWN0b3IobWVzc2FnZT86IHN0cmluZylcclxuICBjb25zdHJ1Y3RvcihlcnJvcjogRXJyb3IpXHJcbiAgY29uc3RydWN0b3IobWVzc2FnZU9yRXJyb3I6IHN0cmluZyB8IEVycm9yKSB7XHJcbiAgICBpZiAoIWlzTnVsbE9yVW5kZWZpbmVkKG1lc3NhZ2VPckVycm9yKSkge1xyXG4gICAgICBpZiAobWVzc2FnZU9yRXJyb3IgaW5zdGFuY2VvZiBFcnJvcikge1xyXG4gICAgICAgIHRoaXMuc3RhY2sgPSAoPEVycm9yPm1lc3NhZ2VPckVycm9yKS5zdGFjaztcclxuICAgICAgICB0aGlzLm1lc3NhZ2UgPSAoPEVycm9yPm1lc3NhZ2VPckVycm9yKS5tZXNzYWdlO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIHRoaXMubWVzc2FnZSA9IDxzdHJpbmc+bWVzc2FnZU9yRXJyb3I7XHJcbiAgICAgICAgdGhpcy5zdGFjayA9IG5ldyBFcnJvcigpLnN0YWNrO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vIGdldCB0aGUgbWVzc2FnZSBvZiBleGNlcHRpb25cclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIGdldCBNZXNzYWdlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMubWVzc2FnZTtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gZ2V0IHRoZSBzdGFjayB0cmFjZSBvZiBleGNlcHRpb25cclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIGdldCBTdGFja1RyYWNlKCkge1xyXG5cclxuICAgIGxldCBzdGFja1RyYWNlID0gdGhpcy5zdGFjayB8fCAnJztcclxuICAgIGxldCBzdGFja0xpbmVzID0gc3RhY2tUcmFjZS5zcGxpdChcIlxcblwiKS5tYXAoZnVuY3Rpb24gKGxpbmUpIHsgcmV0dXJuIGxpbmUudHJpbSgpOyB9KTtcclxuXHJcbiAgICAvLyBPbiBzb21lIGJyb3dzZXJzIChlLmcuIENocm9tZSksIHRoZSBzdGF0Y2sgaW5jbHVkZXMgYSB0aXRsZSBhcyBcIkVycm9yXCIsIHNvIHJlbW92ZSBpdC5cclxuICAgIHN0YWNrVHJhY2UgPSBzdGFja0xpbmVzLnNwbGljZShzdGFja0xpbmVzWzBdID09PSAnRXJyb3InID8gdGhpcy5lcnJvckxldmVsICsgMSA6IHRoaXMuZXJyb3JMZXZlbCkuam9pbihcIlxcblwiKTtcclxuXHJcbiAgICByZXR1cm4gXCJcXG5cIiArIHN0YWNrVHJhY2U7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vIGdldCB0aGUgdHlwZSBvZiBleGNlcHRpb25cclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIHB1YmxpYyBHZXRUeXBlKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5uYW1lO1xyXG4gIH1cclxufVxyXG5cclxuXHJcbiJdfQ==
|
|
File without changes
|
|
@@ -1 +1,2 @@
|
|
|
1
|
+
export {};
|
|
1
2
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSUNvbXBhcmFibGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tc2NvcmVsaWIvc3JjL0lDb21wYXJhYmxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIElDb21wYXJhYmxlIHtcclxuICBDb21wYXJlVG8ob2JqOiBhbnkpOiBudW1iZXI7XHJcbn1cclxuIl19
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Array_Enumerator } from "./ArrayEnumerator";
|
|
2
|
-
import { isUndefined } from "
|
|
2
|
+
import { isUndefined } from "./Utils";
|
|
3
3
|
export class List extends Array {
|
|
4
4
|
constructor(arrayEnumerator) {
|
|
5
5
|
super();
|
|
@@ -84,4 +84,4 @@ export class List extends Array {
|
|
|
84
84
|
this.length = size;
|
|
85
85
|
}
|
|
86
86
|
}
|
|
87
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
87
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTGlzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21zY29yZWxpYi9zcmMvTGlzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQztBQUNuRCxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sU0FBUyxDQUFDO0FBRXBDLE1BQU0sT0FBTyxJQUFTLFNBQVEsS0FBUTtJQUVwQyxZQUFZLGVBQXFDO1FBQy9DLEtBQUssRUFBRSxDQUFDO1FBQ1IsTUFBTSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRTVDLElBQUksU0FBUyxDQUFDLE1BQU0sS0FBSyxDQUFDLElBQUksZUFBZSxDQUFDLFdBQVcsS0FBSyxnQkFBZ0IsRUFBRTtZQUM5RSxJQUFJLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1NBQ2hDO0lBQ0gsQ0FBQztJQUlELFFBQVEsQ0FBQyxzQkFBMkI7UUFDbEMsSUFBSSxzQkFBc0IsQ0FBQyxXQUFXLEtBQUssS0FBSyxFQUFFO1lBQ2hELHNCQUFzQixDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQU8sRUFBRSxFQUFFO2dCQUN6QyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2xCLENBQUMsQ0FBQyxDQUFDO1NBQ0o7YUFDSTtZQUNILElBQUksQ0FBQyxHQUFHLHNCQUFzQixDQUFDO1lBQy9CLE9BQU8sQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFO2dCQUNuQixJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQzthQUN0QjtTQUNGO0lBQ0gsQ0FBQztJQUVELFFBQVEsQ0FBQyxLQUFhO1FBQ3BCLElBQUksV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUMxQixJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsSUFBSSxDQUFDO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3JCLENBQUM7SUFFRCxRQUFRLENBQUMsS0FBYSxFQUFFLEtBQVE7UUFDOUIsSUFBSSxLQUFLLElBQUksQ0FBQyxJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsTUFBTTtZQUNuQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsS0FBSyxDQUFDOztZQUVwQixNQUFNLElBQUksS0FBSyxDQUFDLHFCQUFxQixDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVELGFBQWE7UUFDWCxPQUFPLElBQUksZ0JBQWdCLENBQUksSUFBSSxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVELE1BQU0sQ0FBQyxNQUFTO1FBQ2QsSUFBSSxLQUFLLEdBQVcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUV6QyxJQUFJLEtBQUssR0FBRyxDQUFDLENBQUM7WUFDWixJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3pCLENBQUM7SUFFRCxRQUFRLENBQUMsS0FBYTtRQUNwQixJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBRUQsV0FBVyxDQUFDLEtBQWEsRUFBRSxLQUFhO1FBQ3RDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBYSxFQUFFLElBQU87UUFDM0IsSUFBSSxLQUFLLElBQUksQ0FBQyxJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsTUFBTTtZQUNuQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7YUFDekIsSUFBSSxLQUFLLEtBQUssSUFBSSxDQUFDLE1BQU07WUFDNUIsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQzs7WUFFaEIsTUFBTSxJQUFJLEtBQUssQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFRCxXQUFXLENBQUMsS0FBVTtRQUNwQixJQUFJLEdBQUcsR0FBVyxDQUFDLENBQUM7UUFDcEIsT0FBTyxHQUFHLEdBQUcsS0FBSyxDQUFDLE1BQU0sRUFBRTtZQUN6QixJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUM3QixHQUFHLEVBQUUsQ0FBQztTQUNQO0lBQ0gsQ0FBQztJQUVELEtBQUs7UUFDSCxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVELE9BQU87UUFDTCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdkIsQ0FBQztJQUVELFFBQVEsQ0FBQyxNQUFTO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRUQsSUFBSSxDQUFDLFNBQXlEO1FBQzVELElBQUksU0FBUyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDdEMsSUFBSSxXQUFXLENBQUMsU0FBUyxDQUFDO1lBQ3hCLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFFbkIsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQU1ELE9BQU8sQ0FBQyxJQUFZO1FBQ2xCLElBQUksSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLEVBQUU7WUFDdEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsQ0FBQztTQUM1Qzs7WUFFQyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztJQUN2QixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0FycmF5X0VudW1lcmF0b3J9IGZyb20gXCIuL0FycmF5RW51bWVyYXRvclwiO1xyXG5pbXBvcnQge2lzVW5kZWZpbmVkfSBmcm9tIFwiLi9VdGlsc1wiO1xyXG5cclxuZXhwb3J0IGNsYXNzIExpc3Q8VD4gIGV4dGVuZHMgQXJyYXk8VD4ge1xyXG5cclxuICBjb25zdHJ1Y3RvcihhcnJheUVudW1lcmF0b3I/OiBBcnJheV9FbnVtZXJhdG9yPFQ+KSB7XHJcbiAgICBzdXBlcigpO1xyXG4gICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIExpc3QucHJvdG90eXBlKTtcclxuXHJcbiAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMSAmJiBhcnJheUVudW1lcmF0b3IuY29uc3RydWN0b3IgPT09IEFycmF5X0VudW1lcmF0b3IpIHtcclxuICAgICAgdGhpcy5BZGRSYW5nZShhcnJheUVudW1lcmF0b3IpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQWRkUmFuZ2UoYXJyYXlFbnVtZXJhdG9yOiBBcnJheV9FbnVtZXJhdG9yPFQ+KVxyXG4gIEFkZFJhbmdlKGFycmF5OiBBcnJheTxUPilcclxuICBBZGRSYW5nZShhcnJheUVudW1lcmF0b3JPckFycmF5OiBhbnkpIHtcclxuICAgIGlmIChhcnJheUVudW1lcmF0b3JPckFycmF5LmNvbnN0cnVjdG9yID09PSBBcnJheSkge1xyXG4gICAgICBhcnJheUVudW1lcmF0b3JPckFycmF5LmZvckVhY2goKGl0ZW06IFQpID0+IHtcclxuICAgICAgICB0aGlzLnB1c2goaXRlbSk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIGxldCBlID0gYXJyYXlFbnVtZXJhdG9yT3JBcnJheTtcclxuICAgICAgd2hpbGUgKGUuTW92ZU5leHQoKSkge1xyXG4gICAgICAgIHRoaXMucHVzaChlLkN1cnJlbnQpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRfSXRlbShpbmRleDogbnVtYmVyKTogVCB7XHJcbiAgICBpZiAoaXNVbmRlZmluZWQodGhpc1tpbmRleF0pKVxyXG4gICAgICB0aGlzW2luZGV4XSA9IG51bGw7XHJcbiAgICByZXR1cm4gdGhpc1tpbmRleF07XHJcbiAgfVxyXG5cclxuICBzZXRfSXRlbShpbmRleDogbnVtYmVyLCB2YWx1ZTogVCk6IHZvaWQge1xyXG4gICAgaWYgKGluZGV4ID49IDAgJiYgaW5kZXggPCB0aGlzLmxlbmd0aClcclxuICAgICAgdGhpc1tpbmRleF0gPSB2YWx1ZTtcclxuICAgIGVsc2VcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiaW5kZXggb3V0IG9mIGJvdW5kc1wiKTtcclxuICB9XHJcblxyXG4gIEdldEVudW1lcmF0b3IoKTogQXJyYXlfRW51bWVyYXRvcjxUPiB7XHJcbiAgICByZXR1cm4gbmV3IEFycmF5X0VudW1lcmF0b3I8VD4odGhpcyk7XHJcbiAgfVxyXG5cclxuICBSZW1vdmUob2JqZWN0OiBUKTogdm9pZCB7XHJcbiAgICBsZXQgaW5kZXg6IG51bWJlciA9IHRoaXMuaW5kZXhPZihvYmplY3QpO1xyXG5cclxuICAgIGlmIChpbmRleCA+IC0xKVxyXG4gICAgICB0aGlzLlJlbW92ZUF0KGluZGV4KTtcclxuICB9XHJcblxyXG4gIFJlbW92ZUF0KGluZGV4OiBudW1iZXIpOiB2b2lkIHtcclxuICAgIHRoaXMuUmVtb3ZlUmFuZ2UoaW5kZXgsIDEpO1xyXG4gIH1cclxuXHJcbiAgUmVtb3ZlUmFuZ2UoaW5kZXg6IG51bWJlciwgY291bnQ6IG51bWJlcik6IHZvaWQge1xyXG4gICAgdGhpcy5zcGxpY2UoaW5kZXgsIGNvdW50KTtcclxuICB9XHJcblxyXG4gIEluc2VydChpbmRleDogbnVtYmVyLCBpdGVtOiBUKTogdm9pZCB7XHJcbiAgICBpZiAoaW5kZXggPj0gMCAmJiBpbmRleCA8IHRoaXMubGVuZ3RoKVxyXG4gICAgICB0aGlzLnNwbGljZShpbmRleCwgMCwgaXRlbSk7XHJcbiAgICBlbHNlIGlmIChpbmRleCA9PT0gdGhpcy5sZW5ndGgpIC8vIGluc2VydGluZyBhdCBlbmQgbWVhbnMgYXBwZW5kXHJcbiAgICAgIHRoaXMucHVzaChpdGVtKTtcclxuICAgIGVsc2VcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiaW5kZXggb3V0IG9mIGJvdW5kc1wiKTtcclxuICB9XHJcblxyXG4gIEluc2VydFJhbmdlKGl0ZW1zOiBUW10pOiB2b2lkIHtcclxuICAgIGxldCBpZHg6IG51bWJlciA9IDA7XHJcbiAgICB3aGlsZSAoaWR4IDwgaXRlbXMubGVuZ3RoKSB7XHJcbiAgICAgIHRoaXMuSW5zZXJ0KGlkeCwgaXRlbXNbaWR4XSk7XHJcbiAgICAgIGlkeCsrO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQ2xlYXIoKTogdm9pZCB7XHJcbiAgICB0aGlzLnNwbGljZSgwLCB0aGlzLmxlbmd0aCk7XHJcbiAgfVxyXG5cclxuICBUb0FycmF5KCk6IFRbXSB7XHJcbiAgICByZXR1cm4gdGhpcy5zbGljZSgwKTtcclxuICB9XHJcblxyXG4gIENvbnRhaW5zKG9iamVjdDogVCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaW5kZXhPZihvYmplY3QpID4gLTE7XHJcbiAgfVxyXG5cclxuICBmaW5kKHByZWRpY2F0ZTogKHZhbHVlOiBULCBpbmRleDogbnVtYmVyLCBvYmo6IFRbXSkgPT4gYm9vbGVhbik6IFQge1xyXG4gICAgbGV0IGZvdW5kSXRlbSA9IHN1cGVyLmZpbmQocHJlZGljYXRlKTtcclxuICAgIGlmIChpc1VuZGVmaW5lZChmb3VuZEl0ZW0pKVxyXG4gICAgICBmb3VuZEl0ZW0gPSBudWxsO1xyXG5cclxuICAgIHJldHVybiBmb3VuZEl0ZW07XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vIGFkZCBudWxsIGNlbGxzIHVwIHRvICdzaXplJyBjZWxscy5cclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZT1cInNpemVcIj48L3BhcmFtPlxyXG4gIFNldFNpemUoc2l6ZTogbnVtYmVyKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5sZW5ndGggPiBzaXplKSB7XHJcbiAgICAgIHRoaXMuUmVtb3ZlUmFuZ2Uoc2l6ZSwgdGhpcy5sZW5ndGggLSBzaXplKTtcclxuICAgIH1cclxuICAgIGVsc2VcclxuICAgICAgdGhpcy5sZW5ndGggPSBzaXplO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
File without changes
|
|
File without changes
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { isNullOrUndefined } from "
|
|
1
|
+
import { isNullOrUndefined } from "./Utils";
|
|
2
2
|
import { Exception } from "./Exception";
|
|
3
3
|
export class NString {
|
|
4
4
|
static IndexOf(str, searchStr, startIndex, count) {
|
|
@@ -146,4 +146,4 @@ export class NString {
|
|
|
146
146
|
}
|
|
147
147
|
}
|
|
148
148
|
NString.Empty = "";
|
|
149
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTlN0cmluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21zY29yZWxpYi9zcmMvTlN0cmluZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDdkMsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGFBQWEsQ0FBQztBQUl0QyxNQUFNLE9BQU8sT0FBTztJQUdoQixNQUFNLENBQUMsT0FBTyxDQUFDLEdBQVcsRUFBRSxTQUFjLEVBQUUsVUFBa0IsRUFBRSxLQUFhO1FBQ3pFLElBQUksS0FBSyxHQUFXLEdBQUcsQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFLEtBQUssQ0FBQyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNyRSxPQUFPLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO0lBQ25ELENBQUM7SUFFRCxNQUFNLENBQUMsVUFBVSxDQUFDLEdBQVcsRUFBRSxJQUFjLEVBQUUsVUFBa0IsRUFBRSxLQUFhO1FBQzVFLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLEVBQUUsRUFBRSxDQUFDLEVBQUU7WUFDNUIsSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxVQUFVLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDbkMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLEVBQUU7Z0JBQ2xDLElBQUksQ0FBQyxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUM7b0JBQ2IsT0FBTyxDQUFDLFVBQVUsR0FBRyxDQUFDLENBQUMsQ0FBQzthQUMvQjtTQUNKO1FBQ0QsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUNkLENBQUM7SUFF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QzdFLENBQUM7SUFFSCxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQVUsRUFBRSxTQUFpQixFQUFFLFNBQWlCO1FBQzdELElBQUksU0FBUyxHQUFVLEVBQUUsQ0FBQztRQUkxQixTQUFTLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLE1BQU0sQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDL0QsU0FBUyxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxNQUFNLENBQUMsS0FBSyxFQUFDLEdBQUcsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQzdELFNBQVMsR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksTUFBTSxDQUFDLEtBQUssRUFBQyxHQUFHLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUM3RCxTQUFTLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLE1BQU0sQ0FBQyxLQUFLLEVBQUMsR0FBRyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDN0QsU0FBUyxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxNQUFNLENBQUMsS0FBSyxFQUFDLEdBQUcsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQzdELFNBQVMsR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksTUFBTSxDQUFDLEtBQUssRUFBQyxHQUFHLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUM3RCxTQUFTLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLE1BQU0sQ0FBQyxLQUFLLEVBQUMsR0FBRyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDN0QsU0FBUyxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxNQUFNLENBQUMsS0FBSyxFQUFDLEdBQUcsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQzdELFNBQVMsR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksTUFBTSxDQUFDLEtBQUssRUFBQyxHQUFHLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUM3RCxTQUFTLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLE1BQU0sQ0FBQyxLQUFLLEVBQUMsR0FBRyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFFN0QsSUFBSTtZQUNGLFNBQVMsR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksTUFBTSxDQUFDLFNBQVMsRUFBQyxHQUFHLENBQUMsRUFBRSxTQUFTLENBQUMsQ0FBQztTQUMvRDtRQUNELE9BQU8sQ0FBQyxFQUFFO1lBQ1IsTUFBTSxJQUFJLFNBQVMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDaEM7UUFDRCxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDOztBQXBMUSxhQUFLLEdBQUcsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiXHJcbmltcG9ydCB7aXNOdWxsT3JVbmRlZmluZWR9IGZyb20gXCJ1dGlsXCI7XHJcbmltcG9ydCB7RXhjZXB0aW9ufSBmcm9tIFwiLi9FeGNlcHRpb25cIjtcclxuXHJcblxyXG4vLyBAZHluYW1pY1xyXG5leHBvcnQgY2xhc3MgTlN0cmluZyB7XHJcbiAgICBzdGF0aWMgRW1wdHkgPSBcIlwiO1xyXG5cclxuICAgIHN0YXRpYyBJbmRleE9mKHN0cjogc3RyaW5nLCBzZWFyY2hTdHI6IGFueSwgc3RhcnRJbmRleDogbnVtYmVyLCBjb3VudDogbnVtYmVyKTogbnVtYmVyIHtcclxuICAgICAgICBsZXQgaW5kZXg6IG51bWJlciA9IHN0ci5zdWJzdHIoc3RhcnRJbmRleCwgY291bnQpLmluZGV4T2Yoc2VhcmNoU3RyKTtcclxuICAgICAgICByZXR1cm4gaW5kZXggPiAtMSA/IHN0YXJ0SW5kZXggKyBpbmRleCA6IGluZGV4O1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBJbmRleE9mQW55KHN0cjogc3RyaW5nLCBzdWJzOiBzdHJpbmdbXSwgc3RhcnRJbmRleDogbnVtYmVyLCBjb3VudDogbnVtYmVyKTogbnVtYmVyIHtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNvdW50OyArK2kpIHtcclxuICAgICAgICAgICAgbGV0IGMgPSBzdHIuY2hhckF0KHN0YXJ0SW5kZXggKyBpKTtcclxuICAgICAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCBzdWJzLmxlbmd0aDsgKytqKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoYyA9PT0gc3Vic1tqXSlcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gKHN0YXJ0SW5kZXggKyBpKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gLTE7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIENvcHlUbyhzb3VyY2U6IHN0cmluZywgc291cmNlSW5kZXg6IG51bWJlciwgZGVzdGluYXRpb246IHN0cmluZ1tdLCBkZXN0aW5hdGlvbkluZGV4OiBudW1iZXIsIGNvdW50OiBudW1iZXIpIHtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNvdW50OyBpKyspIHtcclxuICAgICAgICAgICAgZGVzdGluYXRpb25bZGVzdGluYXRpb25JbmRleCArIGldID0gc291cmNlW3NvdXJjZUluZGV4ICsgaV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBDb21wYXJlKHN0ckE6IHN0cmluZywgc3RyQjogc3RyaW5nLCBpZ25vcmVDYXNlOiBib29sZWFuKTogbnVtYmVyXHJcbiAgICBzdGF0aWMgQ29tcGFyZShzdHJBOiBzdHJpbmcsIHN0ckI6IHN0cmluZywgaWdub3JlQ2FzZTogYm9vbGVhbiwgaW5kZXhBOiBudW1iZXIsIGluZGV4QjogbnVtYmVyLCBsZW5ndGg6IG51bWJlcik6IG51bWJlclxyXG4gICAgc3RhdGljIENvbXBhcmUoc3RyQTogc3RyaW5nLCBzdHJCOiBzdHJpbmcsIGlnbm9yZUNhc2U6IGJvb2xlYW4sIGluZGV4QT86IG51bWJlciwgaW5kZXhCPzogbnVtYmVyLCBsZW5ndGg/OiBudW1iZXIpOiBudW1iZXIge1xyXG4gICAgICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID0gNikge1xyXG4gICAgICAgICAgICBzdHJBID0gc3RyQS5zdWJzdHIoaW5kZXhBLCBsZW5ndGgpO1xyXG4gICAgICAgICAgICBzdHJCID0gc3RyQi5zdWJzdHIoaW5kZXhCLCBsZW5ndGgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoaWdub3JlQ2FzZSkge1xyXG4gICAgICAgICAgICBzdHJBID0gc3RyQS50b0xvd2VyQ2FzZSgpO1xyXG4gICAgICAgICAgICBzdHJCID0gc3RyQi50b0xvd2VyQ2FzZSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gc3RyQS5sb2NhbGVDb21wYXJlKHN0ckIpO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgc3RhdGljIEVxdWFscyhzdHJBOiBzdHJpbmcsIHN0ckI6IHN0cmluZywgaWdub3JlQ2FzZTogYm9vbGVhbik6IGJvb2xlYW4ge1xyXG4gICAgaWYgKCFOU3RyaW5nLklzTnVsbE9yRW1wdHkoc3RyQSkgJiYgIU5TdHJpbmcuSXNOdWxsT3JFbXB0eShzdHJCKSkge1xyXG4gICAgICBpZiAoaWdub3JlQ2FzZSkge1xyXG4gICAgICAgIHN0ckEgPSBzdHJBLnRvTG93ZXJDYXNlKCk7XHJcbiAgICAgICAgc3RyQiA9IHN0ckIudG9Mb3dlckNhc2UoKTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gc3RyQSA9PT0gc3RyQjtcclxuICAgIH1cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gICAgc3RhdGljIEdldEhhc2hDb2RlKHN0cjogc3RyaW5nKTogbnVtYmVyIHtcclxuICAgICAgICB2YXIgaGFzaCA9IDAsIGksIGwsIGNoO1xyXG4gICAgICAgIGlmIChzdHIubGVuZ3RoID09PSAwKSByZXR1cm4gaGFzaDtcclxuICAgICAgICBmb3IgKGkgPSAwLCBsID0gc3RyLmxlbmd0aDsgaSA8IGw7IGkrKykge1xyXG4gICAgICAgICAgICBjaCA9IHN0ci5jaGFyQ29kZUF0KGkpO1xyXG4gICAgICAgICAgICBoYXNoID0gKChoYXNoIDw8IDUpIC0gaGFzaCkgKyBjaDtcclxuICAgICAgICAgICAgaGFzaCB8PSAwOyAvLyBDb252ZXJ0IHRvIDMyYml0IGludGVnZXJcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGhhc2g7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIHN0YXRpYyBSZW1vdmUoc3RyOiBzdHJpbmcsIHN0YXJ0SW5kZXg6IG51bWJlciwgbGVuZ3RoOiBudW1iZXIpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiBzdHIuc3Vic3RyKDAsIHN0YXJ0SW5kZXggLSAxKSArIHN0ci5zdWJzdHIoc3RhcnRJbmRleCArIGxlbmd0aCAtIDEpO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBUcmltU3RhcnQoc3RyOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiBzdHIucmVwbGFjZSgvXlxcc1xccyovLCAnJylcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgVHJpbUVuZChzdHJpbmc6IHN0cmluZywgdHJpbUNoYXJzPzogc3RyaW5nW10pOiBzdHJpbmcge1xyXG4gICAgICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAxKVxyXG4gICAgICAgICAgICByZXR1cm4gc3RyaW5nLnJlcGxhY2UoL1xcc1xccyokLywgJycpO1xyXG5cclxuICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IHRyaW1DaGFycy5sZW5ndGg7IGorKykge1xyXG4gICAgICAgICAgICBsZXQgdHJpbUNoYXIgPSB0cmltQ2hhcnNbal07XHJcbiAgICAgICAgICAgIGxldCBpID0gc3RyaW5nLmxlbmd0aCAtIDE7XHJcbiAgICAgICAgICAgIHdoaWxlICghaXNOdWxsT3JVbmRlZmluZWQoc3RyaW5nW2ldKSAmJiBzdHJpbmdbaV0uZW5kc1dpdGgodHJpbUNoYXIpKSB7XHJcbiAgICAgICAgICAgICAgICBzdHJpbmcgPSBOU3RyaW5nLlJlbW92ZShzdHJpbmcsIHN0cmluZy5sZW5ndGgsIDEpO1xyXG4gICAgICAgICAgICAgICAgaS0tO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBzdHJpbmc7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIEZvcm1hdChmb3JtYXQ6IHN0cmluZywgYXJnMDogYW55LCBhcmcxPzogYW55LCBhcmcyPzogYW55LCBhcmczPzogYW55LCBhcmc0PzogYW55LCBhcmc1PzogYW55KTogc3RyaW5nIHtcclxuICAgICAgICBpZiAoIWlzTnVsbE9yVW5kZWZpbmVkKGFyZzApICYmIGFyZzAuY29uc3RydWN0b3IgPT09IEFycmF5KSB7XHJcbiAgICAgICAgICAgIHZhciBzID0gZm9ybWF0LFxyXG4gICAgICAgICAgICAgICAgaSA9IGFyZzAubGVuZ3RoO1xyXG4gICAgICAgICAgICB3aGlsZSAoaS0tKSB7XHJcbiAgICAgICAgICAgICAgICBzID0gcy5yZXBsYWNlKG5ldyBSZWdFeHAoJ1xcXFx7JyArIGkgKyAnXFxcXH0nLCAnZ20nKSwgYXJnMFtpXSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmV0dXJuIHM7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICB2YXIgYXJncyA9IFthcmcwLCBhcmcxLCBhcmcyLCBhcmczLCBhcmc0LCBhcmc1XTtcclxuICAgICAgICAgICAgcmV0dXJuIE5TdHJpbmcuRm9ybWF0KGZvcm1hdCwgYXJncyk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBJc051bGxPckVtcHR5KHN0cjE6IHN0cmluZyB8IE5TdHJpbmcpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gIXN0cjE7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIEZyb21DaGFycyhjaE9yQ2hhcnM6IHN0cmluZ1tdKVxyXG4gICAgc3RhdGljIEZyb21DaGFycyhjaE9yQ2hhcnM6IHN0cmluZ1tdLCBzdGFydEluZGV4OiBudW1iZXIsIGxlbjogbnVtYmVyKVxyXG4gICAgc3RhdGljIEZyb21DaGFycyhjaE9yQ2hhcnM6IHN0cmluZ1tdLCBzdGFydEluZGV4PzogbnVtYmVyLCBsZW4/OiBudW1iZXIpIHtcclxuICAgICAgICBsZXQgc3RyOiBzdHJpbmcgPSBjaE9yQ2hhcnMuam9pbignJyk7XHJcbiAgICAgICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDMpXHJcbiAgICAgICAgICAgIHJldHVybiBzdHIuc3Vic3RyKHN0YXJ0SW5kZXgsIGxlbik7XHJcbiAgICAgICAgcmV0dXJuIHN0cjtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgRnJvbUNoYXIoY2g6IHN0cmluZywgY291bnQpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiAobmV3IEFycmF5PHN0cmluZz4oY291bnQpLmZpbGwoPHN0cmluZz5jaCkpLmpvaW4oJycpO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBUb0NoYXJBcnJheShzdHI6IHN0cmluZyk6IHN0cmluZ1tdIHtcclxuICAgICAgICByZXR1cm4gQXJyYXkuZnJvbShzdHIpO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBDb21wYXJlT3JkaW5hbChzdHJBOiBzdHJpbmcsIHN0ckI6IHN0cmluZyk6IG51bWJlciB7XHJcbiAgICAgICAgbGV0IGxlbkEgPSBzdHJBLmxlbmd0aDtcclxuICAgICAgICBsZXQgbGVuQiA9IHN0ckIubGVuZ3RoO1xyXG5cclxuICAgICAgICBsZXQgbGVuID0gTWF0aC5taW4obGVuQSwgbGVuQik7XHJcblxyXG4gICAgICAgIC8vIGNvbXBhcmUgY2hhcmFjdGVyIGJ5IGNoYXJhY3RlclxyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGVuOyBpKyspIHtcclxuICAgICAgICAgICAgaWYgKHN0ckFbaV0uY2hhckNvZGVBdCgwKSAhPT0gc3RyQltpXS5jaGFyQ29kZUF0KDApKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gc3RyQVtpXS5jaGFyQ29kZUF0KDApIC0gc3RyQltpXS5jaGFyQ29kZUF0KDApO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBpZiBhbGwgY2hhcmFjdGVycyBhcmUgc2FtZSAsIGJ1dCBsZW5ndGggaXMgZGlmZmVyZW50IHJldHVybiB0aGUgZGlmZmVyZW5jZSBvZiBsZW5ndGhcclxuICAgICAgICBpZiAobGVuQSAhPT0gbGVuQikge1xyXG4gICAgICAgICAgICByZXR1cm4gbGVuQSAtIGxlbkI7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBhbGwgY2hhcnMgYXJlIHNhbWUgLCBzbyBzdHJpbmdzIGFyZSBlcXVhbFxyXG4gICAgICAgIHJldHVybiAwO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBQYWRSaWdodChzb3VyY2U6IHN0cmluZywgbWF4TGVuZ3RoOiBudW1iZXIsIGZpbGxTdHJpbmc/OiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgICAgIGlmIChzb3VyY2UubGVuZ3RoID49IG1heExlbmd0aClcclxuICAgICAgICAgICAgcmV0dXJuIHNvdXJjZTtcclxuXHJcbiAgICAgICAgbGV0IGZpbGxMZW4gPSBtYXhMZW5ndGggLSBzb3VyY2UubGVuZ3RoO1xyXG4gICAgICAgIGxldCB0aW1lc1RvUmVwZWF0ID0gTWF0aC5jZWlsKGZpbGxMZW4gLyBmaWxsU3RyaW5nLmxlbmd0aCk7XHJcbiAgICAgICAgbGV0IHRydW5jYXRlZFN0cmluZ0ZpbGxlciA9IGZpbGxTdHJpbmcucmVwZWF0KHRpbWVzVG9SZXBlYXQpLnNsaWNlKDAsIGZpbGxMZW4pO1xyXG4gICAgICAgIHJldHVybiBzb3VyY2UgKyB0cnVuY2F0ZWRTdHJpbmdGaWxsZXI7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIEluc2VydChzdHI6IHN0cmluZywgaW5kZXg6IG51bWJlciwgY2g6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIHN0ci5zdWJzdHIoMCwgaW5kZXgpICsgY2ggKyBzdHIuc3Vic3RyKGluZGV4LCBzdHIubGVuZ3RoIC0gaW5kZXgpO1xyXG4gICAgfVxyXG5cclxuICBzdGF0aWMgUmVwbGFjZShzdHI6c3RyaW5nLCBvcmdTdWJTdHI6IHN0cmluZywgbmV3U3ViU3RyOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgbGV0IHJlc3VsdFN0cjpzdHJpbmcgPSAnJztcclxuXHJcbiAgICAvLyBmaXhlZCBkZWZlY3QgMTUxODEwOiAgcmVwbGFjZSBcIipcIiB3aXRoIFwiXFwqXCIgYmVmb3JlIHdlIHVwZGF0ZSB0aGUgc3RyaW5nIHNvICogd2lsbCBiZSBhcyBjaGFyIGFuZCBub3QgcmVnIGV4cFxyXG4gICAgLy8gYWxzbyBmb3Igc3BlY2lhbCBjaGFycyAkIF4gLiA/ICsgLCBbXHJcbiAgICBvcmdTdWJTdHIgPSBvcmdTdWJTdHIucmVwbGFjZShuZXcgUmVnRXhwKFwiXFxcXFxcXFxcIiwgJ2cnKSwgXCJcXFxcXFxcXFwiKTtcclxuICAgIG9yZ1N1YlN0ciA9IG9yZ1N1YlN0ci5yZXBsYWNlKG5ldyBSZWdFeHAoXCJcXFxcKlwiLCdnJyksIFwiXFxcXFxcKlwiKTtcclxuICAgIG9yZ1N1YlN0ciA9IG9yZ1N1YlN0ci5yZXBsYWNlKG5ldyBSZWdFeHAoXCJcXFxcJFwiLCdnJyksIFwiXFxcXFxcJFwiKTtcclxuICAgIG9yZ1N1YlN0ciA9IG9yZ1N1YlN0ci5yZXBsYWNlKG5ldyBSZWdFeHAoXCJcXFxcXlwiLCdnJyksIFwiXFxcXFxcXlwiKTtcclxuICAgIG9yZ1N1YlN0ciA9IG9yZ1N1YlN0ci5yZXBsYWNlKG5ldyBSZWdFeHAoXCJcXFxcLlwiLCdnJyksIFwiXFxcXFxcLlwiKTtcclxuICAgIG9yZ1N1YlN0ciA9IG9yZ1N1YlN0ci5yZXBsYWNlKG5ldyBSZWdFeHAoXCJcXFxcP1wiLCdnJyksIFwiXFxcXFxcP1wiKTtcclxuICAgIG9yZ1N1YlN0ciA9IG9yZ1N1YlN0ci5yZXBsYWNlKG5ldyBSZWdFeHAoXCJcXFxcK1wiLCdnJyksIFwiXFxcXFxcK1wiKTtcclxuICAgIG9yZ1N1YlN0ciA9IG9yZ1N1YlN0ci5yZXBsYWNlKG5ldyBSZWdFeHAoXCJcXFxcLFwiLCdnJyksIFwiXFxcXFxcLFwiKTtcclxuICAgIG9yZ1N1YlN0ciA9IG9yZ1N1YlN0ci5yZXBsYWNlKG5ldyBSZWdFeHAoXCJcXFxcW1wiLCdnJyksIFwiXFxcXFxcW1wiKTtcclxuICAgIG9yZ1N1YlN0ciA9IG9yZ1N1YlN0ci5yZXBsYWNlKG5ldyBSZWdFeHAoXCJcXFxcfFwiLCdnJyksIFwiXFxcXFxcfFwiKTtcclxuXHJcbiAgICB0cnkge1xyXG4gICAgICByZXN1bHRTdHIgPSBzdHIucmVwbGFjZShuZXcgUmVnRXhwKG9yZ1N1YlN0ciwnZycpLCBuZXdTdWJTdHIpO1xyXG4gICAgfVxyXG4gICAgY2F0Y2ggKGUpIHtcclxuICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbihlLm1lc3NhZ2UpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHJlc3VsdFN0cjtcclxuICB9XHJcbn1cclxuIl19
|
|
149
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTlN0cmluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21zY29yZWxpYi9zcmMvTlN0cmluZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxTQUFTLENBQUM7QUFDMUMsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGFBQWEsQ0FBQztBQUl0QyxNQUFNLE9BQU8sT0FBTztJQUdoQixNQUFNLENBQUMsT0FBTyxDQUFDLEdBQVcsRUFBRSxTQUFjLEVBQUUsVUFBa0IsRUFBRSxLQUFhO1FBQ3pFLElBQUksS0FBSyxHQUFXLEdBQUcsQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFLEtBQUssQ0FBQyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNyRSxPQUFPLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO0lBQ25ELENBQUM7SUFFRCxNQUFNLENBQUMsVUFBVSxDQUFDLEdBQVcsRUFBRSxJQUFjLEVBQUUsVUFBa0IsRUFBRSxLQUFhO1FBQzVFLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLEVBQUUsRUFBRSxDQUFDLEVBQUU7WUFDNUIsSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxVQUFVLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDbkMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLEVBQUU7Z0JBQ2xDLElBQUksQ0FBQyxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUM7b0JBQ2IsT0FBTyxDQUFDLFVBQVUsR0FBRyxDQUFDLENBQUMsQ0FBQzthQUMvQjtTQUNKO1FBQ0QsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUNkLENBQUM7SUFF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QzdFLENBQUM7SUFFSCxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQVUsRUFBRSxTQUFpQixFQUFFLFNBQWlCO1FBQzdELElBQUksU0FBUyxHQUFVLEVBQUUsQ0FBQztRQUkxQixTQUFTLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLE1BQU0sQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDL0QsU0FBUyxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxNQUFNLENBQUMsS0FBSyxFQUFDLEdBQUcsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQzdELFNBQVMsR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksTUFBTSxDQUFDLEtBQUssRUFBQyxHQUFHLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUM3RCxTQUFTLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLE1BQU0sQ0FBQyxLQUFLLEVBQUMsR0FBRyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDN0QsU0FBUyxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxNQUFNLENBQUMsS0FBSyxFQUFDLEdBQUcsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQzdELFNBQVMsR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksTUFBTSxDQUFDLEtBQUssRUFBQyxHQUFHLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUM3RCxTQUFTLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLE1BQU0sQ0FBQyxLQUFLLEVBQUMsR0FBRyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDN0QsU0FBUyxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxNQUFNLENBQUMsS0FBSyxFQUFDLEdBQUcsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQzdELFNBQVMsR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksTUFBTSxDQUFDLEtBQUssRUFBQyxHQUFHLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUM3RCxTQUFTLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLE1BQU0sQ0FBQyxLQUFLLEVBQUMsR0FBRyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFFN0QsSUFBSTtZQUNGLFNBQVMsR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksTUFBTSxDQUFDLFNBQVMsRUFBQyxHQUFHLENBQUMsRUFBRSxTQUFTLENBQUMsQ0FBQztTQUMvRDtRQUNELE9BQU8sQ0FBQyxFQUFFO1lBQ1IsTUFBTSxJQUFJLFNBQVMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDaEM7UUFDRCxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDOztBQXBMUSxhQUFLLEdBQUcsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiXHJcbmltcG9ydCB7aXNOdWxsT3JVbmRlZmluZWR9IGZyb20gXCIuL1V0aWxzXCI7XHJcbmltcG9ydCB7RXhjZXB0aW9ufSBmcm9tIFwiLi9FeGNlcHRpb25cIjtcclxuXHJcblxyXG4vLyBAZHluYW1pY1xyXG5leHBvcnQgY2xhc3MgTlN0cmluZyB7XHJcbiAgICBzdGF0aWMgRW1wdHkgPSBcIlwiO1xyXG5cclxuICAgIHN0YXRpYyBJbmRleE9mKHN0cjogc3RyaW5nLCBzZWFyY2hTdHI6IGFueSwgc3RhcnRJbmRleDogbnVtYmVyLCBjb3VudDogbnVtYmVyKTogbnVtYmVyIHtcclxuICAgICAgICBsZXQgaW5kZXg6IG51bWJlciA9IHN0ci5zdWJzdHIoc3RhcnRJbmRleCwgY291bnQpLmluZGV4T2Yoc2VhcmNoU3RyKTtcclxuICAgICAgICByZXR1cm4gaW5kZXggPiAtMSA/IHN0YXJ0SW5kZXggKyBpbmRleCA6IGluZGV4O1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBJbmRleE9mQW55KHN0cjogc3RyaW5nLCBzdWJzOiBzdHJpbmdbXSwgc3RhcnRJbmRleDogbnVtYmVyLCBjb3VudDogbnVtYmVyKTogbnVtYmVyIHtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNvdW50OyArK2kpIHtcclxuICAgICAgICAgICAgbGV0IGMgPSBzdHIuY2hhckF0KHN0YXJ0SW5kZXggKyBpKTtcclxuICAgICAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCBzdWJzLmxlbmd0aDsgKytqKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoYyA9PT0gc3Vic1tqXSlcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gKHN0YXJ0SW5kZXggKyBpKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gLTE7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIENvcHlUbyhzb3VyY2U6IHN0cmluZywgc291cmNlSW5kZXg6IG51bWJlciwgZGVzdGluYXRpb246IHN0cmluZ1tdLCBkZXN0aW5hdGlvbkluZGV4OiBudW1iZXIsIGNvdW50OiBudW1iZXIpIHtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNvdW50OyBpKyspIHtcclxuICAgICAgICAgICAgZGVzdGluYXRpb25bZGVzdGluYXRpb25JbmRleCArIGldID0gc291cmNlW3NvdXJjZUluZGV4ICsgaV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBDb21wYXJlKHN0ckE6IHN0cmluZywgc3RyQjogc3RyaW5nLCBpZ25vcmVDYXNlOiBib29sZWFuKTogbnVtYmVyXHJcbiAgICBzdGF0aWMgQ29tcGFyZShzdHJBOiBzdHJpbmcsIHN0ckI6IHN0cmluZywgaWdub3JlQ2FzZTogYm9vbGVhbiwgaW5kZXhBOiBudW1iZXIsIGluZGV4QjogbnVtYmVyLCBsZW5ndGg6IG51bWJlcik6IG51bWJlclxyXG4gICAgc3RhdGljIENvbXBhcmUoc3RyQTogc3RyaW5nLCBzdHJCOiBzdHJpbmcsIGlnbm9yZUNhc2U6IGJvb2xlYW4sIGluZGV4QT86IG51bWJlciwgaW5kZXhCPzogbnVtYmVyLCBsZW5ndGg/OiBudW1iZXIpOiBudW1iZXIge1xyXG4gICAgICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID0gNikge1xyXG4gICAgICAgICAgICBzdHJBID0gc3RyQS5zdWJzdHIoaW5kZXhBLCBsZW5ndGgpO1xyXG4gICAgICAgICAgICBzdHJCID0gc3RyQi5zdWJzdHIoaW5kZXhCLCBsZW5ndGgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoaWdub3JlQ2FzZSkge1xyXG4gICAgICAgICAgICBzdHJBID0gc3RyQS50b0xvd2VyQ2FzZSgpO1xyXG4gICAgICAgICAgICBzdHJCID0gc3RyQi50b0xvd2VyQ2FzZSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gc3RyQS5sb2NhbGVDb21wYXJlKHN0ckIpO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgc3RhdGljIEVxdWFscyhzdHJBOiBzdHJpbmcsIHN0ckI6IHN0cmluZywgaWdub3JlQ2FzZTogYm9vbGVhbik6IGJvb2xlYW4ge1xyXG4gICAgaWYgKCFOU3RyaW5nLklzTnVsbE9yRW1wdHkoc3RyQSkgJiYgIU5TdHJpbmcuSXNOdWxsT3JFbXB0eShzdHJCKSkge1xyXG4gICAgICBpZiAoaWdub3JlQ2FzZSkge1xyXG4gICAgICAgIHN0ckEgPSBzdHJBLnRvTG93ZXJDYXNlKCk7XHJcbiAgICAgICAgc3RyQiA9IHN0ckIudG9Mb3dlckNhc2UoKTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gc3RyQSA9PT0gc3RyQjtcclxuICAgIH1cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gICAgc3RhdGljIEdldEhhc2hDb2RlKHN0cjogc3RyaW5nKTogbnVtYmVyIHtcclxuICAgICAgICB2YXIgaGFzaCA9IDAsIGksIGwsIGNoO1xyXG4gICAgICAgIGlmIChzdHIubGVuZ3RoID09PSAwKSByZXR1cm4gaGFzaDtcclxuICAgICAgICBmb3IgKGkgPSAwLCBsID0gc3RyLmxlbmd0aDsgaSA8IGw7IGkrKykge1xyXG4gICAgICAgICAgICBjaCA9IHN0ci5jaGFyQ29kZUF0KGkpO1xyXG4gICAgICAgICAgICBoYXNoID0gKChoYXNoIDw8IDUpIC0gaGFzaCkgKyBjaDtcclxuICAgICAgICAgICAgaGFzaCB8PSAwOyAvLyBDb252ZXJ0IHRvIDMyYml0IGludGVnZXJcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGhhc2g7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIHN0YXRpYyBSZW1vdmUoc3RyOiBzdHJpbmcsIHN0YXJ0SW5kZXg6IG51bWJlciwgbGVuZ3RoOiBudW1iZXIpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiBzdHIuc3Vic3RyKDAsIHN0YXJ0SW5kZXggLSAxKSArIHN0ci5zdWJzdHIoc3RhcnRJbmRleCArIGxlbmd0aCAtIDEpO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBUcmltU3RhcnQoc3RyOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiBzdHIucmVwbGFjZSgvXlxcc1xccyovLCAnJylcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgVHJpbUVuZChzdHJpbmc6IHN0cmluZywgdHJpbUNoYXJzPzogc3RyaW5nW10pOiBzdHJpbmcge1xyXG4gICAgICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAxKVxyXG4gICAgICAgICAgICByZXR1cm4gc3RyaW5nLnJlcGxhY2UoL1xcc1xccyokLywgJycpO1xyXG5cclxuICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IHRyaW1DaGFycy5sZW5ndGg7IGorKykge1xyXG4gICAgICAgICAgICBsZXQgdHJpbUNoYXIgPSB0cmltQ2hhcnNbal07XHJcbiAgICAgICAgICAgIGxldCBpID0gc3RyaW5nLmxlbmd0aCAtIDE7XHJcbiAgICAgICAgICAgIHdoaWxlICghaXNOdWxsT3JVbmRlZmluZWQoc3RyaW5nW2ldKSAmJiBzdHJpbmdbaV0uZW5kc1dpdGgodHJpbUNoYXIpKSB7XHJcbiAgICAgICAgICAgICAgICBzdHJpbmcgPSBOU3RyaW5nLlJlbW92ZShzdHJpbmcsIHN0cmluZy5sZW5ndGgsIDEpO1xyXG4gICAgICAgICAgICAgICAgaS0tO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBzdHJpbmc7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIEZvcm1hdChmb3JtYXQ6IHN0cmluZywgYXJnMDogYW55LCBhcmcxPzogYW55LCBhcmcyPzogYW55LCBhcmczPzogYW55LCBhcmc0PzogYW55LCBhcmc1PzogYW55KTogc3RyaW5nIHtcclxuICAgICAgICBpZiAoIWlzTnVsbE9yVW5kZWZpbmVkKGFyZzApICYmIGFyZzAuY29uc3RydWN0b3IgPT09IEFycmF5KSB7XHJcbiAgICAgICAgICAgIHZhciBzID0gZm9ybWF0LFxyXG4gICAgICAgICAgICAgICAgaSA9IGFyZzAubGVuZ3RoO1xyXG4gICAgICAgICAgICB3aGlsZSAoaS0tKSB7XHJcbiAgICAgICAgICAgICAgICBzID0gcy5yZXBsYWNlKG5ldyBSZWdFeHAoJ1xcXFx7JyArIGkgKyAnXFxcXH0nLCAnZ20nKSwgYXJnMFtpXSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmV0dXJuIHM7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICB2YXIgYXJncyA9IFthcmcwLCBhcmcxLCBhcmcyLCBhcmczLCBhcmc0LCBhcmc1XTtcclxuICAgICAgICAgICAgcmV0dXJuIE5TdHJpbmcuRm9ybWF0KGZvcm1hdCwgYXJncyk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBJc051bGxPckVtcHR5KHN0cjE6IHN0cmluZyB8IE5TdHJpbmcpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gIXN0cjE7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIEZyb21DaGFycyhjaE9yQ2hhcnM6IHN0cmluZ1tdKVxyXG4gICAgc3RhdGljIEZyb21DaGFycyhjaE9yQ2hhcnM6IHN0cmluZ1tdLCBzdGFydEluZGV4OiBudW1iZXIsIGxlbjogbnVtYmVyKVxyXG4gICAgc3RhdGljIEZyb21DaGFycyhjaE9yQ2hhcnM6IHN0cmluZ1tdLCBzdGFydEluZGV4PzogbnVtYmVyLCBsZW4/OiBudW1iZXIpIHtcclxuICAgICAgICBsZXQgc3RyOiBzdHJpbmcgPSBjaE9yQ2hhcnMuam9pbignJyk7XHJcbiAgICAgICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDMpXHJcbiAgICAgICAgICAgIHJldHVybiBzdHIuc3Vic3RyKHN0YXJ0SW5kZXgsIGxlbik7XHJcbiAgICAgICAgcmV0dXJuIHN0cjtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgRnJvbUNoYXIoY2g6IHN0cmluZywgY291bnQpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiAobmV3IEFycmF5PHN0cmluZz4oY291bnQpLmZpbGwoPHN0cmluZz5jaCkpLmpvaW4oJycpO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBUb0NoYXJBcnJheShzdHI6IHN0cmluZyk6IHN0cmluZ1tdIHtcclxuICAgICAgICByZXR1cm4gQXJyYXkuZnJvbShzdHIpO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBDb21wYXJlT3JkaW5hbChzdHJBOiBzdHJpbmcsIHN0ckI6IHN0cmluZyk6IG51bWJlciB7XHJcbiAgICAgICAgbGV0IGxlbkEgPSBzdHJBLmxlbmd0aDtcclxuICAgICAgICBsZXQgbGVuQiA9IHN0ckIubGVuZ3RoO1xyXG5cclxuICAgICAgICBsZXQgbGVuID0gTWF0aC5taW4obGVuQSwgbGVuQik7XHJcblxyXG4gICAgICAgIC8vIGNvbXBhcmUgY2hhcmFjdGVyIGJ5IGNoYXJhY3RlclxyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGVuOyBpKyspIHtcclxuICAgICAgICAgICAgaWYgKHN0ckFbaV0uY2hhckNvZGVBdCgwKSAhPT0gc3RyQltpXS5jaGFyQ29kZUF0KDApKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gc3RyQVtpXS5jaGFyQ29kZUF0KDApIC0gc3RyQltpXS5jaGFyQ29kZUF0KDApO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBpZiBhbGwgY2hhcmFjdGVycyBhcmUgc2FtZSAsIGJ1dCBsZW5ndGggaXMgZGlmZmVyZW50IHJldHVybiB0aGUgZGlmZmVyZW5jZSBvZiBsZW5ndGhcclxuICAgICAgICBpZiAobGVuQSAhPT0gbGVuQikge1xyXG4gICAgICAgICAgICByZXR1cm4gbGVuQSAtIGxlbkI7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBhbGwgY2hhcnMgYXJlIHNhbWUgLCBzbyBzdHJpbmdzIGFyZSBlcXVhbFxyXG4gICAgICAgIHJldHVybiAwO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBQYWRSaWdodChzb3VyY2U6IHN0cmluZywgbWF4TGVuZ3RoOiBudW1iZXIsIGZpbGxTdHJpbmc/OiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgICAgIGlmIChzb3VyY2UubGVuZ3RoID49IG1heExlbmd0aClcclxuICAgICAgICAgICAgcmV0dXJuIHNvdXJjZTtcclxuXHJcbiAgICAgICAgbGV0IGZpbGxMZW4gPSBtYXhMZW5ndGggLSBzb3VyY2UubGVuZ3RoO1xyXG4gICAgICAgIGxldCB0aW1lc1RvUmVwZWF0ID0gTWF0aC5jZWlsKGZpbGxMZW4gLyBmaWxsU3RyaW5nLmxlbmd0aCk7XHJcbiAgICAgICAgbGV0IHRydW5jYXRlZFN0cmluZ0ZpbGxlciA9IGZpbGxTdHJpbmcucmVwZWF0KHRpbWVzVG9SZXBlYXQpLnNsaWNlKDAsIGZpbGxMZW4pO1xyXG4gICAgICAgIHJldHVybiBzb3VyY2UgKyB0cnVuY2F0ZWRTdHJpbmdGaWxsZXI7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIEluc2VydChzdHI6IHN0cmluZywgaW5kZXg6IG51bWJlciwgY2g6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIHN0ci5zdWJzdHIoMCwgaW5kZXgpICsgY2ggKyBzdHIuc3Vic3RyKGluZGV4LCBzdHIubGVuZ3RoIC0gaW5kZXgpO1xyXG4gICAgfVxyXG5cclxuICBzdGF0aWMgUmVwbGFjZShzdHI6c3RyaW5nLCBvcmdTdWJTdHI6IHN0cmluZywgbmV3U3ViU3RyOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgbGV0IHJlc3VsdFN0cjpzdHJpbmcgPSAnJztcclxuXHJcbiAgICAvLyBmaXhlZCBkZWZlY3QgMTUxODEwOiAgcmVwbGFjZSBcIipcIiB3aXRoIFwiXFwqXCIgYmVmb3JlIHdlIHVwZGF0ZSB0aGUgc3RyaW5nIHNvICogd2lsbCBiZSBhcyBjaGFyIGFuZCBub3QgcmVnIGV4cFxyXG4gICAgLy8gYWxzbyBmb3Igc3BlY2lhbCBjaGFycyAkIF4gLiA/ICsgLCBbXHJcbiAgICBvcmdTdWJTdHIgPSBvcmdTdWJTdHIucmVwbGFjZShuZXcgUmVnRXhwKFwiXFxcXFxcXFxcIiwgJ2cnKSwgXCJcXFxcXFxcXFwiKTtcclxuICAgIG9yZ1N1YlN0ciA9IG9yZ1N1YlN0ci5yZXBsYWNlKG5ldyBSZWdFeHAoXCJcXFxcKlwiLCdnJyksIFwiXFxcXFxcKlwiKTtcclxuICAgIG9yZ1N1YlN0ciA9IG9yZ1N1YlN0ci5yZXBsYWNlKG5ldyBSZWdFeHAoXCJcXFxcJFwiLCdnJyksIFwiXFxcXFxcJFwiKTtcclxuICAgIG9yZ1N1YlN0ciA9IG9yZ1N1YlN0ci5yZXBsYWNlKG5ldyBSZWdFeHAoXCJcXFxcXlwiLCdnJyksIFwiXFxcXFxcXlwiKTtcclxuICAgIG9yZ1N1YlN0ciA9IG9yZ1N1YlN0ci5yZXBsYWNlKG5ldyBSZWdFeHAoXCJcXFxcLlwiLCdnJyksIFwiXFxcXFxcLlwiKTtcclxuICAgIG9yZ1N1YlN0ciA9IG9yZ1N1YlN0ci5yZXBsYWNlKG5ldyBSZWdFeHAoXCJcXFxcP1wiLCdnJyksIFwiXFxcXFxcP1wiKTtcclxuICAgIG9yZ1N1YlN0ciA9IG9yZ1N1YlN0ci5yZXBsYWNlKG5ldyBSZWdFeHAoXCJcXFxcK1wiLCdnJyksIFwiXFxcXFxcK1wiKTtcclxuICAgIG9yZ1N1YlN0ciA9IG9yZ1N1YlN0ci5yZXBsYWNlKG5ldyBSZWdFeHAoXCJcXFxcLFwiLCdnJyksIFwiXFxcXFxcLFwiKTtcclxuICAgIG9yZ1N1YlN0ciA9IG9yZ1N1YlN0ci5yZXBsYWNlKG5ldyBSZWdFeHAoXCJcXFxcW1wiLCdnJyksIFwiXFxcXFxcW1wiKTtcclxuICAgIG9yZ1N1YlN0ciA9IG9yZ1N1YlN0ci5yZXBsYWNlKG5ldyBSZWdFeHAoXCJcXFxcfFwiLCdnJyksIFwiXFxcXFxcfFwiKTtcclxuXHJcbiAgICB0cnkge1xyXG4gICAgICByZXN1bHRTdHIgPSBzdHIucmVwbGFjZShuZXcgUmVnRXhwKG9yZ1N1YlN0ciwnZycpLCBuZXdTdWJTdHIpO1xyXG4gICAgfVxyXG4gICAgY2F0Y2ggKGUpIHtcclxuICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbihlLm1lc3NhZ2UpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHJlc3VsdFN0cjtcclxuICB9XHJcbn1cclxuIl19
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { interval } from 'rxjs';
|
|
2
|
+
export class Thread {
|
|
3
|
+
constructor() {
|
|
4
|
+
this.ManagedThreadId = 0;
|
|
5
|
+
this.ManagedThreadId = Thread.nextId++;
|
|
6
|
+
}
|
|
7
|
+
static async Sleep(millisecondsTimeout) {
|
|
8
|
+
await new Promise((resolve) => {
|
|
9
|
+
let timer = interval(millisecondsTimeout);
|
|
10
|
+
let subscription = timer.subscribe(() => { subscription.unsubscribe(); resolve(); });
|
|
11
|
+
}).then();
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
Thread.nextId = 1;
|
|
15
|
+
Thread.CurrentThread = new Thread();
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVGhyZWFkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbXNjb3JlbGliL3NyYy9UaHJlYWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUU5QixNQUFNLE9BQU8sTUFBTTtJQUtqQjtRQUZBLG9CQUFlLEdBQVcsQ0FBQyxDQUFDO1FBRzFCLElBQUksQ0FBQyxlQUFlLEdBQUcsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ3pDLENBQUM7SUFPTSxNQUFNLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxtQkFBMkI7UUFFbkQsTUFBTSxJQUFJLE9BQU8sQ0FBTyxDQUFDLE9BQU8sRUFBRSxFQUFFO1lBQ2xDLElBQUksS0FBSyxHQUFHLFFBQVEsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1lBQzFDLElBQUksWUFBWSxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUUsR0FBRyxFQUFFLEdBQUUsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQztRQUN0RixDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNaLENBQUM7O0FBbkJjLGFBQU0sR0FBVyxDQUFDLENBQUM7QUFDM0Isb0JBQWEsR0FBVyxJQUFJLE1BQU0sRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtpbnRlcnZhbH0gZnJvbSAncnhqcyc7XHJcblxyXG5leHBvcnQgY2xhc3MgVGhyZWFkIHtcclxuICBwcml2YXRlIHN0YXRpYyBuZXh0SWQ6IG51bWJlciA9IDE7XHJcbiAgc3RhdGljIEN1cnJlbnRUaHJlYWQ6IFRocmVhZCA9IG5ldyBUaHJlYWQoKTtcclxuICBNYW5hZ2VkVGhyZWFkSWQ6IG51bWJlciA9IDA7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgdGhpcy5NYW5hZ2VkVGhyZWFkSWQgPSBUaHJlYWQubmV4dElkKys7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgRnJlZSB0aGUgdGhyZWFkIHNvIGl0IHdpbGwgYmUgYWJsZSB0byBkbyBvdGhlciB3b3JrLCBsaWtlIGd1aSBldmVudHNcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwibWlsbGlzZWNvbmRzVGltZW91dFwiPiB0aW1lb3V0IGluIG1pbGxpc2Vjb25kczwvcGFyYW0+XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgYXN5bmMgU2xlZXAobWlsbGlzZWNvbmRzVGltZW91dDogbnVtYmVyKTogUHJvbWlzZTx2b2lkPlxyXG4gIHtcclxuICAgIGF3YWl0IG5ldyBQcm9taXNlPHZvaWQ+KChyZXNvbHZlKSA9PiB7XHJcbiAgICAgIGxldCB0aW1lciA9IGludGVydmFsKG1pbGxpc2Vjb25kc1RpbWVvdXQpO1xyXG4gICAgICBsZXQgc3Vic2NyaXB0aW9uID0gdGltZXIuc3Vic2NyaWJlKCAoKSA9PiB7c3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7IHJlc29sdmUoKTt9KTtcclxuICAgIH0pLnRoZW4oKTtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export function isNullOrUndefined(object) {
|
|
2
|
+
return object == undefined || object == null;
|
|
3
|
+
}
|
|
4
|
+
export function isUndefined(object) {
|
|
5
|
+
return object == undefined;
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tc2NvcmVsaWIvc3JjL1V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sVUFBVSxpQkFBaUIsQ0FBQyxNQUFXO0lBQzNDLE9BQU8sTUFBTSxJQUFJLFNBQVMsSUFBSSxNQUFNLElBQUksSUFBSSxDQUFDO0FBQy9DLENBQUM7QUFDRCxNQUFNLFVBQVUsV0FBVyxDQUFDLE1BQVc7SUFDckMsT0FBTyxNQUFNLElBQUksU0FBUyxDQUFDO0FBQzdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24gaXNOdWxsT3JVbmRlZmluZWQob2JqZWN0OiBhbnkpOiBib29sZWFuIHtcclxuICByZXR1cm4gb2JqZWN0ID09IHVuZGVmaW5lZCB8fCBvYmplY3QgPT0gbnVsbDtcclxufVxyXG5leHBvcnQgZnVuY3Rpb24gaXNVbmRlZmluZWQob2JqZWN0OiBhbnkpOiBib29sZWFuIHtcclxuICByZXR1cm4gb2JqZWN0ID09IHVuZGVmaW5lZDtcclxufVxyXG4iXX0=
|
|
File without changes
|
|
File without changes
|
|
@@ -1,10 +1,16 @@
|
|
|
1
|
-
import { isNullOrUndefined, isUndefined } from 'util';
|
|
2
1
|
import * as momentNs from 'moment';
|
|
3
2
|
import { TextEncoder, TextDecoder } from 'text-encoding';
|
|
4
|
-
import
|
|
3
|
+
import * as StackTrace$1 from 'stacktrace-js';
|
|
5
4
|
import { __awaiter } from 'tslib';
|
|
6
5
|
import { interval } from 'rxjs';
|
|
7
6
|
|
|
7
|
+
function isNullOrUndefined(object) {
|
|
8
|
+
return object == undefined || object == null;
|
|
9
|
+
}
|
|
10
|
+
function isUndefined(object) {
|
|
11
|
+
return object == undefined;
|
|
12
|
+
}
|
|
13
|
+
|
|
8
14
|
class Exception {
|
|
9
15
|
constructor(messageOrError) {
|
|
10
16
|
this.name = "Exception";
|
|
@@ -942,7 +948,7 @@ class Stack {
|
|
|
942
948
|
class StackFrame {
|
|
943
949
|
constructor(skipFrames) {
|
|
944
950
|
this.stackFrame = null;
|
|
945
|
-
let stackFrames = getSync();
|
|
951
|
+
let stackFrames = StackTrace$1.getSync();
|
|
946
952
|
if (skipFrames < 0 || skipFrames >= stackFrames.length)
|
|
947
953
|
throw new Error("Argument out of range");
|
|
948
954
|
this.stackFrame = stackFrames[skipFrames];
|
|
@@ -954,7 +960,7 @@ class StackFrame {
|
|
|
954
960
|
|
|
955
961
|
class StackTrace {
|
|
956
962
|
GetFrames() {
|
|
957
|
-
return getSync();
|
|
963
|
+
return StackTrace$1.getSync();
|
|
958
964
|
}
|
|
959
965
|
}
|
|
960
966
|
|
|
@@ -1100,5 +1106,5 @@ class XmlConvert {
|
|
|
1100
1106
|
}
|
|
1101
1107
|
}
|
|
1102
1108
|
|
|
1103
|
-
export { $$, $0, $9, $A, $AMPERSAND, $AT, $BACKSLASH, $BANG, $BAR, $BT, $CARET, $COLON, $COMMA, $CR, $DQ, $E, $EOF, $EQ, $F, $FF, $GT, $HASH, $LBRACE, $LBRACKET, $LF, $LPAREN, $LT, $MINUS, $NBSP, $PERCENT, $PERIOD, $PIPE, $PLUS, $QUESTION, $RBRACE, $RBRACKET, $RPAREN, $SEMICOLON, $SLASH, $SPACE, $SQ, $STAR, $TAB, $TILDA, $VTAB, $X, $Z, $_, $a, $e, $f, $n, $r, $t, $u, $v, $x, $z, ApplicationException, Array_Enumerator, BitArray, Char, CultureInfo, DateTime, DateTimeKind, Debug, Dictionary, Encoding, Exception, HashUtils, Hashtable, ISO_8859_1_Encoding, Int32, Int64, List, NChar, NNumber, NString, NotImplementedException, NumberFormatInfo, NumberStyles, RefParam, Stack, StackFrame, StackTrace, StringBuilder, Thread, WebException, XmlConvert, isAsciiHexDigit, isAsciiLetter, isDigit, isLowerCase, isUpperCase, isWhitespace };
|
|
1104
|
-
//# sourceMappingURL=magic-xpa-mscorelib.
|
|
1109
|
+
export { $$, $0, $9, $A, $AMPERSAND, $AT, $BACKSLASH, $BANG, $BAR, $BT, $CARET, $COLON, $COMMA, $CR, $DQ, $E, $EOF, $EQ, $F, $FF, $GT, $HASH, $LBRACE, $LBRACKET, $LF, $LPAREN, $LT, $MINUS, $NBSP, $PERCENT, $PERIOD, $PIPE, $PLUS, $QUESTION, $RBRACE, $RBRACKET, $RPAREN, $SEMICOLON, $SLASH, $SPACE, $SQ, $STAR, $TAB, $TILDA, $VTAB, $X, $Z, $_, $a, $e, $f, $n, $r, $t, $u, $v, $x, $z, ApplicationException, Array_Enumerator, BitArray, Char, CultureInfo, DateTime, DateTimeKind, Debug, Dictionary, Encoding, Exception, HashUtils, Hashtable, ISO_8859_1_Encoding, Int32, Int64, List, NChar, NNumber, NString, NotImplementedException, NumberFormatInfo, NumberStyles, RefParam, Stack, StackFrame, StackTrace, StringBuilder, Thread, WebException, XmlConvert, isAsciiHexDigit, isAsciiLetter, isDigit, isLowerCase, isNullOrUndefined, isUndefined, isUpperCase, isWhitespace };
|
|
1110
|
+
//# sourceMappingURL=magic-xpa-mscorelib.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"magic-xpa-mscorelib.mjs","sources":["../../../../projects/mscorelib/src/Utils.ts","../../../../projects/mscorelib/src/Exception.ts","../../../../projects/mscorelib/src/ApplicationException.ts","../../../../projects/mscorelib/src/ArrayEnumerator.ts","../../../../projects/mscorelib/src/BitArray.ts","../../../../projects/mscorelib/src/Char.ts","../../../../projects/mscorelib/src/CultureInfo.ts","../../../../projects/mscorelib/src/DateTime.ts","../../../../projects/mscorelib/src/Debug.ts","../../../../projects/mscorelib/src/Dictionary.ts","../../../../projects/mscorelib/src/Encoding.ts","../../../../projects/mscorelib/src/HashTable.ts","../../../../projects/mscorelib/src/Int32.ts","../../../../projects/mscorelib/src/Int64.ts","../../../../projects/mscorelib/src/ISO_8859_1_Encoding.ts","../../../../projects/mscorelib/src/List.ts","../../../../projects/mscorelib/src/StringUtils.ts","../../../../projects/mscorelib/src/NChar.ts","../../../../projects/mscorelib/src/NotImplementedException.ts","../../../../projects/mscorelib/src/NNumber.ts","../../../../projects/mscorelib/src/NString.ts","../../../../projects/mscorelib/src/NumberFormatInfo.ts","../../../../projects/mscorelib/src/RefParam.ts","../../../../projects/mscorelib/src/Stack.ts","../../../../projects/mscorelib/src/StackFrame.ts","../../../../projects/mscorelib/src/StackTrace.ts","../../../../projects/mscorelib/src/StringBuilder.ts","../../../../projects/mscorelib/src/Thread.ts","../../../../projects/mscorelib/src/WebException.ts","../../../../projects/mscorelib/src/XmlConvert.ts"],"sourcesContent":["export function isNullOrUndefined(object: any): boolean {\r\n return object == undefined || object == null;\r\n}\r\nexport function isUndefined(object: any): boolean {\r\n return object == undefined;\r\n}\r\n","/// <summary>\r\n/// The base class of all exceptions\r\n/// </summary>\r\n\r\nimport {isNullOrUndefined} from \"./Utils\";\r\n\r\nexport class Exception{\r\n\r\n name: string = \"Exception\";\r\n message: string = \"\";\r\n stack: string = \"\";\r\n\r\n\r\n errorLevel = 1;\r\n /// <summary>\r\n /// constructor\r\n /// </summary>\r\n /// <param name=\"message\" denotes the message of exception></param>\r\n /// <param name=\"name\" denotes the type of exception></param>\r\n constructor(message?: string)\r\n constructor(error: Error)\r\n constructor(messageOrError: string | Error) {\r\n if (!isNullOrUndefined(messageOrError)) {\r\n if (messageOrError instanceof Error) {\r\n this.stack = (<Error>messageOrError).stack;\r\n this.message = (<Error>messageOrError).message;\r\n }\r\n else {\r\n this.message = <string>messageOrError;\r\n this.stack = new Error().stack;\r\n }\r\n }\r\n }\r\n\r\n /// <summary>\r\n /// get the message of exception\r\n /// </summary>\r\n get Message() {\r\n return this.message;\r\n }\r\n\r\n /// <summary>\r\n /// get the stack trace of exception\r\n /// </summary>\r\n get StackTrace() {\r\n\r\n let stackTrace = this.stack || '';\r\n let stackLines = stackTrace.split(\"\\n\").map(function (line) { return line.trim(); });\r\n\r\n // On some browsers (e.g. Chrome), the statck includes a title as \"Error\", so remove it.\r\n stackTrace = stackLines.splice(stackLines[0] === 'Error' ? this.errorLevel + 1 : this.errorLevel).join(\"\\n\");\r\n\r\n return \"\\n\" + stackTrace;\r\n }\r\n\r\n /// <summary>\r\n /// get the type of exception\r\n /// </summary>\r\n public GetType(): string {\r\n return this.name;\r\n }\r\n}\r\n\r\n\r\n","import {Exception} from \"./Exception\";\r\nimport {isUndefined} from \"./Utils\";\r\n\r\nexport class ApplicationException extends Exception {\r\n\r\n InnerException: Exception = null;\r\n\r\n constructor(message: string = \"\", innerException?: Exception) {\r\n super(message);\r\n this.name = 'ApplicationException';\r\n this.InnerException = (isUndefined(innerException) ? null : innerException);\r\n this.errorLevel = 2;\r\n }\r\n}\r\n","\r\nexport interface IEnumerable<T> {\r\n GetEnumerator(): Array_Enumerator<T>;\r\n}\r\n\r\nexport class Array_Enumerator<T> {\r\n private array: T[];\r\n private index: number = -1;\r\n\r\n constructor(array: T[]) {\r\n this.array = array;\r\n }\r\n\r\n MoveNext(): boolean {\r\n this.index++;\r\n return this.index < this.array.length;\r\n }\r\n\r\n get Current(): T {\r\n return this.array[this.index];\r\n }\r\n\r\n Dispose(): void {\r\n }\r\n}\r\n","/// <summary>\r\n/// Manages a compact array of bit values,\r\n// which are represented as Booleans, where true indicates that the bit is on (1) and false indicates the bit is off (0).\r\n/// </summary>\r\nexport class BitArray {\r\n\r\n private array: Array<boolean> = null; // array of boolean values\r\n\r\n /// <summary>\r\n /// returns the length of array\r\n /// </summary>\r\n /// <returns></returns>\r\n public get Length() {\r\n return this.array.length;\r\n }\r\n\r\n constructor(length: number) {\r\n this.array = new Array(length).fill(false);\r\n }\r\n\r\n /// <summary>\r\n /// get the value of flag at specified index\r\n /// </summary>\r\n /// <returns></returns>\r\n public Get(index: number): boolean {\r\n return this.array[index];\r\n }\r\n\r\n /// <summary>\r\n /// set the value of flag at specified index\r\n /// </summary>\r\n /// <returns></returns>\r\n public Set(index: number, value: boolean) {\r\n this.array[index] = value;\r\n }\r\n\r\n\r\n}\r\n","export class Char {\r\n static MinValue: string = '\\0';\r\n static MaxValue: string = String.fromCharCode(0xFFFF);\r\n}\r\n","export class CultureInfo {\r\n static InvariantCulture: CultureInfo = new CultureInfo();\r\n}\r\n","import * as momentNs from 'moment';\r\nconst moment = momentNs;\r\n\r\nexport enum DateTimeKind {\r\n Local,\r\n Utc\r\n}\r\n\r\n// @dynamic\r\nexport class DateTime {\r\n private dt: Date = null;\r\n private kind: DateTimeKind = null;\r\n\r\n // the number of .net ticks at the unix epoch\r\n private readonly epochTicks = 621355968000000000;\r\n\r\n // there are 10000 .net ticks per millisecond\r\n private readonly ticksPerMillisecond = 10000;\r\n\r\n get Ticks(): number {\r\n // https://stackoverflow.com/questions/7966559/how-to-convert-javascript-date-object-to-ticks\r\n // TODO - check if we need this or to use Misc.getSystemMilliseconds()\r\n return ((this.dt.getTime() * this.ticksPerMillisecond) + this.epochTicks) - (this.dt.getTimezoneOffset() * 600000000);\r\n }\r\n\r\n get Year(): number {\r\n return this.kind === DateTimeKind.Utc ? this.dt.getUTCFullYear() : this.dt.getFullYear();\r\n }\r\n\r\n get Month(): number {\r\n return this.kind === DateTimeKind.Utc ? this.dt.getUTCMonth() + 1 : this.dt.getMonth() + 1;\r\n }\r\n\r\n get Day(): number {\r\n return this.kind === DateTimeKind.Utc ? this.dt.getUTCDate() : this.dt.getDate();\r\n }\r\n\r\n get Hour(): number {\r\n return this.kind === DateTimeKind.Utc ? this.dt.getUTCHours() : this.dt.getHours();\r\n }\r\n\r\n get Minute(): number {\r\n return this.kind === DateTimeKind.Utc ? this.dt.getUTCMinutes() : this.dt.getMinutes();\r\n }\r\n\r\n get Second(): number {\r\n return this.kind === DateTimeKind.Utc ? this.dt.getUTCSeconds() : this.dt.getSeconds();\r\n }\r\n\r\n get Millisecond(): number {\r\n return this.kind === DateTimeKind.Utc ? this.dt.getUTCMilliseconds() : this.dt.getMilliseconds();\r\n }\r\n\r\n\r\n constructor(date: Date);\r\n constructor(year: number, month: number, day: number);\r\n constructor(year: number, month: number, day: number, hour : number, minute : number, second: number);\r\n constructor(yearOrDate: any, month?: number, day?: number, hour?: number, minute?: number, second?: number) {\r\n if (arguments.length === 1) {\r\n this.dt = <Date>yearOrDate;\r\n }\r\n if (arguments.length === 3) {\r\n this.dt = new Date(<number>yearOrDate, month - 1, day);\r\n }\r\n if (arguments.length === 6) {\r\n this.dt = new Date(<number>yearOrDate, month - 1, day, hour, minute, second);\r\n }\r\n this.kind = DateTimeKind.Local;\r\n }\r\n\r\n\r\n\r\n\r\n Format(formatString: string): string {\r\n return moment(this.dt).format(formatString);\r\n }\r\n\r\n static get UtcNow(): DateTime {\r\n let d = new DateTime(new Date());\r\n d.kind = DateTimeKind.Utc;\r\n return d;\r\n }\r\n\r\n static get Now(): DateTime {\r\n let d = new DateTime(new Date());\r\n d.kind = DateTimeKind.Local;\r\n return d;\r\n }\r\n\r\n static GetTotalSecondsFromMidnight(utcTime: boolean, date: Date): number {\r\n let hh = utcTime ? date.getUTCHours() : date.getHours();\r\n let mm = utcTime ? date.getUTCMinutes() : date.getMinutes();\r\n let ss = utcTime ? date.getUTCSeconds() : date.getSeconds();\r\n\r\n return hh * 60 * 60 + mm * 60 + ss;\r\n }\r\n\r\n static GetTotalMilliSecondsFromMidnight(utcTime: boolean, date: Date): number {\r\n let hh = utcTime ? date.getUTCHours() : date.getHours();\r\n let mm = utcTime ? date.getUTCMinutes() : date.getMinutes();\r\n let ss = utcTime ? date.getUTCSeconds() : date.getSeconds();\r\n let ms = utcTime ? date.getUTCSeconds() : date.getMilliseconds();\r\n return (hh * 60 * 60 + mm * 60 + ss) * 1000 + ms;\r\n }\r\n}\r\n\r\n\r\n","export class Debug {\r\n static WriteLine(text: string): void {\r\n console.log(text);\r\n }\r\n\r\n static Assert(assertCondtion: boolean, message?: string): void {\r\n if (!assertCondtion)\r\n alert(message);\r\n }\r\n}\r\n","import {RefParam} from \"./RefParam\";\r\nimport {Exception} from \"./Exception\";\r\n\r\nexport class Dictionary<V> {\r\n private values: Array<V> = new Array();\r\n\r\n get_Item(key: string): V {\r\n if (this.values.hasOwnProperty(key))\r\n return this.values[key];\r\n else\r\n return null;\r\n }\r\n\r\n set_Item(key: string, value: V) {\r\n this.values[key] = value;\r\n }\r\n\r\n Add(key: string, value: V) {\r\n if (this.values.hasOwnProperty(key))\r\n throw new Exception(\"An item with the same key has already been added\");\r\n else\r\n this.values[key] = value;\r\n }\r\n\r\n ContainsKey(key: string): boolean {\r\n return this.values.hasOwnProperty(key);\r\n }\r\n\r\n TryGetValue(key: string, pvalue: RefParam<V>): boolean {\r\n if (this.values.hasOwnProperty(key)) {\r\n pvalue.value = this.values[key];\r\n return true;\r\n }\r\n else {\r\n pvalue.value = null;\r\n return false;\r\n }\r\n }\r\n\r\n Remove(key: string): void {\r\n delete this.values[key];\r\n }\r\n\r\n get Keys(): string[] {\r\n return Object.keys(this.values);\r\n }\r\n}\r\n","import {TextDecoder, TextEncoder} from \"text-encoding\";\r\n\r\nexport class Encoding {\r\n static readonly ASCII: Encoding = new Encoding(\"ascii\");\r\n static readonly UTF8: Encoding = new Encoding(\"utf-8\");\r\n static readonly Unicode: Encoding = new Encoding(\"utf-16le\");\r\n\r\n static readonly CodePageToEncodingMap = Encoding.PopulateCodePageToEncodingMap();\r\n\r\n private readonly textEncoder: TextEncoder = null;\r\n private readonly textDecoder: TextDecoder = null;\r\n constructor(private label: string) {\r\n this.textEncoder = new TextEncoder(label, {NONSTANDARD_allowLegacyEncoding: true});\r\n this.textDecoder = new TextDecoder(label, {NONSTANDARD_allowLegacyEncoding: true});\r\n }\r\n\r\n GetBytes(str: string): Uint8Array {\r\n\r\n if (str === null)\r\n throw new Error(\"Argument is null\");\r\n\r\n let bytes: Uint8Array = null;\r\n\r\n try {\r\n bytes = this.textEncoder.encode(str);\r\n }\r\n catch (ex) {\r\n // In C#, if any character is not within the range of specified charset, it is replaced by '?'.\r\n // TextEncoder.encode() throws an error in such a case.\r\n // We can modify the implementation of TextEncoder.encode() to put '?' instead of throwing error.\r\n // But, it can be problematic if we change the library version.\r\n // So, we will catch this error and handle the encoding ourselves.\r\n bytes = new Uint8Array(str.length * 3);\r\n let bytesCount: number = 0;\r\n let tmpBytes: Uint8Array;\r\n\r\n for (let i = 0; i < str.length; i++)\r\n {\r\n try {\r\n tmpBytes = this.textEncoder.encode(str[i]);\r\n bytes.set(tmpBytes, bytesCount);\r\n bytesCount += tmpBytes.length;\r\n }\r\n catch (ex) {\r\n bytes[bytesCount++] = \"?\".charCodeAt(0);\r\n }\r\n }\r\n\r\n bytes = bytes.subarray(0, 0 + bytesCount);\r\n }\r\n\r\n return bytes;\r\n }\r\n\r\n GetByteCount(str: string): number {\r\n // TODO: this is not the best way.\r\n return this.GetBytes(str).length;\r\n }\r\n\r\n GetString(bytes: Uint8Array, index: number, count: number): string {\r\n let str: string = null;\r\n\r\n if (bytes === null)\r\n throw new Error(\"Argument is null\");\r\n\r\n if (index < 0 || count < 0 || (index + count) > bytes.length)\r\n throw new Error(\"Argument out of range\");\r\n\r\n bytes = bytes.subarray(index, index + count);\r\n\r\n try {\r\n str = this.textDecoder.decode(bytes);\r\n }\r\n catch (ex) {\r\n }\r\n\r\n return str;\r\n }\r\n\r\n static GetEncoding(codepage: number): Encoding {\r\n let label: string = Encoding.CodePageToEncodingMap[codepage];\r\n\r\n if (label == null)\r\n throw new Error(\"Invalid codepage.\");\r\n\r\n return new Encoding(label);\r\n }\r\n private static PopulateCodePageToEncodingMap(): any {\r\n\r\n let hashTable = new Object;\r\n\r\n // These map is similar to enc_map_table of exp_xml.cpp\r\n hashTable[20106] = \"DIN_66003\"; // IA5 (German)\r\n hashTable[20107] = \"SEN_850200_B\"; // IA5 (Swedish)\r\n hashTable[50932] = \"_autodetect\"; // Japanese (Auto Select)\r\n hashTable[20108] = \"NS_4551-1\"; // IA5 (Norwegian)\r\n hashTable[50949] = \"_autodetect_kr\"; // Korean (Auto Select)\r\n hashTable[950] = \"big5\"; // Chinese Traditional (Big5)\r\n hashTable[50221] = \"csISO2022JP\"; // Japanese (JIS-Allow 1 byte Kana)\r\n hashTable[51949] = \"euc-kr\"; // Korean (EUC)\r\n hashTable[936] = \"gb2312\"; // Chinese Simplified (GB2312)\r\n hashTable[52936] = \"hz-gb-2312\"; // Chinese Simplified (HZ)\r\n hashTable[852] = \"ibm852\"; // Central European (DOS)\r\n hashTable[866] = \"ibm866\"; // Cyrillic Alphabet (DOS)\r\n hashTable[20105] = \"irv\"; // IA5 (IRV)\r\n hashTable[50220] = \"iso-2022-jp\"; // Japanese (JIS)\r\n hashTable[50222] = \"iso-2022-jp\"; // Japanese (JIS-Allow 1 byte Kana)\r\n hashTable[50225] = \"iso-2022-kr\"; // Korean (ISO)\r\n hashTable[28591] = \"iso-8859-1\"; // Western Alphabet (ISO)\r\n hashTable[28592] = \"iso-8859-2\"; // Central European Alphabet (ISO)\r\n hashTable[28593] = \"iso-8859-3\"; // Latin 3 Alphabet (ISO)\r\n hashTable[28594] = \"iso-8859-4\"; // Baltic Alphabet (ISO)\r\n hashTable[28595] = \"iso-8859-5\"; // Cyrillic Alphabet (ISO)\r\n hashTable[28596] = \"iso-8859-6\"; // Arabic Alphabet (ISO)\r\n hashTable[28597] = \"iso-8859-7\"; // Greek Alphabet (ISO)\r\n hashTable[28598] = \"iso-8859-8\"; // Hebrew Alphabet (ISO)\r\n hashTable[20866] = \"koi8-r\"; // Cyrillic Alphabet (KOI8-R)\r\n hashTable[949] = \"ks_c_5601\"; // Korean\r\n hashTable[932] = \"shift-jis\"; // Japanese (Shift-JIS)\r\n hashTable[1200] = \"unicode\"; // Universal Alphabet\r\n hashTable[1201] = \"unicodeFEFF\"; // Universal Alphabet (Big-Endian)\r\n hashTable[65000] = \"utf-7\"; // Universal Alphabet (UTF-7)\r\n hashTable[65001] = \"utf-8\"; // Universal Alphabet (UTF-8)\r\n hashTable[1250] = \"windows-1250\"; // Central European Alphabet (Windows)\r\n hashTable[1251] = \"windows-1251\"; // Cyrillic Alphabet (Windows)\r\n hashTable[1252] = \"windows-1252\"; // Western Alphabet (Windows)\r\n hashTable[1253] = \"windows-1253\"; // Greek Alphabet (Windows)\r\n hashTable[1254] = \"windows-1254\"; // Turkish Alphabet\r\n hashTable[1255] = \"windows-1255\"; // Hebrew Alphabet (Windows)\r\n hashTable[1256] = \"windows-1256\"; // Arabic Alphabet (Windows)\r\n hashTable[1257] = \"windows-1257\"; // Baltic Alphabet (Windows)\r\n hashTable[1258] = \"windows-1258\"; // Vietnamese Alphabet (Windows)\r\n hashTable[874] = \"windows-874\"; // Thai (Windows)\r\n hashTable[20127] = \"US-ASCII\"; // us-ascii\r\n hashTable[51932] = \"x-euc\"; // Japanese (EUC)\r\n\r\n return hashTable;\r\n }\r\n\r\n // return the name of encoding used \r\n public toString(): string {\r\n return this.label;\r\n }\r\n}\r\n","// Reference: https://github.com/rkostrzewski/hashtable-ts/blob/master/src/hashtable.ts\r\n\r\nimport {Array_Enumerator} from \"./ArrayEnumerator\";\r\nimport {Exception} from \"./Exception\";\r\nimport {Encoding} from \"./Encoding\";\r\n\r\nexport class HashUtils {\r\n // Pay attention that in server there is the same function and it must\r\n // return the same hash value.\r\n static GetHashCode(str: string): number {\r\n let bytes: Uint8Array = null;\r\n\r\n bytes = Encoding.UTF8.GetBytes(str);\r\n\r\n return HashUtils.getHashCode(bytes);\r\n }\r\n\r\n private static getHashCode(byteArray: Uint8Array) {\r\n let hashval: number;\r\n\r\n let hash1: number = 5381;\r\n let hash2: number = hash1;\r\n let c: number;\r\n\r\n for (let i: number = 0; i < byteArray.length; i += 2) {\r\n c = byteArray[i];\r\n hash1 = ((hash1 << 5) + hash1) ^ c;\r\n if ((i + 1) === byteArray.length)\r\n break;\r\n c = byteArray[i + 1];\r\n hash2 = ((hash2 << 5) + hash2) ^ c;\r\n hash1 = hash1 & 0xffff;\r\n hash2 = hash2 & 0xffff;\r\n }\r\n\r\n let hash3: number = (hash2 * 13577);\r\n hashval = (hash1 + hash3);\r\n return (hashval);\r\n }\r\n}\r\n\r\nexport interface IHashCode {\r\n GetHashCode(): number;\r\n}\r\n\r\ntype BucketElement<TKey, TValue> = { key: TKey, value: TValue };\r\ntype Bucket<TKey, TValue> = [BucketElement<TKey, TValue>];\r\n\r\nconst HashTableLoadFactor = 0.75;\r\n\r\n// Hashtable implementation for key TKey and Value TValue\r\nexport class Hashtable<TKey extends (IHashCode | string | number), TValue> {\r\n\r\n private _buckets: Bucket<TKey, TValue>[] = []; // total no. of buckets\r\n private _elementsCount = 0; // total elements\r\n private _bucketCount: number = 0;\r\n private _loadFactor: number = 0;\r\n\r\n constructor(bucketCount: number = 8, loadFactor: number = HashTableLoadFactor) {\r\n this._bucketCount = bucketCount;\r\n this._loadFactor = loadFactor;\r\n\r\n if (this._bucketCount % 2 !== 0) {\r\n throw new Exception('Bucket count must be a positive number and be multiple of 2.');\r\n }\r\n }\r\n\r\n // Generic Hash funtion\r\n private HashFunction(key): number {\r\n if (typeof key.GetHashCode === 'function') {\r\n return key.GetHashCode();\r\n } else if (key.constructor === String) {\r\n return HashUtils.GetHashCode(key.toString());\r\n } else if (key.constructor === Number) {\r\n return +key;\r\n }\r\n return 0;\r\n }\r\n\r\n // returns elementCount\r\n get Count() {\r\n return this._elementsCount;\r\n }\r\n\r\n // returns ValueCollection (Array Enumerator)\r\n get Values(): Array_Enumerator<TValue> {\r\n let array: Array<TValue> = [];\r\n this._buckets.forEach(b => b.forEach(item => {\r\n array.push(item.value);\r\n }));\r\n return new Array_Enumerator(array);\r\n }\r\n\r\n // returns KeyCollection (Array Enumerator)\r\n get Keys(): Array_Enumerator<TKey> {\r\n let array: Array<TKey> = [];\r\n this._buckets.forEach(b => b.forEach(item => {\r\n array.push(item.key);\r\n }));\r\n return new Array_Enumerator(array);\r\n }\r\n\r\n // adds item to Hashtable\r\n Add(key: TKey, value: TValue): void {\r\n this.Insert(key, value, true);\r\n }\r\n\r\n // sets item in Hashtable\r\n set_Item(key: TKey, value: TValue) {\r\n this.Insert(key, value, false);\r\n }\r\n\r\n // Insert element in Hashtable\r\n private Insert(key: TKey, value: TValue, add: boolean): void {\r\n let bucketIndex = this.GetBucketIndex(key);\r\n\r\n if (typeof this._buckets[bucketIndex] === \"undefined\") {\r\n this._buckets[bucketIndex] = <Bucket<TKey, TValue>><unknown>[];\r\n }\r\n\r\n if (this._buckets[bucketIndex].find(x => x.key === key)) {\r\n if (add) {\r\n throw new Exception('Item with provided key already exists!');\r\n } else {\r\n this.Remove(key);\r\n return;\r\n }\r\n }\r\n\r\n this._buckets[bucketIndex].push({key: key, value: value});\r\n\r\n this._elementsCount++;\r\n if (this._elementsCount > this._bucketCount * this._loadFactor) {\r\n this.Resize(this._bucketCount * 2);\r\n }\r\n }\r\n\r\n// Gets value for key TKey\r\n get_Item(key: TKey): TValue {\r\n let bucketIndex = this.GetBucketIndex(key);\r\n let bucket = this._buckets[bucketIndex];\r\n if (!bucket) {\r\n return null;\r\n }\r\n\r\n let item = bucket.find(x => x.key === key);\r\n if (item) {\r\n return item.value;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n // Returns if key TKey is present in Hashtable\r\n ContainsKey(key: TKey): boolean {\r\n let bucketIndex = this.GetBucketIndex(key);\r\n let bucket = this._buckets[bucketIndex];\r\n if (!bucket) {\r\n return false;\r\n }\r\n\r\n let itemIndex = bucket.findIndex(x => x.key === key);\r\n return (itemIndex > -1);\r\n }\r\n\r\n // Removes item with key TKey from Hashtable\r\n Remove(key: TKey) {\r\n let bucketIndex = this.GetBucketIndex(key);\r\n let bucket = this._buckets[bucketIndex];\r\n if (!bucket) {\r\n return;\r\n }\r\n\r\n let itemIndex = bucket.findIndex(x => x.key === key);\r\n if (itemIndex > -1) {\r\n bucket.splice(itemIndex, 1);\r\n this._elementsCount--;\r\n if (this._elementsCount <= this._bucketCount * (1 - this._loadFactor)) {\r\n this.Resize(this._bucketCount / 2);\r\n }\r\n }\r\n }\r\n\r\n // Resize bucket (Hashtable)\r\n private Resize(newBucketCount: number) {\r\n let _oldBuckets = this._buckets;\r\n this._elementsCount = 0;\r\n this._buckets = [];\r\n this._bucketCount = newBucketCount;\r\n\r\n _oldBuckets.forEach(b => b.forEach(item => this.Add(item.key, item.value)));\r\n }\r\n\r\n// returns bucketIndex for key\r\n private GetBucketIndex(key: TKey) {\r\n let hash = this.HashFunction(key);\r\n if (hash % 1 !== 0) {\r\n throw new Exception('Key\\'s hash must be an integer!');\r\n }\r\n\r\n let index = Math.abs(hash) % this._bucketCount;\r\n\r\n if (index < 0 || index >= this._bucketCount) {\r\n throw new Exception('Index exceeds bucket boundaries');\r\n }\r\n\r\n return index;\r\n }\r\n\r\n// Clears Hashtable\r\n Clear(): void {\r\n this._elementsCount = 0;\r\n this._buckets = [];\r\n }\r\n}\r\n","export class Int32 {\r\n static MinValue: number = -2147483648;\r\n static MaxValue: number = 2147483647;\r\n}\r\n","export class Int64 {\r\n static MinValue: number = -9223372036854775808;\r\n}\r\n","import {Encoding} from \"./Encoding\";\r\n\r\nexport class ISO_8859_1_Encoding extends Encoding {\r\n\r\n static readonly ISO_8859_1: ISO_8859_1_Encoding = new ISO_8859_1_Encoding(\"iso_8859-1\");\r\n constructor(label: string) {\r\n super(label);\r\n }\r\n\r\n GetBytes(str: string): Uint8Array {\r\n\r\n if (str === null)\r\n throw new Error(\"Argument is null\");\r\n\r\n let bytes: Uint8Array = null;\r\n\r\n bytes = new Uint8Array(str.length * 3);\r\n let bytesCount: number = 0;\r\n let tmpBytes: Uint8Array;\r\n\r\n for (let i = 0; i < str.length; i++)\r\n {\r\n bytes[bytesCount++] = str[i].charCodeAt(0);\r\n }\r\n\r\n bytes = bytes.subarray(0, 0 + bytesCount);\r\n return bytes;\r\n }\r\n\r\n GetString(bytes: Uint8Array, index: number, count: number): string {\r\n let str: string = null;\r\n\r\n if (bytes === null)\r\n throw new Error(\"Argument is null\");\r\n\r\n if (index < 0 || count < 0 || (index + count) > bytes.length)\r\n throw new Error(\"Argument out of range\");\r\n\r\n bytes = bytes.subarray(index, index + count);\r\n\r\n try {\r\n\r\n str = '';\r\n for (let i = 0; i < bytes.length; i++)\r\n {\r\n str += String.fromCharCode(bytes[i]);\r\n };\r\n }\r\n catch (ex) {\r\n }\r\n\r\n return str;\r\n }\r\n}\r\n","import {Array_Enumerator} from \"./ArrayEnumerator\";\r\nimport {isUndefined} from \"./Utils\";\r\n\r\nexport class List<T> extends Array<T> {\r\n\r\n constructor(arrayEnumerator?: Array_Enumerator<T>) {\r\n super();\r\n Object.setPrototypeOf(this, List.prototype);\r\n\r\n if (arguments.length === 1 && arrayEnumerator.constructor === Array_Enumerator) {\r\n this.AddRange(arrayEnumerator);\r\n }\r\n }\r\n\r\n AddRange(arrayEnumerator: Array_Enumerator<T>)\r\n AddRange(array: Array<T>)\r\n AddRange(arrayEnumeratorOrArray: any) {\r\n if (arrayEnumeratorOrArray.constructor === Array) {\r\n arrayEnumeratorOrArray.forEach((item: T) => {\r\n this.push(item);\r\n });\r\n }\r\n else {\r\n let e = arrayEnumeratorOrArray;\r\n while (e.MoveNext()) {\r\n this.push(e.Current);\r\n }\r\n }\r\n }\r\n\r\n get_Item(index: number): T {\r\n if (isUndefined(this[index]))\r\n this[index] = null;\r\n return this[index];\r\n }\r\n\r\n set_Item(index: number, value: T): void {\r\n if (index >= 0 && index < this.length)\r\n this[index] = value;\r\n else\r\n throw new Error(\"index out of bounds\");\r\n }\r\n\r\n GetEnumerator(): Array_Enumerator<T> {\r\n return new Array_Enumerator<T>(this);\r\n }\r\n\r\n Remove(object: T): void {\r\n let index: number = this.indexOf(object);\r\n\r\n if (index > -1)\r\n this.RemoveAt(index);\r\n }\r\n\r\n RemoveAt(index: number): void {\r\n this.RemoveRange(index, 1);\r\n }\r\n\r\n RemoveRange(index: number, count: number): void {\r\n this.splice(index, count);\r\n }\r\n\r\n Insert(index: number, item: T): void {\r\n if (index >= 0 && index < this.length)\r\n this.splice(index, 0, item);\r\n else if (index === this.length) // inserting at end means append\r\n this.push(item);\r\n else\r\n throw new Error(\"index out of bounds\");\r\n }\r\n\r\n InsertRange(items: T[]): void {\r\n let idx: number = 0;\r\n while (idx < items.length) {\r\n this.Insert(idx, items[idx]);\r\n idx++;\r\n }\r\n }\r\n\r\n Clear(): void {\r\n this.splice(0, this.length);\r\n }\r\n\r\n ToArray(): T[] {\r\n return this.slice(0);\r\n }\r\n\r\n Contains(object: T): boolean {\r\n return this.indexOf(object) > -1;\r\n }\r\n\r\n find(predicate: (value: T, index: number, obj: T[]) => boolean): T {\r\n let foundItem = super.find(predicate);\r\n if (isUndefined(foundItem))\r\n foundItem = null;\r\n\r\n return foundItem;\r\n }\r\n\r\n /// <summary>\r\n /// add null cells up to 'size' cells.\r\n /// </summary>\r\n /// <param name=\"size\"></param>\r\n SetSize(size: number): void {\r\n if (this.length > size) {\r\n this.RemoveRange(size, this.length - size);\r\n }\r\n else\r\n this.length = size;\r\n }\r\n}\r\n","export const $EOF = 0;\r\nexport const $TAB = 9;\r\nexport const $LF = 10;\r\nexport const $VTAB = 11;\r\nexport const $FF = 12;\r\nexport const $CR = 13;\r\nexport const $SPACE = 32;\r\nexport const $BANG = 33;\r\nexport const $DQ = 34;\r\nexport const $HASH = 35;\r\nexport const $$ = 36;\r\nexport const $PERCENT = 37;\r\nexport const $AMPERSAND = 38;\r\nexport const $SQ = 39;\r\nexport const $LPAREN = 40;\r\nexport const $RPAREN = 41;\r\nexport const $STAR = 42;\r\nexport const $PLUS = 43;\r\nexport const $COMMA = 44;\r\nexport const $MINUS = 45;\r\nexport const $PERIOD = 46;\r\nexport const $SLASH = 47;\r\nexport const $COLON = 58;\r\nexport const $SEMICOLON = 59;\r\nexport const $LT = 60;\r\nexport const $EQ = 61;\r\nexport const $GT = 62;\r\nexport const $QUESTION = 63;\r\n\r\nexport const $0 = 48;\r\nexport const $9 = 57;\r\n\r\nexport const $A = 65;\r\nexport const $E = 69;\r\nexport const $F = 70;\r\nexport const $X = 88;\r\nexport const $Z = 90;\r\n\r\nexport const $LBRACKET = 91;\r\nexport const $BACKSLASH = 92;\r\nexport const $RBRACKET = 93;\r\nexport const $CARET = 94;\r\nexport const $_ = 95;\r\n\r\nexport const $a = 97;\r\nexport const $e = 101;\r\nexport const $f = 102;\r\nexport const $n = 110;\r\nexport const $r = 114;\r\nexport const $t = 116;\r\nexport const $u = 117;\r\nexport const $v = 118;\r\nexport const $x = 120;\r\nexport const $z = 122;\r\n\r\nexport const $LBRACE = 123;\r\nexport const $BAR = 124;\r\nexport const $RBRACE = 125;\r\nexport const $NBSP = 160;\r\n\r\nexport const $PIPE = 124;\r\nexport const $TILDA = 126;\r\nexport const $AT = 64;\r\n\r\nexport const $BT = 96;\r\n\r\nexport function isWhitespace(code: number): boolean {\r\n return (code >= $TAB && code <= $SPACE) || code === $NBSP;\r\n}\r\n\r\nexport function isDigit(code: number): boolean {\r\n return $0 <= code && code <= $9;\r\n}\r\n\r\nexport function isAsciiLetter(code: number): boolean {\r\n return (code >= $a && code <= $z) || (code >= $A && code <= $Z);\r\n}\r\n\r\nexport function isAsciiHexDigit(code: number): boolean {\r\n return (code >= $a && code <= $f) || (code >= $A && code <= $F) || isDigit(code);\r\n}\r\n\r\nexport function isLowerCase(str: string): boolean {\r\n return str === str.toLowerCase();\r\n}\r\nexport function isUpperCase(str: string): boolean {\r\n return str === str.toUpperCase();\r\n}\r\n","\r\n\r\nimport {isAsciiLetter, isDigit, isLowerCase, isUpperCase, isWhitespace} from \"./StringUtils\";\r\n\r\nexport class NChar {\r\n static IsWhiteSpace(str: string): boolean {\r\n let ch = str.charCodeAt(0);\r\n return isWhitespace(ch);\r\n }\r\n\r\n static IsLetterOrDigit(str: string): boolean {\r\n let ch = str.charCodeAt(0);\r\n return isDigit(ch) || isAsciiLetter(ch);\r\n }\r\n\r\n static IsDigit(str: string): boolean {\r\n let ch = str.charCodeAt(0);\r\n return isDigit(ch);\r\n }\r\n\r\n static IsLetter(ltr: string): boolean {\r\n return isAsciiLetter(ltr.charCodeAt(0));\r\n }\r\n\r\n static IsLower(ch: string): boolean {\r\n return isLowerCase(ch);\r\n }\r\n\r\n static IsUpper(ch: string): boolean {\r\n return isUpperCase(ch)\r\n }\r\n}\r\n","import {Exception} from \"./Exception\";\r\n\r\nexport class NotImplementedException extends Exception {\r\n constructor(message: string = \"Not implemented\") {\r\n super(message);\r\n }\r\n}\r\n","import {RefParam} from \"./RefParam\";\r\nimport {NotImplementedException} from \"./NotImplementedException\";\r\n\r\nexport enum NumberStyles {\r\n HexNumber\r\n}\r\n\r\nexport class NNumber {\r\n\r\n /// <summary>\r\n /// convert a string to number\r\n /// for blank string , it will return 0\r\n /// for incorrect format it will return NaN\r\n /// <summary>\r\n static Parse(text: string, style?: NumberStyles): number {\r\n if (arguments.length === 2) {\r\n if (style === NumberStyles.HexNumber)\r\n return parseInt(text, 16);\r\n else\r\n throw new NotImplementedException();\r\n }\r\n return +text; // use unary + operator to convert string to number.\r\n }\r\n\r\n\r\n /// <summary>\r\n /// convert a string to number\r\n /// return true if string is correctly parsed i.e pvalue.value is number\r\n /// for incorrect format it will return false\r\n /// <summary>\r\n static TryParse(str: string, pvalue: RefParam<number>): boolean {\r\n pvalue.value = +str;\r\n return !isNaN(pvalue.value);\r\n }\r\n\r\n /// <summary>\r\n /// convert a number to string with specified format\r\n /// <summary>\r\n static ToString(num: number, format: string): string {\r\n if (format === 'X2') {\r\n let res: string = num.toString(16);\r\n return res.length === 1 ? '0' + res : res;\r\n }\r\n throw new NotImplementedException();\r\n }\r\n}\r\n","\r\nimport {isNullOrUndefined} from \"./Utils\";\r\nimport {Exception} from \"./Exception\";\r\n\r\n\r\n// @dynamic\r\nexport class NString {\r\n static Empty = \"\";\r\n\r\n static IndexOf(str: string, searchStr: any, startIndex: number, count: number): number {\r\n let index: number = str.substr(startIndex, count).indexOf(searchStr);\r\n return index > -1 ? startIndex + index : index;\r\n }\r\n\r\n static IndexOfAny(str: string, subs: string[], startIndex: number, count: number): number {\r\n for (let i = 0; i < count; ++i) {\r\n let c = str.charAt(startIndex + i);\r\n for (let j = 0; j < subs.length; ++j) {\r\n if (c === subs[j])\r\n return (startIndex + i);\r\n }\r\n }\r\n return -1;\r\n }\r\n\r\n static CopyTo(source: string, sourceIndex: number, destination: string[], destinationIndex: number, count: number) {\r\n for (let i = 0; i < count; i++) {\r\n destination[destinationIndex + i] = source[sourceIndex + i];\r\n }\r\n }\r\n\r\n static Compare(strA: string, strB: string, ignoreCase: boolean): number\r\n static Compare(strA: string, strB: string, ignoreCase: boolean, indexA: number, indexB: number, length: number): number\r\n static Compare(strA: string, strB: string, ignoreCase: boolean, indexA?: number, indexB?: number, length?: number): number {\r\n if (arguments.length = 6) {\r\n strA = strA.substr(indexA, length);\r\n strB = strB.substr(indexB, length);\r\n }\r\n if (ignoreCase) {\r\n strA = strA.toLowerCase();\r\n strB = strB.toLowerCase();\r\n }\r\n return strA.localeCompare(strB);\r\n }\r\n\r\n\r\n static Equals(strA: string, strB: string, ignoreCase: boolean): boolean {\r\n if (!NString.IsNullOrEmpty(strA) && !NString.IsNullOrEmpty(strB)) {\r\n if (ignoreCase) {\r\n strA = strA.toLowerCase();\r\n strB = strB.toLowerCase();\r\n }\r\n return strA === strB;\r\n }\r\n return false;\r\n }\r\n\r\n static GetHashCode(str: string): number {\r\n var hash = 0, i, l, ch;\r\n if (str.length === 0) return hash;\r\n for (i = 0, l = str.length; i < l; i++) {\r\n ch = str.charCodeAt(i);\r\n hash = ((hash << 5) - hash) + ch;\r\n hash |= 0; // Convert to 32bit integer\r\n }\r\n return hash;\r\n }\r\n\r\n\r\n static Remove(str: string, startIndex: number, length: number): string {\r\n return str.substr(0, startIndex - 1) + str.substr(startIndex + length - 1);\r\n }\r\n\r\n static TrimStart(str: string): string {\r\n return str.replace(/^\\s\\s*/, '')\r\n }\r\n\r\n static TrimEnd(string: string, trimChars?: string[]): string {\r\n if (arguments.length === 1)\r\n return string.replace(/\\s\\s*$/, '');\r\n\r\n for (let j = 0; j < trimChars.length; j++) {\r\n let trimChar = trimChars[j];\r\n let i = string.length - 1;\r\n while (!isNullOrUndefined(string[i]) && string[i].endsWith(trimChar)) {\r\n string = NString.Remove(string, string.length, 1);\r\n i--;\r\n }\r\n }\r\n return string;\r\n }\r\n\r\n static Format(format: string, arg0: any, arg1?: any, arg2?: any, arg3?: any, arg4?: any, arg5?: any): string {\r\n if (!isNullOrUndefined(arg0) && arg0.constructor === Array) {\r\n var s = format,\r\n i = arg0.length;\r\n while (i--) {\r\n s = s.replace(new RegExp('\\\\{' + i + '\\\\}', 'gm'), arg0[i]);\r\n }\r\n return s;\r\n }\r\n else {\r\n var args = [arg0, arg1, arg2, arg3, arg4, arg5];\r\n return NString.Format(format, args);\r\n }\r\n }\r\n\r\n static IsNullOrEmpty(str1: string | NString): boolean {\r\n return !str1;\r\n }\r\n\r\n static FromChars(chOrChars: string[])\r\n static FromChars(chOrChars: string[], startIndex: number, len: number)\r\n static FromChars(chOrChars: string[], startIndex?: number, len?: number) {\r\n let str: string = chOrChars.join('');\r\n if (arguments.length === 3)\r\n return str.substr(startIndex, len);\r\n return str;\r\n }\r\n\r\n static FromChar(ch: string, count): string {\r\n return (new Array<string>(count).fill(<string>ch)).join('');\r\n }\r\n\r\n static ToCharArray(str: string): string[] {\r\n return Array.from(str);\r\n }\r\n\r\n static CompareOrdinal(strA: string, strB: string): number {\r\n let lenA = strA.length;\r\n let lenB = strB.length;\r\n\r\n let len = Math.min(lenA, lenB);\r\n\r\n // compare character by character\r\n for (let i = 0; i < len; i++) {\r\n if (strA[i].charCodeAt(0) !== strB[i].charCodeAt(0)) {\r\n return strA[i].charCodeAt(0) - strB[i].charCodeAt(0);\r\n }\r\n }\r\n\r\n // if all characters are same , but length is different return the difference of length\r\n if (lenA !== lenB) {\r\n return lenA - lenB;\r\n }\r\n\r\n // all chars are same , so strings are equal\r\n return 0;\r\n }\r\n\r\n static PadRight(source: string, maxLength: number, fillString?: string): string {\r\n if (source.length >= maxLength)\r\n return source;\r\n\r\n let fillLen = maxLength - source.length;\r\n let timesToRepeat = Math.ceil(fillLen / fillString.length);\r\n let truncatedStringFiller = fillString.repeat(timesToRepeat).slice(0, fillLen);\r\n return source + truncatedStringFiller;\r\n }\r\n\r\n static Insert(str: string, index: number, ch: string): string {\r\n return str.substr(0, index) + ch + str.substr(index, str.length - index);\r\n }\r\n\r\n static Replace(str:string, orgSubStr: string, newSubStr: string): string {\r\n let resultStr:string = '';\r\n\r\n // fixed defect 151810: replace \"*\" with \"\\*\" before we update the string so * will be as char and not reg exp\r\n // also for special chars $ ^ . ? + , [\r\n orgSubStr = orgSubStr.replace(new RegExp(\"\\\\\\\\\", 'g'), \"\\\\\\\\\");\r\n orgSubStr = orgSubStr.replace(new RegExp(\"\\\\*\",'g'), \"\\\\\\*\");\r\n orgSubStr = orgSubStr.replace(new RegExp(\"\\\\$\",'g'), \"\\\\\\$\");\r\n orgSubStr = orgSubStr.replace(new RegExp(\"\\\\^\",'g'), \"\\\\\\^\");\r\n orgSubStr = orgSubStr.replace(new RegExp(\"\\\\.\",'g'), \"\\\\\\.\");\r\n orgSubStr = orgSubStr.replace(new RegExp(\"\\\\?\",'g'), \"\\\\\\?\");\r\n orgSubStr = orgSubStr.replace(new RegExp(\"\\\\+\",'g'), \"\\\\\\+\");\r\n orgSubStr = orgSubStr.replace(new RegExp(\"\\\\,\",'g'), \"\\\\\\,\");\r\n orgSubStr = orgSubStr.replace(new RegExp(\"\\\\[\",'g'), \"\\\\\\[\");\r\n orgSubStr = orgSubStr.replace(new RegExp(\"\\\\|\",'g'), \"\\\\\\|\");\r\n\r\n try {\r\n resultStr = str.replace(new RegExp(orgSubStr,'g'), newSubStr);\r\n }\r\n catch (e) {\r\n throw new Exception(e.message);\r\n }\r\n return resultStr;\r\n }\r\n}\r\n","export class NumberFormatInfo {\r\n public static readonly NegativeSign: string = '-';\r\n\r\n public static readonly NumberDecimalSeparator: string = NumberFormatInfo.GetLocaleDecimalSeperator();\r\n\r\n private static GetLocaleDecimalSeperator(): string {\r\n return (1.1).toLocaleString()[1]; // get the decimal seperator of current locale\r\n }\r\n}\r\n","export class RefParam<T> {\r\n value: T;\r\n\r\n constructor(value: T) {\r\n this.value = value;\r\n }\r\n}\r\n","export class Stack<TData> {\r\n\r\n private _array: Array<TData>;\r\n\r\n constructor() {\r\n this._array = new Array<TData>();\r\n }\r\n\r\n public count(): number {\r\n return this._array.length;\r\n }\r\n\r\n public isEmpty(): boolean {\r\n return this._array.length === 0;\r\n }\r\n\r\n public push(value: TData): void {\r\n this._array.push(value);\r\n }\r\n\r\n public pop(): TData {\r\n return this._array.pop();\r\n }\r\n\r\n public peek(): TData {\r\n if (this._array.length > 0) {\r\n return this._array[this._array.length - 1];\r\n } else {\r\n return null;\r\n }\r\n }\r\n\r\n public Clear(): void {\r\n this._array.splice(0, this._array.length);\r\n }\r\n\r\n public Clone(): Stack<TData> {\r\n let clone: Stack<TData> = new Stack<TData>();\r\n clone._array = this._array.slice();\r\n return clone;\r\n }\r\n}\r\n","import * as StackTrace from 'stacktrace-js';\r\nimport JSStackFrame = StackTrace.StackFrame;\r\n\r\n// StackFrame uses StackTrace utility using stacktrace-js utility from npm\r\n// https://www.npmjs.com/package/stacktrace-js\r\nexport class StackFrame {\r\n private stackFrame: JSStackFrame = null;\r\n\r\n constructor(skipFrames: number) {\r\n\r\n let stackFrames: JSStackFrame[] = StackTrace.getSync();\r\n if (skipFrames < 0 || skipFrames >= stackFrames.length)\r\n throw new Error(\"Argument out of range\");\r\n\r\n this.stackFrame = stackFrames[skipFrames];\r\n }\r\n\r\n public GetFileName(): string {\r\n return this.stackFrame.fileName;\r\n }\r\n}\r\n","import * as JSStackTrace from 'stacktrace-js';\r\nimport JSStackFrame = JSStackTrace.StackFrame;\r\n\r\n// This uses StackTrace utility using stacktrace-js utility from npm. Use this in package.json\r\n// https://www.npmjs.com/package/stacktrace-js\r\nexport class StackTrace {\r\n GetFrames(): JSStackFrame[] {\r\n // Using getSync() method, it returns references of callstack ethod from the javascript files bindled and not typeScript file from sources.\r\n // However, if aSync method would have used, it overcomes above problems but the call to log would have been async and we would not have\r\n // received synchronous logs which would be confusing.\r\n return JSStackTrace.getSync();\r\n }\r\n}\r\n","import {Debug} from \"./Debug\";\r\nimport {NString} from \"./NString\";\r\n\r\n// StringBuilder class. Its Implementation currently uses string object. It could have been string[], but it has issues when inserting string.\r\n// It would not have served purpose while inserting a string. Other could be to use string[] with one chraracter per string. Even its utility\r\n// is doubtful as while manipulation, it would be creting new objects instead pointers. So for now we have used only string and see if we have\r\n// any performance issues.\r\nexport class StringBuilder {\r\n private part: string = \"\";\r\n\r\n // Ctor\r\n constructor(length?: number)\r\n constructor(value?: string, length?: number)\r\n constructor(valueOrLength?: any, length?: number) {\r\n if (arguments.length > 0) {\r\n if (valueOrLength != null && valueOrLength.constructor === Number) {\r\n // TODO: Very low priority performance improvement - Implement this.\r\n // Debug.Assert(false, \"StringBuilder: NotImplemented constructor with initial length/capacity\");\r\n // throw new Error(\"NotImplemented constructor with initial length/capacity\");\r\n }\r\n else if (valueOrLength != null && valueOrLength.constructor === String) {\r\n this.part = valueOrLength.toString();\r\n // TODO: Very low priority performance improvement - Implement this.\r\n // if (arguments.length === 2)\r\n // Debug.Assert(false, \"NotImplemented constructor with initial length/capacity\");\r\n }\r\n }\r\n }\r\n\r\n // Appends string/number\r\n Append(num: number, numberOfCharacters?: number): StringBuilder;\r\n Append(text: string): StringBuilder;\r\n Append(text: string, numberOfCharacters: number): StringBuilder;\r\n Append(text: string, startIndex: number, charCount: number): StringBuilder;\r\n Append(textOrNum: any, startIndexOrNumberOfCharacters?: number, charCount?: number): StringBuilder {\r\n\r\n if (textOrNum === null)\r\n return this;\r\n\r\n if (textOrNum.constructor === String) {\r\n if (arguments.length === 1)\r\n this.AppendString(textOrNum.toString());\r\n else if (arguments.length === 2) {\r\n Debug.Assert(textOrNum.length === 1, \"character is expected not string\");\r\n this.AppendString(textOrNum.charAt(0).repeat(startIndexOrNumberOfCharacters));\r\n }\r\n else\r\n this.AppendString(textOrNum.toString(), startIndexOrNumberOfCharacters, charCount);\r\n }\r\n else\r\n this.AppendNumber(textOrNum, startIndexOrNumberOfCharacters);\r\n\r\n return this;\r\n }\r\n\r\n // Append string\r\n private AppendString(text: string, startIndex: number = 0, charCount: number = text.length): void {\r\n this.part = this.part + text.substr(startIndex, charCount);\r\n }\r\n\r\n // Append Number\r\n private AppendNumber(num: number, numberOfCharacters: number = 1): void {\r\n if (numberOfCharacters <= 0)\r\n throw new Error(\"numberOfCharacters cannot be less than or equal to zero\");\r\n\r\n this.part = this.part + num.toString().repeat(numberOfCharacters);\r\n }\r\n\r\n // Append Line\r\n AppendLine(text: string = null): void {\r\n if (text !== null)\r\n this.part = this.part + text;\r\n this.part = this.part + '\\n';\r\n }\r\n\r\n // Append Formatted string\r\n AppendFormat(format: string, arg0: any): StringBuilder\r\n AppendFormat(format: string, arg0: any, arg1: any): StringBuilder\r\n AppendFormat(format: string, arg0: any, arg1: any, arg2: any): StringBuilder\r\n AppendFormat(format: string, arg0: any, arg1?: any, arg2?: any): StringBuilder {\r\n this.part = this.part + NString.Format(format, arg0, arg1, arg2);\r\n return this;\r\n }\r\n\r\n // Convert to string\r\n ToString(): string;\r\n ToString(startIndex: number, length: number): string;\r\n ToString(startIndex ?: number, length ?: number): string {\r\n if (arguments.length === 2) {\r\n if (startIndex < 0 || length < 0 || (startIndex + length) > this.part.length)\r\n throw new Error(\"Argument out of range\");\r\n\r\n return this.part.substr(startIndex, length);\r\n }\r\n return this.part;\r\n }\r\n\r\n get Length(): number {\r\n return this.part.length;\r\n }\r\n\r\n get_Item(index: number): string {\r\n if (index < 0 || index >= this.part.length)\r\n throw new Error(\"Index out of range\");\r\n\r\n return this.part.charAt(index);\r\n }\r\n\r\n set_Item(index: number, value: string) {\r\n if (index < 0 || index >= this.part.length)\r\n throw new Error(\"Index out of range\");\r\n\r\n Debug.Assert(value.length <= 1, \"Length of string cannot be more than 1. Only character is expected\");\r\n let leftPart: string = this.part.substring(0, index);\r\n let rightPart: string = this.part.substring(index + 1, this.part.length);\r\n this.part = leftPart + value.charAt(0) + rightPart;\r\n }\r\n\r\n Insert(index: number, value: string): StringBuilder {\r\n if (index < 0 || index > this.part.length)\r\n throw new Error(\"Argument out of range\");\r\n\r\n let leftPart: string = this.part.substring(0, index);\r\n let rightPart: string = this.part.substring(index, this.part.length);\r\n this.part = leftPart + value + rightPart;\r\n\r\n return this;\r\n }\r\n\r\n Remove(startIndex: number, length: number): StringBuilder {\r\n if (startIndex < 0 || length < 0 || (startIndex + length) > this.part.length)\r\n throw new Error(\"Argument out of range\");\r\n\r\n let leftPart: string = this.part.substring(0, startIndex);\r\n let rightPart: string = this.part.substring(startIndex + length, this.part.length);\r\n this.part = leftPart + rightPart;\r\n\r\n return this;\r\n }\r\n\r\n Replace(oldValue: string, newValue: string): StringBuilder;\r\n Replace(oldValue: string, newValue: string, startIndex: number, count: number): StringBuilder;\r\n Replace(oldValue: string, newValue: string, startIndex?: number, count?: number): StringBuilder {\r\n if (oldValue === null)\r\n throw new Error(\"oldValue cannot be null\");\r\n else if (oldValue.length === 0)\r\n throw new Error(\"Length of oldValue cannot be 0\");\r\n\r\n if (arguments.length === 4) {\r\n if (startIndex < 0 || count < 0 || (startIndex + count) > this.part.length)\r\n throw new Error(\"Argument out of range\");\r\n }\r\n\r\n if (arguments.length === 2)\r\n this.part = this.part.replace(new RegExp(oldValue, 'g'), newValue);\r\n else if (arguments.length === 4) {\r\n let substr: string = this.part.substring(startIndex, startIndex + count);\r\n substr = substr.replace(new RegExp(oldValue, 'g'), newValue);\r\n\r\n let leftPart: string = this.part.substring(0, startIndex);\r\n let rightPart: string = this.part.substring(startIndex + count, this.part.length);\r\n this.part = leftPart + substr + rightPart;\r\n }\r\n\r\n return this;\r\n }\r\n\r\n // return the string\r\n toString(): string {\r\n return this.ToString();\r\n }\r\n}\r\n","import {interval} from 'rxjs';\r\n\r\nexport class Thread {\r\n private static nextId: number = 1;\r\n static CurrentThread: Thread = new Thread();\r\n ManagedThreadId: number = 0;\r\n\r\n constructor() {\r\n this.ManagedThreadId = Thread.nextId++;\r\n }\r\n\r\n /// <summary>\r\n /// Free the thread so it will be able to do other work, like gui events\r\n /// </summary>\r\n /// <param name = \"millisecondsTimeout\"> timeout in milliseconds</param>\r\n\r\n public static async Sleep(millisecondsTimeout: number): Promise<void>\r\n {\r\n await new Promise<void>((resolve) => {\r\n let timer = interval(millisecondsTimeout);\r\n let subscription = timer.subscribe( () => {subscription.unsubscribe(); resolve();});\r\n }).then();\r\n }\r\n}\r\n","import {Exception} from \"./Exception\";\r\n\r\nexport class WebException extends Exception {\r\n constructor(error: Error) {\r\n super();\r\n this.name = \"WebException\";\r\n this.stack = error.stack;\r\n this.message = error.message;\r\n }\r\n}\r\n","import {NotImplementedException} from \"./NotImplementedException\";\r\n\r\nexport class XmlConvert {\r\n // TODO : Implement\r\n static EncodeName(name: string): string {\r\n throw new NotImplementedException();\r\n }\r\n}\r\n"],"names":["StackTrace","JSStackTrace"],"mappings":"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"}
|