@genome-spy/app 0.76.0 → 0.78.0

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 (39) hide show
  1. package/LICENSE +21 -0
  2. package/dist/{agentApi-CzdacisO.js → agentApi-BwbEWjvl.js} +6362 -4470
  3. package/dist/agentApi.es.js +3315 -1561
  4. package/dist/agentShared.es.js +20 -20
  5. package/dist/blosc-DL1kZHdE.js +692 -0
  6. package/dist/chunk-INHXZS53-Dx2aFznx.js +13 -0
  7. package/dist/{esm-Cr7pLUfG.js → esm-BHjeb8gt.js} +2 -2
  8. package/dist/{esm-BH0wx5y-.js → esm-BI-plmf6.js} +2 -2
  9. package/dist/esm-BgpwI2cq.js +1221 -0
  10. package/dist/{esm-BWsx1OJ2.js → esm-BkagIzhP.js} +2 -2
  11. package/dist/esm-CHVYSGF2.js +1084 -0
  12. package/dist/esm-COzpU5N8.js +1221 -0
  13. package/dist/{esm-CdIesJ1z.js → esm-CPufCnsG.js} +2 -2
  14. package/dist/esm-C_XrKaCY.js +137 -0
  15. package/dist/esm-D2-C5ZzN.js +1084 -0
  16. package/dist/{esm-BLfLaJtE.js → esm-Daho46bY.js} +2 -2
  17. package/dist/esm-id9DWBZW.js +137 -0
  18. package/dist/{esm-DHOMWRoL.js → esm-sPWfZg9X.js} +2 -2
  19. package/dist/index.es.js +14184 -15233
  20. package/dist/index.js +598 -485
  21. package/dist/lz4-Csz5aoFA.js +626 -0
  22. package/dist/schema.json +1008 -137
  23. package/dist/{viewUtils-C5htqZCm.js → viewUtils-B7-F_Ae-.js} +2516 -2314
  24. package/dist/zstd-dJuUp1fl.js +583 -0
  25. package/package.json +4 -4
  26. package/src/agentApi/index.d.ts +24 -0
  27. package/src/bookmark/databaseSchema.d.ts +11 -1
  28. package/src/charts/sampleAttributePlotTypes.d.ts +26 -1
  29. package/src/sampleView/sampleViewTypes.d.ts +2 -0
  30. package/src/sampleView/state/payloadTypes.d.ts +84 -0
  31. package/src/sampleView/types.d.ts +3 -0
  32. package/src/spec/sampleView.d.ts +58 -0
  33. package/dist/esm-BDFRLEuD.js +0 -1248
  34. package/dist/esm-BY4T8YoD.js +0 -142
  35. package/dist/esm-DJUb6vy0.js +0 -1015
  36. package/dist/esm-DPS6pYKF.js +0 -1248
  37. package/dist/esm-DRZ5LLNH.js +0 -142
  38. package/dist/esm-PDPkTR1_.js +0 -1015
  39. /package/dist/{parquetRead-BuEN-6yG.js → parquetRead-C33mgLEo.js} +0 -0
