@pact-foundation/pact-core 13.4.1-beta.15 → 13.4.1-beta.16
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/build/Makefile +2 -2
- package/build/pact.target.mk +14 -14
- package/package.json +1 -1
- package/src/ffi/types.d.ts +1 -1
- package/src/verifier/nativeVerifier.js +35 -80
- package/src/verifier/nativeVerifier.js.map +1 -1
- package/test.js +1 -1
package/build/Makefile
CHANGED
|
@@ -336,8 +336,8 @@ ifeq ($(strip $(foreach prefix,$(NO_LOAD),\
|
|
|
336
336
|
endif
|
|
337
337
|
|
|
338
338
|
quiet_cmd_regen_makefile = ACTION Regenerating $@
|
|
339
|
-
cmd_regen_makefile = cd $(srcdir); /Users/matthewfellows/.nvm/versions/node/
|
|
340
|
-
Makefile: $(srcdir)/../../../Library/Caches/node-gyp/
|
|
339
|
+
cmd_regen_makefile = cd $(srcdir); /Users/matthewfellows/.nvm/versions/node/v12.18.0/lib/node_modules/npm/node_modules/node-gyp/gyp/gyp_main.py -fmake --ignore-environment "-Dlibrary=shared_library" "-Dvisibility=default" "-Dnode_root_dir=/Users/matthewfellows/Library/Caches/node-gyp/12.18.0" "-Dnode_gyp_dir=/Users/matthewfellows/.nvm/versions/node/v12.18.0/lib/node_modules/npm/node_modules/node-gyp" "-Dnode_lib_file=/Users/matthewfellows/Library/Caches/node-gyp/12.18.0/<(target_arch)/node.lib" "-Dmodule_root_dir=/Users/matthewfellows/development/public/pact-js-core" "-Dnode_engine=v8" "--depth=." "-Goutput_dir=." "--generator-output=build" -I/Users/matthewfellows/development/public/pact-js-core/build/config.gypi -I/Users/matthewfellows/.nvm/versions/node/v12.18.0/lib/node_modules/npm/node_modules/node-gyp/addon.gypi -I/Users/matthewfellows/Library/Caches/node-gyp/12.18.0/include/node/common.gypi "--toplevel-dir=." binding.gyp
|
|
340
|
+
Makefile: $(srcdir)/binding.gyp $(srcdir)/../../../Library/Caches/node-gyp/12.18.0/include/node/common.gypi $(srcdir)/build/config.gypi $(srcdir)/../../../.nvm/versions/node/v12.18.0/lib/node_modules/npm/node_modules/node-gyp/addon.gypi
|
|
341
341
|
$(call do_cmd,regen_makefile)
|
|
342
342
|
|
|
343
343
|
# "all" is a concatenation of the "all" targets from all the included
|
package/build/pact.target.mk
CHANGED
|
@@ -51,13 +51,13 @@ CFLAGS_OBJC_Debug :=
|
|
|
51
51
|
CFLAGS_OBJCC_Debug :=
|
|
52
52
|
|
|
53
53
|
INCS_Debug := \
|
|
54
|
-
-I/Users/matthewfellows/Library/Caches/node-gyp/
|
|
55
|
-
-I/Users/matthewfellows/Library/Caches/node-gyp/
|
|
56
|
-
-I/Users/matthewfellows/Library/Caches/node-gyp/
|
|
57
|
-
-I/Users/matthewfellows/Library/Caches/node-gyp/
|
|
58
|
-
-I/Users/matthewfellows/Library/Caches/node-gyp/
|
|
59
|
-
-I/Users/matthewfellows/Library/Caches/node-gyp/
|
|
60
|
-
-I/Users/matthewfellows/Library/Caches/node-gyp/
|
|
54
|
+
-I/Users/matthewfellows/Library/Caches/node-gyp/12.18.0/include/node \
|
|
55
|
+
-I/Users/matthewfellows/Library/Caches/node-gyp/12.18.0/src \
|
|
56
|
+
-I/Users/matthewfellows/Library/Caches/node-gyp/12.18.0/deps/openssl/config \
|
|
57
|
+
-I/Users/matthewfellows/Library/Caches/node-gyp/12.18.0/deps/openssl/openssl/include \
|
|
58
|
+
-I/Users/matthewfellows/Library/Caches/node-gyp/12.18.0/deps/uv/include \
|
|
59
|
+
-I/Users/matthewfellows/Library/Caches/node-gyp/12.18.0/deps/zlib \
|
|
60
|
+
-I/Users/matthewfellows/Library/Caches/node-gyp/12.18.0/deps/v8/include \
|
|
61
61
|
-I$(srcdir)/node_modules/node-addon-api \
|
|
62
62
|
-I/Users/matthewfellows/development/public/pact-js-core/native
|
|
63
63
|
|
|
@@ -107,13 +107,13 @@ CFLAGS_OBJC_Release :=
|
|
|
107
107
|
CFLAGS_OBJCC_Release :=
|
|
108
108
|
|
|
109
109
|
INCS_Release := \
|
|
110
|
-
-I/Users/matthewfellows/Library/Caches/node-gyp/
|
|
111
|
-
-I/Users/matthewfellows/Library/Caches/node-gyp/
|
|
112
|
-
-I/Users/matthewfellows/Library/Caches/node-gyp/
|
|
113
|
-
-I/Users/matthewfellows/Library/Caches/node-gyp/
|
|
114
|
-
-I/Users/matthewfellows/Library/Caches/node-gyp/
|
|
115
|
-
-I/Users/matthewfellows/Library/Caches/node-gyp/
|
|
116
|
-
-I/Users/matthewfellows/Library/Caches/node-gyp/
|
|
110
|
+
-I/Users/matthewfellows/Library/Caches/node-gyp/12.18.0/include/node \
|
|
111
|
+
-I/Users/matthewfellows/Library/Caches/node-gyp/12.18.0/src \
|
|
112
|
+
-I/Users/matthewfellows/Library/Caches/node-gyp/12.18.0/deps/openssl/config \
|
|
113
|
+
-I/Users/matthewfellows/Library/Caches/node-gyp/12.18.0/deps/openssl/openssl/include \
|
|
114
|
+
-I/Users/matthewfellows/Library/Caches/node-gyp/12.18.0/deps/uv/include \
|
|
115
|
+
-I/Users/matthewfellows/Library/Caches/node-gyp/12.18.0/deps/zlib \
|
|
116
|
+
-I/Users/matthewfellows/Library/Caches/node-gyp/12.18.0/deps/v8/include \
|
|
117
117
|
-I$(srcdir)/node_modules/node-addon-api \
|
|
118
118
|
-I/Users/matthewfellows/development/public/pact-js-core/native
|
|
119
119
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pact-foundation/pact-core",
|
|
3
|
-
"version": "13.4.1-beta.
|
|
3
|
+
"version": "13.4.1-beta.16",
|
|
4
4
|
"description": "Core of @pact-foundation/pact. You almost certainly don't want to depend on this directly.",
|
|
5
5
|
"main": "src/index.js",
|
|
6
6
|
"homepage": "https://github.com/pact-foundation/pact-js-core#readme",
|
package/src/ffi/types.d.ts
CHANGED
|
@@ -77,5 +77,5 @@ export declare type Ffi = {
|
|
|
77
77
|
pactffiVerifierAddFileSource(handle: FfiVerifierHandle, file: string): void;
|
|
78
78
|
pactffiVerifierAddDirectorySource(handle: FfiVerifierHandle, dir: string): void;
|
|
79
79
|
pactffiVerifierUrlSource(handle: FfiVerifierHandle, url: string, username: string, password: string, token: string): void;
|
|
80
|
-
pactffiVerifierBrokerSourceWithSelectors(handle: FfiVerifierHandle, url: string,
|
|
80
|
+
pactffiVerifierBrokerSourceWithSelectors(handle: FfiVerifierHandle, url: string, username: string, password: string, token: string, enablePending: boolean, includeWipPactsSince: string, providerTags: string[], providerBranch: string, consumerVersionSelectors: string[], consumerVersionTags: string[]): void;
|
|
81
81
|
};
|
|
@@ -1,40 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
|
-
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
12
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
13
|
-
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
14
|
-
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
|
-
function step(op) {
|
|
16
|
-
if (f) throw new TypeError("Generator is already executing.");
|
|
17
|
-
while (_) try {
|
|
18
|
-
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
19
|
-
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
20
|
-
switch (op[0]) {
|
|
21
|
-
case 0: case 1: t = op; break;
|
|
22
|
-
case 4: _.label++; return { value: op[1], done: false };
|
|
23
|
-
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
24
|
-
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
25
|
-
default:
|
|
26
|
-
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
27
|
-
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
28
|
-
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
29
|
-
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
30
|
-
if (t[2]) _.ops.pop();
|
|
31
|
-
_.trys.pop(); continue;
|
|
32
|
-
}
|
|
33
|
-
op = body.call(thisArg, _);
|
|
34
|
-
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
35
|
-
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
|
-
}
|
|
37
|
-
};
|
|
38
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
3
|
exports.verify = void 0;
|
|
40
4
|
var logger_1 = require("../logger");
|
|
@@ -97,55 +61,46 @@ var verify = function (opts) {
|
|
|
97
61
|
ffi.pactffiVerifierSetPublishOptions(handle, opts.providerVersion || '', opts.buildUrl || '', opts.providerVersionTags || [], opts.providerBranch || '');
|
|
98
62
|
}
|
|
99
63
|
if (opts.pactBrokerUrl && opts.provider) {
|
|
100
|
-
ffi.pactffiVerifierBrokerSourceWithSelectors(handle, opts.pactBrokerUrl, opts.
|
|
64
|
+
ffi.pactffiVerifierBrokerSourceWithSelectors(handle, opts.pactBrokerUrl, opts.pactBrokerUsername || '', opts.pactBrokerPassword || '', opts.pactBrokerToken || '', opts.enablePending || false, opts.includeWipPactsSince || '', opts.providerVersionTags || [], opts.providerBranch || '', opts.consumerVersionSelectors
|
|
101
65
|
? objArrayToStringArray(opts.consumerVersionSelectors)
|
|
102
66
|
: [], opts.consumerVersionTags || []);
|
|
103
67
|
}
|
|
104
68
|
return new Promise(function (resolve, reject) {
|
|
105
|
-
ffi.pactffiVerifierExecute(handle, function (err, res) {
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
_a.sent();
|
|
113
|
-
ffi.pactffiVerifierShutdown(handle);
|
|
114
|
-
logger_1.default.debug("response from verifier: " + err + ", " + res);
|
|
115
|
-
if (err) {
|
|
116
|
-
if (typeof err === 'string') {
|
|
117
|
-
logger_1.default.error(err);
|
|
118
|
-
}
|
|
119
|
-
else if (err.message) {
|
|
120
|
-
logger_1.default.error(err.message);
|
|
121
|
-
}
|
|
122
|
-
logger_1.default.pactCrash('The underlying pact core returned an error through the ffi interface');
|
|
123
|
-
reject(err);
|
|
124
|
-
}
|
|
125
|
-
else {
|
|
126
|
-
switch (res) {
|
|
127
|
-
case types_1.VERIFY_PROVIDER_RESPONSE.VERIFICATION_SUCCESSFUL:
|
|
128
|
-
logger_1.default.info('Verification successful');
|
|
129
|
-
resolve("finished: " + res);
|
|
130
|
-
break;
|
|
131
|
-
case types_1.VERIFY_PROVIDER_RESPONSE.VERIFICATION_FAILED:
|
|
132
|
-
logger_1.default.error('Verification unsuccessful');
|
|
133
|
-
reject(new Error('Verfication failed'));
|
|
134
|
-
break;
|
|
135
|
-
case types_1.VERIFY_PROVIDER_RESPONSE.INVALID_ARGUMENTS:
|
|
136
|
-
logger_1.default.pactCrash('The underlying pact core was invoked incorrectly.');
|
|
137
|
-
reject(new Error('Verification was unable to run'));
|
|
138
|
-
break;
|
|
139
|
-
default:
|
|
140
|
-
logger_1.default.pactCrash('The underlying pact core crashed in an unexpected way.');
|
|
141
|
-
reject(new Error('Pact core crashed'));
|
|
142
|
-
break;
|
|
143
|
-
}
|
|
144
|
-
}
|
|
145
|
-
return [2];
|
|
69
|
+
ffi.pactffiVerifierExecute(handle, function (err, res) {
|
|
70
|
+
logger_1.default.debug("shutting down verifier with handle " + handle);
|
|
71
|
+
ffi.pactffiVerifierShutdown(handle);
|
|
72
|
+
logger_1.default.debug("response from verifier: " + err + ", " + res);
|
|
73
|
+
if (err) {
|
|
74
|
+
if (typeof err === 'string') {
|
|
75
|
+
logger_1.default.error(err);
|
|
146
76
|
}
|
|
147
|
-
|
|
148
|
-
|
|
77
|
+
else if (err.message) {
|
|
78
|
+
logger_1.default.error(err.message);
|
|
79
|
+
}
|
|
80
|
+
logger_1.default.pactCrash('The underlying pact core returned an error through the ffi interface');
|
|
81
|
+
reject(err);
|
|
82
|
+
}
|
|
83
|
+
else {
|
|
84
|
+
switch (res) {
|
|
85
|
+
case types_1.VERIFY_PROVIDER_RESPONSE.VERIFICATION_SUCCESSFUL:
|
|
86
|
+
logger_1.default.info('Verification successful');
|
|
87
|
+
resolve("finished: " + res);
|
|
88
|
+
break;
|
|
89
|
+
case types_1.VERIFY_PROVIDER_RESPONSE.VERIFICATION_FAILED:
|
|
90
|
+
logger_1.default.error('Verification unsuccessful');
|
|
91
|
+
reject(new Error('Verfication failed'));
|
|
92
|
+
break;
|
|
93
|
+
case types_1.VERIFY_PROVIDER_RESPONSE.INVALID_ARGUMENTS:
|
|
94
|
+
logger_1.default.pactCrash('The underlying pact core was invoked incorrectly.');
|
|
95
|
+
reject(new Error('Verification was unable to run'));
|
|
96
|
+
break;
|
|
97
|
+
default:
|
|
98
|
+
logger_1.default.pactCrash('The underlying pact core crashed in an unexpected way.');
|
|
99
|
+
reject(new Error('Pact core crashed'));
|
|
100
|
+
break;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
});
|
|
149
104
|
});
|
|
150
105
|
};
|
|
151
106
|
exports.verify = verify;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nativeVerifier.js","sourceRoot":"","sources":["nativeVerifier.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"nativeVerifier.js","sourceRoot":"","sources":["nativeVerifier.ts"],"names":[],"mappings":";;;AACA,oCAAgD;AAChD,8BAAmC;AACnC,sCAAwD;AACxD,2BAA0B;AAG1B,IAAM,GAAG,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC;AAE1C,uBAA0B;AAE1B,IAAM,qBAAqB,GAAG,UAAC,GAAc;IAC3C,OAAO,GAAG,CAAC,GAAG,CAAC,UAAC,CAAC,IAAK,OAAA,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAjB,CAAiB,CAAC,CAAC;AAC3C,CAAC,CAAC;AAEK,IAAM,MAAM,GAAG,UAAC,IAAqB;IAC1C,IAAM,GAAG,GAAG,eAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACrC,IAAI,IAAI,CAAC,QAAQ,EAAE;QACjB,oBAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;KAC5B;IAED,IAAM,MAAM,GAAG,GAAG,CAAC,gCAAgC,CACjD,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EACtB,GAAG,CAAC,OAAO,CACZ,CAAC;IACF,IAAM,GAAG,GAAG,IAAI,SAAG,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAE1C,GAAG,CAAC,8BAA8B,CAChC,MAAM,EACN,IAAI,CAAC,QAAQ,IAAI,EAAE,EACnB,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAC1B,GAAG,CAAC,QAAQ,EACZ,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,EACtB,GAAG,CAAC,QAAQ,CACb,CAAC;IAEF,IAAI,IAAI,CAAC,sBAAsB,EAAE;QAC/B,GAAG,CAAC,+BAA+B,CACjC,MAAM,EACN,IAAI,CAAC,sBAAsB,EAC3B,IAAI,CAAC,2BAA2B,IAAI,IAAI,EACxC,IAAI,CAAC,uBAAuB,IAAI,IAAI,CACrC,CAAC;KACH;IAED,IAAI,IAAI,CAAC,QAAQ,EAAE;QACjB,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAC,IAAI;YACzB,gBAAM,CAAC,KAAK,CAAC,4CAA0C,IAAM,CAAC,CAAC;YAC/D,IAAI;gBACF,IAAI,SAAG,CAAC,IAAI,CAAC,CAAC;gBACd,gBAAM,CAAC,KAAK,CAAC,YAAU,IAAI,qBAAkB,CAAC,CAAC;gBAE/C,GAAG,CAAC,wBAAwB,CAC1B,MAAM,EACN,IAAI,EACJ,IAAI,CAAC,kBAAkB,IAAI,EAAE,EAC7B,IAAI,CAAC,kBAAkB,IAAI,EAAE,EAC7B,IAAI,CAAC,eAAe,IAAI,EAAE,CAC3B,CAAC;aACH;YAAC,WAAM;gBACN,gBAAM,CAAC,KAAK,CAAI,IAAI,kBAAe,CAAC,CAAC;aACtC;YAED,IAAI;gBACF,IAAM,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;gBAE7B,IAAI,CAAC,CAAC,WAAW,EAAE,EAAE;oBACnB,gBAAM,CAAC,KAAK,CAAC,YAAU,IAAI,yBAAsB,CAAC,CAAC;oBACnD,GAAG,CAAC,iCAAiC,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;iBACrD;qBAAM,IAAI,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,cAAc,EAAE,EAAE;oBAC3C,gBAAM,CAAC,KAAK,CAAC,YAAU,IAAI,oBAAiB,CAAC,CAAC;oBAC9C,GAAG,CAAC,4BAA4B,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;iBAChD;aACF;YAAC,WAAM;gBACN,gBAAM,CAAC,KAAK,CAAI,IAAI,mBAAgB,CAAC,CAAC;aACvC;QACH,CAAC,CAAC,CAAC;KACJ;IAGD,IAAI,IAAI,CAAC,sBAAsB,IAAI,IAAI,CAAC,OAAO,EAAE;QAC/C,GAAG,CAAC,qCAAqC,CACvC,MAAM,EACN,IAAI,CAAC,sBAAsB,IAAI,KAAK,EACpC,IAAI,CAAC,OAAO,IAAI,KAAK,CACtB,CAAC;KACH;IAGD,IACE,IAAI,CAAC,yBAAyB;QAC9B,IAAI,CAAC,eAAe;QACpB,IAAI,CAAC,yBAAyB;QAC9B,IAAI,CAAC,QAAQ;QACb,IAAI,CAAC,sBAAsB;QAC3B,IAAI,CAAC,OAAO;QACZ,IAAI,CAAC,mBAAmB,EACxB;QACA,GAAG,CAAC,gCAAgC,CAClC,MAAM,EACN,IAAI,CAAC,eAAe,IAAI,EAAE,EAC1B,IAAI,CAAC,QAAQ,IAAI,EAAE,EACnB,IAAI,CAAC,mBAAmB,IAAI,EAAE,EAC9B,IAAI,CAAC,cAAc,IAAI,EAAE,CAC1B,CAAC;KACH;IAED,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,QAAQ,EAAE;QACvC,GAAG,CAAC,wCAAwC,CAC1C,MAAM,EACN,IAAI,CAAC,aAAa,EAClB,IAAI,CAAC,kBAAkB,IAAI,EAAE,EAC7B,IAAI,CAAC,kBAAkB,IAAI,EAAE,EAC7B,IAAI,CAAC,eAAe,IAAI,EAAE,EAC1B,IAAI,CAAC,aAAa,IAAI,KAAK,EAC3B,IAAI,CAAC,oBAAoB,IAAI,EAAE,EAC/B,IAAI,CAAC,mBAAmB,IAAI,EAAE,EAC9B,IAAI,CAAC,cAAc,IAAI,EAAE,EACzB,IAAI,CAAC,wBAAwB;YAC3B,CAAC,CAAC,qBAAqB,CAAC,IAAI,CAAC,wBAAwB,CAAC;YACtD,CAAC,CAAC,EAAE,EACN,IAAI,CAAC,mBAAmB,IAAI,EAAE,CAC/B,CAAC;KACH;IAGD,OAAO,IAAI,OAAO,CAAS,UAAC,OAAO,EAAE,MAAM;QACzC,GAAG,CAAC,sBAAsB,CAAC,MAAM,EAAE,UAAC,GAAU,EAAE,GAAW;YACzD,gBAAM,CAAC,KAAK,CAAC,wCAAsC,MAAQ,CAAC,CAAC;YAE7D,GAAG,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC;YAEpC,gBAAM,CAAC,KAAK,CAAC,6BAA2B,GAAG,UAAK,GAAK,CAAC,CAAC;YACvD,IAAI,GAAG,EAAE;gBACP,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;oBAE3B,gBAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;iBACnB;qBAAM,IAAI,GAAG,CAAC,OAAO,EAAE;oBACtB,gBAAM,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;iBAC3B;gBACD,gBAAM,CAAC,SAAS,CACd,sEAAsE,CACvE,CAAC;gBACF,MAAM,CAAC,GAAG,CAAC,CAAC;aACb;iBAAM;gBACL,QAAQ,GAAG,EAAE;oBACX,KAAK,gCAAwB,CAAC,uBAAuB;wBACnD,gBAAM,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;wBACvC,OAAO,CAAC,eAAa,GAAK,CAAC,CAAC;wBAC5B,MAAM;oBACR,KAAK,gCAAwB,CAAC,mBAAmB;wBAC/C,gBAAM,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;wBAC1C,MAAM,CAAC,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC,CAAC;wBACxC,MAAM;oBACR,KAAK,gCAAwB,CAAC,iBAAiB;wBAC7C,gBAAM,CAAC,SAAS,CACd,mDAAmD,CACpD,CAAC;wBACF,MAAM,CAAC,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC,CAAC;wBACpD,MAAM;oBACR;wBACE,gBAAM,CAAC,SAAS,CACd,wDAAwD,CACzD,CAAC;wBACF,MAAM,CAAC,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC;wBACvC,MAAM;iBACT;aACF;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AA3JW,QAAA,MAAM,UA2JjB"}
|