tedious 12.3.0 → 13.0.3
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/benchmarks/query/call-tvp.js +105 -0
- package/lib/all-headers.js +2 -1
- package/lib/always-encrypted/aead-aes-256-cbc-hmac-algorithm.js +2 -1
- package/lib/always-encrypted/aead-aes-256-cbc-hmac-encryption-key.js +2 -1
- package/lib/always-encrypted/cek-entry.js +2 -1
- package/lib/always-encrypted/get-parameter-encryption-metadata.js +2 -1
- package/lib/always-encrypted/key-crypto.js +2 -1
- package/lib/always-encrypted/keystore-provider-azure-key-vault.js +4 -3
- package/lib/always-encrypted/symmetric-key-cache.js +2 -1
- package/lib/always-encrypted/symmetric-key.js +2 -1
- package/lib/always-encrypted/types.js +2 -1
- package/lib/always-encrypted/utils.js +2 -1
- package/lib/bulk-load-payload.js +2 -1
- package/lib/bulk-load.js +2 -1
- package/lib/collation.js +2 -1
- package/lib/connection.js +22 -62
- package/lib/connector.js +2 -1
- package/lib/data-type.js +2 -1
- package/lib/data-types/bigint.js +2 -1
- package/lib/data-types/binary.js +2 -1
- package/lib/data-types/bit.js +2 -1
- package/lib/data-types/bitn.js +2 -1
- package/lib/data-types/char.js +2 -1
- package/lib/data-types/date.js +2 -1
- package/lib/data-types/datetime.js +2 -1
- package/lib/data-types/datetime2.js +2 -1
- package/lib/data-types/datetimen.js +2 -1
- package/lib/data-types/datetimeoffset.js +2 -1
- package/lib/data-types/decimal.js +2 -1
- package/lib/data-types/decimaln.js +2 -1
- package/lib/data-types/float.js +2 -1
- package/lib/data-types/floatn.js +2 -1
- package/lib/data-types/image.js +2 -1
- package/lib/data-types/int.js +2 -1
- package/lib/data-types/intn.js +2 -1
- package/lib/data-types/money.js +2 -1
- package/lib/data-types/moneyn.js +2 -1
- package/lib/data-types/nchar.js +2 -1
- package/lib/data-types/ntext.js +2 -1
- package/lib/data-types/null.js +2 -1
- package/lib/data-types/numeric.js +2 -1
- package/lib/data-types/numericn.js +2 -1
- package/lib/data-types/nvarchar.js +2 -1
- package/lib/data-types/real.js +2 -1
- package/lib/data-types/smalldatetime.js +2 -1
- package/lib/data-types/smallint.js +2 -1
- package/lib/data-types/smallmoney.js +2 -1
- package/lib/data-types/sql-variant.js +2 -1
- package/lib/data-types/text.js +2 -1
- package/lib/data-types/time.js +2 -1
- package/lib/data-types/tinyint.js +2 -1
- package/lib/data-types/tvp.js +3 -2
- package/lib/data-types/udt.js +2 -1
- package/lib/data-types/uniqueidentifier.js +2 -1
- package/lib/data-types/varbinary.js +2 -1
- package/lib/data-types/varchar.js +2 -1
- package/lib/data-types/xml.js +2 -1
- package/lib/debug.js +2 -1
- package/lib/errors.js +2 -1
- package/lib/guid-parser.js +2 -1
- package/lib/incoming-message-stream.js +2 -1
- package/lib/instance-lookup.js +2 -1
- package/lib/library.js +2 -1
- package/lib/login7-payload.js +2 -1
- package/lib/message-io.js +2 -1
- package/lib/message.js +2 -1
- package/lib/metadata-parser.js +2 -1
- package/lib/ntlm-payload.js +2 -1
- package/lib/ntlm.js +2 -1
- package/lib/outgoing-message-stream.js +2 -1
- package/lib/packet.js +2 -1
- package/lib/prelogin-payload.js +2 -1
- package/lib/request.js +6 -12
- package/lib/rpcrequest-payload.js +2 -1
- package/lib/sender.js +2 -1
- package/lib/special-stored-procedure.js +2 -1
- package/lib/sqlbatch-payload.js +2 -1
- package/lib/tds-versions.js +2 -1
- package/lib/tedious.js +2 -1
- package/lib/token/colmetadata-token-parser.js +2 -1
- package/lib/token/done-token-parser.js +2 -1
- package/lib/token/env-change-token-parser.js +2 -1
- package/lib/token/feature-ext-ack-parser.js +2 -1
- package/lib/token/fedauth-info-parser.js +2 -1
- package/lib/token/infoerror-token-parser.js +2 -1
- package/lib/token/loginack-token-parser.js +2 -1
- package/lib/token/nbcrow-token-parser.js +2 -1
- package/lib/token/order-token-parser.js +2 -1
- package/lib/token/returnstatus-token-parser.js +2 -1
- package/lib/token/returnvalue-token-parser.js +2 -1
- package/lib/token/row-token-parser.js +3 -2
- package/lib/token/sspi-token-parser.js +2 -1
- package/lib/token/stream-parser.js +2 -1
- package/lib/token/token-stream-parser.js +2 -1
- package/lib/token/token.js +2 -1
- package/lib/tracking-buffer/writable-tracking-buffer.js +2 -1
- package/lib/transaction.js +2 -1
- package/lib/transient-error-lookup.js +2 -1
- package/lib/value-parser.js +2 -1
- package/package.json +3 -4
- package/tsconfig.json +2 -1
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
const { createBenchmark, createConnection } = require('../common');
|
|
2
|
+
|
|
3
|
+
const { Request, TYPES } = require('../../src/tedious');
|
|
4
|
+
|
|
5
|
+
const bench = createBenchmark(main, {
|
|
6
|
+
n: [10, 100]
|
|
7
|
+
});
|
|
8
|
+
|
|
9
|
+
function main({ n }) {
|
|
10
|
+
createConnection(function(connection) {
|
|
11
|
+
const request = new Request(`
|
|
12
|
+
USE tempdb;
|
|
13
|
+
|
|
14
|
+
DROP TYPE IF EXISTS TediousTestType;
|
|
15
|
+
|
|
16
|
+
CREATE TYPE TediousTestType AS TABLE (
|
|
17
|
+
FileId uniqueidentifier,
|
|
18
|
+
FileNumber bigint,
|
|
19
|
+
FileVersion varchar(20),
|
|
20
|
+
FileCommitID varchar(40),
|
|
21
|
+
FileModel nvarchar(max)
|
|
22
|
+
);
|
|
23
|
+
`, (err) => {
|
|
24
|
+
if (err) {
|
|
25
|
+
throw err;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
const request = new Request(`
|
|
29
|
+
CREATE PROCEDURE #__tediousTvpTest @tvp TediousTestType readonly AS BEGIN select COUNT(*) from @tvp END
|
|
30
|
+
`, (err) => {
|
|
31
|
+
if (err) {
|
|
32
|
+
throw err;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
const tvp = {
|
|
36
|
+
columns: [
|
|
37
|
+
{
|
|
38
|
+
name: 'FileId',
|
|
39
|
+
type: TYPES.UniqueIdentifier
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
name: 'FileNumber',
|
|
43
|
+
type: TYPES.BigInt
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
name: 'FileVersion',
|
|
47
|
+
type: TYPES.VarChar,
|
|
48
|
+
length: 20,
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
name: 'FileCommitID',
|
|
52
|
+
type: TYPES.VarChar,
|
|
53
|
+
length: 40,
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
name: 'FileModel',
|
|
57
|
+
type: TYPES.NVarChar,
|
|
58
|
+
length: Infinity
|
|
59
|
+
}
|
|
60
|
+
],
|
|
61
|
+
rows: []
|
|
62
|
+
};
|
|
63
|
+
|
|
64
|
+
for (let i = 0; i < 500; i++) {
|
|
65
|
+
tvp.rows.push([
|
|
66
|
+
'6F9619FF-8B86-D011-B42D-00C04FC964FF',
|
|
67
|
+
1,
|
|
68
|
+
'12345',
|
|
69
|
+
'6b8bd41619d843b35b13478bb8aa88ea67039a05',
|
|
70
|
+
new Array(5000).join('x')
|
|
71
|
+
]);
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
let i = 0;
|
|
75
|
+
bench.start();
|
|
76
|
+
|
|
77
|
+
(function cb() {
|
|
78
|
+
const request = new Request('#__tediousTvpTest', (err) => {
|
|
79
|
+
if (err) {
|
|
80
|
+
throw err;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
if (i++ === n) {
|
|
84
|
+
bench.end(n);
|
|
85
|
+
|
|
86
|
+
connection.close();
|
|
87
|
+
|
|
88
|
+
return;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
cb();
|
|
92
|
+
});
|
|
93
|
+
|
|
94
|
+
request.addParameter('tvp', TYPES.TVP, tvp);
|
|
95
|
+
|
|
96
|
+
connection.callProcedure(request);
|
|
97
|
+
})();
|
|
98
|
+
});
|
|
99
|
+
|
|
100
|
+
connection.execSqlBatch(request);
|
|
101
|
+
});
|
|
102
|
+
|
|
103
|
+
connection.execSqlBatch(request);
|
|
104
|
+
});
|
|
105
|
+
}
|
package/lib/all-headers.js
CHANGED
|
@@ -21,4 +21,5 @@ function writeToTrackingBuffer(buffer, txnDescriptor, outstandingRequestCount) {
|
|
|
21
21
|
const data = buffer.data;
|
|
22
22
|
data.writeUInt32LE(data.length, 0);
|
|
23
23
|
return buffer;
|
|
24
|
-
}
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9hbGwtaGVhZGVycy50cyJdLCJuYW1lcyI6WyJUWVBFIiwiUVVFUllfTk9USUZJQ0FUSU9OUyIsIlRYTl9ERVNDUklQVE9SIiwiVFJBQ0VfQUNUSVZJVFkiLCJUWE5ERVNDUklQVE9SX0hFQURFUl9EQVRBX0xFTiIsIlRYTkRFU0NSSVBUT1JfSEVBREVSX0xFTiIsIndyaXRlVG9UcmFja2luZ0J1ZmZlciIsImJ1ZmZlciIsInR4bkRlc2NyaXB0b3IiLCJvdXRzdGFuZGluZ1JlcXVlc3RDb3VudCIsIndyaXRlVUludDMyTEUiLCJ3cml0ZVVJbnQxNkxFIiwid3JpdGVCdWZmZXIiLCJkYXRhIiwibGVuZ3RoIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFFQSxNQUFNQSxJQUFJLEdBQUc7QUFDWEMsRUFBQUEsbUJBQW1CLEVBQUUsQ0FEVjtBQUVYQyxFQUFBQSxjQUFjLEVBQUUsQ0FGTDtBQUdYQyxFQUFBQSxjQUFjLEVBQUU7QUFITCxDQUFiO0FBTUEsTUFBTUMsNkJBQTZCLEdBQUcsSUFBSSxDQUExQztBQUVBLE1BQU1DLHdCQUF3QixHQUFHLElBQUksQ0FBSixHQUFRRCw2QkFBekM7O0FBRU8sU0FBU0UscUJBQVQsQ0FBK0JDLE1BQS9CLEVBQStEQyxhQUEvRCxFQUFzRkMsdUJBQXRGLEVBQXVIO0FBQzVIRixFQUFBQSxNQUFNLENBQUNHLGFBQVAsQ0FBcUIsQ0FBckI7QUFDQUgsRUFBQUEsTUFBTSxDQUFDRyxhQUFQLENBQXFCTCx3QkFBckI7QUFDQUUsRUFBQUEsTUFBTSxDQUFDSSxhQUFQLENBQXFCWCxJQUFJLENBQUNFLGNBQTFCO0FBQ0FLLEVBQUFBLE1BQU0sQ0FBQ0ssV0FBUCxDQUFtQkosYUFBbkI7QUFDQUQsRUFBQUEsTUFBTSxDQUFDRyxhQUFQLENBQXFCRCx1QkFBckI7QUFFQSxRQUFNSSxJQUFJLEdBQUdOLE1BQU0sQ0FBQ00sSUFBcEI7QUFDQUEsRUFBQUEsSUFBSSxDQUFDSCxhQUFMLENBQW1CRyxJQUFJLENBQUNDLE1BQXhCLEVBQWdDLENBQWhDO0FBQ0EsU0FBT1AsTUFBUDtBQUNEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFdyaXRhYmxlVHJhY2tpbmdCdWZmZXIgZnJvbSAnLi90cmFja2luZy1idWZmZXIvd3JpdGFibGUtdHJhY2tpbmctYnVmZmVyJztcblxuY29uc3QgVFlQRSA9IHtcbiAgUVVFUllfTk9USUZJQ0FUSU9OUzogMSxcbiAgVFhOX0RFU0NSSVBUT1I6IDIsXG4gIFRSQUNFX0FDVElWSVRZOiAzXG59O1xuXG5jb25zdCBUWE5ERVNDUklQVE9SX0hFQURFUl9EQVRBX0xFTiA9IDQgKyA4O1xuXG5jb25zdCBUWE5ERVNDUklQVE9SX0hFQURFUl9MRU4gPSA0ICsgMiArIFRYTkRFU0NSSVBUT1JfSEVBREVSX0RBVEFfTEVOO1xuXG5leHBvcnQgZnVuY3Rpb24gd3JpdGVUb1RyYWNraW5nQnVmZmVyKGJ1ZmZlcjogV3JpdGFibGVUcmFja2luZ0J1ZmZlciwgdHhuRGVzY3JpcHRvcjogQnVmZmVyLCBvdXRzdGFuZGluZ1JlcXVlc3RDb3VudDogbnVtYmVyKSB7XG4gIGJ1ZmZlci53cml0ZVVJbnQzMkxFKDApO1xuICBidWZmZXIud3JpdGVVSW50MzJMRShUWE5ERVNDUklQVE9SX0hFQURFUl9MRU4pO1xuICBidWZmZXIud3JpdGVVSW50MTZMRShUWVBFLlRYTl9ERVNDUklQVE9SKTtcbiAgYnVmZmVyLndyaXRlQnVmZmVyKHR4bkRlc2NyaXB0b3IpO1xuICBidWZmZXIud3JpdGVVSW50MzJMRShvdXRzdGFuZGluZ1JlcXVlc3RDb3VudCk7XG5cbiAgY29uc3QgZGF0YSA9IGJ1ZmZlci5kYXRhO1xuICBkYXRhLndyaXRlVUludDMyTEUoZGF0YS5sZW5ndGgsIDApO1xuICByZXR1cm4gYnVmZmVyO1xufVxuIl19
|
|
@@ -108,4 +108,5 @@ class AeadAes256CbcHmac256Algorithm {
|
|
|
108
108
|
|
|
109
109
|
}
|
|
110
110
|
|
|
111
|
-
exports.AeadAes256CbcHmac256Algorithm = AeadAes256CbcHmac256Algorithm;
|
|
111
|
+
exports.AeadAes256CbcHmac256Algorithm = AeadAes256CbcHmac256Algorithm;
|
|
112
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hbHdheXMtZW5jcnlwdGVkL2FlYWQtYWVzLTI1Ni1jYmMtaG1hYy1hbGdvcml0aG0udHMiXSwibmFtZXMiOlsiYWxnb3JpdGhtTmFtZSIsImFsZ29yaXRobVZlcnNpb24iLCJibG9ja1NpemVJbkJ5dGVzIiwiQWVhZEFlczI1NkNiY0htYWMyNTZBbGdvcml0aG0iLCJjb25zdHJ1Y3RvciIsImNvbHVtbkVuY3J5cHRpb25LZXkiLCJlbmNyeXB0aW9uVHlwZSIsImNvbHVtbkVuY3J5cHRpb25rZXkiLCJpc0RldGVybWluaXN0aWMiLCJrZXlTaXplSW5CeXRlcyIsInZlcnNpb24iLCJ2ZXJzaW9uU2l6ZSIsIm1pbmltdW1DaXBoZXJUZXh0TGVuZ3RoSW5CeXRlc05vQXV0aGVudGljYXRpb25UYWciLCJtaW5pbXVtQ2lwaGVyVGV4dExlbmd0aEluQnl0ZXNXaXRoQXV0aGVudGljYXRpb25UYWciLCJrZXlTaXplIiwiQnVmZmVyIiwiZnJvbSIsIlNRTFNlcnZlckVuY3J5cHRpb25UeXBlIiwiRGV0ZXJtaW5pc3RpYyIsImVuY3J5cHREYXRhIiwicGxhaW50VGV4dCIsIml2IiwiaG1hY0l2IiwiZ2V0SXZLZXkiLCJ1cGRhdGUiLCJkaWdlc3QiLCJzbGljZSIsImVuY3J5cHRDaXBoZXIiLCJnZXRFbmNyeXB0aW9uS2V5IiwiZW5jcnlwdGVkQnVmZmVyIiwiY29uY2F0IiwiZmluYWwiLCJhdXRoZW50aWNhdGlvblRhZyIsIl9wcmVwYXJlQXV0aGVudGljYXRpb25UYWciLCJsZW5ndGgiLCJkZWNyeXB0RGF0YSIsImNpcGhlclRleHQiLCJhbGxvYyIsIm1pbmltdW1DaXBlclRleHRMZW5ndGgiLCJFcnJvciIsInN0YXJ0SW5kZXgiLCJ0b1N0cmluZyIsImF1dGhlbnRpY2F0aW9uVGFnT2Zmc2V0IiwiY29weSIsImNpcGhlclRleHRPZmZzZXQiLCJjaXBoZXJUZXh0Q291bnQiLCJjb21wYXJlIiwiTWF0aCIsIm1pbiIsInBsYWluVGV4dCIsImRlY2lw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LE1BQUwsQ0FBWSxLQUFLYixXQUFqQjtBQUNBLFdBQU8yQyxJQUFJLENBQUM3QixNQUFMLEVBQVA7QUFDRDs7QUE3RnVFIiwic291cmNlc0NvbnRlbnQiOlsiLy8gVGhpcyBjb2RlIGlzIGJhc2VkIG9uIHRoZSBgbXNzcWwtamRiY2AgbGlicmFyeSBwdWJsaXNoZWQgdW5kZXIgdGhlIGNvbmRpdGlvbnMgb2YgTUlUIGxpY2Vuc2UuXG4vLyBDb3B5cmlnaHQgKGMpIDIwMTkgTWljcm9zb2Z0IENvcnBvcmF0aW9uXG5cbmltcG9ydCB7IEVuY3J5cHRpb25BbGdvcml0aG0sIFNRTFNlcnZlckVuY3J5cHRpb25UeXBlIH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBjcmVhdGVIbWFjLCByYW5kb21CeXRlcywgY3JlYXRlQ2lwaGVyaXYsIGNyZWF0ZURlY2lwaGVyaXYgfSBmcm9tICdjcnlwdG8nO1xuaW1wb3J0IHsgQWVhZEFlczI1NkNiY0htYWMyNTZFbmNyeXB0aW9uS2V5LCBrZXlTaXplIH0gZnJvbSAnLi9hZWFkLWFlcy0yNTYtY2JjLWhtYWMtZW5jcnlwdGlvbi1rZXknO1xuXG5leHBvcnQgY29uc3QgYWxnb3JpdGhtTmFtZSA9ICdBRUFEX0FFU18yNTZfQ0JDX0hNQUNfU0hBMjU2JztcbmNvbnN0IGFsZ29yaXRobVZlcnNpb24gPSAweDE7XG5jb25zdCBibG9ja1NpemVJbkJ5dGVzID0gMTY7XG5cbmV4cG9ydCBjbGFzcyBBZWFkQWVzMjU2Q2JjSG1hYzI1NkFsZ29yaXRobSBpbXBsZW1lbnRzIEVuY3J5cHRpb25BbGdvcml0aG0ge1xuICBwcml2YXRlIGNvbHVtbkVuY3J5cHRpb25rZXk6IEFlYWRBZXMyNTZDYmNIbWFjMjU2RW5jcnlwdGlvbktleTtcbiAgcHJpdmF0ZSBpc0RldGVybWluaXN0aWM6IGJvb2xlYW47XG4gIHByaXZhdGUga2V5U2l6ZUluQnl0ZXM6IG51bWJlcjtcbiAgcHJpdmF0ZSB2ZXJzaW9uOiBCdWZmZXI7XG4gIHByaXZhdGUgdmVyc2lvblNpemU6IEJ1ZmZlcjtcbiAgcHJpdmF0ZSBtaW5pbXVtQ2lwaGVyVGV4dExlbmd0aEluQnl0ZXNOb0F1dGhlbnRpY2F0aW9uVGFnOiBudW1iZXI7XG4gIHByaXZhdGUgbWluaW11bUNpcGhlclRleHRMZW5ndGhJbkJ5dGVzV2l0aEF1dGhlbnRpY2F0aW9uVGFnOiBudW1iZXI7XG5cbiAgY29uc3RydWN0b3IoY29sdW1uRW5jcnlwdGlvbktleTogQWVhZEFlczI1NkNiY0htYWMyNTZFbmNyeXB0aW9uS2V5LCBlbmNyeXB0aW9uVHlwZTogU1FMU2VydmVyRW5jcnlwdGlvblR5cGUpIHtcbiAgICB0aGlzLmtleVNpemVJbkJ5dGVzID0ga2V5U2l6ZSAvIDg7XG4gICAgdGhpcy52ZXJzaW9uID0gQnVmZmVyLmZyb20oW2FsZ29yaXRobVZlcnNpb25dKTtcbiAgICB0aGlzLnZlcnNpb25TaXplID0gQnVmZmVyLmZyb20oWzFdKTtcbiAgICB0aGlzLm1pbmltdW1DaXBoZXJUZXh0TGVuZ3RoSW5CeXRlc05vQXV0aGVudGljYXRpb25UYWcgPSAxICsgYmxvY2tTaXplSW5CeXRlcyArIGJsb2NrU2l6ZUluQnl0ZXM7XG4gICAgdGhpcy5taW5pbXVtQ2lwaGVyVGV4dExlbmd0aEluQnl0ZXNXaXRoQXV0aGVudGljYXRpb25UYWcgPSB0aGlzLm1pbmltdW1DaXBoZXJUZXh0TGVuZ3RoSW5CeXRlc05vQXV0aGVudGljYXRpb25UYWcgKyB0aGlzLmtleVNpemVJbkJ5dGVzO1xuICAgIHRoaXMuY29sdW1uRW5jcnlwdGlvbmtleSA9IGNvbHVtbkVuY3J5cHRpb25LZXk7XG5cbiAgICB0aGlzLmlzRGV0ZXJtaW5pc3RpYyA9IGVuY3J5cHRpb25UeXBlID09PSBTUUxTZXJ2ZXJFbmNyeXB0aW9uVHlwZS5EZXRlcm1pbmlzdGljO1xuICB9XG5cbiAgZW5jcnlwdERhdGEocGxhaW50VGV4dDogQnVmZmVyKTogQnVmZmVyIHtcbiAgICBsZXQgaXY6IEJ1ZmZlcjtcblxuICAgIGlmICh0aGlzLmlzRGV0ZXJtaW5pc3RpYyA9PT0gdHJ1ZSkge1xuICAgICAgY29uc3QgaG1hY0l2ID0gY3JlYXRlSG1hYygnc2hhMjU2JywgdGhpcy5jb2x1bW5FbmNyeXB0aW9ua2V5LmdldEl2S2V5KCkpO1xuICAgICAgaG1hY0l2LnVwZGF0ZShwbGFpbnRUZXh0KTtcbiAgICAgIGl2ID0gaG1hY0l2LmRpZ2VzdCgpLnNsaWNlKDAsIGJsb2NrU2l6ZUluQnl0ZXMpO1xuICAgIH0gZWxzZSB7XG4gICAgICBpdiA9IHJhbmRvbUJ5dGVzKGJsb2NrU2l6ZUluQnl0ZXMpO1xuICAgIH1cblxuICAgIGNvbnN0IGVuY3J5cHRDaXBoZXIgPSBjcmVhdGVDaXBoZXJpdignYWVzLTI1Ni1jYmMnLCB0aGlzLmNvbHVtbkVuY3J5cHRpb25rZXkuZ2V0RW5jcnlwdGlvbktleSgpLCBpdik7XG5cbiAgICBjb25zdCBlbmNyeXB0ZWRCdWZmZXIgPSBCdWZmZXIuY29uY2F0KFtlbmNyeXB0Q2lwaGVyLnVwZGF0ZShwbGFpbnRUZXh0KSwgZW5jcnlwdENpcGhlci5maW5hbCgpXSk7XG5cbiAgICBjb25zdCBhdXRoZW50aWNhdGlvblRhZzogQnVmZmVyID0gdGhpcy5fcHJlcGFyZUF1dGhlbnRpY2F0aW9uVGFnKGl2LCBlbmNyeXB0ZWRCdWZmZXIsIDAsIGVuY3J5cHRlZEJ1ZmZlci5sZW5ndGgpO1xuXG4gICAgcmV0dXJuIEJ1ZmZlci5jb25jYXQoW0J1ZmZlci5mcm9tKFthbGdvcml0aG1WZXJzaW9uXSksIGF1dGhlbnRpY2F0aW9uVGFnLCBpdiwgZW5jcnlwdGVkQnVmZmVyXSk7XG4gIH1cblxuICBkZWNyeXB0RGF0YShjaXBoZXJUZXh0OiBCdWZmZXIpOiBCdWZmZXIge1xuICAgIGNvbnN0IGl2OiBCdWZmZXIgPSBCdWZmZXIuYWxsb2MoYmxvY2tTaXplSW5CeXRlcyk7XG5cbiAgICBjb25zdCBtaW5pbXVtQ2lwZXJUZXh0TGVuZ3RoOiBudW1iZXIgPSB0aGlzLm1pbmltdW1DaXBoZXJUZXh0TGVuZ3RoSW5CeXRlc1dpdGhBdXRoZW50aWNhdGlvblRhZztcblxuICAgIGlmIChjaXBoZXJUZXh0Lmxlbmd0aCA8IG1pbmltdW1DaXBlclRleHRMZW5ndGgpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgU3BlY2lmaWVkIGNpcGhlcnRleHQgaGFzIGFuIGludmFsaWQgc2l6ZSBvZiAke2NpcGhlclRleHQubGVuZ3RofSBieXRlcywgd2hpY2ggaXMgYmVsb3cgdGhlIG1pbmltdW0gJHttaW5pbXVtQ2lwZXJUZXh0TGVuZ3RofSBieXRlcyByZXF1aXJlZCBmb3IgZGVjcnlwdGlvbi5gKTtcbiAgICB9XG5cbiAgICBsZXQgc3RhcnRJbmRleCA9IDA7XG4gICAgaWYgKGNpcGhlclRleHRbMF0gIT09IGFsZ29yaXRobVZlcnNpb24pIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgVGhlIHNwZWNpZmllZCBjaXBoZXJ0ZXh0J3MgZW5jcnlwdGlvbiBhbGdvcml0aG0gdmVyc2lvbiAke0J1ZmZlci5mcm9tKFtjaXBoZXJUZXh0WzBdXSkudG9TdHJpbmcoJ2hleCcpfSBkb2VzIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgZW5jcnlwdGlvbiBhbGdvcml0aG0gdmVyc2lvbiAke2FsZ29yaXRobVZlcnNpb259LmApO1xuICAgIH1cblxuICAgIHN0YXJ0SW5kZXggKz0gMTtcbiAgICBsZXQgYXV0aGVudGljYXRpb25UYWdPZmZzZXQgPSAwO1xuXG4gICAgYXV0aGVudGljYXRpb25UYWdPZmZzZXQgPSBzdGFydEluZGV4O1xuICAgIHN0YXJ0SW5kZXggKz0gdGhpcy5rZXlTaXplSW5CeXRlcztcblxuICAgIGNpcGhlclRleHQuY29weShpdiwgMCwgc3RhcnRJbmRleCwgc3RhcnRJbmRleCArIGl2Lmxlbmd0aCk7XG4gICAgc3RhcnRJbmRleCArPSBpdi5sZW5ndGg7XG5cbiAgICBjb25zdCBjaXBoZXJUZXh0T2Zmc2V0ID0gc3RhcnRJbmRleDtcbiAgICBjb25zdCBjaXBoZXJUZXh0Q291bnQgPSBjaXBoZXJUZXh0Lmxlbmd0aCAtIHN0YXJ0SW5kZXg7XG5cbiAgICBjb25zdCBhdXRoZW50aWNhdGlvblRhZzogQnVmZmVyID0gdGhpcy5fcHJlcGFyZUF1dGhlbnRpY2F0aW9uVGFnKGl2LCBjaXBoZXJUZXh0LCBjaXBoZXJUZXh0T2Zmc2V0LCBjaXBoZXJUZXh0Q291bnQpO1xuXG4gICAgaWYgKDAgIT09IGF1dGhlbnRpY2F0aW9uVGFnLmNvbXBhcmUoY2lwaGVyVGV4dCwgYXV0aGVudGljYXRpb25UYWdPZmZzZXQsIE1hdGgubWluKGF1dGhlbnRpY2F0aW9uVGFnT2Zmc2V0ICsgY2lwaGVyVGV4dENvdW50LCBhdXRoZW50aWNhdGlvblRhZ09mZnNldCArIGF1dGhlbnRpY2F0aW9uVGFnLmxlbmd0aCksIDAsIE1hdGgubWluKGNpcGhlclRleHRDb3VudCwgYXV0aGVudGljYXRpb25UYWcubGVuZ3RoKSkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignU3BlY2lmaWVkIGNpcGhlcnRleHQgaGFzIGFuIGludmFsaWQgYXV0aGVudGljYXRpb24gdGFnLicpO1xuICAgIH1cblxuICAgIGxldCBwbGFpblRleHQ6IEJ1ZmZlcjtcblxuICAgIGNvbnN0IGRlY2lwaGVyID0gY3JlYXRlRGVjaXBoZXJpdignYWVzLTI1Ni1jYmMnLCB0aGlzLmNvbHVtbkVuY3J5cHRpb25rZXkuZ2V0RW5jcnlwdGlvbktleSgpLCBpdik7XG4gICAgdHJ5IHtcbiAgICAgIHBsYWluVGV4dCA9IGRlY2lwaGVyLnVwZGF0ZShjaXBoZXJUZXh0LnNsaWNlKGNpcGhlclRleHRPZmZzZXQsIGNpcGhlclRleHRPZmZzZXQgKyBjaXBoZXJUZXh0Q291bnQpKTtcbiAgICAgIHBsYWluVGV4dCA9IEJ1ZmZlci5jb25jYXQoW3BsYWluVGV4dCwgZGVjaXBoZXIuZmluYWwoKV0pO1xuICAgIH0gY2F0Y2ggKGVycm9yOiBhbnkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgSW50ZXJuYWwgZXJyb3Igd2hpbGUgZGVjcnlwdGlvbjogJHtlcnJvci5tZXNzYWdlfWApO1xuICAgIH1cblxuICAgIHJldHVybiBwbGFpblRleHQ7XG4gIH1cblxuICBfcHJlcGFyZUF1dGhlbnRpY2F0aW9uVGFnKGl2OiBCdWZmZXIsIGNpcGhlclRleHQ6IEJ1ZmZlciwgb2Zmc2V0OiBudW1iZXIsIGxlbmd0aDogbnVtYmVyKTogQnVmZmVyIHtcbiAgICBjb25zdCBobWFjID0gY3JlYXRlSG1hYygnc2hhMjU2JywgdGhpcy5jb2x1bW5FbmNyeXB0aW9ua2V5LmdldE1hY0tleSgpKTtcblxuICAgIGhtYWMudXBkYXRlKHRoaXMudmVyc2lvbik7XG4gICAgaG1hYy51cGRhdGUoaXYpO1xuICAgIGhtYWMudXBkYXRlKGNpcGhlclRleHQuc2xpY2Uob2Zmc2V0LCBvZmZzZXQgKyBsZW5ndGgpKTtcbiAgICBobWFjLnVwZGF0ZSh0aGlzLnZlcnNpb25TaXplKTtcbiAgICByZXR1cm4gaG1hYy5kaWdlc3QoKTtcbiAgfVxufVxuIl19
|
|
@@ -74,4 +74,5 @@ class AeadAes256CbcHmac256EncryptionKey extends _symmetricKey.default {
|
|
|
74
74
|
|
|
75
75
|
}
|
|
76
76
|
|
|
77
|
-
exports.AeadAes256CbcHmac256EncryptionKey = AeadAes256CbcHmac256EncryptionKey;
|
|
77
|
+
exports.AeadAes256CbcHmac256EncryptionKey = AeadAes256CbcHmac256EncryptionKey;
|
|
78
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hbHdheXMtZW5jcnlwdGVkL2FlYWQtYWVzLTI1Ni1jYmMtaG1hYy1lbmNyeXB0aW9uLWtleS50cyJdLCJuYW1lcyI6WyJrZXlTaXplIiwia2V5U2l6ZUluQnl0ZXMiLCJkZXJpdmVLZXkiLCJyb290S2V5Iiwic2FsdCIsImhtYWMiLCJ1cGRhdGUiLCJCdWZmZXIiLCJmcm9tIiwiZGlnZXN0IiwiZ2VuZXJhdGVLZXlTYWx0Iiwia2V5VHlwZSIsImFsZ29yaXRobU5hbWUiLCJBZWFkQWVzMjU2Q2JjSG1hYzI1NkVuY3J5cHRpb25LZXkiLCJTeW1tZXRyaWNLZXkiLCJjb25zdHJ1Y3RvciIsImVuY3J5cHRpb25LZXlTYWx0Rm9ybWF0IiwibWFjS2V5U2FsdEZvcm1hdCIsIml2S2V5U2FsdEZvcm1hdCIsImVuY3J5cHRpb25LZXkiLCJtYWNLZXkiLCJpdktleSIsImxlbmd0aCIsIkVycm9yIiwiZW5jS2V5QnVmZiIsIm1hY0tleUJ1ZmYiLCJpdktleUJ1ZmYiLCJlcnJvciIsIm1lc3NhZ2UiLCJnZXRFbmNyeXB0aW9uS2V5IiwiZ2V0TWFjS2V5IiwiZ2V0SXZLZXkiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFHQTs7QUFDQTs7OztBQUpBO0FBQ0E7QUFLTyxNQUFNQSxPQUFPLEdBQUcsR0FBaEI7O0FBQ1AsTUFBTUMsY0FBYyxHQUFHRCxPQUFPLEdBQUcsQ0FBakM7O0FBRU8sTUFBTUUsU0FBUyxHQUFHLENBQUNDLE9BQUQsRUFBa0JDLElBQWxCLEtBQTJDO0FBQ2xFLFFBQU1DLElBQUksR0FBRyx3QkFBVyxRQUFYLEVBQXFCRixPQUFyQixDQUFiO0FBQ0FFLEVBQUFBLElBQUksQ0FBQ0MsTUFBTCxDQUFZQyxNQUFNLENBQUNDLElBQVAsQ0FBWUosSUFBWixFQUFrQixTQUFsQixDQUFaO0FBQ0EsU0FBT0MsSUFBSSxDQUFDSSxNQUFMLEVBQVA7QUFDRCxDQUpNOzs7O0FBTUEsTUFBTUMsZUFBZSxHQUFHLENBQzdCQyxPQUQ2QixFQUU3QkMsYUFGNkIsRUFHN0JaLE9BSDZCLEtBSzVCLDZCQUE0QlcsT0FBUSxPQUFyQyxHQUNDLDZCQUE0QkMsYUFBYyxtQkFBa0JaLE9BQVEsRUFOaEU7Ozs7QUFRQSxNQUFNYSxpQ0FBTixTQUFnREMscUJBQWhELENBQTZEO0FBU2xFQyxFQUFBQSxXQUFXLENBQUNaLE9BQUQsRUFBa0JTLGFBQWxCLEVBQXlDO0FBQ2xELFVBQU1ULE9BQU47QUFEa0QsU0FSbkNTLGFBUW1DO0FBQUEsU0FQNUNJLHVCQU80QztBQUFBLFNBTjVDQyxnQkFNNEM7QUFBQSxTQUw1Q0MsZUFLNEM7QUFBQSxTQUo1Q0MsYUFJNEM7QUFBQSxTQUg1Q0MsTUFHNEM7QUFBQSxTQUY1Q0MsS0FFNEM7QUFFbEQsU0FBS1QsYUFBTCxHQUFxQkEsYUFBckI7QUFDQSxTQUFLSSx1QkFBTCxHQUErQk4sZUFBZSxDQUFDLFlBQUQsRUFBZSxLQUFLRSxhQUFwQixFQUFtQ1osT0FBbkMsQ0FBOUM7QUFDQSxTQUFLaUIsZ0JBQUwsR0FBd0JQLGVBQWUsQ0FBQyxLQUFELEVBQVEsS0FBS0UsYUFBYixFQUE0QlosT0FBNUIsQ0FBdkM7QUFDQSxTQUFLa0IsZUFBTCxHQUF1QlIsZUFBZSxDQUFDLElBQUQsRUFBTyxLQUFLRSxhQUFaLEVBQTJCWixPQUEzQixDQUF0Qzs7QUFFQSxRQUFJRyxPQUFPLENBQUNtQixNQUFSLEtBQW1CckIsY0FBdkIsRUFBdUM7QUFDckMsWUFBTSxJQUFJc0IsS0FBSixDQUFXLDhFQUE2RXBCLE9BQU8sQ0FBQ21CLE1BQU8sK0JBQThCckIsY0FBZSxtQkFBa0IsS0FBS1csYUFBYyw2RUFBekwsQ0FBTjtBQUNEOztBQUVELFFBQUk7QUFDRixZQUFNWSxVQUFVLEdBQUd0QixTQUFTLENBQUNDLE9BQUQsRUFBVSxLQUFLYSx1QkFBZixDQUE1QjtBQUVBLFdBQUtHLGFBQUwsR0FBcUIsSUFBSUwscUJBQUosQ0FBaUJVLFVBQWpCLENBQXJCO0FBRUEsWUFBTUMsVUFBVSxHQUFHdkIsU0FBUyxDQUFDQyxPQUFELEVBQVUsS0FBS2MsZ0JBQWYsQ0FBNUI7QUFFQSxXQUFLRyxNQUFMLEdBQWMsSUFBSU4scUJBQUosQ0FBaUJXLFVBQWpCLENBQWQ7QUFFQSxZQUFNQyxTQUFTLEdBQUd4QixTQUFTLENBQUNDLE9BQUQsRUFBVSxLQUFLZSxlQUFmLENBQTNCO0FBRUEsV0FBS0csS0FBTCxHQUFhLElBQUlQLHFCQUFKLENBQWlCWSxTQUFqQixDQUFiO0FBQ0QsS0FaRCxDQVlFLE9BQU9DLEtBQVAsRUFBbUI7QUFDbkIsWUFBTSxJQUFJSixLQUFKLENBQVcsMkJBQTBCSSxLQUFLLENBQUNDLE9BQVEsR0FBbkQsQ0FBTjtBQUNEO0FBQ0Y7O0FBRURDLEVBQUFBLGdCQUFnQixHQUFXO0FBQ3pCLFdBQU8sS0FBS1YsYUFBTCxDQUFtQmhCLE9BQTFCO0FBQ0Q7O0FBRUQyQixFQUFBQSxTQUFTLEdBQVc7QUFDbEIsV0FBTyxLQUFLVixNQUFMLENBQVlqQixPQUFuQjtBQUNEOztBQUVENEIsRUFBQUEsUUFBUSxHQUFXO0FBQ2pCLFdBQU8sS0FBS1YsS0FBTCxDQUFXbEIsT0FBbEI7QUFDRDs7QUEvQ2lFIiwic291cmNlc0NvbnRlbnQiOlsiLy8gVGhpcyBjb2RlIGlzIGJhc2VkIG9uIHRoZSBgbXNzcWwtamRiY2AgbGlicmFyeSBwdWJsaXNoZWQgdW5kZXIgdGhlIGNvbmRpdGlvbnMgb2YgTUlUIGxpY2Vuc2UuXG4vLyBDb3B5cmlnaHQgKGMpIDIwMTkgTWljcm9zb2Z0IENvcnBvcmF0aW9uXG5cbmltcG9ydCB7IGNyZWF0ZUhtYWMgfSBmcm9tICdjcnlwdG8nO1xuaW1wb3J0IFN5bW1ldHJpY0tleSBmcm9tICcuL3N5bW1ldHJpYy1rZXknO1xuXG5leHBvcnQgY29uc3Qga2V5U2l6ZSA9IDI1NjtcbmNvbnN0IGtleVNpemVJbkJ5dGVzID0ga2V5U2l6ZSAvIDg7XG5cbmV4cG9ydCBjb25zdCBkZXJpdmVLZXkgPSAocm9vdEtleTogQnVmZmVyLCBzYWx0OiBzdHJpbmcpOiBCdWZmZXIgPT4ge1xuICBjb25zdCBobWFjID0gY3JlYXRlSG1hYygnc2hhMjU2Jywgcm9vdEtleSk7XG4gIGhtYWMudXBkYXRlKEJ1ZmZlci5mcm9tKHNhbHQsICd1dGYxNmxlJykpO1xuICByZXR1cm4gaG1hYy5kaWdlc3QoKTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZW5lcmF0ZUtleVNhbHQgPSAoXG4gIGtleVR5cGU6ICdlbmNyeXB0aW9uJyB8ICdNQUMnIHwgJ0lWJyxcbiAgYWxnb3JpdGhtTmFtZTogc3RyaW5nLFxuICBrZXlTaXplOiBudW1iZXIsXG4pOiBzdHJpbmcgPT5cbiAgYE1pY3Jvc29mdCBTUUwgU2VydmVyIGNlbGwgJHtrZXlUeXBlfSBrZXkgYCArXG4gIGB3aXRoIGVuY3J5cHRpb24gYWxnb3JpdGhtOiR7YWxnb3JpdGhtTmFtZX0gYW5kIGtleSBsZW5ndGg6JHtrZXlTaXplfWA7XG5cbmV4cG9ydCBjbGFzcyBBZWFkQWVzMjU2Q2JjSG1hYzI1NkVuY3J5cHRpb25LZXkgZXh0ZW5kcyBTeW1tZXRyaWNLZXkge1xuICBwcml2YXRlIHJlYWRvbmx5IGFsZ29yaXRobU5hbWU6IHN0cmluZztcbiAgcHJpdmF0ZSBlbmNyeXB0aW9uS2V5U2FsdEZvcm1hdDogc3RyaW5nO1xuICBwcml2YXRlIG1hY0tleVNhbHRGb3JtYXQ6IHN0cmluZztcbiAgcHJpdmF0ZSBpdktleVNhbHRGb3JtYXQ6IHN0cmluZztcbiAgcHJpdmF0ZSBlbmNyeXB0aW9uS2V5OiBTeW1tZXRyaWNLZXk7XG4gIHByaXZhdGUgbWFjS2V5OiBTeW1tZXRyaWNLZXk7XG4gIHByaXZhdGUgaXZLZXk6IFN5bW1ldHJpY0tleTtcblxuICBjb25zdHJ1Y3Rvcihyb290S2V5OiBCdWZmZXIsIGFsZ29yaXRobU5hbWU6IHN0cmluZykge1xuICAgIHN1cGVyKHJvb3RLZXkpO1xuICAgIHRoaXMuYWxnb3JpdGhtTmFtZSA9IGFsZ29yaXRobU5hbWU7XG4gICAgdGhpcy5lbmNyeXB0aW9uS2V5U2FsdEZvcm1hdCA9IGdlbmVyYXRlS2V5U2FsdCgnZW5jcnlwdGlvbicsIHRoaXMuYWxnb3JpdGhtTmFtZSwga2V5U2l6ZSk7XG4gICAgdGhpcy5tYWNLZXlTYWx0Rm9ybWF0ID0gZ2VuZXJhdGVLZXlTYWx0KCdNQUMnLCB0aGlzLmFsZ29yaXRobU5hbWUsIGtleVNpemUpO1xuICAgIHRoaXMuaXZLZXlTYWx0Rm9ybWF0ID0gZ2VuZXJhdGVLZXlTYWx0KCdJVicsIHRoaXMuYWxnb3JpdGhtTmFtZSwga2V5U2l6ZSk7XG5cbiAgICBpZiAocm9vdEtleS5sZW5ndGggIT09IGtleVNpemVJbkJ5dGVzKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFRoZSBjb2x1bW4gZW5jcnlwdGlvbiBrZXkgaGFzIGJlZW4gc3VjY2Vzc2Z1bGx5IGRlY3J5cHRlZCBidXQgaXQncyBsZW5ndGg6ICR7cm9vdEtleS5sZW5ndGh9IGRvZXMgbm90IG1hdGNoIHRoZSBsZW5ndGg6ICR7a2V5U2l6ZUluQnl0ZXN9IGZvciBhbGdvcml0aG0gXCIke3RoaXMuYWxnb3JpdGhtTmFtZX1cIi4gVmVyaWZ5IHRoZSBlbmNyeXB0ZWQgdmFsdWUgb2YgdGhlIGNvbHVtbiBlbmNyeXB0aW9uIGtleSBpbiB0aGUgZGF0YWJhc2UuYCk7XG4gICAgfVxuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGVuY0tleUJ1ZmYgPSBkZXJpdmVLZXkocm9vdEtleSwgdGhpcy5lbmNyeXB0aW9uS2V5U2FsdEZvcm1hdCk7XG5cbiAgICAgIHRoaXMuZW5jcnlwdGlvbktleSA9IG5ldyBTeW1tZXRyaWNLZXkoZW5jS2V5QnVmZik7XG5cbiAgICAgIGNvbnN0IG1hY0tleUJ1ZmYgPSBkZXJpdmVLZXkocm9vdEtleSwgdGhpcy5tYWNLZXlTYWx0Rm9ybWF0KTtcblxuICAgICAgdGhpcy5tYWNLZXkgPSBuZXcgU3ltbWV0cmljS2V5KG1hY0tleUJ1ZmYpO1xuXG4gICAgICBjb25zdCBpdktleUJ1ZmYgPSBkZXJpdmVLZXkocm9vdEtleSwgdGhpcy5pdktleVNhbHRGb3JtYXQpO1xuXG4gICAgICB0aGlzLml2S2V5ID0gbmV3IFN5bW1ldHJpY0tleShpdktleUJ1ZmYpO1xuICAgIH0gY2F0Y2ggKGVycm9yOiBhbnkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgS2V5IGV4dHJhY3Rpb24gZmFpbGVkIDogJHtlcnJvci5tZXNzYWdlfS5gKTtcbiAgICB9XG4gIH1cblxuICBnZXRFbmNyeXB0aW9uS2V5KCk6IEJ1ZmZlciB7XG4gICAgcmV0dXJuIHRoaXMuZW5jcnlwdGlvbktleS5yb290S2V5O1xuICB9XG5cbiAgZ2V0TWFjS2V5KCk6IEJ1ZmZlciB7XG4gICAgcmV0dXJuIHRoaXMubWFjS2V5LnJvb3RLZXk7XG4gIH1cblxuICBnZXRJdktleSgpOiBCdWZmZXIge1xuICAgIHJldHVybiB0aGlzLml2S2V5LnJvb3RLZXk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -48,4 +48,5 @@ class CEKEntry {
|
|
|
48
48
|
|
|
49
49
|
}
|
|
50
50
|
|
|
51
|
-
exports.CEKEntry = CEKEntry;
|
|
51
|
+
exports.CEKEntry = CEKEntry;
|
|
52
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hbHdheXMtZW5jcnlwdGVkL2Nlay1lbnRyeS50cyJdLCJuYW1lcyI6WyJDRUtFbnRyeSIsImNvbnN0cnVjdG9yIiwib3JkaW5hbFZhbCIsImNvbHVtbkVuY3J5cHRpb25LZXlWYWx1ZXMiLCJvcmRpbmFsIiwiZGF0YWJhc2VJZCIsImNla0lkIiwiY2VrVmVyc2lvbiIsImNla01kVmVyc2lvbiIsIkJ1ZmZlciIsImFsbG9jIiwiYWRkIiwiZW5jcnlwdGVkS2V5IiwiZGJJZCIsImtleUlkIiwia2V5VmVyc2lvbiIsIm1kVmVyc2lvbiIsImtleVBhdGgiLCJrZXlTdG9yZU5hbWUiLCJhbGdvcml0aG1OYW1lIiwiZW5jcnlwdGlvbktleSIsInB1c2giLCJsZW5ndGgiLCJFcnJvciJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBO0FBQ0E7QUFJTyxNQUFNQSxRQUFOLENBQWU7QUFRcEJDLEVBQUFBLFdBQVcsQ0FBQ0MsVUFBRCxFQUFxQjtBQUFBLFNBUGhDQyx5QkFPZ0M7QUFBQSxTQU5oQ0MsT0FNZ0M7QUFBQSxTQUxoQ0MsVUFLZ0M7QUFBQSxTQUpoQ0MsS0FJZ0M7QUFBQSxTQUhoQ0MsVUFHZ0M7QUFBQSxTQUZoQ0MsWUFFZ0M7QUFDOUIsU0FBS0osT0FBTCxHQUFlRixVQUFmO0FBQ0EsU0FBS0csVUFBTCxHQUFrQixDQUFsQjtBQUNBLFNBQUtDLEtBQUwsR0FBYSxDQUFiO0FBQ0EsU0FBS0MsVUFBTCxHQUFrQixDQUFsQjtBQUNBLFNBQUtDLFlBQUwsR0FBb0JDLE1BQU0sQ0FBQ0MsS0FBUCxDQUFhLENBQWIsQ0FBcEI7QUFDQSxTQUFLUCx5QkFBTCxHQUFpQyxFQUFqQztBQUNEOztBQUVEUSxFQUFBQSxHQUFHLENBQUNDLFlBQUQsRUFBdUJDLElBQXZCLEVBQXFDQyxLQUFyQyxFQUFvREMsVUFBcEQsRUFBd0VDLFNBQXhFLEVBQTJGQyxPQUEzRixFQUE0R0MsWUFBNUcsRUFBa0lDLGFBQWxJLEVBQStKO0FBQ2hLLFVBQU1DLGFBQWdDLEdBQUc7QUFDdkNSLE1BQUFBLFlBRHVDO0FBRXZDQyxNQUFBQSxJQUZ1QztBQUd2Q0MsTUFBQUEsS0FIdUM7QUFJdkNDLE1BQUFBLFVBSnVDO0FBS3ZDQyxNQUFBQSxTQUx1QztBQU12Q0MsTUFBQUEsT0FOdUM7QUFPdkNDLE1BQUFBLFlBUHVDO0FBUXZDQyxNQUFBQTtBQVJ1QyxLQUF6QztBQVdBLFNBQUtoQix5QkFBTCxDQUErQmtCLElBQS9CLENBQW9DRCxhQUFwQzs7QUFFQSxRQUFJLEtBQUtmLFVBQUwsS0FBb0IsQ0FBeEIsRUFBMkI7QUFDekIsV0FBS0EsVUFBTCxHQUFrQlEsSUFBbEI7QUFDQSxXQUFLUCxLQUFMLEdBQWFRLEtBQWI7QUFDQSxXQUFLUCxVQUFMLEdBQWtCUSxVQUFsQjtBQUNBLFdBQUtQLFlBQUwsR0FBb0JRLFNBQXBCO0FBQ0QsS0FMRCxNQUtPLElBQUssS0FBS1gsVUFBTCxLQUFvQlEsSUFBckIsSUFBK0IsS0FBS1AsS0FBTCxLQUFlUSxLQUE5QyxJQUF5RCxLQUFLUCxVQUFMLEtBQW9CUSxVQUE3RSxJQUE0RixDQUFDLEtBQUtQLFlBQWxHLElBQWtILENBQUNRLFNBQW5ILElBQWdJLEtBQUtSLFlBQUwsQ0FBa0JjLE1BQWxCLEtBQTZCTixTQUFTLENBQUNNLE1BQTNLLEVBQW1MO0FBQ3hMLFlBQU0sSUFBSUMsS0FBSixDQUFVLHdEQUFWLENBQU47QUFDRDtBQUNGOztBQXZDbUIiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBUaGlzIGNvZGUgaXMgYmFzZWQgb24gdGhlIGBtc3NxbC1qZGJjYCBsaWJyYXJ5IHB1Ymxpc2hlZCB1bmRlciB0aGUgY29uZGl0aW9ucyBvZiBNSVQgbGljZW5zZS5cbi8vIENvcHlyaWdodCAoYykgMjAxOSBNaWNyb3NvZnQgQ29ycG9yYXRpb25cblxuaW1wb3J0IHsgRW5jcnlwdGlvbktleUluZm8gfSBmcm9tICcuL3R5cGVzJztcblxuZXhwb3J0IGNsYXNzIENFS0VudHJ5IHtcbiAgY29sdW1uRW5jcnlwdGlvbktleVZhbHVlczogRW5jcnlwdGlvbktleUluZm9bXTtcbiAgb3JkaW5hbDogbnVtYmVyO1xuICBkYXRhYmFzZUlkOiBudW1iZXI7XG4gIGNla0lkOiBudW1iZXI7XG4gIGNla1ZlcnNpb246IG51bWJlcjtcbiAgY2VrTWRWZXJzaW9uOiBCdWZmZXI7XG5cbiAgY29uc3RydWN0b3Iob3JkaW5hbFZhbDogbnVtYmVyKSB7XG4gICAgdGhpcy5vcmRpbmFsID0gb3JkaW5hbFZhbDtcbiAgICB0aGlzLmRhdGFiYXNlSWQgPSAwO1xuICAgIHRoaXMuY2VrSWQgPSAwO1xuICAgIHRoaXMuY2VrVmVyc2lvbiA9IDA7XG4gICAgdGhpcy5jZWtNZFZlcnNpb24gPSBCdWZmZXIuYWxsb2MoMCk7XG4gICAgdGhpcy5jb2x1bW5FbmNyeXB0aW9uS2V5VmFsdWVzID0gW107XG4gIH1cblxuICBhZGQoZW5jcnlwdGVkS2V5OiBCdWZmZXIsIGRiSWQ6IG51bWJlciwga2V5SWQ6IG51bWJlciwga2V5VmVyc2lvbjogbnVtYmVyLCBtZFZlcnNpb246IEJ1ZmZlciwga2V5UGF0aDogc3RyaW5nLCBrZXlTdG9yZU5hbWU6IHN0cmluZywgYWxnb3JpdGhtTmFtZTogc3RyaW5nKTogdm9pZCB7XG4gICAgY29uc3QgZW5jcnlwdGlvbktleTogRW5jcnlwdGlvbktleUluZm8gPSB7XG4gICAgICBlbmNyeXB0ZWRLZXksXG4gICAgICBkYklkLFxuICAgICAga2V5SWQsXG4gICAgICBrZXlWZXJzaW9uLFxuICAgICAgbWRWZXJzaW9uLFxuICAgICAga2V5UGF0aCxcbiAgICAgIGtleVN0b3JlTmFtZSxcbiAgICAgIGFsZ29yaXRobU5hbWUsXG4gICAgfTtcblxuICAgIHRoaXMuY29sdW1uRW5jcnlwdGlvbktleVZhbHVlcy5wdXNoKGVuY3J5cHRpb25LZXkpO1xuXG4gICAgaWYgKHRoaXMuZGF0YWJhc2VJZCA9PT0gMCkge1xuICAgICAgdGhpcy5kYXRhYmFzZUlkID0gZGJJZDtcbiAgICAgIHRoaXMuY2VrSWQgPSBrZXlJZDtcbiAgICAgIHRoaXMuY2VrVmVyc2lvbiA9IGtleVZlcnNpb247XG4gICAgICB0aGlzLmNla01kVmVyc2lvbiA9IG1kVmVyc2lvbjtcbiAgICB9IGVsc2UgaWYgKCh0aGlzLmRhdGFiYXNlSWQgIT09IGRiSWQpIHx8ICh0aGlzLmNla0lkICE9PSBrZXlJZCkgfHwgKHRoaXMuY2VrVmVyc2lvbiAhPT0ga2V5VmVyc2lvbikgfHwgIXRoaXMuY2VrTWRWZXJzaW9uIHx8ICFtZFZlcnNpb24gfHwgdGhpcy5jZWtNZFZlcnNpb24ubGVuZ3RoICE9PSBtZFZlcnNpb24ubGVuZ3RoKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgZGF0YWJhc2VJZCwgY2VrSWQsIGNla1ZlcnNpb24gb3IgY2VrTWRWZXJzaW9uLicpO1xuICAgIH1cbiAgfVxufVxuIl19
|
|
@@ -108,4 +108,5 @@ const getParameterEncryptionMetadata = (connection, request, callback) => {
|
|
|
108
108
|
connection.makeRequest(metadataRequest, _packet.TYPE.RPC_REQUEST, new _rpcrequestPayload.default(metadataRequest.sqlTextOrProcedure, metadataRequest.parameters, connection.currentTransactionDescriptor(), connection.config.options, connection.databaseCollation));
|
|
109
109
|
};
|
|
110
110
|
|
|
111
|
-
exports.getParameterEncryptionMetadata = getParameterEncryptionMetadata;
|
|
111
|
+
exports.getParameterEncryptionMetadata = getParameterEncryptionMetadata;
|
|
112
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hbHdheXMtZW5jcnlwdGVkL2dldC1wYXJhbWV0ZXItZW5jcnlwdGlvbi1tZXRhZGF0YS50cyJdLCJuYW1lcyI6WyJnZXRQYXJhbWV0ZXJFbmNyeXB0aW9uTWV0YWRhdGEiLCJjb25uZWN0aW9uIiwicmVxdWVzdCIsImNhbGxiYWNrIiwiY3J5cHRvTWV0YWRhdGFMb2FkZWQiLCJtZXRhZGF0YVJlcXVlc3QiLCJSZXF1ZXN0IiwiZXJyb3IiLCJkZWNyeXB0U3ltbWV0cmljS2V5UHJvbWlzZXMiLCJjZWtMaXN0IiwicGFyYW1Db3VudCIsImNvbHVtbnMiLCJyZXN1bHRSb3dzIiwiaXNGaXJzdFJlY29yZFNldCIsInNvbWUiLCJjb2wiLCJtZXRhZGF0YSIsImNvbE5hbWUiLCJjdXJyZW50T3JkaW5hbCIsIkRlc2NyaWJlUGFyYW1ldGVyRW5jcnlwdGlvblJlc3VsdFNldDEiLCJLZXlPcmRpbmFsIiwidmFsdWUiLCJjZWtFbnRyeSIsIkNFS0VudHJ5Iiwib3JkaW5hbCIsImFkZCIsIkVuY3J5cHRlZEtleSIsIkRiSWQiLCJLZXlJZCIsIktleVZlcnNpb24iLCJLZXlNZFZlcnNpb24iLCJLZXlQYXRoIiwiUHJvdmlkZXJOYW1lIiwiS2V5RW5jcnlwdGlvbkFsZ29yaXRobSIsInBhcmFtTmFtZSIsIkRlc2NyaWJlUGFyYW1ldGVyRW5jcnlwdGlvblJlc3VsdFNldDIiLCJQYXJhbWV0ZXJOYW1lIiwicGFyYW1JbmRleCIsInBhcmFtZXRlcnMiLCJmaW5kSW5kZXgiLCJwYXJhbSIsIm5hbWUiLCJjZWtPcmRpbmFsIiwiQ29sdW1uRW5jcnlwdGlvbktleU9yZGluYWwiLCJsZW5ndGgiLCJFcnJvciIsImVuY1R5cGUiLCJDb2x1bW5FbmNyeXRpb25UeXBlIiwiU1FMU2VydmVyRW5jcnlwdGlvblR5cGUiLCJQbGFpblRleHQiLCJjcnlwdG9NZXRhZGF0YSIsImNpcGhlckFsZ29yaXRobUlkIiwiQ29sdW1uRW5jcnlwdGlvbkFsZ29yaXRobSIsImVuY3J5cHRpb25UeXBlIiwibm9ybWFsaXphdGlvblJ1bGVWZXJzaW9uIiwiQnVmZmVyIiwiZnJvbSIsIk5vcm1hbGl6YXRpb25SdWxlVmVyc2lvbiIsInB1c2giLCJjb25maWciLCJvcHRpb25zIiwiZm9yY2VFbmNyeXB0Iiwic3FsVGV4dE9yUHJvY2VkdXJlIiwiUHJvbWlzZSIsImFsbCIsInRoZW4iLCJwcm9jZXNzIiwibmV4dFRpY2siLCJhZGRQYXJhbWV0ZXIiLCJUWVBFUyIsIk5WYXJDaGFyIiwibWFrZVBhcmFtc1BhcmFtZXRlciIsIm9uIiwibWFrZVJlcXVlc3QiLCJUWVBFIiwiUlBDX1JFUVVFU1QiLCJScGNSZXF1ZXN0UGF5bG9hZCIsImN1cnJlbnRUcmFuc2FjdGlvbkRlc2NyaXB0b3IiLCJkYXRhYmFzZUNvbGxhdGlvbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUdBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUVBOztBQUNBOzs7O0FBVkE7QUFDQTtBQVdPLE1BQU1BLDhCQUE4QixHQUFHLENBQUNDLFVBQUQsRUFBeUJDLE9BQXpCLEVBQTJDQyxRQUEzQyxLQUFpRjtBQUM3SCxNQUFJRCxPQUFPLENBQUNFLG9CQUFSLEtBQWlDLElBQXJDLEVBQTJDO0FBQ3pDLFdBQU9ELFFBQVEsRUFBZjtBQUNEOztBQUVELFFBQU1FLGVBQWUsR0FBRyxJQUFJQyxnQkFBSixDQUFZLGtDQUFaLEVBQWlEQyxLQUFELElBQVc7QUFDakYsUUFBSUEsS0FBSixFQUFXO0FBQ1QsYUFBT0osUUFBUSxDQUFDSSxLQUFELENBQWY7QUFDRDs7QUFFRCxVQUFNQywyQkFBNEMsR0FBRyxFQUFyRDtBQUNBLFVBQU1DLE9BQW1CLEdBQUcsRUFBNUI7QUFDQSxRQUFJQyxVQUFVLEdBQUcsQ0FBakI7O0FBRUEsU0FBSyxNQUFNQyxPQUFYLElBQXNCQyxVQUF0QixFQUFrQztBQUNoQyxVQUFJO0FBQ0YsY0FBTUMsZ0JBQWdCLEdBQUdGLE9BQU8sQ0FBQ0csSUFBUixDQUFjQyxHQUFELElBQWMsQ0FBQ0EsR0FBRyxJQUFJQSxH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TUFBN0IsRUFBcUNDLHFCQUFNQyxRQUEzQyxFQUFxRHBFLE9BQU8sQ0FBQzRELGtCQUE3RDs7QUFDQSxNQUFJNUQsT0FBTyxDQUFDb0MsVUFBUixDQUFtQk0sTUFBdkIsRUFBK0I7QUFDN0J2QyxJQUFBQSxlQUFlLENBQUMrRCxZQUFoQixDQUE2QixRQUE3QixFQUF1Q0MscUJBQU1DLFFBQTdDLEVBQXVEakUsZUFBZSxDQUFDa0UsbUJBQWhCLENBQW9DckUsT0FBTyxDQUFDb0MsVUFBNUMsQ0FBdkQ7QUFDRDs7QUFFRCxRQUFNMUIsVUFBaUIsR0FBRyxFQUExQjtBQUVBUCxFQUFBQSxlQUFlLENBQUNtRSxFQUFoQixDQUFtQixLQUFuQixFQUEyQjdELE9BQUQsSUFBa0I7QUFDMUNDLElBQUFBLFVBQVUsQ0FBQzhDLElBQVgsQ0FBZ0IvQyxPQUFoQjtBQUNELEdBRkQ7QUFJQVYsRUFBQUEsVUFBVSxDQUFDd0UsV0FBWCxDQUF1QnBFLGVBQXZCLEVBQXdDcUUsYUFBS0MsV0FBN0MsRUFBMEQsSUFBSUMsMEJBQUosQ0FBc0J2RSxlQUFlLENBQUN5RCxrQkFBdEMsRUFBMkR6RCxlQUFlLENBQUNpQyxVQUEzRSxFQUF1RnJDLFVBQVUsQ0FBQzRFLDRCQUFYLEVBQXZGLEVBQWtJNUUsVUFBVSxDQUFDMEQsTUFBWCxDQUFrQkMsT0FBcEosRUFBNkozRCxVQUFVLENBQUM2RSxpQkFBeEssQ0FBMUQ7QUFDRCxDQXhGTSIsInNvdXJjZXNDb250ZW50IjpbIi8vIFRoaXMgY29kZSBpcyBiYXNlZCBvbiB0aGUgYG1zc3FsLWpkYmNgIGxpYnJhcnkgcHVibGlzaGVkIHVuZGVyIHRoZSBjb25kaXRpb25zIG9mIE1JVCBsaWNlbnNlLlxuLy8gQ29weXJpZ2h0IChjKSAyMDE5IE1pY3Jvc29mdCBDb3Jwb3JhdGlvblxuXG5pbXBvcnQgeyBTUUxTZXJ2ZXJFbmNyeXB0aW9uVHlwZSwgQ3J5cHRvTWV0YWRhdGEsIERlc2NyaWJlUGFyYW1ldGVyRW5jcnlwdGlvblJlc3VsdFNldDEsIERlc2NyaWJlUGFyYW1ldGVyRW5jcnlwdGlvblJlc3VsdFNldDIgfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IENFS0VudHJ5IH0gZnJvbSAnLi9jZWstZW50cnknO1xuaW1wb3J0IHsgZGVjcnlwdFN5bW1ldHJpY0tleSB9IGZyb20gJy4va2V5LWNyeXB0byc7XG5pbXBvcnQgeyB0eXBlQnlOYW1lIGFzIFRZUEVTLCBQYXJhbWV0ZXIgfSBmcm9tICcuLi9kYXRhLXR5cGUnO1xuaW1wb3J0IFJlcXVlc3QgZnJvbSAnLi4vcmVxdWVzdCc7XG5pbXBvcnQgQ29ubmVjdGlvbiBmcm9tICcuLi9jb25uZWN0aW9uJztcbmltcG9ydCBScGNSZXF1ZXN0UGF5bG9hZCBmcm9tICcuLi9ycGNyZXF1ZXN0LXBheWxvYWQnO1xuaW1wb3J0IHsgVFlQRSB9IGZyb20gJy4uL3BhY2tldCc7XG5cbmV4cG9ydCBjb25zdCBnZXRQYXJhbWV0ZXJFbmNyeXB0aW9uTWV0YWRhdGEgPSAoY29ubmVjdGlvbjogQ29ubmVjdGlvbiwgcmVxdWVzdDogUmVxdWVzdCwgY2FsbGJhY2s6IChlcnJvcj86IEVycm9yKSA9PiB2b2lkKSA9PiB7XG4gIGlmIChyZXF1ZXN0LmNyeXB0b01ldGFkYXRhTG9hZGVkID09PSB0cnVlKSB7XG4gICAgcmV0dXJuIGNhbGxiYWNrKCk7XG4gIH1cblxuICBjb25zdCBtZXRhZGF0YVJlcXVlc3QgPSBuZXcgUmVxdWVzdCgnc3BfZGVzY3JpYmVfcGFyYW1ldGVyX2VuY3J5cHRpb24nLCAoZXJyb3IpID0+IHtcbiAgICBpZiAoZXJyb3IpIHtcbiAgICAgIHJldHVybiBjYWxsYmFjayhlcnJvcik7XG4gICAgfVxuXG4gICAgY29uc3QgZGVjcnlwdFN5bW1ldHJpY0tleVByb21pc2VzOiBQcm9taXNlPHZvaWQ+W10gPSBbXTtcbiAgICBjb25zdCBjZWtMaXN0OiBDRUtFbnRyeVtdID0gW107XG4gICAgbGV0IHBhcmFtQ291bnQgPSAwO1xuXG4gICAgZm9yIChjb25zdCBjb2x1bW5zIG9mIHJlc3VsdFJvd3MpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IGlzRmlyc3RSZWNvcmRTZXQgPSBjb2x1bW5zLnNvbWUoKGNvbDogYW55KSA9PiAoY29sICYmIGNvbC5tZXRhZGF0YSAmJiBjb2wubWV0YWRhdGEuY29sTmFtZSkgPT09ICdkYXRhYmFzZV9pZCcpO1xuICAgICAgICBpZiAoaXNGaXJzdFJlY29yZFNldCA9PT0gdHJ1ZSkge1xuICAgICAgICAgIGNvbnN0IGN1cnJlbnRPcmRpbmFsID0gY29sdW1uc1tEZXNjcmliZVBhcmFtZXRlckVuY3J5cHRpb25SZXN1bHRTZXQxLktleU9yZGluYWxdLnZhbHVlO1xuICAgICAgICAgIGxldCBjZWtFbnRyeTogQ0VLRW50cnk7XG4gICAgICAgICAgaWYgKCFjZWtMaXN0W2N1cnJlbnRPcmRpbmFsXSkge1xuICAgICAgICAgICAgY2VrRW50cnkgPSBuZXcgQ0VLRW50cnkoY3VycmVudE9yZGluYWwpO1xuICAgICAgICAgICAgY2VrTGlzdFtjZWtFbnRyeS5vcmRpbmFsXSA9IGNla0VudHJ5O1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjZWtFbnRyeSA9IGNla0xpc3RbY3VycmVudE9yZGluYWxdO1xuICAgICAgICAgIH1cbiAgICAgICAgICBjZWtFbnRyeS5hZGQoY29sdW1uc1tEZXNjcmliZVBhcmFtZXRlckVuY3J5cHRpb25SZXN1bHRTZXQxLkVuY3J5cHRlZEtleV0udmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgIGNvbHVtbnNbRGVzY3JpYmVQYXJhbWV0ZXJFbmNyeXB0aW9uUmVzdWx0U2V0MS5EYklkXS52YWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgY29sdW1uc1tEZXNjcmliZVBhcmFtZXRlckVuY3J5cHRpb25SZXN1bHRTZXQxLktleUlkXS52YWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgY29sdW1uc1tEZXNjcmliZVBhcmFtZXRlckVuY3J5cHRpb25SZXN1bHRTZXQxLktleVZlcnNpb25dLnZhbHVlLFxuICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW5zW0Rlc2NyaWJlUGFyYW1ldGVyRW5jcnlwdGlvblJlc3VsdFNldDEuS2V5TWRWZXJzaW9uXS52YWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgY29sdW1uc1tEZXNjcmliZVBhcmFtZXRlckVuY3J5cHRpb25SZXN1bHRTZXQxLktleVBhdGhdLnZhbHVlLFxuICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW5zW0Rlc2NyaWJlUGFyYW1ldGVyRW5jcnlwdGlvblJlc3VsdFNldDEuUHJvdmlkZXJOYW1lXS52YWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgY29sdW1uc1tEZXNjcmliZVBhcmFtZXRlckVuY3J5cHRpb25SZXN1bHRTZXQxLktleUVuY3J5cHRpb25BbGdvcml0aG1dLnZhbHVlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBwYXJhbUNvdW50Kys7XG4gICAgICAgICAgY29uc3QgcGFyYW1OYW1lOiBzdHJpbmcgPSBjb2x1bW5zW0Rlc2NyaWJlUGFyYW1ldGVyRW5jcnlwdGlvblJlc3VsdFNldDIuUGFyYW1ldGVyTmFtZV0udmFsdWU7XG4gICAgICAgICAgY29uc3QgcGFyYW1JbmRleDogbnVtYmVyID0gcmVxdWVzdC5wYXJhbWV0ZXJzLmZpbmRJbmRleCgocGFyYW06IFBhcmFtZXRlcikgPT4gcGFyYW1OYW1lID09PSBgQCR7cGFyYW0ubmFtZX1gKTtcbiAgICAgICAgICBjb25zdCBjZWtPcmRpbmFsOiBudW1iZXIgPSBjb2x1bW5zW0Rlc2NyaWJlUGFyYW1ldGVyRW5jcnlwdGlvblJlc3VsdFNldDIuQ29sdW1uRW5jcnlwdGlvbktleU9yZGluYWxdLnZhbHVlO1xuICAgICAgICAgIGNvbnN0IGNla0VudHJ5OiBDRUtFbnRyeSA9IGNla0xpc3RbY2VrT3JkaW5hbF07XG5cbiAgICAgICAgICBpZiAoY2VrRW50cnkgJiYgY2VrTGlzdC5sZW5ndGggPCBjZWtPcmRpbmFsKSB7XG4gICAgICAgICAgICByZXR1cm4gY2FsbGJhY2sobmV3IEVycm9yKGBJbnRlcm5hbCBlcnJvci4gVGhlIHJlZmVyZW5jZWQgY29sdW1uIGVuY3J5cHRpb24ga2V5IG9yZGluYWwgXCIke2Nla09yZGluYWx9XCIgaXMgbWlzc2luZyBpbiB0aGUgZW5jcnlwdGlvbiBtZXRhZGF0YSByZXR1cm5lZCBieSBzcF9kZXNjcmliZV9wYXJhbWV0ZXJfZW5jcnlwdGlvbi4gTWF4IG9yZGluYWwgaXMgXCIke2Nla0xpc3QubGVuZ3RofVwiLmApKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb25zdCBlbmNUeXBlID0gY29sdW1uc1tEZXNjcmliZVBhcmFtZXRlckVuY3J5cHRpb25SZXN1bHRTZXQyLkNvbHVtbkVuY3J5dGlvblR5cGVdLnZhbHVlO1xuICAgICAgICAgIGlmIChTUUxTZXJ2ZXJFbmNyeXB0aW9uVHlwZS5QbGFpblRleHQgIT09IGVuY1R5cGUpIHtcbiAgICAgICAgICAgIHJlcXVlc3QucGFyYW1ldGVyc1twYXJhbUluZGV4XS5jcnlwdG9NZXRhZGF0YSA9IHtcbiAgICAgICAgICAgICAgY2VrRW50cnk6IGNla0VudHJ5LFxuICAgICAgICAgICAgICBvcmRpbmFsOiBjZWtPcmRpbmFsLFxuICAgICAgICAgICAgICBjaXBoZXJBbGdvcml0aG1JZDogY29sdW1uc1tEZXNjcmliZVBhcmFtZXRlckVuY3J5cHRpb25SZXN1bHRTZXQyLkNvbHVtbkVuY3J5cHRpb25BbGdvcml0aG1dLnZhbHVlLFxuICAgICAgICAgICAgICBlbmNyeXB0aW9uVHlwZTogZW5jVHlwZSxcbiAgICAgICAgICAgICAgbm9ybWFsaXphdGlvblJ1bGVWZXJzaW9uOiBCdWZmZXIuZnJvbShbY29sdW1uc1tEZXNjcmliZVBhcmFtZXRlckVuY3J5cHRpb25SZXN1bHRTZXQyLk5vcm1hbGl6YXRpb25SdWxlVmVyc2lvbl0udmFsdWVdKSxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBkZWNyeXB0U3ltbWV0cmljS2V5UHJvbWlzZXMucHVzaChkZWNyeXB0U3ltbWV0cmljS2V5KHJlcXVlc3QucGFyYW1ldGVyc1twYXJhbUluZGV4XS5jcnlwdG9NZXRhZGF0YSBhcyBDcnlwdG9NZXRhZGF0YSwgY29ubmVjdGlvbi5jb25maWcub3B0aW9ucykpO1xuICAgICAgICAgIH0gZWxzZSBpZiAocmVxdWVzdC5wYXJhbWV0ZXJzW3BhcmFtSW5kZXhdLmZvcmNlRW5jcnlwdCA9PT0gdHJ1ZSkge1xuICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKG5ldyBFcnJvcihgQ2Fubm90IGV4ZWN1dGUgc3RhdGVtZW50IG9yIHByb2NlZHVyZSAke3JlcXVlc3Quc3FsVGV4dE9yUHJvY2VkdXJlfSBiZWNhdXNlIEZvcmNlIEVuY3J5cHRpb24gd2FzIHNldCBhcyB0cnVlIGZvciBwYXJhbWV0ZXIgJHtwYXJhbUluZGV4ICsgMX0gYW5kIHRoZSBkYXRhYmFzZSBleHBlY3RzIHRoaXMgcGFyYW1ldGVyIHRvIGJlIHNlbnQgYXMgcGxhaW50ZXh0LiBUaGlzIG1heSBiZSBkdWUgdG8gYSBjb25maWd1cmF0aW9uIGVycm9yLmApKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0gY2F0Y2gge1xuICAgICAgICByZXR1cm4gY2FsbGJhY2sobmV3IEVycm9yKGBJbnRlcm5hbCBlcnJvci4gVW5hYmxlIHRvIHBhcnNlIHBhcmFtZXRlciBlbmNyeXB0aW9uIG1ldGFkYXRhIGluIHN0YXRlbWVudCBvciBwcm9jZWR1cmUgXCIke3JlcXVlc3Quc3FsVGV4dE9yUHJvY2VkdXJlfVwiYCkpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChwYXJhbUNvdW50ICE9PSByZXF1ZXN0LnBhcmFtZXRlcnMubGVuZ3RoKSB7XG4gICAgICByZXR1cm4gY2FsbGJhY2sobmV3IEVycm9yKGBJbnRlcm5hbCBlcnJvci4gTWV0YWRhdGEgZm9yIHNvbWUgcGFyYW1ldGVycyBpbiBzdGF0ZW1lbnQgb3IgcHJvY2VkdXJlIFwiJHtyZXF1ZXN0LnNxbFRleHRPclByb2NlZHVyZX1cIiBpcyBtaXNzaW5nIGluIHRoZSByZXN1bHRzZXQgcmV0dXJuZWQgYnkgc3BfZGVzY3JpYmVfcGFyYW1ldGVyX2VuY3J5cHRpb24uYCkpO1xuICAgIH1cblxuICAgIHJldHVybiBQcm9taXNlLmFsbChkZWNyeXB0U3ltbWV0cmljS2V5UHJvbWlzZXMpLnRoZW4oKCkgPT4ge1xuICAgICAgcmVxdWVzdC5jcnlwdG9NZXRhZGF0YUxvYWRlZCA9IHRydWU7XG4gICAgICBwcm9jZXNzLm5leHRUaWNrKGNhbGxiYWNrKTtcbiAgICB9LCAoZXJyb3IpID0+IHtcbiAgICAgIHByb2Nlc3MubmV4dFRpY2soY2FsbGJhY2ssIGVycm9yKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgbWV0YWRhdGFSZXF1ZXN0LmFkZFBhcmFtZXRlcigndHNxbCcsIFRZUEVTLk5WYXJDaGFyLCByZXF1ZXN0LnNxbFRleHRPclByb2NlZHVyZSk7XG4gIGlmIChyZXF1ZXN0LnBhcmFtZXRlcnMubGVuZ3RoKSB7XG4gICAgbWV0YWRhdGFSZXF1ZXN0LmFkZFBhcmFtZXRlcigncGFyYW1zJywgVFlQRVMuTlZhckNoYXIsIG1ldGFkYXRhUmVxdWVzdC5tYWtlUGFyYW1zUGFyYW1ldGVyKHJlcXVlc3QucGFyYW1ldGVycykpO1xuICB9XG5cbiAgY29uc3QgcmVzdWx0Um93czogYW55W10gPSBbXTtcblxuICBtZXRhZGF0YVJlcXVlc3Qub24oJ3JvdycsIChjb2x1bW5zOiBhbnkpID0+IHtcbiAgICByZXN1bHRSb3dzLnB1c2goY29sdW1ucyk7XG4gIH0pO1xuXG4gIGNvbm5lY3Rpb24ubWFrZVJlcXVlc3QobWV0YWRhdGFSZXF1ZXN0LCBUWVBFLlJQQ19SRVFVRVNULCBuZXcgUnBjUmVxdWVzdFBheWxvYWQobWV0YWRhdGFSZXF1ZXN0LnNxbFRleHRPclByb2NlZHVyZSEsIG1ldGFkYXRhUmVxdWVzdC5wYXJhbWV0ZXJzLCBjb25uZWN0aW9uLmN1cnJlbnRUcmFuc2FjdGlvbkRlc2NyaXB0b3IoKSwgY29ubmVjdGlvbi5jb25maWcub3B0aW9ucywgY29ubmVjdGlvbi5kYXRhYmFzZUNvbGxhdGlvbikpO1xufTtcbiJdfQ==
|
|
@@ -115,4 +115,5 @@ const decryptSymmetricKey = async (md, options) => {
|
|
|
115
115
|
md.encryptionKeyInfo = encryptionKeyInfoChosen;
|
|
116
116
|
};
|
|
117
117
|
|
|
118
|
-
exports.decryptSymmetricKey = decryptSymmetricKey;
|
|
118
|
+
exports.decryptSymmetricKey = decryptSymmetricKey;
|
|
119
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hbHdheXMtZW5jcnlwdGVkL2tleS1jcnlwdG8udHMiXSwibmFtZXMiOlsidmFsaWRhdGVBbmRHZXRFbmNyeXB0aW9uQWxnb3JpdGhtTmFtZSIsImNpcGhlckFsZ29yaXRobUlkIiwiY2lwaGVyQWxnb3JpdGhtTmFtZSIsIkVycm9yIiwiYWxnb3JpdGhtTmFtZSIsImVuY3J5cHRXaXRoS2V5IiwicGxhaW50ZXh0IiwibWQiLCJvcHRpb25zIiwidHJ1c3RlZFNlcnZlck5hbWVBRSIsImNpcGhlckFsZ29yaXRobSIsImRlY3J5cHRTeW1tZXRyaWNLZXkiLCJjaXBoZXJUZXh0IiwiZW5jcnlwdERhdGEiLCJkZWNyeXB0V2l0aEtleSIsInBsYWluVGV4dCIsImRlY3J5cHREYXRhIiwiY2VrRW50cnkiLCJjb2x1bW5FbmNyeXB0aW9uS2V5VmFsdWVzIiwic3ltS2V5IiwiZW5jcnlwdGlvbktleUluZm9DaG9zZW4iLCJDRUtWYWx1ZXMiLCJsYXN0RXJyb3IiLCJDRUtWYWx1ZSIsImVycm9yIiwiQWVhZEFlczI1NkNiY0htYWMyNTZBbGdvcml0aG0iLCJBZWFkQWVzMjU2Q2JjSG1hYzI1NkVuY3J5cHRpb25LZXkiLCJyb290S2V5IiwiZW5jcnlwdGlvblR5cGUiLCJlbmNyeXB0aW9uS2V5SW5mbyJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQU1BOztBQUNBOztBQUNBOztBQVJBO0FBQ0E7QUFTTyxNQUFNQSxxQ0FBcUMsR0FBRyxDQUFDQyxpQkFBRCxFQUE0QkMsbUJBQTVCLEtBQXFFO0FBQ3hILE1BQUlELGlCQUFpQixLQUFLLENBQTFCLEVBQTZCO0FBQzNCLFVBQU0sSUFBSUUsS0FBSixDQUFVLHdDQUFWLENBQU47QUFDRDs7QUFFRCxTQUFPQyx5Q0FBUDtBQUNELENBTk07Ozs7QUFRQSxNQUFNQyxjQUFjLEdBQUcsT0FBT0MsU0FBUCxFQUEwQkMsRUFBMUIsRUFBOENDLE9BQTlDLEtBQThGO0FBQzFILE1BQUksQ0FBQ0EsT0FBTyxDQUFDQyxtQkFB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Q0FBeEI7QUFFQXJCLEVBQUFBLEVBQUUsQ0FBQ0csZUFBSCxHQUFxQkEsZUFBckI7QUFDQUgsRUFBQUEsRUFBRSxDQUFDc0IsaUJBQUgsR0FBdUJULHVCQUF2QjtBQUNELENBM0NNIiwic291cmNlc0NvbnRlbnQiOlsiLy8gVGhpcyBjb2RlIGlzIGJhc2VkIG9uIHRoZSBgbXNzcWwtamRiY2AgbGlicmFyeSBwdWJsaXNoZWQgdW5kZXIgdGhlIGNvbmRpdGlvbnMgb2YgTUlUIGxpY2Vuc2UuXG4vLyBDb3B5cmlnaHQgKGMpIDIwMTkgTWljcm9zb2Z0IENvcnBvcmF0aW9uXG5cbmltcG9ydCB7IENyeXB0b01ldGFkYXRhLCBFbmNyeXB0aW9uS2V5SW5mbyB9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHsgSW50ZXJuYWxDb25uZWN0aW9uT3B0aW9ucyBhcyBDb25uZWN0aW9uT3B0aW9ucyB9IGZyb20gJy4uL2Nvbm5lY3Rpb24nO1xuaW1wb3J0IFN5bW1ldHJpY0tleSBmcm9tICcuL3N5bW1ldHJpYy1rZXknO1xuaW1wb3J0IHsgZ2V0S2V5IH0gZnJvbSAnLi9zeW1tZXRyaWMta2V5LWNhY2hlJztcbmltcG9ydCB7IEFlYWRBZXMyNTZDYmNIbWFjMjU2QWxnb3JpdGhtLCBhbGdvcml0aG1OYW1lIH0gZnJvbSAnLi9hZWFkLWFlcy0yNTYtY2JjLWhtYWMtYWxnb3JpdGhtJztcbmltcG9ydCB7IEFlYWRBZXMyNTZDYmNIbWFjMjU2RW5jcnlwdGlvbktleSB9IGZyb20gJy4vYWVhZC1hZXMtMjU2LWNiYy1obWFjLWVuY3J5cHRpb24ta2V5JztcblxuZXhwb3J0IGNvbnN0IHZhbGlkYXRlQW5kR2V0RW5jcnlwdGlvbkFsZ29yaXRobU5hbWUgPSAoY2lwaGVyQWxnb3JpdGhtSWQ6IG51bWJlciwgY2lwaGVyQWxnb3JpdGhtTmFtZT86IHN0cmluZyk6IHN0cmluZyA9PiB7XG4gIGlmIChjaXBoZXJBbGdvcml0aG1JZCAhPT0gMikge1xuICAgIHRocm93IG5ldyBFcnJvcignQ3VzdG9tIGNpcGhlciBhbGdvcml0aG0gbm90IHN1cHBvcnRlZC4nKTtcbiAgfVxuXG4gIHJldHVybiBhbGdvcml0aG1OYW1lO1xufTtcblxuZXhwb3J0IGNvbnN0IGVuY3J5cHRXaXRoS2V5ID0gYXN5bmMgKHBsYWludGV4dDogQnVmZmVyLCBtZDogQ3J5cHRvTWV0YWRhdGEsIG9wdGlvbnM6IENvbm5lY3Rpb25PcHRpb25zKTogUHJvbWlzZTxCdWZmZXI+ID0+IHtcbiAgaWYgKCFvcHRpb25zLnRydXN0ZWRTZXJ2ZXJOYW1lQUUpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1NlcnZlciBuYW1lIHNob3VsZCBub3QgYmUgbnVsbCBpbiBFbmNyeXB0V2l0aEtleScpO1xuICB9XG5cbiAgaWYgKCFtZC5jaXBoZXJBbGdvcml0aG0pIHtcbiAgICBhd2FpdCBkZWNyeXB0U3ltbWV0cmljS2V5KG1kLCBvcHRpb25zKTtcbiAgfVxuXG4gIGlmICghbWQuY2lwaGVyQWxnb3JpdGhtKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdDaXBoZXIgQWxnb3JpdGhtIHNob3VsZCBub3QgYmUgbnVsbCBpbiBFbmNyeXB0V2l0aEtleScpO1xuICB9XG5cbiAgY29uc3QgY2lwaGVyVGV4dDogQnVmZmVyID0gbWQuY2lwaGVyQWxnb3JpdGhtLmVuY3J5cHREYXRhKHBsYWludGV4dCk7XG5cbiAgaWYgKCFjaXBoZXJUZXh0KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdJbnRlcm5hbCBlcnJvci4gQ2lwaGVydGV4dCB2YWx1ZSBjYW5ub3QgYmUgbnVsbC4nKTtcbiAgfVxuXG4gIHJldHVybiBjaXBoZXJUZXh0O1xufTtcblxuZXhwb3J0IGNvbnN0IGRlY3J5cHRXaXRoS2V5ID0gKGNpcGhlclRleHQ6IEJ1ZmZlciwgbWQ6IENyeXB0b01ldGFkYXRhLCBvcHRpb25zOiBDb25uZWN0aW9uT3B0aW9ucyk6IEJ1ZmZlciA9PiB7XG4gIGlmICghb3B0aW9ucy50cnVzdGVkU2VydmVyTmFtZUFFKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdTZXJ2ZXIgbmFtZSBzaG91bGQgbm90IGJlIG51bGwgaW4gRGVjcnlwdFdpdGhLZXknKTtcbiAgfVxuXG4gIC8vIGlmICghbWQuY2lwaGVyQWxnb3JpdGhtKSB7XG4gIC8vICAgYXdhaXQgZGVjcnlwdFN5bW1ldHJpY0tleShtZCwgb3B0aW9ucyk7XG4gIC8vIH1cblxuICBpZiAoIW1kLmNpcGhlckFsZ29yaXRobSkge1xuICAgIHRocm93IG5ldyBFcnJvcignQ2lwaGVyIEFsZ29yaXRobSBzaG91bGQgbm90IGJlIG51bGwgaW4gRGVjcnlwdFdpdGhLZXknKTtcbiAgfVxuXG4gIGNvbnN0IHBsYWluVGV4dDogQnVmZmVyID0gbWQuY2lwaGVyQWxnb3JpdGhtLmRlY3J5cHREYXRhKGNpcGhlclRleHQpO1xuXG4gIGlmICghcGxhaW5UZXh0KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdJbnRlcm5hbCBlcnJvci4gUGxhaW50ZXh0IHZhbHVlIGNhbm5vdCBiZSBudWxsLicpO1xuICB9XG5cbiAgcmV0dXJuIHBsYWluVGV4dDtcbn07XG5cbmV4cG9ydCBjb25zdCBkZWNyeXB0U3ltbWV0cmljS2V5ID0gYXN5bmMgKG1kOiBDcnlwdG9NZXRhZGF0YSwgb3B0aW9uczogQ29ubmVjdGlvbk9wdGlvbnMpOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgaWYgKCFtZCkge1xuICAgIHRocm93IG5ldyBFcnJvcignbWQgc2hvdWxkIG5vdCBiZSBudWxsIGluIERlY3J5cHRTeW1tZXRyaWNLZXkuJyk7XG4gIH1cblxuICBpZiAoIW1kLmNla0VudHJ5KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdtZC5FbmNyeXB0aW9uSW5mbyBzaG91bGQgbm90IGJlIG51bGwgaW4gRGVjcnlwdFN5bW1ldHJpY0tleS4nKTtcbiAgfVxuXG4gIGlmICghbWQuY2VrRW50cnkuY29sdW1uRW5jcnlwdGlvbktleVZhbHVlcykge1xuICAgIHRocm93IG5ldyBFcnJvcignbWQuRW5jcnlwdGlvbkluZm8uQ29sdW1uRW5jcnlwdGlvbktleVZhbHVlcyBzaG91bGQgbm90IGJlIG51bGwgaW4gRGVjcnlwdFN5bW1ldHJpY0tleS4nKTtcbiAgfVxuXG4gIGxldCBzeW1LZXk6IFN5bW1ldHJpY0tleSB8IHVuZGVmaW5lZDtcbiAgbGV0IGVuY3J5cHRpb25LZXlJbmZvQ2hvc2VuOiBFbmNyeXB0aW9uS2V5SW5mbyB8IHVuZGVmaW5lZDtcbiAgY29uc3QgQ0VLVmFsdWVzOiBFbmNyeXB0aW9uS2V5SW5mb1tdID0gbWQuY2VrRW50cnkuY29sdW1uRW5jcnlwdGlvbktleVZhbHVlcztcbiAgbGV0IGxhc3RFcnJvcjogRXJyb3IgfCB1bmRlZmluZWQ7XG5cbiAgZm9yIChjb25zdCBDRUtWYWx1ZSBvZiBDRUtWYWx1ZXMpIHtcbiAgICB0cnkge1xuICAgICAgc3ltS2V5ID0gYXdhaXQgZ2V0S2V5KENFS1ZhbHVlLCBvcHRpb25zKTtcbiAgICAgIGlmIChzeW1LZXkpIHtcbiAgICAgICAgZW5jcnlwdGlvbktleUluZm9DaG9zZW4gPSBDRUtWYWx1ZTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZXJyb3I6IGFueSkge1xuICAgICAgbGFzdEVycm9yID0gZXJyb3I7XG4gICAgfVxuICB9XG5cbiAgaWYgKCFzeW1LZXkpIHtcbiAgICBpZiAobGFzdEVycm9yKSB7XG4gICAgICB0aHJvdyBsYXN0RXJyb3I7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignRXhjZXB0aW9uIHdoaWxlIGRlY3J5cHRpb24gb2YgZW5jcnlwdGVkIGNvbHVtbiBlbmNyeXB0aW9uIGtleS4nKTtcbiAgICB9XG4gIH1cblxuICBjb25zdCBhbGdvcml0aG1OYW1lID0gdmFsaWRhdGVBbmRHZXRFbmNyeXB0aW9uQWxnb3JpdGhtTmFtZShtZC5jaXBoZXJBbGdvcml0aG1JZCwgbWQuY2lwaGVyQWxnb3JpdGhtTmFtZSk7XG4gIGNvbnN0IGNpcGhlckFsZ29yaXRobSA9IG5ldyBBZWFkQWVzMjU2Q2JjSG1hYzI1NkFsZ29yaXRobShuZXcgQWVhZEFlczI1NkNiY0htYWMyNTZFbmNyeXB0aW9uS2V5KHN5bUtleS5yb290S2V5LCBhbGdvcml0aG1OYW1lKSwgbWQuZW5jcnlwdGlvblR5cGUpO1xuXG4gIG1kLmNpcGhlckFsZ29yaXRobSA9IGNpcGhlckFsZ29yaXRobTtcbiAgbWQuZW5jcnlwdGlvbktleUluZm8gPSBlbmNyeXB0aW9uS2V5SW5mb0Nob3NlbiBhcyBFbmNyeXB0aW9uS2V5SW5mbztcbn07XG4iXX0=
|
|
@@ -167,9 +167,9 @@ class ColumnEncryptionAzureKeyVaultProvider {
|
|
|
167
167
|
|
|
168
168
|
const keyParts = this.parsePath(masterKeyPath);
|
|
169
169
|
this.createKeyClient(keyParts.vaultUrl);
|
|
170
|
-
return this.keyClient.getKey(keyParts.name, {
|
|
170
|
+
return this.keyClient.getKey(keyParts.name, keyParts.version ? {
|
|
171
171
|
version: keyParts.version
|
|
172
|
-
});
|
|
172
|
+
} : {});
|
|
173
173
|
}
|
|
174
174
|
|
|
175
175
|
createKeyClient(keyVaultUrl) {
|
|
@@ -311,4 +311,5 @@ class ColumnEncryptionAzureKeyVaultProvider {
|
|
|
311
311
|
|
|
312
312
|
}
|
|
313
313
|
|
|
314
|
-
exports.ColumnEncryptionAzureKeyVaultProvider = ColumnEncryptionAzureKeyVaultProvider;
|
|
314
|
+
exports.ColumnEncryptionAzureKeyVaultProvider = ColumnEncryptionAzureKeyVaultProvider;
|
|
315
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hbHdheXMtZW5jcnlwdGVkL2tleXN0b3JlLXByb3ZpZGVyLWF6dXJlLWtleS12YXVsdC50cyJdLCJuYW1lcyI6WyJDb2x1bW5FbmNyeXB0aW9uQXp1cmVLZXlWYXVsdFByb3ZpZGVyIiwiY29uc3RydWN0b3IiLCJjbGllbnRJZCIsImNsaWVudEtleSIsInRlbmFudElkIiwibmFtZSIsInVybCIsInJzYUVuY3J5cHRpb25BbGdvcml0aG1XaXRoT0FFUEZvckFLViIsImZpcnN0VmVyc2lvbiIsImNyZWRlbnRpYWxzIiwiYXp1cmVLZXlWYXVsdERvbWFpbk5hbWUiLCJrZXlDbGllbnQiLCJCdWZmZXIiLCJmcm9tIiwiQ2xpZW50U2VjcmV0Q3JlZGVudGlhbCIsImRlY3J5cHRDb2x1bW5FbmNyeXB0aW9uS2V5IiwibWFzdGVyS2V5UGF0aCIsImVuY3J5cHRpb25BbGdvcml0aG0iLCJlbmNyeXB0ZWRDb2x1bW5FbmNyeXB0aW9uS2V5IiwiRXJyb3IiLCJsZW5ndGgiLCJ2YWxpZGF0ZUVuY3J5cHRpb25BbGdvcml0aG0iLCJtYXN0ZXJLZXkiLCJnZXRNYXN0ZXJLZXkiLCJrZXlTaXplSW5CeXRlcyIsImdldEFLVktleVNpemUiLCJjcnlwdG9DbGllbnQiLCJjcmVhdGVDcnlwdG9DbGllbnQiLCJ0b1N0cmluZyIsImN1cnJlbnRJbmRleCIsImtleVBhdGhMZW5ndGgiLCJyZWFkSW50MTZMRSIsImNpcGhlclRleHRMZW5ndGgiLCJzaWduYXR1cmVMZW5ndGgiLCJjaXBoZXJUZXh0IiwiYWxsb2MiLCJjb3B5Iiwic2lnbmF0dXJlIiwiaGFzaCIsIm1lc3NhZ2VEaWdlc3QiLCJ1cGRhdGUiLCJkYXRhVG9WZXJpZnkiLCJkaWdlc3QiLCJ2ZXJpZnlLZXkiLCJ2ZXJpZnkiLCJyZXN1bHQiLCJkZWNyeXB0ZWRDRUsiLCJhenVyZUtleVZhdWx0VW5XcmFwIiwiZW5jcnlwdENvbHVtbkVuY3J5cHRpb25LZXkiLCJjb2x1bW5FbmNyeXB0aW9uS2V5IiwidmVyc2lvbiIsIm1hc3RlcktleVBhdGhCeXRlcyIsInRvTG93ZXJDYXNlIiwiYXp1cmVLZXlWYXVsdFdyYXAiLCJkYXRhVG9IYXNoIiwiZGVzdGluYXRpb25Qb3NpdGlvbiIsImRhdGFUb1NpZ24iLCJzaWduZWRIYXNoIiwiYXp1cmVLZXlWYXVsdFNpZ25lZEhhc2hlZERhdGEiLCJlbmNyeXB0ZWRDb2x1bW5FbmNyeXB0aW9uS2V5TGVuZ3RoIiwia2V5UGFydHMiLCJwYXJzZVBhdGgiLCJjcmVhdGVLZXlDbGllbnQiLCJ2YXVsdFVybCIsImdldEtleSIsImtleVZhdWx0VXJsIiwiS2V5Q2xpZW50IiwiQ3J5cHRvZ3JhcGh5Q2xpZW50IiwidHJpbSIsImJhc2VVcmkiLCJob3N0bmFtZSIsImVuZHNXaXRoIiwic2VnbWVudHMiLCJwYXRobmFtZSIsInNwbGl0IiwicHJvdG9jb2wiLCJob3N0IiwidW5kZWZpbmVkIiwic2lnbmVkRGF0YSIsInNpZ24iLCJ3cmFwcGVkS2V5Iiwid3JhcEtleSIsInVud3JhcHBlZEtleSIsInVud3JhcEtleSIsInJldHJpZXZlZEtleSIsImtleSIsImt0eSIsInRvVXBwZXJDYXNlIiwibG9jYWxlQ29tcGFyZSIsImtleUxlbmd0aCIsIm4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFHQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFOQTtBQUNBO0FBYU8sTUFBTUEscUNBQU4sQ0FBNEM7QUFTakRDLEVBQUFBLFdBQVcsQ0FBQ0MsUUFBRCxFQUFtQkMsU0FBbkIsRUFBc0NDLFFBQXRDLEVBQXdEO0FBQUEsU0FSbkRDLElBUW1EO0FBQUEsU0FQM0RDLEdBTzJEO0FBQUEsU0FObERDLG9DQU1rRDtBQUFBLFNBTGxEQyxZQUtrRDtBQUFBLFNBSjNEQyxXQUkyRDtBQUFBLFNBSGxEQyx1QkFHa0Q7QUFBQSxTQUYzREMsU0FFMkQ7QUFDakUsU0FBS04sSUFBTCxHQUFZLGlCQUFaO0FBQ0EsU0FBS0ssdUJBQUwsR0FBK0IsaUJBQS9CO0FBQ0EsU0FBS0gsb0NBQUwsR0FBNEMsVUFBNUM7QUFDQSxT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S0FBSixDQUFVLDBDQUFWLENBQU47QUFDRDs7QUFFRCxRQUFJLFdBQVdxRSxhQUFYLENBQXlCdkUsbUJBQW1CLENBQUNzRSxXQUFwQixFQUF6QixFQUE0RCxJQUE1RCxNQUFzRSxDQUExRSxFQUE2RTtBQUMzRXRFLE1BQUFBLG1CQUFtQixHQUFHLFVBQXRCO0FBQ0Q7O0FBRUQsUUFBSSxLQUFLVixvQ0FBTCxDQUEwQ2lGLGFBQTFDLENBQXdEdkUsbUJBQW1CLENBQUNtRCxJQUFwQixHQUEyQm1CLFdBQTNCLEVBQXhELEVBQWtHLElBQWxHLE1BQTRHLENBQWhILEVBQW1IO0FBQ2pILFlBQU0sSUFBSXBFLEtBQUosQ0FBVywrQ0FBOENGLG1CQUFvQixxQkFBb0IsS0FBS1Ysb0NBQXFDLEdBQTNJLENBQU47QUFDRDs7QUFFRCxXQUFPVSxtQkFBUDtBQUNEOztBQTFVZ0QiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBUaGlzIGNvZGUgaXMgYmFzZWQgb24gdGhlIGBtc3NxbC1qZGJjYCBsaWJyYXJ5IHB1Ymxpc2hlZCB1bmRlciB0aGUgY29uZGl0aW9ucyBvZiBNSVQgbGljZW5zZS5cbi8vIENvcHlyaWdodCAoYykgMjAxOSBNaWNyb3NvZnQgQ29ycG9yYXRpb25cblxuaW1wb3J0IHsgQ2xpZW50U2VjcmV0Q3JlZGVudGlhbCB9IGZyb20gJ0BhenVyZS9pZGVudGl0eSc7XG5pbXBvcnQgeyBDcnlwdG9ncmFwaHlDbGllbnQsIEtleVdyYXBBbGdvcml0aG0sIEtleUNsaWVudCwgS2V5VmF1bHRLZXkgfSBmcm9tICdAYXp1cmUva2V5dmF1bHQta2V5cyc7XG5pbXBvcnQgeyBjcmVhdGVIYXNoIH0gZnJvbSAnY3J5cHRvJztcbmltcG9ydCB7IHBhcnNlIH0gZnJvbSAndXJsJztcblxuaW50ZXJmYWNlIFBhcnNlZEtleVBhdGgge1xuICB2YXVsdFVybDogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG4gIHZlcnNpb24/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG59XG5cbmV4cG9ydCBjbGFzcyBDb2x1bW5FbmNyeXB0aW9uQXp1cmVLZXlWYXVsdFByb3ZpZGVyIHtcbiAgcHVibGljIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcbiAgcHJpdmF0ZSB1cmw6IHVuZGVmaW5lZCB8IHN0cmluZztcbiAgcHJpdmF0ZSByZWFkb25seSByc2FFbmNyeXB0aW9uQWxnb3JpdGhtV2l0aE9BRVBGb3JBS1Y6IHN0cmluZztcbiAgcHJpdmF0ZSByZWFkb25seSBmaXJzdFZlcnNpb246IEJ1ZmZlcjtcbiAgcHJpdmF0ZSBjcmVkZW50aWFsczogQ2xpZW50U2VjcmV0Q3JlZGVudGlhbDtcbiAgcHJpdmF0ZSByZWFkb25seSBhenVyZUtleVZhdWx0RG9tYWluTmFtZTogc3RyaW5nO1xuICBwcml2YXRlIGtleUNsaWVudDogdW5kZWZpbmVkIHwgS2V5Q2xpZW50O1xuXG4gIGNvbnN0cnVjdG9yKGNsaWVudElkOiBzdHJpbmcsIGNsaWVudEtleTogc3RyaW5nLCB0ZW5hbnRJZDogc3RyaW5nKSB7XG4gICAgdGhpcy5uYW1lID0gJ0FaVVJFX0tFWV9WQVVMVCc7XG4gICAgdGhpcy5henVyZUtleVZhdWx0RG9tYWluTmFtZSA9ICd2YXVsdC5henVyZS5uZXQnO1xuICAgIHRoaXMucnNhRW5jcnlwdGlvbkFsZ29yaXRobVdpdGhPQUVQRm9yQUtWID0gJ1JTQS1PQUVQJztcbiAgICB0aGlzLmZpcnN0VmVyc2lvbiA9IEJ1ZmZlci5mcm9tKFsweDAxXSk7XG4gICAgdGhpcy5jcmVkZW50aWFscyA9IG5ldyBDbGllbnRTZWNyZXRDcmVkZW50aWFsKHRlbmFudElkLCBjbGllbnRJZCwgY2xpZW50S2V5KTtcbiAgfVxuXG4gIGFzeW5jIGRlY3J5cHRDb2x1bW5FbmNyeXB0aW9uS2V5KG1hc3RlcktleVBhdGg6IHN0cmluZywgZW5jcnlwdGlvbkFsZ29yaXRobTogc3RyaW5nLCBlbmNyeXB0ZWRDb2x1bW5FbmNyeXB0aW9uS2V5OiBCdWZmZXIpOiBQcm9taXNlPEJ1ZmZlcj4ge1xuICAgIGlmICghZW5jcnlwdGVkQ29sdW1uRW5jcnlwdGlvbktleSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnRlcm5hbCBlcnJvci4gRW5jcnlwdGVkIGNvbHVtbiBlbmNyeXB0aW9uIGtleSBjYW5ub3QgYmUgbnVsbC4nKTtcbiAgICB9XG5cbiAgICBpZiAoZW5jcnlwdGVkQ29sdW1uRW5jcnlwdGlvbktleS5sZW5ndGggPT09IDApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignSW50ZXJuYWwgZXJyb3IuIEVtcHR5IGVuY3J5cHRlZCBjb2x1bW4gZW5jcnlwdGlvbiBrZXkgc3BlY2lmaWVkLicpO1xuICAgIH1cblxuICAgIGVuY3J5cHRpb25BbGdvcml0aG0gPSB0aGlzLnZhbGlkYXRlRW5jcnlwdGlvbkFsZ29yaXRobShlbmNyeXB0aW9uQWxnb3JpdGhtKTtcblxuICAgIGNvbnN0IG1hc3RlcktleSA9IGF3YWl0IHRoaXMuZ2V0TWFzdGVyS2V5KG1hc3RlcktleVBhdGgpO1xuXG4gICAgY29uc3Qga2V5U2l6ZUluQnl0ZXMgPSB0aGlzLmdldEFLVktleVNpemUobWFzdGVyS2V5KTtcblxuICAgIGNvbnN0IGNyeXB0b0NsaWVudCA9IHRoaXMuY3JlYXRlQ3J5cHRvQ2xpZW50KG1hc3RlcktleSk7XG5cbiAgICBpZiAoZW5jcnlwdGVkQ29sdW1uRW5jcnlwdGlvbktleVswXSAhPT0gdGhpcy5maXJzdFZlcnNpb25bMF0pIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgU3BlY2lmaWVkIGVuY3J5cHRlZCBjb2x1bW4gZW5jcnlwdGlvbiBrZXkgY29udGFpbnMgYW4gaW52YWxpZCBlbmNyeXB0aW9uIGFsZ29yaXRobSB2ZXJzaW9uICR7QnVmZmVyLmZyb20oW2VuY3J5cHRlZENvbHVtbkVuY3J5cHRpb25LZXlbMF1dKS50b1N0cmluZygnaGV4Jyl9LiBFeHBlY3RlZCB2ZXJzaW9uIGlzICR7QnVmZmVyLmZyb20oW3RoaXMuZmlyc3RWZXJzaW9uWzBdXSkudG9TdHJpbmcoJ2hleCcpfS5gKTtcbiAgICB9XG5cbiAgICBsZXQgY3VycmVudEluZGV4ID0gdGhpcy5maXJzdFZlcnNpb24ubGVuZ3RoO1xuICAgIGNvbnN0IGtleVBhdGhMZW5ndGg6IG51bWJlciA9IGVuY3J5cHRlZENvbHVtbkVuY3J5cHRpb25LZXkucmVhZEludDE2TEUoY3VycmVudEluZGV4KTtcblxuICAgIGN1cnJlbnRJbmRleCArPSAyO1xuXG4gICAgY29uc3QgY2lwaGVyVGV4dExlbmd0aDogbnVtYmVyID0gZW5jcnlwdGVkQ29sdW1uRW5jcnlwdGlvbktleS5yZWFkSW50MTZMRShjdXJyZW50SW5kZXgpO1xuXG4gICAgY3VycmVudEluZGV4ICs9IDI7XG5cbiAgICBjdXJyZW50SW5kZXggKz0ga2V5UGF0aExlbmd0aDtcblxuICAgIGlmIChjaXBoZXJUZXh0TGVuZ3RoICE9PSBrZXlTaXplSW5CeXRlcykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBUaGUgc3BlY2lmaWVkIGVuY3J5cHRlZCBjb2x1bW4gZW5jcnlwdGlvbiBrZXkncyBjaXBoZXJ0ZXh0IGxlbmd0aDogJHtjaXBoZXJUZXh0TGVuZ3RofSBkb2VzIG5vdCBtYXRjaCB0aGUgY2lwaGVydGV4dCBsZW5ndGg6ICR7a2V5U2l6ZUluQnl0ZXN9IHdoZW4gdXNpbmcgY29sdW1uIG1hc3RlciBrZXkgKEF6dXJlIEtleSBWYXVsdCBrZXkpIGluICR7bWFzdGVyS2V5UGF0aH0uIFRoZSBlbmNyeXB0ZWQgY29sdW1uIGVuY3J5cHRpb24ga2V5IG1heSBiZSBjb3JydXB0LCBvciB0aGUgc3BlY2lmaWVkIEF6dXJlIEtleSBWYXVsdCBrZXkgcGF0aCBtYXkgYmUgaW5jb3JyZWN0LmApO1xuICAgIH1cblxuICAgIGNvbnN0IHNpZ25hdHVyZUxlbmd0aDogbnVtYmVyID0gZW5jcnlwdGVkQ29sdW1uRW5jcnlwdGlvbktleS5sZW5ndGggLSBjdXJyZW50SW5kZXggLSBjaXBoZXJUZXh0TGVuZ3RoO1xuXG4gICAgaWYgKHNpZ25hdHVyZUxlbmd0aCAhPT0ga2V5U2l6ZUluQnl0ZXMpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgVGhlIHNwZWNpZmllZCBlbmNyeXB0ZWQgY29sdW1uIGVuY3J5cHRpb24ga2V5J3Mgc2lnbmF0dXJlIGxlbmd0aDogJHtzaWduYXR1cmVMZW5ndGh9IGRvZXMgbm90IG1hdGNoIHRoZSBzaWduYXR1cmUgbGVuZ3RoOiAke2tleVNpemVJbkJ5dGVzfSB3aGVuIHVzaW5nIGNvbHVtbiBtYXN0ZXIga2V5IChBenVyZSBLZXkgVmF1bHQga2V5KSBpbiAke21hc3RlcktleVBhdGh9LiBUaGUgZW5jcnlwdGVkIGNvbHVtbiBlbmNyeXB0aW9uIGtleSBtYXkgYmUgY29ycnVwdCwgb3IgdGhlIHNwZWNpZmllZCBBenVyZSBLZXkgVmF1bHQga2V5IHBhdGggbWF5IGJlIGluY29ycmVjdC5gKTtcbiAgICB9XG5cbiAgICBjb25zdCBjaXBoZXJUZXh0ID0gQnVmZmVyLmFsbG9jKGNpcGhlclRleHRMZW5ndGgpO1xuICAgIGVuY3J5cHRlZENvbHVtbkVuY3J5cHRpb25LZXkuY29weShjaXBoZXJUZXh0LCAwLCBjdXJyZW50SW5kZXgsIGN1cnJlbnRJbmRleCArIGNpcGhlclRleHRMZW5ndGgpO1xuICAgIGN1cnJlbnRJbmRleCArPSBjaXBoZXJUZXh0TGVuZ3RoO1xuXG4gICAgY29uc3Qgc2lnbmF0dXJlID0gQnVmZmVyLmFsbG9jKHNpZ25hdHVyZUxlbmd0aCk7XG4gICAgZW5jcnlwdGVkQ29sdW1uRW5jcnlwdGlvbktleS5jb3B5KHNpZ25hdHVyZSwgMCwgY3VycmVudEluZGV4LCBjdXJyZW50SW5kZXggKyBzaWduYXR1cmVMZW5ndGgpO1xuXG4gICAgY29uc3QgaGFzaCA9IEJ1ZmZlci5hbGxvYyhlbmNyeXB0ZWRDb2x1bW5FbmNyeXB0aW9uS2V5Lmxlbmd0aCAtIHNpZ25hdHVyZS5sZW5ndGgpO1xuICAgIGVuY3J5cHRlZENvbHVtbkVuY3J5cHRpb25LZXkuY29weShoYXNoLCAwLCAwLCBlbmNyeXB0ZWRDb2x1bW5FbmNyeXB0aW9uS2V5Lmxlbmd0aCAtIHNpZ25hdHVyZS5sZW5ndGgpO1xuXG4gICAgY29uc3QgbWVzc2FnZURpZ2VzdCA9IGNyZWF0ZUhhc2goJ3NoYTI1NicpO1xuICAgIG1lc3NhZ2VEaWdlc3QudXBkYXRlKGhhc2gpO1xuXG4gICAgY29uc3QgZGF0YVRvVmVyaWZ5OiBCdWZmZXIgPSBtZXNzYWdlRGlnZXN0LmRpZ2VzdCgpO1xuXG4gICAgaWYgKCFkYXRhVG9WZXJpZnkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignSGFzaCBzaG91bGQgbm90IGJlIG51bGwgd2hpbGUgZGVjcnlwdGluZyBlbmNyeXB0ZWQgY29sdW1uIGVuY3J5cHRpb24ga2V5LicpO1xuICAgIH1cblxuICAgIGNvbnN0IHZlcmlmeUtleSA9IGF3YWl0IGNyeXB0b0NsaWVudC52ZXJpZnkoJ1JTMjU2JywgZGF0YVRvVmVyaWZ5LCBzaWduYXR1cmUpO1xuICAgIGlmICghdmVyaWZ5S2V5LnJlc3VsdCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBUaGUgc3BlY2lmaWVkIGVuY3J5cHRlZCBjb2x1bW4gZW5jcnlwdGlvbiBrZXkgc2lnbmF0dXJlIGRvZXMgbm90IG1hdGNoIHRoZSBzaWduYXR1cmUgY29tcHV0ZWQgd2l0aCB0aGUgY29sdW1uIG1hc3RlciBrZXkgKEFzeW1tZXRyaWMga2V5IGluIEF6dXJlIEtleSBWYXVsdCkgaW4gJHttYXN0ZXJLZXlQYXRofS4gVGhlIGVuY3J5cHRlZCBjb2x1bW4gZW5jcnlwdGlvbiBrZXkgbWF5IGJlIGNvcnJ1cHQsIG9yIHRoZSBzcGVjaWZpZWQgcGF0aCBtYXkgYmUgaW5jb3JyZWN0LmApO1xuICAgIH1cblxuICAgIGNvbnN0IGRlY3J5cHRlZENFSzogQnVmZmVyID0gYXdhaXQgdGhpcy5henVyZUtleVZhdWx0VW5XcmFwKGNyeXB0b0NsaWVudCwgZW5jcnlwdGlvbkFsZ29yaXRobSwgY2lwaGVyVGV4dCk7XG5cbiAgICByZXR1cm4gZGVjcnlwdGVkQ0VLO1xuICB9XG5cbiAgYXN5bmMgZW5jcnlwdENvbHVtbkVuY3J5cHRpb25LZXkobWFzdGVyS2V5UGF0aDogc3RyaW5nLCBlbmNyeXB0aW9uQWxnb3JpdGhtOiBzdHJpbmcsIGNvbHVtbkVuY3J5cHRpb25LZXk6IEJ1ZmZlcik6IFByb21pc2U8QnVmZmVyPiB7XG4gICAgaWYgKCFjb2x1bW5FbmNyeXB0aW9uS2V5KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0NvbHVtbiBlbmNyeXB0aW9uIGtleSBjYW5ub3QgYmUgbnVsbC4nKTtcbiAgICB9XG5cbiAgICBpZiAoY29sdW1uRW5jcnlwdGlvbktleS5sZW5ndGggPT09IDApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignRW1wdHkgY29sdW1uIGVuY3J5cHRpb24ga2V5IHNwZWNpZmllZC4nKTtcbiAgICB9XG5cbiAgICBlbmNyeXB0aW9uQWxnb3JpdGhtID0gdGhpcy52YWxpZGF0ZUVuY3J5cHRpb25BbGdvcml0aG0oZW5jcnlwdGlvbkFsZ29yaXRobSk7XG5cbiAgICBjb25zdCBtYXN0ZXJLZXkgPSBhd2FpdCB0aGlzLmdldE1hc3RlcktleShtYXN0ZXJLZXlQYXRoKTtcblxuICAgIGNvbnN0IGtleVNpemVJbkJ5dGVzID0gdGhpcy5nZXRBS1ZLZXlTaXplKG1hc3RlcktleSk7XG5cbiAgICBjb25zdCBjcnlwdG9DbGllbnQgPSB0aGlzLmNyZWF0ZUNyeXB0b0NsaWVudChtYXN0ZXJLZXkpO1xuXG4gICAgY29uc3QgdmVyc2lvbiA9IEJ1ZmZlci5mcm9tKFt0aGlzLmZpcnN0VmVyc2lvblswXV0pO1xuXG4gICAgY29uc3QgbWFzdGVyS2V5UGF0aEJ5dGVzOiBCdWZmZXIgPSBCdWZmZXIuZnJvbShtYXN0ZXJLZXlQYXRoLnRvTG93ZXJDYXNlKCksICd1dGY4Jyk7XG5cbiAgICBjb25zdCBrZXlQYXRoTGVuZ3RoOiBCdWZmZXIgPSBCdWZmZXIuYWxsb2MoMik7XG5cbiAgICBrZXlQYXRoTGVuZ3RoWzBdID0gbWFzdGVyS2V5UGF0aEJ5dGVzLmxlbmd0aCAmIDB4ZmY7XG4gICAga2V5UGF0aExlbmd0aFsxXSA9IG1hc3RlcktleVBhdGhCeXRlcy5sZW5ndGggPj4gOCAmIDB4ZmY7XG5cbiAgICBjb25zdCBjaXBoZXJUZXh0OiBCdWZmZXIgPSBhd2FpdCB0aGlzLmF6dXJlS2V5VmF1bHRXcmFwKGNyeXB0b0NsaWVudCwgZW5jcnlwdGlvbkFsZ29yaXRobSwgY29sdW1uRW5jcnlwdGlvbktleSk7XG5cbiAgICBjb25zdCBjaXBoZXJUZXh0TGVuZ3RoOiBCdWZmZXIgPSBCdWZmZXIuYWxsb2MoMik7XG5cbiAgICBjaXBoZXJUZXh0TGVuZ3RoWzBdID0gY2lwaGVyVGV4dC5sZW5ndGggJiAweGZmO1xuICAgIGNpcGhlclRleHRMZW5ndGhbMV0gPSBjaXBoZXJUZXh0Lmxlbmd0aCA+PiA4ICYgMHhmZjtcblxuICAgIGlmIChjaXBoZXJUZXh0Lmxlbmd0aCAhPT0ga2V5U2l6ZUluQnl0ZXMpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignQ2lwaGVyVGV4dCBsZW5ndGggZG9lcyBub3QgbWF0Y2ggdGhlIFJTQSBrZXkgc2l6ZS4nKTtcbiAgICB9XG5cbiAgICBjb25zdCBkYXRhVG9IYXNoOiBCdWZmZXIgPSBCdWZmZXIuYWxsb2ModmVyc2lvbi5sZW5ndGggKyBrZXlQYXRoTGVuZ3RoLmxlbmd0aCArIGNpcGhlclRleHRMZW5ndGgubGVuZ3RoICsgbWFzdGVyS2V5UGF0aEJ5dGVzLmxlbmd0aCArIGNpcGhlclRleHQubGVuZ3RoKTtcbiAgICBsZXQgZGVzdGluYXRpb25Qb3NpdGlvbjogbnVtYmVyID0gdmVyc2lvbi5sZW5ndGg7XG4gICAgdmVyc2lvbi5jb3B5KGRhdGFUb0hhc2gsIDAsIDAsIHZlcnNpb24ubGVuZ3RoKTtcblxuICAgIGtleVBhdGhMZW5ndGguY29weShkYXRhVG9IYXNoLCBkZXN0aW5hdGlvblBvc2l0aW9uLCAwLCBrZXlQYXRoTGVuZ3RoLmxlbmd0aCk7XG4gICAgZGVzdGluYXRpb25Qb3NpdGlvbiArPSBrZXlQYXRoTGVuZ3RoLmxlbmd0aDtcblxuICAgIGNpcGhlclRleHRMZW5ndGguY29weShkYXRhVG9IYXNoLCBkZXN0aW5hdGlvblBvc2l0aW9uLCAwLCBjaXBoZXJUZXh0TGVuZ3RoLmxlbmd0aCk7XG4gICAgZGVzdGluYXRpb25Qb3NpdGlvbiArPSBjaXBoZXJUZXh0TGVuZ3RoLmxlbmd0aDtcblxuICAgIG1hc3RlcktleVBhdGhCeXRlcy5jb3B5KGRhdGFUb0hhc2gsIGRlc3RpbmF0aW9uUG9zaXRpb24sIDAsIG1hc3RlcktleVBhdGhCeXRlcy5sZW5ndGgpO1xuICAgIGRlc3RpbmF0aW9uUG9zaXRpb24gKz0gbWFzdGVyS2V5UGF0aEJ5dGVzLmxlbmd0aDtcblxuICAgIGNpcGhlclRleHQuY29weShkYXRhVG9IYXNoLCBkZXN0aW5hdGlvblBvc2l0aW9uLCAwLCBjaXBoZXJUZXh0Lmxlbmd0aCk7XG5cbiAgICBjb25zdCBtZXNzYWdlRGlnZXN0ID0gY3JlYXRlSGFzaCgnc2hhMjU2Jyk7XG5cbiAgICBtZXNzYWdlRGlnZXN0LnVwZGF0ZShkYXRhVG9IYXNoKTtcblxuICAgIGNvbnN0IGRhdGFUb1NpZ246IEJ1ZmZlciA9IG1lc3NhZ2VEaWdlc3QuZGlnZXN0KCk7XG5cbiAgICBjb25zdCBzaWduZWRIYXNoOiBCdWZmZXIgPSBhd2FpdCB0aGlzLmF6dXJlS2V5VmF1bHRTaWduZWRIYXNoZWREYXRhKGNyeXB0b0NsaWVudCwgZGF0YVRvU2lnbik7XG4gICAgaWYgKHNpZ25lZEhhc2gubGVuZ3RoICE9PSBrZXlTaXplSW5CeXRlcykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdTaWduZWQgaGFzaCBsZW5ndGggZG9lcyBub3QgbWF0Y2ggdGhlIFJTQSBrZXkgc2l6ZS4nKTtcbiAgICB9XG5cbiAgICBjb25zdCB2ZXJpZnlLZXkgPSBhd2FpdCBjcnlwdG9DbGllbnQudmVyaWZ5KCdSUzI1NicsIGRhdGFUb1NpZ24sIHNpZ25lZEhhc2gpO1xuXG4gICAgaWYgKCF2ZXJpZnlLZXkucmVzdWx0KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgc2lnbmF0dXJlIG9mIHRoZSBlbmNyeXB0ZWQgY29sdW1uIGVuY3J5cHRpb24ga2V5IGNvbXB1dGVkLicpO1xuICAgIH1cblxuICAgIGNvbnN0IGVuY3J5cHRlZENvbHVtbkVuY3J5cHRpb25LZXlMZW5ndGg6IG51bWJlciA9IHZlcnNpb24ubGVuZ3RoICsgY2lwaGVyVGV4dExlbmd0aC5sZW5ndGggKyBrZXlQYXRoTGVuZ3RoLmxlbmd0aCArIGNpcGhlclRleHQubGVuZ3RoICsgbWFzdGVyS2V5UGF0aEJ5dGVzLmxlbmd0aCArIHNpZ25lZEhhc2gubGVuZ3RoO1xuICAgIGNvbnN0IGVuY3J5cHRlZENvbHVtbkVuY3J5cHRpb25LZXk6IEJ1ZmZlciA9IEJ1ZmZlci5hbGxvYyhlbmNyeXB0ZWRDb2x1bW5FbmNyeXB0aW9uS2V5TGVuZ3RoKTtcblxuICAgIGxldCBjdXJyZW50SW5kZXggPSAwO1xuICAgIHZlcnNpb24uY29weShlbmNyeXB0ZWRDb2x1bW5FbmNyeXB0aW9uS2V5LCBjdXJyZW50SW5kZXgsIDAsIHZlcnNpb24ubGVuZ3RoKTtcbiAgICBjdXJyZW50SW5kZXggKz0gdmVyc2lvbi5sZW5ndGg7XG5cbiAgICBrZXlQYXRoTGVuZ3RoLmNvcHkoZW5jcnlwdGVkQ29sdW1uRW5jcnlwdGlvbktleSwgY3VycmVudEluZGV4LCAwLCBrZXlQYXRoTGVuZ3RoLmxlbmd0aCk7XG4gICAgY3VycmVudEluZGV4ICs9IGtleVBhdGhMZW5ndGgubGVuZ3RoO1xuXG4gICAgY2lwaGVyVGV4dExlbmd0aC5jb3B5KGVuY3J5cHRlZENvbHVtbkVuY3J5cHRpb25LZXksIGN1cnJlbnRJbmRleCwgMCwgY2lwaGVyVGV4dExlbmd0aC5sZW5ndGgpO1xuICAgIGN1cnJlbnRJbmRleCArPSBjaXBoZXJUZXh0TGVuZ3RoLmxlbmd0aDtcblxuICAgIG1hc3RlcktleVBhdGhCeXRlcy5jb3B5KGVuY3J5cHRlZENvbHVtbkVuY3J5cHRpb25LZXksIGN1cnJlbnRJbmRleCwgMCwgbWFzdGVyS2V5UGF0aEJ5dGVzLmxlbmd0aCk7XG4gICAgY3VycmVudEluZGV4ICs9IG1hc3RlcktleVBhdGhCeXRlcy5sZW5ndGg7XG5cbiAgICBjaXBoZXJUZXh0LmNvcHkoZW5jcnlwdGVkQ29sdW1uRW5jcnlwdGlvbktleSwgY3VycmVudEluZGV4LCAwLCBjaXBoZXJUZXh0Lmxlbmd0aCk7XG4gICAgY3VycmVudEluZGV4ICs9IGNpcGhlclRleHQubGVuZ3RoO1xuXG4gICAgc2lnbmVkSGFzaC5jb3B5KGVuY3J5cHRlZENvbHVtbkVuY3J5cHRpb25LZXksIGN1cnJlbnRJbmRleCwgMCwgc2lnbmVkSGFzaC5sZW5ndGgpO1xuXG4gICAgcmV0dXJuIGVuY3J5cHRlZENvbHVtbkVuY3J5cHRpb25LZXk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGdldE1hc3RlcktleShtYXN0ZXJLZXlQYXRoOiBzdHJpbmcpOiBQcm9taXNlPEtleVZhdWx0S2V5PiB7XG4gICAgaWYgKCFtYXN0ZXJLZXlQYXRoKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ01hc3RlciBrZXkgcGF0aCBjYW5ub3QgYmUgbnVsbCBvciB1bmRlZmluZWQnKTtcbiAgICB9XG4gICAgY29uc3Qga2V5UGFydHMgPSB0aGlzLnBhcnNlUGF0aChtYXN0ZXJLZXlQYXRoKTtcblxuICAgIHRoaXMuY3JlYXRlS2V5Q2xpZW50KGtleVBhcnRzLnZhdWx0VXJsKTtcblxuICAgIHJldHVybiAodGhpcy5rZXlDbGllbnQgYXMgS2V5Q2xpZW50KS5nZXRLZXkoa2V5UGFydHMubmFtZSwga2V5UGFydHMudmVyc2lvbiA/IHsgdmVyc2lvbjoga2V5UGFydHMudmVyc2lvbiB9IDoge30pO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVLZXlDbGllbnQoa2V5VmF1bHRVcmw6IHN0cmluZyk6IHZvaWQge1xuICAgIGlmICgha2V5VmF1bHRVcmwpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignQ2Fubm90IGNyZWF0ZSBrZXkgY2xpZW50IHdpdGggbnVsbCBvciB1bmRlZmluZWQga2V5VmF1bHRVcmwnKTtcbiAgICB9XG4gICAgaWYgKCF0aGlzLmtleUNsaWVudCkge1xuICAgICAgdGhpcy51cmwgPSBrZXlWYXVsdFVybDtcbiAgICAgIHRoaXMua2V5Q2xpZW50ID0gbmV3IEtleUNsaWVudChrZXlWYXVsdFVybCwgdGhpcy5jcmVkZW50aWFscyk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVDcnlwdG9DbGllbnQobWFzdGVyS2V5OiBLZXlWYXVsdEtleSk6IENyeXB0b2dyYXBoeUNsaWVudCB7XG4gICAgaWYgKCFtYXN0ZXJLZXkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignQ2Fubm90IGNyZWF0ZSBDcnlwdG9ncmFwaHlDbGllbnQgd2l0aCBudWxsIG9yIHVuZGVmaW5lZCBtYXN0ZXJLZXknKTtcbiAgICB9XG4gICAgcmV0dXJuIG5ldyBDcnlwdG9ncmFwaHlDbGllbnQobWFzdGVyS2V5LCB0aGlzLmNyZWRlbnRpYWxzKTtcbiAgfVxuXG4gIHByaXZhdGUgcGFyc2VQYXRoKG1hc3RlcktleVBhdGg6IHN0cmluZyk6IFBhcnNlZEtleVBhdGgge1xuICAgIGlmICghbWFzdGVyS2V5UGF0aCB8fCBtYXN0ZXJLZXlQYXRoLnRyaW0oKSA9PT0gJycpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignQXp1cmUgS2V5IFZhdWx0IGtleSBwYXRoIGNhbm5vdCBiZSBudWxsLicpO1xuICAgIH1cblxuICAgIGxldCBiYXNlVXJpO1xuICAgIHRyeSB7XG4gICAgICBiYXNlVXJpID0gcGFyc2UobWFzdGVyS2V5UGF0aCwgdHJ1ZSwgdHJ1ZSk7XG4gICAgfSBjYXRjaCB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQga2V5cyBpZGVudGlmaWVyOiAke21hc3RlcktleVBhdGh9LiBOb3QgYSB2YWxpZCBVUklgKTtcbiAgICB9XG5cbiAgICBpZiAoIWJhc2VVcmkuaG9zdG5hbWUgfHwgIWJhc2VVcmkuaG9zdG5hbWUudG9Mb3dlckNhc2UoKS5lbmRzV2l0aCh0aGlzLmF6dXJlS2V5VmF1bHREb21haW5OYW1lKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIEF6dXJlIEtleSBWYXVsdCBrZXkgcGF0aCBzcGVjaWZpZWQ6ICR7bWFzdGVyS2V5UGF0aH0uYCk7XG4gICAgfVxuXG4gICAgLy8gUGF0aCBpcyBvZiB0aGUgZm9ybSAnL2NvbGxlY3Rpb24vbmFtZVsvdmVyc2lvbl0nXG4gICAgY29uc3Qgc2VnbWVudHMgPSAoYmFzZVVyaS5wYXRobmFtZSB8fCAnJykuc3BsaXQoJy8nKTtcbiAgICBpZiAoc2VnbWVudHMubGVuZ3RoICE9PSAzICYmIHNlZ21lbnRzLmxlbmd0aCAhPT0gNCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgSW52YWxpZCBrZXlzIGlkZW50aWZpZXI6ICR7bWFzdGVyS2V5UGF0aH0uIEJhZCBudW1iZXIgb2Ygc2VnbWVudHM6ICR7c2VnbWVudHMubGVuZ3RofWBcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKCdrZXlzJyAhPT0gc2VnbWVudHNbMV0pIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYEludmFsaWQga2V5cyBpZGVudGlmaWVyOiAke21hc3RlcktleVBhdGh9LiBzZWdtZW50IFsxXSBzaG91bGQgYmUgXCJrZXlzXCIsIGZvdW5kIFwiJHtzZWdtZW50c1sxXX1cImBcbiAgICAgICk7XG4gICAgfVxuXG4gICAgY29uc3QgdmF1bHRVcmwgPSBgJHtiYXNlVXJpLnByb3RvY29sfS8vJHtiYXNlVXJpLmhvc3R9YDtcbiAgICBjb25zdCBuYW1lID0gc2VnbWVudHNbMl07XG4gICAgY29uc3QgdmVyc2lvbiA9IHNlZ21lbnRzLmxlbmd0aCA9PT0gNCA/IHNlZ21lbnRzWzNdIDogdW5kZWZpbmVkO1xuICAgIHJldHVybiB7XG4gICAgICB2YXVsdFVybCxcbiAgICAgIG5hbWUsXG4gICAgICB2ZXJzaW9uXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgYXp1cmVLZXlWYXVsdFNpZ25lZEhhc2hlZERhdGEoY3J5cHRvQ2xpZW50OiBDcnlwdG9ncmFwaHlDbGllbnQsIGRhdGFUb1NpZ246IEJ1ZmZlcik6IFByb21pc2U8QnVmZmVyPiB7XG4gICAgaWYgKCFjcnlwdG9DbGllbnQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignQXp1cmUgS1ZTIENyeXB0byBDbGllbnQgaXMgbm90IGRlZmluZWQuJyk7XG4gICAgfVxuXG4gICAgY29uc3Qgc2lnbmVkRGF0YSA9IGF3YWl0IGNyeXB0b0NsaWVudC5zaWduKCdSUzI1NicsIGRhdGFUb1NpZ24pO1xuXG4gICAgcmV0dXJuIEJ1ZmZlci5mcm9tKHNpZ25lZERhdGEucmVzdWx0KTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgYXp1cmVLZXlWYXVsdFdyYXAoY3J5cHRvQ2xpZW50OiBDcnlwdG9ncmFwaHlDbGllbnQsIGVuY3J5cHRpb25BbGdvcml0aG06IHN0cmluZywgY29sdW1uRW5jcnlwdGlvbktleTogQnVmZmVyKTogUHJvbWlzZTxCdWZmZXI+IHtcbiAgICBpZiAoIWNyeXB0b0NsaWVudCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdBenVyZSBLVlMgQ3J5cHRvIENsaWVudCBpcyBub3QgZGVmaW5lZC4nKTtcbiAgICB9XG5cbiAgICBpZiAoIWNvbHVtbkVuY3J5cHRpb25LZXkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignQ29sdW1uIGVuY3J5cHRpb24ga2V5IGNhbm5vdCBiZSBudWxsLicpO1xuICAgIH1cblxuICAgIGNvbnN0IHdyYXBwZWRLZXkgPSBhd2FpdCBjcnlwdG9DbGllbnQud3JhcEtleShlbmNyeXB0aW9uQWxnb3JpdGhtIGFzIEtleVdyYXBBbGdvcml0aG0sIGNvbHVtbkVuY3J5cHRpb25LZXkpO1xuXG4gICAgcmV0dXJuIEJ1ZmZlci5mcm9tKHdyYXBwZWRLZXkucmVzdWx0KTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgYXp1cmVLZXlWYXVsdFVuV3JhcChjcnlwdG9DbGllbnQ6IENyeXB0b2dyYXBoeUNsaWVudCwgZW5jcnlwdGlvbkFsZ29yaXRobTogc3RyaW5nLCBlbmNyeXB0ZWRDb2x1bW5FbmNyeXB0aW9uS2V5OiBCdWZmZXIpOiBQcm9taXNlPEJ1ZmZlcj4ge1xuICAgIGlmICghY3J5cHRvQ2xpZW50KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0F6dXJlIEtWUyBDcnlwdG8gQ2xpZW50IGlzIG5vdCBkZWZpbmVkLicpO1xuICAgIH1cblxuICAgIGlmICghZW5jcnlwdGlvbkFsZ29yaXRobSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdFbmNyeXB0aW9uIEFsZ29yaXRobSBjYW5ub3QgYmUgbnVsbCBvciB1bmRlZmluZWQnKTtcbiAgICB9XG5cbiAgICBpZiAoIWVuY3J5cHRlZENvbHVtbkVuY3J5cHRpb25LZXkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignRW5jcnlwdGVkIGNvbHVtbiBlbmNyeXB0aW9uIGtleSBjYW5ub3QgYmUgbnVsbC4nKTtcbiAgICB9XG5cbiAgICBpZiAoZW5jcnlwdGVkQ29sdW1uRW5jcnlwdGlvbktleS5sZW5ndGggPT09IDApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignRW5jcnlwdGVkIENvbHVtbiBFbmNyeXB0aW9uIEtleSBsZW5ndGggc2hvdWxkIG5vdCBiZSB6ZXJvLicpO1xuICAgIH1cblxuICAgIGNvbnN0IHVud3JhcHBlZEtleSA9IGF3YWl0IGNyeXB0b0NsaWVudC51bndyYXBLZXkoZW5jcnlwdGlvbkFsZ29yaXRobSBhcyBLZXlXcmFwQWxnb3JpdGhtLCBlbmNyeXB0ZWRDb2x1bW5FbmNyeXB0aW9uS2V5KTtcblxuICAgIHJldHVybiBCdWZmZXIuZnJvbSh1bndyYXBwZWRLZXkucmVzdWx0KTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0QUtWS2V5U2l6ZShyZXRyaWV2ZWRLZXk6IEtleVZhdWx0S2V5KTogbnVtYmVyIHtcbiAgICBpZiAoIXJldHJpZXZlZEtleSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdSZXRyaWV2ZWQga2V5IGNhbm5vdCBiZSBudWxsIG9yIHVuZGVmaW5lZCcpO1xuICAgIH1cbiAgICBjb25zdCBrZXkgPSByZXRyaWV2ZWRLZXkua2V5O1xuXG4gICAgaWYgKCFrZXkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgS2V5IGRvZXMgbm90IGV4aXN0ICR7cmV0cmlldmVkS2V5Lm5hbWV9YCk7XG4gICAgfVxuXG4gICAgY29uc3Qga3R5OiBzdHJpbmcgfCB1bmRlZmluZWQgPSBrZXkgJiYga2V5Lmt0eSAmJiBrZXkua3R5LnRvU3RyaW5nKCkudG9VcHBlckNhc2UoKTtcblxuICAgIGlmICgha3R5IHx8ICdSU0EnLmxvY2FsZUNvbXBhcmUoa3R5LCAnZW4nKSAhPT0gMCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBDYW5ub3QgdXNlIGEgbm9uLVJTQSBrZXk6ICR7a3R5fS5gKTtcbiAgICB9XG5cbiAgICBjb25zdCBrZXlMZW5ndGggPSBrZXkgJiYga2V5Lm4gJiYga2V5Lm4ubGVuZ3RoO1xuXG4gICAgcmV0dXJuIGtleUxlbmd0aCB8fCAwO1xuICB9XG5cbiAgcHJpdmF0ZSB2YWxpZGF0ZUVuY3J5cHRpb25BbGdvcml0aG0oZW5jcnlwdGlvbkFsZ29yaXRobTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBpZiAoIWVuY3J5cHRpb25BbGdvcml0aG0pIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignS2V5IGVuY3J5cHRpb24gYWxnb3JpdGhtIGNhbm5vdCBiZSBudWxsLicpO1xuICAgIH1cblxuICAgIGlmICgnUlNBX09BRVAnLmxvY2FsZUNvbXBhcmUoZW5jcnlwdGlvbkFsZ29yaXRobS50b1VwcGVyQ2FzZSgpLCAnZW4nKSA9PT0gMCkge1xuICAgICAgZW5jcnlwdGlvbkFsZ29yaXRobSA9ICdSU0EtT0FFUCc7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMucnNhRW5jcnlwdGlvbkFsZ29yaXRobVdpdGhPQUVQRm9yQUtWLmxvY2FsZUNvbXBhcmUoZW5jcnlwdGlvbkFsZ29yaXRobS50cmltKCkudG9VcHBlckNhc2UoKSwgJ2VuJykgIT09IDApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBrZXkgZW5jcnlwdGlvbiBhbGdvcml0aG0gc3BlY2lmaWVkOiAke2VuY3J5cHRpb25BbGdvcml0aG19LiBFeHBlY3RlZCB2YWx1ZTogJHt0aGlzLnJzYUVuY3J5cHRpb25BbGdvcml0aG1XaXRoT0FFUEZvckFLVn0uYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGVuY3J5cHRpb25BbGdvcml0aG07XG4gIH1cbn1cbiJdfQ==
|
|
@@ -43,4 +43,5 @@ const getKey = async (keyInfo, options) => {
|
|
|
43
43
|
}
|
|
44
44
|
};
|
|
45
45
|
|
|
46
|
-
exports.getKey = getKey;
|
|
46
|
+
exports.getKey = getKey;
|
|
47
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hbHdheXMtZW5jcnlwdGVkL3N5bW1ldHJpYy1rZXktY2FjaGUudHMiXSwibmFtZXMiOlsiY2FjaGUiLCJMUlUiLCJnZXRLZXkiLCJrZXlJbmZvIiwib3B0aW9ucyIsInRydXN0ZWRTZXJ2ZXJOYW1lQUUiLCJFcnJvciIsInNlcnZlck5hbWUiLCJrZXlMb29rdXBWYWx1ZSIsIkJ1ZmZlciIsImZyb20iLCJlbmNyeXB0ZWRLZXkiLCJ0b1N0cmluZyIsImtleVN0b3JlTmFtZSIsImhhcyIsImdldCIsInByb3ZpZGVyIiwiZW5jcnlwdGlvbktleVN0b3JlUHJvdmlkZXJzIiwicGxhaW50ZXh0S2V5IiwiZGVjcnlwdENvbHVtbkVuY3J5cHRpb25LZXkiLCJrZXlQYXRoIiwiYWxnb3JpdGhtTmFtZSIsImVuY3J5cHRpb25LZXkiLCJTeW1tZXRyaWNLZXkiLCJjb2x1bW5FbmNyeXB0aW9uS2V5Q2FjaGVUVEwiLCJzZXQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFJQTs7QUFFQTs7OztBQU5BO0FBQ0E7QUFPQSxNQUFNQSxLQUFLLEdBQUcsSUFBSUMsaUJBQUosQ0FBOEIsQ0FBOUIsQ0FBZDs7QUFFTyxNQUFNQyxNQUFNLEdBQUcsT0FBT0MsT0FBUCxFQUFtQ0MsT0FBbkMsS0FBeUY7QUFDN0csTUFBSSxDQUFDQSxPQUFPLENBQUNDLG1CQUFiLEVBQWtDO0FBQ2hDLFVBQU0sSUFBSUMsS0FBSixDQUFVLDBDQUFWLENBQU47QUFDRDs7QUFFRCxRQUFNQyxVQUFrQixHQUFHSCxPQUFPLENBQUNDLG1CQUFuQztBQUVBLFFBQU1HLGNBQWMsR0FBSSxHQUFFRCxVQUFXLElBQUdFLE1BQU0sQ0FBQ0MsSUFBUCxDQUFZUCxPQUFPLENBQUNRLFlBQXBCLEVBQWtDQyxRQUFsQyxDQUEyQyxRQUEzQyxDQUFxRCxJQUFHVCxPQUFPLENBQUNVLFlBQWEsRUFBckg7O0FBRUEsTUFBSWIsS0FBSyxDQUFDYyxHQUFOLENBQVVOLGNBQVYsQ0FBSixFQUErQjtBQUM3QixXQUFPUixLQUFLLENBQUNlLEdBQU4sQ0FBVVAsY0FBVixDQUFQO0FBQ0QsR0FGRCxNQUVPO0FBQ0wsVUFBTVEsUUFBUSxHQUFHWixPQUFPLENBQUNhLDJCQUFSLElBQXVDYixPQUFPLENBQUNhLDJCQUFSLENBQW9DZCxPQUFPLENBQUNVLFlBQTVDLENBQXhEOztBQUNBLFFBQUksQ0FBQ0csUUFBTCxFQUFlO0FBQ2IsWUFBTSxJQUFJVixLQUFKLENBQVcsK0VBQThFSCxPQUFPLENBQUNVLFlBQWEsMkxBQTBMVCxPQUFPLENBQUNhLDJCQUE0Qiw4TEFBNVUsQ0FBTjtBQUNEOztBQUVELFVBQU1DLFlBQW9CLEdBQUcsTUFBTUYsUUFBUSxDQUFDRywwQkFBVCxDQUFvQ2hCLE9BQU8sQ0FBQ2lCLE9BQTVDLEVBQXFEakIsT0FBTyxDQUFDa0IsYUFBN0QsRUFBNEVsQixPQUFPLENBQUNRLFlBQXBGLENBQW5DO0FBRUEsVUFBTVcsYUFBYSxHQUFHLElBQUlDLHFCQUFKLENBQWlCTCxZQUFqQixDQUF0Qjs7QUFFQSxRQUFJZCxPQUFPLENBQUNvQiwyQkFBUixHQUFzQyxDQUExQyxFQUE2QztBQUMzQ3hCLE1BQUFBLEtBQUssQ0FBQ3lCLEdBQU4sQ0FBVWpCLGNBQVYsRUFBMEJjLGFBQTFCLEVBQXlDbEIsT0FBTyxDQUFDb0IsMkJBQWpEO0FBQ0Q7O0FBRUQsV0FBT0YsYUFBUDtBQUNEO0FBQ0YsQ0EzQk0iLCJzb3VyY2VzQ29udGVudCI6WyIvLyBUaGlzIGNvZGUgaXMgYmFzZWQgb24gdGhlIGBtc3NxbC1qZGJjYCBsaWJyYXJ5IHB1Ymxpc2hlZCB1bmRlciB0aGUgY29uZGl0aW9ucyBvZiBNSVQgbGljZW5zZS5cbi8vIENvcHlyaWdodCAoYykgMjAxOSBNaWNyb3NvZnQgQ29ycG9yYXRpb25cblxuaW1wb3J0IHsgRW5jcnlwdGlvbktleUluZm8gfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCBTeW1tZXRyaWNLZXkgZnJvbSAnLi9zeW1tZXRyaWMta2V5JztcbmltcG9ydCB7IEludGVybmFsQ29ubmVjdGlvbk9wdGlvbnMgYXMgQ29ubmVjdGlvbk9wdGlvbnMgfSBmcm9tICcuLi9jb25uZWN0aW9uJztcbmltcG9ydCBMUlUgZnJvbSAnbHJ1LWNhY2hlJztcblxuY29uc3QgY2FjaGUgPSBuZXcgTFJVPHN0cmluZywgU3ltbWV0cmljS2V5PigwKTtcblxuZXhwb3J0IGNvbnN0IGdldEtleSA9IGFzeW5jIChrZXlJbmZvOiBFbmNyeXB0aW9uS2V5SW5mbywgb3B0aW9uczogQ29ubmVjdGlvbk9wdGlvbnMpOiBQcm9taXNlPFN5bW1ldHJpY0tleT4gPT4ge1xuICBpZiAoIW9wdGlvbnMudHJ1c3RlZFNlcnZlck5hbWVBRSkge1xuICAgIHRocm93IG5ldyBFcnJvcignU2VydmVyIG5hbWUgc2hvdWxkIG5vdCBiZSBudWxsIGluIGdldEtleScpO1xuICB9XG5cbiAgY29uc3Qgc2VydmVyTmFtZTogc3RyaW5nID0gb3B0aW9ucy50cnVzdGVkU2VydmVyTmFtZUFFO1xuXG4gIGNvbnN0IGtleUxvb2t1cFZhbHVlID0gYCR7c2VydmVyTmFtZX06JHtCdWZmZXIuZnJvbShrZXlJbmZvLmVuY3J5cHRlZEtleSkudG9TdHJpbmcoJ2Jhc2U2NCcpfToke2tleUluZm8ua2V5U3RvcmVOYW1lfWA7XG5cbiAgaWYgKGNhY2hlLmhhcyhrZXlMb29rdXBWYWx1ZSkpIHtcbiAgICByZXR1cm4gY2FjaGUuZ2V0KGtleUxvb2t1cFZhbHVlKSBhcyBTeW1tZXRyaWNLZXk7XG4gIH0gZWxzZSB7XG4gICAgY29uc3QgcHJvdmlkZXIgPSBvcHRpb25zLmVuY3J5cHRpb25LZXlTdG9yZVByb3ZpZGVycyAmJiBvcHRpb25zLmVuY3J5cHRpb25LZXlTdG9yZVByb3ZpZGVyc1trZXlJbmZvLmtleVN0b3JlTmFtZV07XG4gICAgaWYgKCFwcm92aWRlcikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBGYWlsZWQgdG8gZGVjcnlwdCBhIGNvbHVtbiBlbmNyeXB0aW9uIGtleS4gSW52YWxpZCBrZXkgc3RvcmUgcHJvdmlkZXIgbmFtZTogJHtrZXlJbmZvLmtleVN0b3JlTmFtZX0uIEEga2V5IHN0b3JlIHByb3ZpZGVyIG5hbWUgbXVzdCBkZW5vdGUgZWl0aGVyIGEgc3lzdGVtIGtleSBzdG9yZSBwcm92aWRlciBvciBhIHJlZ2lzdGVyZWQgY3VzdG9tIGtleSBzdG9yZSBwcm92aWRlci4gVmFsaWQgKGN1cnJlbnRseSByZWdpc3RlcmVkKSBjdXN0b20ga2V5IHN0b3JlIHByb3ZpZGVyIG5hbWVzIGFyZTogJHtvcHRpb25zLmVuY3J5cHRpb25LZXlTdG9yZVByb3ZpZGVyc30uIFBsZWFzZSB2ZXJpZnkga2V5IHN0b3JlIHByb3ZpZGVyIGluZm9ybWF0aW9uIGluIGNvbHVtbiBtYXN0ZXIga2V5IGRlZmluaXRpb25zIGluIHRoZSBkYXRhYmFzZSwgYW5kIHZlcmlmeSBhbGwgY3VzdG9tIGtleSBzdG9yZSBwcm92aWRlcnMgdXNlZCBpbiB5b3VyIGFwcGxpY2F0aW9uIGFyZSByZWdpc3RlcmVkIHByb3Blcmx5LmApO1xuICAgIH1cblxuICAgIGNvbnN0IHBsYWludGV4dEtleTogQnVmZmVyID0gYXdhaXQgcHJvdmlkZXIuZGVjcnlwdENvbHVtbkVuY3J5cHRpb25LZXkoa2V5SW5mby5rZXlQYXRoLCBrZXlJbmZvLmFsZ29yaXRobU5hbWUsIGtleUluZm8uZW5jcnlwdGVkS2V5KTtcblxuICAgIGNvbnN0IGVuY3J5cHRpb25LZXkgPSBuZXcgU3ltbWV0cmljS2V5KHBsYWludGV4dEtleSk7XG5cbiAgICBpZiAob3B0aW9ucy5jb2x1bW5FbmNyeXB0aW9uS2V5Q2FjaGVUVEwgPiAwKSB7XG4gICAgICBjYWNoZS5zZXQoa2V5TG9va3VwVmFsdWUsIGVuY3J5cHRpb25LZXksIG9wdGlvbnMuY29sdW1uRW5jcnlwdGlvbktleUNhY2hlVFRMKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZW5jcnlwdGlvbktleTtcbiAgfVxufTtcbiJdfQ==
|
|
@@ -28,4 +28,5 @@ class SymmetricKey {
|
|
|
28
28
|
|
|
29
29
|
exports.SymmetricKey = SymmetricKey;
|
|
30
30
|
var _default = SymmetricKey;
|
|
31
|
-
exports.default = _default;
|
|
31
|
+
exports.default = _default;
|
|
32
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hbHdheXMtZW5jcnlwdGVkL3N5bW1ldHJpYy1rZXkudHMiXSwibmFtZXMiOlsiU3ltbWV0cmljS2V5IiwiY29uc3RydWN0b3IiLCJyb290S2V5IiwiRXJyb3IiLCJsZW5ndGgiLCJ6ZXJvT3V0S2V5IiwiQnVmZmVyIiwiYWxsb2MiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQTtBQUNBO0FBRU8sTUFBTUEsWUFBTixDQUFtQjtBQUd4QkMsRUFBQUEsV0FBVyxDQUFDQyxPQUFELEVBQWtCO0FBQUEsU0FGN0JBLE9BRTZCOztBQUMzQixRQUFJLENBQUNBLE9BQUwsRUFBYztBQUNaLFlBQU0sSUFBSUMsS0FBSixDQUFVLHVDQUFWLENBQU47QUFDRCxLQUZELE1BRU8sSUFBSSxNQUFNRCxPQUFPLENBQUNFLE1BQWxCLEVBQTBCO0FBQy9CLFlBQU0sSUFBSUQsS0FBSixDQUFVLHdDQUFWLENBQU47QUFDRDs7QUFDRCxTQUFLRCxPQUFMLEdBQWVBLE9BQWY7QUFDRDs7QUFFREcsRUFBQUEsVUFBVSxHQUFHO0FBQ1gsU0FBS0gsT0FBTCxHQUFlSSxNQUFNLENBQUNDLEtBQVAsQ0FBYSxLQUFLTCxPQUFMLENBQWFFLE1BQTFCLENBQWY7QUFDRDs7QUFkdUI7OztlQWdCWEosWSIsInNvdXJjZXNDb250ZW50IjpbIi8vIFRoaXMgY29kZSBpcyBiYXNlZCBvbiB0aGUgYG1zc3FsLWpkYmNgIGxpYnJhcnkgcHVibGlzaGVkIHVuZGVyIHRoZSBjb25kaXRpb25zIG9mIE1JVCBsaWNlbnNlLlxuLy8gQ29weXJpZ2h0IChjKSAyMDE5IE1pY3Jvc29mdCBDb3Jwb3JhdGlvblxuXG5leHBvcnQgY2xhc3MgU3ltbWV0cmljS2V5IHtcbiAgcm9vdEtleTogQnVmZmVyO1xuXG4gIGNvbnN0cnVjdG9yKHJvb3RLZXk6IEJ1ZmZlcikge1xuICAgIGlmICghcm9vdEtleSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdDb2x1bW4gZW5jcnlwdGlvbiBrZXkgY2Fubm90IGJlIG51bGwuJyk7XG4gICAgfSBlbHNlIGlmICgwID09PSByb290S2V5Lmxlbmd0aCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdFbXB0eSBjb2x1bW4gZW5jcnlwdGlvbiBrZXkgc3BlY2lmaWVkLicpO1xuICAgIH1cbiAgICB0aGlzLnJvb3RLZXkgPSByb290S2V5O1xuICB9XG5cbiAgemVyb091dEtleSgpIHtcbiAgICB0aGlzLnJvb3RLZXkgPSBCdWZmZXIuYWxsb2ModGhpcy5yb290S2V5Lmxlbmd0aCk7XG4gIH1cbn1cbmV4cG9ydCBkZWZhdWx0IFN5bW1ldHJpY0tleTtcbiJdfQ==
|
|
@@ -56,4 +56,5 @@ exports.SQLServerStatementColumnEncryptionSetting = SQLServerStatementColumnEncr
|
|
|
56
56
|
SQLServerStatementColumnEncryptionSetting[SQLServerStatementColumnEncryptionSetting["Enabled"] = 1] = "Enabled";
|
|
57
57
|
SQLServerStatementColumnEncryptionSetting[SQLServerStatementColumnEncryptionSetting["ResultSetOnly"] = 2] = "ResultSetOnly";
|
|
58
58
|
SQLServerStatementColumnEncryptionSetting[SQLServerStatementColumnEncryptionSetting["Disabled"] = 3] = "Disabled";
|
|
59
|
-
})(SQLServerStatementColumnEncryptionSetting || (exports.SQLServerStatementColumnEncryptionSetting = SQLServerStatementColumnEncryptionSetting = {}));
|
|
59
|
+
})(SQLServerStatementColumnEncryptionSetting || (exports.SQLServerStatementColumnEncryptionSetting = SQLServerStatementColumnEncryptionSetting = {}));
|
|
60
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hbHdheXMtZW5jcnlwdGVkL3R5cGVzLnRzIl0sIm5hbWVzIjpbIlNRTFNlcnZlckVuY3J5cHRpb25UeXBlIiwiRGVzY3JpYmVQYXJhbWV0ZXJFbmNyeXB0aW9uUmVzdWx0U2V0MSIsIkRlc2NyaWJlUGFyYW1ldGVyRW5jcnlwdGlvblJlc3VsdFNldDIiLCJTUUxTZXJ2ZXJTdGF0ZW1lbnRDb2x1bW5FbmNyeXB0aW9uU2V0dGluZyJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7QUFDQTtJQWdCWUEsdUI7OztXQUFBQSx1QjtBQUFBQSxFQUFBQSx1QixDQUFBQSx1QjtBQUFBQSxFQUFBQSx1QixDQUFBQSx1QjtBQUFBQSxFQUFBQSx1QixDQUFBQSx1QjtHQUFBQSx1Qix1Q0FBQUEsdUI7O0FBNEJaO0FBQ0E7QUFDQTtJQUNZQyxxQyxFQWFaO0FBQ0E7QUFDQTs7OztXQWZZQSxxQztBQUFBQSxFQUFBQSxxQyxDQUFBQSxxQztBQUFBQSxFQUFBQSxxQyxDQUFBQSxxQztBQUFBQSxFQUFBQSxxQyxDQUFBQSxxQztBQUFBQSxFQUFBQSxxQyxDQUFBQSxxQztBQUFBQSxFQUFBQSxxQyxDQUFBQSxxQztBQUFBQSxFQUFBQSxxQyxDQUFBQSxxQztBQUFBQSxFQUFBQSxxQyxDQUFBQSxxQztBQUFBQSxFQUFBQSxxQyxDQUFBQSxxQztBQUFBQSxFQUFBQSxxQyxDQUFBQSxxQztHQUFBQSxxQyxxREFBQUEscUM7O0lBZ0JBQyxxQzs7O1dBQUFBLHFDO0FBQUFBLEVBQUFBLHFDLENBQUFBLHFDO0FBQUFBLEVBQUFBLHFDLENBQUFBLHFDO0FBQUFBLEVBQUFBLHFDLENBQUFBLHFDO0FBQUFBLEVBQUFBLHFDLENBQUFBLHFDO0FBQUFBLEVBQUFBLHFDLENBQUFBLHFDO0FBQUFBLEVBQUFBLHFDLENBQUFBLHFDO0dBQUFBLHFDLHFEQUFBQSxxQzs7SUFTQUMseUM7OztXQUFBQSx5QztBQUFBQSxFQUFBQSx5QyxDQUFBQSx5QztBQUFBQSxFQUFBQSx5QyxDQUFBQSx5QztBQUFBQSxFQUFBQSx5QyxDQUFBQSx5QztBQUFBQSxFQUFBQSx5QyxDQUFBQSx5QztHQUFBQSx5Qyx5REFBQUEseUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBUaGlzIGNvZGUgaXMgYmFzZWQgb24gdGhlIGBtc3NxbC1qZGJjYCBsaWJyYXJ5IHB1Ymxpc2hlZCB1bmRlciB0aGUgY29uZGl0aW9ucyBvZiBNSVQgbGljZW5zZS5cbi8vIENvcHlyaWdodCAoYykgMjAxOSBNaWNyb3NvZnQgQ29ycG9yYXRpb25cblxuaW1wb3J0IHsgQ0VLRW50cnkgfSBmcm9tICcuL2Nlay1lbnRyeSc7XG5pbXBvcnQgeyBCYXNlTWV0YWRhdGEgfSBmcm9tICcuLi9tZXRhZGF0YS1wYXJzZXInO1xuXG5leHBvcnQgaW50ZXJmYWNlIEVuY3J5cHRpb25LZXlJbmZvIHtcbiAgZW5jcnlwdGVkS2V5OiBCdWZmZXI7XG4gIGRiSWQ6IG51bWJlcjtcbiAga2V5SWQ6IG51bWJlcjtcbiAga2V5VmVyc2lvbjogbnVtYmVyO1xuICBtZFZlcnNpb246IEJ1ZmZlcjtcbiAga2V5UGF0aDogc3RyaW5nO1xuICBrZXlTdG9yZU5hbWU6IHN0cmluZztcbiAgYWxnb3JpdGhtTmFtZTogc3RyaW5nO1xufVxuXG5leHBvcnQgZW51bSBTUUxTZXJ2ZXJFbmNyeXB0aW9uVHlwZSB7XG4gIERldGVybWluaXN0aWMgPSAxLFxuICBSYW5kb21pemVkID0gMixcbiAgUGxhaW5UZXh0ID0gMCxcbn1cblxuZXhwb3J0IGludGVyZmFjZSBFbmNyeXB0aW9uQWxnb3JpdGhtIHtcbiAgZW5jcnlwdERhdGE6IChwbGFpblRleHQ6IEJ1ZmZlcikgPT4gQnVmZmVyO1xuICBkZWNyeXB0RGF0YTogKGNpcGhlclRleHQ6IEJ1ZmZlcikgPT4gQnVmZmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENyeXB0b01ldGFkYXRhIHtcbiAgY2VrRW50cnk/OiBDRUtFbnRyeTtcbiAgY2lwaGVyQWxnb3JpdGhtSWQ6IG51bWJlcjtcbiAgY2lwaGVyQWxnb3JpdGhtTmFtZT86IHN0cmluZztcbiAgbm9ybWFsaXphdGlvblJ1bGVWZXJzaW9uOiBCdWZmZXI7XG4gIGVuY3J5cHRpb25LZXlJbmZvPzogRW5jcnlwdGlvbktleUluZm87XG4gIG9yZGluYWw6IG51bWJlcjtcbiAgZW5jcnlwdGlvblR5cGU6IFNRTFNlcnZlckVuY3J5cHRpb25UeXBlO1xuICBjaXBoZXJBbGdvcml0aG0/OiBFbmNyeXB0aW9uQWxnb3JpdGhtO1xuICBiYXNlVHlwZUluZm8/OiBCYXNlTWV0YWRhdGE7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSGFzaE1hcDxUPiB7XG4gIFtoYXNoOiBzdHJpbmddOiBUO1xufVxuXG5cbi8vIEZpZWxkcyBpbiB0aGUgZmlyc3QgcmVzdWx0c2V0IG9mIFwic3BfZGVzY3JpYmVfcGFyYW1ldGVyX2VuY3J5cHRpb25cIlxuLy8gV2UgZXhwZWN0IHRoZSBzZXJ2ZXIgdG8gcmV0dXJuIHRoZSBmaWVsZHMgaW4gdGhlIHJlc3VsdHNldCBpbiB0aGUgc2FtZSBvcmRlciBhcyBtZW50aW9uZWQgYmVsb3cuXG4vLyBJZiB0aGUgc2VydmVyIGNoYW5nZXMgdGhlIGJlbG93IG9yZGVyLCB0aGVuIHRyYW5zcGFyZW50IHBhcmFtZXRlciBlbmNyeXB0aW9uIHdpbGwgYnJlYWsuXG5leHBvcnQgZW51bSBEZXNjcmliZVBhcmFtZXRlckVuY3J5cHRpb25SZXN1bHRTZXQxIHtcbiAgS2V5T3JkaW5hbCxcbiAgRGJJZCxcbiAgS2V5SWQsXG4gIEtleVZlcnNpb24sXG4gIEtleU1kVmVyc2lvbixcbiAgRW5jcnlwdGVkS2V5LFxuICBQcm92aWRlck5hbWUsXG4gIEtleVBhdGgsXG4gIEtleUVuY3J5cHRpb25BbGdvcml0aG1cbn1cblxuXG4vLyBGaWVsZHMgaW4gdGhlIHNlY29uZCByZXN1bHRzZXQgb2YgXCJzcF9kZXNjcmliZV9wYXJhbWV0ZXJfZW5jcnlwdGlvblwiXG4vLyBXZSBleHBlY3QgdGhlIHNlcnZlciB0byByZXR1cm4gdGhlIGZpZWxkcyBpbiB0aGUgcmVzdWx0c2V0IGluIHRoZSBzYW1lIG9yZGVyIGFzIG1lbnRpb25lZCBiZWxvdy5cbi8vIElmIHRoZSBzZXJ2ZXIgY2hhbmdlcyB0aGUgYmVsb3cgb3JkZXIsIHRoZW4gdHJhbnNwYXJlbnQgcGFyYW1ldGVyIGVuY3J5cHRpb24gd2lsbCBicmVhay5cbmV4cG9ydCBlbnVtIERlc2NyaWJlUGFyYW1ldGVyRW5jcnlwdGlvblJlc3VsdFNldDIge1xuICBQYXJhbWV0ZXJPcmRpbmFsLFxuICBQYXJhbWV0ZXJOYW1lLFxuICBDb2x1bW5FbmNyeXB0aW9uQWxnb3JpdGhtLFxuICBDb2x1bW5FbmNyeXRpb25UeXBlLFxuICBDb2x1bW5FbmNyeXB0aW9uS2V5T3JkaW5hbCxcbiAgTm9ybWFsaXphdGlvblJ1bGVWZXJzaW9uXG59XG5cbmV4cG9ydCBlbnVtIFNRTFNlcnZlclN0YXRlbWVudENvbHVtbkVuY3J5cHRpb25TZXR0aW5nIHtcbiAgLyoqXG4gICAqIGlmIFwiQ29sdW1uIEVuY3J5cHRpb24gU2V0dGluZz1FbmFibGVkXCIgaW4gdGhlIGNvbm5lY3Rpb24gc3RyaW5nLCB1c2UgRW5hYmxlZC4gT3RoZXJ3aXNlLCBtYXBzIHRvIERpc2FibGVkLlxuICAgKi9cbiAgVXNlQ29ubmVjdGlvblNldHRpbmcsXG4gIC8qKlxuICAgKiBFbmFibGVzIFRDRSBmb3IgdGhlIGNvbW1hbmQuIE92ZXJyaWRlcyB0aGUgY29ubmVjdGlvbiBsZXZlbCBzZXR0aW5nIGZvciB0aGlzIGNvbW1hbmQuXG4gICAqL1xuICBFbmFibGVkLFxuICAvKipcbiAgICogUGFyYW1ldGVycyB3aWxsIG5vdCBiZSBlbmNyeXB0ZWQsIG9ubHkgdGhlIFJlc3VsdFNldCB3aWxsIGJlIGRlY3J5cHRlZC4gVGhpcyBpcyBhbiBvcHRpbWl6YXRpb24gZm9yIHF1ZXJpZXMgdGhhdFxuICAgKiBkbyBub3QgcGFzcyBhbnkgZW5jcnlwdGVkIGlucHV0IHBhcmFtZXRlcnMuIE92ZXJyaWRlcyB0aGUgY29ubmVjdGlvbiBsZXZlbCBzZXR0aW5nIGZvciB0aGlzIGNvbW1hbmQuXG4gICAqL1xuICBSZXN1bHRTZXRPbmx5LFxuICAvKipcbiAgICogRGlzYWJsZXMgVENFIGZvciB0aGUgY29tbWFuZC5PdmVycmlkZXMgdGhlIGNvbm5lY3Rpb24gbGV2ZWwgc2V0dGluZyBmb3IgdGhpcyBjb21tYW5kLlxuICAgKi9cbiAgRGlzYWJsZWQsXG59XG4iXX0=
|
|
@@ -23,4 +23,5 @@ const shouldHonorAE = (stmtColumnEncryptionSetting, columnEncryptionSetting) =>
|
|
|
23
23
|
}
|
|
24
24
|
};
|
|
25
25
|
|
|
26
|
-
exports.shouldHonorAE = shouldHonorAE;
|
|
26
|
+
exports.shouldHonorAE = shouldHonorAE;
|
|
27
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hbHdheXMtZW5jcnlwdGVkL3V0aWxzLnRzIl0sIm5hbWVzIjpbInNob3VsZEhvbm9yQUUiLCJzdG10Q29sdW1uRW5jcnlwdGlvblNldHRpbmciLCJjb2x1bW5FbmNyeXB0aW9uU2V0dGluZyIsIlNRTFNlcnZlclN0YXRlbWVudENvbHVtbkVuY3J5cHRpb25TZXR0aW5nIiwiRGlzYWJsZWQiLCJSZXN1bHRTZXRPbmx5IiwiRW5hYmxlZCJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUdBOztBQUhBO0FBQ0E7QUFJTyxNQUFNQSxhQUFhLEdBQUcsQ0FBQ0MsMkJBQUQsRUFBeUVDLHVCQUF6RSxLQUF1SDtBQUNsSixVQUFRRCwyQkFBUjtBQUNFLFNBQUtFLGlEQUEwQ0MsUUFBL0M7QUFDQSxTQUFLRCxpREFBMENFLGFBQS9DO0FBQ0UsYUFBTyxLQUFQOztBQUNGLFNBQUtGLGlEQUEwQ0csT0FBL0M7QUFDRSxhQUFPLElBQVA7O0FBQ0Y7QUFDRSxhQUFPSix1QkFBUDtBQVBKO0FBU0QsQ0FWTSIsInNvdXJjZXNDb250ZW50IjpbIi8vIFRoaXMgY29kZSBpcyBiYXNlZCBvbiB0aGUgYG1zc3FsLWpkYmNgIGxpYnJhcnkgcHVibGlzaGVkIHVuZGVyIHRoZSBjb25kaXRpb25zIG9mIE1JVCBsaWNlbnNlLlxuLy8gQ29weXJpZ2h0IChjKSAyMDE5IE1pY3Jvc29mdCBDb3Jwb3JhdGlvblxuXG5pbXBvcnQgeyBTUUxTZXJ2ZXJTdGF0ZW1lbnRDb2x1bW5FbmNyeXB0aW9uU2V0dGluZyB9IGZyb20gJy4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3Qgc2hvdWxkSG9ub3JBRSA9IChzdG10Q29sdW1uRW5jcnlwdGlvblNldHRpbmc6IFNRTFNlcnZlclN0YXRlbWVudENvbHVtbkVuY3J5cHRpb25TZXR0aW5nLCBjb2x1bW5FbmNyeXB0aW9uU2V0dGluZzogYm9vbGVhbik6IGJvb2xlYW4gPT4ge1xuICBzd2l0Y2ggKHN0bXRDb2x1bW5FbmNyeXB0aW9uU2V0dGluZykge1xuICAgIGNhc2UgU1FMU2VydmVyU3RhdGVtZW50Q29sdW1uRW5jcnlwdGlvblNldHRpbmcuRGlzYWJsZWQ6XG4gICAgY2FzZSBTUUxTZXJ2ZXJTdGF0ZW1lbnRDb2x1bW5FbmNyeXB0aW9uU2V0dGluZy5SZXN1bHRTZXRPbmx5OlxuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIGNhc2UgU1FMU2VydmVyU3RhdGVtZW50Q29sdW1uRW5jcnlwdGlvblNldHRpbmcuRW5hYmxlZDpcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gY29sdW1uRW5jcnlwdGlvblNldHRpbmc7XG4gIH1cbn07XG4iXX0=
|
package/lib/bulk-load-payload.js
CHANGED
|
@@ -47,4 +47,5 @@ class BulkLoadPayload {
|
|
|
47
47
|
|
|
48
48
|
}
|
|
49
49
|
|
|
50
|
-
exports.BulkLoadPayload = BulkLoadPayload;
|
|
50
|
+
exports.BulkLoadPayload = BulkLoadPayload;
|
|
51
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9idWxrLWxvYWQtcGF5bG9hZC50cyJdLCJuYW1lcyI6WyJTeW1ib2wiLCJhc3luY0l0ZXJhdG9yIiwiQnVsa0xvYWRQYXlsb2FkIiwiY29uc3RydWN0b3IiLCJidWxrTG9hZCIsIml0ZXJhdG9yIiwicm93VG9QYWNrZXRUcmFuc2Zvcm0iLCJvbmNlIiwicmVtb3ZlTGlzdGVuZXIiLCJvbkNhbmNlbCIsInN0cmVhbWluZ01vZGUiLCJkZXN0cm95IiwiUmVxdWVzdEVycm9yIiwidG9TdHJpbmciLCJpbmRlbnQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFDQTs7Ozt3QkErQkdBLE1BQU0sQ0FBQ0MsYTs7QUE3QkgsTUFBTUMsZUFBTixDQUF1RDtBQUk1REMsRUFBQUEsV0FBVyxDQUFDQyxRQUFELEVBQXFCO0FBQUEsU0FIaENBLFFBR2dDO0FBQUEsU0FGaENDLFFBRWdDO0FBQzlCLFNBQUtELFFBQUwsR0FBZ0JBLFFBQWhCLENBRDhCLENBRzlCO0FBQ0E7O0FBQ0EsU0FBS0MsUUFBTCxHQUFnQixLQUFLRCxRQUFMLENBQWNFLG9CQUFkLENBQW1DTixNQUFNLENBQUNDLGFBQTFDLEdBQWhCO0FBRUEsU0FBS0csUUFBTCxDQUFjRSxvQkFBZCxDQUFtQ0MsSUFBbkMsQ0FBd0MsUUFBeEMsRUFBa0QsTUFBTTtBQUN0RCxXQUFLSCxRQUFMLENBQWNJLGNBQWQsQ0FBNkIsUUFBN0IsRUFBdUNDLFFBQXZDO0FBQ0QsS0FGRDtBQUlBLFFBQUlBLFFBQUo7O0FBQ0EsUUFBSSxLQUFLTCxRQUFMLENBQWNNLGFBQWxCLEVBQWlDO0FBQy9CRCxNQUFBQSxRQUFRLEdBQUcsTUFBTTtBQUNmLGFBQUtMLFFBQUwsQ0FBY0Usb0JBQWQsQ0FBbUNLLE9BQW5DLENBQTJDLElBQUlDLG9CQUFKLENBQWlCLFdBQWpCLEVBQThCLFNBQTlCLENBQTNDO0FBQ0QsT0FGRDtBQUdELEtBSkQsTUFJTztBQUNMSCxNQUFBQSxRQUFRLEdBQUcsTUFBTTtBQUNmLGFBQUtMLFFBQUwsQ0FBY0Usb0JBQWQsQ0FBbUNLLE9BQW5DO0FBQ0QsT0FGRDtBQUdEOztBQUVELFNBQUtQLFFBQUwsQ0FBY0csSUFBZCxDQUFtQixRQUFuQixFQUE2QkUsUUFBN0I7QUFDRDs7QUFFRCw0QkFBeUI7QUFDdkIsV0FBTyxLQUFLSixRQUFaO0FBQ0Q7O0FBRURRLEVBQUFBLFFBQVEsQ0FBQ0MsTUFBTSxHQUFHLEVBQVYsRUFBYztBQUNwQixXQUFPQSxNQUFNLEdBQUksVUFBakI7QUFDRDs7QUFuQzJEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEJ1bGtMb2FkIGZyb20gJy4vYnVsay1sb2FkJztcbmltcG9ydCB7IFJlcXVlc3RFcnJvciB9IGZyb20gJy4vZXJyb3JzJztcblxuZXhwb3J0IGNsYXNzIEJ1bGtMb2FkUGF5bG9hZCBpbXBsZW1lbnRzIEFzeW5jSXRlcmFibGU8QnVmZmVyPiB7XG4gIGJ1bGtMb2FkOiBCdWxrTG9hZDtcbiAgaXRlcmF0b3I6IEFzeW5jSXRlcmFibGVJdGVyYXRvcjxCdWZmZXI+O1xuXG4gIGNvbnN0cnVjdG9yKGJ1bGtMb2FkOiBCdWxrTG9hZCkge1xuICAgIHRoaXMuYnVsa0xvYWQgPSBidWxrTG9hZDtcblxuICAgIC8vIFdlIG5lZWQgdG8gZ3JhYiB0aGUgaXRlcmF0b3IgaGVyZSBzbyB0aGF0IGBlcnJvcmAgZXZlbnQgaGFuZGxlcnMgYXJlIHNldCB1cFxuICAgIC8vIGFzIGVhcmx5IGFzIHBvc3NpYmxlIChhbmQgYXJlIG5vdCBwb3RlbnRpYWxseSBsb3N0KS5cbiAgICB0aGlzLml0ZXJhdG9yID0gdGhpcy5idWxrTG9hZC5yb3dUb1BhY2tldFRyYW5zZm9ybVtTeW1ib2wuYXN5bmNJdGVyYXRvcl0oKTtcblxuICAgIHRoaXMuYnVsa0xvYWQucm93VG9QYWNrZXRUcmFuc2Zvcm0ub25jZSgnZmluaXNoJywgKCkgPT4ge1xuICAgICAgdGhpcy5idWxrTG9hZC5yZW1vdmVMaXN0ZW5lcignY2FuY2VsJywgb25DYW5jZWwpO1xuICAgIH0pO1xuXG4gICAgbGV0IG9uQ2FuY2VsOiAoKSA9PiB2b2lkO1xuICAgIGlmICh0aGlzLmJ1bGtMb2FkLnN0cmVhbWluZ01vZGUpIHtcbiAgICAgIG9uQ2FuY2VsID0gKCkgPT4ge1xuICAgICAgICB0aGlzLmJ1bGtMb2FkLnJvd1RvUGFja2V0VHJhbnNmb3JtLmRlc3Ryb3kobmV3IFJlcXVlc3RFcnJvcignQ2FuY2VsZWQuJywgJ0VDQU5DRUwnKSk7XG4gICAgICB9O1xuICAgIH0gZWxzZSB7XG4gICAgICBvbkNhbmNlbCA9ICgpID0+IHtcbiAgICAgICAgdGhpcy5idWxrTG9hZC5yb3dUb1BhY2tldFRyYW5zZm9ybS5kZXN0cm95KCk7XG4gICAgICB9O1xuICAgIH1cblxuICAgIHRoaXMuYnVsa0xvYWQub25jZSgnY2FuY2VsJywgb25DYW5jZWwpO1xuICB9XG5cbiAgW1N5bWJvbC5hc3luY0l0ZXJhdG9yXSgpIHtcbiAgICByZXR1cm4gdGhpcy5pdGVyYXRvcjtcbiAgfVxuXG4gIHRvU3RyaW5nKGluZGVudCA9ICcnKSB7XG4gICAgcmV0dXJuIGluZGVudCArICgnQnVsa0xvYWQnKTtcbiAgfVxufVxuIl19
|
package/lib/bulk-load.js
CHANGED
|
@@ -664,4 +664,5 @@ class BulkLoad extends _events.EventEmitter {
|
|
|
664
664
|
|
|
665
665
|
var _default = BulkLoad;
|
|
666
666
|
exports.default = _default;
|
|
667
|
-
module.exports = BulkLoad;
|
|
667
|
+
module.exports = BulkLoad;
|
|
668
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9idWxrLWxvYWQudHMiXSwibmFtZXMiOlsiRkxBR1MiLCJudWxsYWJsZSIsImNhc2VTZW4iLCJ1cGRhdGVhYmxlUmVhZFdyaXRlIiwidXBkYXRlYWJsZVVua25vd24iLCJpZGVudGl0eSIsImNvbXB1dGVkIiwiZml4ZWRMZW5DTFJUeXBlIiwic3BhcnNlQ29sdW1uU2V0IiwiaGlkZGVuIiwia2V5IiwibnVsbGFibGVVbmtub3duIiwiRE9ORV9TVEFUVVMiLCJGSU5BTCIsIk1PUkUiLCJFUlJPUiIsIklOWEFDVCIsIkNPVU5UIiwiQVRUTiIsIlNSVkVSUk9SIiwicm93VG9rZW5CdWZmZXIiLCJCdWZmZXIiLCJmcm9tIiwiVE9LRU5fVFlQRSIsIlJPVyIsInRleHRQb2ludGVyQW5kVGltZXN0YW1wQnVmZmVyIiwidGV4dFBvaW50ZXJOdWxsQnVmZmVyIiwiUm93VHJhbnNmb3JtIiwiVHJhbnNmb3JtIiwiY29uc3RydWN0b3IiLCJidWxrTG9hZCIsIndyaXRhYmxlT2JqZWN0TW9kZSIsImNvbHVtbk1ldGFkYXRhV3JpdHRlbiIsIm1haW5PcHRpb25zIiwiY29sdW1ucyIsIm9wdGlvbnMiLCJfdHJhbnNmb3JtIiwicm93IiwiX2VuY29kaW5nIiwiY2FsbGJhY2siLCJwdXNoIiwiZ2V0Q29sTWV0YURhdGEiLCJpIiwibGVuZ3RoIiwiYyIsInZhbHVlIiwiQXJyYXkiLCJpc0FycmF5Iiwib2JqTmFtZSIsInR5cGUiLCJ2YWxpZGF0ZSIsImNvbGxhdGlvbiIsImVycm9yIiwicGFyYW1ldGVyIiwic2NhbGUiLCJwcmVjaXNpb24iLCJuYW1lIiwiZ2VuZXJhdGVQYXJhbWV0ZXJMZW5ndGgiLCJjaHVuayIsImdlbmVyYXRlUGFyYW1ldGVyRGF0YSIsInByb2Nlc3MiLCJuZXh0VGljayIsIl9mbHVzaCIsImNyZWF0ZURvbmVUb2tlbiIsIkJ1bGtMb2FkIiwiRXZlbnRFbWl0dGVyIiwidGFibGUiLCJjb25uZWN0aW9uT3B0aW9ucyIsImNoZWNrQ29uc3RyYWludHMiLCJmaXJlVHJpZ2dlcnMiLCJrZWVwTnVsbHMiLCJsb2NrVGFibGUiLCJvcmRlciIsIlR5cGVFcnJvciIsImNvbHVtbiIsImRpcmVjdGlvbiIsIk9iamVjdCIsImVudHJpZXMiLCJjYW5jZWxlZCIsImV4ZWN1dGlvblN0YXJ0ZWQiLCJzdHJlYW1pbmdNb2RlIiwidGltZW91dCIsImNvbHVtbnNCeU5hbWUiLCJmaXJzdFJvd1dyaXR0ZW4iLCJyb3dUb1BhY2tldFRyYW5zZm9ybSIsImJ1bGtPcHRpb25zIiwiY29ubmVjdGlvbiIsInJvd3MiLCJyc3QiLCJyb3dDb3VudCIsInVuZGVmaW5lZCIsImFkZENvbHVtbiIsIm91dHB1dCIsIkVycm9yIiwiaWQiLCJyZXNvbHZlTGVuZ3RoIiwicmVzb2x2ZVByZWNpc2lvbiIsInJlc29sdmVTY2FsZSIsImFkZFJvdyIsImlucHV0Iiwid3JpdGUiLCJtYXAiLCJnZXRPcHRpb25zU3FsIiwiYWRkT3B0aW9ucyIsIm9yZGVyQ29sdW1ucyIsImpvaW4iLCJnZXRCdWxrSW5zZXJ0U3FsIiwic3FsIiwibGVuIiwiZGVjbGFyYXRpb24iLCJnZXRUYWJsZUNyZWF0aW9uU3FsIiwidEJ1ZiIsIldyaXRhYmxlVHJhY2tpbmdCdWZmZXIiLCJ3cml0ZVVJbnQ4IiwiQ09MTUVUQURBVEEiLCJ3cml0ZVVJbnQxNkxFIiwiaiIsInRkc1ZlcnNpb24iLCJ3cml0ZVVJbnQzMkxFIiwiZmxhZ3MiLCJ3cml0ZUJ1ZmZlciIsImdlbmVyYXRlVHlwZUluZm8iLCJoYXNUYWJsZU5hbWUiLCJ3cml0ZVVzVmFyY2hhciIsIndyaXRlQlZhcmNoYXIiLCJkYXRhIiwic2V0VGltZW91dCIsIkRPTkUiLCJzdGF0dXMiLCJnZXRSb3dTdHJlYW0iLCJjYW5jZWwiLCJlbWl0IiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBOztBQUNBOztBQUdBOztBQUNBOzs7O0FBS0E7QUFDQTtBQUNBO0FBQ0EsTUFBTUEsS0FBSyxHQUFHO0FBQ1pDLEVBQUFBLFFBQVEsRUFBRSxL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QTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUNFSSxFQUFBQSxZQUFZLEdBQUc7QUFDYixRQUFJLEtBQUs5QyxlQUFULEVBQTBCO0FBQ3hCLFlBQU0sSUFBSVUsS0FBSixDQUFVLGdHQUFWLENBQU47QUFDRDs7QUFDRCxRQUFJLEtBQUtkLGdCQUFULEVBQTJCO0FBQ3pCLFlBQU0sSUFBSWMsS0FBSixDQUFVLDRFQUFWLENBQU47QUFDRDs7QUFDRCxTQUFLYixhQUFMLEdBQXFCLElBQXJCO0FBRUEsV0FBTyxLQUFLSSxvQkFBWjtBQUNEO0FBRUQ7QUFDRjtBQUNBOzs7QUFDRThDLEVBQUFBLE1BQU0sR0FBRztBQUNQLFFBQUksS0FBS3BELFFBQVQsRUFBbUI7QUFDakI7QUFDRDs7QUFFRCxTQUFLQSxRQUFMLEdBQWdCLElBQWhCO0FBQ0EsU0FBS3FELElBQUwsQ0FBVSxRQUFWO0FBQ0Q7O0FBamRpQzs7ZUFvZHJCbkUsUTs7QUFDZm9FLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQnJFLFFBQWpCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXZlbnRFbWl0dGVyIH0gZnJvbSAnZXZlbnRzJztcbmltcG9ydCBXcml0YWJsZVRyYWNraW5nQnVmZmVyIGZyb20gJy4vdHJhY2tpbmctYnVmZmVyL3dyaXRhYmxlLXRyYWNraW5nLWJ1ZmZlcic7XG5pbXBvcnQgQ29ubmVjdGlvbiwgeyBJbnRlcm5hbENvbm5lY3Rpb25PcHRpb25zIH0gZnJvbSAnLi9jb25uZWN0aW9uJztcblxuaW1wb3J0IHsgVHJhbnNmb3JtIH0gZnJvbSAnc3RyZWFtJztcbmltcG9ydCB7IFRZUEUgYXMgVE9LRU5fVFlQRSB9IGZyb20gJy4vdG9rZW4vdG9rZW4nO1xuXG5pbXBvcnQgeyBEYXRhVHlwZSwgUGFyYW1ldGVyIH0gZnJvbSAnLi9kYXRhLXR5cGUnO1xuaW1wb3J0IHsgQ29sbGF0aW9uIH0gZnJvbSAnLi9jb2xsYXRpb24nO1xuXG4vKipcbiAqIEBwcml2YXRlXG4gKi9cbmNvbnN0IEZMQUdTID0ge1xuICBudWxsYWJsZTogMSA8PCAwLFxuICBjYXNlU2VuOiAxIDw8IDEsXG4gIHVwZGF0ZWFibGVSZWFkV3JpdGU6IDEgPDwgMixcbiAgdXBkYXRlYWJsZVVua25vd246IDEgPDwgMyxcbiAgaWRlbnRpdHk6IDEgPDwgNCxcbiAgY29tcHV0ZWQ6IDEgPDwgNSwgLy8gaW50cm9kdWNlZCBpbiBURFMgNy4yXG4gIGZpeGVkTGVuQ0xSVHlwZTogMSA8PCA4LCAvLyBpbnRyb2R1Y2VkIGluIFREUyA3LjJcbiAgc3BhcnNlQ29sdW1uU2V0OiAxIDw8IDEwLCAvLyBpbnRyb2R1Y2VkIGluIFREUyA3LjMuQlxuICBoaWRkZW46IDEgPDwgMTMsIC8vIGludHJvZHVjZWQgaW4gVERTIDcuMlxuICBrZXk6IDEgPDwgMTQsIC8vIGludHJvZHVjZWQgaW4gVERTIDcuMlxuICBudWxsYWJsZVVua25vd246IDEgPDwgMTUgLy8gaW50cm9kdWNlZCBpbiBURFMgNy4yXG59O1xuXG4vKipcbiAqIEBwcml2YXRlXG4gKi9cbmNvbnN0IERPTkVfU1RBVFVTID0ge1xuICBGSU5BTDogMHgwMCxcbiAgTU9SRTogMHgxLFxuICBFUlJPUjogMHgyLFxuICBJTlhBQ1Q6IDB4NCxcbiAgQ09VTlQ6IDB4MTAsXG4gIEFUVE46IDB4MjAsXG4gIFNSVkVSUk9SOiAweDEwMFxufTtcblxuLyoqXG4gKiBAcHJpdmF0ZVxuICovXG5pbnRlcmZhY2UgSW50ZXJuYWxPcHRpb25zIHtcbiAgY2hlY2tDb25zdHJhaW50czogYm9vbGVhbjtcbiAgZmlyZVRyaWdnZXJzOiBib29sZWFuO1xuICBrZWVwTnVsbHM6IGJvb2xlYW47XG4gIGxvY2tUYWJsZTogYm9vbGVhbjtcbiAgb3JkZXI6IHsgW2NvbHVtbk5hbWU6IHN0cmluZ106ICdBU0MnIHwgJ0RFU0MnIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBIb25vcnMgY29uc3RyYWludHMgZHVyaW5nIGJ1bGsgbG9hZCwgdXNpbmcgVC1TUUxcbiAgICogW0NIRUNLX0NPTlNUUkFJTlRTXShodHRwczovL3RlY2huZXQubWljcm9zb2Z0LmNvbS9lbi11cy9saWJyYXJ5L21zMTg2MjQ3KHY9c3FsLjEwNSkuYXNweCkuXG4gICAqIChkZWZhdWx0OiBgZmFsc2VgKVxuICAgKi9cbiAgY2hlY2tDb25zdHJhaW50cz86IEludGVybmFsT3B0aW9uc1snY2hlY2tDb25zdHJhaW50cyddIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBIb25vcnMgaW5zZXJ0IHRyaWdnZXJzIGR1cmluZyBidWxrIGxvYWQsIHVzaW5nIHRoZSBULVNRTCBbRklSRV9UUklHR0VSU10oaHR0cHM6Ly90ZWNobmV0Lm1pY3Jvc29mdC5jb20vZW4tdXMvbGlicmFyeS9tczE4NzY0MCh2PXNxbC4xMDUpLmFzcHgpLiAoZGVmYXVsdDogYGZhbHNlYClcbiAgICovXG4gIGZpcmVUcmlnZ2Vycz86IEludGVybmFsT3B0aW9uc1snZmlyZVRyaWdnZXJzJ10gfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIEhvbm9ycyBudWxsIHZhbHVlIHBhc3NlZCwgaWdub3JlcyB0aGUgZGVmYXVsdCB2YWx1ZXMgc2V0IG9uIHRhYmxlLCB1c2luZyBULVNRTCBbS0VFUF9OVUxMU10oaHR0cHM6Ly9tc2RuLm1pY3Jvc29mdC5jb20vZW4tdXMvbGlicmFyeS9tczE4Nzg4Nyh2PXNxbC4xMjApLmFzcHgpLiAoZGVmYXVsdDogYGZhbHNlYClcbiAgICovXG4gIGtlZXBOdWxscz86IEludGVybmFsT3B0aW9uc1sna2VlcE51bGxzJ10gfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIFBsYWNlcyBhIGJ1bGsgdXBkYXRlKEJVKSBsb2NrIG9uIHRhYmxlIHdoaWxlIHBlcmZvcm1pbmcgYnVsayBsb2FkLCB1c2luZyBULVNRTCBbVEFCTE9DS10oaHR0cHM6Ly90ZWNobmV0Lm1pY3Jvc29mdC5jb20vZW4tdXMvbGlicmFyeS9tczE4MDg3Nih2PXNxbC4xMDUpLmFzcHgpLiAoZGVmYXVsdDogYGZhbHNlYClcbiAgICovXG4gIGxvY2tUYWJsZT86IEludGVybmFsT3B0aW9uc1snbG9ja1RhYmxlJ10gfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyB0aGUgb3JkZXJpbmcgb2YgdGhlIGRhdGEgdG8gcG9zc2libHkgaW5jcmVhc2UgYnVsayBpbnNlcnQgcGVyZm9ybWFuY2UsIHVzaW5nIFQtU1FMIFtPUkRFUl0oaHR0cHM6Ly9kb2NzLm1pY3Jvc29mdC5jb20vZW4tdXMvcHJldmlvdXMtdmVyc2lvbnMvc3FsL3NxbC1zZXJ2ZXItMjAwOC1yMi9tczE3NzQ2OCh2PXNxbC4xMDUpKS4gKGRlZmF1bHQ6IGB7fWApXG4gICAqL1xuICBvcmRlcj86IEludGVybmFsT3B0aW9uc1snb3JkZXInXSB8IHVuZGVmaW5lZDtcbn1cblxuXG5leHBvcnQgdHlwZSBDYWxsYmFjayA9XG4gIC8qKlxuICAgKiBBIGZ1bmN0aW9uIHdoaWNoIHdpbGwgYmUgY2FsbGVkIGFmdGVyIHRoZSBbW0J1bGtMb2FkXV0gZmluaXNoZXMgZXhlY3V0aW5nLlxuICAgKlxuICAgKiBAcGFyYW0gcm93Q291bnQgdGhlIG51bWJlciBvZiByb3dzIGluc2VydGVkXG4gICAqL1xuICAoZXJyOiBFcnJvciB8IHVuZGVmaW5lZCB8IG51bGwsIHJvd0NvdW50PzogbnVtYmVyKSA9PiB2b2lkO1xuXG5pbnRlcmZhY2UgQ29sdW1uIGV4dGVuZHMgUGFyYW1ldGVyIHtcbiAgb2JqTmFtZTogc3RyaW5nO1xuICBjb2xsYXRpb246IENvbGxhdGlvbiB8IHVuZGVmaW5lZDtcbn1cblxuaW50ZXJmYWNlIENvbHVtbk9wdGlvbnMge1xuICBvdXRwdXQ/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBGb3IgVmFyQ2hhciwgTlZhckNoYXIsIFZhckJpbmFyeS4gVXNlIGxlbmd0aCBhcyBgSW5maW5pdHlgIGZvciBWYXJDaGFyKG1heCksIE5WYXJDaGFyKG1heCkgYW5kIFZhckJpbmFyeShtYXgpLlxuICAgKi9cbiAgbGVuZ3RoPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBGb3IgTnVtZXJpYywgRGVjaW1hbC5cbiAgICovXG4gIHByZWNpc2lvbj86IG51bWJlcjtcblxuICAvKipcbiAgICogRm9yIE51bWVyaWMsIERlY2ltYWwsIFRpbWUsIERhdGVUaW1lMiwgRGF0ZVRpbWVPZmZzZXQuXG4gICAqL1xuICBzY2FsZT86IG51bWJlcjtcblxuICAvKipcbiAgICogSWYgdGhlIG5hbWUgb2YgdGhlIGNvbHVtbiBpcyBkaWZmZXJlbnQgZnJvbSB0aGUgbmFtZSBvZiB0aGUgcHJvcGVydHkgZm91bmQgb24gYHJvd09iamAgYXJndW1lbnRzIHBhc3NlZCB0byBbW2FkZFJvd11dLCB0aGVuIHlvdSBjYW4gdXNlIHRoaXMgb3B0aW9uIHRvIHNwZWNpZnkgdGhlIHByb3BlcnR5IG5hbWUuXG4gICAqL1xuICBvYmpOYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgd2hldGhlciB0aGUgY29sdW1uIGFjY2VwdHMgTlVMTCB2YWx1ZXMuXG4gICAqL1xuICBudWxsYWJsZT86IGJvb2xlYW47XG59XG5cbmNvbnN0IHJvd1Rva2VuQnVmZmVyID0gQnVmZmVyLmZyb20oWyBUT0tFTl9UWVBFLlJPVyBdKTtcbmNvbnN0IHRleHRQb2ludGVyQW5kVGltZXN0YW1wQnVmZmVyID0gQnVmZmVyLmZyb20oW1xuICAvLyBUZXh0UG9pbnRlciBsZW5ndGhcbiAgMHgxMCxcblxuICAvLyBUZXh0UG9pbnRlclxuICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLFxuXG4gIC8vIFRpbWVzdGFtcFxuICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwXG5dKTtcbmNvbnN0IHRleHRQb2ludGVyTnVsbEJ1ZmZlciA9IEJ1ZmZlci5mcm9tKFsweDAwXSk7XG5cbi8vIEEgdHJhbnNmb3JtIHRoYXQgY29udmVydHMgcm93cyB0byBwYWNrZXRzLlxuY2xhc3MgUm93VHJhbnNmb3JtIGV4dGVuZHMgVHJhbnNmb3JtIHtcbiAgLyoqXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBjb2x1bW5NZXRhZGF0YVdyaXR0ZW46IGJvb2xlYW47XG4gIC8qKlxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgYnVsa0xvYWQ6IEJ1bGtMb2FkO1xuICAvKipcbiAgICogQHByaXZhdGVcbiAgICovXG4gIG1haW5PcHRpb25zOiBCdWxrTG9hZFsnb3B0aW9ucyddO1xuICAvKipcbiAgICogQHByaXZhdGVcbiAgICovXG4gIGNvbHVtbnM6IEJ1bGtMb2FkWydjb2x1bW5zJ107XG5cbiAgLyoqXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBjb25zdHJ1Y3RvcihidWxrTG9hZDogQnVsa0xvYWQpIHtcbiAgICBzdXBlcih7IHdyaXRhYmxlT2JqZWN0TW9kZTogdHJ1ZSB9KTtcblxuICAgIHRoaXMuYnVsa0xvYWQgPSBidWxrTG9hZDtcbiAgICB0aGlzLm1haW5PcHRpb25zID0gYnVsa0xvYWQub3B0aW9ucztcbiAgICB0aGlzLmNvbHVtbnMgPSBidWxrTG9hZC5jb2x1bW5zO1xuXG4gICAgdGhpcy5jb2x1bW5NZXRhZGF0YVdyaXR0ZW4gPSBmYWxzZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgX3RyYW5zZm9ybShyb3c6IEFycmF5PHVua25vd24+IHwgeyBbY29sTmFtZTogc3RyaW5nXTogdW5rbm93biB9LCBfZW5jb2Rpbmc6IHN0cmluZywgY2FsbGJhY2s6IChlcnJvcj86IEVycm9yKSA9PiB2b2lkKSB7XG4gICAgaWYgKCF0aGlzLmNvbHVtbk1ldGFkYXRhV3JpdHRlbikge1xuICAgICAgdGhpcy5wdXNoKHRoaXMuYnVsa0xvYWQuZ2V0Q29sTWV0YURhdGEoKSk7XG4gICAgICB0aGlzLmNvbHVtbk1ldGFkYXRhV3JpdHRlbiA9IHRydWU7XG4gICAgfVxuXG4gICAgdGhpcy5wdXNoKHJvd1Rva2VuQnVmZmVyKTtcblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5jb2x1bW5zLmxlbmd0aDsgaSsrKSB7XG4gICAgICBjb25zdCBjID0gdGhpcy5jb2x1bW5zW2ldO1xuICAgICAgbGV0IHZhbHVlID0gQXJyYXkuaXNBcnJheShyb3cpID8gcm93W2ldIDogcm93W2Mub2JqTmFtZV07XG5cbiAgICAgIHRyeSB7XG4gICAgICAgIHZhbHVlID0gYy50eXBlLnZhbGlkYXRlKHZhbHVlLCBjLmNvbGxhdGlvbik7XG4gICAgICB9IGNhdGNoIChlcnJvcjogYW55KSB7XG4gICAgICAgIHJldHVybiBjYWxsYmFjayhlcnJvcik7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHBhcmFtZXRlciA9IHtcbiAgICAgICAgbGVuZ3RoOiBjLmxlbmd0aCxcbiAgICAgICAgc2NhbGU6IGMuc2NhbGUsXG4gICAgICAgIHByZWNpc2lvbjogYy5wcmVjaXNpb24sXG4gICAgICAgIHZhbHVlOiB2YWx1ZVxuICAgICAgfTtcblxuICAgICAgaWYgKGMudHlwZS5uYW1lID09PSAnVGV4dCcgfHwgYy50eXBlLm5hbWUgPT09ICdJbWFnZScgfHwgYy50eXBlLm5hbWUgPT09ICdOVGV4dCcpIHtcbiAgICAgICAgaWYgKHZhbHVlID09IG51bGwpIHtcbiAgICAgICAgICB0aGlzLnB1c2godGV4dFBvaW50ZXJOdWxsQnVmZmVyKTtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMucHVzaCh0ZXh0UG9pbnRlckFuZFRpbWVzdGFtcEJ1ZmZlcik7XG4gICAgICB9XG5cbiAgICAgIHRoaXMucHVzaChjLnR5cGUuZ2VuZXJhdGVQYXJhbWV0ZXJMZW5ndGgocGFyYW1ldGVyLCB0aGlzLm1haW5PcHRpb25zKSk7XG4gICAgICBmb3IgKGNvbnN0IGNodW5rIG9mIGMudHlwZS5nZW5lcmF0ZVBhcmFtZXRlckRhdGEocGFyYW1ldGVyLCB0aGlzLm1haW5PcHRpb25zKSkge1xuICAgICAgICB0aGlzLnB1c2goY2h1bmspO1xuICAgICAgfVxuICAgIH1cblxuICAgIHByb2Nlc3MubmV4dFRpY2soY2FsbGJhY2spO1xuICB9XG5cbiAgLyoqXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBfZmx1c2goY2FsbGJhY2s6ICgpID0+IHZvaWQpIHtcbiAgICB0aGlzLnB1c2godGhpcy5idWxrTG9hZC5jcmVhdGVEb25lVG9rZW4oKSk7XG5cbiAgICBwcm9jZXNzLm5leHRUaWNrKGNhbGxiYWNrKTtcbiAgfVxufVxuXG4vKipcbiAqIEEgQnVsa0xvYWQgaW5zdGFuY2UgaXMgdXNlZCB0byBwZXJmb3JtIGEgYnVsayBpbnNlcnQuXG4gKlxuICogVXNlIFtbQ29ubmVjdGlvbi5uZXdCdWxrTG9hZF1dIHRvIGNyZWF0ZSBhIG5ldyBpbnN0YW5jZSwgYW5kIFtbQ29ubmVjdGlvbi5leGVjQnVsa0xvYWRdXSB0byBleGVjdXRlIGl0LlxuICpcbiAqIEV4YW1wbGUgb2YgQnVsa0xvYWQgVXNhZ2VzOlxuICpcbiAqIGBgYGpzXG4gKiAvLyBvcHRpb25hbCBCdWxrTG9hZCBvcHRpb25zXG4gKiBjb25zdCBvcHRpb25zID0geyBrZWVwTnVsbHM6IHRydWUgfTtcbiAqXG4gKiAvLyBpbnN0YW50aWF0ZSAtIHByb3ZpZGUgdGhlIHRhYmxlIHdoZXJlIHlvdSdsbCBiZSBpbnNlcnRpbmcgdG8sIG9wdGlvbnMgYW5kIGEgY2FsbGJhY2tcbiAqIGNvbnN0IGJ1bGtMb2FkID0gY29ubmVjdGlvbi5uZXdCdWxrTG9hZCgnTXlUYWJsZScsIG9wdGlvbnMsIChlcnJvciwgcm93Q291bnQpID0+IHtcbiAqICAgY29uc29sZS5sb2coJ2luc2VydGVkICVkIHJvd3MnLCByb3dDb3VudCk7XG4gKiB9KTtcbiAqXG4gKiAvLyBzZXR1cCB5b3VyIGNvbHVtbnMgLSBhbHdheXMgaW5kaWNhdGUgd2hldGhlciB0aGUgY29sdW1uIGlzIG51bGxhYmxlXG4gKiBidWxrTG9hZC5hZGRDb2x1bW4oJ215SW50JywgVFlQRVMuSW50LCB7IG51bGxhYmxlOiBmYWxzZSB9KTtcbiAqIGJ1bGtMb2FkLmFkZENvbHVtbignbXlTdHJpbmcnLCBUWVBFUy5OVmFyQ2hhciwgeyBsZW5ndGg6IDUwLCBudWxsYWJsZTogdHJ1ZSB9KTtcbiAqXG4gKiAvLyBleGVjdXRlXG4gKiBjb25uZWN0aW9uLmV4ZWNCdWxrTG9hZChidWxrTG9hZCwgW1xuICogICB7IG15SW50OiA3LCBteVN0cmluZzogJ2hlbGxvJyB9LFxuICogICB7IG15SW50OiAyMywgbXlTdHJpbmc6ICd3b3JsZCcgfVxuICogXSk7XG4gKiBgYGBcbiAqL1xuY2xhc3MgQnVsa0xvYWQgZXh0ZW5kcyBFdmVudEVtaXR0ZXIge1xuICAvKipcbiAgICogQHByaXZhdGVcbiAgICovXG4gIGVycm9yOiBFcnJvciB8IHVuZGVmaW5lZDtcbiAgLyoqXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBjYW5jZWxlZDogYm9vbGVhbjtcbiAgLyoqXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBleGVjdXRpb25TdGFydGVkOiBib29sZWFuO1xuICAvKipcbiAgICogQHByaXZhdGVcbiAgICovXG4gIHN0cmVhbWluZ01vZGU6IGJvb2xlYW47XG4gIC8qKlxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgdGFibGU6IHN0cmluZztcbiAgLyoqXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICB0aW1lb3V0OiBudW1iZXIgfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBvcHRpb25zOiBJbnRlcm5hbENvbm5lY3Rpb25PcHRpb25zO1xuICAvKipcbiAgICogQHByaXZhdGVcbiAgICovXG4gIGNhbGxiYWNrOiBDYWxsYmFjaztcblxuICAvKipcbiAgICogQHByaXZhdGVcbiAgICovXG4gIGNvbHVtbnM6IEFycmF5PENvbHVtbj47XG4gIC8qKlxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgY29sdW1uc0J5TmFtZTogeyBbbmFtZTogc3RyaW5nXTogQ29sdW1uIH07XG5cbiAgLyoqXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBmaXJzdFJvd1dyaXR0ZW46IGJvb2xlYW47XG4gIC8qKlxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgcm93VG9QYWNrZXRUcmFuc2Zvcm06IFJvd1RyYW5zZm9ybTtcblxuICAvKipcbiAgICogQHByaXZhdGVcbiAgICovXG4gIGJ1bGtPcHRpb25zOiBJbnRlcm5hbE9wdGlvbnM7XG5cbiAgLyoqXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBjb25uZWN0aW9uOiBDb25uZWN0aW9uIHwgdW5kZWZpbmVkO1xuICAvKipcbiAgICogQHByaXZhdGVcbiAgICovXG4gIHJvd3M6IEFycmF5PGFueT4gfCB1bmRlZmluZWQ7XG4gIC8qKlxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgcnN0OiBBcnJheTxhbnk+IHwgdW5kZWZpbmVkO1xuICAvKipcbiAgICogQHByaXZhdGVcbiAgICovXG4gIHJvd0NvdW50OiBudW1iZXIgfCB1bmRlZmluZWQ7XG5cbiAgY29sbGF0aW9uOiBDb2xsYXRpb24gfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBjb25zdHJ1Y3Rvcih0YWJsZTogc3RyaW5nLCBjb2xsYXRpb246IENvbGxhdGlvbiB8IHVuZGVmaW5lZCwgY29ubmVjdGlvbk9wdGlvbnM6IEludGVybmFsQ29ubmVjdGlvbk9wdGlvbnMsIHtcbiAgICBjaGVja0NvbnN0cmFpbnRzID0gZmFsc2UsXG4gICAgZmlyZVRyaWdnZXJzID0gZmFsc2UsXG4gICAga2VlcE51bGxzID0gZmFsc2UsXG4gICAgbG9ja1RhYmxlID0gZmFsc2UsXG4gICAgb3JkZXIgPSB7fSxcbiAgfTogT3B0aW9ucywgY2FsbGJhY2s6IENhbGxiYWNrKSB7XG4gICAgaWYgKHR5cGVvZiBjaGVja0NvbnN0cmFpbnRzICE9PSAnYm9vbGVhbicpIHtcbiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ1RoZSBcIm9wdGlvbnMuY2hlY2tDb25zdHJhaW50c1wiIHByb3BlcnR5IG11c3QgYmUgb2YgdHlwZSBib29sZWFuLicpO1xuICAgIH1cblxuICAgIGlmICh0eXBlb2YgZmlyZVRyaWdnZXJzICE9PSAnYm9vbGVhbicpIHtcbiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ1RoZSBcIm9wdGlvbnMuZmlyZVRyaWdnZXJzXCIgcHJvcGVydHkgbXVzdCBiZSBvZiB0eXBlIGJvb2xlYW4uJyk7XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBrZWVwTnVsbHMgIT09ICdib29sZWFuJykge1xuICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignVGhlIFwib3B0aW9ucy5rZWVwTnVsbHNcIiBwcm9wZXJ0eSBtdXN0IGJlIG9mIHR5cGUgYm9vbGVhbi4nKTtcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIGxvY2tUYWJsZSAhPT0gJ2Jvb2xlYW4nKSB7XG4gICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdUaGUgXCJvcHRpb25zLmxvY2tUYWJsZVwiIHByb3BlcnR5IG11c3QgYmUgb2YgdHlwZSBib29sZWFuLicpO1xuICAgIH1cblxuICAgIGlmICh0eXBlb2Ygb3JkZXIgIT09ICdvYmplY3QnIHx8IG9yZGVyID09PSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdUaGUgXCJvcHRpb25zLm9yZGVyXCIgcHJvcGVydHkgbXVzdCBiZSBvZiB0eXBlIG9iamVjdC4nKTtcbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IFtjb2x1bW4sIGRpcmVjdGlvbl0gb2YgT2JqZWN0LmVudHJpZXMob3JkZXIpKSB7XG4gICAgICBpZiAoZGlyZWN0aW9uICE9PSAnQVNDJyAmJiBkaXJlY3Rpb24gIT09ICdERVNDJykge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdUaGUgdmFsdWUgb2YgdGhlIFwiJyArIGNvbHVtbiArICdcIiBrZXkgaW4gdGhlIFwib3B0aW9ucy5vcmRlclwiIG9iamVjdCBtdXN0IGJlIGVpdGhlciBcIkFTQ1wiIG9yIFwiREVTQ1wiLicpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHN1cGVyKCk7XG5cbiAgICB0aGlzLmVycm9yID0gdW5kZWZpbmVkO1xuICAgIHRoaXMuY2FuY2VsZWQgPSBmYWxzZTtcbiAgICB0aGlzLmV4ZWN1dGlvblN0YXJ0ZWQgPSBmYWxzZTtcblxuICAgIHRoaXMuY29sbGF0aW9uID0gY29sbGF0aW9uO1xuXG4gICAgdGhpcy50YWJsZSA9IHRhYmxlO1xuICAgIHRoaXMub3B0aW9ucyA9IGNvbm5lY3Rpb25PcHRpb25zO1xuICAgIHRoaXMuY2FsbGJhY2sgPSBjYWxsYmFjaztcbiAgICB0aGlzLmNvbHVtbnMgPSBbXTtcbiAgICB0aGlzLmNvbHVtbnNCeU5hbWUgPSB7fTtcbiAgICB0aGlzLmZpcnN0Um93V3JpdHRlbiA9IGZhbHNlO1xuICAgIHRoaXMuc3RyZWFtaW5nTW9kZSA9IGZhbHNlO1xuXG4gICAgdGhpcy5yb3dUb1BhY2tldFRyYW5zZm9ybSA9IG5ldyBSb3dUcmFuc2Zvcm0odGhpcyk7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbm8tdXNlLWJlZm9yZS1kZWZpbmVcblxuICAgIHRoaXMuYnVsa09wdGlvbnMgPSB7IGNoZWNrQ29uc3RyYWludHMsIGZpcmVUcmlnZ2Vycywga2VlcE51bGxzLCBsb2NrVGFibGUsIG9yZGVyIH07XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhIGNvbHVtbiB0byB0aGUgYnVsayBsb2FkLlxuICAgKlxuICAgKiBUaGUgY29sdW1uIGRlZmluaXRpb25zIHNob3VsZCBtYXRjaCB0aGUgdGFibGUgeW91IGFyZSB0cnlpbmcgdG8gaW5zZXJ0IGludG8uXG4gICAqIEF0dGVtcHRpbmcgdG8gY2FsbCBhZGRDb2x1bW4gYWZ0ZXIgdGhlIGZpcnN0IHJvdyBoYXMgYmVlbiBhZGRlZCB3aWxsIHRocm93IGFuIGV4Y2VwdGlvbi5cbiAgICpcbiAgICogYGBganNcbiAgICogYnVsa0xvYWQuYWRkQ29sdW1uKCdNeUludENvbHVtbicsIFRZUEVTLkludCwgeyBudWxsYWJsZTogZmFsc2UgfSk7XG4gICAqIGBgYFxuICAgKlxuICAgKiBAcGFyYW0gbmFtZSBUaGUgbmFtZSBvZiB0aGUgY29sdW1uLlxuICAgKiBAcGFyYW0gdHlwZSBPbmUgb2YgdGhlIHN1cHBvcnRlZCBgZGF0YSB0eXBlc2AuXG4gICAqIEBwYXJhbSBfX25hbWVkUGFyYW1ldGVycyBBZGRpdGlvbmFsIGNvbHVtbiB0eXBlIGluZm9ybWF0aW9uLiBBdCBhIG1pbmltdW0sIGBudWxsYWJsZWAgbXVzdCBiZSBzZXQgdG8gdHJ1ZSBvciBmYWxzZS5cbiAgICogQHBhcmFtIGxlbmd0aCBGb3IgVmFyQ2hhciwgTlZhckNoYXIsIFZhckJpbmFyeS4gVXNlIGxlbmd0aCBhcyBgSW5maW5pdHlgIGZvciBWYXJDaGFyKG1heCksIE5WYXJDaGFyKG1heCkgYW5kIFZhckJpbmFyeShtYXgpLlxuICAgKiBAcGFyYW0gbnVsbGFibGUgSW5kaWNhdGVzIHdoZXRoZXIgdGhlIGNvbHVtbiBhY2NlcHRzIE5VTEwgdmFsdWVzLlxuICAgKiBAcGFyYW0gb2JqTmFtZSBJZiB0aGUgbmFtZSBvZiB0aGUgY29sdW1uIGlzIGRpZmZlcmVudCBmcm9tIHRoZSBuYW1lIG9mIHRoZSBwcm9wZXJ0eSBmb3VuZCBvbiBgcm93T2JqYCBhcmd1bWVudHMgcGFzc2VkIHRvIFtbYWRkUm93XV0gb3IgW1tDb25uZWN0aW9uLmV4ZWNCdWxrTG9hZF1dLCB0aGVuIHlvdSBjYW4gdXNlIHRoaXMgb3B0aW9uIHRvIHNwZWNpZnkgdGhlIHByb3BlcnR5IG5hbWUuXG4gICAqIEBwYXJhbSBwcmVjaXNpb24gRm9yIE51bWVyaWMsIERlY2ltYWwuXG4gICAqIEBwYXJhbSBzY2FsZSBGb3IgTnVtZXJpYywgRGVjaW1hbCwgVGltZSwgRGF0ZVRpbWUyLCBEYXRlVGltZU9mZnNldC5cbiAgKi9cbiAgYWRkQ29sdW1uKG5hbWU6IHN0cmluZywgdHlwZTogRGF0YVR5cGUsIHsgb3V0cHV0ID0gZmFsc2UsIGxlbmd0aCwgcHJlY2lzaW9uLCBzY2FsZSwgb2JqTmFtZSA9IG5hbWUsIG51bGxhYmxlID0gdHJ1ZSB9OiBDb2x1bW5PcHRpb25zKSB7XG4gICAgaWYgKHRoaXMuZmlyc3RSb3dXcml0dGVuKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0NvbHVtbnMgY2Fubm90IGJlIGFkZGVkIHRvIGJ1bGsgaW5zZXJ0IGFmdGVyIHRoZSBmaXJzdCByb3cgaGFzIGJlZW4gd3JpdHRlbi4nKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuZXhlY3V0aW9uU3RhcnRlZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdDb2x1bW5zIGNhbm5vdCBiZSBhZGRlZCB0byBidWxrIGluc2VydCBhZnRlciBleGVjdXRpb24gaGFzIHN0YXJ0ZWQuJyk7XG4gICAgfVxuXG4gICAgY29uc3QgY29sdW1uOiBDb2x1bW4gPSB7XG4gICAgICB0eXBlOiB0eXBlLFxuICAgICAgbmFtZTogbmFtZSxcbiAgICAgIHZhbHVlOiBudWxsLFxuICAgICAgb3V0cHV0OiBvdXRwdXQsXG4gICAgICBsZW5ndGg6IGxlbmd0aCxcbiAgICAgIHByZWNpc2lvbjogcHJlY2lzaW9uLFxuICAgICAgc2NhbGU6IHNjYWxlLFxuICAgICAgb2JqTmFtZTogb2JqTmFtZSxcbiAgICAgIG51bGxhYmxlOiBudWxsYWJsZSxcbiAgICAgIGNvbGxhdGlvbjogdGhpcy5jb2xsYXRpb25cbiAgICB9O1xuXG4gICAgaWYgKCh0eXBlLmlkICYgMHgzMCkgPT09IDB4MjApIHtcbiAgICAgIGlmIChjb2x1bW4ubGVuZ3RoID09IG51bGwgJiYgdHlwZS5yZXNvbHZlTGVuZ3RoKSB7XG4gICAgICAgIGNvbHVtbi5sZW5ndGggPSB0eXBlLnJlc29sdmVMZW5ndGgoY29sdW1uKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodHlwZS5yZXNvbHZlUHJlY2lzaW9uICYmIGNvbHVtbi5wcmVjaXNpb24gPT0gbnVsbCkge1xuICAgICAgY29sdW1uLnByZWNpc2lvbiA9IHR5cGUucmVzb2x2ZVByZWNpc2lvbihjb2x1bW4pO1xuICAgIH1cblxuICAgIGlmICh0eXBlLnJlc29sdmVTY2FsZSAmJiBjb2x1bW4uc2NhbGUgPT0gbnVsbCkge1xuICAgICAgY29sdW1uLnNjYWxlID0gdHlwZS5yZXNvbHZlU2NhbGUoY29sdW1uKTtcbiAgICB9XG5cbiAgICB0aGlzLmNvbHVtbnMucHVzaChjb2x1bW4pO1xuXG4gICAgdGhpcy5jb2x1bW5zQnlOYW1lW25hbWVdID0gY29sdW1uO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYSByb3cgdG8gdGhlIGJ1bGsgaW5zZXJ0LlxuICAgKlxuICAgKiBgYGBqc1xuICAgKiBidWxrTG9hZC5hZGRSb3coeyBmaXJzdF9uYW1lOiAnQmlsbCcsIGxhc3RfbmFtZTogJ0dhdGVzJyB9KTtcbiAgICogYGBgXG4gICAqXG4gICAqIEBwYXJhbSByb3cgQW4gb2JqZWN0IG9mIGtleS92YWx1ZSBwYWlycyByZXByZXNlbnRpbmcgY29sdW1uIG5hbWUgKG9yIG9iak5hbWUpIGFuZCB2YWx1ZS5cbiAgICpcbiAgICogQGRlcHJlY2F0ZWQgVGhpcyBtZXRob2QgaXMgZGVwcmVjYXRlZC4gSW5zdGVhZCBvZiBhZGRpbmcgcm93cyBpbmRpdmlkdWFsbHksIHlvdSBzaG91bGQgcGFzc1xuICAgKiAgIGFsbCByb3cgb2JqZWN0cyB3aGVuIGNhbGxpbmcgW1tDb25uZWN0aW9uLmV4ZWNCdWxrTG9hZF1dLiBUaGlzIG1ldGhvZCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIGZ1dHVyZS5cbiAgICovXG4gIGFkZFJvdyhyb3c6IHsgW2NvbHVtbk5hbWU6IHN0cmluZ106IHVua25vd24gfSk6IHZvaWRcblxuICAvKipcbiAgICogQWRkcyBhIHJvdyB0byB0aGUgYnVsayBpbnNlcnQuXG4gICAqXG4gICAqIGBgYGpzXG4gICAqIGJ1bGtMb2FkLmFkZFJvdygnQmlsbCcsICdHYXRlcycpO1xuICAgKiBgYGBcbiAgICpcbiAgICogQHBhcmFtIHJvdyBJZiB0aGVyZSBhcmUgYXQgbGVhc3QgdHdvIGNvbHVtbnMsIHZhbHVlcyBjYW4gYmUgcGFzc2VkIGFzIG11bHRpcGxlIGFyZ3VtZW50cyBpbnN0ZWFkIG9mIGFuIGFycmF5LiBUaGV5XG4gICAqICAgbXVzdCBiZSBpbiB0aGUgc2FtZSBvcmRlciB0aGUgY29sdW1ucyB3ZXJlIGFkZGVkIGluLlxuICAgKlxuICAgKiBAZGVwcmVjYXRlZCBUaGlzIG1ldGhvZCBpcyBkZXByZWNhdGVkLiBJbnN0ZWFkIG9mIGFkZGluZyByb3dzIGluZGl2aWR1YWxseSwgeW91IHNob3VsZCBwYXNzXG4gICAqICAgYWxsIHJvdyBvYmplY3RzIHdoZW4gY2FsbGluZyBbW0Nvbm5lY3Rpb24uZXhlY0J1bGtMb2FkXV0uIFRoaXMgbWV0aG9kIHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgZnV0dXJlLlxuICAgKi9cbiAgYWRkUm93KC4uLnJvdzogdW5rbm93bltdKTogdm9pZFxuXG4gIC8qKlxuICAgKiBBZGRzIGEgcm93IHRvIHRoZSBidWxrIGluc2VydC5cbiAgICpcbiAgICogYGBganNcbiAgICogYnVsa0xvYWQuYWRkUm93KFsnQmlsbCcsICdHYXRlcyddKTtcbiAgICogYGBgXG4gICAqXG4gICAqIEBwYXJhbSByb3cgQW4gYXJyYXkgcmVwcmVzZW50aW5nIHRoZSB2YWx1ZXMgb2YgZWFjaCBjb2x1bW4gaW4gdGhlIHNhbWUgb3JkZXIgd2hpY2ggdGhleSB3ZXJlIGFkZGVkIHRvIHRoZSBidWxrTG9hZCBvYmplY3QuXG4gICAqXG4gICAqIEBkZXByZWNhdGVkIFRoaXMgbWV0aG9kIGlzIGRlcHJlY2F0ZWQuIEluc3RlYWQgb2YgYWRkaW5nIHJvd3MgaW5kaXZpZHVhbGx5LCB5b3Ugc2hvdWxkIHBhc3NcbiAgICogICBhbGwgcm93IG9iamVjdHMgd2hlbiBjYWxsaW5nIFtbQ29ubmVjdGlvbi5leGVjQnVsa0xvYWRdXS4gVGhpcyBtZXRob2Qgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBmdXR1cmUuXG4gICAqL1xuICBhZGRSb3cocm93OiB1bmtub3duW10pOiB2b2lkXG5cbiAgYWRkUm93KC4uLmlucHV0OiBbIHsgW2tleTogc3RyaW5nXTogdW5rbm93biB9IF0gfCB1bmtub3duW10pIHtcbiAgICB0aGlzLmZpcnN0Um93V3JpdHRlbiA9IHRydWU7XG5cbiAgICBsZXQgcm93OiBhbnk7XG4gICAgaWYgKGlucHV0Lmxlbmd0aCA+IDEgfHwgIWlucHV0WzBdIHx8IHR5cGVvZiBpbnB1dFswXSAhPT0gJ29iamVjdCcpIHtcbiAgICAgIHJvdyA9IGlucHV0O1xuICAgIH0gZWxzZSB7XG4gICAgICByb3cgPSBpbnB1dFswXTtcbiAgICB9XG5cbiAgICAvLyB3cml0ZSBlYWNoIGNvbHVtblxuICAgIGlmIChBcnJheS5pc0FycmF5KHJvdykpIHtcbiAgICAgIHRoaXMucm93VG9QYWNrZXRUcmFuc2Zvcm0ud3JpdGUodGhpcy5jb2x1bW5zLm1hcCgoY29sdW1uLCBpKSA9PiB7XG4gICAgICAgIHJldHVybiBjb2x1bW4udHlwZS52YWxpZGF0ZShyb3dbaV0sIGNvbHVtbi5jb2xsYXRpb24pO1xuICAgICAgfSkpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnJvd1RvUGFja2V0VHJhbnNmb3JtLndyaXRlKHRoaXMuY29sdW1ucy5tYXAoKGNvbHVtbikgPT4ge1xuICAgICAgICByZXR1cm4gY29sdW1uLnR5cGUudmFsaWRhdGUocm93W2NvbHVtbi5vYmpOYW1lXSwgY29sdW1uLmNvbGxhdGlvbik7XG4gICAgICB9KSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBnZXRPcHRpb25zU3FsKCkge1xuICAgIGNvbnN0IGFkZE9wdGlvbnMgPSBbXTtcblxuICAgIGlmICh0aGlzLmJ1bGtPcHRpb25zLmNoZWNrQ29uc3RyYWludHMpIHtcbiAgICAgIGFkZE9wdGlvbnMucHVzaCgnQ0hFQ0tfQ09OU1RSQUlOVFMnKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5idWxrT3B0aW9ucy5maXJlVHJpZ2dlcnMpIHtcbiAgICAgIGFkZE9wdGlvbnMucHVzaCgnRklSRV9UUklHR0VSUycpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmJ1bGtPcHRpb25zLmtlZXBOdWxscykge1xuICAgICAgYWRkT3B0aW9ucy5wdXNoKCdLRUVQX05VTExTJyk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuYnVsa09wdGlvbnMubG9ja1RhYmxlKSB7XG4gICAgICBhZGRPcHRpb25zLnB1c2goJ1RBQkxPQ0snKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5idWxrT3B0aW9ucy5vcmRlcikge1xuICAgICAgY29uc3Qgb3JkZXJDb2x1bW5zID0gW107XG5cbiAgICAgIGZvciAoY29uc3QgW2NvbHVtbiwgZGlyZWN0aW9uXSBvZiBPYmplY3QuZW50cmllcyh0aGlzLmJ1bGtPcHRpb25zLm9yZGVyKSkge1xuICAgICAgICBvcmRlckNvbHVtbnMucHVzaChgJHtjb2x1bW59ICR7ZGlyZWN0aW9ufWApO1xuICAgICAgfVxuXG4gICAgICBpZiAob3JkZXJDb2x1bW5zLmxlbmd0aCkge1xuICAgICAgICBhZGRPcHRpb25zLnB1c2goYE9SREVSICgke29yZGVyQ29sdW1ucy5qb2luKCcsICcpfSlgKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoYWRkT3B0aW9ucy5sZW5ndGggPiAwKSB7XG4gICAgICByZXR1cm4gYCBXSVRIICgke2FkZE9wdGlvbnMuam9pbignLCcpfSlgO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBnZXRCdWxrSW5zZXJ0U3FsKCkge1xuICAgIGxldCBzcWwgPSAnaW5zZXJ0IGJ1bGsgJyArIHRoaXMudGFibGUgKyAnKCc7XG4gICAgZm9yIChsZXQgaSA9IDAsIGxlbiA9IHRoaXMuY29sdW1ucy5sZW5ndGg7IGkgPCBsZW47IGkrKykge1xuICAgICAgY29uc3QgYyA9IHRoaXMuY29sdW1uc1tpXTtcbiAgICAgIGlmIChpICE9PSAwKSB7XG4gICAgICAgIHNxbCArPSAnLCAnO1xuICAgICAgfVxuICAgICAgc3FsICs9ICdbJyArIGMubmFtZSArICddICcgKyAoYy50eXBlLmRlY2xhcmF0aW9uKGMpKTtcbiAgICB9XG4gICAgc3FsICs9ICcpJztcblxuICAgIHNxbCArPSB0aGlzLmdldE9wdGlvbnNTcWwoKTtcbiAgICByZXR1cm4gc3FsO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoaXMgaXMgc2ltcGx5IGEgaGVscGVyIHV0aWxpdHkgZnVuY3Rpb24gd2hpY2ggcmV0dXJucyBhIGBDUkVBVEUgVEFCTEUgU1FMYCBzdGF0ZW1lbnQgYmFzZWQgb24gdGhlIGNvbHVtbnMgYWRkZWQgdG8gdGhlIGJ1bGtMb2FkIG9iamVjdC5cbiAgICogVGhpcyBtYXkgYmUgcGFydGljdWxhcmx5IGhhbmR5IHdoZW4geW91IHdhbnQgdG8gaW5zZXJ0IGludG8gYSB0ZW1wb3JhcnkgdGFibGUgKGEgdGFibGUgd2hpY2ggc3RhcnRzIHdpdGggYCNgKS5cbiAgICpcbiAgICogYGBganNcbiAgICogdmFyIHNxbCA9IGJ1bGtMb2FkLmdldFRhYmxlQ3JlYXRpb25TcWwoKTtcbiAgICogYGBgXG4gICAqXG4gICAqIEEgc2lkZSBub3RlIG9uIGJ1bGsgaW5zZXJ0aW5nIGludG8gdGVtcG9yYXJ5IHRhYmxlczogaWYgeW91IHdhbnQgdG8gYWNjZXNzIGEgbG9jYWwgdGVtcG9yYXJ5IHRhYmxlIGFmdGVyIGV4ZWN1dGluZyB0aGUgYnVsayBsb2FkLFxuICAgKiB5b3UnbGwgbmVlZCB0byB1c2UgdGhlIHNhbWUgY29ubmVjdGlvbiBhbmQgZXhlY3V0ZSB5b3VyIHJlcXVlc3RzIHVzaW5nIFtbQ29ubmVjdGlvbi5leGVjU3FsQmF0Y2hdXSBpbnN0ZWFkIG9mIFtbQ29ubmVjdGlvbi5leGVjU3FsXV1cbiAgICovXG4gIGdldFRhYmxlQ3JlYXRpb25TcWwoKSB7XG4gICAgbGV0IHNxbCA9ICdDUkVBVEUgVEFCTEUgJyArIHRoaXMudGFibGUgKyAnKFxcbic7XG4gICAgZm9yIChsZXQgaSA9IDAsIGxlbiA9IHRoaXMuY29sdW1ucy5sZW5ndGg7IGkgPCBsZW47IGkrKykge1xuICAgICAgY29uc3QgYyA9IHRoaXMuY29sdW1uc1tpXTtcbiAgICAgIGlmIChpICE9PSAwKSB7XG4gICAgICAgIHNxbCArPSAnLFxcbic7XG4gICAgICB9XG4gICAgICBzcWwgKz0gJ1snICsgYy5uYW1lICsgJ10gJyArIChjLnR5cGUuZGVjbGFyYXRpb24oYykpO1xuICAgICAgaWYgKGMubnVsbGFibGUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBzcWwgKz0gJyAnICsgKGMubnVsbGFibGUgPyAnTlVMTCcgOiAnTk9UIE5VTEwnKTtcbiAgICAgIH1cbiAgICB9XG4gICAgc3FsICs9ICdcXG4pJztcbiAgICByZXR1cm4gc3FsO1xuICB9XG5cbiAgLyoqXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBnZXRDb2xNZXRhRGF0YSgpIHtcbiAgICBjb25zdCB0QnVmID0gbmV3IFdyaXRhYmxlVHJhY2tpbmdCdWZmZXIoMTAwLCBudWxsLCB0cnVlKTtcbiAgICAvLyBUb2tlblR5cGVcbiAgICB0QnVmLndyaXRlVUludDgoVE9LRU5fVFlQRS5DT0xNRVRBREFUQSk7XG4gICAgLy8gQ291bnRcbiAgICB0QnVmLndyaXRlVUludDE2TEUodGhpcy5jb2x1bW5zLmxlbmd0aCk7XG5cbiAgICBmb3IgKGxldCBqID0gMCwgbGVuID0gdGhpcy5jb2x1bW5zLmxlbmd0aDsgaiA8IGxlbjsgaisrKSB7XG4gICAgICBjb25zdCBjID0gdGhpcy5jb2x1bW5zW2pdO1xuICAgICAgLy8gVXNlclR5cGVcbiAgICAgIGlmICh0aGlzLm9wdGlvbnMudGRzVmVyc2lvbiA8ICc3XzInKSB7XG4gICAgICAgIHRCdWYud3JpdGVVSW50MTZMRSgwKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRCdWYud3JpdGVVSW50MzJMRSgwKTtcbiAgICAgIH1cblxuICAgICAgLy8gRmxhZ3NcbiAgICAgIGxldCBmbGFncyA9IEZMQUdTLnVwZGF0ZWFibGVSZWFkV3JpdGU7XG4gICAgICBpZiAoYy5udWxsYWJsZSkge1xuICAgICAgICBmbGFncyB8PSBGTEFHUy5udWxsYWJsZTtcbiAgICAgIH0gZWxzZSBpZiAoYy5udWxsYWJsZSA9PT0gdW5kZWZpbmVkICYmIHRoaXMub3B0aW9ucy50ZHNWZXJzaW9uID49ICc3XzInKSB7XG4gICAgICAgIGZsYWdzIHw9IEZMQUdTLm51bGxhYmxlVW5rbm93bjtcbiAgICAgIH1cbiAgICAgIHRCdWYud3JpdGVVSW50MTZMRShmbGFncyk7XG5cbiAgICAgIC8vIFRZUEVfSU5GT1xuICAgICAgdEJ1Zi53cml0ZUJ1ZmZlcihjLnR5cGUuZ2VuZXJhdGVUeXBlSW5mbyhjLCB0aGlzLm9wdGlvbnMpKTtcblxuICAgICAgLy8gVGFibGVOYW1lXG4gICAgICBpZiAoYy50eXBlLmhhc1RhYmxlTmFtZSkge1xuICAgICAgICB0QnVmLndyaXRlVXNWYXJjaGFyKHRoaXMudGFibGUsICd1Y3MyJyk7XG4gICAgICB9XG5cbiAgICAgIC8vIENvbE5hbWVcbiAgICAgIHRCdWYud3JpdGVCVmFyY2hhcihjLm5hbWUsICd1Y3MyJyk7XG4gICAgfVxuICAgIHJldHVybiB0QnVmLmRhdGE7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyBhIHRpbWVvdXQgZm9yIHRoaXMgYnVsayBsb2FkLlxuICAgKlxuICAgKiBgYGBqc1xuICAgKiBidWxrTG9hZC5zZXRUaW1lb3V0KHRpbWVvdXQpO1xuICAgKiBgYGBcbiAgICpcbiAgICogQHBhcmFtIHRpbWVvdXQgVGhlIG51bWJlciBvZiBtaWxsaXNlY29uZHMgYmVmb3JlIHRoZSBidWxrIGxvYWQgaXMgY29uc2lkZXJlZCBmYWlsZWQsIG9yIDAgZm9yIG5vIHRpbWVvdXQuXG4gICAqICAgV2hlbiBubyB0aW1lb3V0IGlzIHNldCBmb3IgdGhlIGJ1bGsgbG9hZCwgdGhlIFtbQ29ubmVjdGlvbk9wdGlvbnMucmVxdWVzdFRpbWVvdXRdXSBvZiB0aGUgQ29ubmVjdGlvbiBpcyB1c2VkLlxuICAgKi9cbiAgc2V0VGltZW91dCh0aW1lb3V0PzogbnVtYmVyKSB7XG4gICAgdGhpcy50aW1lb3V0ID0gdGltZW91dDtcbiAgfVxuXG4gIC8qKlxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgY3JlYXRlRG9uZVRva2VuKCkge1xuICAgIC8vIEl0IG1pZ2h0IGJlIG5pY2UgdG8gbWFrZSBEb25lVG9rZW4gYSBjbGFzcyBpZiBhbnl0aGluZyBuZWVkcyB0byBjcmVhdGUgdGhlbSwgYnV0IGZvciBub3csIGp1c3QgZG8gaXQgaGVyZVxuICAgIGNvbnN0IHRCdWYgPSBuZXcgV3JpdGFibGVUcmFja2luZ0J1ZmZlcih0aGlzLm9wdGlvbnMudGRzVmVyc2lvbiA8ICc3XzInID8gOSA6IDEzKTtcbiAgICB0QnVmLndyaXRlVUludDgoVE9LRU5fVFlQRS5ET05FKTtcbiAgICBjb25zdCBzdGF0dXMgPSBET05FX1NUQVRVUy5GSU5BTDtcbiAgICB0QnVmLndyaXRlVUludDE2TEUoc3RhdHVzKTtcbiAgICB0QnVmLndyaXRlVUludDE2TEUoMCk7IC8vIEN1ckNtZCAoVERTIGlnbm9yZXMgdGhpcylcbiAgICB0QnVmLndyaXRlVUludDMyTEUoMCk7IC8vIHJvdyBjb3VudCAtIGRvZXNuJ3QgcmVhbGx5IG1hdHRlclxuICAgIGlmICh0aGlzLm9wdGlvbnMudGRzVmVyc2lvbiA+PSAnN18yJykge1xuICAgICAgdEJ1Zi53cml0ZVVJbnQzMkxFKDApOyAvLyByb3cgY291bnQgaXMgNjQgYml0cyBpbiA+PSBURFMgNy4yXG4gICAgfVxuICAgIHJldHVybiB0QnVmLmRhdGE7XG4gIH1cblxuICAvKipcbiAgICogU3dpdGNoZXMgdGhlIGBCdWxrTG9hZGAgb2JqZWN0IGludG8gc3RyZWFtaW5nIG1vZGUgYW5kIHJldHVybnMgYVxuICAgKiBbd3JpdGFibGUgc3RyZWFtXShodHRwczovL25vZGVqcy5vcmcvZGlzdC9sYXRlc3QtdjEwLngvZG9jcy9hcGkvc3RyZWFtLmh0bWwjc3RyZWFtX3dyaXRhYmxlX3N0cmVhbXMpXG4gICAqIHRoYXQgY2FuIGJlIHVzZWQgdG8gc2VuZCBhIGxhcmdlIGFtb3VudCBvZiByb3dzIHRvIHRoZSBzZXJ2ZXIuXG4gICAqXG4gICAqIGBgYGpzXG4gICAqIGNvbnN0IGJ1bGtMb2FkID0gY29ubmVjdGlvbi5uZXdCdWxrTG9hZCguLi4pO1xuICAgKiBidWxrTG9hZC5hZGRDb2x1bW4oLi4uKTtcbiAgICpcbiAgICogY29uc3Qgcm93U3RyZWFtID0gYnVsa0xvYWQuZ2V0Um93U3RyZWFtKCk7XG4gICAqXG4gICAqIGNvbm5lY3Rpb24uZXhlY0J1bGtMb2FkKGJ1bGtMb2FkKTtcbiAgICogYGBgXG4gICAqXG4gICAqIEluIHN0cmVhbWluZyBtb2RlLCBbW2FkZFJvd11dIGNhbm5vdCBiZSB1c2VkLiBJbnN0ZWFkIGFsbCBkYXRhIHJvd3MgbXVzdCBiZSB3cml0dGVuIHRvIHRoZSByZXR1cm5lZCBzdHJlYW0gb2JqZWN0LlxuICAgKiBUaGUgc3RyZWFtIGltcGxlbWVudGF0aW9uIHVzZXMgZGF0YSBmbG93IGNvbnRyb2wgdG8gcHJldmVudCBtZW1vcnkgb3ZlcmxvYWQuIFtgc3RyZWFtLndyaXRlKClgXShodHRwczovL25vZGVqcy5vcmcvZGlzdC9sYXRlc3QtdjEwLngvZG9jcy9hcGkvc3RyZWFtLmh0bWwjc3RyZWFtX3dyaXRhYmxlX3dyaXRlX2NodW5rX2VuY29kaW5nX2NhbGxiYWNrKVxuICAgKiByZXR1cm5zIGBmYWxzZWAgdG8gaW5kaWNhdGUgdGhhdCBkYXRhIHRyYW5zZmVyIHNob3VsZCBiZSBwYXVzZWQuXG4gICAqXG4gICAqIEFmdGVyIHRoYXQsIHRoZSBzdHJlYW0gZW1pdHMgYSBbJ2RyYWluJyBldmVudF0oaHR0cHM6Ly9ub2RlanMub3JnL2Rpc3QvbGF0ZXN0LXYxMC54L2RvY3MvYXBpL3N0cmVhbS5odG1sI3N0cmVhbV9ldmVudF9kcmFpbilcbiAgICogd2hlbiBpdCBpcyByZWFkeSB0byByZXN1bWUgZGF0YSB0cmFuc2Zlci5cbiAgICpcbiAgICogQGRlcHJlY2F0ZWRcbiAgICogICBUaGlzIG1ldGhvZCBpcyBkZXByZWNhdGVkLiBJbnN0ZWFkIG9mIHdyaXRpbmcgcm93cyB0byB0aGUgc3RyZWFtIHJldHVybmVkIGJ5IHRoaXMgbWV0aG9kLFxuICAgKiAgIHlvdSBjYW4gcGFzcyBhbnkgb2JqZWN0IHRoYXQgaW1wbGVtZW50cyB0aGUgYEl0ZXJhYmxlYCBvciBgQXN5bmNJdGVyYWJsZWAgaW50ZXJmYWNlIChlLmcuIGEgYFJlYWRhYmxlYFxuICAgKiAgIHN0cmVhbSBvciBhbiBgQXN5bmNHZW5lcmF0b3JgKSB3aGVuIGNhbGxpbmcgW1tDb25uZWN0aW9uLmV4ZWNCdWxrTG9hZF1dLiBUaGlzIG1ldGhvZCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIGZ1dHVyZS5cbiAgICovXG4gIGdldFJvd1N0cmVhbSgpIHtcbiAgICBpZiAodGhpcy5maXJzdFJvd1dyaXR0ZW4pIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignQnVsa0xvYWQgY2Fubm90IGJlIHN3aXRjaGVkIHRvIHN0cmVhbWluZyBtb2RlIGFmdGVyIGZpcnN0IHJvdyBoYXMgYmVlbiB3cml0dGVuIHVzaW5nIGFkZFJvdygpLicpO1xuICAgIH1cbiAgICBpZiAodGhpcy5leGVjdXRpb25TdGFydGVkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0J1bGtMb2FkIGNhbm5vdCBiZSBzd2l0Y2hlZCB0byBzdHJlYW1pbmcgbW9kZSBhZnRlciBleGVjdXRpb24gaGFzIHN0YXJ0ZWQuJyk7XG4gICAgfVxuICAgIHRoaXMuc3RyZWFtaW5nTW9kZSA9IHRydWU7XG5cbiAgICByZXR1cm4gdGhpcy5yb3dUb1BhY2tldFRyYW5zZm9ybTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgY2FuY2VsKCkge1xuICAgIGlmICh0aGlzLmNhbmNlbGVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5jYW5jZWxlZCA9IHRydWU7XG4gICAgdGhpcy5lbWl0KCdjYW5jZWwnKTtcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBCdWxrTG9hZDtcbm1vZHVsZS5leHBvcnRzID0gQnVsa0xvYWQ7XG4iXX0=
|
package/lib/collation.js
CHANGED
|
@@ -361,4 +361,5 @@ class Collation {
|
|
|
361
361
|
|
|
362
362
|
}
|
|
363
363
|
|
|
364
|
-
exports.Collation = Collation;
|
|
364
|
+
exports.Collation = Collation;
|
|
365
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jb2xsYXRpb24udHMiXSwibmFtZXMiOlsiY29kZXBhZ2VCeUxhbmd1YWdlSWQiLCJjb2RlcGFnZUJ5U29ydElkIiwiRmxhZ3MiLCJJR05PUkVfQ0FTRSIsIklHTk9SRV9BQ0NFTlQiLCJJR05PUkVfS0FOQSIsIklHTk9SRV9XSURUSCIsIkJJTkFSWSIsIkJJTkFSWTIiLCJVVEY4IiwiQ29sbGF0aW9uIiwiZnJvbUJ1ZmZlciIsImJ1ZmZlciIsIm9mZnNldCIsImxjaWQiLCJmbGFncyIsInZlcnNpb24iLCJzb3J0SWQiLCJjb25zdHJ1Y3RvciIsImNvZGVwYWdlIiwidW5kZWZpbmVkIiwibGFuZ3VhZ2VJZCIsInRvQnVmZmVyIiwiQnVmZmVyIiwiYWxsb2MiXSwibWFwcGluZ3MiOiI7Ozs7OztBQUVBO0FBQ08sTUFBTUEsb0JBQWlELEdBQUc7QUFDL0Q7QUFDQSxHQUFDLE1BQUQsR0FBVSxRQUZxRDtBQUkvRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUMsTUFBRCxHQUFVLE9BUnFEO0FBVS9EO0FBQ0EsR0FBQyxNQUFELEdBQVUsUUFYcUQ7QUFhL0Q7QUFDQTtBQUNBLEdBQUMsTUFBRCxHQUFVLFFBZnFEO0FBaUIvRDtBQUNBLEdBQUMsTUFBRCxHQUFVLFFBbEJxRDtBQW9CL0Q7QUFDQSxHQUFDLE1BQUQsR0FBVSxRQXJCcUQ7QUF1Qi9EO0FBQ0EsR0FBQyxNQUFELEdBQVUsUUF4QnFEO0FBMEIvRDtBQUNBLEdBQUMsTUFBRCxHQUFVLFFBM0JxRDtBQTZCL0Q7QUFDQSxHQUFDLE1BQUQsR0FBVSxRQTlCcUQ7QUFnQy9EO0FBQ0EsR0FBQyxNQUFELEdBQVUsUUFqQ3FEO0FBbUMvRDtBQUNBO0FBQ0EsR0FBQyxNQUFELEdBQVUsUUFyQ3FEO0FBdUMvRDtBQUNBLEdBQUMsTUFBRCxHQUFVLFFBeENxRDtBQTBDL0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFDLE1BQUQsR0FBVSxPQTlDcUQ7QUFnRC9EO0FBQ0E7QUFDQSxHQUFDLE1BQUQsR0FBVSxP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aUIsS0FBS0ssTUFBTCxHQUFjLElBQS9CO0FBRUEsV0FBTyxLQUFLTCxNQUFaO0FBQ0Q7O0FBMURvQiIsInNvdXJjZXNDb250ZW50IjpbInR5cGUgRW5jb2RpbmcgPSAndXRmLTgnIHwgJ0NQNDM3JyB8ICdDUDg1MCcgfCAnQ1A4NzQnIHwgJ0NQOTMyJyB8ICdDUDkzNicgfCAnQ1A5NDknIHwgJ0NQOTUwJyB8ICdDUDEyNTAnIHwgJ0NQMTI1MScgfCAnQ1AxMjUyJyB8ICdDUDEyNTMnIHwgJ0NQMTI1NCcgfCAnQ1AxMjU1JyB8ICdDUDEyNTYnIHwgJ0NQMTI1NycgfCAnQ1AxMjU4JztcblxuLy8gaHR0cDovL3RlY2huZXQubWljcm9zb2Z0LmNvbS9lbi11cy9saWJyYXJ5L2FhMTc2NTUzKHY9c3FsLjgwKS5hc3B4XG5leHBvcnQgY29uc3QgY29kZXBhZ2VCeUxhbmd1YWdlSWQ6IHsgW2tleTogbnVtYmVyXTogRW5jb2RpbmcgfSA9IHtcbiAgLy8gQXJhYmljXypcbiAgWzB4MDQwMV06ICdDUDEyNTYnLFxuXG4gIC8vIENoaW5lc2VfVGFpd2FuX1N0cm9rZV8qXG4gIC8vIENoaW5lc2VfVHJhZGl0aW9uYWxfU3Ryb2tlX0NvdW50XypcbiAgLy8gQ2hpbmVzZV9UYWl3YW5fQm9wb21vZm9fKlxuICAvLyBDaGluZXNlX1RyYWRpdGlvbmFsX0JvcG9tb2ZvXypcbiAgWzB4MDQwNF06ICdDUDk1MCcsXG5cbiAgLy8gQ3plY2hfKlxuICBbMHgwNDA1XTogJ0NQMTI1MCcsXG5cbiAgLy8gRGFuaXNoX0dyZWVubGFuZGljXypcbiAgLy8gRGFuaXNoX05vcndlZ2lhbl8qXG4gIFsweDA0MDZdOiAnQ1AxMjUyJyxcblxuICAvLyBHcmVla18qXG4gIFsweDA0MDhdOiAnQ1AxMjUzJyxcblxuICAvLyBMYXRpbjFfR2VuZXJhbF8qXG4gIFsweDA0MDldOiAnQ1AxMjUyJyxcblxuICAvLyBUcmFkaXRpb25hbF9TcGFuaXNoXypcbiAgWzB4MDQwQV06ICdDUDEyNTInLFxuXG4gIC8vIEZpbm5pc2hfU3dlZGlzaF8qXG4gIFsweDA0MEJdOiAnQ1AxMjUyJyxcblxuICAvLyBGcmVuY2hfKlxuICBbMHgwNDBDXTogJ0NQMTI1MicsXG5cbiAgLy8gSGVicmV3XypcbiAgWzB4MDQwRF06ICdDUDEyNTUnLFxuXG4gIC8vIEh1bmdhcmlhbl8qXG4gIC8vIEh1bmdhcmlhbl9UZWNobmljYWxfKlxuICBbMHgwNDBFXTogJ0NQMTI1MCcsXG5cbiAgLy8gSWNlbGFuZGljXypcbiAgWzB4MDQwRl06ICdDUDEyNTInLFxuXG4gIC8vIEphcGFuZXNlXypcbiAgLy8gSmFwYW5lc2VfWEpJU18qXG4gIC8vIEphcGFuZXNlX1VuaWNvZGVfKlxuICAvLyBKYXBhbmVzZV9CdXNodV9LYWt1c3VfKlxuICBbMHgwNDExXTogJ0NQOTMyJyxcblxuICAvLyBLb3JlYW5fKlxuICAvLyBLb3JlYW5fV2Fuc3VuZ18qXG4gIFsweDA0MTJdOiAnQ1A5NDknLFxuXG4gIC8vIE5vcndlZ2lhbl8qXG4gIFsweDA0MTRdOiAnQ1AxMjUyJyxcblxuICAvLyBQb2xpc2hfKlxuICBbMHgwNDE1XTogJ0NQMTI1MCcsXG5cbiAgLy8gUm9tYW5zaF8qXG4gIFsweDA0MTddOiAnQ1AxMjUyJyxcblxuICAvLyBSb21hbmlhbl8qXG4gIFsweDA0MThdOiAnQ1AxMjUwJyxcblxuICAvLyBDeXJpbGxpY18qXG4gIFsweDA0MTldOiAnQ1AxMjUxJyxcblxuICAvLyBDcm9hdGlhbl8qXG4gIFsweDA0MUFdOiAnQ1AxMjUwJyxcblxuICAvLyBTbG92YWtfKlxuICBbMHgwNDFCXTogJ0NQMTI1MCcsXG5cbiAgLy8gQWxiYW5pYW5fKlxuICBbMHgwNDFDXTogJ0NQMTI1MCcsXG5cbiAgLy8gVGhhaV8qXG4gIFsweDA0MUVdOiAnQ1A4NzQnLFxuXG4gIC8vIFR1cmtpc2hfKlxuICBbMHgwNDFGXTogJ0NQMTI1NCcsXG5cbiAgLy8gVXJkdV8qXG4gIFsweDA0MjBdOiAnQ1AxMjU2JyxcblxuICAvLyBVa3JhaW5pYW5fKlxuICBbMHgwNDIyXTogJ0NQMTI1MScsXG5cbiAgLy8gU2xvdmVuaWFuXypcbiAgWzB4MDQyNF06ICdDUDEyNTAnLFxuXG4gIC8vIEVzdG9uaWFuXypcbiAgWzB4MDQyNV06ICdDUDEyNTcnLFxuXG4gIC8vIExhdHZpYW5fKlxuICBbMHgwNDI2XTogJ0NQMTI1NycsXG5cbiAgLy8gTGl0aHVhbmlhbl8qXG4gIFsweDA0MjddOiAnQ1AxMjU3JyxcblxuICAvLyBQZXJzaWFuXypcbiAgWzB4MDQyOV06ICdDUDEyNTYnLFxuXG4gIC8vIFZpZXRuYW1lc2VfKlxuICBbMHgwNDJBXTogJ0NQMTI1OCcsXG5cbiAgLy8gQXplcmlfTGF0aW5fKlxuICBbMHgwNDJDXTogJ0NQMTI1NCcsXG5cbiAgLy8gVXBwZXJfU29yYmlhbl8qXG4gIFsweDA0MkVdOiAnQ1AxMjUyJyxcblxuICAvLyBNYWNlZG9uaWFuX0ZZUk9NXypcbiAgWzB4MDQyRl06ICdDUDEyNTEnLFxuXG4gIC8vIFNhbWlfTm9yd2F5XypcbiAgWzB4MDQzQl06ICdDUDEyNTInLFxuXG4gIC8vIEthemFraF8qXG4gIFsweDA0M0ZdOiAnQ1AxMjUxJyxcblxuICAvLyBUdXJrbWVuXypcbiAgWzB4MDQ0Ml06ICdDUDEyNTAnLFxuXG4gIC8vIFV6YmVrX0xhdGluXypcbiAgWzB4MDQ0M106ICdDUDEyNTQnLFxuXG4gIC8vIFRhdGFyXypcbiAgWzB4MDQ0NF06ICdDUDEyNTEnLFxuXG4gIC8vIFdlbHNoXypcbiAgWzB4MDQ1Ml06ICdDUDEyNTInLFxuXG4gIC8vIEZyaXNpYW5fKlxuICBbMHgwNDYyXTogJ0NQMTI1MicsXG5cbiAgLy8gQmFzaGtpcl8qXG4gIFsweDA0NkRdOiAnQ1AxMjUxJyxcblxuICAvLyBNYXB1ZHVuZ2FuXypcbiAgWzB4MDQ3QV06ICdDUDEyNTInLFxuXG4gIC8vIE1vaGF3a18qXG4gIFsweDA0N0NdOiAnQ1AxMjUyJyxcblxuICAvLyBCcmV0b25fKlxuICBbMHgwNDdFXTogJ0NQMTI1MicsXG5cbiAgLy8gVWlnaHVyXypcbiAgWzB4MDQ4MF06ICdDUDEyNTYnLFxuXG4gIC8vIENvcnNpY2FuXypcbiAgWzB4MDQ4M106ICdDUDEyNTInLFxuXG4gIC8vIFlha3V0XypcbiAgWzB4MDQ4NV06ICdDUDEyNTEnLFxuXG4gIC8vIERhcmlfKlxuICBbMHgwNDhDXTogJ0NQMTI1NicsXG5cbiAgLy8gQ2hpbmVzZV9QUkNfKlxuICAvLyBDaGluZXNlX1NpbXBsaWZpZWRfUGlueWluXypcbiAgLy8gQ2hpbmVzZV9QUkNfU3Ryb2tlXypcbiAgLy8gQ2hpbmVzZV9TaW1wbGlmaWVkX1N0cm9rZV9PcmRlcl8qXG4gIFsweDA4MDRdOiAnQ1A5MzYnLFxuXG4gIC8vIFNlcmJpYW5fTGF0aW5fKlxuICBbMHgwODFBXTogJ0NQMTI1MCcsXG5cbiAgLy8gQXplcmlfQ3lyaWxsaWNfKlxuICBbMHgwODJDXTogJ0NQMTI1MScsXG5cbiAgLy8gU2FtaV9Td2VkZW5fRmlubGFuZF8qXG4gIFsweDA4M0JdOiAnQ1AxMjUyJyxcblxuICAvLyBUYW1hemlnaHRfKlxuICBbMHgwODVGXTogJ0NQMTI1MicsXG5cbiAgLy8gQ2hpbmVzZV9Ib25nX0tvbmdfU3Ryb2tlXypcbiAgWzB4MEMwNF06ICdDUDk1MCcsXG5cbiAgLy8gTW9kZXJuX1NwYW5pc2hfKlxuICBbMHgwQzBBXTogJ0NQMTI1MicsXG5cbiAgLy8gU2VyYmlhbl9DeXJpbGxpY18qXG4gIFsweDBDMUFdOiAnQ1AxMjUxJyxcblxuICAvLyBDaGluZXNlX1RyYWRpdGlvbmFsX1Bpbnlpbl8qXG4gIC8vIENoaW5lc2VfVHJhZGl0aW9uYWxfU3Ryb2tlX09yZGVyXypcbiAgWzB4MTQwNF06ICdDUDk1MCcsXG5cbiAgLy8gQm9zbmlhbl9MYXRpbl8qXG4gIFsweDE0MUFdOiAnQ1AxMjUwJyxcblxuICAvLyBCb3NuaWFuX0N5cmlsbGljXypcbiAgWzB4MjAxQV06ICdDUDEyNTEnLFxuXG4gIC8vIEdlcm1hblxuICAvLyBHZXJtYW5fUGhvbmVCb29rXypcbiAgWzB4MDQwN106ICdDUDEyNTInLFxuXG4gIC8vIEdlb3JnaWFuX01vZGVybl9Tb3J0XypcbiAgWzB4MDQzN106ICdDUDEyNTInXG59O1xuXG5leHBvcnQgY29uc3QgY29kZXBhZ2VCeVNvcnRJZDogeyBba2V5OiBudW1iZXJdOiBFbmNvZGluZyB9ID0ge1xuICBbMzBdOiAnQ1A0MzcnLCAvLyBTUUxfTGF0aW4xX0dlbmVyYWxfQ1A0MzdfQklOXG4gIFszMV06ICdDUDQzNycsIC8vIFNRTF9MYXRpbjFfR2VuZXJhbF9DUDQzN19DU19BU1xuICBbMzJdOiAnQ1A0MzcnLCAvLyBTUUxfTGF0aW4xX0dlbmVyYWxfQ1A0MzdfQ0lfQVNcbiAgWzMzXTogJ0NQNDM3JywgLy8gU1FMX0xhdGluMV9HZW5lcmFsX1ByZWZfQ1A0MzdfQ0lfQVNcbiAgWzM0XTogJ0NQNDM3JywgLy8gU1FMX0xhdGluMV9HZW5lcmFsX0NQNDM3X0NJX0FJXG4gIFs0MF06ICdDUDg1MCcsIC8vIFNRTF9MYXRpbjFfR2VuZXJhbF9DUDg1MF9CSU5cbiAgWzQxXTogJ0NQODUwJywgLy8gU1FMX0xhdGluMV9HZW5lcmFsX0NQODUwX0NTX0FTXG4gIFs0Ml06ICdDUDg1MCcsIC8vIFNRTF9MYXRpbjFfR2VuZXJhbF9DUDg1MF9DSV9BU1xuICBbNDNdOiAnQ1A4NTAnLCAvLyBTUUxfTGF0aW4xX0dlbmVyYWxfUHJlZl9DUDg1MF9DSV9BU1xuICBbNDRdOiAnQ1A4NTAnLCAvLyBTUUxfTGF0aW4xX0dlbmVyYWxfQ1A4NTBfQ0lfQUlcbiAgWzQ5XTogJ0NQODUwJywgLy8gU1FMXzF4Q29tcGF0X0NQODUwX0NJX0FTXG4gIFs1MV06ICdDUDEyNTInLCAvLyBTUUxfTGF0aW4xX0dlbmVyYWxfQ3AxX0NTX0FTX0tJX1dJXG4gIFs1Ml06ICdDUDEyNTInLCAvLyBTUUxfTGF0aW4xX0dlbmVyYWxfQ3AxX0NJX0FTX0tJX1dJXG4gIFs1M106ICdDUDEyNTInLCAvLyBTUUxfTGF0aW4xX0dlbmVyYWxfUHJlZl9DcDFfQ0lfQVNfS0lfV0lcbiAgWzU0XTogJ0NQMTI1MicsIC8vIFNRTF9MYXRpbjFfR2VuZXJhbF9DcDFfQ0lfQUlfS0lfV0lcbiAgWzU1XTogJ0NQODUwJywgLy8gU1FMX0FsdERpY3Rpb25fQ1A4NTBfQ1NfQVNcbiAgWzU2XTogJ0NQODUwJywgLy8gU1FMX0FsdERpY3Rpb25fUHJlZl9DUDg1MF9DSV9BU1xuICBbNTddOiAnQ1A4NTAnLCAvLyBTUUxfQWx0RGljdGlvbl9DUDg1MF9DSV9BSVxuICBbNThdOiAnQ1A4NTAnLCAvLyBTUUxfU2NhbmRpbmF2aWFuX1ByZWZfQ1A4NTBfQ0lfQVNcbiAgWzU5XTogJ0NQODUwJywgLy8gU1FMX1NjYW5kaW5hdmlhbl9DUDg1MF9DU19BU1xuICBbNjBdOiAnQ1A4NTAnLCAvLyBTUUxfU2NhbmRpbmF2aWFuX0NQODUwX0NJX0FTXG4gIFs2MV06ICdDUDg1MCcsIC8vIFNRTF9BbHREaWN0aW9uX0NQODUwX0NJX0FTXG4gIFs4MF06ICdDUDEyNTAnLCAvLyBTUUxfTGF0aW4xX0dlbmVyYWxfMTI1MF9CSU5cbiAgWzgxXTogJ0NQMTI1MCcsIC8vIFNRTF9MYXRpbjFfR2VuZXJhbF9DUDEyNTBfQ1NfQVNcbiAgWzgyXTogJ0NQMTI1MCcsIC8vIFNRTF9MYXRpbjFfR2VuZXJhbF9DcDEyNTBfQ0lfQVNfS0lfV0lcbiAgWzgzXTogJ0NQMTI1MCcsIC8vIFNRTF9DemVjaF9DcDEyNTBfQ1NfQVNfS0lfV0lcbiAgWzg0XTogJ0NQMTI1MCcsIC8vIFNRTF9DemVjaF9DcDEyNTBfQ0lfQVNfS0lfV0lcbiAgWzg1XTogJ0NQMTI1MCcsIC8vIFNRTF9IdW5nYXJpYW5fQ3AxMjUwX0NTX0FTX0tJX1dJXG4gIFs4Nl06ICdDUDEyNTAnLCAvLyBTUUxfSHVuZ2FyaWFuX0NwMTI1MF9DSV9BU19LSV9XSVxuICBbODddOiAnQ1AxMjUwJywgLy8gU1FMX1BvbGlzaF9DcDEyNTBfQ1NfQVNfS0lfV0lcbiAgWzg4XTogJ0NQMTI1MCcsIC8vIFNRTF9Qb2xpc2hfQ3AxMjUwX0NJX0FTX0tJX1dJXG4gIFs4OV06ICdDUDEyNTAnLCAvLyBTUUxfUm9tYW5pYW5fQ3AxMjUwX0NTX0FTX0tJX1dJXG4gIFs5MF06ICdDUDEyNTAnLCAvLyBTUUxfUm9tYW5pYW5fQ3AxMjUwX0NJX0FTX0tJX1dJXG4gIFs5MV06ICdDUDEyNTAnLCAvLyBTUUxfQ3JvYXRpYW5fQ3AxMjUwX0NTX0FTX0tJX1dJXG4gIFs5Ml06ICdDUDEyNTAnLCAvLyBTUUxfQ3JvYXRpYW5fQ3AxMjUwX0NJX0FTX0tJX1dJXG4gIFs5M106ICdDUDEyNTAnLCAvLyBTUUxfU2xvdmFrX0NwMTI1MF9DU19BU19LSV9XSVxuICBbOTRdOiAnQ1AxMjUwJywgLy8gU1FMX1Nsb3Zha19DcDEyNTBfQ0lfQVNfS0lfV0lcbiAgWzk1XTogJ0NQMTI1MCcsIC8vIFNRTF9TbG92ZW5pYW5fQ3AxMjUwX0NTX0FTX0tJX1dJXG4gIFs5Nl06ICdDUDEyNTAnLCAvLyBTUUxfU2xvdmVuaWFuX0NwMTI1MF9DSV9BU19LSV9XSVxuICBbMTA0XTogJ0NQMTI1MScsIC8vIFNRTF9MYXRpbjFfR2VuZXJhbF8xMjUxX0JJTlxuICBbMTA1XTogJ0NQMTI1MScsIC8vIFNRTF9MYXRpbjFfR2VuZXJhbF9DUDEyNTFfQ1NfQVNcbiAgWzEwNl06ICdDUDEyNTEnLCAvLyBTUUxfTGF0aW4xX0dlbmVyYWxfQ1AxMjUxX0NJX0FTXG4gIFsxMDddOiAnQ1AxMjUxJywgLy8gU1FMX1VrcmFpbmlhbl9DcDEyNTFfQ1NfQVNfS0lfV0lcbiAgWzEwOF06ICdDUDEyNTEnLCAvLyBTUUxfVWtyYWluaWFuX0NwMTI1MV9DSV9BU19LSV9XSVxuICBbMTEyXTogJ0NQMTI1MycsIC8vIFNRTF9MYXRpbjFfR2VuZXJhbF8xMjUzX0JJTlxuICBbMTEzXTogJ0NQMTI1MycsIC8vIFNRTF9MYXRpbjFfR2VuZXJhbF9DUDEyNTNfQ1NfQVNcbiAgWzExNF06ICdDUDEyNTMnLCAvLyBTUUxfTGF0aW4xX0dlbmVyYWxfQ1AxMjUzX0NJX0FTXG4gIFsxMjBdOiAnQ1AxMjUzJywgLy8gU1FMX01peERpY3Rpb25fQ1AxMjUzX0NTX0FTXG4gIFsxMjFdOiAnQ1AxMjUzJywgLy8gU1FMX0FsdERpY3Rpb25fQ1AxMjUzX0NTX0FTXG4gIFsxMjJdOiAnQ1AxMjUzJywgLy8gU1FMX0FsdERpY3Rpb24yX0NQMTI1M19DU19BU1xuICBbMTI0XTogJ0NQMTI1MycsIC8vIFNRTF9MYXRpbjFfR2VuZXJhbF9DUDEyNTNfQ0lfQUlcbiAgWzEyOF06ICdDUDEyNTQnLCAvLyBTUUxfTGF0aW4xX0dlbmVyYWxfMTI1NF9CSU5cbiAgWzEyOV06ICdDUDEyNTQnLCAvLyBTUUxfTGF0aW4xX0dlbmVyYWxfQ3AxMjU0X0NTX0FTX0tJX1dJXG4gIFsxMzBdOiAnQ1AxMjU0JywgLy8gU1FMX0xhdGluMV9HZW5lcmFsX0NwMTI1NF9DSV9BU19LSV9XSVxuICBbMTM2XTogJ0NQMTI1NScsIC8vIFNRTF9MYXRpbjFfR2VuZXJhbF8xMjU1X0JJTlxuICBbMTM3XTogJ0NQMTI1NScsIC8vIFNRTF9MYXRpbjFfR2VuZXJhbF9DUDEyNTVfQ1NfQVNcbiAgWzEzOF06ICdDUDEyNTUnLCAvLyBTUUxfTGF0aW4xX0dlbmVyYWxfQ1AxMjU1X0NJX0FTXG4gIFsxNDRdOiAnQ1AxMjU2JywgLy8gU1FMX0xhdGluMV9HZW5lcmFsXzEyNTZfQklOXG4gIFsxNDVdOiAnQ1AxMjU2JywgLy8gU1FMX0xhdGluMV9HZW5lcmFsX0NQMTI1Nl9DU19BU1xuICBbMTQ2XTogJ0NQMTI1NicsIC8vIFNRTF9MYXRpbjFfR2VuZXJhbF9DUDEyNTZfQ0lfQVNcbiAgWzE1Ml06ICdDUDEyNTcnLCAvLyBTUUxfTGF0aW4xX0dlbmVyYWxfMTI1N19CSU5cbiAgWzE1M106ICdDUDEyNTcnLCAvLyBTUUxfTGF0aW4xX0dlbmVyYWxfQ1AxMjU3X0NTX0FTXG4gIFsxNTRdOiAnQ1AxMjU3JywgLy8gU1FMX0xhdGluMV9HZW5lcmFsX0NQMTI1N19DSV9BU1xuICBbMTU1XTogJ0NQMTI1NycsIC8vIFNRTF9Fc3Rvbmlhbl9DcDEyNTdfQ1NfQVNfS0lfV0lcbiAgWzE1Nl06ICdDUDEyNTcnLCAvLyBTUUxfRXN0b25pYW5fQ3AxMjU3X0NJX0FTX0tJX1dJXG4gIFsxNTddOiAnQ1AxMjU3JywgLy8gU1FMX0xhdHZpYW5fQ3AxMjU3X0NTX0FTX0tJX1dJXG4gIFsxNThdOiAnQ1AxMjU3JywgLy8gU1FMX0xhdHZpYW5fQ3AxMjU3X0NJX0FTX0tJX1dJXG4gIFsxNTldOiAnQ1AxMjU3JywgLy8gU1FMX0xpdGh1YW5pYW5fQ3AxMjU3X0NTX0FTX0tJX1dJXG4gIFsxNjBdOiAnQ1AxMjU3JywgLy8gU1FMX0xpdGh1YW5pYW5fQ3AxMjU3X0NJX0FTX0tJX1dJXG4gIFsxODNdOiAnQ1AxMjUyJywgLy8gU1FMX0RhbmlzaF9QcmVmX0NwMV9DSV9BU19LSV9XSVxuICBbMTg0XTogJ0NQMTI1MicsIC8vIFNRTF9Td2VkaXNoUGhvbmVfUHJlZl9DcDFfQ0lfQVNfS0lfV0lcbiAgWzE4NV06ICdDUDEyNTInLCAvLyBTUUxfU3dlZGlzaFN0ZF9QcmVmX0NwMV9DSV9BU19LSV9XSVxuICBbMTg2XTogJ0NQMTI1MicgLy8gU1FMX0ljZWxhbmRpY19QcmVmX0NwMV9DSV9BU19LSV9XSVxufTtcblxuZXhwb3J0IGNvbnN0IEZsYWdzID0ge1xuICBJR05PUkVfQ0FTRTogMSA8PCAwLFxuICBJR05PUkVfQUNDRU5UOiAxIDw8IDEsXG4gIElHTk9SRV9LQU5BOiAxIDw8IDIsXG4gIElHTk9SRV9XSURUSDogMSA8PCAzLFxuICBCSU5BUlk6IDEgPDwgNCxcbiAgQklOQVJZMjogMSA8PCA1LFxuICBVVEY4OiAxIDw8IDYsXG59O1xuXG5leHBvcnQgY2xhc3MgQ29sbGF0aW9uIHtcbiAgcmVhZG9ubHkgbGNpZDogbnVtYmVyO1xuICByZWFkb25seSBmbGFnczogbnVtYmVyO1xuICByZWFkb25seSB2ZXJzaW9uOiBudW1iZXI7XG4gIHJlYWRvbmx5IHNvcnRJZDogbnVtYmVyO1xuICByZWFkb25seSBjb2RlcGFnZTogRW5jb2RpbmcgfCB1bmRlZmluZWQ7XG5cbiAgcHJpdmF0ZSBidWZmZXI6IEJ1ZmZlciB8IHVuZGVmaW5lZDtcblxuICBzdGF0aWMgZnJvbUJ1ZmZlcihidWZmZXI6IEJ1ZmZlciwgb2Zmc2V0ID0gMCkge1xuICAgIGxldCBsY2lkID0gKGJ1ZmZlcltvZmZzZXQgKyAyXSAmIDB4MEYpIDw8IDE2O1xuICAgIGxjaWQgfD0gYnVmZmVyW29mZnNldCArIDFdIDw8IDg7XG4gICAgbGNpZCB8PSBidWZmZXJbb2Zmc2V0ICsgMF07XG5cbiAgICBsZXQgZmxhZ3MgPSAoYnVmZmVyW29mZnNldCArIDNdICYgMHgwRikgPDwgNDtcbiAgICBmbGFncyB8PSAoYnVmZmVyW29mZnNldCArIDJdICYgMHhGMCkgPj4+IDQ7XG5cbiAgICBjb25zdCB2ZXJzaW9uID0gKGJ1ZmZlcltvZmZzZXQgKyAzXSAmIDB4RjApID4+PiA0O1xuXG4gICAgY29uc3Qgc29ydElkID0gYnVmZmVyW29mZnNldCArIDRdO1xuXG4gICAgcmV0dXJuIG5ldyB0aGlzKGxjaWQsIGZsYWdzLCB2ZXJzaW9uLCBzb3J0SWQpO1xuICB9XG5cbiAgY29uc3RydWN0b3IobGNpZDogbnVtYmVyLCBmbGFnczogbnVtYmVyLCB2ZXJzaW9uOiBudW1iZXIsIHNvcnRJZDogbnVtYmVyKSB7XG4gICAgdGhpcy5idWZmZXIgPSB1bmRlZmluZWQ7XG5cbiAgICB0aGlzLmxjaWQgPSBsY2lkO1xuICAgIHRoaXMuZmxhZ3MgPSBmbGFncztcbiAgICB0aGlzLnZlcnNpb24gPSB2ZXJzaW9uO1xuICAgIHRoaXMuc29ydElkID0gc29ydElkO1xuXG4gICAgaWYgKHRoaXMuZmxhZ3MgJiBGbGFncy5VVEY4KSB7XG4gICAgICB0aGlzLmNvZGVwYWdlID0gJ3V0Zi04JztcbiAgICB9IGVsc2UgaWYgKHRoaXMuc29ydElkKSB7XG4gICAgICB0aGlzLmNvZGVwYWdlID0gY29kZXBhZ2VCeVNvcnRJZFt0aGlzLnNvcnRJZF07XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFRoZSBsYXN0IDE2IGJpdHMgb2YgdGhlIExDSUQgYXJlIHRoZSBsYW5ndWFnZSBpZC5cbiAgICAgIC8vIFRoZSBmaXJzdCA0IGJpdHMgZGVmaW5lIGFkZGl0aW9uYWwgc29ydCBvcmRlcnMuXG4gICAgICBjb25zdCBsYW5ndWFnZUlkID0gdGhpcy5sY2lkICYgMHhGRkZGO1xuICAgICAgdGhpcy5jb2RlcGFnZSA9IGNvZGVwYWdlQnlMYW5ndWFnZUlkW2xhbmd1YWdlSWRdO1xuICAgIH1cbiAgfVxuXG4gIHRvQnVmZmVyKCk6IEJ1ZmZlciB7XG4gICAgaWYgKHRoaXMuYnVmZmVyKSB7XG4gICAgICByZXR1cm4gdGhpcy5idWZmZXI7XG4gICAgfVxuXG4gICAgdGhpcy5idWZmZXIgPSBCdWZmZXIuYWxsb2MoNSk7XG5cbiAgICB0aGlzLmJ1ZmZlclswXSA9IHRoaXMubGNpZCAmIDB4RkY7XG4gICAgdGhpcy5idWZmZXJbMV0gPSAodGhpcy5sY2lkID4+PiA4KSAmIDB4RkY7XG4gICAgdGhpcy5idWZmZXJbMl0gPSAoKHRoaXMubGNpZCA+Pj4gMTYpICYgMHgwRikgfCAoKHRoaXMuZmxhZ3MgJiAweDBGKSA8PCA0KTtcbiAgICB0aGlzLmJ1ZmZlclszXSA9ICgodGhpcy5mbGFncyAmIDB4RjApID4+PiA0KSB8ICgodGhpcy52ZXJzaW9uICYgMHgwRikgPDwgNCk7XG4gICAgdGhpcy5idWZmZXJbNF0gPSB0aGlzLnNvcnRJZCAmIDB4RkY7XG5cbiAgICByZXR1cm4gdGhpcy5idWZmZXI7XG4gIH1cbn1cbiJdfQ==
|