@rosen-bridge/watcher-data-extractor 4.2.4 → 5.0.0-7ef8b706

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.
Files changed (34) hide show
  1. package/dist/actions/EventTriggerAction.d.ts.map +1 -1
  2. package/dist/actions/EventTriggerAction.js +3 -2
  3. package/dist/actions/commitmentAction.d.ts +2 -1
  4. package/dist/actions/commitmentAction.d.ts.map +1 -1
  5. package/dist/actions/commitmentAction.js +18 -10
  6. package/dist/entities/CommitmentEntity.d.ts +2 -0
  7. package/dist/entities/CommitmentEntity.d.ts.map +1 -1
  8. package/dist/entities/CommitmentEntity.js +11 -1
  9. package/dist/entities/EventTriggerEntity.d.ts +2 -1
  10. package/dist/entities/EventTriggerEntity.d.ts.map +1 -1
  11. package/dist/entities/EventTriggerEntity.js +8 -3
  12. package/dist/extractor/EventTriggerExtractor.d.ts.map +1 -1
  13. package/dist/extractor/EventTriggerExtractor.js +9 -5
  14. package/dist/extractor/commitmentExtractor.d.ts.map +1 -1
  15. package/dist/extractor/commitmentExtractor.js +7 -3
  16. package/dist/interfaces/extractedEventTrigger.d.ts +2 -1
  17. package/dist/interfaces/extractedEventTrigger.d.ts.map +1 -1
  18. package/dist/interfaces/extractedEventTrigger.js +1 -1
  19. package/dist/interfaces/types.d.ts +5 -0
  20. package/dist/interfaces/types.d.ts.map +1 -1
  21. package/dist/interfaces/types.js +1 -1
  22. package/dist/migrations/index.d.ts +4 -4
  23. package/dist/migrations/index.d.ts.map +1 -1
  24. package/dist/migrations/index.js +5 -1
  25. package/dist/migrations/postgres/1703509820315-migration.d.ts +7 -0
  26. package/dist/migrations/postgres/1703509820315-migration.d.ts.map +1 -0
  27. package/dist/migrations/postgres/1703509820315-migration.js +66 -0
  28. package/dist/migrations/sqlite/1703509480176-migration.d.ts +7 -0
  29. package/dist/migrations/sqlite/1703509480176-migration.d.ts.map +1 -0
  30. package/dist/migrations/sqlite/1703509480176-migration.js +421 -0
  31. package/dist/utils.d.ts +10 -1
  32. package/dist/utils.d.ts.map +1 -1
  33. package/dist/utils.js +15 -2
  34. package/package.json +1 -1
@@ -16,5 +16,10 @@ export interface AddressBoxes {
16
16
  items: Array<ErgoBoxJson>;
17
17
  total: number;
18
18
  }
19
+ export interface SpendInfo {
20
+ boxId: string;
21
+ txId: string;
22
+ index: number;
23
+ }
19
24
  export {};
20
25
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../lib/interfaces/types.ts"],"names":[],"mappings":"AAAA,KAAK,KAAK,GAAG;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,gBAAgB,EAAE,MAAM,CAAC;IACzB,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;CACtB;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;IAC1B,KAAK,EAAE,MAAM,CAAC;CACf"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../lib/interfaces/types.ts"],"names":[],"mappings":"AAAA,KAAK,KAAK,GAAG;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,gBAAgB,EAAE,MAAM,CAAC;IACzB,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;CACtB;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;IAC1B,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf"}
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvaW50ZXJmYWNlcy90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsidHlwZSBBc3NldCA9IHtcbiAgdG9rZW5JZDogc3RyaW5nO1xuICBpbmRleDogbnVtYmVyO1xuICBhbW91bnQ6IGJpZ2ludDtcbiAgbmFtZTogc3RyaW5nO1xufTtcblxuZXhwb3J0IGludGVyZmFjZSBFcmdvQm94SnNvbiB7XG4gIGJveElkOiBzdHJpbmc7XG4gIGFkZHJlc3M6IHN0cmluZztcbiAgdmFsdWU6IGJpZ2ludDtcbiAgYmxvY2tJZDogc3RyaW5nO1xuICBzZXR0bGVtZW50SGVpZ2h0OiBudW1iZXI7XG4gIGFzc2V0czogQXJyYXk8QXNzZXQ+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFkZHJlc3NCb3hlcyB7XG4gIGl0ZW1zOiBBcnJheTxFcmdvQm94SnNvbj47XG4gIHRvdGFsOiBudW1iZXI7XG59XG4iXX0=
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvaW50ZXJmYWNlcy90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsidHlwZSBBc3NldCA9IHtcbiAgdG9rZW5JZDogc3RyaW5nO1xuICBpbmRleDogbnVtYmVyO1xuICBhbW91bnQ6IGJpZ2ludDtcbiAgbmFtZTogc3RyaW5nO1xufTtcblxuZXhwb3J0IGludGVyZmFjZSBFcmdvQm94SnNvbiB7XG4gIGJveElkOiBzdHJpbmc7XG4gIGFkZHJlc3M6IHN0cmluZztcbiAgdmFsdWU6IGJpZ2ludDtcbiAgYmxvY2tJZDogc3RyaW5nO1xuICBzZXR0bGVtZW50SGVpZ2h0OiBudW1iZXI7XG4gIGFzc2V0czogQXJyYXk8QXNzZXQ+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFkZHJlc3NCb3hlcyB7XG4gIGl0ZW1zOiBBcnJheTxFcmdvQm94SnNvbj47XG4gIHRvdGFsOiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3BlbmRJbmZvIHtcbiAgYm94SWQ6IHN0cmluZztcbiAgdHhJZDogc3RyaW5nO1xuICBpbmRleDogbnVtYmVyO1xufVxuIl19
@@ -1,7 +1,7 @@
1
- import { migration1699874447928 } from './postgres/1699874447928-migration';
2
- import { migration1688555766601 } from './sqlite/1688555766601-migration';
1
+ import { migration1688554842087 } from './postgres/1688554842087-migration';
2
+ import { migration1703509480176 } from './sqlite/1703509480176-migration';
3
3
  export declare const migrations: {
4
- sqlite: (typeof migration1688555766601)[];
5
- postgres: (typeof migration1699874447928)[];
4
+ sqlite: (typeof migration1703509480176)[];
5
+ postgres: (typeof migration1688554842087)[];
6
6
  };
7
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../lib/migrations/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAC5E,OAAO,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAC;AAI1E,eAAO,MAAM,UAAU;;;CAWtB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../lib/migrations/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAO5E,OAAO,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAC;AAE1E,eAAO,MAAM,UAAU;;;CAatB,CAAC"}
@@ -1,19 +1,23 @@
1
1
  import { migration1688554842087 } from './postgres/1688554842087-migration';
2
2
  import { migration1689175974257 } from './postgres/1689175974257-migration';
3
3
  import { migration1699874447928 } from './postgres/1699874447928-migration';
4
+ import { migration1703509820315 } from './postgres/1703509820315-migration';
4
5
  import { migration1688555766601 } from './sqlite/1688555766601-migration';
5
6
  import { migration1689175103163 } from './sqlite/1689175103163-migration';
6
7
  import { migration1699872205117 } from './sqlite/1699872205117-migration';