@@ -1,1015 +0,0 @@
1
- import { t as e } from "./esm-CZvS2Ldm.js";
2
- import { n as t, r as n } from "./esm-DRZ5LLNH.js";
3
- import { t as r } from "./AbortablePromiseCache-beUIcZcW.js";
4
- //#region ../../node_modules/@gmod/bbi/esm/bigint-polyfill/pure.js
5
- var i = BigInt(32);
6
- function a(e, t, n) {
7
- let r = Number(!!n), a = Number(!n);
8
- return BigInt(e.getInt32(t, n) * a + e.getInt32(t + 4, n) * r) << i | BigInt(e.getUint32(t, n) * r + e.getUint32(t + 4, n) * a);
9
- }
10
- function o(e, t, n) {
11
- let r = e.getUint32(t, n), a = e.getUint32(t + 4, n), o = Number(!!n), s = Number(!n);
12
- return BigInt(r * s + a * o) << i | BigInt(r * o + a * s);
13
- }
14
- "getBigInt64" in DataView || (DataView.prototype.getBigInt64 = function(e, t) {
15
- return a(this, e, t);
16
- }), "getBigUint64" in DataView || (DataView.prototype.getBigUint64 = function(e, t) {
17
- return o(this, e, t);
18
- });
19
- //#endregion
20
- //#region ../../node_modules/@gmod/bbi/esm/range.js
21
- function s(e) {
22
- let t = [...e].sort((e, t) => e.min === t.min ? e.max - t.max : e.min - t.min), n = [], r = t[0];
23
- for (let e = 1; e < t.length; e++) {
24
- let i = t[e];
25
- i.min > r.max + 1 ? (n.push(r), r = i) : i.max > r.max && (r = {
26
- min: r.min,
27
- max: i.max
28
- });
29
- }
30
- return n.push(r), n;
31
- }
32
- //#endregion
33
- //#region ../../node_modules/@gmod/bbi/esm/wasm/inflate-wasm-inlined.js
34
- var c = {};
35
- c.d = (e, t) => {
36
- for (var n in t) c.o(t, n) && !c.o(e, n) && Object.defineProperty(e, n, {
37
- enumerable: !0,
38
- get: t[n]
39
- });
40
- }, c.o = (e, t) => Object.prototype.hasOwnProperty.call(e, t), c.r = (e) => {
41
- typeof Symbol < "u" && Symbol.toStringTag && Object.defineProperty(e, Symbol.toStringTag, { value: "Module" }), Object.defineProperty(e, "__esModule", { value: !0 });
42
- };
43
- var l = {};
44
- c.r(l), c.d(l, {
45
- __wbg_Error_83742b46f01ce22d: () => v,
46
- __wbg_set_wasm: () => L,
47
- decompress_and_parse_bigwig: () => d,
48
- decompress_and_parse_summary: () => f,
49
- inflate_raw: () => p,
50
- inflate_raw_batch: () => m,
51
- inflate_raw_unknown_size: () => h,
52
- parse_bigwig_block: () => g,
53
- parse_summary_block: () => _
54
- });
55
- var u = "data:application/wasm;base64,AGFzbQEAAAABoAEUYAAAYAABf2ABfwBgAX8Bf2ACf38AYAJ/fwF/YAN/f38AYAN/f38Bf2ADf39/AX1gBH9/f38AYAR/f39/AX9gBX9/f39/AGAFf39/f38Bf2AGf39/f39/AGAGf39/f39/AX9gB39/f39/f38Bf2AIf39/f39/f38AYAh/f39/f39/fwF/YAp/f39/f39/f39/AGALf39/f39/f39/f38AAjUBFC4vaW5mbGF0ZV93YXNtX2JnLmpzHF9fd2JnX0Vycm9yXzgzNzQyYjQ2ZjAxY2UyMmQABQN1dAMPExIRCw0QBQoOAgcKBwQGBQQGBAkFBQkECQYLDQ0TEhAICwcHBgQGCQINAgYGCwMEDQYLBwUHAwUEBgUFDAICBgQCBQQFAwIBBQQCAgIEBAQGBg4CBwUKAgUEBQYEBwcAAwUFBAQEBQUFAgICAgQEBQAABAUBcAEgIAUDAQARBgkBfwFBgIDAAAsH+gELBm1lbW9yeQIAG2RlY29tcHJlc3NfYW5kX3BhcnNlX2JpZ3dpZwAhHGRlY29tcHJlc3NfYW5kX3BhcnNlX3N1bW1hcnkAIAtpbmZsYXRlX3JhdwAbEWluZmxhdGVfcmF3X2JhdGNoACIYaW5mbGF0ZV9yYXdfdW5rbm93bl9zaXplABwScGFyc2VfYmlnd2lnX2Jsb2NrADUTcGFyc2Vfc3VtbWFyeV9ibG9jawAzH19fd2JpbmRnZW5fYWRkX3RvX3N0YWNrX3BvaW50ZXIAYxFfX3diaW5kZ2VuX2V4cG9ydAA9El9fd2JpbmRnZW5fZXhwb3J0MgBUCSUBAEEBCx9HSE9wRTJGcU02F2BbO1xnRD4aKFBRTjgYYWk6alhdCraTAnTOJAIJfwF+IwBBEGsiASQAAkACQAJAAkACQAJAIABB9QFJDQACQCAAQcz/e00NAEEAIQAMBgsgAEELaiICQXhxIQNBACgCnJ9AIgRFDQRBHyEFAkAgAEH0//8HSw0AIANBJiACQQh2ZyIAa3ZBAXEgAEEBdGtBPmohBQtBACADayECAkAgBUECdEGAnMAAaigCACIGDQBBACEHQQAhAAwCC0EAIQcgA0EAQRkgBUEBdmsgBUEfRht0IQhBACEAA0ACQCAGIgYoAgRBeHEiCSADSQ0AIAkgA2siCSACTw0AIAYhByAJIQIgCQ0AQQAhAiAGIQAgBiEHDAQLIAYoAhQiCSAAIAkgBiAIQR12QQRxaigCECIGRxsgACAJGyEAIAhBAXQhCCAGRQ0CDAALCwJAAkACQAJAAkACQEEAKAKYn0AiBkEQIABBC2pB+ANxIABBC0kbIgNBA3YiAnYiAEEDcUUNACAAQX9zQQFxIAJqIghBA3QiA0GQncAAaiIAIANBmJ3AAGooAgAiAigCCCIHRg0BIAcgADYCDCAAIAc2AggMAgsgA0EAKAKgn0BNDQggAA0CQQAoApyfQCIARQ0IIABoQQJ0QYCcwABqKAIAIgYoAgRBeHEgA2shAiAGIQcDQAJAIAcoAhAiAA0AIAcoAhQiAA0AIAYoAhghBQJAAkACQCAGKAIMIgAgBkcNACAGQRRBECAGKAIUIgAbaigCACIHDQFBACEADAILIAYoAggiByAANgIMIAAgBzYCCAwBCyAGQRRqIAZBEGogABshCANAIAghCSAHIgBBFGogAEEQaiAAKAIUIgcbIQggAEEUQRAgBxtqKAIAIgcNAAsgCUEANgIACyAFRQ0GAkACQCAGIAYoAhxBAnRBgJzAAGoiBygCAEYNAAJAIAUoAhAgBkYNACAFIAA2AhQgAA0CDAkLIAUgADYCECAADQEMCAsgByAANgIAIABFDQYLIAAgBTYCGAJAIAYoAhAiB0UNACAAIAc2AhAgByAANgIYCyAGKAIUIgdFDQYgACAHNgIUIAcgADYCGAwGCyAAKAIEQXhxIANrIgcgAiAHIAJJIgcbIQIgACAGIAcbIQYgACEHDAALC0EAIAZBfiAId3E2ApifQAsgAkEIaiEAIAIgA0EDcjYCBCACIANqIgMgAygCBEEBcjYCBAwHCwJAAkAgACACdEECIAJ0IgBBACAAa3JxaCIJQQN0IgJBkJ3AAGoiByACQZidwABqKAIAIgAoAggiCEYNACAIIAc2AgwgByAINgIIDAELQQAgBkF+IAl3cTYCmJ9ACyAAIANBA3I2AgQgACADaiIGIAIgA2siB0EBcjYCBCAAIAJqIAc2AgACQEEAKAKgn0AiAkUNAEEAKAKon0AhAwJAAkBBACgCmJ9AIghBASACQQN2dCIJcQ0AQQAgCCAJcjYCmJ9AIAJBeHFBkJ3AAGoiAiEIDAELIAJBeHEiAkGQncAAaiEIIAJBmJ3AAGooAgAhAgsgCCADNgIIIAIgAzYCDCADIAg2AgwgAyACNgIICyAAQQhqIQBBACAGNgKon0BBACAHNgKgn0AMBgtBAEEAKAKcn0BBfiAGKAIcd3E2ApyfQAsCQAJAAkAgAkEQSQ0AIAYgA0EDcjYCBCAGIANqIgcgAkEBcjYCBCAHIAJqIAI2AgBBACgCoJ9AIghFDQFBACgCqJ9AIQACQAJAQQAoApifQCIJQQEgCEEDdnQiBXENAEEAIAkgBXI2ApifQCAIQXhxQZCdwABqIgghCQwBCyAIQXhxIghBkJ3AAGohCSAIQZidwABqKAIAIQgLIAkgADYCCCAIIAA2AgwgACAJNgIMIAAgCDYCCAwBCyAGIAIgA2oiAEEDcjYCBCAGIABqIgAgACgCBEEBcjYCBAwBC0EAIAc2AqifQEEAIAI2AqCfQAsgBkEIaiIARQ0DDAQLAkAgACAHcg0AQQAhB0ECIAV0IgBBACAAa3IgBHEiAEUNAyAAaEECdEGAnMAAaigCACEACyAARQ0BCwNAIAAoAgRBeHEiBiADayIIIAIgCCACSSIJGyEFIAYgA0khCCAAIAcgCRshCQJAIAAoAhAiBg0AIAAoAhQhBgsgAiAFIAgbIQIgByAJIAgbIQcgBiEAIAYNAAsLIAdFDQACQEEAKAKgn0AiACADSQ0AIAIgACADa08NAQsgBygCGCEFAkACQAJAIAcoAgwiACAHRw0AIAdBFEEQIAcoAhQiABtqKAIAIgYNAUEAIQAMAgsgBygCCCIGIAA2AgwgACAGNgIIDAELIAdBFGogB0EQaiAAGyEIA0AgCCEJIAYiAEEUaiAAQRBqIAAoAhQiBhshCCAAQRRBECAGG2ooAgAiBg0ACyAJQQA2AgALAkAgBUUNAAJAAkACQCAHIAcoAhxBAnRBgJzAAGoiBigCAEYNAAJAIAUoAhAgB0YNACAFIAA2AhQgAA0CDAQLIAUgADYCECAADQEMAwsgBiAANgIAIABFDQELIAAgBTYCGAJAIAcoAhAiBkUNACAAIAY2AhAgBiAANgIYCyAHKAIUIgZFDQEgACAGNgIUIAYgADYCGAwBC0EAQQAoApyfQEF+IAcoAhx3cTYCnJ9ACwJAAkAgAkEQSQ0AIAcgA0EDcjYCBCAHIANqIgAgAkEBcjYCBCAAIAJqIAI2AgACQCACQYACSQ0AIAAgAhAVDAILAkACQEEAKAKYn0AiBkEBIAJBA3Z0IghxDQBBACAGIAhyNgKYn0AgAkH4AXFBkJ3AAGoiAiEGDAELIAJB+AFxIgJBkJ3AAGohBiACQZidwABqKAIAIQILIAYgADYCCCACIAA2AgwgACAGNgIMIAAgAjYCCAwBCyAHIAIgA2oiAEEDcjYCBCAHIABqIgAgACgCBEEBcjYCBAsgB0EIaiIADQELAkACQAJAAkACQAJAQQAoAqCfQCIAIANPDQACQEEAKAKkn0AiACADSw0AIAFBBGpBxJ/AACADQa+ABGpBgIB8cRAuAkAgASgCBCIGDQBBACEADAgLIAEoAgwhBUEAQQAoArCfQCABKAIIIglqIgA2ArCfQEEAIABBACgCtJ9AIgIgACACSxs2ArSfQAJAAkACQEEAKAKsn0AiAkUNAEGAncAAIQADQCAGIAAoAgAiByAAKAIEIghqRg0CIAAoAggiAA0ADAMLCwJAAkBBACgCvJ9AIgBFDQAgBiAATw0BC0EAIAY2AryfQAtBAEH/HzYCwJ9AQQAgBTYCjJ1AQQAgCTYChJ1AQQAgBjYCgJ1AQQBBkJ3AADYCnJ1AQQBBmJ3AADYCpJ1AQQBBkJ3AADYCmJ1AQQBBoJ3AADYCrJ1AQQBBmJ3AADYCoJ1AQQBBqJ3AADYCtJ1AQQBBoJ3AADYCqJ1AQQBBsJ3AADYCvJ1AQQBBqJ3AADYCsJ1AQQBBuJ3AADYCxJ1AQQBBsJ3AADYCuJ1AQQBBwJ3AADYCzJ1AQQBBuJ3AADYCwJ1AQQBByJ3AADYC1J1AQQBBwJ3AADYCyJ1AQQBB0J3AADYC3J1AQQBByJ3AADYC0J1AQQBB0J3AADYC2J1AQQBB2J3AADYC5J1AQQBB2J3AADYC4J1AQQBB4J3AADYC7J1AQQBB4J3AADYC6J1AQQBB6J3AADYC9J1AQQBB6J3AADYC8J1AQQBB8J3AADYC/J1AQQBB8J3AADYC+J1AQQBB+J3AADYChJ5AQQBB+J3AADYCgJ5AQQBBgJ7AADYCjJ5AQQBBgJ7AADYCiJ5AQQBBiJ7AADYClJ5AQQBBiJ7AADYCkJ5AQQBBkJ7AADYCnJ5AQQBBmJ7AADYCpJ5AQQBBkJ7AADYCmJ5AQQBBoJ7AADYCrJ5AQQBBmJ7AADYCoJ5AQQBBqJ7AADYCtJ5AQQBBoJ7AADYCqJ5AQQBBsJ7AADYCvJ5AQQBBqJ7AADYCsJ5AQQBBuJ7AADYCxJ5AQQBBsJ7AADYCuJ5AQQBBwJ7AADYCzJ5AQQBBuJ7AADYCwJ5AQQBByJ7AADYC1J5AQQBBwJ7AADYCyJ5AQQBB0J7AADYC3J5AQQBByJ7AADYC0J5AQQBB2J7AADYC5J5AQQBB0J7AADYC2J5AQQBB4J7AADYC7J5AQQBB2J7AADYC4J5AQQBB6J7AADYC9J5AQQBB4J7AADYC6J5AQQBB8J7AADYC/J5AQQBB6J7AADYC8J5AQQBB+J7AADYChJ9AQQBB8J7AADYC+J5AQQBBgJ/AADYCjJ9AQQBB+J7AADYCgJ9AQQBBiJ/AADYClJ9AQQBBgJ/AADYCiJ9AQQAgBkEPakF4cSIAQXhqIgI2AqyfQEEAQYifwAA2ApCfQEEAIAYgAGsgCUFYaiIAakEIaiIHNgKkn0AgAiAHQQFyNgIEIAYgAGpBKDYCBEEAQYCAgAE2ArifQAwICyACIAZPDQAgByACSw0AIAAoAgwiB0EBcQ0AIAdBAXYgBUYNAwtBAEEAKAK8n0AiACAGIAAgBkkbNgK8n0AgBiAJaiEHQYCdwAAhAAJAAkACQANAIAAoAgAiCCAHRg0BIAAoAggiAA0ADAILCyAAKAIMIgdBAXENACAHQQF2IAVGDQELQYCdwAAhAAJAA0ACQCAAKAIAIgcgAksNACACIAcgACgCBGoiB0kNAgsgACgCCCEADAALC0EAIAZBD2pBeHEiAEF4aiIINgKsn0BBACAGIABrIAlBWGoiAGpBCGoiBDYCpJ9AIAggBEEBcjYCBCAGIABqQSg2AgRBAEGAgIABNgK4n0AgAiAHQWBqQXhxQXhqIgAgACACQRBqSRsiCEEbNgIEQQApAoCdQCEKIAhBEGpBACkCiJ1ANwIAIAhBCGoiACAKNwIAQQAgBTYCjJ1AQQAgCTYChJ1AQQAgBjYCgJ1AQQAgADYCiJ1AIAhBHGohAANAIABBBzYCACAAQQRqIgAgB0kNAAsgCCACRg0HIAggCCgCBEF+cTYCBCACIAggAmsiAEEBcjYCBCAIIAA2AgACQCAAQYACSQ0AIAIgABAVDAgLAkACQEEAKAKYn0AiB0EBIABBA3Z0IgZxDQBBACAHIAZyNgKYn0AgAEH4AXFBkJ3AAGoiACEHDAELIABB+AFxIgBBkJ3AAGohByAAQZidwABqKAIAIQALIAcgAjYCCCAAIAI2AgwgAiAHNgIMIAIgADYCCAwHCyAAIAY2AgAgACAAKAIEIAlqNgIEIAZBD2pBeHFBeGoiByADQQNyNgIEIAhBD2pBeHFBeGoiAiAHIANqIgBrIQMgAkEAKAKsn0BGDQMgAkEAKAKon0BGDQQCQCACKAIEIgZBA3FBAUcNACACIAZBeHEiBhATIAYgA2ohAyACIAZqIgIoAgQhBgsgAiAGQX5xNgIEIAAgA0EBcjYCBCAAIANqIAM2AgACQCADQYACSQ0AIAAgAxAVDAYLAkACQEEAKAKYn0AiAkEBIANBA3Z0IgZxDQBBACACIAZyNgKYn0AgA0H4AXFBkJ3AAGoiAyECDAELIANB+AFxIgNBkJ3AAGohAiADQZidwABqKAIAIQMLIAIgADYCCCADIAA2AgwgACACNgIMIAAgAzYCCAwFC0EAIAAgA2siAjYCpJ9AQQBBACgCrJ9AIgAgA2oiBzYCrJ9AIAcgAkEBcjYCBCAAIANBA3I2AgQgAEEIaiEADAYLQQAoAqifQCECAkACQCAAIANrIgdBD0sNAEEAQQA2AqifQEEAQQA2AqCfQCACIABBA3I2AgQgAiAAaiIAIAAoAgRBAXI2AgQMAQtBACAHNgKgn0BBACACIANqIgY2AqifQCAGIAdBAXI2AgQgAiAAaiAHNgIAIAIgA0EDcjYCBAsgAkEIaiEADAULIAAgCCAJajYCBEEAQQAoAqyfQCIAQQ9qQXhxIgJBeGoiBzYCrJ9AQQAgACACa0EAKAKkn0AgCWoiAmpBCGoiBjYCpJ9AIAcgBkEBcjYCBCAAIAJqQSg2AgRBAEGAgIABNgK4n0AMAwtBACAANgKsn0BBAEEAKAKkn0AgA2oiAzYCpJ9AIAAgA0EBcjYCBAwBC0EAIAA2AqifQEEAQQAoAqCfQCADaiIDNgKgn0AgACADQQFyNgIEIAAgA2ogAzYCAAsgB0EIaiEADAELQQAhAEEAKAKkn0AiAiADTQ0AQQAgAiADayICNgKkn0BBAEEAKAKsn0AiACADaiIHNgKsn0AgByACQQFyNgIEIAAgA0EDcjYCBCAAQQhqIQALIAFBEGokACAAC7wdARZ/IAEgAmoiByACQREgAkERSRtrIQggAyAEaiIJIARBlwIgBEGXAkkbayEKIABBpNoAaiELIABBmMkAaiEMIABB4NUAaiENIABBzANqIQ5BACEPQQAhEEEAIQIgASERIAMhBAJAAkADQAJAAkAgByARa0EDSw0AIAIhEiAQQf8BcSICQRdLDQEDQAJAAkAgESAHRg0AIBEtAAAgAnQgEnIhEiARQQFqIREMAQtBASETIA9BAWoiD0EESw0FCyAQQQhqIhBB/wFxIgJBGEkNAAwCCwsgESgAACAQQf8BcXQgAnIhEiARIBBBA3ZBB3FrQQNqIREgEEEYciEQC0EBIRMCQAJAAkACQAJAAkAgEkEBdkEDcQ4EBAEABwQLQQAhFCAAQQA6AKBaIBBBb2ohAiASQRF2IRUgEkENdiIWQQ9xIhdBBGohECASQQh2QR9xQQFqIRggEkEDdkEfcUGBAmohGQNAAkACQCACQf8BcSITQQJNDQAgAiEaDAELAkAgByARa0EDSw0AIAIhGgNAAkACQCARIAdGDQAgES0AACATdCAVciEVIBFBAWohEQwBC0EBIRMgD0EBaiIPQQRLDQsLIBpBCGoiGkH/AXEiE0EYSQ0ADAILCyACQRhyIRogESgAACATdCAVciEVIBEgAkEDdkEHcWtBA2ohEQsgACAUQZCLwABqLQAAaiAVQQdxOgAAIBpBfWohAiAVQQN2IRUgFEEBaiIUIBBHDQALAkAgF0EPRg0AAkAgFkEDcSIaQQNGDQBBBCEQA0AgACAXIBBqQZCLwABqLQAAakEAOgAAIBBBfWohFCAQQQFqIhMhECAaIBRzQQNHDQALIBcgE2ohEAsgF0F0akEDSQ0AA0AgACAQQZCLwABqLQAAakEAOgAAIAAgEEGRi8AAai0AAGpBADoAACAAIBBBkovAAGotAABqQQA6AAAgACAQQZOLwABqLQAAakEAOgAAIBBBBGoiEEETRw0ACwsCQCAOIABBE0Gwi8AAQQdBByANQQAQBQ0AQQEPCyAZIBhqIRdBACEQA0ACQAJAIAJB/wFxIhRBDU0NACACIRoMAQsCQCAHIBFrQQNLDQAgAiEaA0ACQAJAIBEgB0YNACARLQAAIBR0IBVyIRUgEUEBaiERDAELQQEhEyAPQQFqIg9BBEsNCwsgGkEIaiIaQf8BcSIUQRhJDQAMAgsLIAJBGHIhGiARKAAAIBR0IBVyIRUgESACQQN2QQdxa0EDaiERCyAOIBVB/wBxQQJ0aigCACIUQRB2IRMgGiAUayECIBUgFEH/AXF2IRUCQAJAIBRB//8/Sw0AIAAgEGogEzoAACAQQQFqIRAMAQsCQAJAAkACQCATQXBqDgIAAQILAkAgEA0AQQEPCyAAIBBqIhRBBWogFEF/ai0AACIaOgAAIBRBBGogGjoAACAUQQNqIBo6AAAgFEECaiAaOgAAIBRBAWogGjoAACAUIBo6AAAgAkF+aiECIBVBA3FBA2ohFCAVQQJ2IRUMAgsgACAQaiIUQgA3AAAgFEEIakEAOwAAIAJBfWohAiAVQQdxQQNqIRQgFUEDdiEVDAELAkAgFUH/AHFBC2oiFEUNACAAIBBqQQAgFPwLAAsgAkF5aiECIBVBB3YhFQsgFCAQaiEQCyAQIBdJDQALIBAgF0YNAUEBDwsgEEF9aiECIBJBA3YhFSAALQCgWg0BIABBAToAoFpBACEQA0AgACAQaiIUQoiQoMCAgYKECDcAACAUQQhqQQg6AAAgEEEJaiIQQZABRw0AC0GQfyEQA0AgACAQakGAAmpCiZKkyJChwoQJNwAAIBBBCGoiEA0ACyAAQoWKlKjQoMGCBTcAuAIgAEKFipSo0KDBggU3ALACIABChYqUqNCgwYIFNwCoAiAAQoWKlKjQoMGCBTcAoAIgAEKIkKDAgIGChAg3AJgCIABCh46cuPDgwYMHNwCQAiAAQoeOnLjw4MGDBzcAiAIgAEKHjpy48ODBgwc3AIACQSAhGEGgAiEZCwJAIAwgACAZaiAYQYCMwABBCEEPIA1BABAFDQBBAQ8LIAAgACAZQYCNwABBC0EPIA0gCxAFDQBBAQ8LQX8gCygCAHRBf3MhFwJAAkAgESAITw0AIAQgCk8NACACQRhyIRAgESACQQN2QQdxa0EDaiEUIAAgESgAACACQf8BcXQgFXIiFSAXcUECdGooAgAhGANAIBAgGGshECAVIBhB/wFxIhN2IQICQAJAAkACQCAYQQBIDQACQCAYQYCAAnENACACIREMAwsCQCAYQYDAAHFFDQAgFCERDAkLIBAgACACQX8gGEEIdnRBf3NxIBhBEHZqQQJ0aigCACIYayEQIAIgGEH/AXEiE3YhESAYQQBODQEgESECCyAEIBhBEHY6AAAgBEEBaiEEIBQoAAAgEEH/AXF0IAJyIRUgFCAQQQN2QQdxa0EDaiEUIAAgAiAXcUECdGooAgAhGAwCCyACIRUgGEGAwABxRQ0AIBEhAiAUIREMBgsgEEEYciEZIBQoAAAgEEH/AXF0IBFyIRogFCAQQQN2QQdxa0EDaiEUAkAgDCARQf8BcUECdGooAgAiEUGAgAJxRQ0AIBQoAAAgGUF4aiICQfcBcXQgGkEIdiIQciEaIAwgEEF/IBFBCHZBP3F0QX9zcSARQRB2akECdGooAgAhESACQRhyIRkgFCACQQN2QQZxa0EDaiEUCwJAIBpBfyARQf8BcSIWdEF/c3EgEUEIdkH/AXF2IhsgEUEQdiIcaiICIAQgA2tNDQBBAQ8LIBVBfyATdEF/c3EhEyAUKAAAIBkgEWsiEEH/AXF0IBogFnYiGXIhFSAEIAJrIRogBCAYQRB2aiATIBhBCHZB/wFxdmohESAUIBBBA3ZBB3FrQQNqIRQgACAZIBdxQQJ0aigCACEYAkACQCACQQRJDQAgBCAaKAAANgAAIAQgGigABDYABCAEIBooAAg2AAggBCAaKAAMNgAMIAQgGigAEDYAECAEQRRqIBFPDQFBACACayETA0AgBEEUaiIaIAQgE2oiAkEUaigAADYAACAEQRhqIAJBGGooAAA2AAAgBEEcaiACQRxqKAAANgAAIARBIGogAkEgaigAADYAACAEQSRqIAJBJGooAAA2AAAgBEEoaiECIBohBCACIBFJDQAMAgsLAkAgAkEBRw0AIAQgGi0AAEGBgoQIbCIaNgAMIAQgGjYACCAEIBo2AAQgBCAaNgAAIARBEGoiAiARTw0BA0AgAiAaNgAAIAJBDGogGjYAACACQQhqIBo2AAAgAkEEaiAaNgAAIAJBEGoiAiARSQ0ADAILCyAEIBooAAAiGjYAACAEIAJqIBo2AAAgG0EBdCAcQQF0aiEaIAJBA2whFgNAIAQgGmogBCACaiITKAAAIhk2AAAgBCAWaiAZNgAAIBMgAmoiBCAaaiARSQ0ACwsgESEECyAQQRhyIRAgFCAITw0CIAQgCkkNAAwCCwsgAiEQIBEhFAsDQAJAAkAgByAUa0EDSw0AIBBB/wFxIgJBF0sNAQNAAkACQCAUIAdGDQAgFC0AACACdCAVciEVIBRBAWohFAwBC0EBIRMgD0EBaiIPQQRLDQgLIBBBCGoiEEH/AXEiAkEYSQ0ADAILCyAUKAAAIBBB/wFxdCAVciEVIBQgEEEDdkEHcWtBA2ohFCAQQRhyIRALIBAgACAVIBdxQQJ0aigCACICayEQIBUgAkH/AXF2IRECQAJAIAJBgIABcQ0AIBUhGiARIRUMAQsgECAAIBFBfyACQQh2QT9xdEF/c3EgAkEQdmpBAnRqKAIAIgJrIRAgESACQf8BcXYhFSARIRoLIAJBEHYhEQJAIAJBf0oNAAJAIAQgCUcNAEEDDwsgBCAROgAAIARBAWohBAwBCwJAIAJBgMAAcUUNACAVIQIgFCERDAMLAkAgGkF/IAJB/wFxdEF/c3EgAkEIdkHfAXF2IBFqIhogCSAEa00NAEEDDwsCQAJAIAcgFGtBA0sNACAQQf8BcSICQRdLDQEDQAJAAkAgFCAHRg0AIBQtAAAgAnQgFXIhFSAUQQFqIRQMAQtBASETIA9BAWoiD0EESw0ICyAQQQhqIhBB/wFxIgJBGEkNAAwCCwsgFCgAACAQQf8BcXQgFXIhFSAUIBBBA3ZBB3FrQQNqIRQgEEEYciEQCwJAIAwgFUH/AXFBAnRqKAIAIgJBgIACcUUNACAMIBVBCHYiFUF/IAJBCHZBP3F0QX9zcSACQRB2akECdGooAgAhAiAQQXhqIRECQAJAIAcgFGtBA0sNACARQf8BcSITQRdNDQEgESEQDAILIBFBGHIhECAUKAAAIBFB/wFxdCAVciEVIBQgEUEDdkEHcWtBA2ohFAwBCwNAAkACQCAUIAdGDQAgFC0AACATdCAVciEVIBRBAWohFAwBC0EBIRMgD0EBaiIPQQRLDQcLIBBB/wFxIRMgEEEIaiIRIRAgE0EYSQ0ACyARQXhqIRALAkAgFUF/IAJB/wFxIhN0QX9zcSACQQh2Qf8BcXYgAkEQdmoiESAEIANrTQ0AQQEPCyAQIAJrIRAgFSATdiEVIAQgBCARayICLQAAOgAAIAQgAi0AAToAASAEQQJqIQIgBCAaaiEEQQAgEWshEQNAIAIgAiARai0AADoAACACQQFqIgIgBEkNAAwBCwsLAkAgDyAQQf0BakEDdkEfcSICTQ0AQQEPCwJAIAcgESAPIAJraiIRa0EETg0AQQEPCwJAIBEvAAIgES8AACICc0H//wNxQf//A0YNAEEBDwsCQCAJIARrIAJODQBBAw8LAkAgByARQQRqIhFrIAJODQBBAQ8LAkAgAkUNACAEIBEgAvwKAAALIAQgAmohBCARIAJqIRFBACEPQQAhEEEAIQILIBJBAXFFDQALQQEhEyAPIBBBA3ZBH3EiAksNAAJAIAVFDQAgBSARIA8gAmtqIAFrNgIACwJAIAZFDQAgBiAEIANrNgIADAILIAQgCUYNAUECIRMLIBMPC0EAC9UZAhx/AX0jAEHgAGsiCyQAIAsQSjYCAEEAIQwCQAJAAkACQAJAAkACQAJAIAdBAEgNAAJAAkAgBw0AQQEhDQwBCxBzQQEhDCAHQQEQZSINRQ0BCyAEQZADbCEMQQAhDgJAIARB5ABsIg9B/////wNLDQAgDEH8////B0sNAAJAAkACQAJAAkAgDEUNABBzQQQhDiAMQQQQZCIQRQ0FIAtBADYCDCALIBA2AgggCyAPNgIEEHMgDEEEEGQiDkUNBCALQQA2AhggCyAONgIUIAsgDzYCEBBzIAxBBBBkIg5FDQMgC0EANgIkIAsgDjYCICALIA82AhwQcyAMQQQQZCIORQ0CIAtBADYCMCALIA42AiwgCyAPNgIoEHMgDEEEEGQiEQ0BQQQgDBBSAAsgC0EANgIMIAtCgICAgMAANwIEIAtBADYCGCALQoCAgIDAADcCECALQQA2AiQgC0KAgICAwAA3AhwgC0EANgIwIAtCgICAgMAANwIoQQQhEQtBACEQIAtBADYCPCALIBE2AjggCyAPNgI0AkAgBA0AQQQhDEEAIQ8MBgsgCiAJciESQQAhEwNAAkACQAJAIBMgBkYNACAFIBNBAnQiDGooAgAiDiADIAxqKAIAIg9qIgwgD0ECaiIPSQ0BIAwgAksNASALQcAAaiALIAEgD2ogDkF+aiANIAcQLCALLQBARQ0CIAsgCy0AQToASyALQQGtQiCGIAtBywBqrYQ3A1ggC0HMAGpBz4HAACALQdgAahARIAsoAkwhDCALKAJQIg4gCygCVBBrIQ8CQCAMRQ0AIA4gDEEBEF4LIABBADYCACAAIA82AgQCQCALKAI0IgxFDQAgCygCOCAMQQJ0QQQQXgsCQCALKAIoIgxFDQAgCygCLCAMQQJ0QQQQXgsCQCALKAIcIgxFDQAgCygCICAMQQJ0QQQQXgsCQCALKAIQIgxFDQAgCygCFCAMQQJ0QQQQXgsCQCALKAIEIgxFDQAgCygCCCAMQQJ0QQQQXgsgBw0NDA4LIAYgBkHIiMAAEDQACyAPIAwgAkHoiMAAEBYACwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCALKAJEIg8gB0sNACAPQSBJDR0gD0EFdiEUQQAhDANAIAwgD08NAiAMQQFqIA9PDQMgDEECaiAPTw0EIAxBA2ogD08NBSAMQQRqIA9PDQYgDEEFaiAPTw0HIAxBBmogD08NCCAMQQdqIA9PDQkgDEEIaiAPTw0KIAxBCWogD08NCyAMQQpqIA9PDQwgDEELaiAPTw0NIAxBDGogD08NDiAMQQ1qIA9PDQ8gDEEOaiAPTw0QIAxBD2ogD08NESAMQRBqIA9PDRIgDEERaiAPTw0TIAxBEmogD08NFCAMQRNqIA9PDRUgDEEUaiAPTw0WIAxBFWogD08NFyAMQRZqIA9PDRggDEEXaiAPTw0ZIAxBGGogD08NGiAMQRlqIA9PDRsgDEEaaiAPTw0cIAxBG2ogD08NHSANIAxqIg5BBWotAABBCHQgDkEEai0AAHIgDkEGai0AAEEQdHIgDkEHai0AAEEYdHIhFSAOQQlqLQAAQQh0IA5BCGotAAByIA5BCmotAABBEHRyIA5BC2otAABBGHRyIRYgDkEMai0AACEXIA5BDWotAAAhGCAOQQ5qLQAAIRkgDkEPai0AACEaIA5BEGotAAAhGyAOQRFqLQAAIRwgDkESai0AACEdIA5BE2otAAAhHiAOQRRqLQAAIR8gDkEVai0AACEgIA5BFmotAAAhISAOQRdqLQAAISIgDkEYai0AACEjIA5BGWotAAAhJCAOQRpqLQAAISUgDkEbai0AACEmAkACQCASRQ0AIA5BAWotAABBCHQgDi0AAHIgDkECai0AAEEQdHIgDkEDai0AAEEYdHIgCEcNASAVIApODQEgFiAJTA0BCyAYQQh0IBdyIBlBEHRyIRcgGkEYdCEYICRBCHQgI3IgJUEQdHIhGSAmQRh0IRoCQCALKAIMIg4gCygCBEcNACALQQRqEC0LIBxBCHQhHCAZIBpyIRkgFyAYciEXIAsoAgggDkECdGogFTYCACALIA5BAWo2AgwCQCALKAIYIg4gCygCEEcNACALQRBqEC0LICBBCHQhFSAcIBtyIRggHUEQdCEaIBm+IScgCygCFCAOQQJ0aiAWNgIAIAsgDkEBajYCGAJAIBdFDQAgJyAXs5UhJwsgFSAfciEVICFBEHQhFiAYIBpyIRcgHkEYdCEYAkAgCygCJCIOIAsoAhxHDQAgC0EcahAtCyAVIBZyIRUgIkEYdCEWIBcgGHIhFyALKAIgIA5BAnRqICc4AgAgCyAOQQFqNgIkAkAgCygCMCIOIAsoAihHDQAgC0EoahAtCyAVIBZyIRUgCygCLCAOQQJ0aiAXNgIAIAsgDkEBajYCMAJAIBAgCygCNEcNACALQTRqEC0gCygCOCERCyARIBBBAnRqIBU2AgAgCyAQQQFqIhA2AjwLIAxBIGohDCAUQX9qIhRFDR4MAAsLQQAgDyAHQdiIwAAQFgALIAwgD0HIhsAAEDQACyAMQQFqIA9B2IbAABA0AAsgDEECaiAPQeiGwAAQNAALIAxBA2ogD0H4hsAAEDQACyAMQQRqIA9ByIbAABA0AAsgDEEFaiAPQdiGwAAQNAALIAxBBmogD0HohsAAEDQACyAMQQdqIA9B+IbAABA0AAsgDEEIaiAPQciGwAAQNAALIAxBCWogD0HYhsAAEDQACyAMQQpqIA9B6IbAABA0AAsgDEELaiAPQfiGwAAQNAALIAxBDGogD0HIhsAAEDQACyAMQQ1qIA9B2IbAABA0AAsgDEEOaiAPQeiGwAAQNAALIAxBD2ogD0H4hsAAEDQACyAMQRBqIA9ByIXAABA0AAsgDEERaiAPQdiFwAAQNAALIAxBEmogD0HohcAAEDQACyAMQRNqIA9B+IXAABA0AAsgDEEUaiAPQciFwAAQNAALIAxBFWogD0HYhcAAEDQACyAMQRZqIA9B6IXAABA0AAsgDEEXaiAPQfiFwAAQNAALIAxBGGogD0HIhcAAEDQACyAMQRlqIA9B2IXAABA0AAsgDEEaaiAPQeiFwAAQNAALIAxBG2ogD0H4hcAAEDQACyATQQFqIhMgBEcNAAtBACEOIAsoAgwiD0EUbEEEaiIMQQBIDQYgDA0FIAtBADYCVCALQoCAgIAQNwJMIAtBzABqQQBBBBAnIAsoAkwhDCALKAJQIRAgCygCVCEODAgLQQQgDBBSAAtBBCAMEFIAC0EEIAwQUgALIA4gDBBSAAsgDCAHEFIACxBzQQEhDiAMQQEQZCIQDQELIA4gDBBSAAsgCyAQNgJQIAsgDDYCTEEAIQ4LIBAgDmogDzYAACALIA5BBGoiDjYCVCALKAIIIRUCQCAPQQJ0Ig8gDCAOa00NACALQcwAaiAOIA8QJyALKAJQIRAgCygCVCEOCwJAIA9FDQAgECAOaiAVIA/8CgAACyALIA4gD2oiDDYCVCALKAIUIRYCQCALKAIYQQJ0Ig8gCygCTCIOIAxrTQ0AIAtBzABqIAwgDxAnIAsoAkwhDiALKAJUIQwLIAsoAlAhEAJAIA9FDQAgECAMaiAWIA/8CgAACyALIAwgD2oiDDYCVCALKAIgIRQCQCALKAIkQQJ0Ig8gDiAMa00NACALQcwAaiAMIA8QJyALKAJMIQ4gCygCUCEQIAsoAlQhDAsCQCAPRQ0AIBAgDGogFCAP/AoAAAsgCyAMIA9qIgw2AlQgCygCLCEXAkAgCygCMEECdCIPIA4gDGtNDQAgC0HMAGogDCAPECcgCygCUCEQIAsoAlQhDAsCQCAPRQ0AIBAgDGogFyAP/AoAAAsgCyAMIA9qIgw2AlQgCygCOCEYAkAgCygCPEECdCIPIAsoAkwiDiAMa00NACALQcwAaiAMIA8QJyALKAJMIQ4gCygCVCEMCyALKAJQIRACQCAPRQ0AIBAgDGogGCAP/AoAAAsgCyAMIA9qIgw2AlQCQAJAIA4gDEsNACAQIQ8MAQsCQCAMDQBBASEPIBAgDkEBEF4MAQsgECAOQQEgDBBZIg9FDQMLIAAgDDYCBCAAIA82AgACQCALKAI0IgxFDQAgGCAMQQJ0QQQQXgsCQCALKAIoIgxFDQAgFyAMQQJ0QQQQXgsCQCALKAIcIgxFDQAgFCAMQQJ0QQQQXgsCQCALKAIQIgxFDQAgFiAMQQJ0QQQQXgsCQCALKAIEIgxFDQAgFSAMQQJ0QQQQXgsgB0UNAQsgDSAHQQEQXgsgCxBsIAtB4ABqJAAPC0EBIAwQUgALghMCE38BfSMAQdAAayIKJAAgChBKNgIIQQAhCwJAAkACQAJAAkACQAJAAkACQCAHQQBIDQACQAJAIAcNAEEBIQwMAQsQc0EBIQsgB0EBEGUiDEUNAQsgBEGgH2whC0EAIQ0CQCAEQegHbCIOQf////8DSw0AIAtB/P///wdLDQACQAJAAkAgC0UNABBzQQQhDSALQQQQZCIPRQ0DIApBADYCFCAKIA82AhAgCiAONgIMEHMgC0EEEGQiDUUNAiAKQQA2AiAgCiANNgIcIAogDjYCGBBzIAtBBBBkIhANAUEEIAsQUgALIApBADYCFCAKQoCAgIDAADcCDCAKQQA2AiAgCkKAgICAwAA3AhhBBCEQC0EAIQsgCkEANgIsIAogEDYCKCAKIA42AiQCQCAEDQBBBCELQQAhDgwFCyAJIAhyIRFBACESA0ACQAJAAkAgEiAGRg0AIAUgEkECdCIOaigCACIPIAMgDmooAgAiDWoiDiANQQJqIg1JDQEgDiACSw0BIApBMGogCkEIaiABIA1qIA9BfmogDCAHECwgCi0AMEUNAiAKIAotADE6ADsgCkEBrUIghiAKQTtqrYQ3A0ggCkE8akHPgcAAIApByABqEBEgCigCPCELIAooAkAiDSAKKAJEEGshDgJAIAtFDQAgDSALQQEQXgsgAEEANgIAIAAgDjYCBAJAIAooAiQiC0UNACAKKAIoIAtBAnRBBBBeCwJAIAooAhgiC0UNACAKKAIcIAtBAnRBBBBeCwJAIAooAgwiC0UNACAKKAIQIAtBAnRBBBBeCyAHDQwMDQsgBiAGQZiIwAAQNAALIA0gDiACQbiIwAAQFgALAkACQAJAIAooAjQiDiAHSw0AIA5BGEkNAiAMLQASQRB0IRMgDC0AEUEIdCEUIAwtABAhFSAMLQATQRh0IRYgDC0AF0EIdCIPIAwtABYiF3IhDQJAAkAgDC0AFEF/ag4DAwEABAsgDUUNAyAMKAAMIRggDCgABCEZAkAgEUUNACAPIBdqIRcgGSAWIBNqIBRqIBVqaiEaQRghD0EAIQ0DQCAMIA4gDxAjIR0CQCAZIA1qIhMgCU4NACAaIA1qIhsgCEwNAAJAIAooAhQiHCAKKAIMRw0AIApBDGoQLQsgCigCECAcQQJ0aiATNgIAIAogHEEBajYCFAJAIAooAiAiEyAKKAIYRw0AIApBGGoQLQsgCigCHCATQQJ0aiAbNgIAIAogE0EBajYCIAJAIAsgCigCJEcNACAKQSRqEC0gCigCKCEQCyAQIAtBAnRqIB04AgAgCiALQQFqIgs2AiwLIA9BBGohDyANIBhqIQ0gF0F/aiIXDQAMBQsLIA8gF2ohHCAKKAIUIhdBAnQhGyALQQJ0IRogGSAWaiATaiAUaiAVaiEUQRghDUEAIQ8DQCAMIA4gDRAjIR0CQCAXIAooAgxHDQAgCkEMahAtCyAKKAIQIBtqIA1qQWhqIBkgD2o2AgAgCiAXQQFqIhc2AhQCQCAKKAIgIhMgCigCGEcNACAKQRhqEC0LIAooAhwgE0ECdGogFCAPajYCACAKIBNBAWo2AiACQCALIAooAiRHDQAgCkEkahAtIAooAighEAsgECAaaiANakFoaiAdOAIAIAogC0EBaiILNgIsIA1BBGohDSAPIBhqIQ8gHEF/aiIcDQAMBAsLIA1FDQIgFCAVciATciAWciEYIA8gF2ohE0EYIQ0DQCAMIA4gDRAlIg8gGGohFyAMIA4gDUEEaiIZECMhHQJAAkAgEUUNACAPIAlODQEgFyAITA0BCwJAIAooAhQiDSAKKAIMRw0AIApBDGoQLQsgCigCECANQQJ0aiAPNgIAIAogDUEBajYCFAJAIAooAiAiDSAKKAIYRw0AIApBGGoQLQsgCigCHCANQQJ0aiAXNgIAIAogDUEBajYCIAJAIAsgCigCJEcNACAKQSRqEC0gCigCKCEQCyAQIAtBAnRqIB04AgAgCiALQQFqIgs2AiwLIBlBBGohDSATQX9qIhMNAAwDCwtBACAOIAdBqIjAABAWAAsgDUUNACAPIBdqIRNBGCENA0AgDCAOIA0QJSEPIAwgDiANQQRqECUhFyAMIA4gDUEIaiIZECMhHQJAAkAgEUUNACAPIAlODQEgFyAITA0BCwJAIAooAhQiDSAKKAIMRw0AIApBDGoQLQsgCigCECANQQJ0aiAPNgIAIAogDUEBajYCFAJAIAooAiAiDSAKKAIYRw0AIApBGGoQLQsgCigCHCANQQJ0aiAXNgIAIAogDUEBajYCIAJAIAsgCigCJEcNACAKQSRqEC0gCigCKCEQCyAQIAtBAnRqIB04AgAgCiALQQFqIgs2AiwLIBlBBGohDSATQX9qIhMNAAsLIBJBAWoiEiAERg0EDAALC0EEIAsQUgALIA0gCxBSAAsgCyAHEFIAC0EAIQ0gCigCFCIOQQxsQQRqIgtBAEgNASALDQAgCkEANgJEIApCgICAgBA3AjwgCkE8akEAQQQQJyAKKAI8IQsgCigCQCEPIAooAkQhDQwDCxBzQQEhDSALQQEQZCIPDQELIA0gCxBSAAsgCiAPNgJAIAogCzYCPEEAIQ0LIA8gDWogDjYAACAKIA1BBGoiDTYCRCAKKAIQIRACQCAOQQJ0Ig4gCyANa00NACAKQTxqIA0gDhAnIAooAkAhDyAKKAJEIQ0LAkAgDkUNACAPIA1qIBAgDvwKAAALIAogDSAOaiILNgJEIAooAhwhFwJAIAooAiBBAnQiDSAKKAI8Ig4gC2tNDQAgCkE8aiALIA0QJyAKKAI8IQ4gCigCRCELCyAKKAJAIQ8CQCANRQ0AIA8gC2ogFyAN/AoAAAsgCiALIA1qIgs2AkQgCigCKCEJAkAgCigCLEECdCINIA4gC2tNDQAgCkE8aiALIA0QJyAKKAI8IQ4gCigCQCEPIAooAkQhCwsCQCANRQ0AIA8gC2ogCSAN/AoAAAsgCiALIA1qIgs2AkQCQAJAIA4gC0sNACAPIQ0MAQsCQCALDQBBASENIA8gDkEBEF4MAQsgDyAOQQEgCxBZIg1FDQMLIAAgCzYCBCAAIA02AgACQCAKKAIkIgtFDQAgCSALQQJ0QQQQXgsCQCAKKAIYIgtFDQAgFyALQQJ0QQQQXgsCQCAKKAIMIgtFDQAgECALQQJ0QQQQXgsgB0UNAQsgDCAHQQEQXgsgCkEIahBsIApB0ABqJAAPC0EBIAsQUgALlQ8BD38jAEGAAWshCCAFQQFqIglBB3EhCiAJQQJ0QWBxIQtBACEMA0AgCEHAAGogDGoiCUIANwMAIAlBGGpCADcDACAJQRBqQgA3AwAgCUEIakIANwMAIAsgDEEgaiIMRw0ACwJAIApFDQAgCEHAAGogDGohCQNAIAlBADYCACAJQQRqIQkgCkF/aiIKDQALCwJAIAJFDQAgAkEDcSEKQQAhDAJAIAJBBEkNACACQXxxIQ1BACEMA0AgCEHAAGogASAMaiIJLQAAQQJ0aiILIAsoAgBBAWo2AgAgCEHAAGogCUEBai0AAEECdGoiCyALKAIAQQFqNgIAIAhBwABqIAlBAmotAABBAnRqIgsgCygCAEEBajYCACAIQcAAaiAJQQNqLQAAQQJ0aiIJIAkoAgBBAWo2AgAgDSAMQQRqIgxHDQALCyAKRQ0AIAEgDGohCQNAIAhBwABqIAktAABBAnRqIgwgDCgCAEEBajYCACAJQQFqIQkgCkF/aiIKDQALCyAIQcAAaiAFQQJ0aiEJAkADQAJAIAkoAgBFDQAgBSEKDAILIAlBfGohCUEBIQogBUF/aiIFQQFLDQALCwJAIAdFDQAgByAEIAogBCAKSRsiBDYCAAtBACEOIAhBADYCACAIIAgoAkAiCzYCBEEBIQlBACEMAkAgCkECSQ0AQQEhCSAKQX9qIgxBAXEhDwJAAkAgCkECRw0AQQAhDAwBCyAMQX5xIRAgCEHAAGpBCHIhCSAIQQxyIQxBACEFQQAhDQNAIAxBfGogCUF8aigCACIHIAtqIgs2AgAgDCAJKAIAIhEgC2oiCzYCACARIAVBAnQgB0EBdGpqIQUgCUEIaiEJIAxBCGohDCAQIA1BAmoiDUcNAAsgDUEBaiEJIAVBAXQhDAsCQCAPRQ0AIAlBAnQiCSAIakEEaiAIQcAAaiAJaigCACIJIAtqNgIAIAkgDGohBQsgBUEBdCEMIAohCQsgCEHAAGogCUECdGooAgAgDGohEQJAIAJFDQAgAkEBcSEHQQAhCQJAIAJBAUYNACACQX5xIQ1BACEJA0AgBiAIIAEgCWoiDC0AAEECdGoiBSgCACILQQF0aiAJOwEAIAUgC0EBajYCACAIIAxBAWotAABBAnRqIgwgDCgCACIMQQFqNgIAIAYgDEEBdGogCUEBajsBACANIAlBAmoiCUcNAAsLAkAgB0UNACAIIAEgCWotAABBAnRqIgwgDCgCACIMQQFqNgIAIAYgDEEBdGogCTsBAAsgCCgCACEOCwJAAkAgEUEBIAp0IglNDQBBACEFDAELIAYgDkEBdGohBwJAAkACQCARIAlJDQAgCEHAAGpBBHIhCUEAIQ0DQCANQQFqIQ0gCSgCACEGIAlBBGohCSAGRQ0AC0EAIQ8gDSAETQ0BQQAhAQwCCwJAAkAgEQ0AQQAhCQwBC0EAIQUgEUEBIApBf2p0Rw0DIAgoAkRBAUcNAyAHLwEAIQkLIAMgCUECdGooAgBBgQJqIQxBASEFQQEhCQNAIAAgDDYCACAAQQRqIQAgCSAEdiEIIAlBAWohCSAIRQ0ADAMLC0EBIA10IQwgCEHAAGpBBHIhC0EAIQEDQCAMQX9qIQkgDUGBAmwhBQNAIAAgAUECdGogBSADIAcvAQBBAnRqKAIAajYCAAJAIAEgCUcNAEEBIQUgBCANTQ0EIA1BAWohCQJAIAQgDWtBAXFFDQACQCAMQQJ0IghFDQAgACAIaiAAIAj8CgAACyANQQFqIQ0gDEEBdCEMCyAEIAlGDQQgBCANayEIA0ACQCAMQQJ0IglFDQAgACAJaiAAIAn8CgAACwJAIAxBA3QiDEUNACAAIAxqIAAgDPwKAAALIAkhDCAIQX5qIghFDQUMAAsLQYCAgIB4IAEgCXNndiIKQX9qIAFxIApyIQEgB0ECaiEHIAZBf2oiBg0ACyALIA1BAnRqIQkDQAJAIA1BAWoiDSAESw0AAkAgDEECdCIKRQ0AIAAgCmogACAK/AoAAAsgDEEBdCEMCyAJKAIAIQYgCUEEaiEJIAZFDQALIA0gBE0NAAsLIARBgIADciESQQEgBHQiEEF/aiETIAhBwABqQQRyIRRBfyEJA0AgFCANQQJ0aiERQX8gDXRBf3MhDiANIARrIhVBgQJsIRZBASAVdCIKQQJ0IQsDQAJAAkAgASATcSICIAlHDQAgECEMIAkhAgwBCyAVIQggCiEFAkAgBiAKTw0AIBEhCSAVIQggBiEMA0AgCSgCACEFIAlBBGohCSAFIAxBAXRqIgxBASAIQQFqIgh0IgVJDQALCyAAIAJBAnRqIBBBEHQgCEEIdHIgEnI2AgAgBSAQaiEMIBAhDwsgACAPIAEgBHZqIghBAnRqIQkgFiADIAcvAQBBAnRqKAIAaiEFA0AgCSAFNgIAIAkgC2ohCSAIIApqIgggDEkNAAsCQCABIA5HDQBBAQ8LQYCAgIB4IAEgDnNndiIJQX9qIAFxIAlyIQEgB0ECaiEHIAwhECACIQkgBkF/aiIGDQALA0AgDUEBaiENIBEoAgAhBiARQQRqIREgBkUNAAsgDCEQIAIhCQwACwsgBQuJDwINfwF9IwBBMGsiBSQAAkACQAJAAkACQAJAAkACQAJAAkACQCACQRhJDQAgAS0AEiEGIAEtABEhByABLQAQIQggAS0AEyEJIAEtABQhCiABKAAMIQsgASgABCEMIAEvABYiDUUNAhBzIA1BAnQiDkEEEGQiDw0BQQQgDhBSAAsQc0EEIQJBBEEBEGUiBg0EQQFBBBBSAAsgBUEANgIIIAUgDzYCBCAFIA02AgAQcyAOQQQQZCIPRQ0CIAVBADYCFCAFIA82AhAgBSANNgIMEHMgDkEEEGQiDw0BQQQgDhBSAAsgBUEANgIIIAVCgICAgMAANwIAIAVBADYCFCAFQoCAgIDAADcCDEEEIQ8LIAZBEHQhECAHQQh0IQcgCUEYdCEJQQAhESAFQQA2AiAgBSAPNgIcIAUgDTYCGCAEIANyIQ5BACEGAkACQCAKQX9qDgMEAQAFC0EAIQYgDUUNBAJAIA5FDQAgDCAJIBBqIAdqIAhqaiEQQRghCUEAIQdBACEGA0AgASACIAkQIyESAkAgDCAHaiIOIARODQAgECAHaiIIIANMDQACQCAFKAIIIgogBSgCAEcNACAFEC0LIAUoAgQgCkECdGogDjYCACAFIApBAWo2AggCQCAFKAIUIg4gBSgCDEcNACAFQQxqEC0LIAUoAhAgDkECdGogCDYCACAFIA5BAWo2AhQCQCAGIAUoAhhHDQAgBUEYahAtIAUoAhwhDwsgDyAGQQJ0aiASOAIAIAUgBkEBaiIGNgIgCyAJQQRqIQkgByALaiEHIA1Bf2oiDQ0ADAYLCyAMIAlqIBBqIAdqIAhqIQ5BGCEHQQAhBEEAIQYDQCABIAIgBxAjIRICQCAFKAIIIgkgBSgCAEcNACAFEC0LIAUoAgQgCUECdGogDCAEajYCACAFIAlBAWo2AggCQCAFKAIUIgkgBSgCDEcNACAFQQxqEC0LIAUoAhAgCUECdGogDiAEajYCACAFIAlBAWo2AhQCQCAGIAUoAhhHDQAgBUEYahAtIAUoAhwhDwsgDyAHakFoaiASOAIAIAUgBkEBaiIGNgIgIAdBBGohByAEIAtqIQQgDSAGRw0ADAULC0EAIQYgDUUNAyAHIAhyIBByIAlyIQpBGCEHQQAhBgNAIAEgAiAHECUiCSAKaiEMIAEgAiAHQQRqIgsQIyESAkACQCAORQ0AIAkgBE4NASAMIANMDQELAkAgBSgCCCIHIAUoAgBHDQAgBRAtCyAFKAIEIAdBAnRqIAk2AgAgBSAHQQFqNgIIAkAgBSgCFCIHIAUoAgxHDQAgBUEMahAtCyAFKAIQIAdBAnRqIAw2AgAgBSAHQQFqNgIUAkAgBiAFKAIYRw0AIAVBGGoQLSAFKAIcIQ8LIA8gBkECdGogEjgCACAFIAZBAWoiBjYCIAsgC0EEaiEHIA1Bf2oiDUUNBAwACwtBBCAOEFIACyAGQQA2AAAMAgtBACEGIA1FDQBBGCEHQQAhBgNAIAEgAiAHECUhCSABIAIgB0EEahAlIQwgASACIAdBCGoiCxAjIRICQAJAIA5FDQAgCSAETg0BIAwgA0wNAQsCQCAFKAIIIgcgBSgCAEcNACAFEC0LIAUoAgQgB0ECdGogCTYCACAFIAdBAWo2AggCQCAFKAIUIgcgBSgCDEcNACAFQQxqEC0LIAUoAhAgB0ECdGogDDYCACAFIAdBAWo2AhQCQCAGIAUoAhhHDQAgBUEYahAtIAUoAhwhDwsgDyAGQQJ0aiASOAIAIAUgBkEBaiIGNgIgCyALQQRqIQcgDUF/aiINDQALCyAFKAIIIgJBDGxBBGoiAUEASA0CAkACQCABDQAgBUEANgIsIAVCgICAgBA3AiQgBUEkakEAQQQQJyAFKAIkIQEgBSgCKCEHIAUoAiwhDQwBCxBzQQEhESABQQEQZCIHRQ0DIAUgBzYCKCAFIAE2AiRBACENCyAHIA1qIAI2AAAgBSANQQRqIg02AiwgBSgCBCEPAkAgAkECdCICIAEgDWtNDQAgBUEkaiANIAIQJyAFKAIkIQEgBSgCKCEHIAUoAiwhDQsCQCACRQ0AIAcgDWogDyAC/AoAAAsgBSANIAJqIgI2AiwgBSgCECEEAkAgBSgCFEECdCINIAEgAmtNDQAgBUEkaiACIA0QJyAFKAIkIQEgBSgCLCECCyAFKAIoIQcCQCANRQ0AIAcgAmogBCAN/AoAAAsgBSACIA1qIgI2AiwgBSgCHCENAkAgBkECdCIGIAEgAmtNDQAgBUEkaiACIAYQJyAFKAIkIQEgBSgCKCEHIAUoAiwhAgsCQCAGRQ0AIAcgAmogDSAG/AoAAAsgBSACIAZqIgI2AiwCQAJAIAEgAksNACAHIQYMAQsCQCACDQBBASEGIAcgAUEBEF4MAQsgByABQQEgAhBZIgZFDQILAkAgBSgCGCIBRQ0AIA0gAUECdEEEEF4LAkAgBSgCDCIBRQ0AIAQgAUECdEEEEF4LIAUoAgAiAUUNACAPIAFBAnRBBBBeCyAAIAI2AgQgACAGNgIAIAVBMGokAA8LQQEgAhBSAAsgESABEFIAC98MAgt/A30jAEHQAGsiBiQAAkACQAJAAkACQAJAAkACQAJAAkAgAkEgSQ0AEHMgAkEFdiIHQQJ0IghBBBBkIglFDQMgBkEANgIQIAYgCTYCDCAGIAc2AggQcyAIQQQQZCIJRQ0EIAZBADYCHCAGIAk2AhggBiAHNgIUEHMgCEEEEGQiCUUNBSAGQQA2AiggBiAJNgIkIAYgBzYCIBBzIAhBBBBkIglFDQkgBkEANgI0IAYgCTYCMCAGIAc2AiwQcyAIQQQQZCIKRQ0GQQAhCCAGQQA2AkAgBiAKNgI8IAUgBHIhCyAGIAc2AjggB0EFdCEMQQAhBwNAIAEgAiAHECYhDSABIAIgB0EEahAmIQkgASACIAdBCGoQJiEOIAEgAiAHQQxqECYhDyABIAIgB0EQahAjIREgASACIAdBFGoQIyESIAEgAiAHQRhqIhAQIyETAkACQCALRQ0AIA0gA0cNASAJIAVODQEgDiAETA0BCwJAIAYoAhAiDSAGKAIIRw0AIAZBCGoQLQsgBigCDCANQQJ0aiAJNgIAIAYgDUEBajYCEAJAIAYoAhwiCSAGKAIURw0AIAZBFGoQLQsgBigCGCAJQQJ0aiAONgIAIAYgCUEBajYCHAJAIA9FDQAgEyAPs5UhEwsCQCAGKAIoIgkgBigCIEcNACAGQSBqEC0LIAYoAiQgCUECdGogEzgCACAGIAlBAWo2AigCQCAGKAI0IgkgBigCLEcNACAGQSxqEC0LIAYoAjAgCUECdGogETgCACAGIAlBAWo2AjQCQCAIIAYoAjhHDQAgBkE4ahAtIAYoAjwhCgsgCiAIQQJ0aiASOAIAIAYgCEEBaiIINgJACyAHQSBqIQkgEEEIaiEHIAwgCUcNAAtBACEOIAYoAhAiAUEUbEEEaiIHQQBIDQcgCEECdCECIAcNASAGQQA2AkwgBkKAgICAEDcCRCAGQcQAakEAQQQQJyAGKAJEIQcgBigCSCEJIAYoAkwhCAwCC0EAIQIgBkEANgIQIAZCgICAgMAANwIIIAZBADYCHCAGQoCAgIDAADcCFCAGQQA2AiggBkKAgICAwAA3AiAgBkEANgI0IAZCgICAgMAANwIsIAZBADYCQCAGQoCAgIDAADcCOEEEIQdBACEBCxBzQQEhDiAHQQEQZCIJRQ0FIAYgCTYCSCAGIAc2AkRBACEICyAJIAhqIAE2AAAgBiAIQQRqIgg2AkwgBigCDCEOAkAgAUECdCIBIAcgCGtNDQAgBkHEAGogCCABECcgBigCRCEHIAYoAkghCSAGKAJMIQgLAkAgAUUNACAJIAhqIA4gAfwKAAALIAYgCCABaiIBNgJMIAYoAhghDwJAIAYoAhxBAnQiCCAHIAFrTQ0AIAZBxABqIAEgCBAnIAYoAkQhByAGKAJMIQELIAYoAkghCQJAIAhFDQAgCSABaiAPIAj8CgAACyAGIAEgCGoiATYCTCAGKAIkIQ0CQCAGKAIoQQJ0IgggByABa00NACAGQcQAaiABIAgQJyAGKAJEIQcgBigCSCEJIAYoAkwhAQsCQCAIRQ0AIAkgAWogDSAI/AoAAAsgBiABIAhqIgE2AkwgBigCMCEQAkAgBigCNEECdCIIIAcgAWtNDQAgBkHEAGogASAIECcgBigCRCEHIAYoAkghCSAGKAJMIQELAkAgCEUNACAJIAFqIBAgCPwKAAALIAYgASAIaiIBNgJMIAYoAjwhCQJAIAIgByABa00NACAGQcQAaiABIAIQJyAGKAJEIQcgBigCTCEBCyAGKAJIIQgCQCACRQ0AIAggAWogCSAC/AoAAAsgBiABIAJqIgI2AkwCQAJAIAcgAksNACAIIQEMAQsCQCACDQBBASEBIAggB0EBEF4MAQsgCCAHQQEgAhBZIgFFDQYLAkAgBigCOCIHRQ0AIAkgB0ECdEEEEF4LAkAgBigCLCIHRQ0AIBAgB0ECdEEEEF4LAkAgBigCICIHRQ0AIA0gB0ECdEEEEF4LAkAgBigCFCIHRQ0AIA8gB0ECdEEEEF4LAkAgBigCCCIHRQ0AIA4gB0ECdEEEEF4LIAAgAjYCBCAAIAE2AgAgBkHQAGokAA8LQQQgCBBSAAtBBCAIEFIAC0EEIAgQUgALQQQgCBBSAAsgDiAHEFIAC0EBIAIQUgALQQQgCBBSAAvQCAELfyMAQTBrIggkACAIEEo2AgBBACEJQQAhCgJAIARFDQACQAJAIAYgBEF/ak0NACAEQQNxIQsCQCAEQQRPDQBBACEKQQAhDAwCCyAEQfz///8BcSENQQAhCiAFIQ5BACEMA0AgDkEMaigCACAOQQhqKAIAIA5BBGooAgAgDigCACAKampqaiEKIA5BEGohDiANIAxBBGoiDEcNAAwCCwsgBiAGQeiHwAAQNAALIAtFDQAgBSAMQQJ0aiEOA0AgDigCACAKaiEKIA5BBGohDiALQX9qIgsNAAsLAkACQAJAAkACQAJAAkAgCiAEakECdEEIaiIOQQBIDQAgBEECdCIPQQhqIRACQAJAAkAgDg0AIAhBADYCDCAIQoCAgIAQNwIEDAELEHNBASEJIA5BARBkIgpFDQJBACELIAhBADYCDCAIIAo2AgggCCAONgIEIBAgDk0NAQsgCEEEakEAIBAQJyAIKAIIIQogCCgCDCELCwJAIA9BB2oiDkUNACAKIAtqQQAgDvwLAAsgCiALIA5qIg5qQQA6AAAgCCAOQQFqIg42AgwgDkEDTQ0BIAogBDYAAEEAIQ4gB0EASA0CAkACQCAHDQBBASEJDAELEHNBASEOIAdBARBlIglFDQMLAkAgBA0AQQAhCyAIKAIMIQwMBQsgBEECdCERIAZBAnQhEkEAIQ5BACELA0ACQAJAAkAgEiAORg0AIAUgDmooAgAiDSADIA5qKAIAIgxqIgogDEECaiIMSQ0BIAogAksNASAOQQhqIAgoAgwiBE0NAiAOQQRqIA5BCGogBEHIh8AAEBYACyAGIAZBqIfAABA0AAsgDCAKIAJB2IfAABAWAAsgCCgCCCIKIA5qQQRqIAs2AAAgCEEQaiAIIAEgDGogDUF+aiAJIAcQLAJAIAgtABBBAUcNACAIIAgtABE6ABsgCEEBrUIghiAIQRtqrYQ3AyggCEEcakHPgcAAIAhBKGoQESAIKAIcIQ4gCCgCICIMIAgoAiQQayELAkAgDkUNACAMIA5BARBeCyAAQQA2AgAgACALNgIEAkAgB0UNACAJIAdBARBeCyAIKAIEIg5FDQcgCiAOQQEQXgwHCyAIKAIUIgogB0sNBAJAIAogCCgCBCAEa00NACAIQQRqIAQgChAnCyAIKAIMIQwCQCAKRQ0AIAgoAgggDGogCSAK/AoAAAsgCCAMIApqIgw2AgwgCiALaiELIBEgDkEEaiIORg0FDAALCyAJIA4QUgALQQBBBCAOQYiHwAAQFgALIA4gBxBSAAtBACAKIAdBuIfAABAWAAsgD0EEaiEKAkAgECAMTQ0AIAogECAMQZiHwAAQFgALIAgoAggiDiAKaiALNgAAAkAgCCgCBCIKIAxNDQAgDiAKQQEgDBBZIg5FDQILIAAgDDYCBCAAIA42AgAgB0UNACAJIAdBARBeCyAIEGwgCEEwaiQADwtBASAMEFIAC/QGAQh/AkACQCABIABBA2pBfHEiAiAAayIDSQ0AIAEgA2siBEEESQ0AIARBA3EhBUEAIQZBACEBAkAgAiAARg0AQQAhB0EAIQECQCAAIAJrIghBfEsNAEEAIQdBACEBA0AgASAAIAdqIgIsAABBv39KaiACQQFqLAAAQb9/SmogAkECaiwAAEG/f0pqIAJBA2osAABBv39KaiEBIAdBBGoiBw0ACwsgACAHaiECA0AgASACLAAAQb9/SmohASACQQFqIQIgCEEBaiIIDQALCyAAIANqIQgCQCAFRQ0AIAggBEH8////B3FqIgIsAABBv39KIQYgBUEBRg0AIAYgAiwAAUG/f0pqIQYgBUECRg0AIAYgAiwAAkG/f0pqIQYLIARBAnYhAyAGIAFqIQcDQCAIIQQgA0UNAiADQcABIANBwAFJGyIGQQNxIQUCQAJAIAZBAnQiCUHwB3EiAQ0AQQAhAgwBCyAEIAFqIQBBACECIAQhAQNAIAFBDGooAgAiCEF/c0EHdiAIQQZ2ckGBgoQIcSABQQhqKAIAIghBf3NBB3YgCEEGdnJBgYKECHEgAUEEaigCACIIQX9zQQd2IAhBBnZyQYGChAhxIAEoAgAiCEF/c0EHdiAIQQZ2ckGBgoQIcSACampqaiECIAFBEGoiASAARw0ACwsgAyAGayEDIAQgCWohCCACQQh2Qf+B/AdxIAJB/4H8B3FqQYGABGxBEHYgB2ohByAFRQ0ACyAEIAZB/AFxQQJ0aiICKAIAIgFBf3NBB3YgAUEGdnJBgYKECHEhAQJAIAVBAUYNACACKAIEIghBf3NBB3YgCEEGdnJBgYKECHEgAWohASAFQQJGDQAgAigCCCICQX9zQQd2IAJBBnZyQYGChAhxIAFqIQELIAFBCHZB/4EccSABQf+B/AdxakGBgARsQRB2IAdqIQcMAQsCQCABDQBBAA8LIAFBA3EhCAJAAkAgAUEETw0AQQAhAkEAIQcMAQsgAUF8cSEDQQAhAkEAIQcDQCAHIAAgAmoiASwAAEG/f0pqIAFBAWosAABBv39KaiABQQJqLAAAQb9/SmogAUEDaiwAAEG/f0pqIQcgAyACQQRqIgJHDQALCyAIRQ0AIAAgAmohAQNAIAcgASwAAEG/f0pqIQcgAUEBaiEBIAhBf2oiCA0ACwsgBwv1BgEGfwJAAkACQAJAAkACQAJAAkAgAEF8aiIEKAIAIgVBeHEiBkEEQQggBUEDcSIHGyABakkNACABQSdqIQgCQCAHRQ0AIAYgCEsNAgsCQAJAIAJBCUkNACACIAMQEiICDQFBAA8LQQAhAiADQcz/e0sNCEEQIANBC2pBeHEgA0ELSRshASAAQXhqIQgCQCAHDQAgAUGAAkkNByAIRQ0HIAYgAU0NByAGIAFrQYCACEsNByAADwsgCCAGaiEHAkACQCAGIAFPDQAgB0EAKAKsn0BGDQECQCAHQQAoAqifQEYNACAHKAIEIgVBAnENCSAFQXhxIgkgBmoiBSABSQ0JIAcgCRATAkAgBSABayIHQRBJDQAgBCABIAQoAgBBAXFyQQJyNgIAIAggAWoiASAHQQNyNgIEIAggBWoiBSAFKAIEQQFyNgIEIAEgBxAQDAkLIAQgBSAEKAIAQQFxckECcjYCACAIIAVqIgEgASgCBEEBcjYCBAwIC0EAKAKgn0AgBmoiByABSQ0IAkACQCAHIAFrIgZBD0sNACAEIAVBAXEgB3JBAnI2AgAgCCAHaiIBIAEoAgRBAXI2AgRBACEGQQAhAQwBCyAEIAEgBUEBcXJBAnI2AgAgCCABaiIBIAZBAXI2AgQgCCAHaiIHIAY2AgAgByAHKAIEQX5xNgIEC0EAIAE2AqifQEEAIAY2AqCfQAwHCyAGIAFrIgZBD00NBiAEIAEgBUEBcXJBAnI2AgAgCCABaiIBIAZBA3I2AgQgByAHKAIEQQFyNgIEIAEgBhAQDAYLQQAoAqSfQCAGaiIHIAFLDQQMBgsCQCADIAEgAyABSRsiA0UNACACIAAgA/wKAAALIAQoAgAiA0F4cSIHQQRBCCADQQNxIgMbIAFqSQ0CIANFDQYgByAITQ0GQdyXwABBLkGMmMAAEFMAC0Gcl8AAQS5BzJfAABBTAAtB3JfAAEEuQYyYwAAQUwALQZyXwABBLkHMl8AAEFMACyAEIAEgBUEBcXJBAnI2AgAgCCABaiIFIAcgAWsiAUEBcjYCBEEAIAE2AqSfQEEAIAU2AqyfQAsgCEUNACAADwsgAxABIgFFDQECQCADQXxBeCAEKAIAIgJBA3EbIAJBeHFqIgIgAyACSRsiA0UNACABIAAgA/wKAAALIAEhAgsgABAMCyACC/EFAgh/AX4CQAJAIAENACAFQQFqIQYgACgCCCEHQS0hCAwBC0ErQYCAxAAgACgCCCIHQYCAgAFxIgEbIQggAUEVdiAFaiEGCwJAAkAgB0GAgIAEcQ0AQQAhAgwBCwJAAkAgA0EQSQ0AIAIgAxAJIQEMAQsCQCADDQBBACEBDAELIANBA3EhCQJAAkAgA0EETw0AQQAhCkEAIQEMAQsgA0EMcSELQQAhCkEAIQEDQCABIAIgCmoiDCwAAEG/f0pqIAxBAWosAABBv39KaiAMQQJqLAAAQb9/SmogDEEDaiwAAEG/f0pqIQEgCyAKQQRqIgpHDQALCyAJRQ0AIAIgCmohDANAIAEgDCwAAEG/f0pqIQEgDEEBaiEMIAlBf2oiCQ0ACwsgASAGaiEGCwJAAkAgBiAALwEMIgtPDQACQAJAAkAgB0GAgIAIcQ0AIAsgBmshDUEAIQFBACELAkACQAJAIAdBHXZBA3EOBAIAAQACCyANIQsMAQsgDUH+/wNxQQF2IQsLIAdB////AHEhBiAAKAIEIQkgACgCACEKA0AgAUH//wNxIAtB//8DcU8NAkEBIQwgAUEBaiEBIAogBiAJKAIQEQUARQ0ADAULCyAAIAApAggiDqdBgICA/3lxQbCAgIACcjYCCEEBIQwgACgCACIKIAAoAgQiCSAIIAIgAxA/DQNBACEBIAsgBmtB//8DcSECA0AgAUH//wNxIAJPDQJBASEMIAFBAWohASAKQTAgCSgCEBEFAEUNAAwECwtBASEMIAogCSAIIAIgAxA/DQIgCiAEIAUgCSgCDBEHAA0CQQAhASANIAtrQf//A3EhAANAIAFB//8DcSICIABJIQwgAiAATw0DIAFBAWohASAKIAYgCSgCEBEFAEUNAAwDCwtBASEMIAogBCAFIAkoAgwRBwANASAAIA43AghBAA8LQQEhDCAAKAIAIgEgACgCBCIKIAggAiADED8NACABIAQgBSAKKAIMEQcAIQwLIAwLjgYBBX8gAEF4aiIBIABBfGooAgAiAkF4cSIAaiEDAkACQCACQQFxDQAgAkECcUUNASABKAIAIgIgAGohAAJAIAEgAmsiAUEAKAKon0BHDQAgAygCBEEDcUEDRw0BQQAgADYCoJ9AIAMgAygCBEF+cTYCBCABIABBAXI2AgQgAyAANgIADwsgASACEBMLAkACQAJAAkACQAJAIAMoAgQiAkECcQ0AIANBACgCrJ9ARg0CIANBACgCqJ9ARg0DIAMgAkF4cSICEBMgASACIABqIgBBAXI2AgQgASAAaiAANgIAIAFBACgCqJ9ARw0BQQAgADYCoJ9ADwsgAyACQX5xNgIEIAEgAEEBcjYCBCABIABqIAA2AgALIABBgAJJDQIgASAAEBVBACEBQQBBACgCwJ9AQX9qIgA2AsCfQCAADQQCQEEAKAKInUAiAEUNAEEAIQEDQCABQQFqIQEgACgCCCIADQALC0EAIAFB/x8gAUH/H0sbNgLAn0APC0EAIAE2AqyfQEEAQQAoAqSfQCAAaiIANgKkn0AgASAAQQFyNgIEAkAgAUEAKAKon0BHDQBBAEEANgKgn0BBAEEANgKon0ALIABBACgCuJ9AIgRNDQNBACgCrJ9AIgBFDQNBACECQQAoAqSfQCIFQSlJDQJBgJ3AACEBA0ACQCABKAIAIgMgAEsNACAAIAMgASgCBGpJDQQLIAEoAgghAQwACwtBACABNgKon0BBAEEAKAKgn0AgAGoiADYCoJ9AIAEgAEEBcjYCBCABIABqIAA2AgAPCwJAAkBBACgCmJ9AIgNBASAAQQN2dCICcQ0AQQAgAyACcjYCmJ9AIABB+AFxQZCdwABqIgAhAwwBCyAAQfgBcSIAQZCdwABqIQMgAEGYncAAaigCACEACyADIAE2AgggACABNgIMIAEgAzYCDCABIAA2AggPCwJAQQAoAoidQCIBRQ0AQQAhAgNAIAJBAWohAiABKAIIIgENAAsLQQAgAkH/HyACQf8fSxs2AsCfQCAFIARNDQBBAEF/NgK4n0ALC4oFAQd/AkACQCAAKAIIIgNBgICAwAFxRQ0AAkACQAJAAkACQCADQYCAgIABcUUNACAALwEOIgQNAUEAIQIMAgsCQCACQRBJDQAgASACEAkhBQwECwJAIAINAEEAIQUMBAsgAkEDcSEGAkACQCACQQRPDQBBACEHQQAhBQwBCyACQQxxIQRBACEHQQAhBQNAIAUgASAHaiIILAAAQb9/SmogCEEBaiwAAEG/f0pqIAhBAmosAABBv39KaiAIQQNqLAAAQb9/SmohBSAEIAdBBGoiB0cNAAsLIAZFDQMgASAHaiEIA0AgBSAILAAAQb9/SmohBSAIQQFqIQggBkF/aiIGDQAMBAsLIAEgAmohBkEAIQIgASEIIAQhBwNAIAgiBSAGRg0CAkACQCAFLAAAIghBf0wNACAFQQFqIQgMAQsCQCAIQWBPDQAgBUECaiEIDAELAkAgCEFwTw0AIAVBA2ohCAwBCyAFQQRqIQgLIAggBWsgAmohAiAHQX9qIgcNAAsLQQAhBwsgBCAHayEFCyAFIAAvAQwiCE8NACAIIAVrIQlBACEFQQAhBAJAAkACQCADQR12QQNxDgQCAAECAgsgCSEEDAELIAlB/v8DcUEBdiEECyADQf///wBxIQYgACgCBCEHIAAoAgAhAAJAA0AgBUH//wNxIARB//8DcU8NAUEBIQggBUEBaiEFIAAgBiAHKAIQEQUADQMMAAsLQQEhCCAAIAEgAiAHKAIMEQcADQFBACEFIAkgBGtB//8DcSECA0AgBUH//wNxIgQgAkkhCCAEIAJPDQIgBUEBaiEFIAAgBiAHKAIQEQUADQIMAAsLIAAoAgAgASACIAAoAgQoAgwRBwAhCAsgCAvABAEIfyMAQRBrIgQkAAJAAkACQCADQQFxDQAgAi0AACIFDQFBACEFDAILIAAgAiADQQF2IAEoAgwRBwAhBQwBCyABKAIMIQZBACEHA0AgAkEBaiEIAkACQAJAAkACQCAFwEF/Sg0AIAVB/wFxIglBgAFGDQEgCUHAAUcNAyAEIAE2AgQgBCAANgIAIARCoICAgAY3AgggAyAHQQN0aiIFKAIAIAQgBSgCBBEFAEUNAkEBIQUMBgsCQCAAIAggBUH/AXEiBSAGEQcADQAgCCAFaiECDAQLQQEhBQwFCwJAIAAgAkEDaiIFIAIvAAEiAiAGEQcADQAgBSACaiECDAMLQQEhBQwECyAHQQFqIQcgCCECDAELQaCAgIAGIQoCQCAFQQFxRQ0AIAJBBWohCCACKAABIQoLQQAhCQJAAkAgBUECcQ0AQQAhCyAIIQIMAQsgCEECaiECIAgvAAAhCwsCQAJAIAVBBHENACACIQgMAQsgAkECaiEIIAIvAAAhCQsCQAJAIAVBCHENACAIIQIMAQsgCEECaiECIAgvAAAhBwsCQCAFQRBxRQ0AIAMgC0H//wNxQQN0ai8BBCELCwJAIAVBIHFFDQAgAyAJQf//A3FBA3RqLwEEIQkLIAQgCTsBDiAEIAs7AQwgBCAKNgIIIAQgATYCBCAEIAA2AgACQCADIAdBA3RqIgUoAgAgBCAFKAIEEQUARQ0AQQEhBQwDCyAHQQFqIQcLIAItAAAiBQ0AC0EAIQULIARBEGokACAFC5MEAQl/IAAhAyACIQQCQCAAQegHSQ0AIAFBfGohBUEAIQYgACEHAkACQANAIAcgB0GQzgBuIgNBkM4AbGsiCEH//wNxQeQAbiEJAkACQCACIAZqIgRBfGogAk8NACAFIAJqIgogCUEBdCILLQDomUA6AAAgBEF9aiACSQ0BIARBfWogAkGwm8AAEDQACyAEQXxqIAJBsJvAABA0AAsgCkEBaiALQemZwABqLQAAOgAAAkAgBEF+aiACTw0AIApBAmogCCAJQeQAbGtBAXRB/v8HcSIJLQDomUA6AAAgBEF/aiACTw0CIApBA2ogCUHpmcAAai0AADoAACAFQXxqIQUgBkF8aiEGIAdB/6ziBEshBCADIQcgBEUNAwwBCwsgBEF+aiACQbCbwAAQNAALIARBf2ogAkGwm8AAEDQACyACIAZqIQQLAkACQCADQQlLDQAgAyEKIAQhBwwBCyADQf//A3FB5ABuIQoCQAJAIARBfmoiByACTw0AIAEgB2ogAyAKQeQAbGtB//8DcUEBdCIGLQDomUA6AAAgBEF/aiIEIAJPDQEgASAEaiAGQemZwABqLQAAOgAADAILIAcgAkGwm8AAEDQACyAEIAJBsJvAABA0AAsCQAJAIABFDQAgCkUNAQsCQCAHQX9qIgcgAkkNACAHIAJBsJvAABA0AAsgASAHaiAKQQF0LQDpmUA6AAALIAcLhQQBAn8gACABaiECAkACQCAAKAIEIgNBAXENACADQQJxRQ0BIAAoAgAiAyABaiEBAkAgACADayIAQQAoAqifQEcNACACKAIEQQNxQQNHDQFBACABNgKgn0AgAiACKAIEQX5xNgIEIAAgAUEBcjYCBCACIAE2AgAMAgsgACADEBMLAkACQAJAAkAgAigCBCIDQQJxDQAgAkEAKAKsn0BGDQIgAkEAKAKon0BGDQMgAiADQXhxIgMQEyAAIAMgAWoiAUEBcjYCBCAAIAFqIAE2AgAgAEEAKAKon0BHDQFBACABNgKgn0APCyACIANBfnE2AgQgACABQQFyNgIEIAAgAWogATYCAAsCQCABQYACSQ0AIAAgARAVDwsCQAJAQQAoApifQCICQQEgAUEDdnQiA3ENAEEAIAIgA3I2ApifQCABQfgBcUGQncAAaiIBIQIMAQsgAUH4AXEiAUGQncAAaiECIAFBmJ3AAGooAgAhAQsgAiAANgIIIAEgADYCDCAAIAI2AgwgACABNgIIDwtBACAANgKsn0BBAEEAKAKkn0AgAWoiATYCpJ9AIAAgAUEBcjYCBCAAQQAoAqifQEcNAUEAQQA2AqCfQEEAQQA2AqifQA8LQQAgADYCqJ9AQQBBACgCoJ9AIAFqIgE2AqCfQCAAIAFBAXI2AgQgACABaiABNgIADwsLlwMBBn8jAEEQayIDJAACQAJAAkACQAJAAkACQCACQQFxRQ0AIAJBAXYhBAwBCyABLQAAIgRFDQFBACEFIAEhBkEAIQcDQCAGQQFqIQYCQAJAIATAQX9KDQACQCAEQf8BcUGAAUcNACAHIAYvAAAiBGohByAGIARqQQJqIQYMAgsgBiAEQQNxQRh3IghBBXRBgICAgARxIAhBgICACHFBB3QgCEGAgICAAnFyckEddmogBEEBdkECcWogBEECdkECcWohBiAHRSAFciEFDAELIAYgBEH/AXEiBGohBiAHIARqIQcLIAYtAAAiBA0AC0EAIQQgBSAHQRBJcQ0AQQAhCCAHQQF0IgRBAEgNBAsgBA0BC0EBIQZBACEEDAELEHNBASEIIARBARBkIgZFDQELIANBADYCCCADIAY2AgQgAyAENgIAIANBtJjAACABIAIQDkUNAUHcmMAAQdYAIANBD2pBzJjAAEG0mcAAEDAACyAIIAQQUgALIAAgAykCADcCACAAQQhqIANBCGooAgA2AgAgA0EQaiQAC+8CAQV/QQAhAgJAIAFBzf97IABBECAAQRBLGyIAa08NACAAQRAgAUELakF4cSABQQtJGyIDakEMahABIgFFDQAgAUF4aiECAkACQCAAQX9qIgQgAXENACACIQAMAQsgAUF8aiIFKAIAIgZBeHEgBCABakEAIABrcUF4aiIBQQAgACABIAJrQRBLG2oiACACayIBayEEAkAgBkEDcUUNACAAIAQgACgCBEEBcXJBAnI2AgQgACAEaiIEIAQoAgRBAXI2AgQgBSABIAUoAgBBAXFyQQJyNgIAIAIgAWoiBCAEKAIEQQFyNgIEIAIgARAQDAELIAIoAgAhAiAAIAQ2AgQgACACIAFqNgIACwJAIAAoAgQiAUEDcUUNACABQXhxIgIgA0EQak0NACAAIAMgAUEBcXJBAnI2AgQgACADaiIBIAIgA2siA0EDcjYCBCAAIAJqIgIgAigCBEEBcjYCBCABIAMQEAsgAEEIaiECCyACC4kDAQR/IAAoAgwhAgJAAkACQAJAIAFBgAJJDQAgACgCGCEDAkACQAJAIAIgAEcNACAAQRRBECAAKAIUIgIbaigCACIBDQFBACECDAILIAAoAggiASACNgIMIAIgATYCCAwBCyAAQRRqIABBEGogAhshBANAIAQhBSABIgJBFGogAkEQaiACKAIUIgEbIQQgAkEUQRAgARtqKAIAIgENAAsgBUEANgIACyADRQ0CAkACQCAAIAAoAhxBAnRBgJzAAGoiASgCAEYNACADKAIQIABGDQEgAyACNgIUIAINAwwECyABIAI2AgAgAkUNBAwCCyADIAI2AhAgAg0BDAILAkAgAiAAKAIIIgRGDQAgBCACNgIMIAIgBDYCCA8LQQBBACgCmJ9AQX4gAUEDdndxNgKYn0APCyACIAM2AhgCQCAAKAIQIgFFDQAgAiABNgIQIAEgAjYCGAsgACgCFCIBRQ0AIAIgATYCFCABIAI2AhgPCw8LQQBBACgCnJ9AQX4gACgCHHdxNgKcn0AL6AIBBH8jAEEwayIDJAAgAxBKNgIMQQAhBAJAAkACQAJAIAJBAnQiBUEASA0AAkADQEEBIQYCQCAFRQ0AEHNBASEEIAVBARBlIgZFDQMLIANBEGogA0EMaiABIAIgBiAFECwCQCADLQAQQQFHDQAgAy0AEUUNAiAFQYCAgMAASw0EAkAgBUUNACAGIAVBARBeCyAFQQF0IQUMAQsLIAAgBjYCBCAAIAU2AgAgACADKAIUIgYgBSAGIAVJGzYCCAwECyADQQA6ABsgA0EBrUIghiADQRtqrYQ3AyggA0EcakHPgcAAIANBKGoQESADKAIcIQIgAygCICIEIAMoAiQQayEBIABBgICAgHg2AgAgACABNgIEAkAgAkUNACAEIAJBARBeCyAFRQ0DDAILIAQgBRBSAAtB+IfAAEEeEGshAiAAQYCAgIB4NgIAIAAgAjYCBAsgBiAFQQEQXgsgA0EMahBsIANBMGokAAvIAgEEf0EAIQICQCABQYACSQ0AQR8hAiABQf///wdLDQAgAUEmIAFBCHZnIgJrdkEBcSACQQF0a0E+aiECCyAAQgA3AhAgACACNgIcIAJBAnRBgJzAAGohAwJAQQAoApyfQEEBIAJ0IgRxDQAgAyAANgIAIAAgAzYCGCAAIAA2AgwgACAANgIIQQBBACgCnJ9AIARyNgKcn0APCwJAAkACQCADKAIAIgQoAgRBeHEgAUcNACAEIQIMAQsgAUEAQRkgAkEBdmsgAkEfRht0IQMDQCAEIANBHXZBBHFqIgUoAhAiAkUNAiADQQF0IQMgAiEEIAIoAgRBeHEgAUcNAAsLIAIoAggiAyAANgIMIAIgADYCCCAAQQA2AhggACACNgIMIAAgAzYCCA8LIAVBEGogADYCACAAIAQ2AhggACAANgIMIAAgADYCCAulAgIBfwF+IwBBIGsiBCQAAkACQAJAIAAgAksNACABIAJLDQFBHK1CIIYhBSAAIAFNDQIgBCAANgIIIAQgATYCDCAEIAUgBEEMaq2ENwMYIAQgBSAEQQhqrYQ3AxBBgIDAACAEQRBqIAMQPAALIAQgADYCCCAEIAI2AgwgBEEcrUIghiIFIARBDGqthDcDGCAEIAUgBEEIaq2ENwMQQd+AwAAgBEEQaiADEDwACyAEIAE2AgggBCACNgIMIARBHK1CIIYiBSAEQQxqrYQ3AxggBCAFIARBCGqthDcDEEGYgcAAIARBEGogAxA8AAsgBCABNgIIIAQgAjYCDCAEIAUgBEEMaq2ENwMYIAQgBSAEQQhqrYQ3AxBBmIHAACAEQRBqIAMQPAALpQIBBn8gACgCCCECAkACQCABQYABTw0AQQEhAwwBCwJAIAFBgBBPDQBBAiEDDAELQQNBBCABQYCABEkbIQMLIAIhBAJAIAMgACgCACACa00NACAAIAIgA0EBQQEQJCAAKAIIIQQLIAAoAgQgBGohBAJAAkAgAUGAAUkNACABQT9xQYB/ciEFIAFBBnYhBgJAIAFBgBBPDQAgBCAFOgABIAQgBkHAAXI6AAAMAgsgAUEMdiEHIAZBP3FBgH9yIQYCQCABQf//A0sNACAEIAU6AAIgBCAGOgABIAQgB0HgAXI6AAAMAgsgBCAFOgADIAQgBjoAAiAEIAdBP3FBgH9yOgABIAQgAUESdkFwcjoAAAwBCyAEIAE6AAALIAAgAyACajYCCEEAC6ECAQZ/IAAoAgghAgJAAkAgAUGAAU8NAEEBIQMMAQsCQCABQYAQTw0AQQIhAwwBC0EDQQQgAUGAgARJGyEDCyACIQQCQCADIAAoAgAgAmtNDQAgACACIAMQKSAAKAIIIQQLIAAoAgQgBGohBAJAAkAgAUGAAUkNACABQT9xQYB/ciEFIAFBBnYhBgJAIAFBgBBPDQAgBCAFOgABIAQgBkHAAXI6AAAMAgsgAUEMdiEHIAZBP3FBgH9yIQYCQCABQf//A0sNACAEIAU6AAIgBCAGOgABIAQgB0HgAXI6AAAMAgsgBCAFOgADIAQgBjoAAiAEIAdBP3FBgH9yOgABIAQgAUESdkFwcjoAAAwBCyAEIAE6AAALIAAgAyACajYCCEEAC4MCAQN/IwBBMGsiBCQAIAQQSjYCDEEAIQUCQCADQQBIDQBBASEGAkAgA0UNABBzQQEhBSADQQEQZSIGRQ0BCyAEQRBqIARBDGogASACIAYgAxAsAkACQCAELQAQQQFHDQAgBCAELQAROgAbIARBAa1CIIYgBEEbaq2ENwMoIARBHGpBz4HAACAEQShqEBEgBCgCHCEFIAQoAiAiASAEKAIkEGshAgJAIAVFDQAgASAFQQEQXgsgAEGAgICAeDYCACAAIAI2AgQgA0UNASAGIANBARBeDAELIAAgAzYCCCAAIAY2AgQgACADNgIACyAEQQxqEGwgBEEwaiQADwsgBSADEFIAC4gCAgN/AX4jAEEwayICJAACQCABKAIAQYCAgIB4Rw0AIAEoAgwhAyACQSRqQQhqIgRBADYCACACQoCAgIAQNwIkIAJBJGpBvJbAACADKAIAIgMoAgAgAygCBBAOGiACQRhqQQhqIAQoAgAiAzYCACACIAIpAiQiBTcDGCABQQhqIAM2AgAgASAFNwIACyABKQIAIQUgAUKAgICAEDcCACACQQhqQQhqIgMgAUEIaiIBKAIANgIAIAFBADYCACACIAU3AwgQcwJAQQxBBBBkIgENAEEEQQwQaAALIAEgAikDCDcCACABQQhqIAMoAgA2AgAgAEGcmMAANgIEIAAgATYCACACQTBqJAALzgEBAn8jAEEQayIEJAAgBEEEaiABIAIgAxAZAkAgAkUNACABIAJBARBeCwJAAkACQCAEKAIEIgNBgICAgHhHDQBBASEDQQAhASAEKAIIIQVBACECDAELIAQoAgghBQJAAkAgAyAEKAIMIgJLDQAgBSEBDAELAkAgAg0AQQEhASAFIANBARBeDAELIAUgA0EBIAIQWSIBRQ0CC0EAIQVBACEDCyAAIAM2AgwgACAFNgIIIAAgAjYCBCAAIAE2AgAgBEEQaiQADwtBASACEFIAC8wBAQN/IwBBEGsiAyQAIANBBGogASACEBQCQCACRQ0AIAEgAkEBEF4LAkACQAJAIAMoAgQiBEGAgICAeEcNAEEBIQRBACEBIAMoAgghBUEAIQIMAQsgAygCCCEFAkACQCAEIAMoAgwiAksNACAFIQEMAQsCQCACDQBBASEBIAUgBEEBEF4MAQsgBSAEQQEgAhBZIgFFDQILQQAhBUEAIQQLIAAgBDYCDCAAIAU2AgggACACNgIEIAAgATYCACADQRBqJAAPC0EBIAIQUgAL3AEBAn8jAEEgayIFJAACQAJAQQEQOUH/AXEiBkECRg0AIAZBAXFFDQEgBUEIaiAAIAEoAhgRBAAMAQtBACgC2J9AIgZBf0wNAEEAIAZBAWo2AtifQAJAAkBBACgC3J9ARQ0AIAUgACABKAIUEQQAIAUgBDoAHSAFIAM6ABwgBSACNgIYIAUgBSkDADcCEEEAKALcn0AgBUEQakEAKALgn0AoAhQRBAAMAQtBgICAgHggBRBMC0EAQQAoAtifQEF/ajYC2J9AQQBBADoA0J9AIANFDQAgACABEF8ACwALtgECAn8BfkEBIQZBBCEHAkACQCAEIAVqQX9qQQAgBGtxrSADrX4iCEIgiKdFDQBBACEDDAELAkAgCKciA0GAgICAeCAEa00NAEEAIQMMAQsCQAJAAkACQCABRQ0AIAIgBSABbCAEIAMQWSEHDAELAkAgAw0AIAQhBwwCCxBzIAMgBBBkIQcLIAcNACAAIAQ2AgQMAQsgACAHNgIEQQAhBgtBCCEHCyAAIAdqIAM2AgAgACAGNgIAC7YBAgJ/AX5BASEGQQQhBwJAAkAgBCAFakF/akEAIARrca0gA61+IghCIIinRQ0AQQAhAwwBCwJAIAinIgNBgICAgHggBGtNDQBBACEDDAELAkACQAJAAkAgAUUNACACIAUgAWwgBCADEFkhBwwBCwJAIAMNACAEIQcMAgsQcyADIAQQZCEHCyAHDQAgACAENgIEDAELIAAgBzYCBEEAIQYLQQghBwsgACAHaiADNgIAIAAgBjYCAAu0AQEBfyMAQRBrIgskACALQQhqIAEgAiADIAQgBSAGIAcgCCAJIAoQAwJAIAZFDQAgBSAGQQJ0QQQQXgsCQCAERQ0AIAMgBEECdEEEEF4LAkAgAkUNACABIAJBARBeCwJAAkAgCygCCCIGDQBBASEEQQAhBiALKAIMIQJBACEFDAELQQAhAiALKAIMIQVBACEECyAAIAQ2AgwgACACNgIIIAAgBTYCBCAAIAY2AgAgC0EQaiQAC7IBAQF/IwBBEGsiCiQAIApBCGogASACIAMgBCAFIAYgByAIIAkQBAJAIAZFDQAgBSAGQQJ0QQQQXgsCQCAERQ0AIAMgBEECdEEEEF4LAkAgAkUNACABIAJBARBeCwJAAkAgCigCCCIGDQBBASEEQQAhBiAKKAIMIQJBACEFDAELQQAhAiAKKAIMIQVBACEECyAAIAQ2AgwgACACNgIIIAAgBTYCBCAAIAY2AgAgCkEQaiQAC64BAQF/IwBBEGsiCCQAIAhBCGogASACIAMgBCAFIAYgBxAIAkAgBkUNACAFIAZBAnRBBBBeCwJAIARFDQAgAyAEQQJ0QQQQXgsCQCACRQ0AIAEgAkEBEF4LAkACQCAIKAIIIgYNAEEBIQRBACEGIAgoAgwhAkEAIQUMAQtBACECIAgoAgwhBUEAIQQLIAAgBDYCDCAAIAI2AgggACAFNgIEIAAgBjYCACAIQRBqJAALmAEBA38CQAJAAkACQCACIAFPDQAgAkEBaiIDIAFPDQEgAkECaiIEIAFPDQIgAkEDaiIFIAFJDQMgBSABQfiFwAAQNAALIAIgAUHIhcAAEDQACyADIAFB2IXAABA0AAsgBCABQeiFwAAQNAALIAAgA2otAABBCHQgACACai0AAHIgACAEai0AAEEQdHIgACAFai0AAEEYdHK+C5UBAQF/IwBBEGsiBSQAAkAgAiABaiIBIAJPDQBBAEEAEFIACyAFQQRqIAAoAgAiAiAAKAIEIAEgAkEBdCICIAEgAksbIgJBCEEEIARBAUYbIgEgAiABSxsiAiADIAQQHwJAIAUoAgRBAUcNACAFKAIIIAUoAgwQUgALIAUoAgghBCAAIAI2AgAgACAENgIEIAVBEGokAAuXAQEDfwJAAkACQAJAIAIgAU8NACACQQFqIgMgAU8NASACQQJqIgQgAU8NAiACQQNqIgUgAUkNAyAFIAFBuIbAABA0AAsgAiABQYiGwAAQNAALIAMgAUGYhsAAEDQACyAEIAFBqIbAABA0AAsgACADai0AAEEIdCAAIAJqLQAAciAAIARqLQAAQRB0ciAAIAVqLQAAQRh0cguXAQEDfwJAAkACQAJAIAIgAU8NACACQQFqIgMgAU8NASACQQJqIgQgAU8NAiACQQNqIgUgAUkNAyAFIAFB+IbAABA0AAsgAiABQciGwAAQNAALIAMgAUHYhsAAEDQACyAEIAFB6IbAABA0AAsgACADai0AAEEIdCAAIAJqLQAAciAAIARqLQAAQRB0ciAAIAVqLQAAQRh0cguLAQEBfyMAQRBrIgMkAAJAIAIgAWoiASACTw0AQQBBABBSAAsgA0EEaiAAKAIAIgIgACgCBCABIAJBAXQiAiABIAJLGyICQQggAkEISxsiAkEBQQEQHgJAIAMoAgRBAUcNACADKAIIIAMoAgwQUgALIAMoAgghASAAIAI2AgAgACABNgIEIANBEGokAAukAQIDfwF+IwBBIGsiAiQAAkAgASgCAEGAgICAeEcNACABKAIMIQMgAkEUakEIaiIEQQA2AgAgAkKAgICAEDcCFCACQRRqQbyWwAAgAygCACIDKAIAIAMoAgQQDhogAkEIakEIaiAEKAIAIgM2AgAgAiACKQIUIgU3AwggAUEIaiADNgIAIAEgBTcCAAsgAEGcmMAANgIEIAAgATYCACACQSBqJAALhwEBAX8jAEEQayIDJAACQCACIAFqIgEgAk8NAEEAQQAQUgALIANBBGogACgCACICIAAoAgQgASACQQF0IgIgASACSxsiAkEIIAJBCEsbIgIQKgJAIAMoAgRBAUcNACADKAIIIAMoAgwQUgALIAMoAgghASAAIAI2AgAgACABNgIEIANBEGokAAuEAQACQAJAIANBAE4NAEEBIQFBBCECQQAhAwwBCwJAAkACQAJAIAFFDQAgAiABQQEgAxBZIQEMAQsCQCADDQBBASEBDAILEHMgA0EBEGQhAQsgAQ0AQQEhASAAQQE2AgQMAQsgACABNgIEQQAhAQtBCCECCyAAIAJqIAM2AgAgACABNgIAC4gBAQN/IwBBEGsiASQAAkAgACgCACICKAIEIgNBAXFFDQAgAigCACECIAEgA0EBdjYCBCABIAI2AgAgAUHUlsAAIAAoAgQgACgCCCIALQAIIAAtAAkQHQALIAFBgICAgHg2AgAgASAANgIMIAFB8JbAACAAKAIEIAAoAggiAC0ACCAALQAJEB0AC4QBAQJ/IwBBEGsiBiQAQQAhByAGQQA2AgwCQAJAAkACQAJAIAEoAgAgAiADIAQgBSAGQQxqEFUOBAECAAMAC0GwicAAQewAQZyKwAAQQgALIAAgBigCDDYCBAwCCyAAQQA6AAFBASEHDAELQQEhByAAQQE6AAELIAAgBzoAACAGQRBqJAALawEDfyMAQRBrIgEkACABQQRqIAAoAgAiAiAAKAIEIAJBAXQiAkEEIAJBBEsbIgJBBEEEEB4CQCABKAIEQQFHDQAgASgCCCABKAIMEFIACyABKAIIIQMgACACNgIAIAAgAzYCBCABQRBqJAALYAECfwJAAkAgAkEQdiACQf//A3FBAEdqIgJAACIDQX9HDQBBACECQQAhBAwBCyACQRB0IgRBcGogBCADQRB0IgJBACAEa0YbIQQLIABBADYCCCAAIAQ2AgQgACACNgIAC2ABAn8CQAJAIABBfGooAgAiA0F4cSIEQQRBCCADQQNxIgMbIAFqSQ0AAkAgA0UNACAEIAFBJ2pLDQILIAAQDA8LQZyXwABBLkHMl8AAEFMAC0Hcl8AAQS5BjJjAABBTAAtZAQF/IwBBIGsiBSQAIAUgATYCBCAFIAA2AgAgBSADNgIMIAUgAjYCCCAFQR6tQiCGIAVBCGqthDcDGCAFQR+tQiCGIAWthDcDEEHogcAAIAVBEGogBBA8AAtoAQJ/QQAhAQJAIAAoAgBBDEcNAEEAIQFBrNoAIAAoAgQiAkEAKAL4m0AgAhsRAwAiAkUNAAJAQazaAEUNACACQQBBrNoA/AsACyACIAAoAggiAEEAKAL8m0AgABs2AqhaIAIhAQsgAQtZAQJ/IAEoAgAhAiABQQA2AgACQAJAIAJFDQAgASgCBCEDEHNBCEEEEGQiAUUNASABIAM2AgQgASACNgIAIABBjJfAADYCBCAAIAE2AgAPCwALQQRBCBBoAAtRAQF/IwBBEGsiBiQAIAZBCGogASACIAMgBCAFEAcgBigCDCEFIAYoAgghBAJAIAJFDQAgASACQQEQXgsgACAENgIAIAAgBTYCBCAGQRBqJAALTgIBfwF+IwBBIGsiAyQAIAMgATYCDCADIAA2AgggA0EcrUIghiIEIANBCGqthDcDGCADIAQgA0EMaq2ENwMQQaiAwAAgA0EQaiACEDwAC08BAX8jAEEQayIFJAAgBUEIaiABIAIgAyAEEAYgBSgCDCEEIAUoAgghAwJAIAJFDQAgASACQQEQXgsgACADNgIAIAAgBDYCBCAFQRBqJAALUAEBfwJAIAIgACgCACAAKAIIIgNrTQ0AIAAgAyACQQFBARAkIAAoAgghAwsCQCACRQ0AIAAoAgQgA2ogASAC/AoAAAsgACADIAJqNgIIQQALRQACQAJAIAFBCUkNACABIAAQEiEBDAELIAAQASEBCwJAIAFFDQAgAUF8ai0AAEEDcUUNACAARQ0AIAFBACAA/AsACyABC0wBAX8CQCACIAAoAgAgACgCCCIDa00NACAAIAMgAhApIAAoAgghAwsCQCACRQ0AIAAoAgQgA2ogASAC/AoAAAsgACADIAJqNgIIQQALUgECf0EAIQFBAEEAKALUn0AiAkEBajYC1J9AAkAgAkEASA0AQQEhAUEALQDQn0ANAEEAIAA6ANCfQEEAQQAoAsyfQEEBajYCzJ9AQQIhAQsgAQs9AQF/IwBBEGsiAiQAIAFBAUEBQQAgAkEGaiAAKAIAIAJBBmpBChAPIgBqQQogAGsQCyEAIAJBEGokACAAC0cBAn8gASgCBCECIAEoAgAhAxBzAkBBCEEEEGQiAQ0AQQRBCBBoAAsgASACNgIEIAEgAzYCACAAQYyXwAA2AgQgACABNgIACzsBAX8jAEEgayIDJAAgAyABNgIQIAMgADYCDCADQQE7ARwgAyACNgIYIAMgA0EMajYCFCADQRRqEEAACzQAAkAgAWlBAUcNACAAQYCAgIB4IAFrSw0AAkAgAEUNABBzIAAgARBkIgFFDQELIAEPCwALQAACQCAAKAIAQYCAgIB4Rg0AIAEgACgCBCAAKAIIEFcPCyABKAIAIAEoAgQgACgCDCgCACIAKAIAIAAoAgQQDgs5AAJAIAJBgIDEAEYNACAAIAIgASgCEBEFAEUNAEEBDwsCQCADDQBBAA8LIAAgAyAEIAEoAgwRBwALLAIBfwF+IwBBEGsiASQAIAApAgAhAiABIAA2AgwgASACNwIEIAFBBGoQbQALLQEBfyMAQRBrIgEkACABIAApAgA3AgggAUEIakGglsAAIAAoAghBAUEAEB0ACyoBAX8jAEEQayIDJAAgAyACNgIMIAMgATYCCCADIAA2AgQgA0EEahBvAAsjAQF/IwBBEGsiAiQAIAIgATYCDCACIAA2AgggAkEIahBuAAspAQF/AkAgACgCACIBQYCAgIB4ckGAgICAeEYNACAAKAIEIAFBARBeCwseAQF/AkAgACgCACICRQ0AIAEgAiAAKAIEEFcPCwALIAACQCABKAIARQ0AIABBjJfAADYCBCAAIAE2AgAPCwALHwAgAUH/iMAAQfiIwAAgAC0AACIAG0ERQQcgABsQVwsbAQF/EHMgAEEEakEEEGQiASAANgIAIAFBBGoLHgAgACgCACAAKAIEQQAoAsifQCIAQQQgABsRBAAACyMBAX8CQEH4isAAEDEiAA0AQayKwABBOkHoisAAEEIACyAACxcAAkAgAUEJSQ0AIAEgABASDwsgABABCx8AAkAgAEGAgICAeHJBgICAgHhGDQAgASAAQQEQXgsLHAEBfwJAIAAoAgAiAUUNACAAKAIEIAFBARBeCwscAQF/AkAgACgCACIBRQ0AIAAoAgQgAUEBEF4LCxUAIABBfGoiACAAKAIAQQRqQQQQXgsdACAAQQhqQQApAoiWQDcCACAAQQApAoCWQDcCAAsdACAAQQhqQQApApiWQDcCACAAQQApApCWQDcCAAsUAAJAIABFDQAgACABEGgACxBiAAsRACAAIAFBAXRBAXIgAhA8AAsSAAJAIAFFDQAgACABIAIQXgsLEgAgACABIAIgAyAEQQAgBRACCxUAAkAgAEUNACAAIAAoAqhaEQIACwsWACAAKAIAIAEgAiAAKAIEKAIMEQcACxQAIAAoAgAgASAAKAIEKAIMEQUACw0AIAAgASACIAMQCg8LFABBACAANgLgm0BBAEEBNgLcm0ALEAAgASAAKAIAIAAoAgQQVwsTACAAQYyXwAA2AgQgACABNgIACxAAIAEgACgCACAAKAIEEA0LCwAgACABIAIQLw8LCgAgACABEHIaAAsPACAAQbyWwAAgASACEA4LDwAgAEG0mMAAIAEgAhAOCxEAQcSZwABBI0HYmcAAEDwACwsAIAAjAGokACMACwkAIAAgARBLDwsJACAAIAEQNw8LCQAgASAAEEMACwwAIAAgASkCADcDAAsJACABIAAQZgALDQAgAUGsmMAAQQUQVwsNACABQcCbwABBGBANCwgAIAAgARAACwkAIAAoAgAQVgsHACAAECsACwcAIAAQSQALBwAgABBBAAsLAEEAQQE6AMSfQAsJACAAQQA2AgALBQAQdAALAwAPCwMAAAsL7hsCAEGAgMAAC9gbFnNsaWNlIGluZGV4IHN0YXJ0cyBhdCDADSBidXQgZW5kcyBhdCDAACBpbmRleCBvdXQgb2YgYm91bmRzOiB0aGUgbGVuIGlzIMASIGJ1dCB0aGUgaW5kZXggaXMgwAAScmFuZ2Ugc3RhcnQgaW5kZXggwCIgb3V0IG9mIHJhbmdlIGZvciBzbGljZSBvZiBsZW5ndGggwAAQcmFuZ2UgZW5kIGluZGV4IMAiIG91dCBvZiByYW5nZSBmb3Igc2xpY2Ugb2YgbGVuZ3RoIMAAFmRlY29tcHJlc3Npb24gZmFpbGVkOiDAAMACOiDAAC9ydXN0Yy80YTRlZjQ5M2UzYTE0ODhjNmUzMjE1NzAyMzgwODRiMzg5NDhmNmRiL2xpYnJhcnkvYWxsb2Mvc3JjL2ZtdC5ycwAvcnVzdGMvNGE0ZWY0OTNlM2ExNDg4YzZlMzIxNTcwMjM4MDg0YjM4OTQ4ZjZkYi9saWJyYXJ5L2NvcmUvc3JjL2ZtdC9udW0ucnMAL2hvbWUvY2RpZXNoLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2Yvd2FzbS1iaW5kZ2VuLTAuMi4xMTQvc3JjL2V4dGVybnJlZi5ycwAvcnVzdGMvNGE0ZWY0OTNlM2ExNDg4YzZlMzIxNTcwMjM4MDg0YjM4OTQ4ZjZkYi9saWJyYXJ5L2FsbG9jL3NyYy9yYXdfdmVjL21vZC5ycwAvcnVzdC9kZXBzL2RsbWFsbG9jLTAuMi4xMS9zcmMvZGxtYWxsb2MucnMAL2hvbWUvY2RpZXNoLy5jYXJnby9yZWdpc3RyeS9zcmMvaW5kZXguY3JhdGVzLmlvLTE5NDljZjhjNmI1YjU1N2YvbGliZGVmbGF0ZXItMS4yNS4yL3NyYy9saWIucnMAALwCEAAKAAAAbAAAABkAAAC8AhAACgAAAGwAAAAnAAAAvAIQAAoAAABsAAAAOQAAALwCEAAKAAAAbAAAAEsAAAC8AhAACgAAAGAAAAAZAAAAvAIQAAoAAABgAAAAJwAAALwCEAAKAAAAYAAAADkAAAC8AhAACgAAAGAAAABLAAAAvAIQAAoAAABkAAAAGQAAALwCEAAKAAAAZAAAACcAAAC8AhAACgAAAGQAAAA5AAAAvAIQAAoAAABkAAAASwAAALwCEAAKAAAAQAAAAAsAAAC8AhAACgAAAFgAAAALAAAAvAIQAAoAAABJAAAAEwAAALwCEAAKAAAAUwAAACsAAAC8AhAACgAAAE0AAAAPAAAAvAIQAAoAAABKAAAAHAAAALwCEAAKAAAAOQAAAB0AAABkZWNvbXByZXNzaW9uIG91dHB1dCB0b28gbGFyZ2UAALwCEAAKAAAAJgEAABMAAAC8AhAACgAAAC0BAAAdAAAAvAIQAAoAAAAnAQAAHAAAALwCEAAKAAAAoAEAABMAAAC8AhAACgAAAKcBAAAdAAAAvAIQAAoAAAChAQAAHAAAAEJhZERhdGFJbnN1ZmZpY2llbnRTcGFjZYMBEABnAAAAfwAAABEAAACDARAAZwAAAIwAAAARAAAAbGliZGVmbGF0ZV9kZWZsYXRlX2RlY29tcHJlc3MgcmV0dXJuZWQgYW4gdW5rbm93biBlcnJvciB0eXBlOiB0aGlzIGlzIGFuIGludGVybmFsIGJ1ZyB0aGF0ICoqbXVzdCoqIGJlIGZpeGVkZwIQAF8AAAANAQAAFQAAAGxpYmRlZmxhdGVfYWxsb2NfZGVjb21wcmVzc29yIHJldHVybmVkIE5VTEw6IG91dCBvZiBtZW1vcnkAAGcCEABfAAAAnQAAABEAAAAMAAAAAgAAAAMAAAAAAAAAAAAAAAAAAAAQERIACAcJBgoFCwQMAw0CDgEPAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAACAAAAAwAAAAQAAAAFAAAABgAAAAcAAAAIAAAACQAAAAoAAAALAAAADAAAAA0AAAAOAAAADwAAABAAAAARAAAAEgAAAAAAAAABAAAAAgAAAAMAAAAEAAEABQABAAcAAgAJAAIADQADABEAAwAZAAQAIQAEADEABQBBAAUAYQAGAIEABgDBAAcAAQEHAIEBCAABAggAAQMJAAEECQABBgoAAQgKAAEMCwABEAsAARgMAAEgDAABMA0AAUANAAFgDQABYA0AAWAAAACAAAABgAAAAoAAAAOAAAAEgAAABYAAAAaAAAAHgAAACIAAAAmAAAAKgAAAC4AAAAyAAAANgAAADoAAAA+AAAAQgAAAEYAAABKAAAATgAAAFIAAABWAAAAWgAAAF4AAABiAAAAZgAAAGoAAABuAAAAcgAAAHYAAAB6AAAAfgAAAIIAAACGAAAAigAAAI4AAACSAAAAlgAAAJoAAACeAAAAogAAAKYAAACqAAAArgAAALIAAAC2AAAAugAAAL4AAADCAAAAxgAAAMoAAADOAAAA0gAAANYAAADaAAAA3gAAAOIAAADmAAAA6gAAAO4AAADyAAAA9gAAAPoAAAD+AAABAgAAAQYAAAEKAAABDgAAARIAAAEWAAABGgAAAR4AAAEiAAABJgAAASoAAAEuAAABMgAAATYAAAE6AAABPgAAAUIAAAFGAAABSgAAAU4AAAFSAAABVgAAAVoAAAFeAAABYgAAAWYAAAFqAAABbgAAAXIAAAF2AAABegAAAX4AAAGCAAABhgAAAYoAAAGOAAABkgAAAZYAAAGaAAABngAAAaIAAAGmAAABqgAAAa4AAAGyAAABtgAAAboAAAG+AAABwgAAAcYAAAHKAAABzgAAAdIAAAHWAAAB2gAAAd4AAAHiAAAB5gAAAeoAAAHuAAAB8gAAAfYAAAH6AAAB/gAAAgIAAAIGAAACCgAAAg4AAAISAAACFgAAAhoAAAIeAAACIgAAAiYAAAIqAAACLgAAAjIAAAI2AAACOgAAAj4AAAJCAAACRgAAAkoAAAJOAAACUgAAAlYAAAJaAAACXgAAAmIAAAJmAAACagAAAm4AAAJyAAACdgAAAnoAAAJ+AAACggAAAoYAAAKKAAACjgAAApIAAAKWAAACmgAAAp4AAAKiAAACpgAAAqoAAAKuAAACsgAAArYAAAK6AAACvgAAAsIAAALGAAACygAAAs4AAALSAAAC1gAAAtoAAALeAAAC4gAAAuYAAALqAAAC7gAAAvIAAAL2AAAC+gAAAv4AAAMCAAADBgAAAwoAAAMOAAADEgAAAxYAAAMaAAADHgAAAyIAAAMmAAADKgAAAy4AAAMyAAADNgAAAzoAAAM+AAADQgAAA0YAAANKAAADTgAAA1IAAANWAAADWgAAA14AAANiAAADZgAAA2oAAANuAAADcgAAA3YAAAN6AAADfgAAA4IAAAOGAAADigAAA44AAAOSAAADlgAAA5oAAAOeAAADogAAA6YAAAOqAAADrgAAA7IAAAO2AAADugAAA74AAAPCAAADxgAAA8oAAAPOAAAD0gAAA9YAAAPaAAAD3gAAA+IAAAPmAAAD6gAAA+4AAAPyAAAD9gAAA/oAAAP+AAKAAAAAAAwAAAAQAAAAFAAAABgAAAAcAAAAIAAAACQAAAAoAAQALAAEADQABAA8AAQARAAIAEwACABcAAgAbAAIAHwADACMAAwArAAMAMwADADsABABDAAQAUwAEAGMABABzAAUAgwAFAKMABQDDAAUA4wAAAAIBAAACAQAAAgFtXcvWLFDrY3hBpldxG4u5I8o7SqZ3fJNCY0mvl2+yhAAAAAAIAAAABAAAAAUAAAAGAAAABwAAAAgAAAAJAAAADAAAAAQAAAAKAAAACwAAAAwAAAAAAAAACAAAAAQAAAANAAAADgAAAA8AAAAQAAAAEQAAABAAAAAEAAAAEgAAABMAAAAUAAAACAAAAAAAAAAIAAAABAAAABUAAABhc3NlcnRpb24gZmFpbGVkOiBwc2l6ZSA+PSBzaXplICsgbWluX292ZXJoZWFkAAA8AhAAKgAAALEEAAAJAAAAYXNzZXJ0aW9uIGZhaWxlZDogcHNpemUgPD0gc2l6ZSArIG1heF9vdmVyaGVhZAAAPAIQACoAAAC3BAAADQAAAAkAAAAMAAAABAAAABYAAABFcnJvcgAAABcAAAAMAAAABAAAABgAAAAZAAAAGgAAAAAAAAAAAAAAAQAAABsAAABhIGZvcm1hdHRpbmcgdHJhaXQgaW1wbGVtZW50YXRpb24gcmV0dXJuZWQgYW4gZXJyb3Igd2hlbiB0aGUgdW5kZXJseWluZyBzdHJlYW0gZGlkIG5vdAAA7gAQAEgAAACKAgAADgAAAGNhcGFjaXR5IG92ZXJmbG93AAAA6wEQAFAAAAAcAAAABQAAADAwMDEwMjAzMDQwNTA2MDcwODA5MTAxMTEyMTMxNDE1MTYxNzE4MTkyMDIxMjIyMzI0MjUyNjI3MjgyOTMwMzEzMjMzMzQzNTM2MzczODM5NDA0MTQyNDM0NDQ1NDY0NzQ4NDk1MDUxNTI1MzU0NTU1NjU3NTg1OTYwNjE2MjYzNjQ2NTY2Njc2ODY5NzA3MTcyNzM3NDc1NzY3Nzc4Nzk4MDgxODI4Mzg0ODU4Njg3ODg4OTkwOTE5MjkzOTQ5NTk2OTc5ODk5NwEQAEsAAABXAgAABQAAAFJlZkNlbGwgYWxyZWFkeSBib3Jyb3dlZABB2JvAAAsEBAAAAAApBG5hbWUBIgFjH19fd2JpbmRnZW5fYWRkX3RvX3N0YWNrX3BvaW50ZXIAPAlwcm9kdWNlcnMBDHByb2Nlc3NlZC1ieQIGd2FscnVzBjAuMjUuMgx3YXNtLWJpbmRnZW4HMC4yLjExNA==";
56
- function d(e, t, n, r, i, a) {
57
- try {
58
- let u = I.__wbindgen_add_to_stack_pointer(-16), d = A(e, I.__wbindgen_export), f = F, p = k(t, I.__wbindgen_export), m = F, h = k(n, I.__wbindgen_export), g = F;
59
- I.decompress_and_parse_bigwig(u, d, f, p, m, h, g, r, i, a);
60
- var o = S().getInt32(u + 0, !0), s = S().getInt32(u + 4, !0), c = S().getInt32(u + 8, !0);
61
- if (S().getInt32(u + 12, !0)) throw j(c);
62
- var l = b(o, s).slice();
63
- return I.__wbindgen_export2(o, s * 1, 1), l;
64
- } finally {
65
- I.__wbindgen_add_to_stack_pointer(16);
66
- }
67
- }
68
- function f(e, t, n, r, i, a, o) {
69
- try {
70
- let d = I.__wbindgen_add_to_stack_pointer(-16), f = A(e, I.__wbindgen_export), p = F, m = k(t, I.__wbindgen_export), h = F, g = k(n, I.__wbindgen_export), _ = F;
71
- I.decompress_and_parse_summary(d, f, p, m, h, g, _, r, i, a, o);
72
- var s = S().getInt32(d + 0, !0), c = S().getInt32(d + 4, !0), l = S().getInt32(d + 8, !0);
73
- if (S().getInt32(d + 12, !0)) throw j(l);
74
- var u = b(s, c).slice();
75
- return I.__wbindgen_export2(s, c * 1, 1), u;
76
- } finally {
77
- I.__wbindgen_add_to_stack_pointer(16);
78
- }
79
- }
80
- function p(e, t) {
81
- try {
82
- let o = I.__wbindgen_add_to_stack_pointer(-16), s = A(e, I.__wbindgen_export), c = F;
83
- I.inflate_raw(o, s, c, t);
84
- var n = S().getInt32(o + 0, !0), r = S().getInt32(o + 4, !0), i = S().getInt32(o + 8, !0);
85
- if (S().getInt32(o + 12, !0)) throw j(i);
86
- var a = b(n, r).slice();
87
- return I.__wbindgen_export2(n, r * 1, 1), a;
88
- } finally {
89
- I.__wbindgen_add_to_stack_pointer(16);
90
- }
91
- }
92
- function m(e, t, n, r) {
93
- try {
94
- let c = I.__wbindgen_add_to_stack_pointer(-16), l = A(e, I.__wbindgen_export), u = F, d = k(t, I.__wbindgen_export), f = F, p = k(n, I.__wbindgen_export), m = F;
95
- I.inflate_raw_batch(c, l, u, d, f, p, m, r);
96
- var i = S().getInt32(c + 0, !0), a = S().getInt32(c + 4, !0), o = S().getInt32(c + 8, !0);
97
- if (S().getInt32(c + 12, !0)) throw j(o);
98
- var s = b(i, a).slice();
99
- return I.__wbindgen_export2(i, a * 1, 1), s;
100
- } finally {
101
- I.__wbindgen_add_to_stack_pointer(16);
102
- }
103
- }
104
- function h(e) {
105
- try {
106
- let a = I.__wbindgen_add_to_stack_pointer(-16), o = A(e, I.__wbindgen_export), s = F;
107
- I.inflate_raw_unknown_size(a, o, s);
108
- var t = S().getInt32(a + 0, !0), n = S().getInt32(a + 4, !0), r = S().getInt32(a + 8, !0);
109
- if (S().getInt32(a + 12, !0)) throw j(r);
110
- var i = b(t, n).slice();
111
- return I.__wbindgen_export2(t, n * 1, 1), i;
112
- } finally {
113
- I.__wbindgen_add_to_stack_pointer(16);
114
- }
115
- }
116
- function g(e, t, n) {
117
- try {
118
- let o = I.__wbindgen_add_to_stack_pointer(-16), s = A(e, I.__wbindgen_export), c = F;
119
- I.parse_bigwig_block(o, s, c, t, n);
120
- var r = S().getInt32(o + 0, !0), i = S().getInt32(o + 4, !0), a = b(r, i).slice();
121
- return I.__wbindgen_export2(r, i * 1, 1), a;
122
- } finally {
123
- I.__wbindgen_add_to_stack_pointer(16);
124
- }
125
- }
126
- function _(e, t, n, r) {
127
- try {
128
- let s = I.__wbindgen_add_to_stack_pointer(-16), c = A(e, I.__wbindgen_export), l = F;
129
- I.parse_summary_block(s, c, l, t, n, r);
130
- var i = S().getInt32(s + 0, !0), a = S().getInt32(s + 4, !0), o = b(i, a).slice();
131
- return I.__wbindgen_export2(i, a * 1, 1), o;
132
- } finally {
133
- I.__wbindgen_add_to_stack_pointer(16);
134
- }
135
- }
136
- function v(e, t) {
137
- return y(Error(te(e, t)));
138
- }
139
- function y(e) {
140
- O === D.length && D.push(D.length + 1);
141
- let t = O;
142
- return O = D[t], D[t] = e, t;
143
- }
144
- function ee(e) {
145
- e < 1028 || (D[e] = O, O = e);
146
- }
147
- function b(e, t) {
148
- return e >>>= 0, E().subarray(e / 1, e / 1 + t);
149
- }
150
- var x = null;
151
- function S() {
152
- return (x === null || x.buffer.detached === !0 || x.buffer.detached === void 0 && x.buffer !== I.memory.buffer) && (x = new DataView(I.memory.buffer)), x;
153
- }
154
- function te(e, t) {
155
- return e >>>= 0, re(e, t);
156
- }
157
- var C = null;
158
- function w() {
159
- return (C === null || C.byteLength === 0) && (C = new Uint32Array(I.memory.buffer)), C;
160
- }
161
- var T = null;
162
- function E() {
163
- return (T === null || T.byteLength === 0) && (T = new Uint8Array(I.memory.buffer)), T;
164
- }
165
- function ne(e) {
166
- return D[e];
167
- }
168
- var D = Array(1024).fill(void 0);
169
- D.push(void 0, null, !0, !1);
170
- var O = D.length;
171
- function k(e, t) {
172
- let n = t(e.length * 4, 4) >>> 0;
173
- return w().set(e, n / 4), F = e.length, n;
174
- }
175
- function A(e, t) {
176
- let n = t(e.length * 1, 1) >>> 0;
177
- return E().set(e, n / 1), F = e.length, n;
178
- }
179
- function j(e) {
180
- let t = ne(e);
181
- return ee(e), t;
182
- }
183
- var M = new TextDecoder("utf-8", {
184
- ignoreBOM: !0,
185
- fatal: !0
186
- });
187
- M.decode();
188
- var N = 2146435072, P = 0;
189
- function re(e, t) {
190
- return P += t, P >= N && (M = new TextDecoder("utf-8", {
191
- ignoreBOM: !0,
192
- fatal: !0
193
- }), M.decode(), P = t), M.decode(E().subarray(e, e + t));
194
- }
195
- var F = 0, I;
196
- function L(e) {
197
- I = e;
198
- }
199
- var R = null, z = null;
200
- async function B() {
201
- return R || (z ||= (async () => {
202
- let e = await (await fetch(u)).arrayBuffer(), { instance: t } = await WebAssembly.instantiate(e, { "./inflate_wasm_bg.js": l });
203
- return R = t.exports, L(R), R;
204
- })(), z);
205
- }
206
- async function ie(e, t, n, r) {
207
- await B();
208
- let i = m(e, t, n, r), a = new DataView(i.buffer, i.byteOffset, i.byteLength), o = a.getUint32(0, !0), s = 4 + (o + 1) * 4, c = Array(o + 1);
209
- for (let e = 0; e <= o; e++) c[e] = a.getUint32(4 + e * 4, !0);
210
- return {
211
- data: i.subarray(s),
212
- offsets: c
213
- };
214
- }
215
- function ae(e) {
216
- let t = new DataView(e.buffer, e.byteOffset, e.byteLength).getUint32(0, !0);
217
- if (t === 0) return {
218
- starts: new Int32Array(),
219
- ends: new Int32Array(),
220
- scores: new Float32Array()
221
- };
222
- let n = 4 + t * 4, r = n + t * 4;
223
- return {
224
- starts: new Int32Array(e.buffer, e.byteOffset + 4, t),
225
- ends: new Int32Array(e.buffer, e.byteOffset + n, t),
226
- scores: new Float32Array(e.buffer, e.byteOffset + r, t)
227
- };
228
- }
229
- function oe(e) {
230
- let t = new DataView(e.buffer, e.byteOffset, e.byteLength).getUint32(0, !0);
231
- if (t === 0) return {
232
- starts: new Int32Array(),
233
- ends: new Int32Array(),
234
- scores: new Float32Array(),
235
- minScores: new Float32Array(),
236
- maxScores: new Float32Array()
237
- };
238
- let n = 4 + t * 4, r = n + t * 4, i = r + t * 4, a = i + t * 4;
239
- return {
240
- starts: new Int32Array(e.buffer, e.byteOffset + 4, t),
241
- ends: new Int32Array(e.buffer, e.byteOffset + n, t),
242
- scores: new Float32Array(e.buffer, e.byteOffset + r, t),
243
- minScores: new Float32Array(e.buffer, e.byteOffset + i, t),
244
- maxScores: new Float32Array(e.buffer, e.byteOffset + a, t)
245
- };
246
- }
247
- async function se(e, t, n, r, i, a) {
248
- return await B(), ae(d(e, t, n, r, i, a));
249
- }
250
- async function ce(e, t, n, r, i, a, o) {
251
- return await B(), oe(f(e, t, n, r, i, a, o));
252
- }
253
- //#endregion
254
- //#region ../../node_modules/@gmod/bbi/esm/unzip.js
255
- async function V(e, t, n) {
256
- let r = new Uint32Array(t.length), i = new Uint32Array(t.length);
257
- for (let e = 0; e < t.length; e++) {
258
- let n = t[e];
259
- r[e] = n.offset, i[e] = n.length;
260
- }
261
- return ie(e, r, i, n);
262
- }
263
- async function H(e, t, n, r, i) {
264
- let a = new Uint32Array(t.length), o = new Uint32Array(t.length);
265
- for (let e = 0; e < t.length; e++) {
266
- let n = t[e];
267
- a[e] = n.offset, o[e] = n.length;
268
- }
269
- return se(e, a, o, n, r, i);
270
- }
271
- async function U(e, t, n, r, i, a) {
272
- let o = new Uint32Array(t.length), s = new Uint32Array(t.length);
273
- for (let e = 0; e < t.length; e++) {
274
- let n = t[e];
275
- o[e] = n.offset, s[e] = n.length;
276
- }
277
- return ce(e, o, s, n, r, i, a);
278
- }
279
- //#endregion
280
- //#region ../../node_modules/@gmod/bbi/esm/util.js
281
- function W(e) {
282
- e.sort((e, t) => e.offset - t.offset);
283
- let t = [], n, r;
284
- for (let i of e) n && r && i.offset - r <= 2e3 ? (n.length = i.offset + i.length - n.offset, n.blocks.push(i), r = i.offset + i.length) : (n = {
285
- blocks: [i],
286
- length: i.length,
287
- offset: i.offset
288
- }, t.push(n), r = i.offset + i.length);
289
- return t;
290
- }
291
- //#endregion
292
- //#region ../../node_modules/@gmod/bbi/esm/block-view.js
293
- var le = new TextDecoder("utf8"), G = 610839776;
294
- function K(e, t, n, r) {
295
- return e < r && t >= n;
296
- }
297
- function q(e, t, n) {
298
- let r = [], i = t, a = new DataView(e.buffer, e.byteOffset, e.length);
299
- for (; i < e.byteLength;) {
300
- let e = a.getUint32(i, !0);
301
- i += 4;
302
- let t = a.getUint32(i, !0);
303
- i += 4;
304
- let o = a.getUint32(i, !0);
305
- i += 4;
306
- let s = a.getUint32(i, !0);
307
- i += 4;
308
- let c = a.getFloat32(i, !0);
309
- i += 4;
310
- let l = a.getFloat32(i, !0);
311
- i += 4;
312
- let u = a.getFloat32(i, !0);
313
- i += 8, (!n || e === n.chrId && K(t, o, n.start, n.end)) && r.push({
314
- start: t,
315
- end: o,
316
- maxScore: l,
317
- minScore: c,
318
- summary: !0,
319
- score: u / (s || 1)
320
- });
321
- }
322
- return r;
323
- }
324
- function ue(e, t, n, r) {
325
- let i = [], a = t, o = new DataView(e.buffer, e.byteOffset, e.length);
326
- for (; a < e.byteLength;) {
327
- let t = a, s = o.getUint32(a, !0);
328
- a += 4;
329
- let c = o.getInt32(a, !0);
330
- a += 4;
331
- let l = o.getInt32(a, !0);
332
- a += 4;
333
- let u = a;
334
- for (; u < e.length && e[u] !== 0; u++);
335
- let d = e.subarray(a, u), f = le.decode(d);
336
- a = u + 1, (!r || s === r.chrId && K(c, l, r.start, r.end)) && i.push({
337
- start: c,
338
- end: l,
339
- rest: f,
340
- uniqueId: `bb-${n + t}`
341
- });
342
- }
343
- return i;
344
- }
345
- function de(e, t, n) {
346
- let r = e.subarray(t), i = new DataView(r.buffer, r.byteOffset, r.length), a = i.getInt32(4, !0), o = i.getUint32(12, !0), s = i.getUint32(16, !0), c = i.getUint8(20), l = i.getUint16(22, !0), u = 24, d = [];
347
- switch (c) {
348
- case 1:
349
- for (let e = 0; e < l; e++) {
350
- let e = i.getInt32(u, !0);
351
- u += 4;
352
- let t = i.getInt32(u, !0);
353
- u += 4;
354
- let r = i.getFloat32(u, !0);
355
- u += 4, (!n || K(e, t, n.start, n.end)) && d.push({
356
- start: e,
357
- end: t,
358
- score: r
359
- });
360
- }
361
- break;
362
- case 2:
363
- for (let e = 0; e < l; e++) {
364
- let e = i.getInt32(u, !0);
365
- u += 4;
366
- let t = i.getFloat32(u, !0);
367
- u += 4;
368
- let r = e + s;
369
- (!n || K(e, r, n.start, n.end)) && d.push({
370
- score: t,
371
- start: e,
372
- end: r
373
- });
374
- }
375
- break;
376
- case 3:
377
- for (let e = 0; e < l; e++) {
378
- let t = i.getFloat32(u, !0);
379
- u += 4;
380
- let r = a + e * o, c = r + s;
381
- (!n || K(r, c, n.start, n.end)) && d.push({
382
- score: t,
383
- start: r,
384
- end: c
385
- });
386
- }
387
- break;
388
- }
389
- return d;
390
- }
391
- function fe(e, t, n) {
392
- let r = new DataView(e.buffer, e.byteOffset + t, e.length - t), i = r.getInt32(4, !0), a = r.getUint32(12, !0), o = r.getUint32(16, !0), s = r.getUint8(20), c = r.getUint16(22, !0), l = new Int32Array(c), u = new Int32Array(c), d = new Float32Array(c);
393
- if (!n) {
394
- switch (s) {
395
- case 1: {
396
- let e = 24;
397
- for (let t = 0; t < c; t++) l[t] = r.getInt32(e, !0), u[t] = r.getInt32(e + 4, !0), d[t] = r.getFloat32(e + 8, !0), e += 12;
398
- return {
399
- starts: l,
400
- ends: u,
401
- scores: d
402
- };
403
- }
404
- case 2: {
405
- let e = 24;
406
- for (let t = 0; t < c; t++) {
407
- let n = r.getInt32(e, !0);
408
- l[t] = n, u[t] = n + o, d[t] = r.getFloat32(e + 4, !0), e += 8;
409
- }
410
- return {
411
- starts: l,
412
- ends: u,
413
- scores: d
414
- };
415
- }
416
- case 3: {
417
- let e = 24;
418
- for (let t = 0; t < c; t++) {
419
- let n = i + t * a;
420
- l[t] = n, u[t] = n + o, d[t] = r.getFloat32(e, !0), e += 4;
421
- }
422
- return {
423
- starts: l,
424
- ends: u,
425
- scores: d
426
- };
427
- }
428
- }
429
- return {
430
- starts: l,
431
- ends: u,
432
- scores: d
433
- };
434
- }
435
- let f = n.start, p = n.end, m = 0;
436
- switch (s) {
437
- case 1: {
438
- let e = 24;
439
- for (let t = 0; t < c; t++) {
440
- let t = r.getInt32(e, !0), n = r.getInt32(e + 4, !0);
441
- t < p && n >= f && (l[m] = t, u[m] = n, d[m] = r.getFloat32(e + 8, !0), m++), e += 12;
442
- }
443
- break;
444
- }
445
- case 2: {
446
- let e = 24;
447
- for (let t = 0; t < c; t++) {
448
- let t = r.getInt32(e, !0), n = t + o;
449
- t < p && n >= f && (l[m] = t, u[m] = n, d[m] = r.getFloat32(e + 4, !0), m++), e += 8;
450
- }
451
- break;
452
- }
453
- case 3: {
454
- let e = 24;
455
- for (let t = 0; t < c; t++) {
456
- let n = i + t * a, s = n + o;
457
- n < p && s >= f && (l[m] = n, u[m] = s, d[m] = r.getFloat32(e, !0), m++), e += 4;
458
- }
459
- break;
460
- }
461
- }
462
- return m < c ? {
463
- starts: l.subarray(0, m),
464
- ends: u.subarray(0, m),
465
- scores: d.subarray(0, m)
466
- } : {
467
- starts: l,
468
- ends: u,
469
- scores: d
470
- };
471
- }
472
- var pe = class {
473
- bbi;
474
- refsByName;
475
- rTreeOffset;
476
- uncompressBufSize;
477
- blockType;
478
- rTreePromise;
479
- featureCache = new r({
480
- cache: new e({ maxSize: 1e3 }),
481
- fill: async ({ length: e, offset: t }, n) => this.bbi.read(e, t, { signal: n })
482
- });
483
- constructor(e, t, n, r, i) {
484
- if (this.bbi = e, this.refsByName = t, this.rTreeOffset = n, this.uncompressBufSize = r, this.blockType = i, !(n >= 0)) throw Error("invalid rTreeOffset!");
485
- }
486
- async _collectBlocks(e, t, n, r) {
487
- let i = this.refsByName[e];
488
- if (i === void 0) return;
489
- this.rTreePromise ||= this.bbi.read(48, this.rTreeOffset, r);
490
- let a = await this.rTreePromise, o = new DataView(a.buffer, a.byteOffset, a.length), c = o.getUint32(0, !0);
491
- if (c !== G) throw Error(`invalid cirTree magic: 0x${c.toString(16)} (expected 0x${G.toString(16)}) at offset ${this.rTreeOffset}, file may be corrupt or unsupported`);
492
- let l = 4 + o.getUint32(4, !0) * 32, u = (e, r, a, o) => (e < i || e === i && r <= n) && (a > i || a === i && o >= t), d = [], f = [this.rTreeOffset + 48];
493
- for (; f.length > 0;) {
494
- let e = s(f.map((e) => ({
495
- min: e,
496
- max: e + l
497
- }))), t = [];
498
- for (let { min: n, max: i } of e) {
499
- let e = i - n, a = n, o = await this.featureCache.get(`${e}_${a}`, {
500
- length: e,
501
- offset: a
502
- }, r?.signal);
503
- for (let e of f) if (n <= e && e <= i) {
504
- let n = o.subarray(e - a), r = new DataView(n.buffer, n.byteOffset, n.length), i = r.getUint8(0), s = r.getUint16(2, !0), c = 4;
505
- if (i === 1) for (let e = 0; e < s; e++) {
506
- let e = r.getUint32(c, !0), t = r.getUint32(c + 4, !0), n = r.getUint32(c + 8, !0), i = r.getUint32(c + 12, !0), a = Number(r.getBigUint64(c + 16, !0)), o = Number(r.getBigUint64(c + 24, !0));
507
- c += 32, u(e, t, n, i) && d.push({
508
- offset: a,
509
- length: o
510
- });
511
- }
512
- else if (i === 0) for (let e = 0; e < s; e++) {
513
- let e = r.getUint32(c, !0), n = r.getUint32(c + 4, !0), i = r.getUint32(c + 8, !0), a = r.getUint32(c + 12, !0), o = Number(r.getBigUint64(c + 16, !0));
514
- c += 24, u(e, n, i, a) && t.push(o);
515
- }
516
- }
517
- }
518
- f = t;
519
- }
520
- return {
521
- blocks: d,
522
- chrId: i
523
- };
524
- }
525
- async readWigData(e, t, n, r) {
526
- let i = await this._collectBlocks(e, t, n, r);
527
- if (!i) return [];
528
- let { blocks: a, chrId: o } = i;
529
- return this.readFeatures(a, {
530
- ...r,
531
- request: {
532
- chrId: o,
533
- start: t,
534
- end: n
535
- }
536
- });
537
- }
538
- async readWigDataAsArrays(e, t, n, r) {
539
- let i = await this._collectBlocks(e, t, n, r), a = i?.blocks ?? [], o = i ? {
540
- chrId: i.chrId,
541
- start: t,
542
- end: n
543
- } : void 0, s = {
544
- ...r,
545
- request: o
546
- };
547
- return this.blockType === "summary" ? this._readSummaryFeaturesAsArrays(a, s) : this._readBigWigFeaturesAsArrays(a, s);
548
- }
549
- async readFeatures(e, t = {}) {
550
- let { blockType: n, uncompressBufSize: r } = this, { signal: i, request: a } = t, o = W(e), s = [];
551
- for (let e of o) {
552
- let t = await this.bbi.read(e.length, e.offset, { signal: i }), o = e.offset, c = e.blocks, l, u;
553
- if (r > 0) {
554
- let e = [];
555
- for (let t of c) e.push({
556
- offset: t.offset - o,
557
- length: t.length
558
- });
559
- let n = await V(t, e, r);
560
- l = n.data, u = n.offsets;
561
- } else {
562
- l = t, u = [];
563
- for (let e of c) u.push(e.offset - o);
564
- u.push(t.length);
565
- }
566
- for (let e = 0; e < c.length; e++) {
567
- let t = u[e], r = u[e + 1], i = l.subarray(t, r), o;
568
- switch (n) {
569
- case "summary":
570
- o = q(i, 0, a);
571
- break;
572
- case "bigwig":
573
- o = de(i, 0, a);
574
- break;
575
- case "bigbed":
576
- o = ue(i, 0, c[e].offset * 256, a);
577
- break;
578
- default: o = [], console.warn(`Don't know what to do with ${n}`);
579
- }
580
- for (let e of o) s.push(e);
581
- }
582
- }
583
- return s;
584
- }
585
- async _readBigWigFeaturesAsArrays(e, t = {}) {
586
- let { uncompressBufSize: n } = this, { signal: r, request: i } = t, a = W(e), o = [], s = [], c = [], l = 0;
587
- for (let e of a) {
588
- let { length: t, offset: a } = e, u = await this.bbi.read(t, a, { signal: r }), d = e.blocks.map((t) => ({
589
- offset: t.offset - e.offset,
590
- length: t.length
591
- }));
592
- if (n > 0) {
593
- let e = await H(u, d, n, i?.start ?? 0, i?.end ?? 0);
594
- e.starts.length > 0 && (o.push(e.starts), s.push(e.ends), c.push(e.scores), l += e.starts.length);
595
- } else for (let e of d) {
596
- let t = fe(u.subarray(e.offset, e.offset + e.length), 0, i);
597
- t.starts.length > 0 && (o.push(t.starts), s.push(t.ends), c.push(t.scores), l += t.starts.length);
598
- }
599
- }
600
- if (o.length === 0) return {
601
- starts: new Int32Array(),
602
- ends: new Int32Array(),
603
- scores: new Float32Array(),
604
- isSummary: !1
605
- };
606
- if (o.length === 1) return {
607
- starts: o[0],
608
- ends: s[0],
609
- scores: c[0],
610
- isSummary: !1
611
- };
612
- let u = new Int32Array(l), d = new Int32Array(l), f = new Float32Array(l), p = 0;
613
- for (let e = 0; e < o.length; e++) u.set(o[e], p), d.set(s[e], p), f.set(c[e], p), p += o[e].length;
614
- return {
615
- starts: u,
616
- ends: d,
617
- scores: f,
618
- isSummary: !1
619
- };
620
- }
621
- async _readSummaryFeaturesAsArrays(e, t = {}) {
622
- let { uncompressBufSize: n } = this, { signal: r, request: i } = t, a = W(e), o = [], s = [], c = [], l = [], u = [], d = 0;
623
- for (let e of a) {
624
- let { length: t, offset: a } = e, f = await this.bbi.read(t, a, { signal: r }), p = e.blocks.map((t) => ({
625
- offset: t.offset - e.offset,
626
- length: t.length
627
- }));
628
- if (n > 0) {
629
- let e = await U(f, p, n, i?.chrId ?? 0, i?.start ?? 0, i?.end ?? 0);
630
- e.starts.length > 0 && (o.push(e.starts), s.push(e.ends), c.push(e.scores), l.push(e.minScores), u.push(e.maxScores), d += e.starts.length);
631
- } else for (let e of p) {
632
- let t = q(f.subarray(e.offset, e.offset + e.length), 0, i);
633
- if (t.length > 0) {
634
- let e = new Int32Array(t.length), n = new Int32Array(t.length), r = new Float32Array(t.length), i = new Float32Array(t.length), a = new Float32Array(t.length);
635
- for (let o = 0; o < t.length; o++) {
636
- let s = t[o];
637
- e[o] = s.start, n[o] = s.end, r[o] = s.score ?? 0, i[o] = s.minScore ?? 0, a[o] = s.maxScore ?? 0;
638
- }
639
- o.push(e), s.push(n), c.push(r), l.push(i), u.push(a), d += t.length;
640
- }
641
- }
642
- }
643
- if (o.length === 0) return {
644
- starts: new Int32Array(),
645
- ends: new Int32Array(),
646
- scores: new Float32Array(),
647
- minScores: new Float32Array(),
648
- maxScores: new Float32Array(),
649
- isSummary: !0
650
- };
651
- if (o.length === 1) return {
652
- starts: o[0],
653
- ends: s[0],
654
- scores: c[0],
655
- minScores: l[0],
656
- maxScores: u[0],
657
- isSummary: !0
658
- };
659
- let f = new Int32Array(d), p = new Int32Array(d), m = new Float32Array(d), h = new Float32Array(d), g = new Float32Array(d), _ = 0;
660
- for (let e = 0; e < o.length; e++) f.set(o[e], _), p.set(s[e], _), m.set(c[e], _), h.set(l[e], _), g.set(u[e], _), _ += o[e].length;
661
- return {
662
- starts: f,
663
- ends: p,
664
- scores: m,
665
- minScores: h,
666
- maxScores: g,
667
- isSummary: !0
668
- };
669
- }
670
- }, me = -2003829722, J = -2021002517, Y = new TextDecoder("utf8");
671
- function X(e) {
672
- return new DataView(e.buffer, e.byteOffset, e.length);
673
- }
674
- var Z = class {
675
- bbi;
676
- headerP;
677
- renameRefSeqs;
678
- getHeader(e) {
679
- return this.headerP ||= this._getHeader(e).catch((e) => {
680
- throw this.headerP = void 0, e;
681
- }), this.headerP;
682
- }
683
- constructor(e) {
684
- let { filehandle: r, renameRefSeqs: i = (e) => e, path: a, url: o } = e;
685
- if (this.renameRefSeqs = i, r) this.bbi = r;
686
- else if (o) this.bbi = new n(o);
687
- else if (a) this.bbi = new t(a);
688
- else throw Error("no file given");
689
- }
690
- async _getHeader(e) {
691
- let t = await this._getMainHeader(e), n = await this._readChromosomeTree(t, e);
692
- return {
693
- ...t,
694
- ...n
695
- };
696
- }
697
- async _getMainHeader(e, t = 2e3) {
698
- let n = await this.bbi.read(t, 0, e), r = X(n), i = 0, a = r.getInt32(i, !0);
699
- if (i += 4, a !== me && a !== J) throw Error("not a BigWig/BigBed file");
700
- let o = r.getUint16(i, !0);
701
- i += 2;
702
- let s = r.getUint16(i, !0);
703
- i += 2;
704
- let c = Number(r.getBigUint64(i, !0));
705
- i += 8;
706
- let l = Number(r.getBigUint64(i, !0));
707
- i += 8;
708
- let u = Number(r.getBigUint64(i, !0));
709
- i += 8;
710
- let d = r.getUint16(i, !0);
711
- i += 2;
712
- let f = r.getUint16(i, !0);
713
- i += 2;
714
- let p = Number(r.getBigUint64(i, !0));
715
- i += 8;
716
- let m = Number(r.getBigUint64(i, !0));
717
- i += 8;
718
- let h = r.getUint32(i, !0);
719
- i += 4;
720
- let g = Number(r.getBigUint64(i, !0));
721
- i += 8;
722
- let _ = [];
723
- for (let e = 0; e < s; e++) {
724
- let e = r.getUint32(i, !0);
725
- i += 4;
726
- let t = r.getUint32(i, !0);
727
- i += 4;
728
- let n = Number(r.getBigUint64(i, !0));
729
- i += 8;
730
- let a = Number(r.getBigUint64(i, !0));
731
- i += 8, _.push({
732
- reductionLevel: e,
733
- reserved: t,
734
- dataOffset: n,
735
- indexOffset: a
736
- });
737
- }
738
- let v = a === J ? "bigbed" : "bigwig";
739
- if (p > t || m > t - 40) return this._getMainHeader(e, t * 2);
740
- let y;
741
- if (m) {
742
- let e = n.subarray(m), t = 0, r = X(e), i = Number(r.getBigUint64(t, !0));
743
- t += 8;
744
- let a = r.getFloat64(t, !0);
745
- t += 8;
746
- let o = r.getFloat64(t, !0);
747
- t += 8;
748
- let s = r.getFloat64(t, !0);
749
- t += 8, y = {
750
- scoreMin: a,
751
- scoreMax: o,
752
- scoreSum: s,
753
- scoreSumSquares: r.getFloat64(t, !0),
754
- basesCovered: i
755
- };
756
- } else throw Error("no stats");
757
- return {
758
- zoomLevels: _,
759
- magic: a,
760
- extHeaderOffset: g,
761
- numZoomLevels: s,
762
- fieldCount: d,
763
- totalSummary: y,
764
- definedFieldCount: f,
765
- uncompressBufSize: h,
766
- asOffset: p,
767
- chromosomeTreeOffset: c,
768
- totalSummaryOffset: m,
769
- unzoomedDataOffset: l,
770
- unzoomedIndexOffset: u,
771
- fileType: v,
772
- version: o,
773
- autoSql: p ? Y.decode(n.subarray(p, n.indexOf(0, p))) : ""
774
- };
775
- }
776
- async _readChromosomeTree(e, t) {
777
- let n = [], r = {}, i = e.chromosomeTreeOffset, a = X(await this.bbi.read(32, i, t)), o = a.getUint32(8, !0), s = a.getUint32(12, !0), c = async (e) => {
778
- let t = X(await this.bbi.read(4, e)), i = t.getUint8(0), a = t.getUint16(2, !0);
779
- if (i) {
780
- let t = await this.bbi.read(a * (o + s), e + 4), i = X(t), c = 0;
781
- for (let e = 0; e < a; e++) {
782
- let e = t.indexOf(0, c), a = e !== -1 && e < c + o ? e : c + o, s = Y.decode(t.subarray(c, a));
783
- c += o;
784
- let l = i.getUint32(c, !0);
785
- c += 4;
786
- let u = i.getUint32(c, !0);
787
- c += 4, r[this.renameRefSeqs(s)] = l, n[l] = {
788
- name: s,
789
- id: l,
790
- length: u
791
- };
792
- }
793
- } else {
794
- let t = X(await this.bbi.read(a * (o + 8), e + 4)), n = [], r = 0;
795
- for (let e = 0; e < a; e++) {
796
- r += o;
797
- let e = Number(t.getBigUint64(r, !0));
798
- r += 8, n.push(c(e));
799
- }
800
- await Promise.all(n);
801
- }
802
- };
803
- return await c(i + 32), {
804
- refsByName: r,
805
- refsByNumber: n
806
- };
807
- }
808
- viewCache = /* @__PURE__ */ new Map();
809
- getOrCreateBlockView(e, t, n, r) {
810
- let i = `${t}_${r}`, a = this.viewCache.get(i);
811
- return a || (a = new pe(this.bbi, e, t, n, r), this.viewCache.set(i, a)), a;
812
- }
813
- async getUnzoomedView(e) {
814
- let { unzoomedIndexOffset: t, refsByName: n, uncompressBufSize: r, fileType: i } = await this.getHeader(e);
815
- return this.getOrCreateBlockView(n, t, r, i);
816
- }
817
- async _getView(e) {
818
- let { basesPerSpan: t, scale: n } = e || {}, r = t ? 1 / t : n ?? 1;
819
- return this.getView(r, e);
820
- }
821
- async getFeatures(e, t, n, r) {
822
- return (await this._getView(r)).readWigData(this.renameRefSeqs(e), t, n, r);
823
- }
824
- async getFeaturesAsArrays(e, t, n, r) {
825
- return (await this._getView(r)).readWigDataAsArrays(this.renameRefSeqs(e), t, n, r);
826
- }
827
- }, he = class extends Z {
828
- async getView(e, t) {
829
- let { zoomLevels: n, refsByName: r, uncompressBufSize: i } = await this.getHeader(t), a = 1 / e, o = n.length - 1;
830
- for (let e = o; e >= 0; --e) {
831
- let t = n[e];
832
- if (t && t.reductionLevel <= 2 * a) return this.getOrCreateBlockView(r, t.indexOffset, i, "summary");
833
- }
834
- return this.getUnzoomedView(t);
835
- }
836
- }, ge = new TextDecoder("utf8");
837
- function _e(e, t) {
838
- if (t < 0) return;
839
- let n = 0;
840
- for (let r = 0; r < t; r++) {
841
- if (n = e.indexOf(" ", n), n === -1) return;
842
- n++;
843
- }
844
- let r = e.indexOf(" ", n);
845
- return r === -1 ? e.slice(n) : e.slice(n, r);
846
- }
847
- function Q(e, t, n) {
848
- let r = e.indexOf(0, t), i = r !== -1 && r < t + n ? r : t + n;
849
- return ge.decode(e.subarray(t, i));
850
- }
851
- async function $(e, t, n, r, i, a, o, s) {
852
- let c = 4 + n * (r + i), l = await e.read(c, t, s), u = new DataView(l.buffer, l.byteOffset, l.length), d = u.getInt8(0), f = u.getInt16(2, !0), p = 4;
853
- if (d === 0) {
854
- let t = [];
855
- for (let e = 0; e < f; e++) {
856
- let e = Q(l, p, r);
857
- p += r;
858
- let n = Number(u.getBigUint64(p, !0));
859
- p += 8, t.push({
860
- key: e,
861
- offset: n
862
- });
863
- }
864
- let c = 0, d = t.length - 1, m = t.length - 1;
865
- for (; c <= d;) {
866
- let e = Math.floor((c + d) / 2);
867
- a.localeCompare(t[e].key) < 0 ? (m = e - 1, d = e - 1) : c = e + 1;
868
- }
869
- return $(e, m >= 0 ? t[m].offset : t[0].offset, n, r, i, a, o, s);
870
- } else if (d === 1) {
871
- let e = [];
872
- for (let t = 0; t < f; t++) {
873
- let t = Q(l, p, r);
874
- p += r;
875
- let n = Number(u.getBigUint64(p, !0));
876
- p += 8;
877
- let i = u.getUint32(p, !0);
878
- p += 4, p += 4, e.push({
879
- key: t,
880
- offset: n,
881
- length: i
882
- });
883
- }
884
- let t = 0, n = e.length - 1;
885
- for (; t <= n;) {
886
- let r = Math.floor((t + n) / 2), i = a.localeCompare(e[r].key);
887
- if (i === 0) return {
888
- ...e[r],
889
- field: o
890
- };
891
- i < 0 ? n = r - 1 : t = r + 1;
892
- }
893
- return;
894
- }
895
- }
896
- var ve = class extends Z {
897
- readIndicesCache = new r({
898
- cache: new e({ maxSize: 1 }),
899
- fill: (e, t) => this._readIndices({
900
- ...e,
901
- signal: t
902
- })
903
- });
904
- readIndices(e = {}) {
905
- let { signal: t, ...n } = e;
906
- return this.readIndicesCache.get(JSON.stringify(n), e, t);
907
- }
908
- async getView(e, t) {
909
- return this.getUnzoomedView(t);
910
- }
911
- async _readIndices(e) {
912
- let { extHeaderOffset: t } = await this.getHeader(e), n = await this.bbi.read(64, t), r = new DataView(n.buffer, n.byteOffset, n.length), i = r.getUint16(2, !0), a = Number(r.getBigUint64(4, !0));
913
- if (i === 0) return [];
914
- let o = 20 * i, s = await this.bbi.read(o, a), c = [];
915
- for (let e = 0; e < i; e += 1) {
916
- let t = s.subarray(e * 20), n = new DataView(t.buffer, t.byteOffset, t.length), r = n.getInt16(0, !0), i = n.getInt16(2, !0), a = Number(n.getBigUint64(4, !0)), o = n.getInt16(16, !0);
917
- c.push({
918
- type: r,
919
- fieldcount: i,
920
- offset: a,
921
- field: o
922
- });
923
- }
924
- return c;
925
- }
926
- async searchExtraIndexBlocks(e, t = {}) {
927
- let n = await this.readIndices(t);
928
- if (n.length === 0) return [];
929
- let r = n.map(async (n) => {
930
- let { offset: r, field: i } = n, a = await this.bbi.read(32, r, t), o = new DataView(a.buffer, a.byteOffset, a.length), s = o.getInt32(4, !0), c = o.getInt32(8, !0), l = o.getInt32(12, !0);
931
- return $(this.bbi, r + 32, s, c, l, e, i, t);
932
- });
933
- return (await Promise.all(r)).filter((e) => e !== void 0);
934
- }
935
- async searchExtraIndex(e, t = {}) {
936
- let n = await this.searchExtraIndexBlocks(e, t);
937
- if (n.length === 0) return [];
938
- let r = await this.getUnzoomedView(t);
939
- return (await Promise.all(n.map(async (e) => (await r.readFeatures([e], t)).map((t) => ({
940
- ...t,
941
- field: e.field
942
- }))))).flat().filter((t) => {
943
- if (!t.rest) return !1;
944
- let n = (t.field || 0) - 3;
945
- return _e(t.rest, n) === e;
946
- });
947
- }
948
- };
949
- //#endregion
950
- //#region ../../node_modules/@gmod/bbi/esm/parse-bigwig.js
951
- async function ye(e, t) {
952
- let n = await e.getHeader(t), r = [];
953
- for (let i of Object.values(n.refsByNumber)) {
954
- let n = await e.getFeaturesAsArrays(i.name, 0, i.length, t);
955
- !n.isSummary && n.starts.length > 0 && r.push(n);
956
- }
957
- return r;
958
- }
959
- //#endregion
960
- //#region ../../node_modules/@gmod/bbi/esm/array-feature-view.js
961
- var be = class {
962
- starts;
963
- ends;
964
- scores;
965
- minScores;
966
- maxScores;
967
- isSummary;
968
- _source;
969
- _refName;
970
- constructor(e, t, n) {
971
- this.starts = e.starts, this.ends = e.ends, this.scores = e.scores, this.isSummary = e.isSummary, this.minScores = e.isSummary ? e.minScores : void 0, this.maxScores = e.isSummary ? e.maxScores : void 0, this._source = t, this._refName = n;
972
- }
973
- get length() {
974
- return this.starts.length;
975
- }
976
- get source() {
977
- return this._source;
978
- }
979
- get refName() {
980
- return this._refName;
981
- }
982
- start(e) {
983
- return this.starts[e];
984
- }
985
- end(e) {
986
- return this.ends[e];
987
- }
988
- score(e) {
989
- return this.scores[e];
990
- }
991
- minScore(e) {
992
- return this.minScores?.[e];
993
- }
994
- maxScore(e) {
995
- return this.maxScores?.[e];
996
- }
997
- id(e) {
998
- return `${this._source}:${this._refName}:${this.starts[e]}-${this.ends[e]}`;
999
- }
1000
- get(e, t) {
1001
- switch (t) {
1002
- case "start": return this.starts[e];
1003
- case "end": return this.ends[e];
1004
- case "score": return this.scores[e];
1005
- case "refName": return this._refName;
1006
- case "source": return this._source;
1007
- case "minScore": return this.minScores?.[e];
1008
- case "maxScore": return this.maxScores?.[e];
1009
- case "summary": return this.isSummary;
1010
- default: return;
1011
- }
1012
- }
1013
- };
1014
- //#endregion
1015
- export { be as ArrayFeatureView, ve as BigBed, he as BigWig, ye as parseBigWig };