@sentio/sdk 0.0.15 → 0.0.18
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/dist/cli.d.ts +2 -0
- package/dist/cli.js +86 -0
- package/dist/cli.js.map +1 -0
- package/dist/context.d.ts +23 -0
- package/dist/context.js +35 -0
- package/dist/context.js.map +1 -0
- package/dist/gen/builtin.d.ts +6 -0
- package/dist/gen/builtin.js +3 -0
- package/dist/gen/builtin.js.map +1 -0
- package/dist/gen/google/protobuf/empty.d.ts +16 -0
- package/dist/gen/google/protobuf/empty.js +70 -0
- package/dist/gen/google/protobuf/empty.js.map +1 -0
- package/dist/gen/processor/protos/processor.d.ts +443 -0
- package/dist/gen/processor/protos/processor.js +1713 -0
- package/dist/gen/processor/protos/processor.js.map +1 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.js +33 -0
- package/dist/index.js.map +1 -0
- package/dist/meter.d.ts +25 -0
- package/dist/meter.js +98 -0
- package/dist/meter.js.map +1 -0
- package/dist/numberish.d.ts +3 -0
- package/dist/numberish.js +12 -0
- package/dist/numberish.js.map +1 -0
- package/dist/processor.d.ts +34 -0
- package/dist/processor.js +109 -0
- package/dist/processor.js.map +1 -0
- package/dist/processor_server.d.ts +2 -0
- package/dist/processor_server.js +61 -0
- package/dist/processor_server.js.map +1 -0
- package/dist/provider.d.ts +4 -0
- package/dist/provider.js +17 -0
- package/dist/provider.js.map +1 -0
- package/dist/service.d.ts +18 -0
- package/dist/service.js +203 -0
- package/dist/service.js.map +1 -0
- package/dist/target-ethers-sentio/codegen.d.ts +2 -0
- package/dist/target-ethers-sentio/codegen.js +85 -0
- package/dist/target-ethers-sentio/codegen.js.map +1 -0
- package/dist/target-ethers-sentio/index.d.ts +5 -0
- package/dist/target-ethers-sentio/index.js +33 -0
- package/dist/target-ethers-sentio/index.js.map +1 -0
- package/dist/test_case/erc20.d.ts +1 -0
- package/dist/test_case/erc20.js +22 -0
- package/dist/test_case/erc20.js.map +1 -0
- package/dist/test_case/types/ERC20.d.ts +150 -0
- package/dist/test_case/types/ERC20.js +3 -0
- package/dist/test_case/types/ERC20.js.map +1 -0
- package/dist/test_case/types/common.d.ts +22 -0
- package/dist/test_case/types/common.js +3 -0
- package/dist/test_case/types/common.js.map +1 -0
- package/dist/test_case/types/erc20_processor.d.ts +27 -0
- package/dist/test_case/types/erc20_processor.js +54 -0
- package/dist/test_case/types/erc20_processor.js.map +1 -0
- package/dist/test_case/types/factories/ERC20__factory.d.ts +35 -0
- package/dist/test_case/types/factories/ERC20__factory.js +216 -0
- package/dist/test_case/types/factories/ERC20__factory.js.map +1 -0
- package/dist/test_case/types/factories/index.d.ts +1 -0
- package/dist/test_case/types/factories/index.js +9 -0
- package/dist/test_case/types/factories/index.js.map +1 -0
- package/dist/test_case/types/index.d.ts +3 -0
- package/dist/test_case/types/index.js +30 -0
- package/dist/test_case/types/index.js.map +1 -0
- package/package.json +1 -1
package/dist/cli.d.ts
ADDED
package/dist/cli.js
ADDED
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
"use strict";
|
|
3
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
4
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
5
|
+
};
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
const command_line_args_1 = __importDefault(require("command-line-args"));
|
|
8
|
+
const command_line_usage_1 = __importDefault(require("command-line-usage"));
|
|
9
|
+
const fs_1 = require("fs");
|
|
10
|
+
const form_data_1 = __importDefault(require("form-data"));
|
|
11
|
+
const mainDefinitions = [{ name: 'command', defaultOption: true }];
|
|
12
|
+
const mainOptions = (0, command_line_args_1.default)(mainDefinitions, {
|
|
13
|
+
stopAtFirstUnknown: true,
|
|
14
|
+
});
|
|
15
|
+
const argv = mainOptions._unknown || [];
|
|
16
|
+
if (mainOptions.command === 'upload') {
|
|
17
|
+
const optionDefinitions = [
|
|
18
|
+
{
|
|
19
|
+
name: 'help',
|
|
20
|
+
alias: 'h',
|
|
21
|
+
type: Boolean,
|
|
22
|
+
description: 'Display this usage guide.',
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
name: 'api_key',
|
|
26
|
+
type: String,
|
|
27
|
+
description: 'Your API key',
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
name: 'host',
|
|
31
|
+
alias: 'e',
|
|
32
|
+
type: String,
|
|
33
|
+
// TODO: change this back to 10000
|
|
34
|
+
defaultValue: 'http://localhost:10020',
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
name: 'src',
|
|
38
|
+
description: 'The input files to upload.',
|
|
39
|
+
type: String,
|
|
40
|
+
defaultOption: true,
|
|
41
|
+
typeLabel: '<file>',
|
|
42
|
+
},
|
|
43
|
+
];
|
|
44
|
+
const options = (0, command_line_args_1.default)(optionDefinitions, { argv });
|
|
45
|
+
if (options.help) {
|
|
46
|
+
const usage = (0, command_line_usage_1.default)([
|
|
47
|
+
{
|
|
48
|
+
header: 'Sentio upload',
|
|
49
|
+
content: 'Upload your project files to Sentio.',
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
header: 'Options',
|
|
53
|
+
optionList: optionDefinitions,
|
|
54
|
+
},
|
|
55
|
+
]);
|
|
56
|
+
console.log(usage);
|
|
57
|
+
}
|
|
58
|
+
else {
|
|
59
|
+
console.log(options);
|
|
60
|
+
const uploadFile = () => {
|
|
61
|
+
const form = new form_data_1.default();
|
|
62
|
+
form.append('attachment', (0, fs_1.createReadStream)(options.src));
|
|
63
|
+
const url = new URL(options.host);
|
|
64
|
+
form.submit({
|
|
65
|
+
protocol: url.protocol == 'https:' ? 'https:' : 'http:',
|
|
66
|
+
host: url.hostname,
|
|
67
|
+
path: '/api/v1/processors',
|
|
68
|
+
method: 'POST',
|
|
69
|
+
port: url.port,
|
|
70
|
+
headers: { 'api-key': options.api_key },
|
|
71
|
+
}, function (err, res) {
|
|
72
|
+
if (err) {
|
|
73
|
+
console.log(res.statusCode, res.statusMessage);
|
|
74
|
+
console.error(err);
|
|
75
|
+
}
|
|
76
|
+
else {
|
|
77
|
+
console.log(res.statusCode, res.statusMessage);
|
|
78
|
+
// TODO check if status is ok
|
|
79
|
+
console.log('uploaded');
|
|
80
|
+
}
|
|
81
|
+
});
|
|
82
|
+
};
|
|
83
|
+
uploadFile();
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
//# sourceMappingURL=cli.js.map
|
package/dist/cli.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";;;;;;AAEA,0EAA+C;AAC/C,4EAAiD;AACjD,2BAAqC;AACrC,0DAAgC;AAEhC,MAAM,eAAe,GAAG,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAA;AAClE,MAAM,WAAW,GAAG,IAAA,2BAAe,EAAC,eAAe,EAAE;IACnD,kBAAkB,EAAE,IAAI;CACzB,CAAC,CAAA;AACF,MAAM,IAAI,GAAG,WAAW,CAAC,QAAQ,IAAI,EAAE,CAAA;AAEvC,IAAI,WAAW,CAAC,OAAO,KAAK,QAAQ,EAAE;IACpC,MAAM,iBAAiB,GAAG;QACxB;YACE,IAAI,EAAE,MAAM;YACZ,KAAK,EAAE,GAAG;YACV,IAAI,EAAE,OAAO;YACb,WAAW,EAAE,2BAA2B;SACzC;QACD;YACE,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,MAAM;YACZ,WAAW,EAAE,cAAc;SAC5B;QACD;YACE,IAAI,EAAE,MAAM;YACZ,KAAK,EAAE,GAAG;YACV,IAAI,EAAE,MAAM;YACZ,kCAAkC;YAClC,YAAY,EAAE,wBAAwB;SACvC;QACD;YACE,IAAI,EAAE,KAAK;YACX,WAAW,EAAE,4BAA4B;YACzC,IAAI,EAAE,MAAM;YACZ,aAAa,EAAE,IAAI;YACnB,SAAS,EAAE,QAAQ;SACpB;KACF,CAAA;IACD,MAAM,OAAO,GAAG,IAAA,2BAAe,EAAC,iBAAiB,EAAE,EAAE,IAAI,EAAE,CAAC,CAAA;IAC5D,IAAI,OAAO,CAAC,IAAI,EAAE;QAChB,MAAM,KAAK,GAAG,IAAA,4BAAgB,EAAC;YAC7B;gBACE,MAAM,EAAE,eAAe;gBACvB,OAAO,EAAE,sCAAsC;aAChD;YACD;gBACE,MAAM,EAAE,SAAS;gBACjB,UAAU,EAAE,iBAAiB;aAC9B;SACF,CAAC,CAAA;QACF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;KACnB;SAAM;QACL,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;QAEpB,MAAM,UAAU,GAAG,GAAG,EAAE;YACtB,MAAM,IAAI,GAAG,IAAI,mBAAQ,EAAE,CAAA;YAC3B,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,IAAA,qBAAgB,EAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAA;YACxD,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;YACjC,IAAI,CAAC,MAAM,CACT;gBACE,QAAQ,EAAE,GAAG,CAAC,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO;gBACvD,IAAI,EAAE,GAAG,CAAC,QAAQ;gBAClB,IAAI,EAAE,oBAAoB;gBAC1B,MAAM,EAAE,MAAM;gBACd,IAAI,EAAE,GAAG,CAAC,IAAI;gBACd,OAAO,EAAE,EAAE,SAAS,EAAE,OAAO,CAAC,OAAO,EAAE;aACxC,EACD,UAAU,GAAG,EAAE,GAAG;gBAChB,IAAI,GAAG,EAAE;oBACP,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,aAAa,CAAC,CAAA;oBAC9C,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;iBACnB;qBAAM;oBACL,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,aAAa,CAAC,CAAA;oBAC9C,6BAA6B;oBAC7B,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;iBACxB;YACH,CAAC,CACF,CAAA;QACH,CAAC,CAAA;QAED,UAAU,EAAE,CAAA;KACb;CACF"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { CounterResult, HistogramResult } from './gen/processor/protos/processor';
|
|
2
|
+
import { BaseContract, EventFilter } from 'ethers';
|
|
3
|
+
import { Block, Log } from '@ethersproject/abstract-provider';
|
|
4
|
+
import { Meter } from './meter';
|
|
5
|
+
export declare class Context<TContract extends BaseContract, TContractWrapper extends ContractWrapper<TContract>> {
|
|
6
|
+
contract: TContractWrapper;
|
|
7
|
+
chainId: number;
|
|
8
|
+
log?: Log;
|
|
9
|
+
block?: Block;
|
|
10
|
+
histograms: HistogramResult[];
|
|
11
|
+
counters: CounterResult[];
|
|
12
|
+
meter: Meter;
|
|
13
|
+
constructor(contract: TContractWrapper, chainId: number, block?: Block, log?: Log);
|
|
14
|
+
}
|
|
15
|
+
export declare class ContractWrapper<TContract extends BaseContract> {
|
|
16
|
+
protected contract: TContract;
|
|
17
|
+
filters: {
|
|
18
|
+
[name: string]: (...args: Array<any>) => EventFilter;
|
|
19
|
+
};
|
|
20
|
+
block: Block;
|
|
21
|
+
constructor(contract: TContract);
|
|
22
|
+
get _underlineContract(): TContract;
|
|
23
|
+
}
|
package/dist/context.js
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ContractWrapper = exports.Context = void 0;
|
|
4
|
+
const meter_1 = require("./meter");
|
|
5
|
+
class Context {
|
|
6
|
+
contract;
|
|
7
|
+
chainId;
|
|
8
|
+
log;
|
|
9
|
+
block;
|
|
10
|
+
histograms = [];
|
|
11
|
+
counters = [];
|
|
12
|
+
meter;
|
|
13
|
+
constructor(contract, chainId, block, log) {
|
|
14
|
+
this.contract = contract;
|
|
15
|
+
this.chainId = chainId;
|
|
16
|
+
this.log = log;
|
|
17
|
+
this.block = block;
|
|
18
|
+
this.meter = new meter_1.Meter(this);
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
exports.Context = Context;
|
|
22
|
+
class ContractWrapper {
|
|
23
|
+
contract;
|
|
24
|
+
filters;
|
|
25
|
+
block;
|
|
26
|
+
constructor(contract) {
|
|
27
|
+
this.contract = contract;
|
|
28
|
+
this.filters = contract.filters;
|
|
29
|
+
}
|
|
30
|
+
get _underlineContract() {
|
|
31
|
+
return this.contract;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
exports.ContractWrapper = ContractWrapper;
|
|
35
|
+
//# sourceMappingURL=context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":";;;AAMA,mCAA+B;AAE/B,MAAa,OAAO;IAIlB,QAAQ,CAAkB;IAC1B,OAAO,CAAQ;IACf,GAAG,CAAM;IACT,KAAK,CAAQ;IACb,UAAU,GAAsB,EAAE,CAAA;IAClC,QAAQ,GAAoB,EAAE,CAAA;IAC9B,KAAK,CAAO;IAEZ,YACE,QAA0B,EAC1B,OAAe,EACf,KAAa,EACb,GAAS;QAET,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;QACxB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;QACtB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAA;QACd,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;QAClB,IAAI,CAAC,KAAK,GAAG,IAAI,aAAK,CAAC,IAAI,CAAC,CAAA;IAC9B,CAAC;CACF;AAxBD,0BAwBC;AAED,MAAa,eAAe;IAChB,QAAQ,CAAW;IAE7B,OAAO,CAA0D;IACjE,KAAK,CAAO;IAEZ,YAAY,QAAmB;QAC7B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;QACxB,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAA;IACjC,CAAC;IAED,IAAI,kBAAkB;QACpB,OAAO,IAAI,CAAC,QAAQ,CAAA;IACtB,CAAC;CACF;AAdD,0CAcC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import Long from "long";
|
|
2
|
+
declare type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;
|
|
3
|
+
export declare type DeepPartial<T> = T extends Builtin ? T : T extends Long ? string | number | Long : T extends Array<infer U> ? Array<DeepPartial<U>> : T extends ReadonlyArray<infer U> ? ReadonlyArray<DeepPartial<U>> : T extends {} ? {
|
|
4
|
+
[K in keyof T]?: DeepPartial<T[K]>;
|
|
5
|
+
} : Partial<T>;
|
|
6
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"builtin.js","sourceRoot":"","sources":["../../src/gen/builtin.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import Long from "long";
|
|
2
|
+
import * as _m0 from "protobufjs/minimal";
|
|
3
|
+
export interface Empty {
|
|
4
|
+
}
|
|
5
|
+
export declare const Empty: {
|
|
6
|
+
encode(_: Empty, writer?: _m0.Writer): _m0.Writer;
|
|
7
|
+
decode(input: _m0.Reader | Uint8Array, length?: number): Empty;
|
|
8
|
+
fromJSON(_: any): Empty;
|
|
9
|
+
toJSON(_: Empty): unknown;
|
|
10
|
+
fromPartial(_: DeepPartial<Empty>): Empty;
|
|
11
|
+
};
|
|
12
|
+
declare type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;
|
|
13
|
+
declare type DeepPartial<T> = T extends Builtin ? T : T extends Long ? string | number | Long : T extends Array<infer U> ? Array<DeepPartial<U>> : T extends ReadonlyArray<infer U> ? ReadonlyArray<DeepPartial<U>> : T extends {} ? {
|
|
14
|
+
[K in keyof T]?: DeepPartial<T[K]>;
|
|
15
|
+
} : Partial<T>;
|
|
16
|
+
export {};
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
|
+
};
|
|
28
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
+
exports.Empty = void 0;
|
|
30
|
+
/* eslint-disable */
|
|
31
|
+
const long_1 = __importDefault(require("long"));
|
|
32
|
+
const _m0 = __importStar(require("protobufjs/minimal"));
|
|
33
|
+
function createBaseEmpty() {
|
|
34
|
+
return {};
|
|
35
|
+
}
|
|
36
|
+
exports.Empty = {
|
|
37
|
+
encode(_, writer = _m0.Writer.create()) {
|
|
38
|
+
return writer;
|
|
39
|
+
},
|
|
40
|
+
decode(input, length) {
|
|
41
|
+
const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
|
|
42
|
+
let end = length === undefined ? reader.len : reader.pos + length;
|
|
43
|
+
const message = createBaseEmpty();
|
|
44
|
+
while (reader.pos < end) {
|
|
45
|
+
const tag = reader.uint32();
|
|
46
|
+
switch (tag >>> 3) {
|
|
47
|
+
default:
|
|
48
|
+
reader.skipType(tag & 7);
|
|
49
|
+
break;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
return message;
|
|
53
|
+
},
|
|
54
|
+
fromJSON(_) {
|
|
55
|
+
return {};
|
|
56
|
+
},
|
|
57
|
+
toJSON(_) {
|
|
58
|
+
const obj = {};
|
|
59
|
+
return obj;
|
|
60
|
+
},
|
|
61
|
+
fromPartial(_) {
|
|
62
|
+
const message = createBaseEmpty();
|
|
63
|
+
return message;
|
|
64
|
+
},
|
|
65
|
+
};
|
|
66
|
+
if (_m0.util.Long !== long_1.default) {
|
|
67
|
+
_m0.util.Long = long_1.default;
|
|
68
|
+
_m0.configure();
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=empty.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"empty.js","sourceRoot":"","sources":["../../../../src/gen/google/protobuf/empty.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,oBAAoB;AACpB,gDAAwB;AACxB,wDAA0C;AAI1C,SAAS,eAAe;IACtB,OAAO,EAAE,CAAC;AACZ,CAAC;AAEY,QAAA,KAAK,GAAG;IACnB,MAAM,CAAC,CAAQ,EAAE,SAAqB,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE;QACvD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM,CAAC,KAA8B,EAAE,MAAe;QACpD,MAAM,MAAM,GAAG,KAAK,YAAY,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC3E,IAAI,GAAG,GAAG,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC;QAClE,MAAM,OAAO,GAAG,eAAe,EAAE,CAAC;QAClC,OAAO,MAAM,CAAC,GAAG,GAAG,GAAG,EAAE;YACvB,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;YAC5B,QAAQ,GAAG,KAAK,CAAC,EAAE;gBACjB;oBACE,MAAM,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;oBACzB,MAAM;aACT;SACF;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,QAAQ,CAAC,CAAM;QACb,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,CAAC,CAAQ;QACb,MAAM,GAAG,GAAQ,EAAE,CAAC;QACpB,OAAO,GAAG,CAAC;IACb,CAAC;IAED,WAAW,CAAC,CAAqB;QAC/B,MAAM,OAAO,GAAG,eAAe,EAAE,CAAC;QAClC,OAAO,OAAO,CAAC;IACjB,CAAC;CACF,CAAC;AAuBF,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,cAAI,EAAE;IAC1B,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,cAAW,CAAC;IAC5B,GAAG,CAAC,SAAS,EAAE,CAAC;CACjB"}
|