8
+ import { migration1703509480176 } from './sqlite/1703509480176-migration';
7
9
  export const migrations = {
8
10
  sqlite: [
9
11
  migration1688555766601,
10
12
  migration1689175103163,
11
13
  migration1699872205117,
14
+ migration1703509480176,
12
15
  ],
13
16
  postgres: [
14
17
  migration1688554842087,
15
18
  migration1689175974257,
16
19
  migration1699874447928,
20
+ migration1703509820315,
17
21
  ],
18
22
  };
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvbWlncmF0aW9ucy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUM1RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUM1RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUM1RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUMxRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUMxRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUUxRSxNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUc7SUFDeEIsTUFBTSxFQUFFO1FBQ04sc0JBQXNCO1FBQ3RCLHNCQUFzQjtRQUN0QixzQkFBc0I7S0FDdkI7SUFDRCxRQUFRLEVBQUU7UUFDUixzQkFBc0I7UUFDdEIsc0JBQXNCO1FBQ3RCLHNCQUFzQjtLQUN2QjtDQUNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBtaWdyYXRpb24xNjg4NTU0ODQyMDg3IH0gZnJvbSAnLi9wb3N0Z3Jlcy8xNjg4NTU0ODQyMDg3LW1pZ3JhdGlvbic7XG5pbXBvcnQgeyBtaWdyYXRpb24xNjg5MTc1OTc0MjU3IH0gZnJvbSAnLi9wb3N0Z3Jlcy8xNjg5MTc1OTc0MjU3LW1pZ3JhdGlvbic7XG5pbXBvcnQgeyBtaWdyYXRpb24xNjk5ODc0NDQ3OTI4IH0gZnJvbSAnLi9wb3N0Z3Jlcy8xNjk5ODc0NDQ3OTI4LW1pZ3JhdGlvbic7XG5pbXBvcnQgeyBtaWdyYXRpb24xNjg4NTU1NzY2NjAxIH0gZnJvbSAnLi9zcWxpdGUvMTY4ODU1NTc2NjYwMS1taWdyYXRpb24nO1xuaW1wb3J0IHsgbWlncmF0aW9uMTY4OTE3NTEwMzE2MyB9IGZyb20gJy4vc3FsaXRlLzE2ODkxNzUxMDMxNjMtbWlncmF0aW9uJztcbmltcG9ydCB7IG1pZ3JhdGlvbjE2OTk4NzIyMDUxMTcgfSBmcm9tICcuL3NxbGl0ZS8xNjk5ODcyMjA1MTE3LW1pZ3JhdGlvbic7XG5cbmV4cG9ydCBjb25zdCBtaWdyYXRpb25zID0ge1xuICBzcWxpdGU6IFtcbiAgICBtaWdyYXRpb24xNjg4NTU1NzY2NjAxLFxuICAgIG1pZ3JhdGlvbjE2ODkxNzUxMDMxNjMsXG4gICAgbWlncmF0aW9uMTY5OTg3MjIwNTExNyxcbiAgXSxcbiAgcG9zdGdyZXM6IFtcbiAgICBtaWdyYXRpb24xNjg4NTU0ODQyMDg3LFxuICAgIG1pZ3JhdGlvbjE2ODkxNzU5NzQyNTcsXG4gICAgbWlncmF0aW9uMTY5OTg3NDQ0NzkyOCxcbiAgXSxcbn07XG4iXX0=
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvbWlncmF0aW9ucy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUM1RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUM1RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUM1RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUM1RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUMxRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUMxRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUMxRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUUxRSxNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUc7SUFDeEIsTUFBTSxFQUFFO1FBQ04sc0JBQXNCO1FBQ3RCLHNCQUFzQjtRQUN0QixzQkFBc0I7UUFDdEIsc0JBQXNCO0tBQ3ZCO0lBQ0QsUUFBUSxFQUFFO1FBQ1Isc0JBQXNCO1FBQ3RCLHNCQUFzQjtRQUN0QixzQkFBc0I7UUFDdEIsc0JBQXNCO0tBQ3ZCO0NBQ0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG1pZ3JhdGlvbjE2ODg1NTQ4NDIwODcgfSBmcm9tICcuL3Bvc3RncmVzLzE2ODg1NTQ4NDIwODctbWlncmF0aW9uJztcbmltcG9ydCB7IG1pZ3JhdGlvbjE2ODkxNzU5NzQyNTcgfSBmcm9tICcuL3Bvc3RncmVzLzE2ODkxNzU5NzQyNTctbWlncmF0aW9uJztcbmltcG9ydCB7IG1pZ3JhdGlvbjE2OTk4NzQ0NDc5MjggfSBmcm9tICcuL3Bvc3RncmVzLzE2OTk4NzQ0NDc5MjgtbWlncmF0aW9uJztcbmltcG9ydCB7IG1pZ3JhdGlvbjE3MDM1MDk4MjAzMTUgfSBmcm9tICcuL3Bvc3RncmVzLzE3MDM1MDk4MjAzMTUtbWlncmF0aW9uJztcbmltcG9ydCB7IG1pZ3JhdGlvbjE2ODg1NTU3NjY2MDEgfSBmcm9tICcuL3NxbGl0ZS8xNjg4NTU1NzY2NjAxLW1pZ3JhdGlvbic7XG5pbXBvcnQgeyBtaWdyYXRpb24xNjg5MTc1MTAzMTYzIH0gZnJvbSAnLi9zcWxpdGUvMTY4OTE3NTEwMzE2My1taWdyYXRpb24nO1xuaW1wb3J0IHsgbWlncmF0aW9uMTY5OTg3MjIwNTExNyB9IGZyb20gJy4vc3FsaXRlLzE2OTk4NzIyMDUxMTctbWlncmF0aW9uJztcbmltcG9ydCB7IG1pZ3JhdGlvbjE3MDM1MDk0ODAxNzYgfSBmcm9tICcuL3NxbGl0ZS8xNzAzNTA5NDgwMTc2LW1pZ3JhdGlvbic7XG5cbmV4cG9ydCBjb25zdCBtaWdyYXRpb25zID0ge1xuICBzcWxpdGU6IFtcbiAgICBtaWdyYXRpb24xNjg4NTU1NzY2NjAxLFxuICAgIG1pZ3JhdGlvbjE2ODkxNzUxMDMxNjMsXG4gICAgbWlncmF0aW9uMTY5OTg3MjIwNTExNyxcbiAgICBtaWdyYXRpb24xNzAzNTA5NDgwMTc2LFxuICBdLFxuICBwb3N0Z3JlczogW1xuICAgIG1pZ3JhdGlvbjE2ODg1NTQ4NDIwODcsXG4gICAgbWlncmF0aW9uMTY4OTE3NTk3NDI1NyxcbiAgICBtaWdyYXRpb24xNjk5ODc0NDQ3OTI4LFxuICAgIG1pZ3JhdGlvbjE3MDM1MDk4MjAzMTUsXG4gIF0sXG59O1xuIl19
@@ -0,0 +1,7 @@
1
+ import { MigrationInterface, QueryRunner } from 'typeorm';
2
+ export declare class migration1703509820315 implements MigrationInterface {
3
+ name: string;
4
+ up(queryRunner: QueryRunner): Promise<void>;
5
+ down(queryRunner: QueryRunner): Promise<void>;
6
+ }
7
+ //# sourceMappingURL=1703509820315-migration.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"1703509820315-migration.d.ts","sourceRoot":"","sources":["../../../lib/migrations/postgres/1703509820315-migration.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAI1D,qBAAa,sBAAuB,YAAW,kBAAkB;IAC/D,IAAI,SAA4B;IAEnB,EAAE,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IA8C3C,IAAI,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;CAkB3D"}
@@ -0,0 +1,66 @@
1
+ import EventTriggerEntity from '../../entities/EventTriggerEntity';
2
+ import { getWidInfo } from '../../utils';
3
+ export class migration1703509820315 {
4
+ name = 'migration1703509820315';
5
+ async up(queryRunner) {
6
+ await queryRunner.query(`
7
+ ALTER TABLE "event_trigger_entity"
8
+ ADD "WIDsCount" integer NOT NULL DEFAULT 0
9
+ `);
10
+ await queryRunner.query(`
11
+ ALTER TABLE "event_trigger_entity"
12
+ ADD "WIDsHash" character varying NOT NULL DEFAULT ''
13
+ `);
14
+ await queryRunner.query(`
15
+ ALTER TABLE "event_trigger_entity"
16
+ ALTER "WIDsCount" DROP DEFAULT
17
+ `);
18
+ await queryRunner.query(`
19
+ ALTER TABLE "event_trigger_entity"
20
+ ALTER "WIDsHash" DROP DEFAULT
21
+ `);
22
+ await queryRunner.query(`
23
+ ALTER TABLE "commitment_entity"
24
+ ADD "spendTxId" text
25
+ `);
26
+ await queryRunner.query(`
27
+ ALTER TABLE "commitment_entity"
28
+ ADD "spendIndex" integer
29
+ `);
30
+ // calculate `WIDsCount` and `WIDsHash` columns in `event_trigger_entity`
31
+ const events = await queryRunner.connection
32
+ .createQueryBuilder()
33
+ .select('id')
34
+ .addSelect('WIDs')
35
+ .from('event_trigger_entity', 'ete')
36
+ .getRawMany();
37
+ for (const event of events) {
38
+ const { WIDsHash, WIDsCount } = getWidInfo(event.WIDs);
39
+ await queryRunner.connection
40
+ .getRepository(EventTriggerEntity)
41
+ .update({ id: event.id }, { WIDsHash, WIDsCount });
42
+ }
43
+ await queryRunner.query(`
44
+ ALTER TABLE "event_trigger_entity" DROP COLUMN "WIDs"
45
+ `);
46
+ }
47
+ async down(queryRunner) {
48
+ await queryRunner.query(`
49
+ ALTER TABLE "commitment_entity" DROP COLUMN "spendIndex"
50
+ `);
51
+ await queryRunner.query(`
52
+ ALTER TABLE "commitment_entity" DROP COLUMN "spendTxId"
53
+ `);
54
+ await queryRunner.query(`
55
+ ALTER TABLE "event_trigger_entity" DROP COLUMN "WIDsHash"
56
+ `);
57
+ await queryRunner.query(`
58
+ ALTER TABLE "event_trigger_entity" DROP COLUMN "WIDsCount"
59
+ `);
60
+ await queryRunner.query(`
61
+ ALTER TABLE "event_trigger_entity"
62
+ ADD "WIDs" character varying NOT NULL
63
+ `);
64
+ }
65
+ }
66
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMTcwMzUwOTgyMDMxNS1taWdyYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9saWIvbWlncmF0aW9ucy9wb3N0Z3Jlcy8xNzAzNTA5ODIwMzE1LW1pZ3JhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLGtCQUFrQixNQUFNLG1DQUFtQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFekMsTUFBTSxPQUFPLHNCQUFzQjtJQUNqQyxJQUFJLEdBQUcsd0JBQXdCLENBQUM7SUFFekIsS0FBSyxDQUFDLEVBQUUsQ0FBQyxXQUF3QjtRQUN0QyxNQUFNLFdBQVcsQ0FBQyxLQUFLLENBQUM7OztTQUduQixDQUFDLENBQUM7UUFDUCxNQUFNLFdBQVcsQ0FBQyxLQUFLLENBQUM7OztTQUduQixDQUFDLENBQUM7UUFDUCxNQUFNLFdBQVcsQ0FBQyxLQUFLLENBQUM7OztTQUduQixDQUFDLENBQUM7UUFDUCxNQUFNLFdBQVcsQ0FBQyxLQUFLLENBQUM7OztTQUduQixDQUFDLENBQUM7UUFDUCxNQUFNLFdBQVcsQ0FBQyxLQUFLLENBQUM7OztTQUduQixDQUFDLENBQUM7UUFDUCxNQUFNLFdBQVcsQ0FBQyxLQUFLLENBQUM7OztTQUduQixDQUFDLENBQUM7UUFFUCx5RUFBeUU7UUFDekUsTUFBTSxNQUFNLEdBQUcsTUFBTSxXQUFXLENBQUMsVUFBVTthQUN4QyxrQkFBa0IsRUFBRTthQUNwQixNQUFNLENBQUMsSUFBSSxDQUFDO2FBQ1osU0FBUyxDQUFDLE1BQU0sQ0FBQzthQUNqQixJQUFJLENBQUMsc0JBQXNCLEVBQUUsS0FBSyxDQUFDO2FBQ25DLFVBQVUsRUFBRSxDQUFDO1FBRWhCLEtBQUssTUFBTSxLQUFLLElBQUksTUFBTSxFQUFFO1lBQzFCLE1BQU0sRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLEdBQUcsVUFBVSxDQUFFLEtBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNoRSxNQUFNLFdBQVcsQ0FBQyxVQUFVO2lCQUN6QixhQUFhLENBQUMsa0JBQWtCLENBQUM7aUJBQ2pDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsRUFBRSxLQUFLLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQztTQUN0RDtRQUVELE1BQU0sV0FBVyxDQUFDLEtBQUssQ0FBQzs7U0FFbkIsQ0FBQyxDQUFDO0lBQ1QsQ0FBQztJQUVNLEtBQUssQ0FBQyxJQUFJLENBQUMsV0FBd0I7UUFDeEMsTUFBTSxXQUFXLENBQUMsS0FBSyxDQUFDOztTQUVuQixDQUFDLENBQUM7UUFDUCxNQUFNLFdBQVcsQ0FBQyxLQUFLLENBQUM7O1NBRW5CLENBQUMsQ0FBQztRQUNQLE1BQU0sV0FBVyxDQUFDLEtBQUssQ0FBQzs7U0FFbkIsQ0FBQyxDQUFDO1FBQ1AsTUFBTSxXQUFXLENBQUMsS0FBSyxDQUFDOztTQUVuQixDQUFDLENBQUM7UUFDUCxNQUFNLFdBQVcsQ0FBQyxLQUFLLENBQUM7OztTQUduQixDQUFDLENBQUM7SUFDVCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNaWdyYXRpb25JbnRlcmZhY2UsIFF1ZXJ5UnVubmVyIH0gZnJvbSAndHlwZW9ybSc7XG5pbXBvcnQgRXZlbnRUcmlnZ2VyRW50aXR5IGZyb20gJy4uLy4uL2VudGl0aWVzL0V2ZW50VHJpZ2dlckVudGl0eSc7XG5pbXBvcnQgeyBnZXRXaWRJbmZvIH0gZnJvbSAnLi4vLi4vdXRpbHMnO1xuXG5leHBvcnQgY2xhc3MgbWlncmF0aW9uMTcwMzUwOTgyMDMxNSBpbXBsZW1lbnRzIE1pZ3JhdGlvbkludGVyZmFjZSB7XG4gIG5hbWUgPSAnbWlncmF0aW9uMTcwMzUwOTgyMDMxNSc7XG5cbiAgcHVibGljIGFzeW5jIHVwKHF1ZXJ5UnVubmVyOiBRdWVyeVJ1bm5lcik6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHF1ZXJ5UnVubmVyLnF1ZXJ5KGBcbiAgICAgICAgICAgIEFMVEVSIFRBQkxFIFwiZXZlbnRfdHJpZ2dlcl9lbnRpdHlcIlxuICAgICAgICAgICAgQUREIFwiV0lEc0NvdW50XCIgaW50ZWdlciBOT1QgTlVMTCBERUZBVUxUIDBcbiAgICAgICAgYCk7XG4gICAgYXdhaXQgcXVlcnlSdW5uZXIucXVlcnkoYFxuICAgICAgICAgICAgQUxURVIgVEFCTEUgXCJldmVudF90cmlnZ2VyX2VudGl0eVwiXG4gICAgICAgICAgICBBREQgXCJXSURzSGFzaFwiIGNoYXJhY3RlciB2YXJ5aW5nIE5PVCBOVUxMIERFRkFVTFQgJydcbiAgICAgICAgYCk7XG4gICAgYXdhaXQgcXVlcnlSdW5uZXIucXVlcnkoYFxuICAgICAgICAgICAgQUxURVIgVEFCTEUgXCJldmVudF90cmlnZ2VyX2VudGl0eVwiXG4gICAgICAgICAgICBBTFRFUiBcIldJRHNDb3VudFwiIERST1AgREVGQVVMVFxuICAgICAgICBgKTtcbiAgICBhd2FpdCBxdWVyeVJ1bm5lci5xdWVyeShgXG4gICAgICAgICAgICBBTFRFUiBUQUJMRSBcImV2ZW50X3RyaWdnZXJfZW50aXR5XCJcbiAgICAgICAgICAgIEFMVEVSIFwiV0lEc0hhc2hcIiBEUk9QIERFRkFVTFRcbiAgICAgICAgYCk7XG4gICAgYXdhaXQgcXVlcnlSdW5uZXIucXVlcnkoYFxuICAgICAgICAgICAgQUxURVIgVEFCTEUgXCJjb21taXRtZW50X2VudGl0eVwiXG4gICAgICAgICAgICBBREQgXCJzcGVuZFR4SWRcIiB0ZXh0XG4gICAgICAgIGApO1xuICAgIGF3YWl0IHF1ZXJ5UnVubmVyLnF1ZXJ5KGBcbiAgICAgICAgICAgIEFMVEVSIFRBQkxFIFwiY29tbWl0bWVudF9lbnRpdHlcIlxuICAgICAgICAgICAgQUREIFwic3BlbmRJbmRleFwiIGludGVnZXJcbiAgICAgICAgYCk7XG5cbiAgICAvLyBjYWxjdWxhdGUgYFdJRHNDb3VudGAgYW5kIGBXSURzSGFzaGAgY29sdW1ucyBpbiBgZXZlbnRfdHJpZ2dlcl9lbnRpdHlgXG4gICAgY29uc3QgZXZlbnRzID0gYXdhaXQgcXVlcnlSdW5uZXIuY29ubmVjdGlvblxuICAgICAgLmNyZWF0ZVF1ZXJ5QnVpbGRlcigpXG4gICAgICAuc2VsZWN0KCdpZCcpXG4gICAgICAuYWRkU2VsZWN0KCdXSURzJylcbiAgICAgIC5mcm9tKCdldmVudF90cmlnZ2VyX2VudGl0eScsICdldGUnKVxuICAgICAgLmdldFJhd01hbnkoKTtcblxuICAgIGZvciAoY29uc3QgZXZlbnQgb2YgZXZlbnRzKSB7XG4gICAgICBjb25zdCB7IFdJRHNIYXNoLCBXSURzQ291bnQgfSA9IGdldFdpZEluZm8oKGV2ZW50IGFzIGFueSkuV0lEcyk7XG4gICAgICBhd2FpdCBxdWVyeVJ1bm5lci5jb25uZWN0aW9uXG4gICAgICAgIC5nZXRSZXBvc2l0b3J5KEV2ZW50VHJpZ2dlckVudGl0eSlcbiAgICAgICAgLnVwZGF0ZSh7IGlkOiBldmVudC5pZCB9LCB7IFdJRHNIYXNoLCBXSURzQ291bnQgfSk7XG4gICAgfVxuXG4gICAgYXdhaXQgcXVlcnlSdW5uZXIucXVlcnkoYFxuICAgICAgICAgICAgQUxURVIgVEFCTEUgXCJldmVudF90cmlnZ2VyX2VudGl0eVwiIERST1AgQ09MVU1OIFwiV0lEc1wiXG4gICAgICAgIGApO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGRvd24ocXVlcnlSdW5uZXI6IFF1ZXJ5UnVubmVyKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgcXVlcnlSdW5uZXIucXVlcnkoYFxuICAgICAgICAgICAgQUxURVIgVEFCTEUgXCJjb21taXRtZW50X2VudGl0eVwiIERST1AgQ09MVU1OIFwic3BlbmRJbmRleFwiXG4gICAgICAgIGApO1xuICAgIGF3YWl0IHF1ZXJ5UnVubmVyLnF1ZXJ5KGBcbiAgICAgICAgICAgIEFMVEVSIFRBQkxFIFwiY29tbWl0bWVudF9lbnRpdHlcIiBEUk9QIENPTFVNTiBcInNwZW5kVHhJZFwiXG4gICAgICAgIGApO1xuICAgIGF3YWl0IHF1ZXJ5UnVubmVyLnF1ZXJ5KGBcbiAgICAgICAgICAgIEFMVEVSIFRBQkxFIFwiZXZlbnRfdHJpZ2dlcl9lbnRpdHlcIiBEUk9QIENPTFVNTiBcIldJRHNIYXNoXCJcbiAgICAgICAgYCk7XG4gICAgYXdhaXQgcXVlcnlSdW5uZXIucXVlcnkoYFxuICAgICAgICAgICAgQUxURVIgVEFCTEUgXCJldmVudF90cmlnZ2VyX2VudGl0eVwiIERST1AgQ09MVU1OIFwiV0lEc0NvdW50XCJcbiAgICAgICAgYCk7XG4gICAgYXdhaXQgcXVlcnlSdW5uZXIucXVlcnkoYFxuICAgICAgICAgICAgQUxURVIgVEFCTEUgXCJldmVudF90cmlnZ2VyX2VudGl0eVwiXG4gICAgICAgICAgICBBREQgXCJXSURzXCIgY2hhcmFjdGVyIHZhcnlpbmcgTk9UIE5VTExcbiAgICAgICAgYCk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,7 @@
1
+ import { MigrationInterface, QueryRunner } from 'typeorm';
2
+ export declare class migration1703509480176 implements MigrationInterface {
3
+ name: string;
4
+ up(queryRunner: QueryRunner): Promise<void>;
5
+ down(queryRunner: QueryRunner): Promise<void>;
6
+ }
7
+ //# sourceMappingURL=1703509480176-migration.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"1703509480176-migration.d.ts","sourceRoot":"","sources":["../../../lib/migrations/sqlite/1703509480176-migration.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAI1D,qBAAa,sBAAuB,YAAW,kBAAkB;IAC/D,IAAI,SAA4B;IAEnB,EAAE,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAgL3C,IAAI,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;CAmP3D"}
@@ -0,0 +1,421 @@
1
+ import EventTriggerEntity from '../../entities/EventTriggerEntity';
2
+ import { getWidInfo } from '../../utils';
3
+ export class migration1703509480176 {
4
+ name = 'migration1703509480176';
5
+ async up(queryRunner) {
6
+ // get all events before removing WIDs column
7
+ const events = await queryRunner.connection
8
+ .createQueryBuilder()
9
+ .select('id')
10
+ .addSelect('WIDs')
11
+ .from('event_trigger_entity', 'ete')
12
+ .getRawMany();
13
+ await queryRunner.query(`
14
+ CREATE TABLE "temporary_event_trigger_entity" (
15
+ "id" integer PRIMARY KEY AUTOINCREMENT NOT NULL,
16
+ "eventId" varchar NOT NULL DEFAULT ('Not-set'),
17
+ "txId" varchar NOT NULL,
18
+ "extractor" varchar NOT NULL,
19
+ "boxId" varchar NOT NULL,
20
+ "boxSerialized" varchar NOT NULL,
21
+ "block" varchar NOT NULL,
22
+ "height" integer NOT NULL,
23
+ "fromChain" varchar NOT NULL,
24
+ "toChain" varchar NOT NULL,
25
+ "fromAddress" varchar NOT NULL,
26
+ "toAddress" varchar NOT NULL,
27
+ "amount" varchar NOT NULL,
28
+ "bridgeFee" varchar NOT NULL,
29
+ "networkFee" varchar NOT NULL,
30
+ "sourceChainTokenId" varchar NOT NULL,
31
+ "sourceChainHeight" integer NOT NULL,
32
+ "targetChainTokenId" varchar NOT NULL,
33
+ "sourceTxId" varchar NOT NULL,
34
+ "sourceBlockId" varchar NOT NULL,
35
+ "spendBlock" text,
36
+ "spendHeight" integer,
37
+ "spendTxId" text,
38
+ "result" text,
39
+ "paymentTxId" text,
40
+ "WIDsCount" integer NOT NULL,
41
+ "WIDsHash" varchar NOT NULL,
42
+ CONSTRAINT "UQ_c905f221a1b6271ca4405dbbe5f" UNIQUE ("boxId", "extractor")
43
+ )
44
+ `);
45
+ await queryRunner.query(`
46
+ INSERT INTO "temporary_event_trigger_entity"(
47
+ "id",
48
+ "eventId",
49
+ "txId",
50
+ "extractor",
51
+ "boxId",
52
+ "boxSerialized",
53
+ "block",
54
+ "height",
55
+ "fromChain",
56
+ "toChain",
57
+ "fromAddress",
58
+ "toAddress",
59
+ "amount",
60
+ "bridgeFee",
61
+ "networkFee",
62
+ "sourceChainTokenId",
63
+ "sourceChainHeight",
64
+ "targetChainTokenId",
65
+ "sourceTxId",
66
+ "sourceBlockId",
67
+ "spendBlock",
68
+ "spendHeight",
69
+ "spendTxId",
70
+ "result",
71
+ "paymentTxId",
72
+ "WIDsCount",
73
+ "WIDsHash"
74
+ )
75
+ SELECT "id",
76
+ "eventId",
77
+ "txId",
78
+ "extractor",
79
+ "boxId",
80
+ "boxSerialized",
81
+ "block",
82
+ "height",
83
+ "fromChain",
84
+ "toChain",
85
+ "fromAddress",
86
+ "toAddress",
87
+ "amount",
88
+ "bridgeFee",
89
+ "networkFee",
90
+ "sourceChainTokenId",
91
+ "sourceChainHeight",
92
+ "targetChainTokenId",
93
+ "sourceTxId",
94
+ "sourceBlockId",
95
+ "spendBlock",
96
+ "spendHeight",
97
+ "spendTxId",
98
+ "result",
99
+ "paymentTxId",
100
+ 0,
101
+ ''
102
+ FROM "event_trigger_entity"
103
+ `);
104
+ await queryRunner.query(`
105
+ DROP TABLE "event_trigger_entity"
106
+ `);
107
+ await queryRunner.query(`
108
+ ALTER TABLE "temporary_event_trigger_entity"
109
+ RENAME TO "event_trigger_entity"
110
+ `);
111
+ // calculate `WIDsCount` and `WIDsHash` columns in `event_trigger_entity`
112
+ for (const event of events) {
113
+ const { WIDsHash, WIDsCount } = getWidInfo(event.WIDs);
114
+ await queryRunner.connection
115
+ .getRepository(EventTriggerEntity)
116
+ .update({ id: event.id }, { WIDsHash, WIDsCount });
117
+ }
118
+ await queryRunner.query(`
119
+ CREATE TABLE "temporary_commitment_entity" (
120
+ "id" integer PRIMARY KEY AUTOINCREMENT NOT NULL,
121
+ "txId" varchar NOT NULL,
122
+ "extractor" varchar NOT NULL,
123
+ "eventId" varchar NOT NULL,
124
+ "commitment" varchar NOT NULL,
125
+ "WID" varchar NOT NULL,
126
+ "boxId" varchar NOT NULL,
127
+ "block" varchar NOT NULL,
128
+ "height" integer NOT NULL,
129
+ "boxSerialized" varchar NOT NULL,
130
+ "spendBlock" text,
131
+ "spendHeight" integer,
132
+ "rwtCount" varchar,
133
+ "spendTxId" text,
134
+ "spendIndex" integer,
135
+ CONSTRAINT "UQ_cc294fc304a66f8f194840f1ece" UNIQUE ("boxId", "extractor")
136
+ )
137
+ `);
138
+ await queryRunner.query(`
139
+ INSERT INTO "temporary_commitment_entity"(
140
+ "id",
141
+ "txId",
142
+ "extractor",
143
+ "eventId",
144
+ "commitment",
145
+ "WID",
146
+ "boxId",
147
+ "block",
148
+ "height",
149
+ "boxSerialized",
150
+ "spendBlock",
151
+ "spendHeight",
152
+ "rwtCount"
153
+ )
154
+ SELECT "id",
155
+ "txId",
156
+ "extractor",
157
+ "eventId",
158
+ "commitment",
159
+ "WID",
160
+ "boxId",
161
+ "block",
162
+ "height",
163
+ "boxSerialized",
164
+ "spendBlock",
165
+ "spendHeight",
166
+ "rwtCount"
167
+ FROM "commitment_entity"
168
+ `);
169
+ await queryRunner.query(`
170
+ DROP TABLE "commitment_entity"
171
+ `);
172
+ await queryRunner.query(`
173
+ ALTER TABLE "temporary_commitment_entity"
174
+ RENAME TO "commitment_entity"
175
+ `);
176
+ }
177
+ async down(queryRunner) {
178
+ await queryRunner.query(`
179
+ ALTER TABLE "commitment_entity"
180
+ RENAME TO "temporary_commitment_entity"
181
+ `);
182
+ await queryRunner.query(`
183
+ CREATE TABLE "commitment_entity" (
184
+ "id" integer PRIMARY KEY AUTOINCREMENT NOT NULL,
185
+ "txId" varchar NOT NULL,
186
+ "extractor" varchar NOT NULL,
187
+ "eventId" varchar NOT NULL,
188
+ "commitment" varchar NOT NULL,
189
+ "WID" varchar NOT NULL,
190
+ "boxId" varchar NOT NULL,
191
+ "block" varchar NOT NULL,
192
+ "height" integer NOT NULL,
193
+ "boxSerialized" varchar NOT NULL,
194
+ "spendBlock" text,
195
+ "spendHeight" integer,
196
+ "rwtCount" varchar,
197
+ CONSTRAINT "UQ_cc294fc304a66f8f194840f1ece" UNIQUE ("boxId", "extractor")
198
+ )
199
+ `);
200
+ await queryRunner.query(`
201
+ INSERT INTO "commitment_entity"(
202
+ "id",
203
+ "txId",
204
+ "extractor",
205
+ "eventId",
206
+ "commitment",
207
+ "WID",
208
+ "boxId",
209
+ "block",
210
+ "height",
211
+ "boxSerialized",
212
+ "spendBlock",
213
+ "spendHeight",
214
+ "rwtCount"
215
+ )
216
+ SELECT "id",
217
+ "txId",
218
+ "extractor",
219
+ "eventId",
220
+ "commitment",
221
+ "WID",
222
+ "boxId",
223
+ "block",
224
+ "height",
225
+ "boxSerialized",
226
+ "spendBlock",
227
+ "spendHeight",
228
+ "rwtCount"
229
+ FROM "temporary_commitment_entity"
230
+ `);
231
+ await queryRunner.query(`
232
+ DROP TABLE "temporary_commitment_entity"
233
+ `);
234
+ await queryRunner.query(`
235
+ ALTER TABLE "event_trigger_entity"
236
+ RENAME TO "temporary_event_trigger_entity"
237
+ `);
238
+ await queryRunner.query(`
239
+ CREATE TABLE "event_trigger_entity" (
240
+ "id" integer PRIMARY KEY AUTOINCREMENT NOT NULL,
241
+ "eventId" varchar NOT NULL DEFAULT ('Not-set'),
242
+ "txId" varchar NOT NULL,
243
+ "extractor" varchar NOT NULL,
244
+ "boxId" varchar NOT NULL,
245
+ "boxSerialized" varchar NOT NULL,
246
+ "block" varchar NOT NULL,
247
+ "height" integer NOT NULL,
248
+ "fromChain" varchar NOT NULL,
249
+ "toChain" varchar NOT NULL,
250
+ "fromAddress" varchar NOT NULL,
251
+ "toAddress" varchar NOT NULL,
252
+ "amount" varchar NOT NULL,
253
+ "bridgeFee" varchar NOT NULL,
254
+ "networkFee" varchar NOT NULL,
255
+ "sourceChainTokenId" varchar NOT NULL,
256
+ "sourceChainHeight" integer NOT NULL,
257
+ "targetChainTokenId" varchar NOT NULL,
258
+ "sourceTxId" varchar NOT NULL,
259
+ "sourceBlockId" varchar NOT NULL,
260
+ "spendBlock" text,
261
+ "spendHeight" integer,
262
+ "spendTxId" text,
263
+ "result" text,
264
+ "paymentTxId" text,
265
+ CONSTRAINT "UQ_c905f221a1b6271ca4405dbbe5f" UNIQUE ("boxId", "extractor")
266
+ )
267
+ `);
268
+ await queryRunner.query(`
269
+ INSERT INTO "event_trigger_entity"(
270
+ "id",
271
+ "eventId",
272
+ "txId",
273
+ "extractor",
274
+ "boxId",
275
+ "boxSerialized",
276
+ "block",
277
+ "height",
278
+ "fromChain",
279
+ "toChain",
280
+ "fromAddress",
281
+ "toAddress",
282
+ "amount",
283
+ "bridgeFee",
284
+ "networkFee",
285
+ "sourceChainTokenId",
286
+ "sourceChainHeight",
287
+ "targetChainTokenId",
288
+ "sourceTxId",
289
+ "sourceBlockId",
290
+ "spendBlock",
291
+ "spendHeight",
292
+ "spendTxId",
293
+ "result",
294
+ "paymentTxId"
295
+ )
296
+ SELECT "id",
297
+ "eventId",
298
+ "txId",
299
+ "extractor",
300
+ "boxId",
301
+ "boxSerialized",
302
+ "block",
303
+ "height",
304
+ "fromChain",
305
+ "toChain",
306
+ "fromAddress",
307
+ "toAddress",
308
+ "amount",
309
+ "bridgeFee",
310
+ "networkFee",
311
+ "sourceChainTokenId",
312
+ "sourceChainHeight",
313
+ "targetChainTokenId",
314
+ "sourceTxId",
315
+ "sourceBlockId",
316
+ "spendBlock",
317
+ "spendHeight",
318
+ "spendTxId",
319
+ "result",
320
+ "paymentTxId"
321
+ FROM "temporary_event_trigger_entity"
322
+ `);
323
+ await queryRunner.query(`
324
+ DROP TABLE "temporary_event_trigger_entity"
325
+ `);
326
+ await queryRunner.query(`
327
+ ALTER TABLE "event_trigger_entity"
328
+ RENAME TO "temporary_event_trigger_entity"
329
+ `);
330
+ await queryRunner.query(`
331
+ CREATE TABLE "event_trigger_entity" (
332
+ "id" integer PRIMARY KEY AUTOINCREMENT NOT NULL,
333
+ "eventId" varchar NOT NULL DEFAULT ('Not-set'),
334
+ "txId" varchar NOT NULL,
335
+ "extractor" varchar NOT NULL,
336
+ "boxId" varchar NOT NULL,
337
+ "boxSerialized" varchar NOT NULL,
338
+ "block" varchar NOT NULL,
339
+ "height" integer NOT NULL,
340
+ "fromChain" varchar NOT NULL,
341
+ "toChain" varchar NOT NULL,
342
+ "fromAddress" varchar NOT NULL,
343
+ "toAddress" varchar NOT NULL,
344
+ "amount" varchar NOT NULL,
345
+ "bridgeFee" varchar NOT NULL,
346
+ "networkFee" varchar NOT NULL,
347
+ "sourceChainTokenId" varchar NOT NULL,
348
+ "sourceChainHeight" integer NOT NULL,
349
+ "targetChainTokenId" varchar NOT NULL,
350
+ "sourceTxId" varchar NOT NULL,
351
+ "sourceBlockId" varchar NOT NULL,
352
+ "WIDs" varchar NOT NULL,
353
+ "spendBlock" text,
354
+ "spendHeight" integer,
355
+ "spendTxId" text,
356
+ "result" text,
357
+ "paymentTxId" text,
358
+ CONSTRAINT "UQ_c905f221a1b6271ca4405dbbe5f" UNIQUE ("boxId", "extractor")
359
+ )
360
+ `);
361
+ await queryRunner.query(`
362
+ INSERT INTO "event_trigger_entity"(
363
+ "id",
364
+ "eventId",
365
+ "txId",
366
+ "extractor",
367
+ "boxId",
368
+ "boxSerialized",
369
+ "block",
370
+ "height",
371
+ "fromChain",
372
+ "toChain",
373
+ "fromAddress",
374
+ "toAddress",
375
+ "amount",
376
+ "bridgeFee",
377
+ "networkFee",
378
+ "sourceChainTokenId",
379
+ "sourceChainHeight",
380
+ "targetChainTokenId",
381
+ "sourceTxId",
382
+ "sourceBlockId",
383
+ "spendBlock",
384
+ "spendHeight",
385
+ "spendTxId",
386
+ "result",
387
+ "paymentTxId"
388
+ )
389
+ SELECT "id",
390
+ "eventId",
391
+ "txId",
392
+ "extractor",
393
+ "boxId",
394
+ "boxSerialized",
395
+ "block",
396
+ "height",
397
+ "fromChain",
398
+ "toChain",
399
+ "fromAddress",
400
+ "toAddress",
401
+ "amount",
402
+ "bridgeFee",
403
+ "networkFee",
404
+ "sourceChainTokenId",
405
+ "sourceChainHeight",
406
+ "targetChainTokenId",
407
+ "sourceTxId",
408
+ "sourceBlockId",
409
+ "spendBlock",
410
+ "spendHeight",
411
+ "spendTxId",
412
+ "result",
413
+ "paymentTxId"
414
+ FROM "temporary_event_trigger_entity"
415
+ `);
416
+ await queryRunner.query(`
417
+ DROP TABLE "temporary_event_trigger_entity"
418
+ `);
419
+ }
420
+ }
421
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMTcwMzUwOTQ4MDE3Ni1taWdyYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9saWIvbWlncmF0aW9ucy9zcWxpdGUvMTcwMzUwOTQ4MDE3Ni1taWdyYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxrQkFBa0IsTUFBTSxtQ0FBbUMsQ0FBQztBQUNuRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRXpDLE1BQU0sT0FBTyxzQkFBc0I7SUFDakMsSUFBSSxHQUFHLHdCQUF3QixDQUFDO0lBRXpCLEtBQUssQ0FBQyxFQUFFLENBQUMsV0FBd0I7UUFDdEMsNkNBQTZDO1FBQzdDLE1BQU0sTUFBTSxHQUFHLE1BQU0sV0FBVyxDQUFDLFVBQVU7YUFDeEMsa0JBQWtCLEVBQUU7YUFDcEIsTUFBTSxDQUFDLElBQUksQ0FBQzthQUNaLFNBQVMsQ0FBQyxNQUFNLENBQUM7YUFDakIsSUFBSSxDQUFDLHNCQUFzQixFQUFFLEtBQUssQ0FBQzthQUNuQyxVQUFVLEVBQUUsQ0FBQztRQUVoQixNQUFNLFdBQVcsQ0FBQyxLQUFLLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7U0ErQm5CLENBQUMsQ0FBQztRQUNQLE1BQU0sV0FBVyxDQUFDLEtBQUssQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztTQTBEbkIsQ0FBQyxDQUFDO1FBQ1AsTUFBTSxXQUFXLENBQUMsS0FBSyxDQUFDOztTQUVuQixDQUFDLENBQUM7UUFDUCxNQUFNLFdBQVcsQ0FBQyxLQUFLLENBQUM7OztTQUduQixDQUFDLENBQUM7UUFFUCx5RUFBeUU7UUFDekUsS0FBSyxNQUFNLEtBQUssSUFBSSxNQUFNLEVBQUU7WUFDMUIsTUFBTSxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsR0FBRyxVQUFVLENBQUUsS0FBYSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2hFLE1BQU0sV0FBVyxDQUFDLFVBQVU7aUJBQ3pCLGFBQWEsQ0FBQyxrQkFBa0IsQ0FBQztpQkFDakMsTUFBTSxDQUFDLEVBQUUsRUFBRSxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDO1NBQ3REO1FBRUQsTUFBTSxXQUFXLENBQUMsS0FBSyxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O1NBbUJuQixDQUFDLENBQUM7UUFDUCxNQUFNLFdBQVcsQ0FBQyxLQUFLLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztTQThCbkIsQ0FBQyxDQUFDO1FBQ1AsTUFBTSxXQUFXLENBQUMsS0FBSyxDQUFDOztTQUVuQixDQUFDLENBQUM7UUFDUCxNQUFNLFdBQVcsQ0FBQyxLQUFLLENBQUM7OztTQUduQixDQUFDLENBQUM7SUFDVCxDQUFDO0lBRU0sS0FBSyxDQUFDLElBQUksQ0FBQyxXQUF3QjtRQUN4QyxNQUFNLFdBQVcsQ0FBQyxLQUFLLENBQUM7OztTQUduQixDQUFDLENBQUM7UUFDUCxNQUFNLFdBQVcsQ0FBQyxLQUFLLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7O1NBaUJuQixDQUFDLENBQUM7UUFDUCxNQUFNLFdBQVcsQ0FBQyxLQUFLLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztTQThCbkIsQ0FBQyxDQUFDO1FBQ1AsTUFBTSxXQUFXLENBQUMsS0FBSyxDQUFDOztTQUVuQixDQUFDLENBQUM7UUFDUCxNQUFNLFdBQVcsQ0FBQyxLQUFLLENBQUM7OztTQUduQixDQUFDLENBQUM7UUFDUCxNQUFNLFdBQVcsQ0FBQyxLQUFLLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O1NBNkJuQixDQUFDLENBQUM7UUFDUCxNQUFNLFdBQVcsQ0FBQyxLQUFLLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztTQXNEbkIsQ0FBQyxDQUFDO1FBQ1AsTUFBTSxXQUFXLENBQUMsS0FBSyxDQUFDOztTQUVuQixDQUFDLENBQUM7UUFDUCxNQUFNLFdBQVcsQ0FBQyxLQUFLLENBQUM7OztTQUduQixDQUFDLENBQUM7UUFDUCxNQUFNLFdBQVcsQ0FBQyxLQUFLLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztTQThCbkIsQ0FBQyxDQUFDO1FBQ1AsTUFBTSxXQUFXLENBQUMsS0FBSyxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7U0FzRG5CLENBQUMsQ0FBQztRQUNQLE1BQU0sV0FBVyxDQUFDLEtBQUssQ0FBQzs7U0FFbkIsQ0FBQyxDQUFDO0lBQ1QsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTWlncmF0aW9uSW50ZXJmYWNlLCBRdWVyeVJ1bm5lciB9IGZyb20gJ3R5cGVvcm0nO1xuaW1wb3J0IEV2ZW50VHJpZ2dlckVudGl0eSBmcm9tICcuLi8uLi9lbnRpdGllcy9FdmVudFRyaWdnZXJFbnRpdHknO1xuaW1wb3J0IHsgZ2V0V2lkSW5mbyB9IGZyb20gJy4uLy4uL3V0aWxzJztcblxuZXhwb3J0IGNsYXNzIG1pZ3JhdGlvbjE3MDM1MDk0ODAxNzYgaW1wbGVtZW50cyBNaWdyYXRpb25JbnRlcmZhY2Uge1xuICBuYW1lID0gJ21pZ3JhdGlvbjE3MDM1MDk0ODAxNzYnO1xuXG4gIHB1YmxpYyBhc3luYyB1cChxdWVyeVJ1bm5lcjogUXVlcnlSdW5uZXIpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAvLyBnZXQgYWxsIGV2ZW50cyBiZWZvcmUgcmVtb3ZpbmcgV0lEcyBjb2x1bW5cbiAgICBjb25zdCBldmVudHMgPSBhd2FpdCBxdWVyeVJ1bm5lci5jb25uZWN0aW9uXG4gICAgICAuY3JlYXRlUXVlcnlCdWlsZGVyKClcbiAgICAgIC5zZWxlY3QoJ2lkJylcbiAgICAgIC5hZGRTZWxlY3QoJ1dJRHMnKVxuICAgICAgLmZyb20oJ2V2ZW50X3RyaWdnZXJfZW50aXR5JywgJ2V0ZScpXG4gICAgICAuZ2V0UmF3TWFueSgpO1xuXG4gICAgYXdhaXQgcXVlcnlSdW5uZXIucXVlcnkoYFxuICAgICAgICAgICAgQ1JFQVRFIFRBQkxFIFwidGVtcG9yYXJ5X2V2ZW50X3RyaWdnZXJfZW50aXR5XCIgKFxuICAgICAgICAgICAgICAgIFwiaWRcIiBpbnRlZ2VyIFBSSU1BUlkgS0VZIEFVVE9JTkNSRU1FTlQgTk9UIE5VTEwsXG4gICAgICAgICAgICAgICAgXCJldmVudElkXCIgdmFyY2hhciBOT1QgTlVMTCBERUZBVUxUICgnTm90LXNldCcpLFxuICAgICAgICAgICAgICAgIFwidHhJZFwiIHZhcmNoYXIgTk9UIE5VTEwsXG4gICAgICAgICAgICAgICAgXCJleHRyYWN0b3JcIiB2YXJjaGFyIE5PVCBOVUxMLFxuICAgICAgICAgICAgICAgIFwiYm94SWRcIiB2YXJjaGFyIE5PVCBOVUxMLFxuICAgICAgICAgICAgICAgIFwiYm94U2VyaWFsaXplZFwiIHZhcmNoYXIgTk9UIE5VTEwsXG4gICAgICAgICAgICAgICAgXCJibG9ja1wiIHZhcmNoYXIgTk9UIE5VTEwsXG4gICAgICAgICAgICAgICAgXCJoZWlnaHRcIiBpbnRlZ2VyIE5PVCBOVUxMLFxuICAgICAgICAgICAgICAgIFwiZnJvbUNoYWluXCIgdmFyY2hhciBOT1QgTlVMTCxcbiAgICAgICAgICAgICAgICBcInRvQ2hhaW5cIiB2YXJjaGFyIE5PVCBOVUxMLFxuICAgICAgICAgICAgICAgIFwiZnJvbUFkZHJlc3NcIiB2YXJjaGFyIE5PVCBOVUxMLFxuICAgICAgICAgICAgICAgIFwidG9BZGRyZXNzXCIgdmFyY2hhciBOT1QgTlVMTCxcbiAgICAgICAgICAgICAgICBcImFtb3VudFwiIHZhcmNoYXIgTk9UIE5VTEwsXG4gICAgICAgICAgICAgICAgXCJicmlkZ2VGZWVcIiB2YXJjaGFyIE5PVCBOVUxMLFxuICAgICAgICAgICAgICAgIFwibmV0d29ya0ZlZVwiIHZhcmNoYXIgTk9UIE5VTEwsXG4gICAgICAgICAgICAgICAgXCJzb3VyY2VDaGFpblRva2VuSWRcIiB2YXJjaGFyIE5PVCBOVUxMLFxuICAgICAgICAgICAgICAgIFwic291cmNlQ2hhaW5IZWlnaHRcIiBpbnRlZ2VyIE5PVCBOVUxMLFxuICAgICAgICAgICAgICAgIFwidGFyZ2V0Q2hhaW5Ub2tlbklkXCIgdmFyY2hhciBOT1QgTlVMTCxcbiAgICAgICAgICAgICAgICBcInNvdXJjZVR4SWRcIiB2YXJjaGFyIE5PVCBOVUxMLFxuICAgICAgICAgICAgICAgIFwic291cmNlQmxvY2tJZFwiIHZhcmNoYXIgTk9UIE5VTEwsXG4gICAgICAgICAgICAgICAgXCJzcGVuZEJsb2NrXCIgdGV4dCxcbiAgICAgICAgICAgICAgICBcInNwZW5kSGVpZ2h0XCIgaW50ZWdlcixcbiAgICAgICAgICAgICAgICBcInNwZW5kVHhJZFwiIHRleHQsXG4gICAgICAgICAgICAgICAgXCJyZXN1bHRcIiB0ZXh0LFxuICAgICAgICAgICAgICAgIFwicGF5bWVudFR4SWRcIiB0ZXh0LFxuICAgICAgICAgICAgICAgIFwiV0lEc0NvdW50XCIgaW50ZWdlciBOT1QgTlVMTCxcbiAgICAgICAgICAgICAgICBcIldJRHNIYXNoXCIgdmFyY2hhciBOT1QgTlVMTCxcbiAgICAgICAgICAgICAgICBDT05TVFJBSU5UIFwiVVFfYzkwNWYyMjFhMWI2MjcxY2E0NDA1ZGJiZTVmXCIgVU5JUVVFIChcImJveElkXCIsIFwiZXh0cmFjdG9yXCIpXG4gICAgICAgICAgICApXG4gICAgICAgIGApO1xuICAgIGF3YWl0IHF1ZXJ5UnVubmVyLnF1ZXJ5KGBcbiAgICAgICAgICAgIElOU0VSVCBJTlRPIFwidGVtcG9yYXJ5X2V2ZW50X3RyaWdnZXJfZW50aXR5XCIoXG4gICAgICAgICAgICAgICAgICAgIFwiaWRcIixcbiAgICAgICAgICAgICAgICAgICAgXCJldmVudElkXCIsXG4gICAgICAgICAgICAgICAgICAgIFwidHhJZFwiLFxuICAgICAgICAgICAgICAgICAgICBcImV4dHJhY3RvclwiLFxuICAgICAgICAgICAgICAgICAgICBcImJveElkXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiYm94U2VyaWFsaXplZFwiLFxuICAgICAgICAgICAgICAgICAgICBcImJsb2NrXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiaGVpZ2h0XCIsXG4gICAgICAgICAgICAgICAgICAgIFwiZnJvbUNoYWluXCIsXG4gICAgICAgICAgICAgICAgICAgIFwidG9DaGFpblwiLFxuICAgICAgICAgICAgICAgICAgICBcImZyb21BZGRyZXNzXCIsXG4gICAgICAgICAgICAgICAgICAgIFwidG9BZGRyZXNzXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiYW1vdW50XCIsXG4gICAgICAgICAgICAgICAgICAgIFwiYnJpZGdlRmVlXCIsXG4gICAgICAgICAgICAgICAgICAgIFwibmV0d29ya0ZlZVwiLFxuICAgICAgICAgICAgICAgICAgICBcInNvdXJjZUNoYWluVG9rZW5JZFwiLFxuICAgICAgICAgICAgICAgICAgICBcInNvdXJjZUNoYWluSGVpZ2h0XCIsXG4gICAgICAgICAgICAgICAgICAgIFwidGFyZ2V0Q2hhaW5Ub2tlbklkXCIsXG4gICAgICAgICAgICAgICAgICAgIFwic291cmNlVHhJZFwiLFxuICAgICAgICAgICAgICAgICAgICBcInNvdXJjZUJsb2NrSWRcIixcbiAgICAgICAgICAgICAgICAgICAgXCJzcGVuZEJsb2NrXCIsXG4gICAgICAgICAgICAgICAgICAgIFwic3BlbmRIZWlnaHRcIixcbiAgICAgICAgICAgICAgICAgICAgXCJzcGVuZFR4SWRcIixcbiAgICAgICAgICAgICAgICAgICAgXCJyZXN1bHRcIixcbiAgICAgICAgICAgICAgICAgICAgXCJwYXltZW50VHhJZFwiLFxuICAgICAgICAgICAgICAgICAgICBcIldJRHNDb3VudFwiLFxuICAgICAgICAgICAgICAgICAgICBcIldJRHNIYXNoXCJcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICBTRUxFQ1QgXCJpZFwiLFxuICAgICAgICAgICAgICAgIFwiZXZlbnRJZFwiLFxuICAgICAgICAgICAgICAgIFwidHhJZFwiLFxuICAgICAgICAgICAgICAgIFwiZXh0cmFjdG9yXCIsXG4gICAgICAgICAgICAgICAgXCJib3hJZFwiLFxuICAgICAgICAgICAgICAgIFwiYm94U2VyaWFsaXplZFwiLFxuICAgICAgICAgICAgICAgIFwiYmxvY2tcIixcbiAgICAgICAgICAgICAgICBcImhlaWdodFwiLFxuICAgICAgICAgICAgICAgIFwiZnJvbUNoYWluXCIsXG4gICAgICAgICAgICAgICAgXCJ0b0NoYWluXCIsXG4gICAgICAgICAgICAgICAgXCJmcm9tQWRkcmVzc1wiLFxuICAgICAgICAgICAgICAgIFwidG9BZGRyZXNzXCIsXG4gICAgICAgICAgICAgICAgXCJhbW91bnRcIixcbiAgICAgICAgICAgICAgICBcImJyaWRnZUZlZVwiLFxuICAgICAgICAgICAgICAgIFwibmV0d29ya0ZlZVwiLFxuICAgICAgICAgICAgICAgIFwic291cmNlQ2hhaW5Ub2tlbklkXCIsXG4gICAgICAgICAgICAgICAgXCJzb3VyY2VDaGFpbkhlaWdodFwiLFxuICAgICAgICAgICAgICAgIFwidGFyZ2V0Q2hhaW5Ub2tlbklkXCIsXG4gICAgICAgICAgICAgICAgXCJzb3VyY2VUeElkXCIsXG4gICAgICAgICAgICAgICAgXCJzb3VyY2VCbG9ja0lkXCIsXG4gICAgICAgICAgICAgICAgXCJzcGVuZEJsb2NrXCIsXG4gICAgICAgICAgICAgICAgXCJzcGVuZEhlaWdodFwiLFxuICAgICAgICAgICAgICAgIFwic3BlbmRUeElkXCIsXG4gICAgICAgICAgICAgICAgXCJyZXN1bHRcIixcbiAgICAgICAgICAgICAgICBcInBheW1lbnRUeElkXCIsXG4gICAgICAgICAgICAgICAgMCxcbiAgICAgICAgICAgICAgICAnJ1xuICAgICAgICAgICAgRlJPTSBcImV2ZW50X3RyaWdnZXJfZW50aXR5XCJcbiAgICAgICAgYCk7XG4gICAgYXdhaXQgcXVlcnlSdW5uZXIucXVlcnkoYFxuICAgICAgICAgICAgRFJPUCBUQUJMRSBcImV2ZW50X3RyaWdnZXJfZW50aXR5XCJcbiAgICAgICAgYCk7XG4gICAgYXdhaXQgcXVlcnlSdW5uZXIucXVlcnkoYFxuICAgICAgICAgICAgQUxURVIgVEFCTEUgXCJ0ZW1wb3JhcnlfZXZlbnRfdHJpZ2dlcl9lbnRpdHlcIlxuICAgICAgICAgICAgICAgIFJFTkFNRSBUTyBcImV2ZW50X3RyaWdnZXJfZW50aXR5XCJcbiAgICAgICAgYCk7XG5cbiAgICAvLyBjYWxjdWxhdGUgYFdJRHNDb3VudGAgYW5kIGBXSURzSGFzaGAgY29sdW1ucyBpbiBgZXZlbnRfdHJpZ2dlcl9lbnRpdHlgXG4gICAgZm9yIChjb25zdCBldmVudCBvZiBldmVudHMpIHtcbiAgICAgIGNvbnN0IHsgV0lEc0hhc2gsIFdJRHNDb3VudCB9ID0gZ2V0V2lkSW5mbygoZXZlbnQgYXMgYW55KS5XSURzKTtcbiAgICAgIGF3YWl0IHF1ZXJ5UnVubmVyLmNvbm5lY3Rpb25cbiAgICAgICAgLmdldFJlcG9zaXRvcnkoRXZlbnRUcmlnZ2VyRW50aXR5KVxuICAgICAgICAudXBkYXRlKHsgaWQ6IGV2ZW50LmlkIH0sIHsgV0lEc0hhc2gsIFdJRHNDb3VudCB9KTtcbiAgICB9XG5cbiAgICBhd2FpdCBxdWVyeVJ1bm5lci5xdWVyeShgXG4gICAgICAgICAgICBDUkVBVEUgVEFCTEUgXCJ0ZW1wb3JhcnlfY29tbWl0bWVudF9lbnRpdHlcIiAoXG4gICAgICAgICAgICAgICAgXCJpZFwiIGludGVnZXIgUFJJTUFSWSBLRVkgQVVUT0lOQ1JFTUVOVCBOT1QgTlVMTCxcbiAgICAgICAgICAgICAgICBcInR4SWRcIiB2YXJjaGFyIE5PVCBOVUxMLFxuICAgICAgICAgICAgICAgIFwiZXh0cmFjdG9yXCIgdmFyY2hhciBOT1QgTlVMTCxcbiAgICAgICAgICAgICAgICBcImV2ZW50SWRcIiB2YXJjaGFyIE5PVCBOVUxMLFxuICAgICAgICAgICAgICAgIFwiY29tbWl0bWVudFwiIHZhcmNoYXIgTk9UIE5VTEwsXG4gICAgICAgICAgICAgICAgXCJXSURcIiB2YXJjaGFyIE5PVCBOVUxMLFxuICAgICAgICAgICAgICAgIFwiYm94SWRcIiB2YXJjaGFyIE5PVCBOVUxMLFxuICAgICAgICAgICAgICAgIFwiYmxvY2tcIiB2YXJjaGFyIE5PVCBOVUxMLFxuICAgICAgICAgICAgICAgIFwiaGVpZ2h0XCIgaW50ZWdlciBOT1QgTlVMTCxcbiAgICAgICAgICAgICAgICBcImJveFNlcmlhbGl6ZWRcIiB2YXJjaGFyIE5PVCBOVUxMLFxuICAgICAgICAgICAgICAgIFwic3BlbmRCbG9ja1wiIHRleHQsXG4gICAgICAgICAgICAgICAgXCJzcGVuZEhlaWdodFwiIGludGVnZXIsXG4gICAgICAgICAgICAgICAgXCJyd3RDb3VudFwiIHZhcmNoYXIsXG4gICAgICAgICAgICAgICAgXCJzcGVuZFR4SWRcIiB0ZXh0LFxuICAgICAgICAgICAgICAgIFwic3BlbmRJbmRleFwiIGludGVnZXIsXG4gICAgICAgICAgICAgICAgQ09OU1RSQUlOVCBcIlVRX2NjMjk0ZmMzMDRhNjZmOGYxOTQ4NDBmMWVjZVwiIFVOSVFVRSAoXCJib3hJZFwiLCBcImV4dHJhY3RvclwiKVxuICAgICAgICAgICAgKVxuICAgICAgICBgKTtcbiAgICBhd2FpdCBxdWVyeVJ1bm5lci5xdWVyeShgXG4gICAgICAgICAgICBJTlNFUlQgSU5UTyBcInRlbXBvcmFyeV9jb21taXRtZW50X2VudGl0eVwiKFxuICAgICAgICAgICAgICAgICAgICBcImlkXCIsXG4gICAgICAgICAgICAgICAgICAgIFwidHhJZFwiLFxuICAgICAgICAgICAgICAgICAgICBcImV4dHJhY3RvclwiLFxuICAgICAgICAgICAgICAgICAgICBcImV2ZW50SWRcIixcbiAgICAgICAgICAgICAgICAgICAgXCJjb21taXRtZW50XCIsXG4gICAgICAgICAgICAgICAgICAgIFwiV0lEXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiYm94SWRcIixcbiAgICAgICAgICAgICAgICAgICAgXCJibG9ja1wiLFxuICAgICAgICAgICAgICAgICAgICBcImhlaWdodFwiLFxuICAgICAgICAgICAgICAgICAgICBcImJveFNlcmlhbGl6ZWRcIixcbiAgICAgICAgICAgICAgICAgICAgXCJzcGVuZEJsb2NrXCIsXG4gICAgICAgICAgICAgICAgICAgIFwic3BlbmRIZWlnaHRcIixcbiAgICAgICAgICAgICAgICAgICAgXCJyd3RDb3VudFwiXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgU0VMRUNUIFwiaWRcIixcbiAgICAgICAgICAgICAgICBcInR4SWRcIixcbiAgICAgICAgICAgICAgICBcImV4dHJhY3RvclwiLFxuICAgICAgICAgICAgICAgIFwiZXZlbnRJZFwiLFxuICAgICAgICAgICAgICAgIFwiY29tbWl0bWVudFwiLFxuICAgICAgICAgICAgICAgIFwiV0lEXCIsXG4gICAgICAgICAgICAgICAgXCJib3hJZFwiLFxuICAgICAgICAgICAgICAgIFwiYmxvY2tcIixcbiAgICAgICAgICAgICAgICBcImhlaWdodFwiLFxuICAgICAgICAgICAgICAgIFwiYm94U2VyaWFsaXplZFwiLFxuICAgICAgICAgICAgICAgIFwic3BlbmRCbG9ja1wiLFxuICAgICAgICAgICAgICAgIFwic3BlbmRIZWlnaHRcIixcbiAgICAgICAgICAgICAgICBcInJ3dENvdW50XCJcbiAgICAgICAgICAgIEZST00gXCJjb21taXRtZW50X2VudGl0eVwiXG4gICAgICAgIGApO1xuICAgIGF3YWl0IHF1ZXJ5UnVubmVyLnF1ZXJ5KGBcbiAgICAgICAgICAgIERST1AgVEFCTEUgXCJjb21taXRtZW50X2VudGl0eVwiXG4gICAgICAgIGApO1xuICAgIGF3YWl0IHF1ZXJ5UnVubmVyLnF1ZXJ5KGBcbiAgICAgICAgICAgIEFMVEVSIFRBQkxFIFwidGVtcG9yYXJ5X2NvbW1pdG1lbnRfZW50aXR5XCJcbiAgICAgICAgICAgICAgICBSRU5BTUUgVE8gXCJjb21taXRtZW50X2VudGl0eVwiXG4gICAgICAgIGApO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGRvd24ocXVlcnlSdW5uZXI6IFF1ZXJ5UnVubmVyKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgcXVlcnlSdW5uZXIucXVlcnkoYFxuICAgICAgICAgICAgQUxURVIgVEFCTEUgXCJjb21taXRtZW50X2VudGl0eVwiXG4gICAgICAgICAgICAgICAgUkVOQU1FIFRPIFwidGVtcG9yYXJ5X2NvbW1pdG1lbnRfZW50aXR5XCJcbiAgICAgICAgYCk7XG4gICAgYXdhaXQgcXVlcnlSdW5uZXIucXVlcnkoYFxuICAgICAgICAgICAgQ1JFQVRFIFRBQkxFIFwiY29tbWl0bWVudF9lbnRpdHlcIiAoXG4gICAgICAgICAgICAgICAgXCJpZFwiIGludGVnZXIgUFJJTUFSWSBLRVkgQVVUT0lOQ1JFTUVOVCBOT1QgTlVMTCxcbiAgICAgICAgICAgICAgICBcInR4SWRcIiB2YXJjaGFyIE5PVCBOVUxMLFxuICAgICAgICAgICAgICAgIFwiZXh0cmFjdG9yXCIgdmFyY2hhciBOT1QgTlVMTCxcbiAgICAgICAgICAgICAgICBcImV2ZW50SWRcIiB2YXJjaGFyIE5PVCBOVUxMLFxuICAgICAgICAgICAgICAgIFwiY29tbWl0bWVudFwiIHZhcmNoYXIgTk9UIE5VTEwsXG4gICAgICAgICAgICAgICAgXCJXSURcIiB2YXJjaGFyIE5PVCBOVUxMLFxuICAgICAgICAgICAgICAgIFwiYm94SWRcIiB2YXJjaGFyIE5PVCBOVUxMLFxuICAgICAgICAgICAgICAgIFwiYmxvY2tcIiB2YXJjaGFyIE5PVCBOVUxMLFxuICAgICAgICAgICAgICAgIFwiaGVpZ2h0XCIgaW50ZWdlciBOT1QgTlVMTCxcbiAgICAgICAgICAgICAgICBcImJveFNlcmlhbGl6ZWRcIiB2YXJjaGFyIE5PVCBOVUxMLFxuICAgICAgICAgICAgICAgIFwic3BlbmRCbG9ja1wiIHRleHQsXG4gICAgICAgICAgICAgICAgXCJzcGVuZEhlaWdodFwiIGludGVnZXIsXG4gICAgICAgICAgICAgICAgXCJyd3RDb3VudFwiIHZhcmNoYXIsXG4gICAgICAgICAgICAgICAgQ09OU1RSQUlOVCBcIlVRX2NjMjk0ZmMzMDRhNjZmOGYxOTQ4NDBmMWVjZVwiIFVOSVFVRSAoXCJib3hJZFwiLCBcImV4dHJhY3RvclwiKVxuICAgICAgICAgICAgKVxuICAgICAgICBgKTtcbiAgICBhd2FpdCBxdWVyeVJ1bm5lci5xdWVyeShgXG4gICAgICAgICAgICBJTlNFUlQgSU5UTyBcImNvbW1pdG1lbnRfZW50aXR5XCIoXG4gICAgICAgICAgICAgICAgICAgIFwiaWRcIixcbiAgICAgICAgICAgICAgICAgICAgXCJ0eElkXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiZXh0cmFjdG9yXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiZXZlbnRJZFwiLFxuICAgICAgICAgICAgICAgICAgICBcImNvbW1pdG1lbnRcIixcbiAgICAgICAgICAgICAgICAgICAgXCJXSURcIixcbiAgICAgICAgICAgICAgICAgICAgXCJib3hJZFwiLFxuICAgICAgICAgICAgICAgICAgICBcImJsb2NrXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiaGVpZ2h0XCIsXG4gICAgICAgICAgICAgICAgICAgIFwiYm94U2VyaWFsaXplZFwiLFxuICAgICAgICAgICAgICAgICAgICBcInNwZW5kQmxvY2tcIixcbiAgICAgICAgICAgICAgICAgICAgXCJzcGVuZEhlaWdodFwiLFxuICAgICAgICAgICAgICAgICAgICBcInJ3dENvdW50XCJcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICBTRUxFQ1QgXCJpZFwiLFxuICAgICAgICAgICAgICAgIFwidHhJZFwiLFxuICAgICAgICAgICAgICAgIFwiZXh0cmFjdG9yXCIsXG4gICAgICAgICAgICAgICAgXCJldmVudElkXCIsXG4gICAgICAgICAgICAgICAgXCJjb21taXRtZW50XCIsXG4gICAgICAgICAgICAgICAgXCJXSURcIixcbiAgICAgICAgICAgICAgICBcImJveElkXCIsXG4gICAgICAgICAgICAgICAgXCJibG9ja1wiLFxuICAgICAgICAgICAgICAgIFwiaGVpZ2h0XCIsXG4gICAgICAgICAgICAgICAgXCJib3hTZXJpYWxpemVkXCIsXG4gICAgICAgICAgICAgICAgXCJzcGVuZEJsb2NrXCIsXG4gICAgICAgICAgICAgICAgXCJzcGVuZEhlaWdodFwiLFxuICAgICAgICAgICAgICAgIFwicnd0Q291bnRcIlxuICAgICAgICAgICAgRlJPTSBcInRlbXBvcmFyeV9jb21taXRtZW50X2VudGl0eVwiXG4gICAgICAgIGApO1xuICAgIGF3YWl0IHF1ZXJ5UnVubmVyLnF1ZXJ5KGBcbiAgICAgICAgICAgIERST1AgVEFCTEUgXCJ0ZW1wb3JhcnlfY29tbWl0bWVudF9lbnRpdHlcIlxuICAgICAgICBgKTtcbiAgICBhd2FpdCBxdWVyeVJ1bm5lci5xdWVyeShgXG4gICAgICAgICAgICBBTFRFUiBUQUJMRSBcImV2ZW50X3RyaWdnZXJfZW50aXR5XCJcbiAgICAgICAgICAgICAgICBSRU5BTUUgVE8gXCJ0ZW1wb3JhcnlfZXZlbnRfdHJpZ2dlcl9lbnRpdHlcIlxuICAgICAgICBgKTtcbiAgICBhd2FpdCBxdWVyeVJ1bm5lci5xdWVyeShgXG4gICAgICAgICAgICBDUkVBVEUgVEFCTEUgXCJldmVudF90cmlnZ2VyX2VudGl0eVwiIChcbiAgICAgICAgICAgICAgICBcImlkXCIgaW50ZWdlciBQUklNQVJZIEtFWSBBVVRPSU5DUkVNRU5UIE5PVCBOVUxMLFxuICAgICAgICAgICAgICAgIFwiZXZlbnRJZFwiIHZhcmNoYXIgTk9UIE5VTEwgREVGQVVMVCAoJ05vdC1zZXQnKSxcbiAgICAgICAgICAgICAgICBcInR4SWRcIiB2YXJjaGFyIE5PVCBOVUxMLFxuICAgICAgICAgICAgICAgIFwiZXh0cmFjdG9yXCIgdmFyY2hhciBOT1QgTlVMTCxcbiAgICAgICAgICAgICAgICBcImJveElkXCIgdmFyY2hhciBOT1QgTlVMTCxcbiAgICAgICAgICAgICAgICBcImJveFNlcmlhbGl6ZWRcIiB2YXJjaGFyIE5PVCBOVUxMLFxuICAgICAgICAgICAgICAgIFwiYmxvY2tcIiB2YXJjaGFyIE5PVCBOVUxMLFxuICAgICAgICAgICAgICAgIFwiaGVpZ2h0XCIgaW50ZWdlciBOT1QgTlVMTCxcbiAgICAgICAgICAgICAgICBcImZyb21DaGFpblwiIHZhcmNoYXIgTk9UIE5VTEwsXG4gICAgICAgICAgICAgICAgXCJ0b0NoYWluXCIgdmFyY2hhciBOT1QgTlVMTCxcbiAgICAgICAgICAgICAgICBcImZyb21BZGRyZXNzXCIgdmFyY2hhciBOT1QgTlVMTCxcbiAgICAgICAgICAgICAgICBcInRvQWRkcmVzc1wiIHZhcmNoYXIgTk9UIE5VTEwsXG4gICAgICAgICAgICAgICAgXCJhbW91bnRcIiB2YXJjaGFyIE5PVCBOVUxMLFxuICAgICAgICAgICAgICAgIFwiYnJpZGdlRmVlXCIgdmFyY2hhciBOT1QgTlVMTCxcbiAgICAgICAgICAgICAgICBcIm5ldHdvcmtGZWVcIiB2YXJjaGFyIE5PVCBOVUxMLFxuICAgICAgICAgICAgICAgIFwic291cmNlQ2hhaW5Ub2tlbklkXCIgdmFyY2hhciBOT1QgTlVMTCxcbiAgICAgICAgICAgICAgICBcInNvdXJjZUNoYWluSGVpZ2h0XCIgaW50ZWdlciBOT1QgTlVMTCxcbiAgICAgICAgICAgICAgICBcInRhcmdldENoYWluVG9rZW5JZFwiIHZhcmNoYXIgTk9UIE5VTEwsXG4gICAgICAgICAgICAgICAgXCJzb3VyY2VUeElkXCIgdmFyY2hhciBOT1QgTlVMTCxcbiAgICAgICAgICAgICAgICBcInNvdXJjZUJsb2NrSWRcIiB2YXJjaGFyIE5PVCBOVUxMLFxuICAgICAgICAgICAgICAgIFwic3BlbmRCbG9ja1wiIHRleHQsXG4gICAgICAgICAgICAgICAgXCJzcGVuZEhlaWdodFwiIGludGVnZXIsXG4gICAgICAgICAgICAgICAgXCJzcGVuZFR4SWRcIiB0ZXh0LFxuICAgICAgICAgICAgICAgIFwicmVzdWx0XCIgdGV4dCxcbiAgICAgICAgICAgICAgICBcInBheW1lbnRUeElkXCIgdGV4dCxcbiAgICAgICAgICAgICAgICBDT05TVFJBSU5UIFwiVVFfYzkwNWYyMjFhMWI2MjcxY2E0NDA1ZGJiZTVmXCIgVU5JUVVFIChcImJveElkXCIsIFwiZXh0cmFjdG9yXCIpXG4gICAgICAgICAgICApXG4gICAgICAgIGApO1xuICAgIGF3YWl0IHF1ZXJ5UnVubmVyLnF1ZXJ5KGBcbiAgICAgICAgICAgIElOU0VSVCBJTlRPIFwiZXZlbnRfdHJpZ2dlcl9lbnRpdHlcIihcbiAgICAgICAgICAgICAgICAgICAgXCJpZFwiLFxuICAgICAgICAgICAgICAgICAgICBcImV2ZW50SWRcIixcbiAgICAgICAgICAgICAgICAgICAgXCJ0eElkXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiZXh0cmFjdG9yXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiYm94SWRcIixcbiAgICAgICAgICAgICAgICAgICAgXCJib3hTZXJpYWxpemVkXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiYmxvY2tcIixcbiAgICAgICAgICAgICAgICAgICAgXCJoZWlnaHRcIixcbiAgICAgICAgICAgICAgICAgICAgXCJmcm9tQ2hhaW5cIixcbiAgICAgICAgICAgICAgICAgICAgXCJ0b0NoYWluXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiZnJvbUFkZHJlc3NcIixcbiAgICAgICAgICAgICAgICAgICAgXCJ0b0FkZHJlc3NcIixcbiAgICAgICAgICAgICAgICAgICAgXCJhbW91bnRcIixcbiAgICAgICAgICAgICAgICAgICAgXCJicmlkZ2VGZWVcIixcbiAgICAgICAgICAgICAgICAgICAgXCJuZXR3b3JrRmVlXCIsXG4gICAgICAgICAgICAgICAgICAgIFwic291cmNlQ2hhaW5Ub2tlbklkXCIsXG4gICAgICAgICAgICAgICAgICAgIFwic291cmNlQ2hhaW5IZWlnaHRcIixcbiAgICAgICAgICAgICAgICAgICAgXCJ0YXJnZXRDaGFpblRva2VuSWRcIixcbiAgICAgICAgICAgICAgICAgICAgXCJzb3VyY2VUeElkXCIsXG4gICAgICAgICAgICAgICAgICAgIFwic291cmNlQmxvY2tJZFwiLFxuICAgICAgICAgICAgICAgICAgICBcInNwZW5kQmxvY2tcIixcbiAgICAgICAgICAgICAgICAgICAgXCJzcGVuZEhlaWdodFwiLFxuICAgICAgICAgICAgICAgICAgICBcInNwZW5kVHhJZFwiLFxuICAgICAgICAgICAgICAgICAgICBcInJlc3VsdFwiLFxuICAgICAgICAgICAgICAgICAgICBcInBheW1lbnRUeElkXCJcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICBTRUxFQ1QgXCJpZFwiLFxuICAgICAgICAgICAgICAgIFwiZXZlbnRJZFwiLFxuICAgICAgICAgICAgICAgIFwidHhJZFwiLFxuICAgICAgICAgICAgICAgIFwiZXh0cmFjdG9yXCIsXG4gICAgICAgICAgICAgICAgXCJib3hJZFwiLFxuICAgICAgICAgICAgICAgIFwiYm94U2VyaWFsaXplZFwiLFxuICAgICAgICAgICAgICAgIFwiYmxvY2tcIixcbiAgICAgICAgICAgICAgICBcImhlaWdodFwiLFxuICAgICAgICAgICAgICAgIFwiZnJvbUNoYWluXCIsXG4gICAgICAgICAgICAgICAgXCJ0b0NoYWluXCIsXG4gICAgICAgICAgICAgICAgXCJmcm9tQWRkcmVzc1wiLFxuICAgICAgICAgICAgICAgIFwidG9BZGRyZXNzXCIsXG4gICAgICAgICAgICAgICAgXCJhbW91bnRcIixcbiAgICAgICAgICAgICAgICBcImJyaWRnZUZlZVwiLFxuICAgICAgICAgICAgICAgIFwibmV0d29ya0ZlZVwiLFxuICAgICAgICAgICAgICAgIFwic291cmNlQ2hhaW5Ub2tlbklkXCIsXG4gICAgICAgICAgICAgICAgXCJzb3VyY2VDaGFpbkhlaWdodFwiLFxuICAgICAgICAgICAgICAgIFwidGFyZ2V0Q2hhaW5Ub2tlbklkXCIsXG4gICAgICAgICAgICAgICAgXCJzb3VyY2VUeElkXCIsXG4gICAgICAgICAgICAgICAgXCJzb3VyY2VCbG9ja0lkXCIsXG4gICAgICAgICAgICAgICAgXCJzcGVuZEJsb2NrXCIsXG4gICAgICAgICAgICAgICAgXCJzcGVuZEhlaWdodFwiLFxuICAgICAgICAgICAgICAgIFwic3BlbmRUeElkXCIsXG4gICAgICAgICAgICAgICAgXCJyZXN1bHRcIixcbiAgICAgICAgICAgICAgICBcInBheW1lbnRUeElkXCJcbiAgICAgICAgICAgIEZST00gXCJ0ZW1wb3JhcnlfZXZlbnRfdHJpZ2dlcl9lbnRpdHlcIlxuICAgICAgICBgKTtcbiAgICBhd2FpdCBxdWVyeVJ1bm5lci5xdWVyeShgXG4gICAgICAgICAgICBEUk9QIFRBQkxFIFwidGVtcG9yYXJ5X2V2ZW50X3RyaWdnZXJfZW50aXR5XCJcbiAgICAgICAgYCk7XG4gICAgYXdhaXQgcXVlcnlSdW5uZXIucXVlcnkoYFxuICAgICAgICAgICAgQUxURVIgVEFCTEUgXCJldmVudF90cmlnZ2VyX2VudGl0eVwiXG4gICAgICAgICAgICAgICAgUkVOQU1FIFRPIFwidGVtcG9yYXJ5X2V2ZW50X3RyaWdnZXJfZW50aXR5XCJcbiAgICAgICAgYCk7XG4gICAgYXdhaXQgcXVlcnlSdW5uZXIucXVlcnkoYFxuICAgICAgICAgICAgQ1JFQVRFIFRBQkxFIFwiZXZlbnRfdHJpZ2dlcl9lbnRpdHlcIiAoXG4gICAgICAgICAgICAgICAgXCJpZFwiIGludGVnZXIgUFJJTUFSWSBLRVkgQVVUT0lOQ1JFTUVOVCBOT1QgTlVMTCxcbiAgICAgICAgICAgICAgICBcImV2ZW50SWRcIiB2YXJjaGFyIE5PVCBOVUxMIERFRkFVTFQgKCdOb3Qtc2V0JyksXG4gICAgICAgICAgICAgICAgXCJ0eElkXCIgdmFyY2hhciBOT1QgTlVMTCxcbiAgICAgICAgICAgICAgICBcImV4dHJhY3RvclwiIHZhcmNoYXIgTk9UIE5VTEwsXG4gICAgICAgICAgICAgICAgXCJib3hJZFwiIHZhcmNoYXIgTk9UIE5VTEwsXG4gICAgICAgICAgICAgICAgXCJib3hTZXJpYWxpemVkXCIgdmFyY2hhciBOT1QgTlVMTCxcbiAgICAgICAgICAgICAgICBcImJsb2NrXCIgdmFyY2hhciBOT1QgTlVMTCxcbiAgICAgICAgICAgICAgICBcImhlaWdodFwiIGludGVnZXIgTk9UIE5VTEwsXG4gICAgICAgICAgICAgICAgXCJmcm9tQ2hhaW5cIiB2YXJjaGFyIE5PVCBOVUxMLFxuICAgICAgICAgICAgICAgIFwidG9DaGFpblwiIHZhcmNoYXIgTk9UIE5VTEwsXG4gICAgICAgICAgICAgICAgXCJmcm9tQWRkcmVzc1wiIHZhcmNoYXIgTk9UIE5VTEwsXG4gICAgICAgICAgICAgICAgXCJ0b0FkZHJlc3NcIiB2YXJjaGFyIE5PVCBOVUxMLFxuICAgICAgICAgICAgICAgIFwiYW1vdW50XCIgdmFyY2hhciBOT1QgTlVMTCxcbiAgICAgICAgICAgICAgICBcImJyaWRnZUZlZVwiIHZhcmNoYXIgTk9UIE5VTEwsXG4gICAgICAgICAgICAgICAgXCJuZXR3b3JrRmVlXCIgdmFyY2hhciBOT1QgTlVMTCxcbiAgICAgICAgICAgICAgICBcInNvdXJjZUNoYWluVG9rZW5JZFwiIHZhcmNoYXIgTk9UIE5VTEwsXG4gICAgICAgICAgICAgICAgXCJzb3VyY2VDaGFpbkhlaWdodFwiIGludGVnZXIgTk9UIE5VTEwsXG4gICAgICAgICAgICAgICAgXCJ0YXJnZXRDaGFpblRva2VuSWRcIiB2YXJjaGFyIE5PVCBOVUxMLFxuICAgICAgICAgICAgICAgIFwic291cmNlVHhJZFwiIHZhcmNoYXIgTk9UIE5VTEwsXG4gICAgICAgICAgICAgICAgXCJzb3VyY2VCbG9ja0lkXCIgdmFyY2hhciBOT1QgTlVMTCxcbiAgICAgICAgICAgICAgICBcIldJRHNcIiB2YXJjaGFyIE5PVCBOVUxMLFxuICAgICAgICAgICAgICAgIFwic3BlbmRCbG9ja1wiIHRleHQsXG4gICAgICAgICAgICAgICAgXCJzcGVuZEhlaWdodFwiIGludGVnZXIsXG4gICAgICAgICAgICAgICAgXCJzcGVuZFR4SWRcIiB0ZXh0LFxuICAgICAgICAgICAgICAgIFwicmVzdWx0XCIgdGV4dCxcbiAgICAgICAgICAgICAgICBcInBheW1lbnRUeElkXCIgdGV4dCxcbiAgICAgICAgICAgICAgICBDT05TVFJBSU5UIFwiVVFfYzkwNWYyMjFhMWI2MjcxY2E0NDA1ZGJiZTVmXCIgVU5JUVVFIChcImJveElkXCIsIFwiZXh0cmFjdG9yXCIpXG4gICAgICAgICAgICApXG4gICAgICAgIGApO1xuICAgIGF3YWl0IHF1ZXJ5UnVubmVyLnF1ZXJ5KGBcbiAgICAgICAgICAgIElOU0VSVCBJTlRPIFwiZXZlbnRfdHJpZ2dlcl9lbnRpdHlcIihcbiAgICAgICAgICAgICAgICAgICAgXCJpZFwiLFxuICAgICAgICAgICAgICAgICAgICBcImV2ZW50SWRcIixcbiAgICAgICAgICAgICAgICAgICAgXCJ0eElkXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiZXh0cmFjdG9yXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiYm94SWRcIixcbiAgICAgICAgICAgICAgICAgICAgXCJib3hTZXJpYWxpemVkXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiYmxvY2tcIixcbiAgICAgICAgICAgICAgICAgICAgXCJoZWlnaHRcIixcbiAgICAgICAgICAgICAgICAgICAgXCJmcm9tQ2hhaW5cIixcbiAgICAgICAgICAgICAgICAgICAgXCJ0b0NoYWluXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiZnJvbUFkZHJlc3NcIixcbiAgICAgICAgICAgICAgICAgICAgXCJ0b0FkZHJlc3NcIixcbiAgICAgICAgICAgICAgICAgICAgXCJhbW91bnRcIixcbiAgICAgICAgICAgICAgICAgICAgXCJicmlkZ2VGZWVcIixcbiAgICAgICAgICAgICAgICAgICAgXCJuZXR3b3JrRmVlXCIsXG4gICAgICAgICAgICAgICAgICAgIFwic291cmNlQ2hhaW5Ub2tlbklkXCIsXG4gICAgICAgICAgICAgICAgICAgIFwic291cmNlQ2hhaW5IZWlnaHRcIixcbiAgICAgICAgICAgICAgICAgICAgXCJ0YXJnZXRDaGFpblRva2VuSWRcIixcbiAgICAgICAgICAgICAgICAgICAgXCJzb3VyY2VUeElkXCIsXG4gICAgICAgICAgICAgICAgICAgIFwic291cmNlQmxvY2tJZFwiLFxuICAgICAgICAgICAgICAgICAgICBcInNwZW5kQmxvY2tcIixcbiAgICAgICAgICAgICAgICAgICAgXCJzcGVuZEhlaWdodFwiLFxuICAgICAgICAgICAgICAgICAgICBcInNwZW5kVHhJZFwiLFxuICAgICAgICAgICAgICAgICAgICBcInJlc3VsdFwiLFxuICAgICAgICAgICAgICAgICAgICBcInBheW1lbnRUeElkXCJcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICBTRUxFQ1QgXCJpZFwiLFxuICAgICAgICAgICAgICAgIFwiZXZlbnRJZFwiLFxuICAgICAgICAgICAgICAgIFwidHhJZFwiLFxuICAgICAgICAgICAgICAgIFwiZXh0cmFjdG9yXCIsXG4gICAgICAgICAgICAgICAgXCJib3hJZFwiLFxuICAgICAgICAgICAgICAgIFwiYm94U2VyaWFsaXplZFwiLFxuICAgICAgICAgICAgICAgIFwiYmxvY2tcIixcbiAgICAgICAgICAgICAgICBcImhlaWdodFwiLFxuICAgICAgICAgICAgICAgIFwiZnJvbUNoYWluXCIsXG4gICAgICAgICAgICAgICAgXCJ0b0NoYWluXCIsXG4gICAgICAgICAgICAgICAgXCJmcm9tQWRkcmVzc1wiLFxuICAgICAgICAgICAgICAgIFwidG9BZGRyZXNzXCIsXG4gICAgICAgICAgICAgICAgXCJhbW91bnRcIixcbiAgICAgICAgICAgICAgICBcImJyaWRnZUZlZVwiLFxuICAgICAgICAgICAgICAgIFwibmV0d29ya0ZlZVwiLFxuICAgICAgICAgICAgICAgIFwic291cmNlQ2hhaW5Ub2tlbklkXCIsXG4gICAgICAgICAgICAgICAgXCJzb3VyY2VDaGFpbkhlaWdodFwiLFxuICAgICAgICAgICAgICAgIFwidGFyZ2V0Q2hhaW5Ub2tlbklkXCIsXG4gICAgICAgICAgICAgICAgXCJzb3VyY2VUeElkXCIsXG4gICAgICAgICAgICAgICAgXCJzb3VyY2VCbG9ja0lkXCIsXG4gICAgICAgICAgICAgICAgXCJzcGVuZEJsb2NrXCIsXG4gICAgICAgICAgICAgICAgXCJzcGVuZEhlaWdodFwiLFxuICAgICAgICAgICAgICAgIFwic3BlbmRUeElkXCIsXG4gICAgICAgICAgICAgICAgXCJyZXN1bHRcIixcbiAgICAgICAgICAgICAgICBcInBheW1lbnRUeElkXCJcbiAgICAgICAgICAgIEZST00gXCJ0ZW1wb3JhcnlfZXZlbnRfdHJpZ2dlcl9lbnRpdHlcIlxuICAgICAgICBgKTtcbiAgICBhd2FpdCBxdWVyeVJ1bm5lci5xdWVyeShgXG4gICAgICAgICAgICBEUk9QIFRBQkxFIFwidGVtcG9yYXJ5X2V2ZW50X3RyaWdnZXJfZW50aXR5XCJcbiAgICAgICAgYCk7XG4gIH1cbn1cbiJdfQ==